From d7d277c6b0c9849aca80a8a2741212c689b43ea5 Mon Sep 17 00:00:00 2001 From: Kibum Kim Date: Sat, 7 Jan 2012 00:46:44 +0900 Subject: [PATCH] Git init --- ABOUT-NLS | 1068 + AUTHORS | 21 + COPYING | 340 + COPYING.LIB | 481 + ChangeLog | 67389 +++++++++++++++++++ INSTALL | 182 + Makefile.am | 98 + Makefile.in | 1316 + NEWS | 1595 + README | 217 + RELEASE | 276 + REQUIREMENTS | 72 + aclocal.m4 | 1108 + autogen.sh | 119 + autoregen.sh | 2 + common/ChangeLog | 1712 + common/Makefile.am | 22 + common/Makefile.in | 880 + common/c-to-xml.py | 34 + common/check-exports | 72 + common/check.mak | 181 + common/coverage/coverage-report-entry.pl | 69 + common/coverage/coverage-report.pl | 125 + common/coverage/coverage-report.xsl | 235 + common/coverage/lcov.mak | 43 + common/cruft.mak | 56 + common/download-translations | 152 + common/extract-release-date-from-doap-file | 32 + common/gettext.patch | 12 + common/glib-gen.mak | 44 + common/gst-autogen.sh | 376 + common/gst-glib-gen.mak | 45 + common/gst-indent | 49 + common/gst.supp | 3929 ++ common/gstdoc-scangobj | 1571 + common/gtk-doc-plugins.mak | 379 + common/gtk-doc.mak | 234 + common/m4/Makefile.am | 42 + common/m4/Makefile.in | 699 + common/m4/README | 3 + common/m4/as-ac-expand.m4 | 43 + common/m4/as-auto-alt.m4 | 50 + common/m4/as-compiler-flag.m4 | 64 + common/m4/as-compiler.m4 | 44 + common/m4/as-docbook.m4 | 66 + common/m4/as-gcc-inline-assembly.m4 | 52 + common/m4/as-libtool-tags.m4 | 83 + common/m4/as-libtool.m4 | 45 + common/m4/as-objc.m4 | 56 + common/m4/as-python.m4 | 152 + common/m4/as-scrub-include.m4 | 36 + common/m4/as-version.m4 | 75 + common/m4/ax_create_stdint_h.m4 | 734 + common/m4/check.m4 | 181 + common/m4/glib-gettext.m4 | 432 + common/m4/gst-arch.m4 | 141 + common/m4/gst-args.m4 | 330 + common/m4/gst-check.m4 | 262 + common/m4/gst-debuginfo.m4 | 46 + common/m4/gst-default.m4 | 120 + common/m4/gst-doc.m4 | 148 + common/m4/gst-dowhile.m4 | 24 + common/m4/gst-error.m4 | 213 + common/m4/gst-feature.m4 | 283 + common/m4/gst-function.m4 | 63 + common/m4/gst-gettext.m4 | 21 + common/m4/gst-glib2.m4 | 73 + common/m4/gst-libxml2.m4 | 52 + common/m4/gst-package-release-datetime.m4 | 89 + common/m4/gst-parser.m4 | 55 + common/m4/gst-platform.m4 | 67 + common/m4/gst-plugin-docs.m4 | 21 + common/m4/gst-plugindir.m4 | 17 + common/m4/gst-valgrind.m4 | 35 + common/m4/gst-x11.m4 | 70 + common/m4/gst.m4 | 31 + common/m4/gtk-doc.m4 | 42 + common/m4/introspection.m4 | 88 + common/m4/orc.m4 | 68 + common/m4/pkg.m4 | 157 + common/mangle-tmpl.py | 163 + common/orc.mak | 76 + common/parallel-subdirs.mak | 13 + common/plugins.xsl | 209 + common/po.mak | 4 + common/release.mak | 25 + common/scangobj-merge.py | 280 + common/upload-doc.mak | 66 + common/win32.mak | 72 + compile | 143 + config.h.in | 558 + config.rpath | 666 + configure | 48157 +++++++++++++ configure.ac | 1930 + debian/changelog | 7 + debian/compat | 1 + debian/control | 37 + debian/copyright | 31 + debian/gstreamer0.10-plugins-bad.install.in | 3 + debian/rules | 240 + depcomp | 630 + docs/Makefile.am | 18 + docs/Makefile.in | 870 + docs/plugins/Makefile.am | 237 + docs/plugins/Makefile.in | 1528 + docs/plugins/camerabin.dot | 23 + docs/plugins/camerabin.png | Bin 0 -> 7779 bytes docs/plugins/gst-plugins-bad-plugins-docs.sgml | 221 + docs/plugins/gst-plugins-bad-plugins-sections.txt | 1662 + docs/plugins/gst-plugins-bad-plugins.args | 47935 +++++++++++++ docs/plugins/gst-plugins-bad-plugins.interfaces | 38 + docs/plugins/gst-plugins-bad-plugins.prerequisites | 8 + docs/plugins/gst-plugins-bad-plugins.signals | 531 + docs/plugins/gst-plugins-bad-plugins.types | 6 + docs/plugins/html/GstPhotography.html | 1255 + docs/plugins/html/camerabin.png | Bin 0 -> 7779 bytes docs/plugins/html/ch01.html | 347 + docs/plugins/html/ch02.html | 287 + docs/plugins/html/ch03.html | 33 + .../html/gst-plugins-bad-plugins-aiffmux.html | 160 + .../html/gst-plugins-bad-plugins-aiffparse.html | 180 + .../html/gst-plugins-bad-plugins-amrwbenc.html | 195 + .../html/gst-plugins-bad-plugins-assrender.html | 263 + .../html/gst-plugins-bad-plugins-autoconvert.html | 189 + .../html/gst-plugins-bad-plugins-bulge.html | 270 + .../plugins/html/gst-plugins-bad-plugins-burn.html | 201 + .../html/gst-plugins-bad-plugins-camerabin.html | 1020 + .../html/gst-plugins-bad-plugins-celtdec.html | 169 + .../html/gst-plugins-bad-plugins-celtenc.html | 247 + .../html/gst-plugins-bad-plugins-chromium.html | 211 + .../html/gst-plugins-bad-plugins-circle.html | 286 + .../html/gst-plugins-bad-plugins-coloreffects.html | 265 + .../html/gst-plugins-bad-plugins-curlsink.html | 272 + .../html/gst-plugins-bad-plugins-cvdilate.html | 244 + .../gst-plugins-bad-plugins-cvequalizehist.html | 147 + .../html/gst-plugins-bad-plugins-cverode.html | 244 + .../html/gst-plugins-bad-plugins-cvlaplace.html | 165 + .../html/gst-plugins-bad-plugins-cvsmooth.html | 216 + .../html/gst-plugins-bad-plugins-cvsobel.html | 183 + .../html/gst-plugins-bad-plugins-dataurisrc.html | 170 + .../gst-plugins-bad-plugins-dccpclientsink.html | 259 + .../gst-plugins-bad-plugins-dccpclientsrc.html | 267 + .../gst-plugins-bad-plugins-dccpserversink.html | 259 + .../gst-plugins-bad-plugins-dccpserversrc.html | 266 + .../html/gst-plugins-bad-plugins-dfbvideosink.html | 370 + .../html/gst-plugins-bad-plugins-diffuse.html | 269 + .../html/gst-plugins-bad-plugins-dilate.html | 200 + .../gst-plugins-bad-plugins-directdrawsink.html | 167 + .../html/gst-plugins-bad-plugins-dodge.html | 192 + .../html/gst-plugins-bad-plugins-dtmfdetect.html | 172 + .../html/gst-plugins-bad-plugins-dtmfsrc.html | 238 + .../html/gst-plugins-bad-plugins-dtsdec.html | 197 + .../html/gst-plugins-bad-plugins-dvbsrc.html | 358 + .../html/gst-plugins-bad-plugins-dvdspu.html | 190 + .../html/gst-plugins-bad-plugins-edgedetect.html | 209 + .../html/gst-plugins-bad-plugins-exclusion.html | 201 + .../plugins/html/gst-plugins-bad-plugins-faac.html | 247 + .../plugins/html/gst-plugins-bad-plugins-faad.html | 176 + .../html/gst-plugins-bad-plugins-faceblur.html | 182 + .../html/gst-plugins-bad-plugins-facedetect.html | 246 + .../html/gst-plugins-bad-plugins-festival.html | 170 + .../html/gst-plugins-bad-plugins-fisheye.html | 251 + .../gst-plugins-bad-plugins-fpsdisplaysink.html | 307 + .../html/gst-plugins-bad-plugins-freeze.html | 186 + .../html/gst-plugins-bad-plugins-gaussianblur.html | 165 + .../html/gst-plugins-bad-plugins-ivfparse.html | 144 + .../html/gst-plugins-bad-plugins-jpegparse.html | 230 + .../html/gst-plugins-bad-plugins-kaleidoscope.html | 286 + .../html/gst-plugins-bad-plugins-katedec.html | 240 + .../html/gst-plugins-bad-plugins-kateenc.html | 280 + .../html/gst-plugins-bad-plugins-kateparse.html | 197 + .../html/gst-plugins-bad-plugins-katetag.html | 254 + .../html/gst-plugins-bad-plugins-ladspa.html | 78 + .../gst-plugins-bad-plugins-legacyresample.html | 214 + .../html/gst-plugins-bad-plugins-liveadder.html | 185 + .../html/gst-plugins-bad-plugins-marble.html | 296 + .../html/gst-plugins-bad-plugins-mimdec.html | 159 + .../html/gst-plugins-bad-plugins-mimenc.html | 184 + .../html/gst-plugins-bad-plugins-mirror.html | 268 + .../html/gst-plugins-bad-plugins-modplug.html | 301 + .../html/gst-plugins-bad-plugins-mpeg2enc.html | 503 + .../html/gst-plugins-bad-plugins-mplex.html | 286 + .../html/gst-plugins-bad-plugins-mxfdemux.html | 198 + .../html/gst-plugins-bad-plugins-mxfmux.html | 388 + .../html/gst-plugins-bad-plugins-mythtvsrc.html | 257 + .../html/gst-plugins-bad-plugins-nuvdemux.html | 197 + .../gst-plugins-bad-plugins-opencvtextoverlay.html | 268 + .../html/gst-plugins-bad-plugins-pcapparse.html | 222 + .../html/gst-plugins-bad-plugins-pinch.html | 270 + .../html/gst-plugins-bad-plugins-plugin-aiff.html | 80 + .../gst-plugins-bad-plugins-plugin-amrwbenc.html | 74 + .../gst-plugins-bad-plugins-plugin-assrender.html | 74 + ...gst-plugins-bad-plugins-plugin-autoconvert.html | 80 + .../html/gst-plugins-bad-plugins-plugin-bayer.html | 80 + .../html/gst-plugins-bad-plugins-plugin-bz2.html | 80 + .../gst-plugins-bad-plugins-plugin-camerabin.html | 74 + .../gst-plugins-bad-plugins-plugin-cdaudio.html | 74 + .../gst-plugins-bad-plugins-plugin-cdxaparse.html | 80 + .../html/gst-plugins-bad-plugins-plugin-celt.html | 80 + ...st-plugins-bad-plugins-plugin-coloreffects.html | 80 + .../html/gst-plugins-bad-plugins-plugin-curl.html | 74 + .../gst-plugins-bad-plugins-plugin-dataurisrc.html | 74 + .../html/gst-plugins-bad-plugins-plugin-dccp.html | 88 + ...t-plugins-bad-plugins-plugin-debugutilsbad.html | 84 + ...st-plugins-bad-plugins-plugin-dfbvideosink.html | 74 + .../html/gst-plugins-bad-plugins-plugin-dirac.html | 74 + .../gst-plugins-bad-plugins-plugin-directdraw.html | 74 + .../html/gst-plugins-bad-plugins-plugin-dtmf.html | 88 + .../gst-plugins-bad-plugins-plugin-dtsdec.html | 74 + .../html/gst-plugins-bad-plugins-plugin-dvb.html | 80 + .../gst-plugins-bad-plugins-plugin-dvdspu.html | 74 + .../html/gst-plugins-bad-plugins-plugin-faac.html | 74 + .../html/gst-plugins-bad-plugins-plugin-faad.html | 74 + .../gst-plugins-bad-plugins-plugin-fbdevsink.html | 74 + .../gst-plugins-bad-plugins-plugin-festival.html | 74 + .../gst-plugins-bad-plugins-plugin-filter.html | 74 + .../gst-plugins-bad-plugins-plugin-freeze.html | 74 + .../gst-plugins-bad-plugins-plugin-frei0r.html | 420 + ...st-plugins-bad-plugins-plugin-gaudieffects.html | 100 + ...gins-bad-plugins-plugin-geometrictransform.html | 132 + .../html/gst-plugins-bad-plugins-plugin-gsm.html | 80 + .../gst-plugins-bad-plugins-plugin-h264parse.html | 74 + .../gst-plugins-bad-plugins-plugin-ivfparse.html | 74 + .../gst-plugins-bad-plugins-plugin-jpegformat.html | 80 + .../html/gst-plugins-bad-plugins-plugin-kate.html | 92 + .../gst-plugins-bad-plugins-plugin-ladspa.html | 664 + ...-plugins-bad-plugins-plugin-legacyresample.html | 74 + .../gst-plugins-bad-plugins-plugin-liveadder.html | 74 + .../html/gst-plugins-bad-plugins-plugin-lv2.html | 144 + .../html/gst-plugins-bad-plugins-plugin-mimic.html | 80 + .../html/gst-plugins-bad-plugins-plugin-mms.html | 74 + .../gst-plugins-bad-plugins-plugin-modplug.html | 74 + .../gst-plugins-bad-plugins-plugin-mpeg2enc.html | 74 + ...plugins-bad-plugins-plugin-mpeg4videoparse.html | 74 + .../gst-plugins-bad-plugins-plugin-mpegdemux2.html | 84 + .../gst-plugins-bad-plugins-plugin-mpegpsmux.html | 74 + .../gst-plugins-bad-plugins-plugin-mpegtsmux.html | 74 + ...-plugins-bad-plugins-plugin-mpegvideoparse.html | 74 + .../html/gst-plugins-bad-plugins-plugin-mplex.html | 74 + .../gst-plugins-bad-plugins-plugin-musepack.html | 74 + ...gst-plugins-bad-plugins-plugin-musicbrainz.html | 74 + .../html/gst-plugins-bad-plugins-plugin-mve.html | 80 + .../html/gst-plugins-bad-plugins-plugin-mxf.html | 80 + .../html/gst-plugins-bad-plugins-plugin-nas.html | 74 + .../html/gst-plugins-bad-plugins-plugin-neon.html | 74 + .../html/gst-plugins-bad-plugins-plugin-nsf.html | 74 + .../gst-plugins-bad-plugins-plugin-nuvdemux.html | 74 + .../gst-plugins-bad-plugins-plugin-opencv.html | 120 + .../gst-plugins-bad-plugins-plugin-pcapparse.html | 74 + .../gst-plugins-bad-plugins-plugin-rawparse.html | 80 + .../html/gst-plugins-bad-plugins-plugin-real.html | 80 + .../gst-plugins-bad-plugins-plugin-rfbsrc.html | 74 + .../html/gst-plugins-bad-plugins-plugin-rsvg.html | 80 + .../gst-plugins-bad-plugins-plugin-rtpmux.html | 80 + .../gst-plugins-bad-plugins-plugin-scaletempo.html | 74 + .../html/gst-plugins-bad-plugins-plugin-sdl.html | 80 + .../html/gst-plugins-bad-plugins-plugin-sdp.html | 74 + .../html/gst-plugins-bad-plugins-plugin-shm.html | 80 + .../gst-plugins-bad-plugins-plugin-sndfile.html | 80 + .../gst-plugins-bad-plugins-plugin-soundtouch.html | 80 + .../gst-plugins-bad-plugins-plugin-spcdec.html | 74 + .../html/gst-plugins-bad-plugins-plugin-speed.html | 74 + .../gst-plugins-bad-plugins-plugin-stereo.html | 74 + .../gst-plugins-bad-plugins-plugin-swfdec.html | 74 + .../gst-plugins-bad-plugins-plugin-timidity.html | 74 + .../html/gst-plugins-bad-plugins-plugin-tta.html | 80 + .../gst-plugins-bad-plugins-plugin-vcdsrc.html | 74 + ...st-plugins-bad-plugins-plugin-videomaxrate.html | 74 + ...gst-plugins-bad-plugins-plugin-videosignal.html | 84 + .../html/gst-plugins-bad-plugins-plugin-vmnc.html | 74 + .../html/gst-plugins-bad-plugins-plugin-vp8.html | 80 + .../gst-plugins-bad-plugins-plugin-wildmidi.html | 74 + .../html/gst-plugins-bad-plugins-plugin-xvid.html | 80 + .../html/gst-plugins-bad-plugins-plugin-zbar.html | 74 + .../gst-plugins-bad-plugins-pyramidsegment.html | 223 + .../html/gst-plugins-bad-plugins-rsvgdec.html | 169 + .../html/gst-plugins-bad-plugins-rsvgoverlay.html | 344 + .../html/gst-plugins-bad-plugins-rtpdtmfdepay.html | 233 + .../html/gst-plugins-bad-plugins-rtpdtmfmux.html | 237 + .../html/gst-plugins-bad-plugins-rtpdtmfsrc.html | 306 + .../html/gst-plugins-bad-plugins-rtpmux.html | 231 + .../html/gst-plugins-bad-plugins-scaletempo.html | 243 + .../html/gst-plugins-bad-plugins-sdlaudiosink.html | 130 + .../html/gst-plugins-bad-plugins-sdlvideosink.html | 166 + .../html/gst-plugins-bad-plugins-sdpdemux.html | 232 + .../html/gst-plugins-bad-plugins-shmsink.html | 221 + .../html/gst-plugins-bad-plugins-shmsrc.html | 150 + .../html/gst-plugins-bad-plugins-solarize.html | 219 + .../html/gst-plugins-bad-plugins-speed.html | 200 + .../html/gst-plugins-bad-plugins-sphere.html | 269 + .../html/gst-plugins-bad-plugins-square.html | 287 + .../html/gst-plugins-bad-plugins-stereo.html | 193 + .../html/gst-plugins-bad-plugins-stretch.html | 270 + .../gst-plugins-bad-plugins-templatematch.html | 208 + .../html/gst-plugins-bad-plugins-tiger.html | 360 + .../html/gst-plugins-bad-plugins-timidity.html | 190 + docs/plugins/html/gst-plugins-bad-plugins-trm.html | 209 + .../html/gst-plugins-bad-plugins-tunnel.html | 252 + .../html/gst-plugins-bad-plugins-twirl.html | 269 + .../html/gst-plugins-bad-plugins-videoanalyse.html | 227 + .../html/gst-plugins-bad-plugins-videodetect.html | 324 + .../html/gst-plugins-bad-plugins-videomark.html | 276 + .../html/gst-plugins-bad-plugins-videomaxrate.html | 209 + .../html/gst-plugins-bad-plugins-videoparse.html | 283 + .../html/gst-plugins-bad-plugins-vp8dec.html | 218 + .../html/gst-plugins-bad-plugins-vp8enc.html | 294 + .../html/gst-plugins-bad-plugins-waterripple.html | 285 + .../html/gst-plugins-bad-plugins-wildmidi.html | 203 + .../plugins/html/gst-plugins-bad-plugins-zbar.html | 235 + docs/plugins/html/gst-plugins-bad-plugins.devhelp | 1090 + docs/plugins/html/gst-plugins-bad-plugins.devhelp2 | 1097 + docs/plugins/html/home.png | Bin 0 -> 654 bytes docs/plugins/html/index.html | 612 + docs/plugins/html/index.sgml | 1633 + docs/plugins/html/left.png | Bin 0 -> 459 bytes docs/plugins/html/right.png | Bin 0 -> 472 bytes docs/plugins/html/style.css | 266 + docs/plugins/html/up.png | Bin 0 -> 406 bytes docs/plugins/inspect/plugin-adpcmdec.xml | 34 + docs/plugins/inspect/plugin-adpcmenc.xml | 34 + docs/plugins/inspect/plugin-aiff.xml | 55 + docs/plugins/inspect/plugin-amrwbenc.xml | 34 + docs/plugins/inspect/plugin-apexsink.xml | 28 + docs/plugins/inspect/plugin-asfmux.xml | 82 + docs/plugins/inspect/plugin-assrender.xml | 40 + docs/plugins/inspect/plugin-autoconvert.xml | 55 + docs/plugins/inspect/plugin-bayer.xml | 55 + docs/plugins/inspect/plugin-bz2.xml | 55 + docs/plugins/inspect/plugin-camerabin.xml | 22 + docs/plugins/inspect/plugin-cdaudio.xml | 22 + docs/plugins/inspect/plugin-cdxaparse.xml | 55 + docs/plugins/inspect/plugin-celt.xml | 55 + docs/plugins/inspect/plugin-cog.xml | 145 + docs/plugins/inspect/plugin-coloreffects.xml | 55 + docs/plugins/inspect/plugin-colorspace.xml | 34 + docs/plugins/inspect/plugin-curl.xml | 28 + docs/plugins/inspect/plugin-dataurisrc.xml | 28 + docs/plugins/inspect/plugin-dc1394.xml | 28 + docs/plugins/inspect/plugin-dccp.xml | 73 + docs/plugins/inspect/plugin-debugutilsbad.xml | 70 + docs/plugins/inspect/plugin-decklink.xml | 55 + docs/plugins/inspect/plugin-dfbvideosink.xml | 28 + docs/plugins/inspect/plugin-dirac.xml | 34 + docs/plugins/inspect/plugin-directdraw.xml | 20 + docs/plugins/inspect/plugin-dtmf.xml | 85 + docs/plugins/inspect/plugin-dtsdec.xml | 34 + docs/plugins/inspect/plugin-dvb.xml | 49 + docs/plugins/inspect/plugin-dvbsuboverlay.xml | 40 + docs/plugins/inspect/plugin-dvdspu.xml | 40 + docs/plugins/inspect/plugin-faac.xml | 34 + docs/plugins/inspect/plugin-faad.xml | 34 + docs/plugins/inspect/plugin-fbdevsink.xml | 28 + docs/plugins/inspect/plugin-festival.xml | 34 + docs/plugins/inspect/plugin-fieldanalysis.xml | 34 + docs/plugins/inspect/plugin-filter.xml | 34 + docs/plugins/inspect/plugin-fragmented.xml | 35 + docs/plugins/inspect/plugin-freeze.xml | 34 + docs/plugins/inspect/plugin-frei0r.xml | 1973 + docs/plugins/inspect/plugin-gaudieffects.xml | 160 + docs/plugins/inspect/plugin-geometrictransform.xml | 328 + docs/plugins/inspect/plugin-gmedec.xml | 34 + docs/plugins/inspect/plugin-gsettings.xml | 49 + docs/plugins/inspect/plugin-gsm.xml | 55 + docs/plugins/inspect/plugin-gstsiren.xml | 55 + docs/plugins/inspect/plugin-h264parse.xml | 34 + docs/plugins/inspect/plugin-hdvparse.xml | 34 + docs/plugins/inspect/plugin-id3tag.xml | 34 + docs/plugins/inspect/plugin-interlace.xml | 34 + docs/plugins/inspect/plugin-invtelecine.xml | 34 + docs/plugins/inspect/plugin-ivfparse.xml | 34 + docs/plugins/inspect/plugin-jp2kdecimator.xml | 34 + docs/plugins/inspect/plugin-jpegformat.xml | 55 + docs/plugins/inspect/plugin-kate.xml | 124 + docs/plugins/inspect/plugin-ladspa.xml | 3679 + docs/plugins/inspect/plugin-legacyresample.xml | 34 + docs/plugins/inspect/plugin-linsys.xml | 43 + docs/plugins/inspect/plugin-liveadder.xml | 34 + docs/plugins/inspect/plugin-lv2.xml | 403 + docs/plugins/inspect/plugin-mimic.xml | 55 + docs/plugins/inspect/plugin-mms.xml | 28 + docs/plugins/inspect/plugin-modplug.xml | 34 + docs/plugins/inspect/plugin-mpeg2enc.xml | 35 + docs/plugins/inspect/plugin-mpeg4videoparse.xml | 34 + docs/plugins/inspect/plugin-mpegdemux2.xml | 118 + docs/plugins/inspect/plugin-mpegpsmux.xml | 34 + docs/plugins/inspect/plugin-mpegtsdemux.xml | 79 + docs/plugins/inspect/plugin-mpegtsmux.xml | 34 + docs/plugins/inspect/plugin-mpegvideoparse.xml | 34 + docs/plugins/inspect/plugin-mplex.xml | 42 + docs/plugins/inspect/plugin-musepack.xml | 34 + docs/plugins/inspect/plugin-musicbrainz.xml | 34 + docs/plugins/inspect/plugin-mve.xml | 67 + docs/plugins/inspect/plugin-mxf.xml | 97 + docs/plugins/inspect/plugin-mythtv.xml | 28 + docs/plugins/inspect/plugin-nas.xml | 28 + docs/plugins/inspect/plugin-neon.xml | 28 + docs/plugins/inspect/plugin-nsf.xml | 34 + docs/plugins/inspect/plugin-nuvdemux.xml | 40 + docs/plugins/inspect/plugin-ofa.xml | 34 + docs/plugins/inspect/plugin-opencv.xml | 265 + docs/plugins/inspect/plugin-patchdetect.xml | 34 + docs/plugins/inspect/plugin-pcapparse.xml | 34 + docs/plugins/inspect/plugin-pnm.xml | 55 + docs/plugins/inspect/plugin-rawparse.xml | 55 + docs/plugins/inspect/plugin-real.xml | 55 + docs/plugins/inspect/plugin-resindvd.xml | 40 + docs/plugins/inspect/plugin-rfbsrc.xml | 28 + docs/plugins/inspect/plugin-rsvg.xml | 61 + docs/plugins/inspect/plugin-rtmpsrc.xml | 28 + docs/plugins/inspect/plugin-rtpmux.xml | 61 + docs/plugins/inspect/plugin-rtpvp8.xml | 55 + docs/plugins/inspect/plugin-scaletempo.xml | 34 + docs/plugins/inspect/plugin-schro.xml | 55 + docs/plugins/inspect/plugin-sdi.xml | 55 + docs/plugins/inspect/plugin-sdl.xml | 43 + docs/plugins/inspect/plugin-sdp.xml | 34 + docs/plugins/inspect/plugin-segmentclip.xml | 55 + docs/plugins/inspect/plugin-shm.xml | 43 + docs/plugins/inspect/plugin-sndfile.xml | 43 + docs/plugins/inspect/plugin-soundtouch.xml | 55 + docs/plugins/inspect/plugin-spcdec.xml | 34 + docs/plugins/inspect/plugin-speed.xml | 34 + docs/plugins/inspect/plugin-stereo.xml | 34 + docs/plugins/inspect/plugin-subenc.xml | 34 + docs/plugins/inspect/plugin-swfdec.xml | 20 + docs/plugins/inspect/plugin-timidity.xml | 34 + docs/plugins/inspect/plugin-tta.xml | 55 + docs/plugins/inspect/plugin-vcdsrc.xml | 28 + docs/plugins/inspect/plugin-vdpau.xml | 112 + docs/plugins/inspect/plugin-videofiltersbad.xml | 55 + docs/plugins/inspect/plugin-videomaxrate.xml | 34 + docs/plugins/inspect/plugin-videomeasure.xml | 61 + docs/plugins/inspect/plugin-videoparsersbad.xml | 76 + docs/plugins/inspect/plugin-videosignal.xml | 76 + docs/plugins/inspect/plugin-vmnc.xml | 34 + docs/plugins/inspect/plugin-vp8.xml | 55 + docs/plugins/inspect/plugin-wildmidi.xml | 34 + docs/plugins/inspect/plugin-xvid.xml | 55 + docs/plugins/inspect/plugin-y4mdec.xml | 34 + docs/plugins/inspect/plugin-zbar.xml | 34 + docs/random/ChangeLog-0.8 | 17760 +++++ docs/version.entities.in | 2 + ext/Makefile.am | 468 + ext/Makefile.in | 1140 + ext/amrwbenc/GstAmrwbEnc.prs | 11 + ext/amrwbenc/Makefile.am | 19 + ext/amrwbenc/Makefile.in | 896 + ext/amrwbenc/README | 12 + ext/amrwbenc/gstamrwb.c | 39 + ext/amrwbenc/gstamrwbenc.c | 388 + ext/amrwbenc/gstamrwbenc.h | 70 + ext/apexsink/Makefile.am | 12 + ext/apexsink/Makefile.in | 881 + ext/apexsink/gstapexplugin.c | 44 + ext/apexsink/gstapexraop.c | 723 + ext/apexsink/gstapexraop.h | 124 + ext/apexsink/gstapexsink.c | 547 + ext/apexsink/gstapexsink.h | 85 + ext/assrender/Makefile.am | 9 + ext/assrender/Makefile.in | 855 + ext/assrender/gstassrender.c | 1424 + ext/assrender/gstassrender.h | 88 + ext/bz2/Makefile.am | 12 + ext/bz2/Makefile.in | 878 + ext/bz2/gstbz2.c | 42 + ext/bz2/gstbz2dec.c | 314 + ext/bz2/gstbz2dec.h | 39 + ext/bz2/gstbz2enc.c | 340 + ext/bz2/gstbz2enc.h | 39 + ext/cdaudio/Makefile.am | 8 + ext/cdaudio/Makefile.in | 850 + ext/cdaudio/gstcdaudio.c | 655 + ext/celt/Makefile.am | 16 + ext/celt/Makefile.in | 884 + ext/celt/gstcelt.c | 50 + ext/celt/gstceltdec.c | 906 + ext/celt/gstceltdec.h | 76 + ext/celt/gstceltenc.c | 1166 + ext/celt/gstceltenc.h | 100 + ext/cog/Makefile.am | 48 + ext/cog/Makefile.in | 1142 + ext/cog/cog.h | 10 + ext/cog/cogframe.c | 984 + ext/cog/cogframe.h | 208 + ext/cog/cogtables.c | 516 + ext/cog/cogutils.h | 108 + ext/cog/cogvirtframe.c | 2203 + ext/cog/cogvirtframe.h | 55 + ext/cog/generate_tables.c | 239 + ext/cog/gstcms.c | 575 + ext/cog/gstcms.h | 71 + ext/cog/gstcog.c | 68 + ext/cog/gstcogcolorspace.c | 1049 + ext/cog/gstcogdownsample.c | 386 + ext/cog/gstcogmse.c | 548 + ext/cog/gstcogorc-dist.c | 15257 +++++ ext/cog/gstcogorc-dist.h | 150 + ext/cog/gstcogorc.orc | 1426 + ext/cog/gstcogscale.c | 659 + ext/cog/gstcogutils.c | 185 + ext/cog/gstcogutils.h | 37 + ext/cog/gstcolorconvert.c | 391 + ext/cog/gstlogoinsert.c | 513 + ext/curl/Makefile.am | 15 + ext/curl/Makefile.in | 873 + ext/curl/gstcurl.c | 40 + ext/curl/gstcurlsink.c | 1268 + ext/curl/gstcurlsink.h | 100 + ext/dc1394/Makefile.am | 16 + ext/dc1394/Makefile.in | 859 + ext/dc1394/gstdc1394.c | 1284 + ext/dc1394/gstdc1394.h | 81 + ext/dirac/Makefile.am | 23 + ext/dirac/Makefile.in | 883 + ext/dirac/gstdirac.cc | 55 + ext/dirac/gstdiracdec.h | 69 + ext/dirac/gstdiracenc.cc | 1457 + ext/directfb/Makefile.am | 18 + ext/directfb/Makefile.in | 903 + ext/directfb/dfb-example.c | 83 + ext/directfb/dfbvideosink.c | 2409 + ext/directfb/dfbvideosink.h | 130 + ext/divx/Makefile.am | 15 + ext/divx/Makefile.in | 878 + ext/divx/gstdivxdec.c | 577 + ext/divx/gstdivxdec.h | 74 + ext/divx/gstdivxenc.c | 544 + ext/divx/gstdivxenc.h | 83 + ext/dts/Makefile.am | 10 + ext/dts/Makefile.in | 857 + ext/dts/gstdtsdec.c | 973 + ext/dts/gstdtsdec.h | 93 + ext/faac/Makefile.am | 11 + ext/faac/Makefile.in | 859 + ext/faac/gstfaac.c | 947 + ext/faac/gstfaac.h | 83 + ext/faad/Makefile.am | 26 + ext/faad/Makefile.in | 875 + ext/faad/gstfaad.c | 1422 + ext/faad/gstfaad.h | 92 + ext/flite/Makefile.am | 17 + ext/flite/Makefile.in | 872 + ext/flite/gstflite.c | 48 + ext/flite/gstflitetestsrc.c | 432 + ext/gme/Makefile.am | 10 + ext/gme/Makefile.in | 855 + ext/gme/gstgme.c | 556 + ext/gme/gstgme.h | 70 + ext/gsettings/Makefile.am | 41 + ext/gsettings/Makefile.in | 952 + ext/gsettings/gstgsettings.h | 40 + ext/gsettings/gstgsettingsaudiosink.c | 353 + ext/gsettings/gstgsettingsaudiosink.h | 71 + ext/gsettings/gstgsettingsaudiosrc.c | 245 + ext/gsettings/gstgsettingsaudiosrc.h | 62 + ext/gsettings/gstgsettingsvideosink.c | 245 + ext/gsettings/gstgsettingsvideosink.h | 62 + ext/gsettings/gstgsettingsvideosrc.c | 245 + ext/gsettings/gstgsettingsvideosrc.h | 62 + ext/gsettings/gstswitchsink.c | 270 + ext/gsettings/gstswitchsink.h | 62 + ext/gsettings/gstswitchsrc.c | 262 + ext/gsettings/gstswitchsrc.h | 57 + ...sktop.gstreamer.default-elements.gschema.xml.in | 94 + ext/gsettings/plugin.c | 50 + ext/gsm/Makefile.am | 15 + ext/gsm/Makefile.in | 882 + ext/gsm/gstgsm.c | 46 + ext/gsm/gstgsmdec.c | 344 + ext/gsm/gstgsmdec.h | 78 + ext/gsm/gstgsmenc.c | 222 + ext/gsm/gstgsmenc.h | 70 + ext/jp2k/Makefile.am | 14 + ext/jp2k/Makefile.in | 882 + ext/jp2k/gstjasperdec.c | 892 + ext/jp2k/gstjasperdec.h | 98 + ext/jp2k/gstjasperenc.c | 612 + ext/jp2k/gstjasperenc.h | 91 + ext/jp2k/gstjp2k.c | 54 + ext/kate/Makefile.am | 20 + ext/kate/Makefile.in | 939 + ext/kate/README | 20 + ext/kate/gstkate.c | 117 + ext/kate/gstkate.h | 55 + ext/kate/gstkatedec.c | 462 + ext/kate/gstkatedec.h | 88 + ext/kate/gstkateenc.c | 1414 + ext/kate/gstkateenc.h | 123 + ext/kate/gstkateparse.c | 625 + ext/kate/gstkateparse.h | 78 + ext/kate/gstkatespu.c | 878 + ext/kate/gstkatespu.h | 65 + ext/kate/gstkatetag.c | 344 + ext/kate/gstkatetag.h | 65 + ext/kate/gstkatetiger.c | 1096 + ext/kate/gstkatetiger.h | 112 + ext/kate/gstkateutil.c | 591 + ext/kate/gstkateutil.h | 103 + ext/ladspa/Makefile.am | 15 + ext/ladspa/Makefile.in | 864 + ext/ladspa/gstladspa.c | 895 + ext/ladspa/gstladspa.h | 76 + ext/libmms/Makefile.am | 10 + ext/libmms/Makefile.in | 856 + ext/libmms/gstmms.c | 653 + ext/libmms/gstmms.h | 49 + ext/lv2/Makefile.am | 15 + ext/lv2/Makefile.in | 864 + ext/lv2/README | 27 + ext/lv2/gstlv2.c | 938 + ext/lv2/gstlv2.h | 95 + ext/mimic/Makefile.am | 9 + ext/mimic/Makefile.in | 873 + ext/mimic/gstmimdec.c | 424 + ext/mimic/gstmimdec.h | 65 + ext/mimic/gstmimenc.c | 622 + ext/mimic/gstmimenc.h | 74 + ext/mimic/gstmimic.c | 46 + ext/modplug/Makefile.am | 9 + ext/modplug/Makefile.in | 855 + ext/modplug/gstmodplug.cc | 874 + ext/modplug/gstmodplug.h | 89 + ext/mpeg2enc/Makefile.am | 22 + ext/mpeg2enc/Makefile.in | 911 + ext/mpeg2enc/gstmpeg2enc.cc | 727 + ext/mpeg2enc/gstmpeg2enc.hh | 104 + ext/mpeg2enc/gstmpeg2encoder.cc | 153 + ext/mpeg2enc/gstmpeg2encoder.hh | 53 + ext/mpeg2enc/gstmpeg2encoptions.cc | 773 + ext/mpeg2enc/gstmpeg2encoptions.hh | 43 + ext/mpeg2enc/gstmpeg2encpicturereader.cc | 178 + ext/mpeg2enc/gstmpeg2encpicturereader.hh | 55 + ext/mpeg2enc/gstmpeg2encstreamwriter.cc | 169 + ext/mpeg2enc/gstmpeg2encstreamwriter.hh | 66 + ext/mplex/Makefile.am | 20 + ext/mplex/Makefile.in | 900 + ext/mplex/gstmplex.cc | 810 + ext/mplex/gstmplex.hh | 122 + ext/mplex/gstmplexibitstream.cc | 94 + ext/mplex/gstmplexibitstream.hh | 54 + ext/mplex/gstmplexjob.cc | 239 + ext/mplex/gstmplexjob.hh | 44 + ext/mplex/gstmplexoutputstream.cc | 113 + ext/mplex/gstmplexoutputstream.hh | 59 + ext/musepack/Makefile.am | 13 + ext/musepack/Makefile.in | 871 + ext/musepack/gstmusepackdec.c | 667 + ext/musepack/gstmusepackdec.h | 75 + ext/musepack/gstmusepackreader.c | 194 + ext/musepack/gstmusepackreader.h | 33 + ext/musicbrainz/Makefile.am | 11 + ext/musicbrainz/Makefile.in | 857 + ext/musicbrainz/gsttrm.c | 393 + ext/musicbrainz/gsttrm.h | 76 + ext/mythtv/Makefile.am | 21 + ext/mythtv/Makefile.in | 867 + ext/mythtv/gstmythtvsrc.c | 1018 + ext/mythtv/gstmythtvsrc.h | 101 + ext/nas/Makefile.am | 11 + ext/nas/Makefile.in | 859 + ext/nas/nassink.c | 637 + ext/nas/nassink.h | 72 + ext/neon/Makefile.am | 10 + ext/neon/Makefile.in | 856 + ext/neon/gstneonhttpsrc.c | 1167 + ext/neon/gstneonhttpsrc.h | 95 + ext/ofa/Makefile.am | 19 + ext/ofa/Makefile.in | 865 + ext/ofa/gstofa.c | 258 + ext/ofa/gstofa.h | 79 + ext/opencv/Makefile.am | 49 + ext/opencv/Makefile.in | 1047 + ext/opencv/gstcvdilate.c | 130 + ext/opencv/gstcvdilate.h | 84 + ext/opencv/gstcvdilateerode.c | 214 + ext/opencv/gstcvdilateerode.h | 84 + ext/opencv/gstcvequalizehist.c | 135 + ext/opencv/gstcvequalizehist.h | 84 + ext/opencv/gstcverode.c | 130 + ext/opencv/gstcverode.h | 84 + ext/opencv/gstcvlaplace.c | 301 + ext/opencv/gstcvlaplace.h | 88 + ext/opencv/gstcvsmooth.c | 354 + ext/opencv/gstcvsmooth.h | 91 + ext/opencv/gstcvsobel.c | 286 + ext/opencv/gstcvsobel.h | 88 + ext/opencv/gstedgedetect.c | 334 + ext/opencv/gstedgedetect.h | 90 + ext/opencv/gstfaceblur.c | 320 + ext/opencv/gstfaceblur.h | 96 + ext/opencv/gstfacedetect.c | 493 + ext/opencv/gstfacedetect.h | 100 + ext/opencv/gstopencv.c | 85 + ext/opencv/gstopencvutils.c | 126 + ext/opencv/gstopencvutils.h | 46 + ext/opencv/gstopencvvideofilter.c | 289 + ext/opencv/gstopencvvideofilter.h | 106 + ext/opencv/gstpyramidsegment.c | 334 + ext/opencv/gstpyramidsegment.h | 96 + ext/opencv/gsttemplatematch.c | 428 + ext/opencv/gsttemplatematch.h | 92 + ext/opencv/gsttextoverlay.c | 413 + ext/opencv/gsttextoverlay.h | 98 + ext/resindvd/Makefile.am | 41 + ext/resindvd/Makefile.in | 985 + ext/resindvd/gstmpegdefs.h | 175 + ext/resindvd/gstmpegdemux.c | 2088 + ext/resindvd/gstmpegdemux.h | 133 + ext/resindvd/gstmpegdesc.c | 156 + ext/resindvd/gstmpegdesc.h | 249 + ext/resindvd/gstpesfilter.c | 623 + ext/resindvd/gstpesfilter.h | 88 + ext/resindvd/plugin.c | 60 + ext/resindvd/resin-play | 13 + ext/resindvd/resin-play2 | 13 + ext/resindvd/resindvdbin.c | 937 + ext/resindvd/resindvdbin.h | 88 + ext/resindvd/resindvdsrc.c | 2850 + ext/resindvd/resindvdsrc.h | 158 + ext/resindvd/rsnaudiomunge.c | 364 + ext/resindvd/rsnaudiomunge.h | 61 + ext/resindvd/rsndec.c | 449 + ext/resindvd/rsndec.h | 79 + ext/resindvd/rsnparsetter.c | 401 + ext/resindvd/rsnparsetter.h | 54 + ext/resindvd/rsnstreamselector.c | 784 + ext/resindvd/rsnstreamselector.h | 63 + ext/resindvd/rsnwrappedbuffer.c | 147 + ext/resindvd/rsnwrappedbuffer.h | 69 + ext/rsvg/Makefile.am | 16 + ext/rsvg/Makefile.in | 884 + ext/rsvg/gstrsvg.c | 45 + ext/rsvg/gstrsvgdec.c | 578 + ext/rsvg/gstrsvgdec.h | 79 + ext/rsvg/gstrsvgoverlay.c | 544 + ext/rsvg/gstrsvgoverlay.h | 82 + ext/rtmp/Makefile.am | 10 + ext/rtmp/Makefile.in | 856 + ext/rtmp/README | 7 + ext/rtmp/gstrtmpsrc.c | 598 + ext/rtmp/gstrtmpsrc.h | 83 + ext/schroedinger/Makefile.am | 27 + ext/schroedinger/Makefile.in | 904 + ext/schroedinger/gstschro.c | 51 + ext/schroedinger/gstschrodec.c | 676 + ext/schroedinger/gstschroenc.c | 821 + ext/schroedinger/gstschroutils.c | 152 + ext/schroedinger/gstschroutils.h | 34 + ext/sdl/Makefile.am | 19 + ext/sdl/Makefile.in | 886 + ext/sdl/gstsdl.c | 45 + ext/sdl/sdlaudiosink.c | 437 + ext/sdl/sdlaudiosink.h | 65 + ext/sdl/sdlvideosink.c | 1003 + ext/sdl/sdlvideosink.h | 82 + ext/sndfile/Makefile.am | 10 + ext/sndfile/Makefile.in | 874 + ext/sndfile/gstsf.c | 130 + ext/sndfile/gstsf.h | 45 + ext/sndfile/gstsfsink.c | 527 + ext/sndfile/gstsfsink.h | 73 + ext/sndfile/gstsfsrc.c | 503 + ext/sndfile/gstsfsrc.h | 69 + ext/soundtouch/Makefile.am | 14 + ext/soundtouch/Makefile.in | 922 + ext/soundtouch/gstbpmdetect.cc | 254 + ext/soundtouch/gstbpmdetect.hh | 58 + ext/soundtouch/gstpitch.cc | 928 + ext/soundtouch/gstpitch.hh | 89 + ext/soundtouch/plugin.c | 43 + ext/spc/Makefile.am | 11 + ext/spc/Makefile.in | 864 + ext/spc/gstspc.c | 593 + ext/spc/gstspc.h | 72 + ext/spc/tag.c | 353 + ext/spc/tag.h | 37 + ext/swfdec/Makefile.am | 9 + ext/swfdec/Makefile.in | 855 + ext/swfdec/gstswfdec.c | 908 + ext/swfdec/gstswfdec.h | 97 + ext/timidity/Makefile.am | 33 + ext/timidity/Makefile.in | 902 + ext/timidity/README | 3 + ext/timidity/gsttimidity.c | 810 + ext/timidity/gsttimidity.h | 84 + ext/timidity/gstwildmidi.c | 998 + ext/timidity/gstwildmidi.h | 90 + ext/vp8/Makefile.am | 25 + ext/vp8/Makefile.in | 904 + ext/vp8/gstvp8dec.c | 498 + ext/vp8/gstvp8dec.h | 80 + ext/vp8/gstvp8enc.c | 1008 + ext/vp8/gstvp8enc.h | 95 + ext/vp8/gstvp8utils.c | 64 + ext/vp8/gstvp8utils.h | 47 + ext/vp8/plugin.c | 51 + ext/xvid/Makefile.am | 9 + ext/xvid/Makefile.in | 874 + ext/xvid/gstxvid.c | 371 + ext/xvid/gstxvid.h | 57 + ext/xvid/gstxviddec.c | 670 + ext/xvid/gstxviddec.h | 73 + ext/xvid/gstxvidenc.c | 1221 + ext/xvid/gstxvidenc.h | 136 + ext/zbar/Makefile.am | 11 + ext/zbar/Makefile.in | 856 + ext/zbar/gstzbar.c | 388 + ext/zbar/gstzbar.h | 77 + gst-libs/Makefile.am | 1 + gst-libs/Makefile.in | 859 + gst-libs/gst/Makefile.am | 9 + gst-libs/gst/Makefile.in | 864 + gst-libs/gst/basecamerabinsrc/Makefile.am | 42 + gst-libs/gst/basecamerabinsrc/Makefile.in | 940 + gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c | 639 + gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h | 150 + gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.c | 39 + gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.h | 62 + .../gst/basecamerabinsrc/gstcamerabinpreview.c | 226 + .../gst/basecamerabinsrc/gstcamerabinpreview.h | 49 + gst-libs/gst/gettext.h | 69 + gst-libs/gst/gst-i18n-plugin.h | 45 + gst-libs/gst/interfaces/Makefile.am | 61 + gst-libs/gst/interfaces/Makefile.in | 1025 + gst-libs/gst/interfaces/photography.c | 624 + gst-libs/gst/interfaces/photography.h | 387 + gst-libs/gst/signalprocessor/Makefile.am | 16 + gst-libs/gst/signalprocessor/Makefile.in | 894 + gst-libs/gst/signalprocessor/gstsignalprocessor.c | 1176 + gst-libs/gst/signalprocessor/gstsignalprocessor.h | 142 + gst-libs/gst/video/Makefile.am | 25 + gst-libs/gst/video/Makefile.in | 931 + gst-libs/gst/video/gstbasevideocodec.c | 544 + gst-libs/gst/video/gstbasevideocodec.h | 195 + gst-libs/gst/video/gstbasevideodecoder.c | 1538 + gst-libs/gst/video/gstbasevideodecoder.h | 182 + gst-libs/gst/video/gstbasevideoencoder.c | 622 + gst-libs/gst/video/gstbasevideoencoder.h | 128 + gst-libs/gst/video/gstbasevideoutils.c | 137 + gst-plugins-bad.doap | 290 + gst-plugins-bad.spec.in | 256 + gst/Makefile.am | 4 + gst/Makefile.in | 874 + gst/adpcmdec/Makefile.am | 25 + gst/adpcmdec/Makefile.in | 870 + gst/adpcmdec/adpcmdec.c | 588 + gst/adpcmenc/Makefile.am | 25 + gst/adpcmenc/Makefile.in | 870 + gst/adpcmenc/adpcmenc.c | 569 + gst/aiff/Makefile.am | 29 + gst/aiff/Makefile.in | 896 + gst/aiff/aiff.c | 64 + gst/aiff/aiffmux.c | 421 + gst/aiff/aiffmux.h | 94 + gst/aiff/aiffparse.c | 1594 + gst/aiff/aiffparse.h | 126 + gst/asfmux/Makefile.am | 39 + gst/asfmux/Makefile.in | 929 + gst/asfmux/gstasf.c | 51 + gst/asfmux/gstasfmux.c | 2430 + gst/asfmux/gstasfmux.h | 159 + gst/asfmux/gstasfobjects.c | 844 + gst/asfmux/gstasfobjects.h | 196 + gst/asfmux/gstasfparse.c | 579 + gst/asfmux/gstasfparse.h | 88 + gst/asfmux/gstrtpasfpay.c | 470 + gst/asfmux/gstrtpasfpay.h | 87 + gst/autoconvert/Makefile.am | 24 + gst/autoconvert/Makefile.in | 889 + gst/autoconvert/gstautoconvert.c | 1579 + gst/autoconvert/gstautoconvert.h | 71 + gst/autoconvert/gstautovideoconvert.c | 289 + gst/autoconvert/gstautovideoconvert.h | 55 + gst/autoconvert/plugin.c | 46 + gst/bayer/Makefile.am | 28 + gst/bayer/Makefile.in | 894 + gst/bayer/gstbayer.c | 45 + gst/bayer/gstbayer2rgb.c | 686 + gst/bayer/gstrgb2bayer.c | 307 + gst/bayer/gstrgb2bayer.h | 61 + gst/camerabin/Makefile.am | 63 + gst/camerabin/Makefile.in | 1039 + gst/camerabin/TODO | 31 + gst/camerabin/camerabindebug.h | 30 + gst/camerabin/camerabingeneral.c | 263 + gst/camerabin/camerabingeneral.h | 36 + gst/camerabin/camerabinimage.c | 744 + gst/camerabin/camerabinimage.h | 90 + gst/camerabin/camerabinpreview.c | 364 + gst/camerabin/camerabinpreview.h | 57 + gst/camerabin/camerabinvideo.c | 838 + gst/camerabin/camerabinvideo.h | 139 + gst/camerabin/gstcamerabin-enum.c | 62 + gst/camerabin/gstcamerabin-enum.h | 111 + gst/camerabin/gstcamerabin-marshal.list | 8 + gst/camerabin/gstcamerabin.c | 4285 ++ gst/camerabin/gstcamerabin.h | 235 + gst/camerabin/gstcamerabincolorbalance.c | 81 + gst/camerabin/gstcamerabincolorbalance.h | 28 + gst/camerabin/gstinputselector.c | 1498 + gst/camerabin/gstinputselector.h | 84 + gst/camerabin2/Makefile.am | 45 + gst/camerabin2/Makefile.in | 945 + gst/camerabin2/camerabingeneral.c | 278 + gst/camerabin2/camerabingeneral.h | 39 + gst/camerabin2/gstcamerabin2.c | 1610 + gst/camerabin2/gstcamerabin2.h | 109 + gst/camerabin2/gstimagecapturebin.c | 352 + gst/camerabin2/gstimagecapturebin.h | 63 + gst/camerabin2/gstplugin.c | 49 + gst/camerabin2/gstviewfinderbin.c | 305 + gst/camerabin2/gstviewfinderbin.h | 58 + gst/camerabin2/gstwrappercamerabinsrc.c | 1158 + gst/camerabin2/gstwrappercamerabinsrc.h | 129 + gst/cdxaparse/Makefile.am | 38 + gst/cdxaparse/Makefile.in | 894 + gst/cdxaparse/gstcdxaparse.c | 578 + gst/cdxaparse/gstcdxaparse.h | 75 + gst/cdxaparse/gstvcdparse.c | 411 + gst/cdxaparse/gstvcdparse.h | 64 + gst/coloreffects/Makefile.am | 34 + gst/coloreffects/Makefile.in | 904 + gst/coloreffects/gstchromahold.c | 464 + gst/coloreffects/gstchromahold.h | 82 + gst/coloreffects/gstcoloreffects.c | 601 + gst/coloreffects/gstcoloreffects.h | 91 + gst/coloreffects/gstplugin.c | 60 + gst/colorspace/Makefile.am | 35 + gst/colorspace/Makefile.in | 980 + gst/colorspace/colorspace.c | 2399 + gst/colorspace/colorspace.h | 97 + gst/colorspace/gstcolorspace.c | 593 + gst/colorspace/gstcolorspace.h | 69 + gst/colorspace/gstcolorspaceorc-dist.c | 19395 ++++++ gst/colorspace/gstcolorspaceorc-dist.h | 168 + gst/colorspace/gstcolorspaceorc.orc | 1757 + gst/dataurisrc/Makefile.am | 22 + gst/dataurisrc/Makefile.in | 865 + gst/dataurisrc/gstdataurisrc.c | 483 + gst/dataurisrc/gstdataurisrc.h | 61 + gst/dccp/Makefile.am | 25 + gst/dccp/Makefile.in | 924 + gst/dccp/gstdccp.c | 557 + gst/dccp/gstdccp.h | 94 + gst/dccp/gstdccp_common.h | 43 + gst/dccp/gstdccpclientsink.c | 324 + gst/dccp/gstdccpclientsink.h | 82 + gst/dccp/gstdccpclientsrc.c | 406 + gst/dccp/gstdccpclientsrc.h | 72 + gst/dccp/gstdccpplugin.c | 60 + gst/dccp/gstdccpserversink.c | 466 + gst/dccp/gstdccpserversink.h | 91 + gst/dccp/gstdccpserversrc.c | 391 + gst/dccp/gstdccpserversrc.h | 88 + gst/debugutils/Makefile.am | 45 + gst/debugutils/Makefile.in | 982 + gst/debugutils/debugutils-marshal.list | 2 + gst/debugutils/debugutilsbad.c | 46 + gst/debugutils/fpsdisplaysink.c | 725 + gst/debugutils/fpsdisplaysink.h | 80 + gst/debugutils/gstchecksumsink.c | 125 + gst/debugutils/gstchecksumsink.h | 52 + gst/debugutils/gstchopmydata.c | 389 + gst/debugutils/gstchopmydata.h | 65 + gst/dtmf/Makefile.am | 36 + gst/dtmf/Makefile.in | 934 + gst/dtmf/gstdtmf.c | 33 + gst/dtmf/gstdtmfcommon.h | 37 + gst/dtmf/gstdtmfdetect.c | 283 + gst/dtmf/gstdtmfdetect.h | 71 + gst/dtmf/gstdtmfsrc.c | 874 + gst/dtmf/gstdtmfsrc.h | 98 + gst/dtmf/gstrtpdtmfcommon.h | 23 + gst/dtmf/gstrtpdtmfdepay.c | 539 + gst/dtmf/gstrtpdtmfdepay.h | 68 + gst/dtmf/gstrtpdtmfsrc.c | 1053 + gst/dtmf/gstrtpdtmfsrc.h | 112 + gst/dtmf/tone_detect.c | 503 + gst/dtmf/tone_detect.h | 95 + gst/dvbsuboverlay/Makefile.am | 24 + gst/dvbsuboverlay/Makefile.in | 879 + gst/dvbsuboverlay/TODO | 10 + gst/dvbsuboverlay/dvb-sub.c | 1491 + gst/dvbsuboverlay/dvb-sub.h | 138 + gst/dvbsuboverlay/gstdvbsuboverlay.c | 1085 + gst/dvbsuboverlay/gstdvbsuboverlay.h | 74 + gst/dvdspu/Makefile.am | 28 + gst/dvdspu/Makefile.in | 912 + gst/dvdspu/Notes.txt | 324 + gst/dvdspu/gstdvdspu-render.c | 94 + gst/dvdspu/gstdvdspu.c | 1185 + gst/dvdspu/gstdvdspu.h | 132 + gst/dvdspu/gstspu-common.h | 56 + gst/dvdspu/gstspu-pgs.c | 784 + gst/dvdspu/gstspu-pgs.h | 106 + gst/dvdspu/gstspu-vobsub-render.c | 612 + gst/dvdspu/gstspu-vobsub.c | 513 + gst/dvdspu/gstspu-vobsub.h | 110 + gst/festival/Makefile.am | 33 + gst/festival/Makefile.in | 875 + gst/festival/gstfestival.c | 528 + gst/festival/gstfestival.h | 124 + gst/fieldanalysis/Makefile.am | 26 + gst/fieldanalysis/Makefile.in | 959 + gst/fieldanalysis/gstfieldanalysis.c | 1809 + gst/fieldanalysis/gstfieldanalysis.h | 144 + gst/fieldanalysis/gstfieldanalysisorc-dist.c | 1079 + gst/fieldanalysis/gstfieldanalysisorc-dist.h | 82 + gst/fieldanalysis/gstfieldanalysisorc.orc | 119 + gst/freeze/Makefile.am | 23 + gst/freeze/Makefile.in | 868 + gst/freeze/gstfreeze.c | 393 + gst/freeze/gstfreeze.h | 69 + gst/frei0r/Makefile.am | 29 + gst/frei0r/Makefile.in | 907 + gst/frei0r/frei0r.h | 590 + gst/frei0r/gstfrei0r.c | 717 + gst/frei0r/gstfrei0r.h | 97 + gst/frei0r/gstfrei0rfilter.c | 274 + gst/frei0r/gstfrei0rfilter.h | 65 + gst/frei0r/gstfrei0rmixer.c | 817 + gst/frei0r/gstfrei0rmixer.h | 75 + gst/frei0r/gstfrei0rsrc.c | 438 + gst/frei0r/gstfrei0rsrc.h | 69 + gst/gaudieffects/Makefile.am | 29 + gst/gaudieffects/Makefile.in | 948 + gst/gaudieffects/blur-example.py | 23 + gst/gaudieffects/burn-example.py | 23 + gst/gaudieffects/gstburn.c | 320 + gst/gaudieffects/gstburn.h | 91 + gst/gaudieffects/gstchromium.c | 394 + gst/gaudieffects/gstchromium.h | 87 + gst/gaudieffects/gstdilate.c | 441 + gst/gaudieffects/gstdilate.h | 91 + gst/gaudieffects/gstdodge.c | 297 + gst/gaudieffects/gstdodge.h | 90 + gst/gaudieffects/gstexclusion.c | 334 + gst/gaudieffects/gstexclusion.h | 91 + gst/gaudieffects/gstgaussblur.c | 411 + gst/gaudieffects/gstgaussblur.h | 40 + gst/gaudieffects/gstplugin.c | 86 + gst/gaudieffects/gstplugin.h | 63 + gst/gaudieffects/gstsolarize.c | 400 + gst/gaudieffects/gstsolarize.h | 91 + gst/geometrictransform/Makefile.am | 66 + gst/geometrictransform/Makefile.in | 1099 + gst/geometrictransform/geometricmath.c | 201 + gst/geometrictransform/geometricmath.h | 70 + gst/geometrictransform/gstbulge.c | 221 + gst/geometrictransform/gstbulge.h | 84 + gst/geometrictransform/gstcircle.c | 244 + gst/geometrictransform/gstcircle.h | 89 + .../gstcirclegeometrictransform.c | 246 + .../gstcirclegeometrictransform.h | 94 + gst/geometrictransform/gstdiffuse.c | 229 + gst/geometrictransform/gstdiffuse.h | 90 + gst/geometrictransform/gstfisheye.c | 150 + gst/geometrictransform/gstfisheye.h | 83 + gst/geometrictransform/gstgeometrictransform.c | 441 + gst/geometrictransform/gstgeometrictransform.h | 119 + gst/geometrictransform/gstkaleidoscope.c | 254 + gst/geometrictransform/gstkaleidoscope.h | 89 + gst/geometrictransform/gstmarble.c | 287 + gst/geometrictransform/gstmarble.h | 95 + gst/geometrictransform/gstmirror.c | 225 + gst/geometrictransform/gstmirror.h | 102 + gst/geometrictransform/gstpinch.c | 221 + gst/geometrictransform/gstpinch.h | 87 + gst/geometrictransform/gstrotate.c | 226 + gst/geometrictransform/gstrotate.h | 87 + gst/geometrictransform/gstsphere.c | 233 + gst/geometrictransform/gstsphere.h | 87 + gst/geometrictransform/gstsquare.c | 239 + gst/geometrictransform/gstsquare.h | 86 + gst/geometrictransform/gststretch.c | 224 + gst/geometrictransform/gststretch.h | 84 + gst/geometrictransform/gsttunnel.c | 150 + gst/geometrictransform/gsttunnel.h | 82 + gst/geometrictransform/gsttwirl.c | 211 + gst/geometrictransform/gsttwirl.h | 87 + gst/geometrictransform/gstwaterripple.c | 252 + gst/geometrictransform/gstwaterripple.h | 89 + gst/geometrictransform/plugin.c | 95 + gst/h264parse/Makefile.am | 26 + gst/h264parse/Makefile.in | 873 + gst/h264parse/gsth264parse.c | 2707 + gst/h264parse/gsth264parse.h | 154 + gst/hdvparse/Makefile.am | 26 + gst/hdvparse/Makefile.in | 873 + gst/hdvparse/gsthdvparse.c | 890 + gst/hdvparse/gsthdvparse.h | 56 + gst/hls/Makefile.am | 32 + gst/hls/Makefile.in | 899 + gst/hls/gstfragmented.h | 14 + gst/hls/gstfragmentedplugin.c | 27 + gst/hls/gsthlsdemux.c | 1056 + gst/hls/gsthlsdemux.h | 100 + gst/hls/m3u8.c | 508 + gst/hls/m3u8.h | 86 + gst/id3tag/Makefile.am | 33 + gst/id3tag/Makefile.in | 898 + gst/id3tag/gstid3mux.c | 230 + gst/id3tag/gstid3mux.h | 63 + gst/id3tag/gsttagmux.c | 495 + gst/id3tag/gsttagmux.h | 79 + gst/id3tag/id3tag.c | 1317 + gst/id3tag/id3tag.h | 32 + gst/interlace/Makefile.am | 30 + gst/interlace/Makefile.in | 874 + gst/interlace/gstinterlace.c | 854 + gst/invtelecine/Makefile.am | 30 + gst/invtelecine/Makefile.in | 875 + gst/invtelecine/gstinvtelecine.c | 966 + gst/ivfparse/Makefile.am | 27 + gst/ivfparse/Makefile.in | 875 + gst/ivfparse/gstivfparse.c | 300 + gst/ivfparse/gstivfparse.h | 73 + gst/jp2kdecimator/Makefile.am | 28 + gst/jp2kdecimator/Makefile.in | 887 + gst/jp2kdecimator/gstjp2kdecimator.c | 387 + gst/jp2kdecimator/gstjp2kdecimator.h | 58 + gst/jp2kdecimator/jp2kcodestream.c | 1817 + gst/jp2kdecimator/jp2kcodestream.h | 193 + gst/jpegformat/Makefile.am | 27 + gst/jpegformat/Makefile.in | 895 + gst/jpegformat/gstjifmux.c | 783 + gst/jpegformat/gstjifmux.h | 61 + gst/jpegformat/gstjpegformat.c | 46 + gst/jpegformat/gstjpegformat.h | 92 + gst/jpegformat/gstjpegparse.c | 1057 + gst/jpegformat/gstjpegparse.h | 61 + gst/legacyresample/Makefile.am | 35 + gst/legacyresample/Makefile.in | 934 + gst/legacyresample/buffer.c | 253 + gst/legacyresample/buffer.h | 51 + gst/legacyresample/debug.h | 51 + gst/legacyresample/functable.c | 254 + gst/legacyresample/functable.h | 61 + gst/legacyresample/gstlegacyresample.c | 878 + gst/legacyresample/gstlegacyresample.h | 79 + gst/legacyresample/resample.c | 312 + gst/legacyresample/resample.h | 131 + gst/legacyresample/resample_functable.c | 274 + gst/legacyresample/resample_ref.c | 224 + gst/librfb/Makefile.am | 42 + gst/librfb/Makefile.in | 944 + gst/librfb/d3des.c | 466 + gst/librfb/d3des.h | 55 + gst/librfb/gstrfbsrc.c | 551 + gst/librfb/gstrfbsrc.h | 71 + gst/librfb/rfb.h | 7 + gst/librfb/rfbbuffer.c | 30 + gst/librfb/rfbbuffer.h | 23 + gst/librfb/rfbcontext.h | 35 + gst/librfb/rfbdecoder.c | 906 + gst/librfb/rfbdecoder.h | 120 + gst/librfb/rfbutil.h | 7 + gst/librfb/vncauth.c | 174 + gst/librfb/vncauth.h | 30 + gst/liveadder/Makefile.am | 25 + gst/liveadder/Makefile.in | 872 + gst/liveadder/liveadder.c | 1534 + gst/liveadder/liveadder.h | 108 + gst/mpeg4videoparse/Makefile.am | 24 + gst/mpeg4videoparse/Makefile.in | 871 + gst/mpeg4videoparse/mpeg4videoparse.c | 1097 + gst/mpeg4videoparse/mpeg4videoparse.h | 90 + gst/mpegdemux/Makefile.am | 50 + gst/mpegdemux/Makefile.in | 999 + gst/mpegdemux/flumpegdemux.c | 77 + gst/mpegdemux/flutspatinfo.c | 139 + gst/mpegdemux/flutspatinfo.h | 72 + gst/mpegdemux/flutspmtinfo.c | 223 + gst/mpegdemux/flutspmtinfo.h | 81 + gst/mpegdemux/flutspmtstreaminfo.c | 206 + gst/mpegdemux/flutspmtstreaminfo.h | 80 + gst/mpegdemux/gstmpegdefs.h | 232 + gst/mpegdemux/gstmpegdemux.c | 2998 + gst/mpegdemux/gstmpegdemux.h | 168 + gst/mpegdemux/gstmpegdesc.c | 209 + gst/mpegdemux/gstmpegdesc.h | 342 + gst/mpegdemux/gstmpegtsdemux.c | 3376 + gst/mpegdemux/gstmpegtsdemux.h | 249 + gst/mpegdemux/gstpesfilter.c | 664 + gst/mpegdemux/gstpesfilter.h | 108 + gst/mpegdemux/gstsectionfilter.c | 164 + gst/mpegdemux/gstsectionfilter.h | 69 + gst/mpegdemux/mpegtspacketizer.c | 2593 + gst/mpegdemux/mpegtspacketizer.h | 156 + gst/mpegdemux/mpegtsparse.c | 1457 + gst/mpegdemux/mpegtsparse.h | 85 + gst/mpegpsmux/Makefile.am | 37 + gst/mpegpsmux/Makefile.in | 923 + gst/mpegpsmux/bits.h | 95 + gst/mpegpsmux/crc.h | 100 + gst/mpegpsmux/mpegpsmux.c | 698 + gst/mpegpsmux/mpegpsmux.h | 120 + gst/mpegpsmux/mpegpsmux_aac.c | 152 + gst/mpegpsmux/mpegpsmux_aac.h | 93 + gst/mpegpsmux/mpegpsmux_h264.c | 199 + gst/mpegpsmux/mpegpsmux_h264.h | 93 + gst/mpegpsmux/psmux.c | 443 + gst/mpegpsmux/psmux.h | 114 + gst/mpegpsmux/psmuxcommon.h | 162 + gst/mpegpsmux/psmuxstream.c | 757 + gst/mpegpsmux/psmuxstream.h | 212 + gst/mpegtsdemux/Makefile.am | 40 + gst/mpegtsdemux/Makefile.in | 939 + gst/mpegtsdemux/TODO | 117 + gst/mpegtsdemux/gstmpegdefs.h | 222 + gst/mpegtsdemux/gstmpegdesc.c | 205 + gst/mpegtsdemux/gstmpegdesc.h | 338 + gst/mpegtsdemux/gsttsdemux.c | 47 + gst/mpegtsdemux/mpegtsbase.c | 1262 + gst/mpegtsdemux/mpegtsbase.h | 169 + gst/mpegtsdemux/mpegtspacketizer.c | 2699 + gst/mpegtsdemux/mpegtspacketizer.h | 167 + gst/mpegtsdemux/mpegtsparse.c | 718 + gst/mpegtsdemux/mpegtsparse.h | 71 + gst/mpegtsdemux/tsdemux.c | 1507 + gst/mpegtsdemux/tsdemux.h | 78 + gst/mpegtsmux/Makefile.am | 18 + gst/mpegtsmux/Makefile.in | 1038 + gst/mpegtsmux/mpegtsmux.c | 1107 + gst/mpegtsmux/mpegtsmux.h | 188 + gst/mpegtsmux/mpegtsmux_aac.c | 150 + gst/mpegtsmux/mpegtsmux_aac.h | 91 + gst/mpegtsmux/mpegtsmux_h264.c | 294 + gst/mpegtsmux/mpegtsmux_h264.h | 93 + gst/mpegtsmux/tsmux/Makefile.am | 8 + gst/mpegtsmux/tsmux/Makefile.in | 814 + gst/mpegtsmux/tsmux/crc.h | 58 + gst/mpegtsmux/tsmux/tsmux.c | 1050 + gst/mpegtsmux/tsmux/tsmux.h | 187 + gst/mpegtsmux/tsmux/tsmuxcommon.h | 180 + gst/mpegtsmux/tsmux/tsmuxstream.c | 896 + gst/mpegtsmux/tsmux/tsmuxstream.h | 223 + gst/mpegvideoparse/Makefile.am | 24 + gst/mpegvideoparse/Makefile.in | 881 + gst/mpegvideoparse/mpegpacketiser.c | 644 + gst/mpegvideoparse/mpegpacketiser.h | 153 + gst/mpegvideoparse/mpegvideoparse.c | 1036 + gst/mpegvideoparse/mpegvideoparse.h | 72 + gst/mve/Makefile.am | 35 + gst/mve/Makefile.in | 956 + gst/mve/TODO | 5 + gst/mve/gstmve.c | 46 + gst/mve/gstmvedemux.c | 1155 + gst/mve/gstmvedemux.h | 114 + gst/mve/gstmvemux.c | 1486 + gst/mve/gstmvemux.h | 127 + gst/mve/mve.h | 62 + gst/mve/mveaudiodec.c | 82 + gst/mve/mveaudioenc.c | 154 + gst/mve/mvevideodec16.c | 849 + gst/mve/mvevideodec8.c | 802 + gst/mve/mvevideoenc16.c | 1649 + gst/mve/mvevideoenc8.c | 1733 + gst/mxf/Makefile.am | 58 + gst/mxf/Makefile.in | 1058 + gst/mxf/mxf.c | 85 + gst/mxf/mxfaes-bwf.c | 1594 + gst/mxf/mxfaes-bwf.h | 31 + gst/mxf/mxfalaw.c | 305 + gst/mxf/mxfalaw.h | 31 + gst/mxf/mxfd10.c | 260 + gst/mxf/mxfd10.h | 31 + gst/mxf/mxfdemux.c | 4040 ++ gst/mxf/mxfdemux.h | 183 + gst/mxf/mxfdms1.c | 5666 ++ gst/mxf/mxfdms1.h | 933 + gst/mxf/mxfdv-dif.c | 240 + gst/mxf/mxfdv-dif.h | 31 + gst/mxf/mxfessence.c | 108 + gst/mxf/mxfessence.h | 54 + gst/mxf/mxfjpeg2000.c | 330 + gst/mxf/mxfjpeg2000.h | 31 + gst/mxf/mxfmetadata.c | 6471 ++ gst/mxf/mxfmetadata.h | 775 + gst/mxf/mxfmpeg.c | 1291 + gst/mxf/mxfmpeg.h | 33 + gst/mxf/mxfmux.c | 1505 + gst/mxf/mxfmux.h | 106 + gst/mxf/mxfquark.c | 211 + gst/mxf/mxfquark.h | 204 + gst/mxf/mxftypes.c | 1578 + gst/mxf/mxftypes.h | 268 + gst/mxf/mxful.c | 653 + gst/mxf/mxful.h | 183 + gst/mxf/mxfup.c | 587 + gst/mxf/mxfup.h | 31 + gst/mxf/mxfvc3.c | 249 + gst/mxf/mxfvc3.h | 31 + gst/nsf/Makefile.am | 50 + gst/nsf/Makefile.in | 979 + gst/nsf/dis6502.h | 81 + gst/nsf/fds_snd.c | 141 + gst/nsf/fds_snd.h | 79 + gst/nsf/fmopl.c | 1372 + gst/nsf/fmopl.h | 166 + gst/nsf/gstnsf.c | 646 + gst/nsf/gstnsf.h | 88 + gst/nsf/log.c | 151 + gst/nsf/log.h | 78 + gst/nsf/mmc5_snd.c | 399 + gst/nsf/mmc5_snd.h | 111 + gst/nsf/nes6502.c | 2609 + gst/nsf/nes6502.h | 189 + gst/nsf/nes_apu.c | 1295 + gst/nsf/nes_apu.h | 371 + gst/nsf/nsf.c | 1121 + gst/nsf/nsf.h | 221 + gst/nsf/osd.h | 127 + gst/nsf/types.h | 153 + gst/nsf/vrc7_snd.c | 390 + gst/nsf/vrc7_snd.h | 103 + gst/nsf/vrcvisnd.c | 258 + gst/nsf/vrcvisnd.h | 114 + gst/nuvdemux/Makefile.am | 24 + gst/nuvdemux/Makefile.in | 868 + gst/nuvdemux/gstnuvdemux.c | 944 + gst/nuvdemux/gstnuvdemux.h | 173 + gst/patchdetect/Makefile.am | 33 + gst/patchdetect/Makefile.in | 883 + gst/patchdetect/gstpatchdetect.c | 1253 + gst/patchdetect/gstpatchdetect.h | 61 + gst/pcapparse/Makefile.am | 33 + gst/pcapparse/Makefile.in | 877 + gst/pcapparse/gstpcapparse.c | 575 + gst/pcapparse/gstpcapparse.h | 97 + gst/pnm/Makefile.am | 23 + gst/pnm/Makefile.in | 898 + gst/pnm/gstpnm.c | 45 + gst/pnm/gstpnmdec.c | 329 + gst/pnm/gstpnmdec.h | 56 + gst/pnm/gstpnmenc.c | 255 + gst/pnm/gstpnmenc.h | 56 + gst/pnm/gstpnmutils.c | 187 + gst/pnm/gstpnmutils.h | 91 + gst/rawparse/Makefile.am | 38 + gst/rawparse/Makefile.in | 916 + gst/rawparse/README | 23 + gst/rawparse/gstaudioparse.c | 454 + gst/rawparse/gstaudioparse.h | 67 + gst/rawparse/gstrawparse.c | 1068 + gst/rawparse/gstrawparse.h | 98 + gst/rawparse/gstvideoparse.c | 259 + gst/rawparse/gstvideoparse.h | 68 + gst/rawparse/plugin.c | 26 + gst/real/Makefile.am | 21 + gst/real/Makefile.in | 889 + gst/real/gstreal.c | 47 + gst/real/gstreal.h | 35 + gst/real/gstrealaudiodec.c | 768 + gst/real/gstrealaudiodec.h | 40 + gst/real/gstrealvideodec.c | 774 + gst/real/gstrealvideodec.h | 104 + gst/rtpmux/Makefile.am | 26 + gst/rtpmux/Makefile.in | 892 + gst/rtpmux/gstrtpdtmfmux.c | 208 + gst/rtpmux/gstrtpdtmfmux.h | 67 + gst/rtpmux/gstrtpmux.c | 838 + gst/rtpmux/gstrtpmux.h | 92 + gst/rtpmux/gstrtpmuxer.c | 48 + gst/rtpvp8/Makefile.am | 29 + gst/rtpvp8/Makefile.in | 898 + gst/rtpvp8/gstrtpvp8.c | 21 + gst/rtpvp8/gstrtpvp8depay.c | 194 + gst/rtpvp8/gstrtpvp8depay.h | 63 + gst/rtpvp8/gstrtpvp8pay.c | 453 + gst/rtpvp8/gstrtpvp8pay.h | 65 + gst/scaletempo/Makefile.am | 28 + gst/scaletempo/Makefile.in | 889 + gst/scaletempo/gstscaletempo.c | 751 + gst/scaletempo/gstscaletempo.h | 49 + gst/scaletempo/gstscaletempoplugin.c | 74 + gst/sdi/Makefile.am | 27 + gst/sdi/Makefile.in | 893 + gst/sdi/gstsdi.c | 44 + gst/sdi/gstsdidemux.c | 553 + gst/sdi/gstsdidemux.h | 76 + gst/sdi/gstsdimux.c | 324 + gst/sdi/gstsdimux.h | 54 + gst/sdp/Makefile.am | 27 + gst/sdp/Makefile.in | 884 + gst/sdp/gstsdpdemux.c | 1573 + gst/sdp/gstsdpdemux.h | 117 + gst/sdp/gstsdpelem.c | 40 + gst/segmentclip/Makefile.am | 24 + gst/segmentclip/Makefile.in | 900 + gst/segmentclip/gstaudiosegmentclip.c | 191 + gst/segmentclip/gstaudiosegmentclip.h | 61 + gst/segmentclip/gstsegmentclip.c | 307 + gst/segmentclip/gstsegmentclip.h | 66 + gst/segmentclip/gstvideosegmentclip.c | 193 + gst/segmentclip/gstvideosegmentclip.h | 60 + gst/segmentclip/plugin.c | 43 + gst/siren/Makefile.am | 30 + gst/siren/Makefile.in | 952 + gst/siren/common.c | 529 + gst/siren/common.h | 146 + gst/siren/dct4.c | 199 + gst/siren/dct4.h | 30 + gst/siren/decoder.c | 253 + gst/siren/decoder.h | 52 + gst/siren/encoder.c | 257 + gst/siren/encoder.h | 47 + gst/siren/gstsiren.c | 47 + gst/siren/gstsirendec.c | 356 + gst/siren/gstsirendec.h | 73 + gst/siren/gstsirenenc.c | 359 + gst/siren/gstsirenenc.h | 73 + gst/siren/huffman.c | 429 + gst/siren/huffman.h | 35 + gst/siren/huffman_consts.h | 528 + gst/siren/rmlt.c | 149 + gst/siren/rmlt.h | 30 + gst/siren/siren7.h | 30 + gst/speed/Makefile.am | 32 + gst/speed/Makefile.in | 877 + gst/speed/gstspeed.c | 772 + gst/speed/gstspeed.h | 77 + gst/stereo/Makefile.am | 26 + gst/stereo/Makefile.in | 871 + gst/stereo/gststereo.c | 230 + gst/stereo/gststereo.h | 55 + gst/subenc/Makefile.am | 25 + gst/subenc/Makefile.in | 873 + gst/subenc/gstsrtenc.c | 256 + gst/subenc/gstsrtenc.h | 63 + gst/tta/Makefile.am | 27 + gst/tta/Makefile.in | 893 + gst/tta/crc32.h | 114 + gst/tta/filters.h | 110 + gst/tta/gsttta.c | 40 + gst/tta/gstttadec.c | 449 + gst/tta/gstttadec.h | 84 + gst/tta/gstttaparse.c | 506 + gst/tta/gstttaparse.h | 79 + gst/tta/ttadec.h | 144 + gst/videofilters/Makefile.am | 42 + gst/videofilters/Makefile.in | 925 + gst/videofilters/gstscenechange.c | 454 + gst/videofilters/gstscenechange.h | 58 + gst/videofilters/gstvideofilter2.c | 290 + gst/videofilters/gstvideofilter2.h | 81 + gst/videofilters/gstvideofiltersbad.c | 46 + gst/videofilters/gstzebrastripe.c | 322 + gst/videofilters/gstzebrastripe.h | 59 + gst/videomaxrate/Makefile.am | 24 + gst/videomaxrate/Makefile.in | 872 + gst/videomaxrate/videomaxrate.c | 330 + gst/videomaxrate/videomaxrate.h | 66 + gst/videomeasure/Makefile.am | 32 + gst/videomeasure/Makefile.in | 902 + gst/videomeasure/gstvideomeasure.c | 71 + gst/videomeasure/gstvideomeasure.h | 31 + gst/videomeasure/gstvideomeasure_collector.c | 413 + gst/videomeasure/gstvideomeasure_collector.h | 80 + gst/videomeasure/gstvideomeasure_ssim.c | 1694 + gst/videomeasure/gstvideomeasure_ssim.h | 140 + gst/videoparsers/Makefile.am | 31 + gst/videoparsers/Makefile.in | 943 + gst/videoparsers/dirac_parse.c | 498 + gst/videoparsers/dirac_parse.h | 178 + gst/videoparsers/gstdiracparse.c | 352 + gst/videoparsers/gstdiracparse.h | 52 + gst/videoparsers/gsth263parse.c | 357 + gst/videoparsers/gsth263parse.h | 71 + gst/videoparsers/gsth264parse.c | 1154 + gst/videoparsers/gsth264parse.h | 93 + gst/videoparsers/h263parse.c | 663 + gst/videoparsers/h263parse.h | 153 + gst/videoparsers/h264parse.c | 1046 + gst/videoparsers/h264parse.h | 186 + gst/videoparsers/plugin.c | 49 + gst/videosignal/Makefile.am | 28 + gst/videosignal/Makefile.in | 906 + gst/videosignal/gstvideoanalyse.c | 349 + gst/videosignal/gstvideoanalyse.h | 67 + gst/videosignal/gstvideodetect.c | 549 + gst/videosignal/gstvideodetect.h | 74 + gst/videosignal/gstvideomark.c | 431 + gst/videosignal/gstvideomark.h | 71 + gst/videosignal/gstvideosignal.c | 49 + gst/vmnc/Makefile.am | 21 + gst/vmnc/Makefile.in | 865 + gst/vmnc/vmncdec.c | 1144 + gst/y4m/Makefile.am | 27 + gst/y4m/Makefile.in | 873 + gst/y4m/gsty4mdec.c | 748 + gst/y4m/gsty4mdec.h | 76 + install-sh | 520 + ltmain.sh | 8413 +++ m4/Makefile.am | 32 + m4/Makefile.in | 689 + m4/README | 3 + m4/a52.m4 | 125 + m4/aalib.m4 | 178 + m4/as-arts.m4 | 209 + m4/as-ffmpeg.m4 | 99 + m4/as-liblame.m4 | 50 + m4/as-slurp-ffmpeg.m4 | 59 + m4/check-libheader.m4 | 39 + m4/codeset.m4 | 21 + m4/freetype2.m4 | 143 + m4/gconf-2.m4 | 40 + m4/gettext.m4 | 381 + m4/glibc2.m4 | 30 + m4/glibc21.m4 | 30 + m4/gsettings.m4 | 83 + m4/gst-artsc.m4 | 28 + m4/gst-fionread.m4 | 42 + m4/gst-sdl.m4 | 186 + m4/gst-sid.m4 | 39 + m4/iconv.m4 | 180 + m4/intdiv0.m4 | 84 + m4/intl.m4 | 285 + m4/intldir.m4 | 19 + m4/intlmacosx.m4 | 51 + m4/intmax.m4 | 33 + m4/inttypes-pri.m4 | 36 + m4/inttypes_h.m4 | 26 + m4/lcmessage.m4 | 30 + m4/lib-ld.m4 | 110 + m4/lib-link.m4 | 709 + m4/lib-prefix.m4 | 185 + m4/libfame.m4 | 182 + m4/libmikmod.m4 | 216 + m4/libtool.m4 | 7377 ++ m4/lock.m4 | 316 + m4/longlong.m4 | 109 + m4/lrint.m4 | 27 + m4/lrintf.m4 | 27 + m4/ltoptions.m4 | 368 + m4/ltsugar.m4 | 123 + m4/ltversion.m4 | 23 + m4/lt~obsolete.m4 | 92 + m4/nls.m4 | 31 + m4/po.m4 | 449 + m4/printf-posix.m4 | 44 + m4/progtest.m4 | 92 + m4/size_max.m4 | 68 + m4/stdint_h.m4 | 26 + m4/uintmax_t.m4 | 30 + m4/visibility.m4 | 52 + m4/wchar_t.m4 | 20 + m4/wint_t.m4 | 28 + m4/xsize.m4 | 13 + missing | 376 + packaging/gst-plugins-bad-disable-gtk-doc.patch | 13 + packaging/gst-plugins-bad.spec | 205 + pkgconfig/Makefile.am | 28 + pkgconfig/Makefile.in | 740 + pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in | 13 + pkgconfig/gstreamer-plugins-bad.pc.in | 12 + po/LINGUAS | 1 + po/Makefile.in.in | 432 + po/Makevars | 46 + po/Makevars.template | 41 + po/POTFILES.in | 7 + po/Rules-quot | 47 + po/af.gmo | Bin 0 -> 783 bytes po/af.po | 188 + po/az.gmo | Bin 0 -> 845 bytes po/az.po | 189 + po/bg.gmo | Bin 0 -> 2556 bytes po/bg.po | 72 + po/boldquot.sed | 10 + po/ca.gmo | Bin 0 -> 1740 bytes po/ca.po | 70 + po/cs.gmo | Bin 0 -> 1729 bytes po/cs.po | 158 + po/da.gmo | Bin 0 -> 1886 bytes po/da.po | 520 + po/de.gmo | Bin 0 -> 2118 bytes po/de.po | 497 + po/el.gmo | Bin 0 -> 2022 bytes po/el.po | 71 + po/en@boldquot.header | 25 + po/en@quot.header | 22 + po/en_GB.gmo | Bin 0 -> 777 bytes po/en_GB.po | 194 + po/es.gmo | Bin 0 -> 1709 bytes po/es.po | 157 + po/eu.gmo | Bin 0 -> 1704 bytes po/eu.po | 426 + po/fi.gmo | Bin 0 -> 1647 bytes po/fi.po | 150 + po/fr.gmo | Bin 0 -> 2055 bytes po/fr.po | 71 + po/gl.gmo | Bin 0 -> 1805 bytes po/gl.po | 414 + po/gst-plugins-bad-0.10.pot | 82 + po/hu.gmo | Bin 0 -> 1710 bytes po/hu.po | 77 + po/id.gmo | Bin 0 -> 1604 bytes po/id.po | 153 + po/insert-header.sin | 23 + po/it.gmo | Bin 0 -> 1657 bytes po/it.po | 75 + po/ja.gmo | Bin 0 -> 2381 bytes po/ja.po | 246 + po/ky.gmo | Bin 0 -> 970 bytes po/ky.po | 69 + po/lt.gmo | Bin 0 -> 1383 bytes po/lt.po | 77 + po/lv.gmo | Bin 0 -> 1797 bytes po/lv.po | 493 + po/mt.gmo | Bin 0 -> 1624 bytes po/mt.po | 155 + po/nb.gmo | Bin 0 -> 1201 bytes po/nb.po | 74 + po/nl.gmo | Bin 0 -> 2032 bytes po/nl.po | 425 + po/or.gmo | Bin 0 -> 955 bytes po/or.po | 222 + po/pl.gmo | Bin 0 -> 2045 bytes po/pl.po | 69 + po/pt_BR.gmo | Bin 0 -> 1749 bytes po/pt_BR.po | 72 + po/quot.sed | 6 + po/remove-potcdate.sin | 19 + po/ro.gmo | Bin 0 -> 1853 bytes po/ro.po | 70 + po/ru.gmo | Bin 0 -> 2509 bytes po/ru.po | 333 + po/sk.gmo | Bin 0 -> 1775 bytes po/sk.po | 502 + po/sl.gmo | Bin 0 -> 2100 bytes po/sl.po | 388 + po/sq.gmo | Bin 0 -> 1259 bytes po/sq.po | 214 + po/sr.gmo | Bin 0 -> 1018 bytes po/sr.po | 190 + po/stamp-po | 1 + po/sv.gmo | Bin 0 -> 1588 bytes po/sv.po | 511 + po/tr.gmo | Bin 0 -> 1833 bytes po/tr.po | 489 + po/uk.gmo | Bin 0 -> 2626 bytes po/uk.po | 74 + po/vi.gmo | Bin 0 -> 1787 bytes po/vi.po | 420 + po/zh_CN.gmo | Bin 0 -> 1539 bytes po/zh_CN.po | 156 + stamp-h.in | 1 + sys/Makefile.am | 109 + sys/Makefile.in | 922 + sys/acmenc/Makefile.am | 16 + sys/acmenc/Makefile.in | 860 + sys/acmenc/acmenc.c | 629 + sys/acmmp3dec/Makefile.am | 14 + sys/acmmp3dec/Makefile.in | 859 + sys/acmmp3dec/acmmp3dec.c | 436 + sys/applemedia/Makefile.am | 94 + sys/applemedia/Makefile.in | 1173 + sys/applemedia/avfvideosrc.h | 61 + sys/applemedia/avfvideosrc.m | 790 + sys/applemedia/bufferfactory.h | 34 + sys/applemedia/bufferfactory.m | 61 + sys/applemedia/celapi.c | 162 + sys/applemedia/celapi.h | 169 + sys/applemedia/celvideosrc.c | 881 + sys/applemedia/celvideosrc.h | 89 + sys/applemedia/cmapi.c | 137 + sys/applemedia/cmapi.h | 207 + sys/applemedia/coremediabuffer.c | 127 + sys/applemedia/coremediabuffer.h | 64 + sys/applemedia/coremediactx.c | 135 + sys/applemedia/coremediactx.h | 95 + sys/applemedia/corevideobuffer.c | 94 + sys/applemedia/corevideobuffer.h | 60 + sys/applemedia/cvapi.c | 77 + sys/applemedia/cvapi.h | 126 + sys/applemedia/dynapi-internal.h | 42 + sys/applemedia/dynapi.c | 193 + sys/applemedia/dynapi.h | 65 + sys/applemedia/mioapi.c | 234 + sys/applemedia/mioapi.h | 248 + sys/applemedia/miovideodevice.c | 846 + sys/applemedia/miovideodevice.h | 90 + sys/applemedia/miovideosrc.c | 1197 + sys/applemedia/miovideosrc.h | 83 + sys/applemedia/mtapi.c | 80 + sys/applemedia/mtapi.h | 96 + sys/applemedia/plugin.m | 82 + sys/applemedia/qtkitvideosrc.h | 61 + sys/applemedia/qtkitvideosrc.m | 686 + sys/applemedia/vtapi.c | 88 + sys/applemedia/vtapi.h | 148 + sys/applemedia/vtdec.c | 525 + sys/applemedia/vtdec.h | 80 + sys/applemedia/vtenc.c | 906 + sys/applemedia/vtenc.h | 87 + sys/applemedia/vth264decbin.c | 322 + sys/applemedia/vth264decbin.h | 61 + sys/applemedia/vth264encbin.c | 173 + sys/applemedia/vth264encbin.h | 61 + sys/applemedia/vtutil.c | 61 + sys/applemedia/vtutil.h | 35 + sys/decklink/DeckLinkAPI.h | 1095 + sys/decklink/DeckLinkAPIDispatch.cpp | 110 + sys/decklink/LinuxCOM.h | 99 + sys/decklink/Makefile.am | 28 + sys/decklink/Makefile.in | 916 + sys/decklink/capture.cpp | 430 + sys/decklink/capture.h | 25 + sys/decklink/gstdecklink.cpp | 44 + sys/decklink/gstdecklinksink.cpp | 1059 + sys/decklink/gstdecklinksink.h | 92 + sys/decklink/gstdecklinksrc.cpp | 1096 + sys/decklink/gstdecklinksrc.h | 84 + sys/directdraw/Makefile.am | 12 + sys/directdraw/Makefile.in | 872 + sys/directdraw/gstdirectdrawplugin.c | 47 + sys/directdraw/gstdirectdrawsink.c | 2149 + sys/directdraw/gstdirectdrawsink.h | 142 + sys/directsound/Makefile.am | 12 + sys/directsound/Makefile.in | 872 + sys/directsound/gstdirectsoundplugin.c | 49 + sys/directsound/gstdirectsoundsrc.c | 667 + sys/directsound/gstdirectsoundsrc.h | 112 + sys/dshowdecwrapper/Makefile.am | 15 + sys/dshowdecwrapper/Makefile.in | 904 + sys/dshowdecwrapper/gstdshowaudiodec.cpp | 1127 + sys/dshowdecwrapper/gstdshowaudiodec.h | 156 + sys/dshowdecwrapper/gstdshowdecwrapper.cpp | 73 + sys/dshowdecwrapper/gstdshowfakesrc.cpp | 172 + sys/dshowdecwrapper/gstdshowfakesrc.h | 65 + sys/dshowdecwrapper/gstdshowutil.cpp | 137 + sys/dshowdecwrapper/gstdshowutil.h | 48 + sys/dshowdecwrapper/gstdshowvideodec.cpp | 1216 + sys/dshowdecwrapper/gstdshowvideodec.h | 156 + sys/dshowsrcwrapper/Makefile.am | 13 + sys/dshowsrcwrapper/Makefile.in | 670 + sys/dshowsrcwrapper/gstdshow.cpp | 492 + sys/dshowsrcwrapper/gstdshow.h | 99 + sys/dshowsrcwrapper/gstdshowaudiosrc.cpp | 844 + sys/dshowsrcwrapper/gstdshowaudiosrc.h | 83 + sys/dshowsrcwrapper/gstdshowfakesink.cpp | 74 + sys/dshowsrcwrapper/gstdshowfakesink.h | 57 + sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp | 50 + sys/dshowsrcwrapper/gstdshowvideosrc.cpp | 1062 + sys/dshowsrcwrapper/gstdshowvideosrc.h | 92 + sys/dshowvideosink/Makefile.am | 9 + sys/dshowvideosink/Makefile.in | 665 + sys/dshowvideosink/README | 5 + sys/dshowvideosink/dshowvideofakesrc.cpp | 410 + sys/dshowvideosink/dshowvideofakesrc.h | 80 + sys/dshowvideosink/dshowvideosink.cpp | 1941 + sys/dshowvideosink/dshowvideosink.h | 127 + sys/dvb/AUTHORS | 2 + sys/dvb/Makefile.am | 39 + sys/dvb/Makefile.in | 1010 + sys/dvb/README | 19 + sys/dvb/cam.c | 33 + sys/dvb/cam.h | 33 + sys/dvb/camapplication.c | 292 + sys/dvb/camapplication.h | 84 + sys/dvb/camapplicationinfo.c | 153 + sys/dvb/camapplicationinfo.h | 41 + sys/dvb/camconditionalaccess.c | 208 + sys/dvb/camconditionalaccess.h | 55 + sys/dvb/camdevice.c | 213 + sys/dvb/camdevice.h | 69 + sys/dvb/camresourcemanager.c | 192 + sys/dvb/camresourcemanager.h | 41 + sys/dvb/camsession.c | 595 + sys/dvb/camsession.h | 96 + sys/dvb/camswclient.c | 166 + sys/dvb/camswclient.h | 53 + sys/dvb/camtransport.c | 505 + sys/dvb/camtransport.h | 115 + sys/dvb/camutils.c | 315 + sys/dvb/camutils.h | 59 + sys/dvb/dvbbasebin.c | 1047 + sys/dvb/dvbbasebin.h | 75 + sys/dvb/gstdvb.c | 46 + sys/dvb/gstdvbsrc.c | 1459 + sys/dvb/gstdvbsrc.h | 92 + sys/dvb/parsechannels.c | 388 + sys/dvb/parsechannels.h | 31 + sys/fbdev/Makefile.am | 15 + sys/fbdev/Makefile.in | 863 + sys/fbdev/gstfbdevsink.c | 452 + sys/fbdev/gstfbdevsink.h | 78 + sys/linsys/Makefile.am | 26 + sys/linsys/Makefile.in | 892 + sys/linsys/gstlinsys.c | 48 + sys/linsys/gstlinsyssdisink.c | 491 + sys/linsys/gstlinsyssdisink.h | 59 + sys/linsys/gstlinsyssdisrc.c | 554 + sys/linsys/gstlinsyssdisrc.h | 62 + sys/linsys/include/asi.h | 255 + sys/linsys/include/master.h | 69 + sys/linsys/include/sdi.h | 115 + sys/linsys/include/sdiaudio.h | 149 + sys/linsys/include/sdivideo.h | 155 + sys/osxvideo/Makefile.am | 16 + sys/osxvideo/Makefile.in | 873 + sys/osxvideo/osxvideoplugin.c | 50 + sys/osxvideo/osxvideosrc.c | 1393 + sys/osxvideo/osxvideosrc.h | 74 + sys/qtwrapper/Makefile.am | 24 + sys/qtwrapper/Makefile.in | 924 + sys/qtwrapper/audiodecoders.c | 1099 + sys/qtwrapper/codecmapping.c | 157 + sys/qtwrapper/codecmapping.h | 61 + sys/qtwrapper/imagedescription.c | 213 + sys/qtwrapper/imagedescription.h | 53 + sys/qtwrapper/qtutils.c | 493 + sys/qtwrapper/qtutils.h | 136 + sys/qtwrapper/qtwrapper.c | 87 + sys/qtwrapper/qtwrapper.h | 69 + sys/qtwrapper/videodecoders.c | 872 + sys/shm/Makefile.am | 13 + sys/shm/Makefile.in | 936 + sys/shm/gstshm.c | 42 + sys/shm/gstshmsink.c | 619 + sys/shm/gstshmsink.h | 76 + sys/shm/gstshmsrc.c | 446 + sys/shm/gstshmsrc.h | 76 + sys/shm/shmalloc.c | 184 + sys/shm/shmalloc.h | 74 + sys/shm/shmpipe.c | 899 + sys/shm/shmpipe.h | 107 + sys/vcd/Makefile.am | 10 + sys/vcd/Makefile.in | 855 + sys/vcd/vcdsrc.c | 589 + sys/vcd/vcdsrc.h | 76 + sys/vdpau/Makefile.am | 45 + sys/vdpau/Makefile.in | 1170 + sys/vdpau/basevideodecoder/Makefile.am | 19 + sys/vdpau/basevideodecoder/Makefile.in | 831 + sys/vdpau/basevideodecoder/gstbasevideodecoder.c | 1212 + sys/vdpau/basevideodecoder/gstbasevideodecoder.h | 179 + sys/vdpau/basevideodecoder/gstbasevideoutils.h | 55 + sys/vdpau/basevideodecoder/gstvideoframe.c | 107 + sys/vdpau/basevideodecoder/gstvideoframe.h | 149 + sys/vdpau/gstvdp/Makefile.am | 40 + sys/vdpau/gstvdp/Makefile.in | 1026 + sys/vdpau/gstvdp/gstvdp.c | 46 + sys/vdpau/gstvdp/gstvdp.h | 26 + sys/vdpau/gstvdp/gstvdpbuffer.c | 86 + sys/vdpau/gstvdp/gstvdpbuffer.h | 59 + sys/vdpau/gstvdp/gstvdpbufferpool.c | 358 + sys/vdpau/gstvdp/gstvdpbufferpool.h | 74 + sys/vdpau/gstvdp/gstvdpdecoder.c | 326 + sys/vdpau/gstvdp/gstvdpdecoder.h | 72 + sys/vdpau/gstvdp/gstvdpdevice.c | 323 + sys/vdpau/gstvdp/gstvdpdevice.h | 101 + sys/vdpau/gstvdp/gstvdpoutputbuffer.c | 406 + sys/vdpau/gstvdp/gstvdpoutputbuffer.h | 62 + sys/vdpau/gstvdp/gstvdpoutputbufferpool.c | 146 + sys/vdpau/gstvdp/gstvdpoutputbufferpool.h | 50 + sys/vdpau/gstvdp/gstvdpoutputsrcpad.c | 427 + sys/vdpau/gstvdp/gstvdpoutputsrcpad.h | 51 + sys/vdpau/gstvdp/gstvdputils.c | 138 + sys/vdpau/gstvdp/gstvdputils.h | 30 + sys/vdpau/gstvdp/gstvdpvideobuffer.c | 502 + sys/vdpau/gstvdp/gstvdpvideobuffer.h | 109 + sys/vdpau/gstvdp/gstvdpvideobufferpool.c | 146 + sys/vdpau/gstvdp/gstvdpvideobufferpool.h | 50 + sys/vdpau/gstvdp/gstvdpvideosrcpad.c | 328 + sys/vdpau/gstvdp/gstvdpvideosrcpad.h | 52 + sys/vdpau/gstvdpau.c | 41 + sys/vdpau/gstvdpsink.c | 1499 + sys/vdpau/gstvdpsink.h | 138 + sys/vdpau/gstvdpvideopostprocess.c | 1300 + sys/vdpau/gstvdpvideopostprocess.h | 117 + sys/vdpau/h264/gsth264dpb.c | 426 + sys/vdpau/h264/gsth264dpb.h | 87 + sys/vdpau/h264/gsth264frame.c | 109 + sys/vdpau/h264/gsth264frame.h | 65 + sys/vdpau/h264/gsth264parser.c | 1253 + sys/vdpau/h264/gsth264parser.h | 420 + sys/vdpau/h264/gstnalreader.c | 503 + sys/vdpau/h264/gstnalreader.h | 99 + sys/vdpau/h264/gstvdph264dec.c | 902 + sys/vdpau/h264/gstvdph264dec.h | 70 + sys/vdpau/mpeg/gstvdpmpegdec.c | 672 + sys/vdpau/mpeg/gstvdpmpegdec.h | 80 + sys/vdpau/mpeg/gstvdpmpegframe.c | 134 + sys/vdpau/mpeg/gstvdpmpegframe.h | 78 + sys/vdpau/mpeg/mpegutil.c | 429 + sys/vdpau/mpeg/mpegutil.h | 150 + sys/vdpau/mpeg4/gstmpeg4frame.c | 109 + sys/vdpau/mpeg4/gstmpeg4frame.h | 64 + sys/vdpau/mpeg4/gstvdpmpeg4dec.c | 478 + sys/vdpau/mpeg4/gstvdpmpeg4dec.h | 62 + sys/vdpau/mpeg4/mpeg4util.c | 473 + sys/vdpau/mpeg4/mpeg4util.h | 179 + sys/wasapi/Makefile.am | 5 + sys/wasapi/Makefile.in | 662 + sys/wasapi/gstwasapi.c | 45 + sys/wasapi/gstwasapisink.c | 264 + sys/wasapi/gstwasapisink.h | 67 + sys/wasapi/gstwasapisrc.c | 446 + sys/wasapi/gstwasapisrc.h | 74 + sys/wasapi/gstwasapiutil.c | 261 + sys/wasapi/gstwasapiutil.h | 41 + sys/wininet/Makefile.am | 11 + sys/wininet/Makefile.in | 855 + sys/wininet/gstwininetsrc.c | 451 + sys/wininet/gstwininetsrc.h | 69 + sys/winks/Makefile.am | 9 + sys/winks/Makefile.in | 666 + sys/winks/gstksclock.c | 359 + sys/winks/gstksclock.h | 72 + sys/winks/gstksvideodevice.c | 1201 + sys/winks/gstksvideodevice.h | 86 + sys/winks/gstksvideosrc.c | 1145 + sys/winks/gstksvideosrc.h | 59 + sys/winks/kshelpers.c | 491 + sys/winks/kshelpers.h | 62 + sys/winks/ksvideohelpers.c | 765 + sys/winks/ksvideohelpers.h | 66 + sys/winscreencap/Makefile.am | 8 + sys/winscreencap/Makefile.in | 664 + sys/winscreencap/gstdx9screencapsrc.c | 605 + sys/winscreencap/gstdx9screencapsrc.h | 81 + sys/winscreencap/gstgdiscreencapsrc.c | 561 + sys/winscreencap/gstgdiscreencapsrc.h | 82 + sys/winscreencap/gstwinscreencap.c | 77 + sys/winscreencap/gstwinscreencap.h | 32 + tests/Makefile.am | 15 + tests/Makefile.in | 863 + tests/check/Makefile.am | 244 + tests/check/Makefile.in | 2112 + tests/check/elements/asfmux.c | 224 + tests/check/elements/assrender.c | 294 + tests/check/elements/autoconvert.c | 243 + tests/check/elements/autovideoconvert.c | 139 + tests/check/elements/camerabin.c | 825 + tests/check/elements/camerabin2.c | 1381 + tests/check/elements/dataurisrc.c | 233 + tests/check/elements/faac.c | 238 + tests/check/elements/faad.c | 225 + tests/check/elements/id3mux.c | 561 + tests/check/elements/imagecapturebin.c | 410 + tests/check/elements/jifmux.c | 1229 + tests/check/elements/jpegparse.c | 198 + tests/check/elements/kate.c | 858 + tests/check/elements/legacyresample.c | 569 + tests/check/elements/logoinsert.c | 252 + tests/check/elements/mpeg2enc.c | 207 + tests/check/elements/mplex.c | 315 + tests/check/elements/mxfdemux.c | 273 + tests/check/elements/mxfdemux.h | 2552 + tests/check/elements/mxfmux.c | 261 + tests/check/elements/neonhttpsrc.c | 190 + tests/check/elements/ofa.c | 396 + tests/check/elements/rtpmux.c | 279 + tests/check/elements/schroenc.c | 172 + tests/check/elements/timidity.c | 89 + tests/check/elements/viewfinderbin.c | 103 + tests/check/elements/vp8dec.c | 179 + tests/check/elements/vp8enc.c | 169 + tests/check/elements/zbar.c | 111 + tests/check/generic/states.c | 238 + tests/check/gst-plugins-bad.supp | 37 + tests/check/pipelines/mimic.c | 79 + tests/check/pipelines/mxf.c | 282 + tests/examples/Makefile.am | 22 + tests/examples/Makefile.in | 880 + tests/examples/camerabin/Makefile.am | 54 + tests/examples/camerabin/Makefile.in | 911 + tests/examples/camerabin/gst-camera-perf.c | 1042 + tests/examples/camerabin/gst-camera.c | 1710 + tests/examples/camerabin/gst-camera.h | 102 + tests/examples/camerabin/gst-camera.ui | 424 + tests/examples/camerabin/gst-camerabin-test.c | 847 + tests/examples/camerabin2/Makefile.am | 51 + tests/examples/camerabin2/Makefile.in | 878 + tests/examples/camerabin2/gst-camera2.c | 186 + tests/examples/camerabin2/gst-camera2.h | 48 + tests/examples/camerabin2/gst-camera2.ui | 109 + tests/examples/camerabin2/gst-camerabin2-test.c | 842 + tests/examples/directfb/Makefile.am | 9 + tests/examples/directfb/Makefile.in | 810 + tests/examples/directfb/decker.ttf | Bin 0 -> 37048 bytes tests/examples/directfb/dfblogo.png | Bin 0 -> 7722 bytes tests/examples/directfb/gstdfb.c | 514 + tests/examples/mxf/Makefile.am | 8 + tests/examples/mxf/Makefile.in | 813 + tests/examples/mxf/mxfdemux-structure.c | 241 + tests/examples/scaletempo/Makefile.am | 8 + tests/examples/scaletempo/Makefile.in | 848 + tests/examples/scaletempo/demo-gui.c | 1272 + tests/examples/scaletempo/demo-gui.h | 60 + tests/examples/scaletempo/demo-main.c | 98 + tests/examples/scaletempo/demo-player.c | 756 + tests/examples/scaletempo/demo-player.h | 71 + tests/files/Makefile.am | 2 + tests/files/Makefile.in | 659 + tests/files/barcode.png | Bin 0 -> 1182 bytes tests/icles/Makefile.am | 29 + tests/icles/Makefile.in | 828 + tests/icles/pitch-test.c | 115 + tools/Makefile.am | 43 + tools/Makefile.in | 698 + tools/element-templates/audiofilter | 38 + tools/element-templates/audiosink | 73 + tools/element-templates/audiosrc | 74 + tools/element-templates/base | 34 + tools/element-templates/baseaudiosink | 25 + tools/element-templates/baseaudiosrc | 26 + tools/element-templates/basertpdepayload | 68 + tools/element-templates/basertppayload | 56 + tools/element-templates/basesink | 163 + tools/element-templates/basesrc | 239 + tools/element-templates/basetransform | 159 + tools/element-templates/cddabasesrc | 62 + tools/element-templates/element | 129 + tools/element-templates/gobject | 72 + tools/element-templates/pushsrc | 235 + tools/element-templates/sinkpad | 312 + tools/element-templates/sinkpad-simple | 24 + tools/element-templates/srcpad | 275 + tools/element-templates/srcpad-simple | 24 + tools/element-templates/tagdemux | 55 + tools/element-templates/videofilter2 | 67 + tools/element-templates/videosink | 32 + tools/gst-app-maker | 545 + tools/gst-element-maker | 391 + tools/gst-element-maker-test.sh | 20 + win32/MANIFEST | 11 + win32/common/config.h.in | 223 + win32/vs6/gst_plugins_bad.dsw | 65 + win32/vs6/libgstdshow.dsp | 155 + win32/vs6/libgstdshowdecwrapper.dsp | 164 + win32/vs6/libgstflv.dsp | 129 + win32/vs6/libgstmpegvideoparse.dsp | 131 + win32/vs6/libgstneon.dsp | 121 + win32/vs8/gst-plugins-bad.sln | 25 + win32/vs8/libgstdirectdraw.vcproj | 218 + 2037 files changed, 870133 insertions(+) create mode 100644 ABOUT-NLS create mode 100644 AUTHORS create mode 100644 COPYING create mode 100644 COPYING.LIB create mode 100644 ChangeLog create mode 100644 INSTALL create mode 100644 Makefile.am create mode 100644 Makefile.in create mode 100644 NEWS create mode 100644 README create mode 100644 RELEASE create mode 100644 REQUIREMENTS create mode 100644 aclocal.m4 create mode 100755 autogen.sh create mode 100755 autoregen.sh create mode 100644 common/ChangeLog create mode 100644 common/Makefile.am create mode 100644 common/Makefile.in create mode 100644 common/c-to-xml.py create mode 100755 common/check-exports create mode 100644 common/check.mak create mode 100644 common/coverage/coverage-report-entry.pl create mode 100644 common/coverage/coverage-report.pl create mode 100644 common/coverage/coverage-report.xsl create mode 100644 common/coverage/lcov.mak create mode 100644 common/cruft.mak create mode 100755 common/download-translations create mode 100755 common/extract-release-date-from-doap-file create mode 100644 common/gettext.patch create mode 100644 common/glib-gen.mak create mode 100644 common/gst-autogen.sh create mode 100644 common/gst-glib-gen.mak create mode 100755 common/gst-indent create mode 100644 common/gst.supp create mode 100755 common/gstdoc-scangobj create mode 100644 common/gtk-doc-plugins.mak create mode 100644 common/gtk-doc.mak create mode 100644 common/m4/Makefile.am create mode 100644 common/m4/Makefile.in create mode 100644 common/m4/README create mode 100644 common/m4/as-ac-expand.m4 create mode 100644 common/m4/as-auto-alt.m4 create mode 100644 common/m4/as-compiler-flag.m4 create mode 100644 common/m4/as-compiler.m4 create mode 100644 common/m4/as-docbook.m4 create mode 100644 common/m4/as-gcc-inline-assembly.m4 create mode 100644 common/m4/as-libtool-tags.m4 create mode 100644 common/m4/as-libtool.m4 create mode 100644 common/m4/as-objc.m4 create mode 100644 common/m4/as-python.m4 create mode 100644 common/m4/as-scrub-include.m4 create mode 100644 common/m4/as-version.m4 create mode 100644 common/m4/ax_create_stdint_h.m4 create mode 100644 common/m4/check.m4 create mode 100644 common/m4/glib-gettext.m4 create mode 100644 common/m4/gst-arch.m4 create mode 100644 common/m4/gst-args.m4 create mode 100644 common/m4/gst-check.m4 create mode 100644 common/m4/gst-debuginfo.m4 create mode 100644 common/m4/gst-default.m4 create mode 100644 common/m4/gst-doc.m4 create mode 100644 common/m4/gst-dowhile.m4 create mode 100644 common/m4/gst-error.m4 create mode 100644 common/m4/gst-feature.m4 create mode 100644 common/m4/gst-function.m4 create mode 100644 common/m4/gst-gettext.m4 create mode 100644 common/m4/gst-glib2.m4 create mode 100644 common/m4/gst-libxml2.m4 create mode 100644 common/m4/gst-package-release-datetime.m4 create mode 100644 common/m4/gst-parser.m4 create mode 100644 common/m4/gst-platform.m4 create mode 100644 common/m4/gst-plugin-docs.m4 create mode 100644 common/m4/gst-plugindir.m4 create mode 100644 common/m4/gst-valgrind.m4 create mode 100644 common/m4/gst-x11.m4 create mode 100644 common/m4/gst.m4 create mode 100644 common/m4/gtk-doc.m4 create mode 100644 common/m4/introspection.m4 create mode 100644 common/m4/orc.m4 create mode 100644 common/m4/pkg.m4 create mode 100644 common/mangle-tmpl.py create mode 100644 common/orc.mak create mode 100644 common/parallel-subdirs.mak create mode 100644 common/plugins.xsl create mode 100644 common/po.mak create mode 100644 common/release.mak create mode 100755 common/scangobj-merge.py create mode 100644 common/upload-doc.mak create mode 100644 common/win32.mak create mode 100755 compile create mode 100644 config.h.in create mode 100755 config.rpath create mode 100755 configure create mode 100644 configure.ac create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/gstreamer0.10-plugins-bad.install.in create mode 100755 debian/rules create mode 100755 depcomp create mode 100644 docs/Makefile.am create mode 100644 docs/Makefile.in create mode 100644 docs/plugins/Makefile.am create mode 100644 docs/plugins/Makefile.in create mode 100644 docs/plugins/camerabin.dot create mode 100644 docs/plugins/camerabin.png create mode 100644 docs/plugins/gst-plugins-bad-plugins-docs.sgml create mode 100644 docs/plugins/gst-plugins-bad-plugins-sections.txt create mode 100644 docs/plugins/gst-plugins-bad-plugins.args create mode 100644 docs/plugins/gst-plugins-bad-plugins.interfaces create mode 100644 docs/plugins/gst-plugins-bad-plugins.prerequisites create mode 100644 docs/plugins/gst-plugins-bad-plugins.signals create mode 100644 docs/plugins/gst-plugins-bad-plugins.types create mode 100644 docs/plugins/html/GstPhotography.html create mode 100644 docs/plugins/html/camerabin.png create mode 100644 docs/plugins/html/ch01.html create mode 100644 docs/plugins/html/ch02.html create mode 100644 docs/plugins/html/ch03.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-assrender.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-bulge.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-burn.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-camerabin.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-celtdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-celtenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-chromium.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-circle.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-curlsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cverode.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-diffuse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dilate.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dodge.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-exclusion.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-faac.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-faad.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-faceblur.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-facedetect.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-festival.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-fisheye.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-freeze.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-katedec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-kateenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-kateparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-katetag.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-ladspa.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-liveadder.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-marble.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mimdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mimenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mirror.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-modplug.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mplex.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-pinch.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-shmsink.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-solarize.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-speed.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-sphere.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-square.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-stereo.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-stretch.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-templatematch.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-tiger.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-timidity.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-trm.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-tunnel.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-twirl.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-videodetect.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-videomark.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-videoparse.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-waterripple.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins-zbar.html create mode 100644 docs/plugins/html/gst-plugins-bad-plugins.devhelp create mode 100644 docs/plugins/html/gst-plugins-bad-plugins.devhelp2 create mode 100644 docs/plugins/html/home.png create mode 100644 docs/plugins/html/index.html create mode 100644 docs/plugins/html/index.sgml create mode 100644 docs/plugins/html/left.png create mode 100644 docs/plugins/html/right.png create mode 100644 docs/plugins/html/style.css create mode 100644 docs/plugins/html/up.png create mode 100644 docs/plugins/inspect/plugin-adpcmdec.xml create mode 100644 docs/plugins/inspect/plugin-adpcmenc.xml create mode 100644 docs/plugins/inspect/plugin-aiff.xml create mode 100644 docs/plugins/inspect/plugin-amrwbenc.xml create mode 100644 docs/plugins/inspect/plugin-apexsink.xml create mode 100644 docs/plugins/inspect/plugin-asfmux.xml create mode 100644 docs/plugins/inspect/plugin-assrender.xml create mode 100644 docs/plugins/inspect/plugin-autoconvert.xml create mode 100644 docs/plugins/inspect/plugin-bayer.xml create mode 100644 docs/plugins/inspect/plugin-bz2.xml create mode 100644 docs/plugins/inspect/plugin-camerabin.xml create mode 100644 docs/plugins/inspect/plugin-cdaudio.xml create mode 100644 docs/plugins/inspect/plugin-cdxaparse.xml create mode 100644 docs/plugins/inspect/plugin-celt.xml create mode 100644 docs/plugins/inspect/plugin-cog.xml create mode 100644 docs/plugins/inspect/plugin-coloreffects.xml create mode 100644 docs/plugins/inspect/plugin-colorspace.xml create mode 100644 docs/plugins/inspect/plugin-curl.xml create mode 100644 docs/plugins/inspect/plugin-dataurisrc.xml create mode 100644 docs/plugins/inspect/plugin-dc1394.xml create mode 100644 docs/plugins/inspect/plugin-dccp.xml create mode 100644 docs/plugins/inspect/plugin-debugutilsbad.xml create mode 100644 docs/plugins/inspect/plugin-decklink.xml create mode 100644 docs/plugins/inspect/plugin-dfbvideosink.xml create mode 100644 docs/plugins/inspect/plugin-dirac.xml create mode 100644 docs/plugins/inspect/plugin-directdraw.xml create mode 100644 docs/plugins/inspect/plugin-dtmf.xml create mode 100644 docs/plugins/inspect/plugin-dtsdec.xml create mode 100644 docs/plugins/inspect/plugin-dvb.xml create mode 100644 docs/plugins/inspect/plugin-dvbsuboverlay.xml create mode 100644 docs/plugins/inspect/plugin-dvdspu.xml create mode 100644 docs/plugins/inspect/plugin-faac.xml create mode 100644 docs/plugins/inspect/plugin-faad.xml create mode 100644 docs/plugins/inspect/plugin-fbdevsink.xml create mode 100644 docs/plugins/inspect/plugin-festival.xml create mode 100644 docs/plugins/inspect/plugin-fieldanalysis.xml create mode 100644 docs/plugins/inspect/plugin-filter.xml create mode 100644 docs/plugins/inspect/plugin-fragmented.xml create mode 100644 docs/plugins/inspect/plugin-freeze.xml create mode 100644 docs/plugins/inspect/plugin-frei0r.xml create mode 100644 docs/plugins/inspect/plugin-gaudieffects.xml create mode 100644 docs/plugins/inspect/plugin-geometrictransform.xml create mode 100644 docs/plugins/inspect/plugin-gmedec.xml create mode 100644 docs/plugins/inspect/plugin-gsettings.xml create mode 100644 docs/plugins/inspect/plugin-gsm.xml create mode 100644 docs/plugins/inspect/plugin-gstsiren.xml create mode 100644 docs/plugins/inspect/plugin-h264parse.xml create mode 100644 docs/plugins/inspect/plugin-hdvparse.xml create mode 100644 docs/plugins/inspect/plugin-id3tag.xml create mode 100644 docs/plugins/inspect/plugin-interlace.xml create mode 100644 docs/plugins/inspect/plugin-invtelecine.xml create mode 100644 docs/plugins/inspect/plugin-ivfparse.xml create mode 100644 docs/plugins/inspect/plugin-jp2kdecimator.xml create mode 100644 docs/plugins/inspect/plugin-jpegformat.xml create mode 100644 docs/plugins/inspect/plugin-kate.xml create mode 100644 docs/plugins/inspect/plugin-ladspa.xml create mode 100644 docs/plugins/inspect/plugin-legacyresample.xml create mode 100644 docs/plugins/inspect/plugin-linsys.xml create mode 100644 docs/plugins/inspect/plugin-liveadder.xml create mode 100644 docs/plugins/inspect/plugin-lv2.xml create mode 100644 docs/plugins/inspect/plugin-mimic.xml create mode 100644 docs/plugins/inspect/plugin-mms.xml create mode 100644 docs/plugins/inspect/plugin-modplug.xml create mode 100644 docs/plugins/inspect/plugin-mpeg2enc.xml create mode 100644 docs/plugins/inspect/plugin-mpeg4videoparse.xml create mode 100644 docs/plugins/inspect/plugin-mpegdemux2.xml create mode 100644 docs/plugins/inspect/plugin-mpegpsmux.xml create mode 100644 docs/plugins/inspect/plugin-mpegtsdemux.xml create mode 100644 docs/plugins/inspect/plugin-mpegtsmux.xml create mode 100644 docs/plugins/inspect/plugin-mpegvideoparse.xml create mode 100644 docs/plugins/inspect/plugin-mplex.xml create mode 100644 docs/plugins/inspect/plugin-musepack.xml create mode 100644 docs/plugins/inspect/plugin-musicbrainz.xml create mode 100644 docs/plugins/inspect/plugin-mve.xml create mode 100644 docs/plugins/inspect/plugin-mxf.xml create mode 100644 docs/plugins/inspect/plugin-mythtv.xml create mode 100644 docs/plugins/inspect/plugin-nas.xml create mode 100644 docs/plugins/inspect/plugin-neon.xml create mode 100644 docs/plugins/inspect/plugin-nsf.xml create mode 100644 docs/plugins/inspect/plugin-nuvdemux.xml create mode 100644 docs/plugins/inspect/plugin-ofa.xml create mode 100644 docs/plugins/inspect/plugin-opencv.xml create mode 100644 docs/plugins/inspect/plugin-patchdetect.xml create mode 100644 docs/plugins/inspect/plugin-pcapparse.xml create mode 100644 docs/plugins/inspect/plugin-pnm.xml create mode 100644 docs/plugins/inspect/plugin-rawparse.xml create mode 100644 docs/plugins/inspect/plugin-real.xml create mode 100644 docs/plugins/inspect/plugin-resindvd.xml create mode 100644 docs/plugins/inspect/plugin-rfbsrc.xml create mode 100644 docs/plugins/inspect/plugin-rsvg.xml create mode 100644 docs/plugins/inspect/plugin-rtmpsrc.xml create mode 100644 docs/plugins/inspect/plugin-rtpmux.xml create mode 100644 docs/plugins/inspect/plugin-rtpvp8.xml create mode 100644 docs/plugins/inspect/plugin-scaletempo.xml create mode 100644 docs/plugins/inspect/plugin-schro.xml create mode 100644 docs/plugins/inspect/plugin-sdi.xml create mode 100644 docs/plugins/inspect/plugin-sdl.xml create mode 100644 docs/plugins/inspect/plugin-sdp.xml create mode 100644 docs/plugins/inspect/plugin-segmentclip.xml create mode 100644 docs/plugins/inspect/plugin-shm.xml create mode 100644 docs/plugins/inspect/plugin-sndfile.xml create mode 100644 docs/plugins/inspect/plugin-soundtouch.xml create mode 100644 docs/plugins/inspect/plugin-spcdec.xml create mode 100644 docs/plugins/inspect/plugin-speed.xml create mode 100644 docs/plugins/inspect/plugin-stereo.xml create mode 100644 docs/plugins/inspect/plugin-subenc.xml create mode 100644 docs/plugins/inspect/plugin-swfdec.xml create mode 100644 docs/plugins/inspect/plugin-timidity.xml create mode 100644 docs/plugins/inspect/plugin-tta.xml create mode 100644 docs/plugins/inspect/plugin-vcdsrc.xml create mode 100644 docs/plugins/inspect/plugin-vdpau.xml create mode 100644 docs/plugins/inspect/plugin-videofiltersbad.xml create mode 100644 docs/plugins/inspect/plugin-videomaxrate.xml create mode 100644 docs/plugins/inspect/plugin-videomeasure.xml create mode 100644 docs/plugins/inspect/plugin-videoparsersbad.xml create mode 100644 docs/plugins/inspect/plugin-videosignal.xml create mode 100644 docs/plugins/inspect/plugin-vmnc.xml create mode 100644 docs/plugins/inspect/plugin-vp8.xml create mode 100644 docs/plugins/inspect/plugin-wildmidi.xml create mode 100644 docs/plugins/inspect/plugin-xvid.xml create mode 100644 docs/plugins/inspect/plugin-y4mdec.xml create mode 100644 docs/plugins/inspect/plugin-zbar.xml create mode 100644 docs/random/ChangeLog-0.8 create mode 100644 docs/version.entities.in create mode 100644 ext/Makefile.am create mode 100644 ext/Makefile.in create mode 100644 ext/amrwbenc/GstAmrwbEnc.prs create mode 100644 ext/amrwbenc/Makefile.am create mode 100644 ext/amrwbenc/Makefile.in create mode 100644 ext/amrwbenc/README create mode 100644 ext/amrwbenc/gstamrwb.c create mode 100644 ext/amrwbenc/gstamrwbenc.c create mode 100644 ext/amrwbenc/gstamrwbenc.h create mode 100644 ext/apexsink/Makefile.am create mode 100644 ext/apexsink/Makefile.in create mode 100644 ext/apexsink/gstapexplugin.c create mode 100644 ext/apexsink/gstapexraop.c create mode 100644 ext/apexsink/gstapexraop.h create mode 100644 ext/apexsink/gstapexsink.c create mode 100644 ext/apexsink/gstapexsink.h create mode 100644 ext/assrender/Makefile.am create mode 100644 ext/assrender/Makefile.in create mode 100644 ext/assrender/gstassrender.c create mode 100644 ext/assrender/gstassrender.h create mode 100644 ext/bz2/Makefile.am create mode 100644 ext/bz2/Makefile.in create mode 100644 ext/bz2/gstbz2.c create mode 100644 ext/bz2/gstbz2dec.c create mode 100644 ext/bz2/gstbz2dec.h create mode 100644 ext/bz2/gstbz2enc.c create mode 100644 ext/bz2/gstbz2enc.h create mode 100644 ext/cdaudio/Makefile.am create mode 100644 ext/cdaudio/Makefile.in create mode 100644 ext/cdaudio/gstcdaudio.c create mode 100644 ext/celt/Makefile.am create mode 100644 ext/celt/Makefile.in create mode 100644 ext/celt/gstcelt.c create mode 100644 ext/celt/gstceltdec.c create mode 100644 ext/celt/gstceltdec.h create mode 100644 ext/celt/gstceltenc.c create mode 100644 ext/celt/gstceltenc.h create mode 100644 ext/cog/Makefile.am create mode 100644 ext/cog/Makefile.in create mode 100644 ext/cog/cog.h create mode 100644 ext/cog/cogframe.c create mode 100644 ext/cog/cogframe.h create mode 100644 ext/cog/cogtables.c create mode 100644 ext/cog/cogutils.h create mode 100644 ext/cog/cogvirtframe.c create mode 100644 ext/cog/cogvirtframe.h create mode 100644 ext/cog/generate_tables.c create mode 100644 ext/cog/gstcms.c create mode 100644 ext/cog/gstcms.h create mode 100644 ext/cog/gstcog.c create mode 100644 ext/cog/gstcogcolorspace.c create mode 100644 ext/cog/gstcogdownsample.c create mode 100644 ext/cog/gstcogmse.c create mode 100644 ext/cog/gstcogorc-dist.c create mode 100644 ext/cog/gstcogorc-dist.h create mode 100644 ext/cog/gstcogorc.orc create mode 100644 ext/cog/gstcogscale.c create mode 100644 ext/cog/gstcogutils.c create mode 100644 ext/cog/gstcogutils.h create mode 100644 ext/cog/gstcolorconvert.c create mode 100644 ext/cog/gstlogoinsert.c create mode 100644 ext/curl/Makefile.am create mode 100644 ext/curl/Makefile.in create mode 100644 ext/curl/gstcurl.c create mode 100644 ext/curl/gstcurlsink.c create mode 100644 ext/curl/gstcurlsink.h create mode 100644 ext/dc1394/Makefile.am create mode 100644 ext/dc1394/Makefile.in create mode 100644 ext/dc1394/gstdc1394.c create mode 100644 ext/dc1394/gstdc1394.h create mode 100644 ext/dirac/Makefile.am create mode 100644 ext/dirac/Makefile.in create mode 100644 ext/dirac/gstdirac.cc create mode 100644 ext/dirac/gstdiracdec.h create mode 100644 ext/dirac/gstdiracenc.cc create mode 100644 ext/directfb/Makefile.am create mode 100644 ext/directfb/Makefile.in create mode 100644 ext/directfb/dfb-example.c create mode 100644 ext/directfb/dfbvideosink.c create mode 100644 ext/directfb/dfbvideosink.h create mode 100644 ext/divx/Makefile.am create mode 100644 ext/divx/Makefile.in create mode 100644 ext/divx/gstdivxdec.c create mode 100644 ext/divx/gstdivxdec.h create mode 100644 ext/divx/gstdivxenc.c create mode 100644 ext/divx/gstdivxenc.h create mode 100644 ext/dts/Makefile.am create mode 100644 ext/dts/Makefile.in create mode 100644 ext/dts/gstdtsdec.c create mode 100644 ext/dts/gstdtsdec.h create mode 100644 ext/faac/Makefile.am create mode 100644 ext/faac/Makefile.in create mode 100644 ext/faac/gstfaac.c create mode 100644 ext/faac/gstfaac.h create mode 100644 ext/faad/Makefile.am create mode 100644 ext/faad/Makefile.in create mode 100644 ext/faad/gstfaad.c create mode 100644 ext/faad/gstfaad.h create mode 100644 ext/flite/Makefile.am create mode 100644 ext/flite/Makefile.in create mode 100644 ext/flite/gstflite.c create mode 100644 ext/flite/gstflitetestsrc.c create mode 100644 ext/gme/Makefile.am create mode 100644 ext/gme/Makefile.in create mode 100644 ext/gme/gstgme.c create mode 100644 ext/gme/gstgme.h create mode 100644 ext/gsettings/Makefile.am create mode 100644 ext/gsettings/Makefile.in create mode 100644 ext/gsettings/gstgsettings.h create mode 100644 ext/gsettings/gstgsettingsaudiosink.c create mode 100644 ext/gsettings/gstgsettingsaudiosink.h create mode 100644 ext/gsettings/gstgsettingsaudiosrc.c create mode 100644 ext/gsettings/gstgsettingsaudiosrc.h create mode 100644 ext/gsettings/gstgsettingsvideosink.c create mode 100644 ext/gsettings/gstgsettingsvideosink.h create mode 100644 ext/gsettings/gstgsettingsvideosrc.c create mode 100644 ext/gsettings/gstgsettingsvideosrc.h create mode 100644 ext/gsettings/gstswitchsink.c create mode 100644 ext/gsettings/gstswitchsink.h create mode 100644 ext/gsettings/gstswitchsrc.c create mode 100644 ext/gsettings/gstswitchsrc.h create mode 100644 ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml.in create mode 100644 ext/gsettings/plugin.c create mode 100644 ext/gsm/Makefile.am create mode 100644 ext/gsm/Makefile.in create mode 100644 ext/gsm/gstgsm.c create mode 100644 ext/gsm/gstgsmdec.c create mode 100644 ext/gsm/gstgsmdec.h create mode 100644 ext/gsm/gstgsmenc.c create mode 100644 ext/gsm/gstgsmenc.h create mode 100644 ext/jp2k/Makefile.am create mode 100644 ext/jp2k/Makefile.in create mode 100644 ext/jp2k/gstjasperdec.c create mode 100644 ext/jp2k/gstjasperdec.h create mode 100644 ext/jp2k/gstjasperenc.c create mode 100644 ext/jp2k/gstjasperenc.h create mode 100644 ext/jp2k/gstjp2k.c create mode 100644 ext/kate/Makefile.am create mode 100644 ext/kate/Makefile.in create mode 100644 ext/kate/README create mode 100644 ext/kate/gstkate.c create mode 100644 ext/kate/gstkate.h create mode 100644 ext/kate/gstkatedec.c create mode 100644 ext/kate/gstkatedec.h create mode 100644 ext/kate/gstkateenc.c create mode 100644 ext/kate/gstkateenc.h create mode 100644 ext/kate/gstkateparse.c create mode 100644 ext/kate/gstkateparse.h create mode 100644 ext/kate/gstkatespu.c create mode 100644 ext/kate/gstkatespu.h create mode 100644 ext/kate/gstkatetag.c create mode 100644 ext/kate/gstkatetag.h create mode 100644 ext/kate/gstkatetiger.c create mode 100644 ext/kate/gstkatetiger.h create mode 100644 ext/kate/gstkateutil.c create mode 100644 ext/kate/gstkateutil.h create mode 100644 ext/ladspa/Makefile.am create mode 100644 ext/ladspa/Makefile.in create mode 100644 ext/ladspa/gstladspa.c create mode 100644 ext/ladspa/gstladspa.h create mode 100644 ext/libmms/Makefile.am create mode 100644 ext/libmms/Makefile.in create mode 100644 ext/libmms/gstmms.c create mode 100644 ext/libmms/gstmms.h create mode 100644 ext/lv2/Makefile.am create mode 100644 ext/lv2/Makefile.in create mode 100644 ext/lv2/README create mode 100644 ext/lv2/gstlv2.c create mode 100644 ext/lv2/gstlv2.h create mode 100644 ext/mimic/Makefile.am create mode 100644 ext/mimic/Makefile.in create mode 100644 ext/mimic/gstmimdec.c create mode 100644 ext/mimic/gstmimdec.h create mode 100644 ext/mimic/gstmimenc.c create mode 100644 ext/mimic/gstmimenc.h create mode 100644 ext/mimic/gstmimic.c create mode 100644 ext/modplug/Makefile.am create mode 100644 ext/modplug/Makefile.in create mode 100644 ext/modplug/gstmodplug.cc create mode 100644 ext/modplug/gstmodplug.h create mode 100644 ext/mpeg2enc/Makefile.am create mode 100644 ext/mpeg2enc/Makefile.in create mode 100644 ext/mpeg2enc/gstmpeg2enc.cc create mode 100644 ext/mpeg2enc/gstmpeg2enc.hh create mode 100644 ext/mpeg2enc/gstmpeg2encoder.cc create mode 100644 ext/mpeg2enc/gstmpeg2encoder.hh create mode 100644 ext/mpeg2enc/gstmpeg2encoptions.cc create mode 100644 ext/mpeg2enc/gstmpeg2encoptions.hh create mode 100644 ext/mpeg2enc/gstmpeg2encpicturereader.cc create mode 100644 ext/mpeg2enc/gstmpeg2encpicturereader.hh create mode 100644 ext/mpeg2enc/gstmpeg2encstreamwriter.cc create mode 100644 ext/mpeg2enc/gstmpeg2encstreamwriter.hh create mode 100644 ext/mplex/Makefile.am create mode 100644 ext/mplex/Makefile.in create mode 100644 ext/mplex/gstmplex.cc create mode 100644 ext/mplex/gstmplex.hh create mode 100644 ext/mplex/gstmplexibitstream.cc create mode 100644 ext/mplex/gstmplexibitstream.hh create mode 100644 ext/mplex/gstmplexjob.cc create mode 100644 ext/mplex/gstmplexjob.hh create mode 100644 ext/mplex/gstmplexoutputstream.cc create mode 100644 ext/mplex/gstmplexoutputstream.hh create mode 100644 ext/musepack/Makefile.am create mode 100644 ext/musepack/Makefile.in create mode 100644 ext/musepack/gstmusepackdec.c create mode 100644 ext/musepack/gstmusepackdec.h create mode 100644 ext/musepack/gstmusepackreader.c create mode 100644 ext/musepack/gstmusepackreader.h create mode 100644 ext/musicbrainz/Makefile.am create mode 100644 ext/musicbrainz/Makefile.in create mode 100644 ext/musicbrainz/gsttrm.c create mode 100644 ext/musicbrainz/gsttrm.h create mode 100644 ext/mythtv/Makefile.am create mode 100644 ext/mythtv/Makefile.in create mode 100644 ext/mythtv/gstmythtvsrc.c create mode 100644 ext/mythtv/gstmythtvsrc.h create mode 100644 ext/nas/Makefile.am create mode 100644 ext/nas/Makefile.in create mode 100644 ext/nas/nassink.c create mode 100644 ext/nas/nassink.h create mode 100644 ext/neon/Makefile.am create mode 100644 ext/neon/Makefile.in create mode 100644 ext/neon/gstneonhttpsrc.c create mode 100644 ext/neon/gstneonhttpsrc.h create mode 100644 ext/ofa/Makefile.am create mode 100644 ext/ofa/Makefile.in create mode 100644 ext/ofa/gstofa.c create mode 100644 ext/ofa/gstofa.h create mode 100644 ext/opencv/Makefile.am create mode 100644 ext/opencv/Makefile.in create mode 100644 ext/opencv/gstcvdilate.c create mode 100644 ext/opencv/gstcvdilate.h create mode 100644 ext/opencv/gstcvdilateerode.c create mode 100644 ext/opencv/gstcvdilateerode.h create mode 100644 ext/opencv/gstcvequalizehist.c create mode 100644 ext/opencv/gstcvequalizehist.h create mode 100644 ext/opencv/gstcverode.c create mode 100644 ext/opencv/gstcverode.h create mode 100644 ext/opencv/gstcvlaplace.c create mode 100644 ext/opencv/gstcvlaplace.h create mode 100644 ext/opencv/gstcvsmooth.c create mode 100644 ext/opencv/gstcvsmooth.h create mode 100644 ext/opencv/gstcvsobel.c create mode 100644 ext/opencv/gstcvsobel.h create mode 100644 ext/opencv/gstedgedetect.c create mode 100644 ext/opencv/gstedgedetect.h create mode 100644 ext/opencv/gstfaceblur.c create mode 100644 ext/opencv/gstfaceblur.h create mode 100644 ext/opencv/gstfacedetect.c create mode 100644 ext/opencv/gstfacedetect.h create mode 100644 ext/opencv/gstopencv.c create mode 100644 ext/opencv/gstopencvutils.c create mode 100644 ext/opencv/gstopencvutils.h create mode 100644 ext/opencv/gstopencvvideofilter.c create mode 100644 ext/opencv/gstopencvvideofilter.h create mode 100644 ext/opencv/gstpyramidsegment.c create mode 100644 ext/opencv/gstpyramidsegment.h create mode 100644 ext/opencv/gsttemplatematch.c create mode 100644 ext/opencv/gsttemplatematch.h create mode 100644 ext/opencv/gsttextoverlay.c create mode 100644 ext/opencv/gsttextoverlay.h create mode 100644 ext/resindvd/Makefile.am create mode 100644 ext/resindvd/Makefile.in create mode 100644 ext/resindvd/gstmpegdefs.h create mode 100644 ext/resindvd/gstmpegdemux.c create mode 100644 ext/resindvd/gstmpegdemux.h create mode 100644 ext/resindvd/gstmpegdesc.c create mode 100644 ext/resindvd/gstmpegdesc.h create mode 100644 ext/resindvd/gstpesfilter.c create mode 100644 ext/resindvd/gstpesfilter.h create mode 100644 ext/resindvd/plugin.c create mode 100755 ext/resindvd/resin-play create mode 100755 ext/resindvd/resin-play2 create mode 100644 ext/resindvd/resindvdbin.c create mode 100644 ext/resindvd/resindvdbin.h create mode 100644 ext/resindvd/resindvdsrc.c create mode 100644 ext/resindvd/resindvdsrc.h create mode 100644 ext/resindvd/rsnaudiomunge.c create mode 100644 ext/resindvd/rsnaudiomunge.h create mode 100644 ext/resindvd/rsndec.c create mode 100644 ext/resindvd/rsndec.h create mode 100644 ext/resindvd/rsnparsetter.c create mode 100644 ext/resindvd/rsnparsetter.h create mode 100644 ext/resindvd/rsnstreamselector.c create mode 100644 ext/resindvd/rsnstreamselector.h create mode 100644 ext/resindvd/rsnwrappedbuffer.c create mode 100644 ext/resindvd/rsnwrappedbuffer.h create mode 100644 ext/rsvg/Makefile.am create mode 100644 ext/rsvg/Makefile.in create mode 100644 ext/rsvg/gstrsvg.c create mode 100644 ext/rsvg/gstrsvgdec.c create mode 100644 ext/rsvg/gstrsvgdec.h create mode 100644 ext/rsvg/gstrsvgoverlay.c create mode 100644 ext/rsvg/gstrsvgoverlay.h create mode 100644 ext/rtmp/Makefile.am create mode 100644 ext/rtmp/Makefile.in create mode 100644 ext/rtmp/README create mode 100644 ext/rtmp/gstrtmpsrc.c create mode 100644 ext/rtmp/gstrtmpsrc.h create mode 100644 ext/schroedinger/Makefile.am create mode 100644 ext/schroedinger/Makefile.in create mode 100644 ext/schroedinger/gstschro.c create mode 100644 ext/schroedinger/gstschrodec.c create mode 100644 ext/schroedinger/gstschroenc.c create mode 100644 ext/schroedinger/gstschroutils.c create mode 100644 ext/schroedinger/gstschroutils.h create mode 100644 ext/sdl/Makefile.am create mode 100644 ext/sdl/Makefile.in create mode 100644 ext/sdl/gstsdl.c create mode 100644 ext/sdl/sdlaudiosink.c create mode 100644 ext/sdl/sdlaudiosink.h create mode 100644 ext/sdl/sdlvideosink.c create mode 100644 ext/sdl/sdlvideosink.h create mode 100644 ext/sndfile/Makefile.am create mode 100644 ext/sndfile/Makefile.in create mode 100644 ext/sndfile/gstsf.c create mode 100644 ext/sndfile/gstsf.h create mode 100644 ext/sndfile/gstsfsink.c create mode 100644 ext/sndfile/gstsfsink.h create mode 100644 ext/sndfile/gstsfsrc.c create mode 100644 ext/sndfile/gstsfsrc.h create mode 100644 ext/soundtouch/Makefile.am create mode 100644 ext/soundtouch/Makefile.in create mode 100644 ext/soundtouch/gstbpmdetect.cc create mode 100644 ext/soundtouch/gstbpmdetect.hh create mode 100644 ext/soundtouch/gstpitch.cc create mode 100644 ext/soundtouch/gstpitch.hh create mode 100644 ext/soundtouch/plugin.c create mode 100644 ext/spc/Makefile.am create mode 100644 ext/spc/Makefile.in create mode 100644 ext/spc/gstspc.c create mode 100644 ext/spc/gstspc.h create mode 100644 ext/spc/tag.c create mode 100644 ext/spc/tag.h create mode 100644 ext/swfdec/Makefile.am create mode 100644 ext/swfdec/Makefile.in create mode 100644 ext/swfdec/gstswfdec.c create mode 100644 ext/swfdec/gstswfdec.h create mode 100644 ext/timidity/Makefile.am create mode 100644 ext/timidity/Makefile.in create mode 100644 ext/timidity/README create mode 100644 ext/timidity/gsttimidity.c create mode 100644 ext/timidity/gsttimidity.h create mode 100644 ext/timidity/gstwildmidi.c create mode 100644 ext/timidity/gstwildmidi.h create mode 100644 ext/vp8/Makefile.am create mode 100644 ext/vp8/Makefile.in create mode 100644 ext/vp8/gstvp8dec.c create mode 100644 ext/vp8/gstvp8dec.h create mode 100644 ext/vp8/gstvp8enc.c create mode 100644 ext/vp8/gstvp8enc.h create mode 100644 ext/vp8/gstvp8utils.c create mode 100644 ext/vp8/gstvp8utils.h create mode 100644 ext/vp8/plugin.c create mode 100644 ext/xvid/Makefile.am create mode 100644 ext/xvid/Makefile.in create mode 100644 ext/xvid/gstxvid.c create mode 100644 ext/xvid/gstxvid.h create mode 100644 ext/xvid/gstxviddec.c create mode 100644 ext/xvid/gstxviddec.h create mode 100644 ext/xvid/gstxvidenc.c create mode 100644 ext/xvid/gstxvidenc.h create mode 100644 ext/zbar/Makefile.am create mode 100644 ext/zbar/Makefile.in create mode 100644 ext/zbar/gstzbar.c create mode 100644 ext/zbar/gstzbar.h create mode 100644 gst-libs/Makefile.am create mode 100644 gst-libs/Makefile.in create mode 100644 gst-libs/gst/Makefile.am create mode 100644 gst-libs/gst/Makefile.in create mode 100644 gst-libs/gst/basecamerabinsrc/Makefile.am create mode 100644 gst-libs/gst/basecamerabinsrc/Makefile.in create mode 100644 gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c create mode 100644 gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h create mode 100644 gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.c create mode 100644 gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.h create mode 100644 gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c create mode 100644 gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h create mode 100644 gst-libs/gst/gettext.h create mode 100644 gst-libs/gst/gst-i18n-plugin.h create mode 100644 gst-libs/gst/interfaces/Makefile.am create mode 100644 gst-libs/gst/interfaces/Makefile.in create mode 100644 gst-libs/gst/interfaces/photography.c create mode 100644 gst-libs/gst/interfaces/photography.h create mode 100644 gst-libs/gst/signalprocessor/Makefile.am create mode 100644 gst-libs/gst/signalprocessor/Makefile.in create mode 100644 gst-libs/gst/signalprocessor/gstsignalprocessor.c create mode 100644 gst-libs/gst/signalprocessor/gstsignalprocessor.h create mode 100644 gst-libs/gst/video/Makefile.am create mode 100644 gst-libs/gst/video/Makefile.in create mode 100644 gst-libs/gst/video/gstbasevideocodec.c create mode 100644 gst-libs/gst/video/gstbasevideocodec.h create mode 100644 gst-libs/gst/video/gstbasevideodecoder.c create mode 100644 gst-libs/gst/video/gstbasevideodecoder.h create mode 100644 gst-libs/gst/video/gstbasevideoencoder.c create mode 100644 gst-libs/gst/video/gstbasevideoencoder.h create mode 100644 gst-libs/gst/video/gstbasevideoutils.c create mode 100644 gst-plugins-bad.doap create mode 100644 gst-plugins-bad.spec.in create mode 100644 gst/Makefile.am create mode 100644 gst/Makefile.in create mode 100644 gst/adpcmdec/Makefile.am create mode 100644 gst/adpcmdec/Makefile.in create mode 100644 gst/adpcmdec/adpcmdec.c create mode 100644 gst/adpcmenc/Makefile.am create mode 100644 gst/adpcmenc/Makefile.in create mode 100644 gst/adpcmenc/adpcmenc.c create mode 100644 gst/aiff/Makefile.am create mode 100644 gst/aiff/Makefile.in create mode 100644 gst/aiff/aiff.c create mode 100644 gst/aiff/aiffmux.c create mode 100644 gst/aiff/aiffmux.h create mode 100644 gst/aiff/aiffparse.c create mode 100644 gst/aiff/aiffparse.h create mode 100644 gst/asfmux/Makefile.am create mode 100644 gst/asfmux/Makefile.in create mode 100644 gst/asfmux/gstasf.c create mode 100644 gst/asfmux/gstasfmux.c create mode 100644 gst/asfmux/gstasfmux.h create mode 100644 gst/asfmux/gstasfobjects.c create mode 100644 gst/asfmux/gstasfobjects.h create mode 100644 gst/asfmux/gstasfparse.c create mode 100644 gst/asfmux/gstasfparse.h create mode 100644 gst/asfmux/gstrtpasfpay.c create mode 100644 gst/asfmux/gstrtpasfpay.h create mode 100644 gst/autoconvert/Makefile.am create mode 100644 gst/autoconvert/Makefile.in create mode 100644 gst/autoconvert/gstautoconvert.c create mode 100644 gst/autoconvert/gstautoconvert.h create mode 100644 gst/autoconvert/gstautovideoconvert.c create mode 100644 gst/autoconvert/gstautovideoconvert.h create mode 100644 gst/autoconvert/plugin.c create mode 100644 gst/bayer/Makefile.am create mode 100644 gst/bayer/Makefile.in create mode 100644 gst/bayer/gstbayer.c create mode 100644 gst/bayer/gstbayer2rgb.c create mode 100644 gst/bayer/gstrgb2bayer.c create mode 100644 gst/bayer/gstrgb2bayer.h create mode 100644 gst/camerabin/Makefile.am create mode 100644 gst/camerabin/Makefile.in create mode 100644 gst/camerabin/TODO create mode 100644 gst/camerabin/camerabindebug.h create mode 100644 gst/camerabin/camerabingeneral.c create mode 100644 gst/camerabin/camerabingeneral.h create mode 100644 gst/camerabin/camerabinimage.c create mode 100644 gst/camerabin/camerabinimage.h create mode 100644 gst/camerabin/camerabinpreview.c create mode 100644 gst/camerabin/camerabinpreview.h create mode 100644 gst/camerabin/camerabinvideo.c create mode 100644 gst/camerabin/camerabinvideo.h create mode 100644 gst/camerabin/gstcamerabin-enum.c create mode 100644 gst/camerabin/gstcamerabin-enum.h create mode 100644 gst/camerabin/gstcamerabin-marshal.list create mode 100644 gst/camerabin/gstcamerabin.c create mode 100644 gst/camerabin/gstcamerabin.h create mode 100644 gst/camerabin/gstcamerabincolorbalance.c create mode 100644 gst/camerabin/gstcamerabincolorbalance.h create mode 100644 gst/camerabin/gstinputselector.c create mode 100644 gst/camerabin/gstinputselector.h create mode 100644 gst/camerabin2/Makefile.am create mode 100644 gst/camerabin2/Makefile.in create mode 100644 gst/camerabin2/camerabingeneral.c create mode 100644 gst/camerabin2/camerabingeneral.h create mode 100644 gst/camerabin2/gstcamerabin2.c create mode 100644 gst/camerabin2/gstcamerabin2.h create mode 100644 gst/camerabin2/gstimagecapturebin.c create mode 100644 gst/camerabin2/gstimagecapturebin.h create mode 100644 gst/camerabin2/gstplugin.c create mode 100644 gst/camerabin2/gstviewfinderbin.c create mode 100644 gst/camerabin2/gstviewfinderbin.h create mode 100644 gst/camerabin2/gstwrappercamerabinsrc.c create mode 100644 gst/camerabin2/gstwrappercamerabinsrc.h create mode 100644 gst/cdxaparse/Makefile.am create mode 100644 gst/cdxaparse/Makefile.in create mode 100644 gst/cdxaparse/gstcdxaparse.c create mode 100644 gst/cdxaparse/gstcdxaparse.h create mode 100644 gst/cdxaparse/gstvcdparse.c create mode 100644 gst/cdxaparse/gstvcdparse.h create mode 100644 gst/coloreffects/Makefile.am create mode 100644 gst/coloreffects/Makefile.in create mode 100644 gst/coloreffects/gstchromahold.c create mode 100644 gst/coloreffects/gstchromahold.h create mode 100644 gst/coloreffects/gstcoloreffects.c create mode 100644 gst/coloreffects/gstcoloreffects.h create mode 100644 gst/coloreffects/gstplugin.c create mode 100644 gst/colorspace/Makefile.am create mode 100644 gst/colorspace/Makefile.in create mode 100644 gst/colorspace/colorspace.c create mode 100644 gst/colorspace/colorspace.h create mode 100644 gst/colorspace/gstcolorspace.c create mode 100644 gst/colorspace/gstcolorspace.h create mode 100644 gst/colorspace/gstcolorspaceorc-dist.c create mode 100644 gst/colorspace/gstcolorspaceorc-dist.h create mode 100644 gst/colorspace/gstcolorspaceorc.orc create mode 100644 gst/dataurisrc/Makefile.am create mode 100644 gst/dataurisrc/Makefile.in create mode 100644 gst/dataurisrc/gstdataurisrc.c create mode 100644 gst/dataurisrc/gstdataurisrc.h create mode 100644 gst/dccp/Makefile.am create mode 100644 gst/dccp/Makefile.in create mode 100644 gst/dccp/gstdccp.c create mode 100644 gst/dccp/gstdccp.h create mode 100644 gst/dccp/gstdccp_common.h create mode 100644 gst/dccp/gstdccpclientsink.c create mode 100644 gst/dccp/gstdccpclientsink.h create mode 100644 gst/dccp/gstdccpclientsrc.c create mode 100644 gst/dccp/gstdccpclientsrc.h create mode 100644 gst/dccp/gstdccpplugin.c create mode 100644 gst/dccp/gstdccpserversink.c create mode 100644 gst/dccp/gstdccpserversink.h create mode 100644 gst/dccp/gstdccpserversrc.c create mode 100644 gst/dccp/gstdccpserversrc.h create mode 100644 gst/debugutils/Makefile.am create mode 100644 gst/debugutils/Makefile.in create mode 100644 gst/debugutils/debugutils-marshal.list create mode 100644 gst/debugutils/debugutilsbad.c create mode 100644 gst/debugutils/fpsdisplaysink.c create mode 100644 gst/debugutils/fpsdisplaysink.h create mode 100644 gst/debugutils/gstchecksumsink.c create mode 100644 gst/debugutils/gstchecksumsink.h create mode 100644 gst/debugutils/gstchopmydata.c create mode 100644 gst/debugutils/gstchopmydata.h create mode 100644 gst/dtmf/Makefile.am create mode 100644 gst/dtmf/Makefile.in create mode 100644 gst/dtmf/gstdtmf.c create mode 100644 gst/dtmf/gstdtmfcommon.h create mode 100644 gst/dtmf/gstdtmfdetect.c create mode 100644 gst/dtmf/gstdtmfdetect.h create mode 100644 gst/dtmf/gstdtmfsrc.c create mode 100644 gst/dtmf/gstdtmfsrc.h create mode 100644 gst/dtmf/gstrtpdtmfcommon.h create mode 100644 gst/dtmf/gstrtpdtmfdepay.c create mode 100644 gst/dtmf/gstrtpdtmfdepay.h create mode 100644 gst/dtmf/gstrtpdtmfsrc.c create mode 100644 gst/dtmf/gstrtpdtmfsrc.h create mode 100644 gst/dtmf/tone_detect.c create mode 100644 gst/dtmf/tone_detect.h create mode 100644 gst/dvbsuboverlay/Makefile.am create mode 100644 gst/dvbsuboverlay/Makefile.in create mode 100644 gst/dvbsuboverlay/TODO create mode 100644 gst/dvbsuboverlay/dvb-sub.c create mode 100644 gst/dvbsuboverlay/dvb-sub.h create mode 100644 gst/dvbsuboverlay/gstdvbsuboverlay.c create mode 100644 gst/dvbsuboverlay/gstdvbsuboverlay.h create mode 100644 gst/dvdspu/Makefile.am create mode 100644 gst/dvdspu/Makefile.in create mode 100644 gst/dvdspu/Notes.txt create mode 100644 gst/dvdspu/gstdvdspu-render.c create mode 100644 gst/dvdspu/gstdvdspu.c create mode 100644 gst/dvdspu/gstdvdspu.h create mode 100644 gst/dvdspu/gstspu-common.h create mode 100644 gst/dvdspu/gstspu-pgs.c create mode 100644 gst/dvdspu/gstspu-pgs.h create mode 100644 gst/dvdspu/gstspu-vobsub-render.c create mode 100644 gst/dvdspu/gstspu-vobsub.c create mode 100644 gst/dvdspu/gstspu-vobsub.h create mode 100644 gst/festival/Makefile.am create mode 100644 gst/festival/Makefile.in create mode 100644 gst/festival/gstfestival.c create mode 100644 gst/festival/gstfestival.h create mode 100644 gst/fieldanalysis/Makefile.am create mode 100644 gst/fieldanalysis/Makefile.in create mode 100644 gst/fieldanalysis/gstfieldanalysis.c create mode 100644 gst/fieldanalysis/gstfieldanalysis.h create mode 100644 gst/fieldanalysis/gstfieldanalysisorc-dist.c create mode 100644 gst/fieldanalysis/gstfieldanalysisorc-dist.h create mode 100644 gst/fieldanalysis/gstfieldanalysisorc.orc create mode 100644 gst/freeze/Makefile.am create mode 100644 gst/freeze/Makefile.in create mode 100644 gst/freeze/gstfreeze.c create mode 100644 gst/freeze/gstfreeze.h create mode 100644 gst/frei0r/Makefile.am create mode 100644 gst/frei0r/Makefile.in create mode 100644 gst/frei0r/frei0r.h create mode 100644 gst/frei0r/gstfrei0r.c create mode 100644 gst/frei0r/gstfrei0r.h create mode 100644 gst/frei0r/gstfrei0rfilter.c create mode 100644 gst/frei0r/gstfrei0rfilter.h create mode 100644 gst/frei0r/gstfrei0rmixer.c create mode 100644 gst/frei0r/gstfrei0rmixer.h create mode 100644 gst/frei0r/gstfrei0rsrc.c create mode 100644 gst/frei0r/gstfrei0rsrc.h create mode 100644 gst/gaudieffects/Makefile.am create mode 100644 gst/gaudieffects/Makefile.in create mode 100644 gst/gaudieffects/blur-example.py create mode 100644 gst/gaudieffects/burn-example.py create mode 100644 gst/gaudieffects/gstburn.c create mode 100644 gst/gaudieffects/gstburn.h create mode 100644 gst/gaudieffects/gstchromium.c create mode 100644 gst/gaudieffects/gstchromium.h create mode 100644 gst/gaudieffects/gstdilate.c create mode 100644 gst/gaudieffects/gstdilate.h create mode 100644 gst/gaudieffects/gstdodge.c create mode 100644 gst/gaudieffects/gstdodge.h create mode 100644 gst/gaudieffects/gstexclusion.c create mode 100644 gst/gaudieffects/gstexclusion.h create mode 100644 gst/gaudieffects/gstgaussblur.c create mode 100644 gst/gaudieffects/gstgaussblur.h create mode 100644 gst/gaudieffects/gstplugin.c create mode 100644 gst/gaudieffects/gstplugin.h create mode 100644 gst/gaudieffects/gstsolarize.c create mode 100644 gst/gaudieffects/gstsolarize.h create mode 100644 gst/geometrictransform/Makefile.am create mode 100644 gst/geometrictransform/Makefile.in create mode 100644 gst/geometrictransform/geometricmath.c create mode 100644 gst/geometrictransform/geometricmath.h create mode 100644 gst/geometrictransform/gstbulge.c create mode 100644 gst/geometrictransform/gstbulge.h create mode 100644 gst/geometrictransform/gstcircle.c create mode 100644 gst/geometrictransform/gstcircle.h create mode 100644 gst/geometrictransform/gstcirclegeometrictransform.c create mode 100644 gst/geometrictransform/gstcirclegeometrictransform.h create mode 100644 gst/geometrictransform/gstdiffuse.c create mode 100644 gst/geometrictransform/gstdiffuse.h create mode 100644 gst/geometrictransform/gstfisheye.c create mode 100644 gst/geometrictransform/gstfisheye.h create mode 100644 gst/geometrictransform/gstgeometrictransform.c create mode 100644 gst/geometrictransform/gstgeometrictransform.h create mode 100644 gst/geometrictransform/gstkaleidoscope.c create mode 100644 gst/geometrictransform/gstkaleidoscope.h create mode 100644 gst/geometrictransform/gstmarble.c create mode 100644 gst/geometrictransform/gstmarble.h create mode 100644 gst/geometrictransform/gstmirror.c create mode 100644 gst/geometrictransform/gstmirror.h create mode 100644 gst/geometrictransform/gstpinch.c create mode 100644 gst/geometrictransform/gstpinch.h create mode 100644 gst/geometrictransform/gstrotate.c create mode 100644 gst/geometrictransform/gstrotate.h create mode 100644 gst/geometrictransform/gstsphere.c create mode 100644 gst/geometrictransform/gstsphere.h create mode 100644 gst/geometrictransform/gstsquare.c create mode 100644 gst/geometrictransform/gstsquare.h create mode 100644 gst/geometrictransform/gststretch.c create mode 100644 gst/geometrictransform/gststretch.h create mode 100644 gst/geometrictransform/gsttunnel.c create mode 100644 gst/geometrictransform/gsttunnel.h create mode 100644 gst/geometrictransform/gsttwirl.c create mode 100644 gst/geometrictransform/gsttwirl.h create mode 100644 gst/geometrictransform/gstwaterripple.c create mode 100644 gst/geometrictransform/gstwaterripple.h create mode 100644 gst/geometrictransform/plugin.c create mode 100644 gst/h264parse/Makefile.am create mode 100644 gst/h264parse/Makefile.in create mode 100644 gst/h264parse/gsth264parse.c create mode 100644 gst/h264parse/gsth264parse.h create mode 100644 gst/hdvparse/Makefile.am create mode 100644 gst/hdvparse/Makefile.in create mode 100644 gst/hdvparse/gsthdvparse.c create mode 100644 gst/hdvparse/gsthdvparse.h create mode 100644 gst/hls/Makefile.am create mode 100644 gst/hls/Makefile.in create mode 100644 gst/hls/gstfragmented.h create mode 100644 gst/hls/gstfragmentedplugin.c create mode 100644 gst/hls/gsthlsdemux.c create mode 100644 gst/hls/gsthlsdemux.h create mode 100644 gst/hls/m3u8.c create mode 100644 gst/hls/m3u8.h create mode 100644 gst/id3tag/Makefile.am create mode 100644 gst/id3tag/Makefile.in create mode 100644 gst/id3tag/gstid3mux.c create mode 100644 gst/id3tag/gstid3mux.h create mode 100644 gst/id3tag/gsttagmux.c create mode 100644 gst/id3tag/gsttagmux.h create mode 100644 gst/id3tag/id3tag.c create mode 100644 gst/id3tag/id3tag.h create mode 100644 gst/interlace/Makefile.am create mode 100644 gst/interlace/Makefile.in create mode 100644 gst/interlace/gstinterlace.c create mode 100644 gst/invtelecine/Makefile.am create mode 100644 gst/invtelecine/Makefile.in create mode 100644 gst/invtelecine/gstinvtelecine.c create mode 100644 gst/ivfparse/Makefile.am create mode 100644 gst/ivfparse/Makefile.in create mode 100644 gst/ivfparse/gstivfparse.c create mode 100644 gst/ivfparse/gstivfparse.h create mode 100644 gst/jp2kdecimator/Makefile.am create mode 100644 gst/jp2kdecimator/Makefile.in create mode 100644 gst/jp2kdecimator/gstjp2kdecimator.c create mode 100644 gst/jp2kdecimator/gstjp2kdecimator.h create mode 100644 gst/jp2kdecimator/jp2kcodestream.c create mode 100644 gst/jp2kdecimator/jp2kcodestream.h create mode 100644 gst/jpegformat/Makefile.am create mode 100644 gst/jpegformat/Makefile.in create mode 100644 gst/jpegformat/gstjifmux.c create mode 100644 gst/jpegformat/gstjifmux.h create mode 100644 gst/jpegformat/gstjpegformat.c create mode 100644 gst/jpegformat/gstjpegformat.h create mode 100644 gst/jpegformat/gstjpegparse.c create mode 100644 gst/jpegformat/gstjpegparse.h create mode 100644 gst/legacyresample/Makefile.am create mode 100644 gst/legacyresample/Makefile.in create mode 100644 gst/legacyresample/buffer.c create mode 100644 gst/legacyresample/buffer.h create mode 100644 gst/legacyresample/debug.h create mode 100644 gst/legacyresample/functable.c create mode 100644 gst/legacyresample/functable.h create mode 100644 gst/legacyresample/gstlegacyresample.c create mode 100644 gst/legacyresample/gstlegacyresample.h create mode 100644 gst/legacyresample/resample.c create mode 100644 gst/legacyresample/resample.h create mode 100644 gst/legacyresample/resample_functable.c create mode 100644 gst/legacyresample/resample_ref.c create mode 100644 gst/librfb/Makefile.am create mode 100644 gst/librfb/Makefile.in create mode 100644 gst/librfb/d3des.c create mode 100644 gst/librfb/d3des.h create mode 100644 gst/librfb/gstrfbsrc.c create mode 100644 gst/librfb/gstrfbsrc.h create mode 100644 gst/librfb/rfb.h create mode 100644 gst/librfb/rfbbuffer.c create mode 100644 gst/librfb/rfbbuffer.h create mode 100644 gst/librfb/rfbcontext.h create mode 100644 gst/librfb/rfbdecoder.c create mode 100644 gst/librfb/rfbdecoder.h create mode 100644 gst/librfb/rfbutil.h create mode 100644 gst/librfb/vncauth.c create mode 100644 gst/librfb/vncauth.h create mode 100644 gst/liveadder/Makefile.am create mode 100644 gst/liveadder/Makefile.in create mode 100644 gst/liveadder/liveadder.c create mode 100644 gst/liveadder/liveadder.h create mode 100644 gst/mpeg4videoparse/Makefile.am create mode 100644 gst/mpeg4videoparse/Makefile.in create mode 100644 gst/mpeg4videoparse/mpeg4videoparse.c create mode 100644 gst/mpeg4videoparse/mpeg4videoparse.h create mode 100644 gst/mpegdemux/Makefile.am create mode 100644 gst/mpegdemux/Makefile.in create mode 100644 gst/mpegdemux/flumpegdemux.c create mode 100644 gst/mpegdemux/flutspatinfo.c create mode 100644 gst/mpegdemux/flutspatinfo.h create mode 100644 gst/mpegdemux/flutspmtinfo.c create mode 100644 gst/mpegdemux/flutspmtinfo.h create mode 100644 gst/mpegdemux/flutspmtstreaminfo.c create mode 100644 gst/mpegdemux/flutspmtstreaminfo.h create mode 100644 gst/mpegdemux/gstmpegdefs.h create mode 100644 gst/mpegdemux/gstmpegdemux.c create mode 100644 gst/mpegdemux/gstmpegdemux.h create mode 100644 gst/mpegdemux/gstmpegdesc.c create mode 100644 gst/mpegdemux/gstmpegdesc.h create mode 100644 gst/mpegdemux/gstmpegtsdemux.c create mode 100644 gst/mpegdemux/gstmpegtsdemux.h create mode 100644 gst/mpegdemux/gstpesfilter.c create mode 100644 gst/mpegdemux/gstpesfilter.h create mode 100644 gst/mpegdemux/gstsectionfilter.c create mode 100644 gst/mpegdemux/gstsectionfilter.h create mode 100644 gst/mpegdemux/mpegtspacketizer.c create mode 100644 gst/mpegdemux/mpegtspacketizer.h create mode 100644 gst/mpegdemux/mpegtsparse.c create mode 100644 gst/mpegdemux/mpegtsparse.h create mode 100644 gst/mpegpsmux/Makefile.am create mode 100644 gst/mpegpsmux/Makefile.in create mode 100644 gst/mpegpsmux/bits.h create mode 100644 gst/mpegpsmux/crc.h create mode 100644 gst/mpegpsmux/mpegpsmux.c create mode 100644 gst/mpegpsmux/mpegpsmux.h create mode 100644 gst/mpegpsmux/mpegpsmux_aac.c create mode 100644 gst/mpegpsmux/mpegpsmux_aac.h create mode 100644 gst/mpegpsmux/mpegpsmux_h264.c create mode 100644 gst/mpegpsmux/mpegpsmux_h264.h create mode 100644 gst/mpegpsmux/psmux.c create mode 100644 gst/mpegpsmux/psmux.h create mode 100644 gst/mpegpsmux/psmuxcommon.h create mode 100644 gst/mpegpsmux/psmuxstream.c create mode 100644 gst/mpegpsmux/psmuxstream.h create mode 100644 gst/mpegtsdemux/Makefile.am create mode 100644 gst/mpegtsdemux/Makefile.in create mode 100644 gst/mpegtsdemux/TODO create mode 100644 gst/mpegtsdemux/gstmpegdefs.h create mode 100644 gst/mpegtsdemux/gstmpegdesc.c create mode 100644 gst/mpegtsdemux/gstmpegdesc.h create mode 100644 gst/mpegtsdemux/gsttsdemux.c create mode 100644 gst/mpegtsdemux/mpegtsbase.c create mode 100644 gst/mpegtsdemux/mpegtsbase.h create mode 100644 gst/mpegtsdemux/mpegtspacketizer.c create mode 100644 gst/mpegtsdemux/mpegtspacketizer.h create mode 100644 gst/mpegtsdemux/mpegtsparse.c create mode 100644 gst/mpegtsdemux/mpegtsparse.h create mode 100644 gst/mpegtsdemux/tsdemux.c create mode 100644 gst/mpegtsdemux/tsdemux.h create mode 100644 gst/mpegtsmux/Makefile.am create mode 100644 gst/mpegtsmux/Makefile.in create mode 100644 gst/mpegtsmux/mpegtsmux.c create mode 100644 gst/mpegtsmux/mpegtsmux.h create mode 100644 gst/mpegtsmux/mpegtsmux_aac.c create mode 100644 gst/mpegtsmux/mpegtsmux_aac.h create mode 100644 gst/mpegtsmux/mpegtsmux_h264.c create mode 100644 gst/mpegtsmux/mpegtsmux_h264.h create mode 100644 gst/mpegtsmux/tsmux/Makefile.am create mode 100644 gst/mpegtsmux/tsmux/Makefile.in create mode 100644 gst/mpegtsmux/tsmux/crc.h create mode 100644 gst/mpegtsmux/tsmux/tsmux.c create mode 100644 gst/mpegtsmux/tsmux/tsmux.h create mode 100644 gst/mpegtsmux/tsmux/tsmuxcommon.h create mode 100644 gst/mpegtsmux/tsmux/tsmuxstream.c create mode 100644 gst/mpegtsmux/tsmux/tsmuxstream.h create mode 100644 gst/mpegvideoparse/Makefile.am create mode 100644 gst/mpegvideoparse/Makefile.in create mode 100644 gst/mpegvideoparse/mpegpacketiser.c create mode 100644 gst/mpegvideoparse/mpegpacketiser.h create mode 100644 gst/mpegvideoparse/mpegvideoparse.c create mode 100644 gst/mpegvideoparse/mpegvideoparse.h create mode 100644 gst/mve/Makefile.am create mode 100644 gst/mve/Makefile.in create mode 100644 gst/mve/TODO create mode 100644 gst/mve/gstmve.c create mode 100644 gst/mve/gstmvedemux.c create mode 100644 gst/mve/gstmvedemux.h create mode 100644 gst/mve/gstmvemux.c create mode 100644 gst/mve/gstmvemux.h create mode 100644 gst/mve/mve.h create mode 100644 gst/mve/mveaudiodec.c create mode 100644 gst/mve/mveaudioenc.c create mode 100644 gst/mve/mvevideodec16.c create mode 100644 gst/mve/mvevideodec8.c create mode 100644 gst/mve/mvevideoenc16.c create mode 100644 gst/mve/mvevideoenc8.c create mode 100644 gst/mxf/Makefile.am create mode 100644 gst/mxf/Makefile.in create mode 100644 gst/mxf/mxf.c create mode 100644 gst/mxf/mxfaes-bwf.c create mode 100644 gst/mxf/mxfaes-bwf.h create mode 100644 gst/mxf/mxfalaw.c create mode 100644 gst/mxf/mxfalaw.h create mode 100644 gst/mxf/mxfd10.c create mode 100644 gst/mxf/mxfd10.h create mode 100644 gst/mxf/mxfdemux.c create mode 100644 gst/mxf/mxfdemux.h create mode 100644 gst/mxf/mxfdms1.c create mode 100644 gst/mxf/mxfdms1.h create mode 100644 gst/mxf/mxfdv-dif.c create mode 100644 gst/mxf/mxfdv-dif.h create mode 100644 gst/mxf/mxfessence.c create mode 100644 gst/mxf/mxfessence.h create mode 100644 gst/mxf/mxfjpeg2000.c create mode 100644 gst/mxf/mxfjpeg2000.h create mode 100644 gst/mxf/mxfmetadata.c create mode 100644 gst/mxf/mxfmetadata.h create mode 100644 gst/mxf/mxfmpeg.c create mode 100644 gst/mxf/mxfmpeg.h create mode 100644 gst/mxf/mxfmux.c create mode 100644 gst/mxf/mxfmux.h create mode 100644 gst/mxf/mxfquark.c create mode 100644 gst/mxf/mxfquark.h create mode 100644 gst/mxf/mxftypes.c create mode 100644 gst/mxf/mxftypes.h create mode 100644 gst/mxf/mxful.c create mode 100644 gst/mxf/mxful.h create mode 100644 gst/mxf/mxfup.c create mode 100644 gst/mxf/mxfup.h create mode 100644 gst/mxf/mxfvc3.c create mode 100644 gst/mxf/mxfvc3.h create mode 100644 gst/nsf/Makefile.am create mode 100644 gst/nsf/Makefile.in create mode 100644 gst/nsf/dis6502.h create mode 100644 gst/nsf/fds_snd.c create mode 100644 gst/nsf/fds_snd.h create mode 100644 gst/nsf/fmopl.c create mode 100644 gst/nsf/fmopl.h create mode 100644 gst/nsf/gstnsf.c create mode 100644 gst/nsf/gstnsf.h create mode 100644 gst/nsf/log.c create mode 100644 gst/nsf/log.h create mode 100644 gst/nsf/mmc5_snd.c create mode 100644 gst/nsf/mmc5_snd.h create mode 100644 gst/nsf/nes6502.c create mode 100644 gst/nsf/nes6502.h create mode 100644 gst/nsf/nes_apu.c create mode 100644 gst/nsf/nes_apu.h create mode 100644 gst/nsf/nsf.c create mode 100644 gst/nsf/nsf.h create mode 100644 gst/nsf/osd.h create mode 100644 gst/nsf/types.h create mode 100644 gst/nsf/vrc7_snd.c create mode 100644 gst/nsf/vrc7_snd.h create mode 100644 gst/nsf/vrcvisnd.c create mode 100644 gst/nsf/vrcvisnd.h create mode 100644 gst/nuvdemux/Makefile.am create mode 100644 gst/nuvdemux/Makefile.in create mode 100644 gst/nuvdemux/gstnuvdemux.c create mode 100644 gst/nuvdemux/gstnuvdemux.h create mode 100644 gst/patchdetect/Makefile.am create mode 100644 gst/patchdetect/Makefile.in create mode 100644 gst/patchdetect/gstpatchdetect.c create mode 100644 gst/patchdetect/gstpatchdetect.h create mode 100644 gst/pcapparse/Makefile.am create mode 100644 gst/pcapparse/Makefile.in create mode 100644 gst/pcapparse/gstpcapparse.c create mode 100644 gst/pcapparse/gstpcapparse.h create mode 100644 gst/pnm/Makefile.am create mode 100644 gst/pnm/Makefile.in create mode 100644 gst/pnm/gstpnm.c create mode 100644 gst/pnm/gstpnmdec.c create mode 100644 gst/pnm/gstpnmdec.h create mode 100644 gst/pnm/gstpnmenc.c create mode 100644 gst/pnm/gstpnmenc.h create mode 100644 gst/pnm/gstpnmutils.c create mode 100644 gst/pnm/gstpnmutils.h create mode 100644 gst/rawparse/Makefile.am create mode 100644 gst/rawparse/Makefile.in create mode 100644 gst/rawparse/README create mode 100644 gst/rawparse/gstaudioparse.c create mode 100644 gst/rawparse/gstaudioparse.h create mode 100644 gst/rawparse/gstrawparse.c create mode 100644 gst/rawparse/gstrawparse.h create mode 100644 gst/rawparse/gstvideoparse.c create mode 100644 gst/rawparse/gstvideoparse.h create mode 100644 gst/rawparse/plugin.c create mode 100644 gst/real/Makefile.am create mode 100644 gst/real/Makefile.in create mode 100644 gst/real/gstreal.c create mode 100644 gst/real/gstreal.h create mode 100644 gst/real/gstrealaudiodec.c create mode 100644 gst/real/gstrealaudiodec.h create mode 100644 gst/real/gstrealvideodec.c create mode 100644 gst/real/gstrealvideodec.h create mode 100644 gst/rtpmux/Makefile.am create mode 100644 gst/rtpmux/Makefile.in create mode 100644 gst/rtpmux/gstrtpdtmfmux.c create mode 100644 gst/rtpmux/gstrtpdtmfmux.h create mode 100644 gst/rtpmux/gstrtpmux.c create mode 100644 gst/rtpmux/gstrtpmux.h create mode 100644 gst/rtpmux/gstrtpmuxer.c create mode 100644 gst/rtpvp8/Makefile.am create mode 100644 gst/rtpvp8/Makefile.in create mode 100644 gst/rtpvp8/gstrtpvp8.c create mode 100644 gst/rtpvp8/gstrtpvp8depay.c create mode 100644 gst/rtpvp8/gstrtpvp8depay.h create mode 100644 gst/rtpvp8/gstrtpvp8pay.c create mode 100644 gst/rtpvp8/gstrtpvp8pay.h create mode 100644 gst/scaletempo/Makefile.am create mode 100644 gst/scaletempo/Makefile.in create mode 100644 gst/scaletempo/gstscaletempo.c create mode 100644 gst/scaletempo/gstscaletempo.h create mode 100644 gst/scaletempo/gstscaletempoplugin.c create mode 100644 gst/sdi/Makefile.am create mode 100644 gst/sdi/Makefile.in create mode 100644 gst/sdi/gstsdi.c create mode 100644 gst/sdi/gstsdidemux.c create mode 100644 gst/sdi/gstsdidemux.h create mode 100644 gst/sdi/gstsdimux.c create mode 100644 gst/sdi/gstsdimux.h create mode 100644 gst/sdp/Makefile.am create mode 100644 gst/sdp/Makefile.in create mode 100644 gst/sdp/gstsdpdemux.c create mode 100644 gst/sdp/gstsdpdemux.h create mode 100644 gst/sdp/gstsdpelem.c create mode 100644 gst/segmentclip/Makefile.am create mode 100644 gst/segmentclip/Makefile.in create mode 100644 gst/segmentclip/gstaudiosegmentclip.c create mode 100644 gst/segmentclip/gstaudiosegmentclip.h create mode 100644 gst/segmentclip/gstsegmentclip.c create mode 100644 gst/segmentclip/gstsegmentclip.h create mode 100644 gst/segmentclip/gstvideosegmentclip.c create mode 100644 gst/segmentclip/gstvideosegmentclip.h create mode 100644 gst/segmentclip/plugin.c create mode 100644 gst/siren/Makefile.am create mode 100644 gst/siren/Makefile.in create mode 100644 gst/siren/common.c create mode 100644 gst/siren/common.h create mode 100644 gst/siren/dct4.c create mode 100644 gst/siren/dct4.h create mode 100644 gst/siren/decoder.c create mode 100644 gst/siren/decoder.h create mode 100644 gst/siren/encoder.c create mode 100644 gst/siren/encoder.h create mode 100644 gst/siren/gstsiren.c create mode 100644 gst/siren/gstsirendec.c create mode 100644 gst/siren/gstsirendec.h create mode 100644 gst/siren/gstsirenenc.c create mode 100644 gst/siren/gstsirenenc.h create mode 100644 gst/siren/huffman.c create mode 100644 gst/siren/huffman.h create mode 100644 gst/siren/huffman_consts.h create mode 100644 gst/siren/rmlt.c create mode 100644 gst/siren/rmlt.h create mode 100644 gst/siren/siren7.h create mode 100644 gst/speed/Makefile.am create mode 100644 gst/speed/Makefile.in create mode 100644 gst/speed/gstspeed.c create mode 100644 gst/speed/gstspeed.h create mode 100644 gst/stereo/Makefile.am create mode 100644 gst/stereo/Makefile.in create mode 100644 gst/stereo/gststereo.c create mode 100644 gst/stereo/gststereo.h create mode 100644 gst/subenc/Makefile.am create mode 100644 gst/subenc/Makefile.in create mode 100644 gst/subenc/gstsrtenc.c create mode 100644 gst/subenc/gstsrtenc.h create mode 100644 gst/tta/Makefile.am create mode 100644 gst/tta/Makefile.in create mode 100644 gst/tta/crc32.h create mode 100644 gst/tta/filters.h create mode 100644 gst/tta/gsttta.c create mode 100644 gst/tta/gstttadec.c create mode 100644 gst/tta/gstttadec.h create mode 100644 gst/tta/gstttaparse.c create mode 100644 gst/tta/gstttaparse.h create mode 100644 gst/tta/ttadec.h create mode 100644 gst/videofilters/Makefile.am create mode 100644 gst/videofilters/Makefile.in create mode 100644 gst/videofilters/gstscenechange.c create mode 100644 gst/videofilters/gstscenechange.h create mode 100644 gst/videofilters/gstvideofilter2.c create mode 100644 gst/videofilters/gstvideofilter2.h create mode 100644 gst/videofilters/gstvideofiltersbad.c create mode 100644 gst/videofilters/gstzebrastripe.c create mode 100644 gst/videofilters/gstzebrastripe.h create mode 100644 gst/videomaxrate/Makefile.am create mode 100644 gst/videomaxrate/Makefile.in create mode 100644 gst/videomaxrate/videomaxrate.c create mode 100644 gst/videomaxrate/videomaxrate.h create mode 100644 gst/videomeasure/Makefile.am create mode 100644 gst/videomeasure/Makefile.in create mode 100644 gst/videomeasure/gstvideomeasure.c create mode 100644 gst/videomeasure/gstvideomeasure.h create mode 100644 gst/videomeasure/gstvideomeasure_collector.c create mode 100644 gst/videomeasure/gstvideomeasure_collector.h create mode 100644 gst/videomeasure/gstvideomeasure_ssim.c create mode 100644 gst/videomeasure/gstvideomeasure_ssim.h create mode 100644 gst/videoparsers/Makefile.am create mode 100644 gst/videoparsers/Makefile.in create mode 100644 gst/videoparsers/dirac_parse.c create mode 100644 gst/videoparsers/dirac_parse.h create mode 100644 gst/videoparsers/gstdiracparse.c create mode 100644 gst/videoparsers/gstdiracparse.h create mode 100644 gst/videoparsers/gsth263parse.c create mode 100644 gst/videoparsers/gsth263parse.h create mode 100644 gst/videoparsers/gsth264parse.c create mode 100644 gst/videoparsers/gsth264parse.h create mode 100644 gst/videoparsers/h263parse.c create mode 100644 gst/videoparsers/h263parse.h create mode 100644 gst/videoparsers/h264parse.c create mode 100644 gst/videoparsers/h264parse.h create mode 100644 gst/videoparsers/plugin.c create mode 100644 gst/videosignal/Makefile.am create mode 100644 gst/videosignal/Makefile.in create mode 100644 gst/videosignal/gstvideoanalyse.c create mode 100644 gst/videosignal/gstvideoanalyse.h create mode 100644 gst/videosignal/gstvideodetect.c create mode 100644 gst/videosignal/gstvideodetect.h create mode 100644 gst/videosignal/gstvideomark.c create mode 100644 gst/videosignal/gstvideomark.h create mode 100644 gst/videosignal/gstvideosignal.c create mode 100644 gst/vmnc/Makefile.am create mode 100644 gst/vmnc/Makefile.in create mode 100644 gst/vmnc/vmncdec.c create mode 100644 gst/y4m/Makefile.am create mode 100644 gst/y4m/Makefile.in create mode 100644 gst/y4m/gsty4mdec.c create mode 100644 gst/y4m/gsty4mdec.h create mode 100755 install-sh create mode 100755 ltmain.sh create mode 100644 m4/Makefile.am create mode 100644 m4/Makefile.in create mode 100644 m4/README create mode 100644 m4/a52.m4 create mode 100644 m4/aalib.m4 create mode 100644 m4/as-arts.m4 create mode 100644 m4/as-ffmpeg.m4 create mode 100644 m4/as-liblame.m4 create mode 100644 m4/as-slurp-ffmpeg.m4 create mode 100644 m4/check-libheader.m4 create mode 100644 m4/codeset.m4 create mode 100644 m4/freetype2.m4 create mode 100644 m4/gconf-2.m4 create mode 100644 m4/gettext.m4 create mode 100644 m4/glibc2.m4 create mode 100644 m4/glibc21.m4 create mode 100644 m4/gsettings.m4 create mode 100644 m4/gst-artsc.m4 create mode 100644 m4/gst-fionread.m4 create mode 100644 m4/gst-sdl.m4 create mode 100644 m4/gst-sid.m4 create mode 100644 m4/iconv.m4 create mode 100644 m4/intdiv0.m4 create mode 100644 m4/intl.m4 create mode 100644 m4/intldir.m4 create mode 100644 m4/intlmacosx.m4 create mode 100644 m4/intmax.m4 create mode 100644 m4/inttypes-pri.m4 create mode 100644 m4/inttypes_h.m4 create mode 100644 m4/lcmessage.m4 create mode 100644 m4/lib-ld.m4 create mode 100644 m4/lib-link.m4 create mode 100644 m4/lib-prefix.m4 create mode 100644 m4/libfame.m4 create mode 100644 m4/libmikmod.m4 create mode 100644 m4/libtool.m4 create mode 100644 m4/lock.m4 create mode 100644 m4/longlong.m4 create mode 100644 m4/lrint.m4 create mode 100644 m4/lrintf.m4 create mode 100644 m4/ltoptions.m4 create mode 100644 m4/ltsugar.m4 create mode 100644 m4/ltversion.m4 create mode 100644 m4/lt~obsolete.m4 create mode 100644 m4/nls.m4 create mode 100644 m4/po.m4 create mode 100644 m4/printf-posix.m4 create mode 100644 m4/progtest.m4 create mode 100644 m4/size_max.m4 create mode 100644 m4/stdint_h.m4 create mode 100644 m4/uintmax_t.m4 create mode 100644 m4/visibility.m4 create mode 100644 m4/wchar_t.m4 create mode 100644 m4/wint_t.m4 create mode 100644 m4/xsize.m4 create mode 100755 missing create mode 100644 packaging/gst-plugins-bad-disable-gtk-doc.patch create mode 100644 packaging/gst-plugins-bad.spec create mode 100644 pkgconfig/Makefile.am create mode 100644 pkgconfig/Makefile.in create mode 100644 pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in create mode 100644 pkgconfig/gstreamer-plugins-bad.pc.in create mode 100644 po/LINGUAS create mode 100644 po/Makefile.in.in create mode 100644 po/Makevars create mode 100644 po/Makevars.template create mode 100644 po/POTFILES.in create mode 100644 po/Rules-quot create mode 100644 po/af.gmo create mode 100644 po/af.po create mode 100644 po/az.gmo create mode 100644 po/az.po create mode 100644 po/bg.gmo create mode 100644 po/bg.po create mode 100644 po/boldquot.sed create mode 100644 po/ca.gmo create mode 100644 po/ca.po create mode 100644 po/cs.gmo create mode 100644 po/cs.po create mode 100644 po/da.gmo create mode 100644 po/da.po create mode 100644 po/de.gmo create mode 100644 po/de.po create mode 100644 po/el.gmo create mode 100644 po/el.po create mode 100644 po/en@boldquot.header create mode 100644 po/en@quot.header create mode 100644 po/en_GB.gmo create mode 100644 po/en_GB.po create mode 100644 po/es.gmo create mode 100644 po/es.po create mode 100644 po/eu.gmo create mode 100644 po/eu.po create mode 100644 po/fi.gmo create mode 100644 po/fi.po create mode 100644 po/fr.gmo create mode 100644 po/fr.po create mode 100644 po/gl.gmo create mode 100644 po/gl.po create mode 100644 po/gst-plugins-bad-0.10.pot create mode 100644 po/hu.gmo create mode 100644 po/hu.po create mode 100644 po/id.gmo create mode 100644 po/id.po create mode 100644 po/insert-header.sin create mode 100644 po/it.gmo create mode 100644 po/it.po create mode 100644 po/ja.gmo create mode 100644 po/ja.po create mode 100644 po/ky.gmo create mode 100644 po/ky.po create mode 100644 po/lt.gmo create mode 100644 po/lt.po create mode 100644 po/lv.gmo create mode 100644 po/lv.po create mode 100644 po/mt.gmo create mode 100644 po/mt.po create mode 100644 po/nb.gmo create mode 100644 po/nb.po create mode 100644 po/nl.gmo create mode 100644 po/nl.po create mode 100644 po/or.gmo create mode 100644 po/or.po create mode 100644 po/pl.gmo create mode 100644 po/pl.po create mode 100644 po/pt_BR.gmo create mode 100644 po/pt_BR.po create mode 100644 po/quot.sed create mode 100644 po/remove-potcdate.sin create mode 100644 po/ro.gmo create mode 100644 po/ro.po create mode 100644 po/ru.gmo create mode 100644 po/ru.po create mode 100644 po/sk.gmo create mode 100644 po/sk.po create mode 100644 po/sl.gmo create mode 100644 po/sl.po create mode 100644 po/sq.gmo create mode 100644 po/sq.po create mode 100644 po/sr.gmo create mode 100644 po/sr.po create mode 100644 po/stamp-po create mode 100644 po/sv.gmo create mode 100644 po/sv.po create mode 100644 po/tr.gmo create mode 100644 po/tr.po create mode 100644 po/uk.gmo create mode 100644 po/uk.po create mode 100644 po/vi.gmo create mode 100644 po/vi.po create mode 100644 po/zh_CN.gmo create mode 100644 po/zh_CN.po create mode 100644 stamp-h.in create mode 100644 sys/Makefile.am create mode 100644 sys/Makefile.in create mode 100644 sys/acmenc/Makefile.am create mode 100644 sys/acmenc/Makefile.in create mode 100644 sys/acmenc/acmenc.c create mode 100644 sys/acmmp3dec/Makefile.am create mode 100644 sys/acmmp3dec/Makefile.in create mode 100644 sys/acmmp3dec/acmmp3dec.c create mode 100644 sys/applemedia/Makefile.am create mode 100644 sys/applemedia/Makefile.in create mode 100644 sys/applemedia/avfvideosrc.h create mode 100644 sys/applemedia/avfvideosrc.m create mode 100644 sys/applemedia/bufferfactory.h create mode 100644 sys/applemedia/bufferfactory.m create mode 100644 sys/applemedia/celapi.c create mode 100644 sys/applemedia/celapi.h create mode 100644 sys/applemedia/celvideosrc.c create mode 100644 sys/applemedia/celvideosrc.h create mode 100644 sys/applemedia/cmapi.c create mode 100644 sys/applemedia/cmapi.h create mode 100644 sys/applemedia/coremediabuffer.c create mode 100644 sys/applemedia/coremediabuffer.h create mode 100644 sys/applemedia/coremediactx.c create mode 100644 sys/applemedia/coremediactx.h create mode 100644 sys/applemedia/corevideobuffer.c create mode 100644 sys/applemedia/corevideobuffer.h create mode 100644 sys/applemedia/cvapi.c create mode 100644 sys/applemedia/cvapi.h create mode 100644 sys/applemedia/dynapi-internal.h create mode 100644 sys/applemedia/dynapi.c create mode 100644 sys/applemedia/dynapi.h create mode 100644 sys/applemedia/mioapi.c create mode 100644 sys/applemedia/mioapi.h create mode 100644 sys/applemedia/miovideodevice.c create mode 100644 sys/applemedia/miovideodevice.h create mode 100644 sys/applemedia/miovideosrc.c create mode 100644 sys/applemedia/miovideosrc.h create mode 100644 sys/applemedia/mtapi.c create mode 100644 sys/applemedia/mtapi.h create mode 100644 sys/applemedia/plugin.m create mode 100644 sys/applemedia/qtkitvideosrc.h create mode 100644 sys/applemedia/qtkitvideosrc.m create mode 100644 sys/applemedia/vtapi.c create mode 100644 sys/applemedia/vtapi.h create mode 100644 sys/applemedia/vtdec.c create mode 100644 sys/applemedia/vtdec.h create mode 100644 sys/applemedia/vtenc.c create mode 100644 sys/applemedia/vtenc.h create mode 100644 sys/applemedia/vth264decbin.c create mode 100644 sys/applemedia/vth264decbin.h create mode 100644 sys/applemedia/vth264encbin.c create mode 100644 sys/applemedia/vth264encbin.h create mode 100644 sys/applemedia/vtutil.c create mode 100644 sys/applemedia/vtutil.h create mode 100644 sys/decklink/DeckLinkAPI.h create mode 100644 sys/decklink/DeckLinkAPIDispatch.cpp create mode 100644 sys/decklink/LinuxCOM.h create mode 100644 sys/decklink/Makefile.am create mode 100644 sys/decklink/Makefile.in create mode 100644 sys/decklink/capture.cpp create mode 100644 sys/decklink/capture.h create mode 100644 sys/decklink/gstdecklink.cpp create mode 100644 sys/decklink/gstdecklinksink.cpp create mode 100644 sys/decklink/gstdecklinksink.h create mode 100644 sys/decklink/gstdecklinksrc.cpp create mode 100644 sys/decklink/gstdecklinksrc.h create mode 100644 sys/directdraw/Makefile.am create mode 100644 sys/directdraw/Makefile.in create mode 100644 sys/directdraw/gstdirectdrawplugin.c create mode 100644 sys/directdraw/gstdirectdrawsink.c create mode 100644 sys/directdraw/gstdirectdrawsink.h create mode 100644 sys/directsound/Makefile.am create mode 100644 sys/directsound/Makefile.in create mode 100644 sys/directsound/gstdirectsoundplugin.c create mode 100644 sys/directsound/gstdirectsoundsrc.c create mode 100644 sys/directsound/gstdirectsoundsrc.h create mode 100644 sys/dshowdecwrapper/Makefile.am create mode 100644 sys/dshowdecwrapper/Makefile.in create mode 100644 sys/dshowdecwrapper/gstdshowaudiodec.cpp create mode 100644 sys/dshowdecwrapper/gstdshowaudiodec.h create mode 100644 sys/dshowdecwrapper/gstdshowdecwrapper.cpp create mode 100644 sys/dshowdecwrapper/gstdshowfakesrc.cpp create mode 100644 sys/dshowdecwrapper/gstdshowfakesrc.h create mode 100644 sys/dshowdecwrapper/gstdshowutil.cpp create mode 100644 sys/dshowdecwrapper/gstdshowutil.h create mode 100644 sys/dshowdecwrapper/gstdshowvideodec.cpp create mode 100644 sys/dshowdecwrapper/gstdshowvideodec.h create mode 100644 sys/dshowsrcwrapper/Makefile.am create mode 100644 sys/dshowsrcwrapper/Makefile.in create mode 100644 sys/dshowsrcwrapper/gstdshow.cpp create mode 100644 sys/dshowsrcwrapper/gstdshow.h create mode 100644 sys/dshowsrcwrapper/gstdshowaudiosrc.cpp create mode 100644 sys/dshowsrcwrapper/gstdshowaudiosrc.h create mode 100644 sys/dshowsrcwrapper/gstdshowfakesink.cpp create mode 100644 sys/dshowsrcwrapper/gstdshowfakesink.h create mode 100644 sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp create mode 100644 sys/dshowsrcwrapper/gstdshowvideosrc.cpp create mode 100644 sys/dshowsrcwrapper/gstdshowvideosrc.h create mode 100644 sys/dshowvideosink/Makefile.am create mode 100644 sys/dshowvideosink/Makefile.in create mode 100644 sys/dshowvideosink/README create mode 100644 sys/dshowvideosink/dshowvideofakesrc.cpp create mode 100644 sys/dshowvideosink/dshowvideofakesrc.h create mode 100644 sys/dshowvideosink/dshowvideosink.cpp create mode 100644 sys/dshowvideosink/dshowvideosink.h create mode 100644 sys/dvb/AUTHORS create mode 100644 sys/dvb/Makefile.am create mode 100644 sys/dvb/Makefile.in create mode 100644 sys/dvb/README create mode 100644 sys/dvb/cam.c create mode 100644 sys/dvb/cam.h create mode 100644 sys/dvb/camapplication.c create mode 100644 sys/dvb/camapplication.h create mode 100644 sys/dvb/camapplicationinfo.c create mode 100644 sys/dvb/camapplicationinfo.h create mode 100644 sys/dvb/camconditionalaccess.c create mode 100644 sys/dvb/camconditionalaccess.h create mode 100644 sys/dvb/camdevice.c create mode 100644 sys/dvb/camdevice.h create mode 100644 sys/dvb/camresourcemanager.c create mode 100644 sys/dvb/camresourcemanager.h create mode 100644 sys/dvb/camsession.c create mode 100644 sys/dvb/camsession.h create mode 100644 sys/dvb/camswclient.c create mode 100644 sys/dvb/camswclient.h create mode 100644 sys/dvb/camtransport.c create mode 100644 sys/dvb/camtransport.h create mode 100644 sys/dvb/camutils.c create mode 100644 sys/dvb/camutils.h create mode 100644 sys/dvb/dvbbasebin.c create mode 100644 sys/dvb/dvbbasebin.h create mode 100644 sys/dvb/gstdvb.c create mode 100644 sys/dvb/gstdvbsrc.c create mode 100644 sys/dvb/gstdvbsrc.h create mode 100644 sys/dvb/parsechannels.c create mode 100644 sys/dvb/parsechannels.h create mode 100644 sys/fbdev/Makefile.am create mode 100644 sys/fbdev/Makefile.in create mode 100644 sys/fbdev/gstfbdevsink.c create mode 100644 sys/fbdev/gstfbdevsink.h create mode 100644 sys/linsys/Makefile.am create mode 100644 sys/linsys/Makefile.in create mode 100644 sys/linsys/gstlinsys.c create mode 100644 sys/linsys/gstlinsyssdisink.c create mode 100644 sys/linsys/gstlinsyssdisink.h create mode 100644 sys/linsys/gstlinsyssdisrc.c create mode 100644 sys/linsys/gstlinsyssdisrc.h create mode 100644 sys/linsys/include/asi.h create mode 100644 sys/linsys/include/master.h create mode 100644 sys/linsys/include/sdi.h create mode 100644 sys/linsys/include/sdiaudio.h create mode 100644 sys/linsys/include/sdivideo.h create mode 100644 sys/osxvideo/Makefile.am create mode 100644 sys/osxvideo/Makefile.in create mode 100644 sys/osxvideo/osxvideoplugin.c create mode 100644 sys/osxvideo/osxvideosrc.c create mode 100644 sys/osxvideo/osxvideosrc.h create mode 100644 sys/qtwrapper/Makefile.am create mode 100644 sys/qtwrapper/Makefile.in create mode 100644 sys/qtwrapper/audiodecoders.c create mode 100644 sys/qtwrapper/codecmapping.c create mode 100644 sys/qtwrapper/codecmapping.h create mode 100644 sys/qtwrapper/imagedescription.c create mode 100644 sys/qtwrapper/imagedescription.h create mode 100644 sys/qtwrapper/qtutils.c create mode 100644 sys/qtwrapper/qtutils.h create mode 100644 sys/qtwrapper/qtwrapper.c create mode 100644 sys/qtwrapper/qtwrapper.h create mode 100644 sys/qtwrapper/videodecoders.c create mode 100644 sys/shm/Makefile.am create mode 100644 sys/shm/Makefile.in create mode 100644 sys/shm/gstshm.c create mode 100644 sys/shm/gstshmsink.c create mode 100644 sys/shm/gstshmsink.h create mode 100644 sys/shm/gstshmsrc.c create mode 100644 sys/shm/gstshmsrc.h create mode 100644 sys/shm/shmalloc.c create mode 100644 sys/shm/shmalloc.h create mode 100644 sys/shm/shmpipe.c create mode 100644 sys/shm/shmpipe.h create mode 100644 sys/vcd/Makefile.am create mode 100644 sys/vcd/Makefile.in create mode 100644 sys/vcd/vcdsrc.c create mode 100644 sys/vcd/vcdsrc.h create mode 100644 sys/vdpau/Makefile.am create mode 100644 sys/vdpau/Makefile.in create mode 100644 sys/vdpau/basevideodecoder/Makefile.am create mode 100644 sys/vdpau/basevideodecoder/Makefile.in create mode 100644 sys/vdpau/basevideodecoder/gstbasevideodecoder.c create mode 100644 sys/vdpau/basevideodecoder/gstbasevideodecoder.h create mode 100644 sys/vdpau/basevideodecoder/gstbasevideoutils.h create mode 100644 sys/vdpau/basevideodecoder/gstvideoframe.c create mode 100644 sys/vdpau/basevideodecoder/gstvideoframe.h create mode 100644 sys/vdpau/gstvdp/Makefile.am create mode 100644 sys/vdpau/gstvdp/Makefile.in create mode 100644 sys/vdpau/gstvdp/gstvdp.c create mode 100644 sys/vdpau/gstvdp/gstvdp.h create mode 100644 sys/vdpau/gstvdp/gstvdpbuffer.c create mode 100644 sys/vdpau/gstvdp/gstvdpbuffer.h create mode 100644 sys/vdpau/gstvdp/gstvdpbufferpool.c create mode 100644 sys/vdpau/gstvdp/gstvdpbufferpool.h create mode 100644 sys/vdpau/gstvdp/gstvdpdecoder.c create mode 100644 sys/vdpau/gstvdp/gstvdpdecoder.h create mode 100644 sys/vdpau/gstvdp/gstvdpdevice.c create mode 100644 sys/vdpau/gstvdp/gstvdpdevice.h create mode 100644 sys/vdpau/gstvdp/gstvdpoutputbuffer.c create mode 100644 sys/vdpau/gstvdp/gstvdpoutputbuffer.h create mode 100644 sys/vdpau/gstvdp/gstvdpoutputbufferpool.c create mode 100644 sys/vdpau/gstvdp/gstvdpoutputbufferpool.h create mode 100644 sys/vdpau/gstvdp/gstvdpoutputsrcpad.c create mode 100644 sys/vdpau/gstvdp/gstvdpoutputsrcpad.h create mode 100644 sys/vdpau/gstvdp/gstvdputils.c create mode 100644 sys/vdpau/gstvdp/gstvdputils.h create mode 100644 sys/vdpau/gstvdp/gstvdpvideobuffer.c create mode 100644 sys/vdpau/gstvdp/gstvdpvideobuffer.h create mode 100644 sys/vdpau/gstvdp/gstvdpvideobufferpool.c create mode 100644 sys/vdpau/gstvdp/gstvdpvideobufferpool.h create mode 100644 sys/vdpau/gstvdp/gstvdpvideosrcpad.c create mode 100644 sys/vdpau/gstvdp/gstvdpvideosrcpad.h create mode 100644 sys/vdpau/gstvdpau.c create mode 100644 sys/vdpau/gstvdpsink.c create mode 100644 sys/vdpau/gstvdpsink.h create mode 100644 sys/vdpau/gstvdpvideopostprocess.c create mode 100644 sys/vdpau/gstvdpvideopostprocess.h create mode 100644 sys/vdpau/h264/gsth264dpb.c create mode 100644 sys/vdpau/h264/gsth264dpb.h create mode 100644 sys/vdpau/h264/gsth264frame.c create mode 100644 sys/vdpau/h264/gsth264frame.h create mode 100644 sys/vdpau/h264/gsth264parser.c create mode 100644 sys/vdpau/h264/gsth264parser.h create mode 100644 sys/vdpau/h264/gstnalreader.c create mode 100644 sys/vdpau/h264/gstnalreader.h create mode 100644 sys/vdpau/h264/gstvdph264dec.c create mode 100644 sys/vdpau/h264/gstvdph264dec.h create mode 100644 sys/vdpau/mpeg/gstvdpmpegdec.c create mode 100644 sys/vdpau/mpeg/gstvdpmpegdec.h create mode 100644 sys/vdpau/mpeg/gstvdpmpegframe.c create mode 100644 sys/vdpau/mpeg/gstvdpmpegframe.h create mode 100644 sys/vdpau/mpeg/mpegutil.c create mode 100644 sys/vdpau/mpeg/mpegutil.h create mode 100644 sys/vdpau/mpeg4/gstmpeg4frame.c create mode 100644 sys/vdpau/mpeg4/gstmpeg4frame.h create mode 100644 sys/vdpau/mpeg4/gstvdpmpeg4dec.c create mode 100644 sys/vdpau/mpeg4/gstvdpmpeg4dec.h create mode 100644 sys/vdpau/mpeg4/mpeg4util.c create mode 100644 sys/vdpau/mpeg4/mpeg4util.h create mode 100644 sys/wasapi/Makefile.am create mode 100644 sys/wasapi/Makefile.in create mode 100644 sys/wasapi/gstwasapi.c create mode 100644 sys/wasapi/gstwasapisink.c create mode 100644 sys/wasapi/gstwasapisink.h create mode 100644 sys/wasapi/gstwasapisrc.c create mode 100644 sys/wasapi/gstwasapisrc.h create mode 100644 sys/wasapi/gstwasapiutil.c create mode 100644 sys/wasapi/gstwasapiutil.h create mode 100644 sys/wininet/Makefile.am create mode 100644 sys/wininet/Makefile.in create mode 100644 sys/wininet/gstwininetsrc.c create mode 100644 sys/wininet/gstwininetsrc.h create mode 100644 sys/winks/Makefile.am create mode 100644 sys/winks/Makefile.in create mode 100644 sys/winks/gstksclock.c create mode 100644 sys/winks/gstksclock.h create mode 100644 sys/winks/gstksvideodevice.c create mode 100644 sys/winks/gstksvideodevice.h create mode 100644 sys/winks/gstksvideosrc.c create mode 100644 sys/winks/gstksvideosrc.h create mode 100644 sys/winks/kshelpers.c create mode 100644 sys/winks/kshelpers.h create mode 100644 sys/winks/ksvideohelpers.c create mode 100644 sys/winks/ksvideohelpers.h create mode 100644 sys/winscreencap/Makefile.am create mode 100644 sys/winscreencap/Makefile.in create mode 100644 sys/winscreencap/gstdx9screencapsrc.c create mode 100644 sys/winscreencap/gstdx9screencapsrc.h create mode 100644 sys/winscreencap/gstgdiscreencapsrc.c create mode 100644 sys/winscreencap/gstgdiscreencapsrc.h create mode 100644 sys/winscreencap/gstwinscreencap.c create mode 100644 sys/winscreencap/gstwinscreencap.h create mode 100644 tests/Makefile.am create mode 100644 tests/Makefile.in create mode 100644 tests/check/Makefile.am create mode 100644 tests/check/Makefile.in create mode 100644 tests/check/elements/asfmux.c create mode 100644 tests/check/elements/assrender.c create mode 100644 tests/check/elements/autoconvert.c create mode 100644 tests/check/elements/autovideoconvert.c create mode 100644 tests/check/elements/camerabin.c create mode 100644 tests/check/elements/camerabin2.c create mode 100644 tests/check/elements/dataurisrc.c create mode 100644 tests/check/elements/faac.c create mode 100644 tests/check/elements/faad.c create mode 100644 tests/check/elements/id3mux.c create mode 100644 tests/check/elements/imagecapturebin.c create mode 100644 tests/check/elements/jifmux.c create mode 100644 tests/check/elements/jpegparse.c create mode 100644 tests/check/elements/kate.c create mode 100644 tests/check/elements/legacyresample.c create mode 100644 tests/check/elements/logoinsert.c create mode 100644 tests/check/elements/mpeg2enc.c create mode 100644 tests/check/elements/mplex.c create mode 100644 tests/check/elements/mxfdemux.c create mode 100644 tests/check/elements/mxfdemux.h create mode 100644 tests/check/elements/mxfmux.c create mode 100644 tests/check/elements/neonhttpsrc.c create mode 100644 tests/check/elements/ofa.c create mode 100644 tests/check/elements/rtpmux.c create mode 100644 tests/check/elements/schroenc.c create mode 100644 tests/check/elements/timidity.c create mode 100644 tests/check/elements/viewfinderbin.c create mode 100644 tests/check/elements/vp8dec.c create mode 100644 tests/check/elements/vp8enc.c create mode 100644 tests/check/elements/zbar.c create mode 100644 tests/check/generic/states.c create mode 100644 tests/check/gst-plugins-bad.supp create mode 100644 tests/check/pipelines/mimic.c create mode 100644 tests/check/pipelines/mxf.c create mode 100644 tests/examples/Makefile.am create mode 100644 tests/examples/Makefile.in create mode 100644 tests/examples/camerabin/Makefile.am create mode 100644 tests/examples/camerabin/Makefile.in create mode 100644 tests/examples/camerabin/gst-camera-perf.c create mode 100644 tests/examples/camerabin/gst-camera.c create mode 100644 tests/examples/camerabin/gst-camera.h create mode 100644 tests/examples/camerabin/gst-camera.ui create mode 100644 tests/examples/camerabin/gst-camerabin-test.c create mode 100644 tests/examples/camerabin2/Makefile.am create mode 100644 tests/examples/camerabin2/Makefile.in create mode 100644 tests/examples/camerabin2/gst-camera2.c create mode 100644 tests/examples/camerabin2/gst-camera2.h create mode 100644 tests/examples/camerabin2/gst-camera2.ui create mode 100644 tests/examples/camerabin2/gst-camerabin2-test.c create mode 100644 tests/examples/directfb/Makefile.am create mode 100644 tests/examples/directfb/Makefile.in create mode 100644 tests/examples/directfb/decker.ttf create mode 100644 tests/examples/directfb/dfblogo.png create mode 100644 tests/examples/directfb/gstdfb.c create mode 100644 tests/examples/mxf/Makefile.am create mode 100644 tests/examples/mxf/Makefile.in create mode 100644 tests/examples/mxf/mxfdemux-structure.c create mode 100644 tests/examples/scaletempo/Makefile.am create mode 100644 tests/examples/scaletempo/Makefile.in create mode 100644 tests/examples/scaletempo/demo-gui.c create mode 100644 tests/examples/scaletempo/demo-gui.h create mode 100644 tests/examples/scaletempo/demo-main.c create mode 100644 tests/examples/scaletempo/demo-player.c create mode 100644 tests/examples/scaletempo/demo-player.h create mode 100644 tests/files/Makefile.am create mode 100644 tests/files/Makefile.in create mode 100644 tests/files/barcode.png create mode 100644 tests/icles/Makefile.am create mode 100644 tests/icles/Makefile.in create mode 100644 tests/icles/pitch-test.c create mode 100644 tools/Makefile.am create mode 100644 tools/Makefile.in create mode 100644 tools/element-templates/audiofilter create mode 100644 tools/element-templates/audiosink create mode 100644 tools/element-templates/audiosrc create mode 100644 tools/element-templates/base create mode 100644 tools/element-templates/baseaudiosink create mode 100644 tools/element-templates/baseaudiosrc create mode 100644 tools/element-templates/basertpdepayload create mode 100644 tools/element-templates/basertppayload create mode 100644 tools/element-templates/basesink create mode 100644 tools/element-templates/basesrc create mode 100644 tools/element-templates/basetransform create mode 100644 tools/element-templates/cddabasesrc create mode 100644 tools/element-templates/element create mode 100644 tools/element-templates/gobject create mode 100644 tools/element-templates/pushsrc create mode 100644 tools/element-templates/sinkpad create mode 100644 tools/element-templates/sinkpad-simple create mode 100644 tools/element-templates/srcpad create mode 100644 tools/element-templates/srcpad-simple create mode 100644 tools/element-templates/tagdemux create mode 100644 tools/element-templates/videofilter2 create mode 100644 tools/element-templates/videosink create mode 100755 tools/gst-app-maker create mode 100755 tools/gst-element-maker create mode 100755 tools/gst-element-maker-test.sh create mode 100644 win32/MANIFEST create mode 100644 win32/common/config.h.in create mode 100644 win32/vs6/gst_plugins_bad.dsw create mode 100644 win32/vs6/libgstdshow.dsp create mode 100644 win32/vs6/libgstdshowdecwrapper.dsp create mode 100644 win32/vs6/libgstflv.dsp create mode 100644 win32/vs6/libgstmpegvideoparse.dsp create mode 100644 win32/vs6/libgstneon.dsp create mode 100644 win32/vs8/gst-plugins-bad.sln create mode 100644 win32/vs8/libgstdirectdraw.vcproj diff --git a/ABOUT-NLS b/ABOUT-NLS new file mode 100644 index 0000000..83bc72e --- /dev/null +++ b/ABOUT-NLS @@ -0,0 +1,1068 @@ +1 Notes on the Free Translation Project +*************************************** + +Free software is going international! The Free Translation Project is +a way to get maintainers of free software, translators, and users all +together, so that free software will gradually become able to speak many +languages. A few packages already provide translations for their +messages. + + If you found this `ABOUT-NLS' file inside a distribution, you may +assume that the distributed package does use GNU `gettext' internally, +itself available at your nearest GNU archive site. But you do _not_ +need to install GNU `gettext' prior to configuring, installing or using +this package with messages translated. + + Installers will find here some useful hints. These notes also +explain how users should proceed for getting the programs to use the +available translations. They tell how people wanting to contribute and +work on translations can contact the appropriate team. + + When reporting bugs in the `intl/' directory or bugs which may be +related to internationalization, you should tell about the version of +`gettext' which is used. The information can be found in the +`intl/VERSION' file, in internationalized packages. + +1.1 Quick configuration advice +============================== + +If you want to exploit the full power of internationalization, you +should configure it using + + ./configure --with-included-gettext + +to force usage of internationalizing routines provided within this +package, despite the existence of internationalizing capabilities in the +operating system where this package is being installed. So far, only +the `gettext' implementation in the GNU C library version 2 provides as +many features (such as locale alias, message inheritance, automatic +charset conversion or plural form handling) as the implementation here. +It is also not possible to offer this additional functionality on top +of a `catgets' implementation. Future versions of GNU `gettext' will +very likely convey even more functionality. So it might be a good idea +to change to GNU `gettext' as soon as possible. + + So you need _not_ provide this option if you are using GNU libc 2 or +you have installed a recent copy of the GNU gettext package with the +included `libintl'. + +1.2 INSTALL Matters +=================== + +Some packages are "localizable" when properly installed; the programs +they contain can be made to speak your own native language. Most such +packages use GNU `gettext'. Other packages have their own ways to +internationalization, predating GNU `gettext'. + + By default, this package will be installed to allow translation of +messages. It will automatically detect whether the system already +provides the GNU `gettext' functions. If not, the included GNU +`gettext' library will be used. This library is wholly contained +within this package, usually in the `intl/' subdirectory, so prior +installation of the GNU `gettext' package is _not_ required. +Installers may use special options at configuration time for changing +the default behaviour. The commands: + + ./configure --with-included-gettext + ./configure --disable-nls + +will, respectively, bypass any pre-existing `gettext' to use the +internationalizing routines provided within this package, or else, +_totally_ disable translation of messages. + + When you already have GNU `gettext' installed on your system and run +configure without an option for your new package, `configure' will +probably detect the previously built and installed `libintl.a' file and +will decide to use this. This might not be desirable. You should use +the more recent version of the GNU `gettext' library. I.e. if the file +`intl/VERSION' shows that the library which comes with this package is +more recent, you should use + + ./configure --with-included-gettext + +to prevent auto-detection. + + The configuration process will not test for the `catgets' function +and therefore it will not be used. The reason is that even an +emulation of `gettext' on top of `catgets' could not provide all the +extensions of the GNU `gettext' library. + + Internationalized packages usually have many `po/LL.po' files, where +LL gives an ISO 639 two-letter code identifying the language. Unless +translations have been forbidden at `configure' time by using the +`--disable-nls' switch, all available translations are installed +together with the package. However, the environment variable `LINGUAS' +may be set, prior to configuration, to limit the installed set. +`LINGUAS' should then contain a space separated list of two-letter +codes, stating which languages are allowed. + +1.3 Using This Package +====================== + +As a user, if your language has been installed for this package, you +only have to set the `LANG' environment variable to the appropriate +`LL_CC' combination. If you happen to have the `LC_ALL' or some other +`LC_xxx' environment variables set, you should unset them before +setting `LANG', otherwise the setting of `LANG' will not have the +desired effect. Here `LL' is an ISO 639 two-letter language code, and +`CC' is an ISO 3166 two-letter country code. For example, let's +suppose that you speak German and live in Germany. At the shell +prompt, merely execute `setenv LANG de_DE' (in `csh'), +`export LANG; LANG=de_DE' (in `sh') or `export LANG=de_DE' (in `bash'). +This can be done from your `.login' or `.profile' file, once and for +all. + + You might think that the country code specification is redundant. +But in fact, some languages have dialects in different countries. For +example, `de_AT' is used for Austria, and `pt_BR' for Brazil. The +country code serves to distinguish the dialects. + + The locale naming convention of `LL_CC', with `LL' denoting the +language and `CC' denoting the country, is the one use on systems based +on GNU libc. On other systems, some variations of this scheme are +used, such as `LL' or `LL_CC.ENCODING'. You can get the list of +locales supported by your system for your language by running the +command `locale -a | grep '^LL''. + + Not all programs have translations for all languages. By default, an +English message is shown in place of a nonexistent translation. If you +understand other languages, you can set up a priority list of languages. +This is done through a different environment variable, called +`LANGUAGE'. GNU `gettext' gives preference to `LANGUAGE' over `LANG' +for the purpose of message handling, but you still need to have `LANG' +set to the primary language; this is required by other parts of the +system libraries. For example, some Swedish users who would rather +read translations in German than English for when Swedish is not +available, set `LANGUAGE' to `sv:de' while leaving `LANG' to `sv_SE'. + + Special advice for Norwegian users: The language code for Norwegian +bokma*l changed from `no' to `nb' recently (in 2003). During the +transition period, while some message catalogs for this language are +installed under `nb' and some older ones under `no', it's recommended +for Norwegian users to set `LANGUAGE' to `nb:no' so that both newer and +older translations are used. + + In the `LANGUAGE' environment variable, but not in the `LANG' +environment variable, `LL_CC' combinations can be abbreviated as `LL' +to denote the language's main dialect. For example, `de' is equivalent +to `de_DE' (German as spoken in Germany), and `pt' to `pt_PT' +(Portuguese as spoken in Portugal) in this context. + +1.4 Translating Teams +===================== + +For the Free Translation Project to be a success, we need interested +people who like their own language and write it well, and who are also +able to synergize with other translators speaking the same language. +Each translation team has its own mailing list. The up-to-date list of +teams can be found at the Free Translation Project's homepage, +`http://translationproject.org/', in the "Teams" area. + + If you'd like to volunteer to _work_ at translating messages, you +should become a member of the translating team for your own language. +The subscribing address is _not_ the same as the list itself, it has +`-request' appended. For example, speakers of Swedish can send a +message to `sv-request@li.org', having this message body: + + subscribe + + Keep in mind that team members are expected to participate +_actively_ in translations, or at solving translational difficulties, +rather than merely lurking around. If your team does not exist yet and +you want to start one, or if you are unsure about what to do or how to +get started, please write to `coordinator@translationproject.org' to +reach the coordinator for all translator teams. + + The English team is special. It works at improving and uniformizing +the terminology in use. Proven linguistic skills are praised more than +programming skills, here. + +1.5 Available Packages +====================== + +Languages are not equally supported in all packages. The following +matrix shows the current state of internationalization, as of November +2007. The matrix shows, in regard of each package, for which languages +PO files have been submitted to translation coordination, with a +translation percentage of at least 50%. + + Ready PO files af am ar az be bg bs ca cs cy da de el en en_GB eo + +----------------------------------------------------+ + Compendium | [] [] [] [] | + a2ps | [] [] [] [] [] | + aegis | () | + ant-phone | () | + anubis | [] | + ap-utils | | + aspell | [] [] [] [] [] | + bash | [] | + bfd | | + bibshelf | [] | + binutils | | + bison | [] [] | + bison-runtime | [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] [] | + console-tools | [] [] | + coreutils | [] [] [] [] | + cpio | | + cpplib | [] [] [] | + cryptonit | [] | + dialog | | + diffutils | [] [] [] [] [] [] | + doodle | [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] | + fetchmail | [] [] () [] [] | + findutils | [] | + findutils_stable | [] [] [] | + flex | [] [] [] | + fslint | | + gas | | + gawk | [] [] [] | + gcal | [] | + gcc | [] | + gettext-examples | [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] | + gettext-tools | [] [] | + gip | [] | + gliv | [] [] | + glunarclock | [] | + gmult | [] [] | + gnubiff | () | + gnucash | [] [] () () [] | + gnuedu | | + gnulib | [] | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] | + gpe-conf | [] [] | + gpe-contacts | | + gpe-edit | [] | + gpe-filemanager | | + gpe-go | [] | + gpe-login | [] [] | + gpe-ownerinfo | [] [] | + gpe-package | | + gpe-sketchbook | [] [] | + gpe-su | [] [] | + gpe-taskmanager | [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | | + gphoto2 | [] [] [] [] | + gprof | [] [] | + gpsdrive | | + gramadoir | [] [] | + grep | [] [] | + gretl | () | + gsasl | | + gss | | + gst-plugins-bad | [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] [] | + gst-plugins-ugly | [] [] | + gstreamer | [] [] [] [] [] [] [] | + gtick | () | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] [] | + indent | [] [] [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] [] | + iso_639 | [] [] [] [] | + jpilot | [] | + jtag | | + jwhois | | + kbd | [] [] [] [] | + keytouch | [] [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | () | + ld | [] | + leafpad | [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] | + libgphoto2_port | [] [] | + libgsasl | | + libiconv | [] [] | + libidn | [] [] [] | + lifelines | [] () | + lilypond | [] | + lingoteach | | + lprng | | + lynx | [] [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] | + make | [] [] | + man-db | [] [] [] | + minicom | [] [] [] | + nano | [] [] [] | + opcodes | [] | + parted | [] [] | + pilot-qof | | + popt | [] [] [] | + psmisc | [] | + pwdutils | | + qof | | + radius | [] | + recode | [] [] [] [] [] [] | + rpm | [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] [] | + sed | [] [] [] | + shared-mime-info | [] [] [] [] () [] [] [] | + sharutils | [] [] [] [] [] [] | + shishi | | + skencil | [] () | + solfege | | + soundtracker | [] [] | + sp | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] | + texinfo | [] [] [] | + tin | () () | + tuxpaint | [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + util-linux-ng | [] [] [] [] | + vorbis-tools | [] | + wastesedge | () | + wdiff | [] [] [] [] | + wget | [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] | + xpad | [] [] [] | + +----------------------------------------------------+ + af am ar az be bg bs ca cs cy da de el en en_GB eo + 6 0 2 1 8 26 2 40 48 2 56 88 15 1 15 18 + + es et eu fa fi fr ga gl gu he hi hr hu id is it + +--------------------------------------------------+ + Compendium | [] [] [] [] [] | + a2ps | [] [] [] () | + aegis | | + ant-phone | [] | + anubis | [] | + ap-utils | [] [] | + aspell | [] [] [] | + bash | [] | + bfd | [] [] | + bibshelf | [] [] [] | + binutils | [] [] [] | + bison | [] [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] | + cflow | [] | + clisp | [] [] | + console-tools | | + coreutils | [] [] [] [] [] [] | + cpio | [] [] [] | + cpplib | [] [] | + cryptonit | [] | + dialog | [] [] [] | + diffutils | [] [] [] [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] [] | + enscript | [] [] [] | + fetchmail | [] | + findutils | [] [] [] | + findutils_stable | [] [] [] [] | + flex | [] [] [] | + fslint | | + gas | [] [] | + gawk | [] [] [] [] () | + gcal | [] [] | + gcc | [] | + gettext-examples | [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] | + gettext-tools | [] [] [] [] | + gip | [] [] [] [] | + gliv | () | + glunarclock | [] [] [] | + gmult | [] [] [] | + gnubiff | () () | + gnucash | () () () | + gnuedu | [] | + gnulib | [] [] [] | + gnunet | | + gnunet-gtk | | + gnutls | | + gpe-aerial | [] [] | + gpe-beam | [] [] | + gpe-calendar | | + gpe-clock | [] [] [] [] | + gpe-conf | [] | + gpe-contacts | [] [] | + gpe-edit | [] [] [] [] | + gpe-filemanager | [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] [] [] [] | + gpe-package | [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] [] | + gpe-taskmanager | [] [] [] | + gpe-timesheet | [] [] [] [] | + gpe-today | [] [] [] [] | + gpe-todo | [] | + gphoto2 | [] [] [] [] [] | + gprof | [] [] [] [] [] | + gpsdrive | [] | + gramadoir | [] [] | + grep | [] [] [] | + gretl | [] [] [] () | + gsasl | [] [] | + gss | [] [] | + gst-plugins-bad | [] [] [] [] | + gst-plugins-base | [] [] [] [] | + gst-plugins-good | [] [] [] [] [] | + gst-plugins-ugly | [] [] [] [] | + gstreamer | [] [] [] | + gtick | [] [] [] | + gtkam | [] [] [] [] | + gtkorphan | [] [] | + gtkspell | [] [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] [] [] [] | + iso_15924 | [] | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] | + jpilot | [] [] | + jtag | [] | + jwhois | [] [] [] [] [] | + kbd | [] [] | + keytouch | [] [] [] | + keytouch-editor | [] | + keytouch-keyboa... | [] [] | + latrine | [] [] | + ld | [] [] [] [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] [] | + libexif | [] | + libextractor | [] | + libgpewidget | [] [] [] [] [] | + libgpg-error | [] | + libgphoto2 | [] [] [] | + libgphoto2_port | [] [] | + libgsasl | [] [] | + libiconv | [] [] [] | + libidn | [] [] | + lifelines | () | + lilypond | [] [] [] | + lingoteach | [] [] [] | + lprng | | + lynx | [] [] [] | + m4 | [] [] [] [] | + mailfromd | | + mailutils | [] [] | + make | [] [] [] [] [] [] [] [] | + man-db | [] | + minicom | [] [] [] [] | + nano | [] [] [] [] [] [] [] | + opcodes | [] [] [] [] | + parted | [] [] [] | + pilot-qof | | + popt | [] [] [] [] | + psmisc | [] [] | + pwdutils | | + qof | [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] [] | + rpm | [] [] | + screem | | + scrollkeeper | [] [] [] | + sed | [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] [] [] [] [] | + shishi | [] | + skencil | [] [] | + solfege | [] | + soundtracker | [] [] [] | + sp | [] | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] [] [] [] | + texinfo | [] [] [] | + tin | [] () | + tuxpaint | [] [] | + unicode-han-tra... | | + unicode-transla... | [] [] | + util-linux | [] [] [] [] [] [] [] | + util-linux-ng | [] [] [] [] [] [] [] | + vorbis-tools | | + wastesedge | () | + wdiff | [] [] [] [] [] [] [] [] | + wget | [] [] [] [] [] [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + es et eu fa fi fr ga gl gu he hi hr hu id is it + 85 22 14 2 48 101 61 12 2 8 2 6 53 29 1 52 + + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn + +--------------------------------------------------+ + Compendium | [] | + a2ps | () [] [] | + aegis | () | + ant-phone | [] | + anubis | [] [] [] | + ap-utils | [] | + aspell | [] [] | + bash | [] | + bfd | | + bibshelf | [] | + binutils | | + bison | [] [] [] | + bison-runtime | [] [] [] | + bluez-pin | [] [] [] | + cflow | | + clisp | [] | + console-tools | | + coreutils | [] | + cpio | [] | + cpplib | [] | + cryptonit | [] | + dialog | [] [] | + diffutils | [] [] [] | + doodle | | + e2fsprogs | [] | + enscript | [] | + fetchmail | [] [] | + findutils | [] | + findutils_stable | [] | + flex | [] [] | + fslint | | + gas | | + gawk | [] [] | + gcal | | + gcc | | + gettext-examples | [] [] [] | + gettext-runtime | [] [] [] | + gettext-tools | [] [] | + gip | [] [] | + gliv | [] | + glunarclock | [] [] | + gmult | [] [] [] | + gnubiff | | + gnucash | () () () | + gnuedu | | + gnulib | [] [] | + gnunet | | + gnunet-gtk | | + gnutls | [] | + gpe-aerial | [] | + gpe-beam | [] | + gpe-calendar | [] | + gpe-clock | [] [] [] | + gpe-conf | [] [] [] | + gpe-contacts | [] | + gpe-edit | [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] | + gpe-login | [] [] [] | + gpe-ownerinfo | [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] | + gpe-su | [] [] [] | + gpe-taskmanager | [] [] [] [] | + gpe-timesheet | [] | + gpe-today | [] [] | + gpe-todo | [] | + gphoto2 | [] [] | + gprof | [] | + gpsdrive | [] | + gramadoir | () | + grep | [] [] | + gretl | | + gsasl | [] | + gss | | + gst-plugins-bad | [] | + gst-plugins-base | [] | + gst-plugins-good | [] | + gst-plugins-ugly | [] | + gstreamer | [] | + gtick | [] | + gtkam | [] [] | + gtkorphan | [] | + gtkspell | [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] | + herrie | [] | + hylafax | | + idutils | [] | + indent | [] [] | + iso_15924 | [] | + iso_3166 | [] [] [] [] [] [] [] [] | + iso_3166_2 | [] | + iso_4217 | [] [] [] | + iso_639 | [] [] [] [] | + jpilot | () () | + jtag | | + jwhois | [] | + kbd | [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | | + latrine | [] | + ld | | + leafpad | [] [] | + libc | [] [] [] | + libexif | | + libextractor | | + libgpewidget | [] | + libgpg-error | | + libgphoto2 | [] | + libgphoto2_port | [] | + libgsasl | [] | + libiconv | [] | + libidn | [] [] | + lifelines | [] | + lilypond | [] | + lingoteach | [] | + lprng | | + lynx | [] [] | + m4 | [] [] | + mailfromd | | + mailutils | | + make | [] [] [] | + man-db | | + minicom | [] | + nano | [] [] [] | + opcodes | [] | + parted | [] [] | + pilot-qof | | + popt | [] [] [] | + psmisc | [] [] [] | + pwdutils | | + qof | | + radius | | + recode | [] | + rpm | [] [] | + screem | [] | + scrollkeeper | [] [] [] [] | + sed | [] [] | + shared-mime-info | [] [] [] [] [] [] [] | + sharutils | [] [] | + shishi | | + skencil | | + solfege | () () | + soundtracker | | + sp | () | + system-tools-ba... | [] [] [] [] | + tar | [] [] [] | + texinfo | [] [] | + tin | | + tuxpaint | () [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] | + util-linux-ng | [] [] | + vorbis-tools | | + wastesedge | [] | + wdiff | [] [] | + wget | [] [] | + xchat | [] [] [] [] | + xkeyboard-config | [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + ja ka ko ku ky lg lt lv mk mn ms mt nb ne nl nn + 51 2 25 3 2 0 6 0 2 2 20 0 11 1 103 6 + + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + +--------------------------------------------------+ + Compendium | [] [] [] [] [] | + a2ps | () [] [] [] [] [] [] | + aegis | () () | + ant-phone | [] [] | + anubis | [] [] [] | + ap-utils | () | + aspell | [] [] [] | + bash | [] [] | + bfd | | + bibshelf | [] | + binutils | [] [] | + bison | [] [] [] [] [] | + bison-runtime | [] [] [] [] [] | + bluez-pin | [] [] [] [] [] [] [] [] [] | + cflow | [] | + clisp | [] | + console-tools | [] | + coreutils | [] [] [] [] | + cpio | [] [] [] | + cpplib | [] | + cryptonit | [] [] | + dialog | [] | + diffutils | [] [] [] [] [] [] | + doodle | [] [] | + e2fsprogs | [] [] | + enscript | [] [] [] [] [] | + fetchmail | [] [] [] | + findutils | [] [] [] | + findutils_stable | [] [] [] [] [] [] | + flex | [] [] [] [] [] | + fslint | [] | + gas | | + gawk | [] [] [] [] | + gcal | [] | + gcc | [] [] | + gettext-examples | [] [] [] [] [] [] [] [] | + gettext-runtime | [] [] [] [] [] [] [] [] | + gettext-tools | [] [] [] [] [] [] [] | + gip | [] [] [] [] | + gliv | [] [] [] [] [] [] | + glunarclock | [] [] [] [] [] [] | + gmult | [] [] [] [] | + gnubiff | () [] | + gnucash | () [] | + gnuedu | | + gnulib | [] [] [] | + gnunet | | + gnunet-gtk | [] | + gnutls | [] [] | + gpe-aerial | [] [] [] [] [] [] [] | + gpe-beam | [] [] [] [] [] [] [] | + gpe-calendar | [] [] [] [] | + gpe-clock | [] [] [] [] [] [] [] [] | + gpe-conf | [] [] [] [] [] [] [] | + gpe-contacts | [] [] [] [] [] | + gpe-edit | [] [] [] [] [] [] [] [] [] | + gpe-filemanager | [] [] | + gpe-go | [] [] [] [] [] [] [] [] | + gpe-login | [] [] [] [] [] [] [] [] | + gpe-ownerinfo | [] [] [] [] [] [] [] [] | + gpe-package | [] [] | + gpe-sketchbook | [] [] [] [] [] [] [] [] | + gpe-su | [] [] [] [] [] [] [] [] | + gpe-taskmanager | [] [] [] [] [] [] [] [] | + gpe-timesheet | [] [] [] [] [] [] [] [] | + gpe-today | [] [] [] [] [] [] [] [] | + gpe-todo | [] [] [] [] | + gphoto2 | [] [] [] [] [] [] | + gprof | [] [] [] | + gpsdrive | [] [] | + gramadoir | [] [] | + grep | [] [] [] [] | + gretl | [] [] [] | + gsasl | [] [] [] | + gss | [] [] [] [] | + gst-plugins-bad | [] [] [] | + gst-plugins-base | [] [] | + gst-plugins-good | [] [] | + gst-plugins-ugly | [] [] [] | + gstreamer | [] [] [] [] | + gtick | [] | + gtkam | [] [] [] [] [] | + gtkorphan | [] | + gtkspell | [] [] [] [] [] [] [] [] | + gutenprint | [] | + hello | [] [] [] [] [] [] [] [] | + herrie | [] [] [] | + hylafax | | + idutils | [] [] [] [] [] | + indent | [] [] [] [] [] [] [] | + iso_15924 | | + iso_3166 | [] [] [] [] [] [] [] [] [] [] [] [] [] | + iso_3166_2 | | + iso_4217 | [] [] [] [] [] [] [] | + iso_639 | [] [] [] [] [] [] [] | + jpilot | | + jtag | [] | + jwhois | [] [] [] [] | + kbd | [] [] [] | + keytouch | [] | + keytouch-editor | [] | + keytouch-keyboa... | [] | + latrine | | + ld | [] | + leafpad | [] [] [] [] [] [] | + libc | [] [] [] [] | + libexif | [] [] | + libextractor | [] [] | + libgpewidget | [] [] [] [] [] [] [] [] | + libgpg-error | [] [] [] | + libgphoto2 | [] | + libgphoto2_port | [] [] [] | + libgsasl | [] [] [] [] | + libiconv | [] [] [] | + libidn | [] [] () | + lifelines | [] [] | + lilypond | | + lingoteach | [] | + lprng | [] | + lynx | [] [] [] | + m4 | [] [] [] [] [] | + mailfromd | [] | + mailutils | [] [] [] | + make | [] [] [] [] | + man-db | [] [] [] [] | + minicom | [] [] [] [] [] | + nano | [] [] [] [] | + opcodes | [] [] | + parted | [] | + pilot-qof | | + popt | [] [] [] [] | + psmisc | [] [] | + pwdutils | [] [] | + qof | [] [] | + radius | [] [] | + recode | [] [] [] [] [] [] [] | + rpm | [] [] [] [] | + screem | | + scrollkeeper | [] [] [] [] [] [] [] | + sed | [] [] [] [] [] [] [] [] [] | + shared-mime-info | [] [] [] [] [] [] | + sharutils | [] [] [] [] | + shishi | [] | + skencil | [] [] [] | + solfege | [] | + soundtracker | [] [] | + sp | | + system-tools-ba... | [] [] [] [] [] [] [] [] [] | + tar | [] [] [] [] | + texinfo | [] [] [] [] | + tin | () | + tuxpaint | [] [] [] [] [] [] | + unicode-han-tra... | | + unicode-transla... | | + util-linux | [] [] [] [] | + util-linux-ng | [] [] [] [] | + vorbis-tools | [] | + wastesedge | | + wdiff | [] [] [] [] [] [] [] | + wget | [] [] [] [] | + xchat | [] [] [] [] [] [] [] | + xkeyboard-config | [] [] [] | + xpad | [] [] [] | + +--------------------------------------------------+ + or pa pl pt pt_BR rm ro ru rw sk sl sq sr sv ta + 0 5 77 31 53 4 58 72 3 45 46 9 45 122 3 + + tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + +---------------------------------------------------+ + Compendium | [] [] [] [] | 19 + a2ps | [] [] [] | 19 + aegis | [] | 1 + ant-phone | [] [] | 6 + anubis | [] [] [] | 11 + ap-utils | () [] | 4 + aspell | [] [] [] | 16 + bash | [] | 6 + bfd | | 2 + bibshelf | [] | 7 + binutils | [] [] [] [] | 9 + bison | [] [] [] [] | 20 + bison-runtime | [] [] [] [] | 18 + bluez-pin | [] [] [] [] [] [] | 28 + cflow | [] [] | 5 + clisp | | 9 + console-tools | [] [] | 5 + coreutils | [] [] [] | 18 + cpio | [] [] [] [] | 11 + cpplib | [] [] [] [] [] | 12 + cryptonit | [] | 6 + dialog | [] [] [] | 9 + diffutils | [] [] [] [] [] | 29 + doodle | [] | 6 + e2fsprogs | [] [] | 10 + enscript | [] [] [] | 16 + fetchmail | [] [] | 12 + findutils | [] [] [] | 11 + findutils_stable | [] [] [] [] | 18 + flex | [] [] | 15 + fslint | [] | 2 + gas | [] | 3 + gawk | [] [] [] | 16 + gcal | [] | 5 + gcc | [] [] [] | 7 + gettext-examples | [] [] [] [] [] [] | 29 + gettext-runtime | [] [] [] [] [] [] | 28 + gettext-tools | [] [] [] [] [] | 20 + gip | [] [] | 13 + gliv | [] [] | 11 + glunarclock | [] [] [] | 15 + gmult | [] [] [] [] | 16 + gnubiff | [] | 2 + gnucash | () [] | 5 + gnuedu | [] | 2 + gnulib | [] | 10 + gnunet | | 0 + gnunet-gtk | [] [] | 3 + gnutls | | 4 + gpe-aerial | [] [] | 14 + gpe-beam | [] [] | 14 + gpe-calendar | [] [] | 7 + gpe-clock | [] [] [] [] | 21 + gpe-conf | [] [] [] | 16 + gpe-contacts | [] [] | 10 + gpe-edit | [] [] [] [] [] | 22 + gpe-filemanager | [] [] | 7 + gpe-go | [] [] [] [] | 19 + gpe-login | [] [] [] [] [] | 21 + gpe-ownerinfo | [] [] [] [] | 21 + gpe-package | [] | 6 + gpe-sketchbook | [] [] | 16 + gpe-su | [] [] [] [] | 21 + gpe-taskmanager | [] [] [] [] | 21 + gpe-timesheet | [] [] [] [] | 18 + gpe-today | [] [] [] [] [] | 21 + gpe-todo | [] [] | 8 + gphoto2 | [] [] [] [] | 21 + gprof | [] [] | 13 + gpsdrive | [] | 5 + gramadoir | [] | 7 + grep | [] | 12 + gretl | | 6 + gsasl | [] [] [] | 9 + gss | [] | 7 + gst-plugins-bad | [] [] [] | 13 + gst-plugins-base | [] [] | 11 + gst-plugins-good | [] [] [] [] [] | 16 + gst-plugins-ugly | [] [] [] | 13 + gstreamer | [] [] [] | 18 + gtick | [] [] | 7 + gtkam | [] | 16 + gtkorphan | [] | 7 + gtkspell | [] [] [] [] [] [] | 27 + gutenprint | | 4 + hello | [] [] [] [] [] | 38 + herrie | [] [] | 8 + hylafax | | 0 + idutils | [] [] | 15 + indent | [] [] [] [] [] | 28 + iso_15924 | [] [] | 4 + iso_3166 | [] [] [] [] [] [] [] [] [] | 54 + iso_3166_2 | [] [] | 4 + iso_4217 | [] [] [] [] [] | 24 + iso_639 | [] [] [] [] [] | 26 + jpilot | [] [] [] [] | 7 + jtag | [] | 3 + jwhois | [] [] [] | 13 + kbd | [] [] [] | 13 + keytouch | [] | 8 + keytouch-editor | [] | 5 + keytouch-keyboa... | [] | 5 + latrine | [] [] | 5 + ld | [] [] [] [] | 10 + leafpad | [] [] [] [] [] | 24 + libc | [] [] [] | 19 + libexif | [] | 5 + libextractor | [] | 5 + libgpewidget | [] [] [] | 20 + libgpg-error | [] | 6 + libgphoto2 | [] [] | 9 + libgphoto2_port | [] [] [] | 11 + libgsasl | [] | 8 + libiconv | [] [] | 11 + libidn | [] [] | 11 + lifelines | | 4 + lilypond | [] | 6 + lingoteach | [] | 6 + lprng | [] | 2 + lynx | [] [] [] | 15 + m4 | [] [] [] | 18 + mailfromd | [] [] | 3 + mailutils | [] [] | 8 + make | [] [] [] | 20 + man-db | [] | 9 + minicom | [] | 14 + nano | [] [] [] | 20 + opcodes | [] [] | 10 + parted | [] [] [] | 11 + pilot-qof | [] | 1 + popt | [] [] [] [] | 18 + psmisc | [] [] | 10 + pwdutils | [] | 3 + qof | [] | 4 + radius | [] [] | 7 + recode | [] [] [] | 25 + rpm | [] [] [] [] | 13 + screem | [] | 2 + scrollkeeper | [] [] [] [] | 26 + sed | [] [] [] [] | 23 + shared-mime-info | [] [] [] | 29 + sharutils | [] [] [] | 23 + shishi | [] | 3 + skencil | [] | 7 + solfege | [] | 3 + soundtracker | [] [] | 9 + sp | [] | 3 + system-tools-ba... | [] [] [] [] [] [] [] | 38 + tar | [] [] [] | 17 + texinfo | [] [] [] | 15 + tin | | 1 + tuxpaint | [] [] [] | 19 + unicode-han-tra... | | 0 + unicode-transla... | | 2 + util-linux | [] [] [] | 20 + util-linux-ng | [] [] [] | 20 + vorbis-tools | [] [] | 4 + wastesedge | | 1 + wdiff | [] [] | 23 + wget | [] [] [] | 20 + xchat | [] [] [] [] | 29 + xkeyboard-config | [] [] [] | 14 + xpad | [] [] [] | 15 + +---------------------------------------------------+ + 76 teams tg th tk tr uk ven vi wa xh zh_CN zh_HK zh_TW zu + 163 domains 0 3 1 74 51 0 143 21 1 57 7 45 0 2036 + + Some counters in the preceding matrix are higher than the number of +visible blocks let us expect. This is because a few extra PO files are +used for implementing regional variants of languages, or language +dialects. + + For a PO file in the matrix above to be effective, the package to +which it applies should also have been internationalized and +distributed as such by its maintainer. There might be an observable +lag between the mere existence a PO file and its wide availability in a +distribution. + + If November 2007 seems to be old, you may fetch a more recent copy +of this `ABOUT-NLS' file on most GNU archive sites. The most +up-to-date matrix with full percentage details can be found at +`http://translationproject.org/extra/matrix.html'. + +1.6 Using `gettext' in new packages +=================================== + +If you are writing a freely available program and want to +internationalize it you are welcome to use GNU `gettext' in your +package. Of course you have to respect the GNU Library General Public +License which covers the use of the GNU `gettext' library. This means +in particular that even non-free programs can use `libintl' as a shared +library, whereas only free software can use `libintl' as a static +library or use modified versions of `libintl'. + + Once the sources are changed appropriately and the setup can handle +the use of `gettext' the only thing missing are the translations. The +Free Translation Project is also available for packages which are not +developed inside the GNU project. Therefore the information given above +applies also for every other Free Software Project. Contact +`coordinator@translationproject.org' to make the `.pot' files available +to the translation teams. + diff --git a/AUTHORS b/AUTHORS new file mode 100644 index 0000000..5cef5a3 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,21 @@ +Erik Walthinsen +Matt Howell +Brent Bradburn +Wim Taymans +Richard Boulton +Zaheer Abbas Merali +David I. Lehn +Chris Emerson +Jens Thiele +Thomas Nyberg +Bastien Nocera +Christian Fredrik Kalager Schaller +Thomas Vander Stichele +Andy Wingo +Cameron Hutchison +David Schleef +Benjamin Otte +Ronald Bultje +Julien MOUTTE +Jan Schmidt +Arwed v. Merkatz diff --git a/COPYING b/COPYING new file mode 100644 index 0000000..60549be --- /dev/null +++ b/COPYING @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) 19yy + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) 19yy name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/COPYING.LIB b/COPYING.LIB new file mode 100644 index 0000000..eb685a5 --- /dev/null +++ b/COPYING.LIB @@ -0,0 +1,481 @@ + GNU LIBRARY GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1991 Free Software Foundation, Inc. + 675 Mass Ave, Cambridge, MA 02139, USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + +[This is the first released version of the library GPL. It is + numbered 2 because it goes with version 2 of the ordinary GPL.] + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +Licenses are intended to guarantee your freedom to share and change +free software--to make sure the software is free for all its users. + + This license, the Library General Public License, applies to some +specially designated Free Software Foundation software, and to any +other libraries whose authors decide to use it. You can use it for +your libraries, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if +you distribute copies of the library, or if you modify it. + + For example, if you distribute copies of the library, whether gratis +or for a fee, you must give the recipients all the rights that we gave +you. You must make sure that they, too, receive or can get the source +code. If you link a program with the library, you must provide +complete object files to the recipients so that they can relink them +with the library, after making changes to the library and recompiling +it. And you must show them these terms so they know their rights. + + Our method of protecting your rights has two steps: (1) copyright +the library, and (2) offer you this license which gives you legal +permission to copy, distribute and/or modify the library. + + Also, for each distributor's protection, we want to make certain +that everyone understands that there is no warranty for this free +library. If the library is modified by someone else and passed on, we +want its recipients to know that what they have is not the original +version, so that any problems introduced by others will not reflect on +the original authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that companies distributing free +software will individually obtain patent licenses, thus in effect +transforming the program into proprietary software. To prevent this, +we have made it clear that any patent must be licensed for everyone's +free use or not licensed at all. + + Most GNU software, including some libraries, is covered by the ordinary +GNU General Public License, which was designed for utility programs. This +license, the GNU Library General Public License, applies to certain +designated libraries. This license is quite different from the ordinary +one; be sure to read it in full, and don't assume that anything in it is +the same as in the ordinary license. + + The reason we have a separate public license for some libraries is that +they blur the distinction we usually make between modifying or adding to a +program and simply using it. Linking a program with a library, without +changing the library, is in some sense simply using the library, and is +analogous to running a utility program or application program. However, in +a textual and legal sense, the linked executable is a combined work, a +derivative of the original library, and the ordinary General Public License +treats it as such. + + Because of this blurred distinction, using the ordinary General +Public License for libraries did not effectively promote software +sharing, because most developers did not use the libraries. We +concluded that weaker conditions might promote sharing better. + + However, unrestricted linking of non-free programs would deprive the +users of those programs of all benefit from the free status of the +libraries themselves. This Library General Public License is intended to +permit developers of non-free programs to use free libraries, while +preserving your freedom as a user of such programs to change the free +libraries that are incorporated in them. (We have not seen how to achieve +this as regards changes in header files, but we have achieved it as regards +changes in the actual functions of the Library.) The hope is that this +will lead to faster development of free libraries. + + The precise terms and conditions for copying, distribution and +modification follow. Pay close attention to the difference between a +"work based on the library" and a "work that uses the library". The +former contains code derived from the library, while the latter only +works together with the library. + + Note that it is possible for a library to be covered by the ordinary +General Public License rather than by this special one. + + GNU LIBRARY GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License Agreement applies to any software library which +contains a notice placed by the copyright holder or other authorized +party saying it may be distributed under the terms of this Library +General Public License (also called "this License"). Each licensee is +addressed as "you". + + A "library" means a collection of software functions and/or data +prepared so as to be conveniently linked with application programs +(which use some of those functions and data) to form executables. + + The "Library", below, refers to any such software library or work +which has been distributed under these terms. A "work based on the +Library" means either the Library or any derivative work under +copyright law: that is to say, a work containing the Library or a +portion of it, either verbatim or with modifications and/or translated +straightforwardly into another language. (Hereinafter, translation is +included without limitation in the term "modification".) + + "Source code" for a work means the preferred form of the work for +making modifications to it. For a library, complete source code means +all the source code for all modules it contains, plus any associated +interface definition files, plus the scripts used to control compilation +and installation of the library. + + Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running a program using the Library is not restricted, and output from +such a program is covered only if its contents constitute a work based +on the Library (independent of the use of the Library in a tool for +writing it). Whether that is true depends on what the Library does +and what the program that uses the Library does. + + 1. You may copy and distribute verbatim copies of the Library's +complete source code as you receive it, in any medium, provided that +you conspicuously and appropriately publish on each copy an +appropriate copyright notice and disclaimer of warranty; keep intact +all the notices that refer to this License and to the absence of any +warranty; and distribute a copy of this License along with the +Library. + + You may charge a fee for the physical act of transferring a copy, +and you may at your option offer warranty protection in exchange for a +fee. + + 2. You may modify your copy or copies of the Library or any portion +of it, thus forming a work based on the Library, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) The modified work must itself be a software library. + + b) You must cause the files modified to carry prominent notices + stating that you changed the files and the date of any change. + + c) You must cause the whole of the work to be licensed at no + charge to all third parties under the terms of this License. + + d) If a facility in the modified Library refers to a function or a + table of data to be supplied by an application program that uses + the facility, other than as an argument passed when the facility + is invoked, then you must make a good faith effort to ensure that, + in the event an application does not supply such function or + table, the facility still operates, and performs whatever part of + its purpose remains meaningful. + + (For example, a function in a library to compute square roots has + a purpose that is entirely well-defined independent of the + application. Therefore, Subsection 2d requires that any + application-supplied function or table used by this function must + be optional: if the application does not supply it, the square + root function must still compute square roots.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Library, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Library, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote +it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Library. + +In addition, mere aggregation of another work not based on the Library +with the Library (or with a work based on the Library) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may opt to apply the terms of the ordinary GNU General Public +License instead of this License to a given copy of the Library. To do +this, you must alter all the notices that refer to this License, so +that they refer to the ordinary GNU General Public License, version 2, +instead of to this License. (If a newer version than version 2 of the +ordinary GNU General Public License has appeared, then you can specify +that version instead if you wish.) Do not make any other change in +these notices. + + Once this change is made in a given copy, it is irreversible for +that copy, so the ordinary GNU General Public License applies to all +subsequent copies and derivative works made from that copy. + + This option is useful when you wish to copy part of the code of +the Library into a program that is not a library. + + 4. You may copy and distribute the Library (or a portion or +derivative of it, under Section 2) in object code or executable form +under the terms of Sections 1 and 2 above provided that you accompany +it with the complete corresponding machine-readable source code, which +must be distributed under the terms of Sections 1 and 2 above on a +medium customarily used for software interchange. + + If distribution of object code is made by offering access to copy +from a designated place, then offering equivalent access to copy the +source code from the same place satisfies the requirement to +distribute the source code, even though third parties are not +compelled to copy the source along with the object code. + + 5. A program that contains no derivative of any portion of the +Library, but is designed to work with the Library by being compiled or +linked with it, is called a "work that uses the Library". Such a +work, in isolation, is not a derivative work of the Library, and +therefore falls outside the scope of this License. + + However, linking a "work that uses the Library" with the Library +creates an executable that is a derivative of the Library (because it +contains portions of the Library), rather than a "work that uses the +library". The executable is therefore covered by this License. +Section 6 states terms for distribution of such executables. + + When a "work that uses the Library" uses material from a header file +that is part of the Library, the object code for the work may be a +derivative work of the Library even though the source code is not. +Whether this is true is especially significant if the work can be +linked without the Library, or if the work is itself a library. The +threshold for this to be true is not precisely defined by law. + + If such an object file uses only numerical parameters, data +structure layouts and accessors, and small macros and small inline +functions (ten lines or less in length), then the use of the object +file is unrestricted, regardless of whether it is legally a derivative +work. (Executables containing this object code plus portions of the +Library will still fall under Section 6.) + + Otherwise, if the work is a derivative of the Library, you may +distribute the object code for the work under the terms of Section 6. +Any executables containing that work also fall under Section 6, +whether or not they are linked directly with the Library itself. + + 6. As an exception to the Sections above, you may also compile or +link a "work that uses the Library" with the Library to produce a +work containing portions of the Library, and distribute that work +under terms of your choice, provided that the terms permit +modification of the work for the customer's own use and reverse +engineering for debugging such modifications. + + You must give prominent notice with each copy of the work that the +Library is used in it and that the Library and its use are covered by +this License. You must supply a copy of this License. If the work +during execution displays copyright notices, you must include the +copyright notice for the Library among them, as well as a reference +directing the user to the copy of this License. Also, you must do one +of these things: + + a) Accompany the work with the complete corresponding + machine-readable source code for the Library including whatever + changes were used in the work (which must be distributed under + Sections 1 and 2 above); and, if the work is an executable linked + with the Library, with the complete machine-readable "work that + uses the Library", as object code and/or source code, so that the + user can modify the Library and then relink to produce a modified + executable containing the modified Library. (It is understood + that the user who changes the contents of definitions files in the + Library will not necessarily be able to recompile the application + to use the modified definitions.) + + b) Accompany the work with a written offer, valid for at + least three years, to give the same user the materials + specified in Subsection 6a, above, for a charge no more + than the cost of performing this distribution. + + c) If distribution of the work is made by offering access to copy + from a designated place, offer equivalent access to copy the above + specified materials from the same place. + + d) Verify that the user has already received a copy of these + materials or that you have already sent this user a copy. + + For an executable, the required form of the "work that uses the +Library" must include any data and utility programs needed for +reproducing the executable from it. However, as a special exception, +the source code distributed need not include anything that is normally +distributed (in either source or binary form) with the major +components (compiler, kernel, and so on) of the operating system on +which the executable runs, unless that component itself accompanies +the executable. + + It may happen that this requirement contradicts the license +restrictions of other proprietary libraries that do not normally +accompany the operating system. Such a contradiction means you cannot +use both them and the Library together in an executable that you +distribute. + + 7. You may place library facilities that are a work based on the +Library side-by-side in a single library together with other library +facilities not covered by this License, and distribute such a combined +library, provided that the separate distribution of the work based on +the Library and of the other library facilities is otherwise +permitted, and provided that you do these two things: + + a) Accompany the combined library with a copy of the same work + based on the Library, uncombined with any other library + facilities. This must be distributed under the terms of the + Sections above. + + b) Give prominent notice with the combined library of the fact + that part of it is a work based on the Library, and explaining + where to find the accompanying uncombined form of the same work. + + 8. You may not copy, modify, sublicense, link with, or distribute +the Library except as expressly provided under this License. Any +attempt otherwise to copy, modify, sublicense, link with, or +distribute the Library is void, and will automatically terminate your +rights under this License. However, parties who have received copies, +or rights, from you under this License will not have their licenses +terminated so long as such parties remain in full compliance. + + 9. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Library or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Library (or any work based on the +Library), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Library or works based on it. + + 10. Each time you redistribute the Library (or any work based on the +Library), the recipient automatically receives a license from the +original licensor to copy, distribute, link with or modify the Library +subject to these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 11. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Library at all. For example, if a patent +license would not permit royalty-free redistribution of the Library by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Library. + +If any portion of this section is held invalid or unenforceable under any +particular circumstance, the balance of the section is intended to apply, +and the section as a whole is intended to apply in other circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 12. If the distribution and/or use of the Library is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Library under this License may add +an explicit geographical distribution limitation excluding those countries, +so that distribution is permitted only in or among countries not thus +excluded. In such case, this License incorporates the limitation as if +written in the body of this License. + + 13. The Free Software Foundation may publish revised and/or new +versions of the Library General Public License from time to time. +Such new versions will be similar in spirit to the present version, +but may differ in detail to address new problems or concerns. + +Each version is given a distinguishing version number. If the Library +specifies a version number of this License which applies to it and +"any later version", you have the option of following the terms and +conditions either of that version or of any later version published by +the Free Software Foundation. If the Library does not specify a +license version number, you may choose any version ever published by +the Free Software Foundation. + + 14. If you wish to incorporate parts of the Library into other free +programs whose distribution conditions are incompatible with these, +write to the author to ask for permission. For software which is +copyrighted by the Free Software Foundation, write to the Free +Software Foundation; we sometimes make exceptions for this. Our +decision will be guided by the two goals of preserving the free status +of all derivatives of our free software and of promoting the sharing +and reuse of software generally. + + NO WARRANTY + + 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO +WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW. +EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR +OTHER PARTIES PROVIDE THE LIBRARY "AS IS" WITHOUT WARRANTY OF ANY +KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE +IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE +LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME +THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN +WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY +AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU +FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR +CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE +LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING +RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A +FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF +SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH +DAMAGES. + + END OF TERMS AND CONDITIONS + + Appendix: How to Apply These Terms to Your New Libraries + + If you develop a new library, and you want it to be of the greatest +possible use to the public, we recommend making it free software that +everyone can redistribute and change. You can do so by permitting +redistribution under these terms (or, alternatively, under the terms of the +ordinary General Public License). + + To apply these terms, attach the following notices to the library. It is +safest to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least the +"copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + +Also add information on how to contact you by electronic and paper mail. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the library, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the + library `Frob' (a library for tweaking knobs) written by James Random Hacker. + + , 1 April 1990 + Ty Coon, President of Vice + +That's all there is to it! diff --git a/ChangeLog b/ChangeLog new file mode 100644 index 0000000..e5cca4e --- /dev/null +++ b/ChangeLog @@ -0,0 +1,67389 @@ +=== release 0.10.22 === + +2011-05-10 Tim-Philipp Müller + + * configure.ac: + releasing 0.10.22, "Toy Piano" + +2011-05-05 09:54:33 -0300 Thiago Santos + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + camerabin: Use running time for muxing + This patch removes the audio source buffer probe that was used + to re-timestamp buffers to make them start from 0. As muxers + have been fixed to use running time instead of timestamps, this + is not needed anymore. + Fixes bug #646211 + +2011-04-21 19:58:03 -0300 Thiago Santos + + * gst/camerabin/camerabinimage.c: + camerabin: Fix typo + +2011-05-04 12:36:01 +0200 Mark Nauwelaerts + + * ext/xvid/gstxvidenc.c: + xvidenc: do not leak peer pad reference + +2011-05-03 15:47:02 +0100 Sjoerd Simons + + * ext/xvid/gstxvidenc.c: + xvidenc: Always return reffed caps from _getcaps + Not returning ref caps will leads to crashes and refcounting issues in + upstream elements + +2011-04-14 13:34:53 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: set duration in outgoing buffers + Currently we push each fragment as a single buffer. + +2011-05-03 12:01:25 +0100 Tim-Philipp Müller + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix DURATION query handling + Only answer duration queries in TIME format with a duration + in seconds. Make sure we don't return GST_CLOCK_TIME_NONE as + duration (which is non-0, but still invalid/useless). + +2011-05-03 11:51:44 +0100 Tim-Philipp Müller + + * gst/hls/gsthlsdemux.c: + hlsdemux: implement SEEKING query + +2011-04-30 19:47:47 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-curl.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtmpsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-rtpvp8.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * po/da.po: + * po/de.po: + * po/fr.po: + * po/uk.po: + * win32/common/config.h: + 0.10.21.4 pre-release + +2011-04-30 19:46:40 +0100 Tim-Philipp Müller + + * ext/cog/gstcogorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.c: + Update orc-generated disted C backup code to orc 0.4.14 + +2011-04-30 19:15:11 +0100 Tim-Philipp Müller + + * gst/debugutils/gstchopmydata.c: + chopmydata: don't push buffers smaller than min-size on eos + When pushing the remaining data on EOS, don't just push whatever + data is left in the adapter, but only push data that's at least + of min-size. + +2011-04-30 19:08:25 +0100 Tim-Philipp Müller + + * gst/debugutils/gstchopmydata.c: + chopmydata: don't mess with adapter from non-streaming thread on FLUSH_START + Don't try to push remaining data in the adapter on receiving a FLUSH event, + just flush the adapter. Do this on FLUSH_STOP, however, which is serialized, + unlike FLUSH_START, so we don't mess with the adapter at the same time as + the streaming thread. + +2011-04-30 11:28:03 +0200 Philip Jägenstedt + + * gst/y4m/gsty4mdec.c: + y4mdec: add plugin description + https://bugzilla.gnome.org/show_bug.cgi?id=649005 + +2011-04-29 12:39:38 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Don't leak bufferlist on streams without pads + https://bugzilla.gnome.org/show_bug.cgi?id=648929 + +2011-04-29 12:38:31 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Unref buffers we don't use. + Avoids a massive leak :) + https://bugzilla.gnome.org/show_bug.cgi?id=648929 + +2011-04-29 12:08:38 +0200 Edward Hervey + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsbase: Don't forget to free the program streams array + https://bugzilla.gnome.org/show_bug.cgi?id=648929 + +2011-04-29 12:08:04 +0200 Edward Hervey + + * gst/mpegtsdemux/tsdemux.c: + tsdemux: Free packet buffer even if it doesn't have a payload + This can happen with AFC-only packets. Avoids leaking buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=648929 + +2011-04-28 10:07:04 +0200 Sebastian Dröge + + * configure.ac: + decklink: Check for pthread.h and link with -lpthread + +2011-04-28 10:04:18 +0200 Sebastian Dröge + + * sys/Makefile.am: + decklink: Add to SUBDIRS + +2011-04-28 00:00:09 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-curl.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtmpsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-rtpvp8.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * ext/cog/gstcogorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.c: + * po/bg.po: + * po/ja.po: + * po/nl.po: + * po/pl.po: + * po/ru.po: + * po/sl.po: + * po/tr.po: + * win32/common/config.h: + 0.10.21.3 pre-release + +2011-04-27 23:43:03 +0100 Tim-Philipp Müller + + * tools/Makefile.am: + tools: disable new gst-element-maker test + It doesn't seem to work in an uninstalled setup, and + breaks make distcheck for me. + +2011-04-27 01:14:20 +0300 Stefan Kost + + * tools/Makefile.am: + element-maker: the broekn templates are not broekn, but dependencies + Rename the list and dist them. We need them for the actual templates. + +2011-04-26 15:13:55 +0300 Stefan Kost + + * tools/Makefile.am: + * tools/gst-element-maker: + element-maker: set CPPFLAGS to make templates using uninstalled headers work + +2011-04-26 14:21:25 +0300 Stefan Kost + + * tools/Makefile.am: + * tools/element-templates/gobject: + element-maker: fixup gobject template a bit but disable for now + The template contains things we already define by default. + +2011-04-26 14:10:05 +0300 Stefan Kost + + * tools/element-templates/audiofilter: + * tools/element-templates/basertpdepayload: + * tools/element-templates/basertppayload: + * tools/element-templates/cddabasesrc: + * tools/element-templates/tagdemux: + element-templates: fix templates + Use the object class and not the object in the init function. Set the vmethods. + Add default returns. + +2011-04-26 14:08:51 +0300 Stefan Kost + + * tools/Makefile.am: + element-maker: don't dist incomplete templates + Move not working templates to a separate variable to highlight the fact that + they need more work. These need at least the class and type fields filled. + +2011-04-26 13:44:04 +0300 Stefan Kost + + * tools/Makefile.am: + * tools/gst-element-maker-test.sh: + element-maker-test: try to run element-maker for all templates + Add an easy way to check the element-maker templates. + +2011-04-26 13:42:59 +0300 Stefan Kost + + * tools/gst-element-maker: + element-maker: make it fail, when compilation fails + +2011-04-19 15:09:54 -0400 Stefan Kost + + * tools/gst-element-maker: + element-maker: allow to run from a different working directory + Get the dirname for the script and use that to reference the templates. Use the + templatedir variable to check for templates. + +2011-04-16 19:42:48 -0700 David Schleef + + * tools/gst-element-maker: + element-maker: lowercasify input + This allows using capitalized acronyms in class names, so using + "AVC_src" on the command line will create filename gstavcsrc.c, + class name GstAVCSrc, and symbol names gst_avc_src_*. + +2011-04-24 16:42:03 -0700 David Schleef + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux,tsdemux: Add byte-stream to h264 caps + Fixes #606662. + +2011-04-24 16:00:00 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideoencoder: Don't allow buffers after EOS + Fixes #647852. + +2011-04-24 15:49:54 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: Don't duplicate code in basevideocodec + Both basevideoencoder and basevideocodec were setting + system_frame_number, leading to confusion. Fixes #647853. + +2011-04-14 16:21:15 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Check if caps are set directly + Fixes #647854. + +2011-04-17 00:08:39 +0100 Mihai Draghicioiu + + * ext/gme/gstgme.c: + gme: fix infinite looping by fading out after two loops + https://bugzilla.gnome.org/show_bug.cgi?id=647364 + +2011-04-24 14:04:10 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From c3cafe1 to 46dfcea + +2011-04-22 09:37:29 +0100 Fabrizio Milo + + * configure.ac: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfaceblur.h: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstfacedetect.h: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttextoverlay.h: + opencv: make work with openCV 2.2 + https://bugzilla.gnome.org/show_bug.cgi?id=641796 + +2011-04-19 17:02:45 +0100 Christian Fredrik Kalager Schaller + + * gst-plugins-bad.spec.in: + Add latest plugins to spec file + +2011-04-15 22:25:27 -0700 David Schleef + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: Add byte-stream to h264 caps + +2011-04-18 12:01:07 +0200 Sebastian Dröge + + * tests/check/elements/mxfmux.c: + * tests/check/pipelines/mxf.c: + wavpack: Remove bus GSource to prevent a valgrind warning + +2011-04-18 11:57:15 +0200 Sebastian Dröge + + * tests/check/elements/ofa.c: + ofa: Remove bus GSource to prevent a valgrind warning + +2011-04-18 11:50:34 +0200 Sebastian Dröge + + * tests/check/elements/assrender.c: + assrender: Remove bus GSource to prevent a valgrind warning + +2011-04-18 11:46:23 +0200 Sebastian Dröge + + * sys/decklink/Makefile.am: + decklink: Remove unused/unneeded CFLAGS/LIBS and move $(LIBM) to LIBADD + +2011-04-18 11:43:03 +0200 Sebastian Dröge + + * sys/linsys/Makefile.am: + linsys: Link with libgstbase for basesink/basesrc + And remove empty and unused variables. + +2011-04-17 19:09:33 +0200 Sebastian Dröge + + * sys/decklink/Makefile.am: + decklink: Dist all headers and put them in noinst_HEADERS + +2011-04-17 19:09:15 +0200 Sebastian Dröge + + * sys/linsys/Makefile.am: + linsys: Dist all headers and put them in noinst_HEADERS + +2011-04-17 11:54:00 +0200 Sebastian Dröge + + * configure.ac: + configure: Fix linsys/decklink checks for Linux + +2011-04-17 01:10:14 +0100 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.21.2 pre-release + +2011-04-17 01:09:33 +0100 Tim-Philipp Müller + + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * gst/colorspace/gstcolorspaceorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.h: + * gst/fieldanalysis/gstfieldanalysisorc-dist.c: + * gst/fieldanalysis/gstfieldanalysisorc-dist.h: + ext, gst: update disted orc backup files + +2011-04-17 00:54:50 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-curl.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtmpsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-rtpvp8.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: update docs for pre-release + +2011-04-16 16:36:06 +0100 Tim-Philipp Müller + + * configure.ac: + configure: fix --disable-external + +2011-04-14 20:46:52 -0700 David Schleef + + * ext/assrender/gstassrender.c: + assrender: refactor blitting, avoid writing past end of buffer + Previous blitting code could potentially write past the + end of the buffer if the x or y position was odd, and for + the same underlying reason, didn't get the chroma registration + correct in the odd position case. + https://bugzilla.gnome.org/show_bug.cgi?id=647830 + +2011-04-16 11:18:44 +0200 Edward Hervey + + * gst/jpegformat/gstjpegparse.c: + jpegformat: Fix unitialized variable on macosx + +2011-04-14 20:39:38 -0300 Thiago Santos + + * gst/camerabin/camerabinimage.c: + camerabin: Do not forget to unref the ffmpegcolorspace + Do not leak the ffmpegcolorspace by unrefing it at dispose + +2011-04-14 16:48:27 -0300 Thiago Santos + + * tests/check/elements/camerabin.c: + test: camerabin: More leak fixes + +2011-04-15 10:41:55 +0200 Sebastian Dröge + + * m4/gsettings.m4: + m4: Update gsettings m4 macros + +2011-04-14 16:24:47 -0700 David Schleef + + * configure.ac: + Bump orc requirement to 0.4.11 + +2011-04-15 00:09:14 +0100 Tim-Philipp Müller + + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/musicbrainz/gsttrm.c: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsnparsetter.c: + * gst/aiff/aiffparse.c: + * gst/colorspace/gstcolorspace.c: + * gst/debugutils/gstchecksumsink.c: + * gst/debugutils/gstchopmydata.c: + * gst/geometrictransform/gstfisheye.c: + * gst/h264parse/gsth264parse.c: + * gst/hls/m3u8.c: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegtsdemux/mpegtsbase.c: + Fix some unused-but-set-variable warnings with gcc 4.6 + +2011-04-14 19:53:16 +0100 Tim-Philipp Müller + + * tools/element-templates/gobject: + element-templates: clean up gobject template a bit + Remove pointless g_return_if_fail (G_IS_FOO (obj)) checks in + vfunc implementations. Comment out unused variables to avoid + warnings with gcc 4.6. + +2011-04-14 18:36:16 +0100 Tim-Philipp Müller + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfparse.c: + * gst/asfmux/gstrtpasfpay.c: + asfmux: fix unused-but-set-variable warnings with gcc 4.6 + +2011-04-14 18:36:02 +0100 Tim-Philipp Müller + + * gst/bayer/gstrgb2bayer.c: + bayer: fix unused-but-set-variable warnings with gcc 4.6 + +2011-04-14 14:32:02 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Leak fixes for the unit tests + Leak fixes related to not removing the source returned from + gst_bus_add_watch + +2011-04-14 13:27:20 -0300 Thiago Santos + + * tests/check/elements/camerabin.c: + tests: camerabin: Some leak fixes + Leak fixes related to removing the source returned from + gst_bus_add_watch + +2011-04-13 15:05:15 -0400 Reynaldo H. Verdejo Pinochet + + * Android.mk: + * sys/audioflingersink/Android.mk: + * sys/audioflingersink/GstAndroid.cpp: + * sys/audioflingersink/audioflinger_wrapper.cpp: + * sys/audioflingersink/audioflinger_wrapper.h: + * sys/audioflingersink/gstaudioflingerringbuffer.h: + * sys/audioflingersink/gstaudioflingersink.c: + * sys/audioflingersink/gstaudioflingersink.h: + Remove audioflingersink + Remove audioflingersink, it's in gst-android now. + +2011-04-14 16:49:18 +0100 Tim-Philipp Müller + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: fix unused-but-set-variable warnings with gcc 4.6 + +2011-04-14 16:14:57 +0100 Tim-Philipp Müller + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.h: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h: + basecamerasrc: add unstable-API warnings if GST_USE_UNSTABLE_API is not defined + So people know this is unstable API even if it ends up right next + to our other API. + +2011-04-14 16:11:53 +0100 Tim-Philipp Müller + + * gst-libs/gst/media-info/.gitignore: + libs: remove leftover media-info directory + +2011-04-13 22:48:28 +0200 Andoni Morales Alastruey + + * gst/hls/m3u8.c: + hlsdemux: m3u8: return duration in nanoseconds + +2011-04-13 23:35:50 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix handling of end of playlist + Don't send the EOS event until we reached the end of the playlist + and the queue is really empty. + +2011-04-13 22:25:57 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix example pipeline + +2011-04-13 23:06:18 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: ignore seek events until it's implemented + +2011-04-13 22:17:05 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: dispose the fetcher from the same thread it's created + +2011-04-14 11:28:58 +0100 Tim-Philipp Müller + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink:: fix compilation with older GLib + g_object_notify_by_pspec() is new in GLib 2.26, but we only require 2.22. + +2011-04-14 07:21:50 +0100 Christian Fredrik Kalager Schaller + + * gst-plugins-bad.spec.in: + Update spec file with a lot of new plugins + +2011-04-13 23:59:40 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: Adds test for new exposure compensation tag + Adds a test for GST_TAG_CAPTURING_EXPOSURE_COMPENSATION on + jifmux check tests. + +2011-04-13 21:58:36 -0400 Olivier Crête + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmfcommon.h: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + dtmf: Move duplicate #defines into a common include + Centralize duplicated constants so they have the same value. + Also standardise minimum tone duration to 250ms and minimum inter-tone + interval to 100ms. + +2011-04-13 22:33:37 -0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Preserve unused imagebin or videobin on NULL + If video or image mode is never selected then respective bin is in NULL state. + Preserve this state when resetting camerabin from PAUSED to READY. + +2011-04-13 22:07:58 +0300 Stefan Kost + + * gst/pnm/Makefile.am: + pnm: add LIBTOOLFLAGS = --tag=disable-static + +2011-04-13 20:26:11 +0200 Sebastian Dröge + + * ext/xvid/gstxvidenc.c: + xvidenc: Implement getcaps function + This allows to set width/height/etc restrictions to be set downstream. + Fixes bug #647498. + +2011-04-12 21:47:14 +0100 Tim-Philipp Müller + + * Android.mk: + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-qtmux.xml: + * gst-plugins-bad.spec.in: + * gst/qtmux/Makefile.am: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/atomsrecovery.c: + * gst/qtmux/atomsrecovery.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmoovrecover.c: + * gst/qtmux/gstqtmoovrecover.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/qtmux/gstqtmuxplugin.c: + * gst/qtmux/properties.c: + * gst/qtmux/properties.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/qtmux.c: + * tests/check/pipelines/tagschecking.c: + qtmux: remove qtmux plugin, it has moved to -good + https://bugzilla.gnome.org/show_bug.cgi?id=636699 + +2011-04-13 16:31:12 +0200 Sebastian Dröge + + * configure.ac: + configure: Fix libexif pkg-config check + There's no exif plugin so don't use AG_GST_CHECK_FEATURE. + Fixes bug #647564. + +2011-04-12 16:42:17 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Remove leftover MAEMO_BROKEN defines + Remove defines to work around bugs in old Maemo releases + +2011-04-11 14:44:17 -0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Fix corner case for preview posting + Fix corner case where video preview image is not posted if stopping + video capture immediately after capture start. + +2011-04-11 18:31:45 +0300 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + jpegparse: subtract id-str size from the remaining read + Fixes a regression from the patches in bug #626618. + +2011-04-11 18:30:17 +0300 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + * tests/check/elements/camerabin2.c: + jpeg: set tags to NULL at init time and after freeing them + +2011-04-11 18:29:28 +0300 Stefan Kost + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + * tests/check/elements/camerabin2.c: + jpeg: comment and logging changes + +2011-04-10 19:53:35 +0200 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: add gst_jpeg_parse_remove_marker() + This function will remove the whole marker from the buffer. + Also we set it as the default behavior for marker JPG{0-13}? in order to avoid + a useless #if + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-08-13 12:38:02 +0200 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: refactor COM parsing + add gst_jpeg_parse_com () and get_utf8_from_data () to extract and + validate comment format + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-16 18:22:07 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: refactor APP1 parsing + add gst_jpeg_parse_app1 () and extract_and_queue_tags () + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-21 15:05:43 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: log id when skipping an unhandled APP marker + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-16 17:47:17 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: skip all APP markers, excepting APP1 + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-21 15:09:17 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: add get_tag_list () + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2011-04-11 00:36:35 -0400 Thibault Saunier + + * Android.mk: + * android/NOTICE: + * android/h264parse.mk: + * android/metadata.mk: + * android/qtmux.mk: + * android/sdpelem.mk: + * ext/faad/Makefile.am: + * gst-libs/gst/basecamerabinsrc/Makefile.am: + * gst-libs/gst/interfaces/Makefile.am: + * gst/adpcmdec/Makefile.am: + * gst/adpcmenc/Makefile.am: + * gst/aiff/Makefile.am: + * gst/asfmux/Makefile.am: + * gst/audiobuffer/Makefile.am: + * gst/autoconvert/Makefile.am: + * gst/bayer/Makefile.am: + * gst/camerabin/Makefile.am: + * gst/camerabin2/Makefile.am: + * gst/cdxaparse/Makefile.am: + * gst/coloreffects/Makefile.am: + * gst/colorspace/Makefile.am: + * gst/dataurisrc/Makefile.am: + * gst/debugutils/Makefile.am: + * gst/dtmf/Makefile.am: + * gst/dvbsuboverlay/Makefile.am: + * gst/dvdspu/Makefile.am: + * gst/festival/Makefile.am: + * gst/freeze/Makefile.am: + * gst/frei0r/Makefile.am: + * gst/gaudieffects/Makefile.am: + * gst/geometrictransform/Makefile.am: + * gst/h264parse/Makefile.am: + * gst/hdvparse/Makefile.am: + * gst/hls/Makefile.am: + * gst/id3tag/Makefile.am: + * gst/interlace/Makefile.am: + * gst/invtelecine/Makefile.am: + * gst/ivfparse/Makefile.am: + * gst/jp2kdecimator/Makefile.am: + * gst/jpegformat/Makefile.am: + * gst/legacyresample/Makefile.am: + * gst/librfb/Makefile.am: + * gst/liveadder/Makefile.am: + * gst/mpeg4videoparse/Makefile.am: + * gst/mpegdemux/Makefile.am: + * gst/mpegpsmux/Makefile.am: + * gst/mpegtsdemux/Makefile.am: + * gst/mpegvideoparse/Makefile.am: + * gst/mve/Makefile.am: + * gst/mxf/Makefile.am: + * gst/nsf/Makefile.am: + * gst/nuvdemux/Makefile.am: + * gst/patchdetect/Makefile.am: + * gst/pcapparse/Makefile.am: + * gst/pnm/Makefile.am: + * gst/qtmux/Makefile.am: + * gst/rawparse/Makefile.am: + * gst/rtpmux/Makefile.am: + * gst/rtpvp8/Makefile.am: + * gst/scaletempo/Makefile.am: + * gst/sdi/Makefile.am: + * gst/sdp/Makefile.am: + * gst/segmentclip/Makefile.am: + * gst/siren/Makefile.am: + * gst/speed/Makefile.am: + * gst/stereo/Makefile.am: + * gst/subenc/Makefile.am: + * gst/tta/Makefile.am: + * gst/videofilters/Makefile.am: + * gst/videomaxrate/Makefile.am: + * gst/videomeasure/Makefile.am: + * gst/videoparsers/Makefile.am: + * gst/videosignal/Makefile.am: + * gst/vmnc/Makefile.am: + * gst/y4m/Makefile.am: + * sys/audioflingersink/Android.mk: + android: make it ready for androgenizer + Remove the android/ top dir + Fixe the Makefile.am to be androgenized + To build gstreamer for android we are now using androgenizer which generates the needed Android.mk files. + Androgenizer can be found here: http://git.collabora.co.uk/?p=user/derek/androgenizer.git + +2011-04-10 00:22:37 +0100 Tim-Philipp Müller + + * tools/Makefile.am: + element-maker: dist new videofilter2 template + +2011-04-09 13:40:37 +0200 Sebastian Dröge + + * sys/vdpau/h264/gstvdph264dec.c: + vdpau: Fix uninitialized variable compiler warning + +2011-04-09 10:03:00 +0200 Sebastian Dröge + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: Add last-message property and never print anything to stdout + Instead everything will be put into the last-message property and + gst-launch -v will print all changes of the property. This makes + the behaviour of fpsdisplay consistent with the fakesink/identity/etc + behaviour. + +2011-04-09 09:50:23 +0200 Sebastian Dröge + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: Rename verbose property to silent for consistency + +2011-04-09 00:37:25 +0100 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/baseparse/Makefile.am: + * gst-libs/gst/baseparse/gstbaseparse.c: + * gst-libs/gst/baseparse/gstbaseparse.h: + * tools/element-templates/baseparse: + baseparse: remove -bad version of baseparse library, now in core + +2011-04-02 18:30:22 +0100 Tim-Philipp Müller + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/gstdiracparse.h: + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/gsth263parse.h: + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + * gst/videoparsers/h263parse.h: + videoparsers: port to baseparse, which is now in libgstbase in core + +2011-04-08 12:11:07 -0700 David Schleef + + * gst/videofilters/Makefile.am: + * gst/videofilters/gstscenechange.c: + * gst/videofilters/gstscenechange.h: + * gst/videofilters/gstvideofilter2.c: + * gst/videofilters/gstvideofiltersbad.c: + scenechange: new scene change detection element + +2011-04-08 10:26:42 -0700 David Schleef + + * tools/element-templates/videofilter2: + element-maker: Add videofilter2 template + +2011-04-08 19:32:31 +0100 Tim-Philipp Müller + + * Makefile.am: + * android/aacparse.mk: + * android/amrparse.mk: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstamrparse.h: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstmpegaudioparse.h: + * gst/audioparsers/plugin.c: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/aacparse.c: + * tests/check/elements/ac3parse.c: + * tests/check/elements/amrparse.c: + * tests/check/elements/flacparse.c: + * tests/check/elements/mpegaudioparse.c: + Remove audioparsers plugin, it has been moved to -good + +2011-04-08 14:08:10 +0200 Sebastian Dröge + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: Use PROP_ instead of ARG_ for the property enums + +2011-04-07 15:15:57 +0200 Philippe Normand + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplay: Add verbose property + When this property is set to TRUE the element will display statistics + on stdout. + Fixes https://bugzilla.gnome.org/show_bug.cgi?id=647030 + +2011-04-05 21:04:54 +0200 Haakon Sporsheim + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: update for latest GstXOverlay changes + From xwindow_id to window_handle. + https://bugzilla.gnome.org/show_bug.cgi?id=646955 + +2011-04-07 18:30:49 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: relax sync match a bit when draining + ... to at least allow initial caps change (but no further caps jitter). + +2011-04-06 15:58:07 +0200 Robert Swain + + * gst/fieldanalysis/gstfieldanalysis.c: + * gst/fieldanalysis/gstfieldanalysis.h: + fieldanalysis: Use RFF flag to indicate buffers to drop downstream + Use of the GAP flag is not really correct here and makes it difficult to + handle real GAP buffers in deinterlace. The RFF flag is unused and can + be reused with similar semantics - the buffers marked with RFF that are + in a telecine state contain only unneeded repeated fields and so can be + dropped. + +2011-04-05 19:26:15 +0300 Vincent Penquerc'h + + * sys/shm/gstshmsink.c: + shmsink: ensure gst_poll_wait is called first on descriptors + We need to call gst_poll_wait before calling gst_poll_* status + functions on that new descriptor, so restart the loop, so _wait + will have been called on all elements of self->poll, whether + they have just been added or not. */ + +2011-04-06 20:40:40 -0400 Olivier Crête + + * configure.ac: + shm: Fix MSG_NOSIGNAL check + Include sys/socket.h before checking for MSG_NOSIGNAL, also + check that sys/socket.h before doing any other checks for shm + +2010-12-15 10:39:24 +0000 Tim-Philipp Müller + + * gst/camerabin/gstcamerabin.c: + camerabin: don't rely on the application running the default GLib main loop + Don't use g_idle_add() and friends to schedule things we can't do from the + streaming thread in another thread. The app may not be running the default + GLib main loop. Instead, just spawn a thread. + Also, we need to care for when acessing a pad variable, as another thread + might have taken camerabin to NULL while this gst_camerabin_imgbin_finished + didn't run. + https://bugzilla.gnome.org/show_bug.cgi?id=615655 + +2011-04-04 20:55:39 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: require tighter sync match when draining + +2011-04-04 15:57:36 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 1ccbe09 to c3cafe1 + +2011-04-04 12:21:23 +0200 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: more helpful debug error message when no needed duration on input buffers + Fixes #646256. + +2011-04-02 01:21:34 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: validate properly utf-8 playlist + +2011-04-02 01:10:37 +0200 Andoni Morales Alastruey + + * gst/hls/m3u8.c: + hlsdemux: m3u8: clear the list of media files before updating the playlist + +2011-04-02 01:08:02 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: use and adapter instead of costful buffer joins + +2011-04-01 13:53:28 -0700 David Schleef + + * ext/dc1394/Makefile.am: + * ext/directfb/Makefile.am: + * gst/hls/Makefile.am: + Remove setting of plugindir from Makefiles + +2011-03-26 17:55:31 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Fix negotiation errors + +2011-03-26 17:43:54 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideo: Add function to allocate src buffer + +2011-04-01 16:52:48 -0300 Thiago Santos + + * gst/hls/gsthlsdemux.c: + hlsdemux: Another windows build fix + Replace %lld with %u as GST_BUFFER_SIZE is a guint + +2011-04-01 16:12:50 -0300 Thiago Santos + + * gst/hls/m3u8.c: + hls: Fix compilation on windows + Use string literal on printing format + +2011-04-01 13:39:50 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Processing should stop on READY + The videobin and imagebin from camerabin have their states + locked and aren't put to READY when all the rest of camerabin + is set to it. + This might cause one of them to be still processing and post + an EOS after camerabin isn't expecting it anymore, this causes + an assertion as the processing counter would already be 0 and + would be decremented. + +2011-04-01 15:00:32 +0200 Sebastian Dröge + + * gst/segmentclip/gstsegmentclip.c: + segmentclip: Keep a reference of events until the event is parsed + +2011-04-01 14:47:43 +0200 Sebastian Dröge + + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstmpegaudioparse.h: + mpegaudioparse: Parse encoder delay and encoder padding from the LAME header if present + +2011-03-31 16:21:11 -0400 Olivier Crête + + * sys/shm/gstshmsink.c: + shm: Make default perm u+rw g+r for shm area + +2011-03-30 15:53:12 +0100 Tim-Philipp Müller + + * gst/hls/gsthlsdemux.c: + hlsdemux: update for media type was renaming from playlist/m3u8 to application/x-hls + +2011-03-30 11:33:09 +0200 Sebastian Dröge + + * configure.ac: + configure.ac: Add hls plugin + +2011-03-30 10:11:24 +0200 Sebastian Dröge + + * gst/hls/gsthlsdemux.c: + hlsdemux: Some minor cleanup + Use GST_DEBUG_FUNCPTR and G_PARAM_STATIC_STRINGS + +2011-03-30 03:34:39 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: fix indentation and docs sections + +2011-03-29 23:18:24 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: don't leek the query + +2011-03-29 23:06:14 +0200 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: check if the task's cond was signaled because it's the end of playlist + +2011-03-12 13:32:57 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: post a message in the bus when the playlist changes + +2011-03-12 13:15:52 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: don't update the playlist if we stay in the same bitrate + +2011-03-12 13:00:06 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: Add support for URI queries + +2011-03-12 12:50:25 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: Add support for duration queries + +2011-03-12 12:28:42 +0100 Andoni Morales Alastruey + + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: m3u8: protect public methods properly + +2011-03-12 12:20:32 +0100 Andoni Morales Alastruey + + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: m3u8: add support to get the duration from a playlist + +2011-02-16 03:51:08 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: don't print an error if the download was cancelled + +2011-02-16 03:49:49 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: make sure the fetcher state change is complete before continuing + +2011-02-16 01:19:45 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: don't leak the first buffer + +2011-02-16 00:55:30 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: clean up code a little bit + +2011-02-16 00:53:48 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: only check for the end of playlist when the queue is empty + +2011-02-15 22:40:21 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: make sure to stop fragments cache if something cancelled it + +2011-02-15 21:55:26 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: reuse the code in reset() to free resources in dispose() + +2011-02-15 21:49:20 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: use a typefinder to set the caps in the source pad + +2011-02-15 04:39:34 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: add more comments and document better all the threads involved + +2011-02-15 03:42:29 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: handle 404 from the source element + +2011-02-15 03:41:43 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: stop the fetcher in the PAUSED_TO_READY transition, not when disposing() + +2011-02-15 03:41:01 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + hlsdemux: make sure we don't stop the fetcher twice from different threads + +2011-02-15 02:13:56 +0100 Andoni Morales Alastruey + + * gst/hls/gsthlsdemux.c: + hlsdemux: query the uri upstream before updating the playlist + +2011-02-14 18:51:32 +0100 Andoni Morales Alastruey + + * configure.ac: + * gst/hls/Makefile.am: + * gst/hls/gstfragmented.h: + * gst/hls/gstfragmentedplugin.c: + * gst/hls/gsthlsdemux.c: + * gst/hls/gsthlsdemux.h: + * gst/hls/m3u8.c: + * gst/hls/m3u8.h: + hlsdemux: Add HTTP live streaming demuxer element + Based on previous work by Marc-André Lureau + +2011-03-21 10:57:05 -0300 Thiago Santos + + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjifmux.c: + jifmux: Add GstTagXmpWriter support + Adds GstTagXmpWriter interface to jifmux element + +2011-03-21 10:56:51 -0300 Thiago Santos + + * gst/qtmux/Makefile.am: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + qtmux: Adding GstTagXmpWriter interface + Adds GstTagXmpWriter interface support to qtmux + +2011-03-27 23:50:24 +0300 Sreerenj Balachandran + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/opencv/Makefile.am: + * ext/opencv/gstopencv.c: + * ext/opencv/gsttextoverlay.c: + * ext/opencv/gsttextoverlay.h: + * ext/opencv/gsttextwrite.c: + * ext/opencv/gsttextwrite.h: + opencv text overlay: rename and docuemnt + Rename the element textwrite to opencvtextoverlay. Add proper structuring to + opencv textoverlay element. + Fixes: #640561 + +2011-03-27 13:57:05 -0700 David Schleef + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: Fix 64-bit printf format problem + +2011-03-27 20:09:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + vdpausink: fix bug where we didn't setup vdpau on a user set window + +2011-03-27 19:47:43 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264dpb.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.c: + vdpau: fixup GstFlowReturn handling + Previously the different decoders would discard errounous GstFlowReturns coming + from downstream. Now we properly return these further upstream so that we + properly error out on eg. negotiation problems. + +2011-03-27 19:40:48 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpau.c: + vdpau: small indentation fix + +2010-09-06 17:42:15 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpaumpegdec: don't ignore return value of gst_base_video_decoder_finish_frame + +2011-03-27 17:42:56 +0100 Tim-Philipp Müller + + * sys/dshowsrcwrapper/gstdshow.cpp: + dshow: fix list iteration code + +2011-03-27 17:22:52 +0100 Tim-Philipp Müller + + * gst/dccp/gstdccpserversink.c: + dccpserversink: fix list iteration code + Fix suboptimal list iteration code, and add some FIXMEs. + +2011-03-26 12:45:24 +0000 Tim-Philipp Müller + + * gst/patchdetect/Makefile.am: + patchdetect: link against libm + Link against libm. Include math-compat.h header. Don't link against + orc, since it's not actually used. + https://bugzilla.gnome.org/show_bug.cgi?id=645711 + +2011-03-26 16:12:18 +1100 Jan Schmidt + + * gst/mpegtsmux/tsmux/tsmux.c: + Use correct clock when checking whether to write a new PCR + The PCR clocks against the 27MHz SCR clock, so check it correctly + to avoid writing the PCR too often. + Partially fixes: #611046 + +2011-03-26 15:58:21 +1100 Jan Schmidt + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + Rewrite M2TS packet output + Make sure we only write the bottom 30 bits of the PCR to the m2ts header. + Don't use floating point computation for it, and remove weird bit fiddling + that messes up the PCR in a way I can't find any + justification/documentation for. + Don't accidentally lose PCR packets from the output. + Fix the description for the m2ts-mode property so it's clear it's a flag, + and which setting does what. + Fixes: #611061 #644429 + Partially fixes: #645006 + +2011-03-26 11:14:01 +1100 Jan Schmidt + + * gst/mpegtsmux/mpegtsmux.c: + Fix a FIXME, and some whitespace/code style bits. + Also, add a new copyright notice for me. + +2011-03-25 22:33:05 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 193b717 to 1ccbe09 + +2011-03-25 14:56:43 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From b77e2bf to 193b717 + +2011-03-25 09:32:30 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From d8814b6 to b77e2bf + +2011-03-25 09:08:49 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 6aaa286 to d8814b6 + +2011-03-25 08:33:37 +0100 Sebastian Dröge + + * gst/aiff/aiffparse.c: + aiffparse: Add float caps to the template caps + +2011-03-24 16:16:20 -0700 David Schleef + + * configure.ac: + * sys/decklink/gstdecklinksrc.cpp: + decklink: Fix win32 build + +2011-03-24 22:32:42 +0200 René Stadler + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: ensure cleanup of pes/section filter helper structures + In particular, the section_filter would not be cleared for a private section + stream, leaking a GstAdapter. Seen on bug #645502. + +2011-03-24 22:10:43 +0200 René Stadler + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: don't leak pad name + As seen on bug #645502. + +2011-03-24 21:46:09 +0200 René Stadler + + * gst/videoparsers/h264parse.c: + h264parse: free PPS NAL buffers on cleanup + Obviously a typo. Fixes bug #645502. + +2011-03-24 21:44:07 +0200 René Stadler + + * gst/videoparsers/h264parse.c: + h264parse: don't leak all NAL buffers + gst_buffer_replace() doesn't steal the ref. Partial fix for bug #645502. + +2011-03-24 18:49:54 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From 6aec6b9 to 6aaa286 + +2011-03-24 14:51:12 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsdemux: fix stream_info descriptor parsing + +2011-03-09 23:06:14 +0530 Arun Raghavan + + * gst/audioparsers/plugin.c: + dcaparse: Bump rank to primary+1 + Seems to work fine with a reasonably wide range of media, so bumping + rank. + +2011-03-24 10:08:59 +0100 Sebastian Dröge + + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + aiffparse: Add support for 32 bit and 64 bit floating point formats + +2011-03-24 09:58:45 +0100 Sebastian Dröge + + * gst/aiff/aiffparse.c: + aiffparse: The SSND header is 16 bytes large, not 8 + 16 bytes + Fixes bug #645568 and playback in pull mode for sample widths > 8 that + are not a multiple of 2 bytes (e.g. 24 bit samples). + +2011-03-24 09:29:06 +0100 Sebastian Dröge + + * gst/aiff/aiffparse.c: + aiffparse: Use gst_util_uint64_scale_ceil() instead of a custom function + +2011-03-24 13:43:01 +0530 Arun Raghavan + + * ext/dts/gstdtsdec.c: + dtsdec: Don't export bitrate if open/variable/lossless + libdca returns the bitrate as 1/2/3 for open/variable/lossless files + respectively. This makes sure we don't emit these values. + +2011-03-24 09:22:56 +0100 Sebastian Dröge + + * ext/celt/gstceltdec.c: + celtdec: Read the additional, optional extra headers from the caps too + +2011-03-24 09:14:10 +0100 Sebastian Dröge + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltdec.h: + celtdec: Get and use streamheaders from the caps if possible + This allows playback of files where the streamheader buffers were + dropped for some reason and also sets the srcpad caps earlier. + +2011-03-23 22:53:56 -0700 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: Revert previous commit + It appears the patch, which I've been carrying around forever, + had been already applied. + +2011-02-20 14:16:18 -0800 David Schleef + + * ext/vp8/gstvp8dec.h: + * ext/vp8/gstvp8enc.h: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: merge utils header into basevideocodec + +2010-12-30 18:25:04 -0800 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: Output element message with frame stats + +2011-02-26 00:28:32 -0800 David Schleef + + * configure.ac: + * gst/patchdetect/Makefile.am: + * gst/patchdetect/gstpatchdetect.c: + * gst/patchdetect/gstpatchdetect.h: + patchdetect: new element + Detects Munsell ColorChecker in a video image and automatically + white balances and color corrects based on the detected values. + This element is only a demonstration at this stage, it needs to + be separated into two elements. + +2011-02-27 00:48:19 -0800 David Schleef + + * configure.ac: + * sys/Makefile.am: + * sys/decklink/DeckLinkAPI.h: + * sys/decklink/DeckLinkAPIDispatch.cpp: + * sys/decklink/LinuxCOM.h: + * sys/decklink/Makefile.am: + * sys/decklink/capture.cpp: + * sys/decklink/capture.h: + * sys/decklink/gstdecklink.cpp: + * sys/decklink/gstdecklinksink.cpp: + * sys/decklink/gstdecklinksink.h: + * sys/decklink/gstdecklinksrc.cpp: + * sys/decklink/gstdecklinksrc.h: + decklink: Add decklink plugin + Source and sink elements for BlackMagic DeckLink SDI cards. + +2011-03-17 17:38:58 -0700 David Schleef + + * configure.ac: + * sys/Makefile.am: + * sys/linsys/Makefile.am: + * sys/linsys/gstlinsys.c: + * sys/linsys/gstlinsyssdisink.c: + * sys/linsys/gstlinsyssdisink.h: + * sys/linsys/gstlinsyssdisrc.c: + * sys/linsys/gstlinsyssdisrc.h: + * sys/linsys/include/asi.h: + * sys/linsys/include/master.h: + * sys/linsys/include/sdi.h: + * sys/linsys/include/sdiaudio.h: + * sys/linsys/include/sdivideo.h: + linsys: Add plugin for Linear Systems SDI boards + +2010-09-14 11:30:33 -0700 David Schleef + + * configure.ac: + * gst/sdi/Makefile.am: + * gst/sdi/gstsdi.c: + * gst/sdi/gstsdidemux.c: + * gst/sdi/gstsdidemux.h: + * gst/sdi/gstsdimux.c: + * gst/sdi/gstsdimux.h: + sdi: Add raw SDI muxing/demuxing elements + +2011-03-17 19:03:29 -0700 David Schleef + + * ext/cog/gstlogoinsert.c: + * tests/check/Makefile.am: + * tests/check/elements/logoinsert.c: + logoinsert: Fix memleaks, add test + +2010-11-15 11:37:12 -0800 David Schleef + + * ext/cog/gstlogoinsert.c: + logoinsert: Add data property + +2011-03-23 15:49:18 +0100 Robert Swain + + * tests/examples/camerabin2/gst-camerabin2-test.c: + gst-camerabin2-test: Fix premature shutdown + We must wait for camerabin2's stop-capture procedures to finish before quitting + the main loop or firing off the next capture. If we get stuck waiting for + camerabin2 to become idle, this is a bug that needs fixing. + +2011-03-23 16:32:19 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Only mark video capture as finished after EOS + Instead of probing the videosink sinkpad for passing EOS, better + to wait for EOS from the bus. + This makes sure the filesink has already processed it and is + ready to close the file. This is used to notify applications + that camerabin2 is idle and can be shut down. + +2011-03-18 15:49:12 +0100 Robert Swain + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + basecamerasrc: camerabin2: wrappercamerabinsrc: Add read-only max-zoom prop + This is not implemented in any of our real sources to which wrappercamerabinsrc + might connect but this is optional and can be implemented at any time. A + limit on the software zoom level using video{crop,scale} would be arbitrary. + +2011-03-23 12:38:36 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst/camerabin2/gstcamerabin2.c: + * tests/check/elements/camerabin2.c: + camerabin2: Improve idle property usage + Use resource warning messages to notify camerabin2 that a capture + as aborted or couldn't be started, making it decrement the + processing counter and making the idle property more reliable. + +2011-03-22 12:04:20 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: No need to force audiosrc to null on stop_capture + Setting the audio source to null isn't needed and it could + make the EOS that is still flowing be dropped if autoaudiosrc + is used because its pads go flushing before the EOS gets pushed + from the real source. + +2011-03-22 08:32:48 -0300 Lauri Lehtinen + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerabinsrc: Check if set preview caps are the same + Checks if the new received preview-caps are equal to what is + already in use, skips the preview-caps setting logic in case + new caps are same as current ones. + +2011-03-15 15:47:21 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Adds another 'idle' test + Adds another test that checks that the idle property works + correctly when bogus start-capture calls are made. + This fails currently, but should remind us of fixing it in + the future by defining a proper error reporting from camera + sources to camerabin2 + +2011-03-15 15:34:31 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Sprinkle some 'idle' property checks + Adds some checks for 'idle' property in camerabin2 tests + +2011-03-15 15:11:01 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Adds new idle property + Adds idle property (just like camerabin1), a boolean that + is true when camerabin2 isn't processing and can be shut down + without losing data. + +2011-03-15 10:50:54 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Adds tests for new image capture properties + Adds tests to check that changing encoder/muxer for image capture + works + +2011-03-15 10:11:43 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adding properties for image capture settings + Adds properties for selecting image encoder and muxer for + image capture + +2011-03-14 14:33:57 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: More debug log + Small refactoring and adding more debug log to encodebin related + paths + +2011-03-14 14:30:36 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: Set preview pipeline NULL + Set preview pipeline to NULL when freed to be able to + recreate it on the following lines + +2011-03-23 22:02:37 +0530 Arun Raghavan + + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + dcaparse: Expose frame size in caps + This exports the size of the frame (number of bytes from one sync point + to the next) as the "frame_size" field in caps. + +2011-03-09 23:03:10 +0530 Arun Raghavan + + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + dcaparse: Expose block size in caps + This sets the "block_size" field on caps as the number of samples + encoded in one frame. + +2011-03-22 20:53:08 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: use running time for synchronization + See also #432612. + +2011-03-22 13:18:03 +0100 Mark Nauwelaerts + + * gst/videoparsers/gsth264parse.c: + h264parse: chain up to parent finalize + +2011-03-22 13:46:42 +0100 Chris E Jones + + * gst/scaletempo/gstscaletempo.c: + scaletempo: Correctly handle newsegment events with stop==-1 + Fixes bug #645420. + +2011-03-22 12:34:20 +0100 Luis de Bethencourt + + * configure.ac: + configure.ac: redundant uses of AC_MSG_RESULT() + cleaned the redundant uses of AC_MSG_RESULT() in configure.ac + +2011-03-18 19:34:57 +0100 Luis de Bethencourt + + * autogen.sh: + autogen: wingo signed comment + +2011-03-21 13:31:15 -0700 David Schleef + + * gst/videofilters/Makefile.am: + * gst/videofilters/gstvideofilter2.c: + * gst/videofilters/gstvideofilter2.h: + * gst/videofilters/gstzebrastripe.c: + * gst/videofilters/gstzebrastripe.h: + zebrastripe: Add new GstVideoFilter2 base class + An experiment. Not completely happy with it. + +2011-03-21 20:40:14 +0200 Mart Raudsepp + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtspacketizer: Handle all ISO8859-x encodings in get_encoding() + ... according to ETSI EN 300 468, "Selection of character table" + +2011-02-21 11:44:01 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: do not try to parse packets containing section data as PES + +2011-02-21 11:42:54 +0100 Janne Grunau + + * gst/mpegtsdemux/gstmpegdefs.h: + * gst/mpegtsdemux/tsdemux.c: + mpegtsdemux: add stream types for DSM CC A, B, C, D + +2011-03-21 18:54:46 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsdemux: fix playback if PMT is seen before PAT + The stream for the PMT pid has to be cleared since the version checking + in the packetizer won't emit the same PMT again otherwise. + +2011-03-21 16:51:16 +0100 Andreas Frisch + + * gst/videoparsers/gsth264parse.c: + h264parse: Set parsed=true in the srcpad caps + Fixes bug #645412. + +2011-03-21 10:38:58 +0100 Edward Hervey + + * ext/mpeg2enc/gstmpeg2enc.cc: + mpeg2enc: Lower the rank to MARGINAL + The rationale is that it can't be properly used right now when using + it to encode mpeg2video because of the needs-to-be-rewritten properties + and format negotiation. Other encoders will negotiate in a much saner + fashion. + One such example is that when you pick mpeg2enc for mpeg2video, the + default value for the 'format' property is "Generic MPEG-1", which is + completely wrong if downstream caps are mpeg2. The whole negotiation + code needs some serious loving before this plugin can be bumped back + up to a higher rank. + +2011-03-16 09:50:34 +0100 Benjamin Gaignard + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: add "frames-dropped" and "frames-rendered" properties + https://bugzilla.gnome.org/show_bug.cgi?id=643469 + +2011-03-18 09:33:26 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Remove some unused variables in the I420 blending function + +2011-03-17 20:19:27 +0200 Raimo Järvi + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Fix using alpha values in blitting. + Use each pixel's own alpha value instead of average alpha value when + calculating color components. Fixes bug #639763. + +2011-03-17 16:34:02 +0000 Tim-Philipp Müller + + * ext/vp8/Makefile.am: + vp8: fix LIBADD order in Makefile.am + +2011-03-16 15:53:13 +0000 Tim-Philipp Müller + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: add FIXME for making the base class use xing seek tables better + +2011-03-17 16:41:52 -0400 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Don't use "sun" as a variable name, breaks on Solaris + Seems like the Solaris compiler has -Dsun=1, so don't use + sun as a variable name + Patch by Tim Mooney + https://bugzilla.gnome.org/show_bug.cgi?id=645053 + +2011-03-17 15:27:39 -0400 Olivier Crête + + * configure.ac: + shm: Check for MSG_NOSIGNAL macro + Don't build the plugin is MSG_NOSIGNAL is not defined + https://bugzilla.gnome.org/show_bug.cgi?id=645053 + +2011-03-16 18:52:24 +0000 Sjoerd Simons + + * sys/shm/gstshmsink.c: + shmsink: Keep shmsink referenced while there are still buffers around + +2011-03-16 18:51:50 +0000 Sjoerd Simons + + * sys/shm/shmpipe.c: + * sys/shm/shmpipe.h: + shm: Allow ShmPipe to save a data pointer for applications + +2011-03-16 18:51:02 +0000 Sjoerd Simons + + * sys/shm/shmpipe.c: + shm: Keep the ShmPipe alive as long as there are blocks left + +2011-03-09 19:34:39 -0500 Olivier Crête + + * sys/shm/gstshmsrc.c: + shmsrc: Only connect to sink in PLAYING in live mode + +2011-03-09 19:34:25 -0500 Olivier Crête + + * sys/shm/gstshmsrc.c: + shmsrc: Keep GstPoll for whole src lifetime + +2011-03-15 09:15:35 -0300 Lasse Laukkanen + + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Add an assertion to preview pipeline generation + Adds an assertion in case the preview pipeline is NULL and also + explicitly initializes preview caps to NULL for clarity. + +2011-03-14 18:25:25 +0100 Sebastian Dröge + + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + dcaparse: Add depth and endianness to the caps + Some decoders can only handle specific endianness or a fixed + depth and this allows better negotiation. + Fixes bug #644208. + +2011-03-14 12:39:23 +0000 Tim-Philipp Müller + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: fix broken pad caps refcount handling + gst_caps_make_writable() takes ownership of the caps passed in, but + the caller doesn't own a ref to the caps here, because GST_PAD_CAPS + doesn't return a ref. Looks like the code relied on a caps leak + elsewhere for this to work properly. + +2011-03-14 12:33:29 +0000 Tim-Philipp Müller + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: don't error out if downstream fails to handle the newsegment event + If downstream doesn't handle the newsegment event, don't error out (esp. + not without posting a proper error message on the bus), but just continue. + If there's a problem, we'll find out when we start pushing buffers. + https://bugzilla.gnome.org/show_bug.cgi?id=644395 + +2011-03-11 14:40:44 +0000 Andreas Frisch + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: remove unused variable + +2011-03-11 18:23:22 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Set queues to silent + Optimize a little by setting queues to silent + +2011-03-11 16:20:52 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Refactoring encodebin usage + Refactor some common code regarding encodebin usage in camerabin2 + +2011-03-11 17:07:03 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Fix number of iteration of tests + There are 3 taglist tests, not 2 + +2011-03-11 10:32:35 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstwrappercamerabinsrc.c: + camerabin2: Some memleak fixes + +2011-03-08 09:43:58 +0100 Robert Swain + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * tests/examples/camerabin2/gst-camerabin2-test.c: + basecamerasrc: wrappercamerabinsrc: camerabin2: Expose/add floating point zoom property + +2011-03-04 15:53:42 +0100 Robert Swain + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Remove dead definition + This definition is unused in this code. + +2011-03-10 11:38:18 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Avoid clearing recording caps + When recording 2 videos in sequence with the same video-capture-caps, + the second video would get a not-negotiated error because the + src caps were being cleared without any intention of + renegotiating it back to the requested capture caps. + This patch avoids this caps reset procedure unless a new + caps was set. + +2011-03-11 14:37:06 +0100 Sebastian Dröge + + * gst/videoparsers/gstdiracparse.c: + diracparse: Add correct template caps and element details + +2011-03-11 10:40:40 +0000 Tim-Philipp Müller + + * tests/examples/camerabin2/Makefile.am: + examples: fix LDADD/LIBS path order for camerabin2 example + +2011-03-11 10:34:23 +0000 Tim-Philipp Müller + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: don't leak element name strings + Don't leak string copy returned by gst_element_get_name(). Also, check + for certain elements by checking the plugin feature / factory name, not + the assigned object name. + +2011-03-11 10:26:01 +0000 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/Makefile.am: + * gst/vmnc/Makefile.am: + build: remove more tarkin/theoraexp build cruft + +2011-03-10 13:39:40 -0800 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/tarkin/Makefile.am: + * ext/tarkin/README: + * ext/tarkin/TODO: + * ext/tarkin/WHAT_THE_HECK_IS_THIS_CODE_DOING: + * ext/tarkin/bitcoder.h: + * ext/tarkin/golomb.h: + * ext/tarkin/gsttarkin.c: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkindec.h: + * ext/tarkin/gsttarkinenc.c: + * ext/tarkin/gsttarkinenc.h: + * ext/tarkin/info.c: + * ext/tarkin/mem.c: + * ext/tarkin/mem.h: + * ext/tarkin/rle.h: + * ext/tarkin/tarkin.c: + * ext/tarkin/tarkin.h: + * ext/tarkin/wavelet.c: + * ext/tarkin/wavelet.h: + * ext/tarkin/wavelet_coeff.c: + * ext/tarkin/wavelet_xform.c: + * ext/tarkin/yuv.c: + * ext/tarkin/yuv.h: + * ext/theora/Makefile.am: + * ext/theora/theoradec.c: + * ext/theora/theoradec.h: + * gst/videofilters/gstzebrastripe.h: + theora,tarkin: Remove ancient unused code + +2011-03-10 16:03:58 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: provide for PTS metadata when so configured + ... and not only when sort-of feeling like it. + In any case, if it turns out all really is in order, + and presumably DTS == PTS, then no ctts will be produced anyway. + +2011-03-10 16:02:42 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: also track original PTS buffer timestamp in reorder dts-method + +2011-03-09 14:53:26 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Force EOS on audio src + We can't rely on audio sources pushing EOS when going PAUSED->READY + because this is a basesrc bahavior and when used inside autoaudiosrc + the ghostpad goes flushing before the real source pushes the EOS, + so it is dropped. + +2011-03-04 06:06:16 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: No need for starting segment + +2011-03-04 06:09:43 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + gstcamerabin2: Set encodebin's videorate and audiorate properties + Listen to encodebin's element-added signal to be able to set + skip-to-first on both audiorates and videorates. + +2011-02-15 14:58:28 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Handle audio elements states + Audio elements are put into bin only when needed, so we need + to be careful with their states as camerabin2 won't manage + them if they are outside the bin. + Also we should reset their pad's flushing status before + starting a new capture. + +2011-01-21 12:47:57 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: tests: Update tests to check for audio streams + Add a check that resulting recorded video files have audio streams. + +2011-01-21 10:56:52 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin: adding audio related properties + Adds 4 audio properties related to audio recording + * audio-src + * mute + * audio-supported-capture-caps + * audio-capture-caps + +2011-01-20 09:34:39 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Adding audio support for video recordings + Adds an audio source and audio capsfilter/queue/convert, creating + a new branch on camerabin2 that is used to feed encodebin with + audio buffers for video recording. + +2011-02-28 15:43:46 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add logging for stop-capture signal + +2011-02-24 18:28:28 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add viewfinder caps related properties + Adds properties to check what caps are supported on the + viewfinder (from the camerasrc viewfinder pad) and another + one to set a caps for the viewfinder. + +2011-02-24 17:42:21 -0300 Lauri Lehtinen + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + basecamerasrc: add virtual function to notify subclass of changing preview caps + Adds a virtual function to basecamerasrc in case subclasses want to be + notified of changing preview caps. This is useful if the subclass wants + to post the preview itself or if it wants to provide a preview buffer + as close to as possible to the user's requested resolution to the + preview generation pipeline. + +2011-02-22 13:10:15 +0200 Teemu Katajisto + + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: add option for setting the wrapper camera source + +2011-02-21 17:04:06 +0200 Teemu Katajisto + + * tests/examples/camerabin2/Makefile.am: + * tests/examples/camerabin2/gst-camerabin2-test.c: + examples: camerabin2: add encoding profile loading + +2011-02-17 14:51:16 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Fix newsegment pushing + Send update newsegments instead of non-update ones + for the video branch when starting recordings + +2011-02-15 14:59:32 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Set some queue's properties + Sets viewfinder queue to leaky and tell image branch + queue to don't care about durations + +2011-02-10 11:50:27 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Ready is enough for forcing a caps change + +2011-02-09 19:14:13 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Check for downstream caps on first captures + Use video_renegotiate and image_renegotiate booleans to make + the videosrc negotiate the capture caps on the first capture because + the caps might be set before wrappercamerabinsrc goes into PLAYING + and pads drop the internal renegotiate event. + This is required as the output-selector is using the 'none' negotiation + mode. + +2011-02-09 19:09:24 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Avoid fixating capture caps + When setting the internal capsfilter caps for capture we should put + the full caps instead of trying to fixate it ourselves. This way we let + the elements (and mostly the source) select the best format instead + of defaulting to what the pad fixation function picks. + +2011-02-09 08:27:59 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Allow free image dimensions + Changes the default width/height of captures so that it will + be autopicked by camerabin2 instead of hardcoding an option + +2011-02-09 08:15:08 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Backport fix from camerabin example + We should only check if the xwindow should be created if we already + parsed the arguments of the program + +2011-02-04 14:53:49 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + camerabin2: Moving preview image properties to basecamerasrc + Moves preview image related properties to basecamerasrc as that + should be present on all camerasrcs + +2011-02-08 15:51:42 +0200 Lasse Laukkanen + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: Fix getting element implementing photography iface + +2011-02-03 12:02:14 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/Makefile.am: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabinpreview.h: + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + * gst/camerabin2/gstwrappercamerabinsrc.h: + camerabin2: Move preview helper functions to basecamerabinsrc + Move preview helper functions to baseacamerabinsrc so they can + be reused by multiple camerabin2 sources. + +2011-02-03 16:58:37 -0300 Thiago Santos + + * tests/examples/camerabin2/.gitignore: + * tests/examples/camerabin2/Makefile.am: + * tests/examples/camerabin2/gst-camerabin2-test.c: + camerabin2: examples: Add gst-camerabin2-test + Adds gst-camerabin2-test example application, similar to + gst-camerabin-test for camerabin. + It is useful for taking pictures and recording videos using + camerabin2 and providing arguments for most of camerabin2 + properties + +2011-02-04 12:36:14 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add viewfinder-sink property + Adds a property to set the viewfinder's sink of camerabin2 + +2011-03-09 13:19:50 +0200 René Stadler + + * gst/fieldanalysis/gstfieldanalysis.c: + fieldanalysis: fix double free() crashes + +2011-03-08 11:19:41 +0000 Byeong-ryeol Kim + + * gst/videofilters/Makefile.am: + videofilters: link to libm + https://bugzilla.gnome.org/show_bug.cgi?id=644176 + +2011-03-07 22:41:30 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: update url for port-groups extension + +2011-03-07 10:36:46 +0100 Sebastian Dröge + + * configure.ac: + soundtouch: The pkg-config file in version 1.5 is called soundtouch + +2011-02-26 16:20:52 -0800 David Schleef + + * configure.ac: + * gst/videofilters/Makefile.am: + * gst/videofilters/gstvideofiltersbad.c: + * gst/videofilters/gstzebrastripe.c: + * gst/videofilters/gstzebrastripe.h: + zebrastripe: New element + Adds zebra stripes to overexposed video. + +2011-03-04 17:37:04 +0100 Edward Hervey + + * ext/Makefile.am: + ext: Always dist the curl directory + Event if we can't build it. Fixes make dist + +2011-03-04 12:11:12 +0100 Edward Hervey + + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/h263parse.c: + videoparsers: Fix unitialized variables + Makes macosx compiler happy + +2011-03-04 12:10:25 +0100 Edward Hervey + + * ext/curl/gstcurlsink.c: + curlsink: Fix print-related issues + +2011-03-04 11:59:44 +0100 Edward Hervey + + * gst/rtpvp8/gstrtpvp8pay.c: + rtpvp8: Fix unitialized variable + Makes macosx compiler happy. + +2011-03-04 09:25:49 +0000 Tim-Philipp Müller + + * gst/fieldanalysis/gstfieldanalysisorc-dist.c: + * gst/fieldanalysis/gstfieldanalysisorc-dist.h: + fieldanalysis: add backup files for compiling without orc + +2011-03-03 00:57:09 +0000 Tim-Philipp Müller + + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/h263parse.c: + * gst/videoparsers/h263parse.h: + h263parse: allocate H263Params struct on the stack + It's flat and not kept around for longer. + +2011-03-03 00:45:11 +0000 Tim-Philipp Müller + + * gst/videoparsers/h263parse.c: + * gst/videoparsers/h263parse.h: + h263parse: minor clean-ups + const-ify some arguments and re-indent header a little. + +2011-02-28 11:51:54 +0100 benjamin gaignard + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: fix sync property default value + +2011-03-02 23:43:42 +0100 Sebastian Dröge + + * configure.ac: + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celtenc: Fix compilation with celt >= 0.11.0 + Fixes bug #643607. + +2010-09-15 17:32:09 +0200 Robert Swain + + * configure.ac: + * gst/fieldanalysis/Makefile.am: + * gst/fieldanalysis/gstfieldanalysis.c: + * gst/fieldanalysis/gstfieldanalysis.h: + * gst/fieldanalysis/gstfieldanalysisorc.orc: + fieldanalysis: Add fieldanalysis element + This element analyses video buffers to identify if they are progressive, + interlaced or telecined and outputs buffers with appropriate flags for a + downstream element (which will be the deinterlace element, after some + forthcoming modifications) to be able to output progressive frames and + adjust timestamps resulting in a progressive stream. + +2011-03-01 11:23:49 +0000 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-mpegtsdemux.xml: + * docs/plugins/inspect/plugin-rtmpsrc.xml: + * docs/plugins/inspect/plugin-rtpvp8.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-videoparsersbad.xml: + docs: update docs for recent changes in git + +2011-03-01 11:16:56 +0000 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-curl.xml: + * ext/curl/gstcurlsink.c: + docs: add new curl plugin and curlsink element to docs + +2011-03-01 10:49:57 +0000 Tim-Philipp Müller + + * configure.ac: + configure: also check for platform socket headers needed by curlsink element + +2011-03-01 10:03:07 +0000 Tim-Philipp Müller + + * ext/curl/gstcurlsink.c: + * ext/curl/gstcurlsink.h: + curlsink: no need for a private instance structure + The entire instance structure is private anyway. + +2011-03-01 09:56:51 +0000 Tim-Philipp Müller + + * ext/curl/gstcurlsink.c: + curlsink: clean up property registration code + Fix some typos, use same style as in all other plugins, avoiding + unnecessary temporary GParamSpec variables; use G_PARAM_SPEC_STATIC_STRINGS. + +2011-02-26 20:21:25 +0000 Tim-Philipp Müller + + * configure.ac: + * ext/Makefile.am: + curl: add configure check and hook up to build system + +2011-02-26 20:20:33 +0000 Patricia Muscalu + + * ext/curl/Makefile.am: + * ext/curl/gstcurl.c: + * ext/curl/gstcurlsink.c: + * ext/curl/gstcurlsink.h: + curl: add libcurl-based sink element + Sink acts as a client and can connect to servers to + upload media. + https://bugzilla.gnome.org/show_bug.cgi?id=641496 + +2011-02-25 14:24:17 +0000 Tim-Philipp Müller + + * ext/jp2k/gstjasperdec.c: + jp2kdec: post proper error when the image's colour space is not supported + https://bugzilla.gnome.org/show_bug.cgi?id=643115 + +2011-02-28 20:19:53 +0100 Mark Nauwelaerts + + * configure.ac: + configure.ac: cygwin/mingw; enable plugin linking to static lib + Useful for DirectX plugin(s). + Fixes #642507. + +2011-02-28 19:58:41 +0100 Mark Nauwelaerts + + * configure.ac: + configure.ac: export plugin description more platform independent + Fixes #642504. + +2011-02-28 18:33:13 +0100 Mark Nauwelaerts + + * common: + Automatic update of common submodule + From 1de7f6a to 6aec6b9 + +2011-02-26 13:53:44 -0800 David Schleef + + * gst/audioparsers/gstaacparse.c: + Revert "aacparse: allow parsed frames on sink pad" + This reverts commit e49b89d5c5a1244fa0dcb8bb4996e38fb9bff9e5. + +2011-02-25 19:59:05 -0800 David Schleef + + * gst/colorspace/gstcolorspace.c: + colorspace: set dithering enum directly + +2011-02-25 19:57:47 -0800 David Schleef + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + colorspace: Add support for r210 + +2011-02-23 17:25:03 -0800 David Schleef + + * gst/audioparsers/gstaacparse.c: + aacparse: allow parsed frames on sink pad + +2011-02-23 17:24:14 -0800 David Schleef + + * gst-libs/gst/baseparse/gstbaseparse.c: + baseparse: make_metadata_writable() fix + +2011-02-24 09:29:51 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + jifmux: tests: Increase bus waiting timeout + Double bus waiting timeout as sometimes the test would fail + because it would timeout and get no messages from the bus. + +2011-02-21 13:24:03 +0000 Tim-Philipp Müller + + * gst-libs/gst/baseparse/gstbaseparse.c: + baseparse: rename GType from GstAudioBaseParseBad to GstBaseParseBad + We use it for video as well now. + +2011-02-21 12:14:59 +0100 Edward Hervey + + * gst/mpegpsmux/mpegpsmux.c: + * gst/qtmux/gstqtmux.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + Revert "Check that collectpads exists before removing pad" + This reverts commit 6d8740476ccd3a3498dc4f18c19733643825c7b8. + Depends on a core commit that was reverted + +2011-02-20 23:57:19 -0800 David Schleef + + * gst/mpegpsmux/mpegpsmux.c: + * gst/qtmux/gstqtmux.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + Check that collectpads exists before removing pad + The core now calls release pad from finalize, at which point + the collectpads might have already been freed. + +2011-02-20 23:01:30 -0800 David Schleef + + * gst/colorspace/colorspace.c: + colorspace: Fix YUV->RGB matrixing + +2011-02-20 22:43:56 -0800 David Schleef + + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + colorspace: Add dithering + Dithering only happens when a 16-bit-per-channel format is + involved. + +2011-01-11 10:32:47 +0000 Vincent Penquerc'h + + * ext/xvid/gstxviddec.c: + xviddec: bodge to avoid crashes + It seems xvidcore overreads its input buffer, so a nasty workaround + is to allocate some more memory (16 bytes seem to be enough). + There is no apparent image corruption with these extra bytes set to 0, + valgrind is much happier, and the crashes go away. + It is ugly, and slower though. But then, xviddec is currently + not autoplugged for playback anyway. + https://bugzilla.gnome.org/show_bug.cgi?id=334107 + +2011-02-20 14:14:27 -0800 David Schleef + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: fix a few formats + +2011-02-19 13:12:41 -0800 David Schleef + + * configure.ac: + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + colorspace: Add 16-bit-per-channel handling + +2011-02-19 13:13:13 -0800 David Schleef + + * gst/colorspace/gstcolorspace.c: + colorspace: Fix memleak + +2011-02-19 13:07:39 -0800 David Schleef + + * ext/schroedinger/Makefile.am: + * ext/schroedinger/gstschro.c: + * ext/schroedinger/gstschroparse.c: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideoparse.c: + * gst-libs/gst/video/gstbasevideoparse.h: + basevideocodec: remove parser in favor of baseparse + +2011-02-18 15:24:54 +0000 Tim-Philipp Müller + + * Makefile.am: + * gst/videoparsers/Makefile.am: + videoparsers: change plugin filename from libgsth263parse* to libgstvideoparsersbad* + Due to a registry bug you may need to manually remove your + registry file to make the new plugin appear with >0 features. + +2011-02-18 15:17:17 +0000 Tim-Philipp Müller + + * gst/mpegtsdemux/mpegtspacketizer.c: + mpegtspacketizer: fix log message printf format + +2011-02-18 15:05:31 +0200 Stefan Kost + + * gst-libs/gst/baseparse/gstbaseparse.c: + baseparse: trim trailing whitespace + +2011-02-18 15:05:03 +0200 Stefan Kost + + * gst-libs/gst/baseparse/gstbaseparse.c: + baseparse: use delta-unit flags instead of none + +2011-02-18 15:00:05 +0200 Stefan Kost + + * tests/examples/indexing/indexmpeg.c: + indexing-example: use proper signal names + +2011-02-18 09:40:00 +0100 Olivier Aubert + + * ext/rsvg/gstrsvgoverlay.c: + rsvgoverlay: allow negative values for x/y/width/height + +2011-02-18 12:39:08 +0000 Tim-Philipp Müller + + * gst/videoparsers/Makefile.am: + videoparsers: fix build + Add includes and link against new libgstbaseparse in the + build tree. + +2011-02-17 14:32:46 -0800 David Schleef + + * gst/mpegtsdemux/Makefile.am: + mpegtsdemux: Fix disting of headers + +2011-02-17 13:22:28 -0800 David Schleef + + * gst-libs/gst/baseparse/gstbaseparse.h: + baseparse: update documentation for API changes + +2010-10-13 16:12:02 -0700 David Schleef + + * tests/check/Makefile.am: + * tests/check/elements/parser.c: + tests: fix baseparse test + +2010-10-09 15:08:39 -0700 David Schleef + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/dirac_parse.c: + * gst/videoparsers/dirac_parse.h: + * gst/videoparsers/gstdiracparse.c: + * gst/videoparsers/gstdiracparse.h: + * gst/videoparsers/plugin.c: + videoparsers: Add dirac parser + +2011-02-17 13:20:46 -0800 David Schleef + + * tools/gst-element-maker: + element-maker: do test build with -fPIC + +2010-10-09 15:06:12 -0700 David Schleef + + * tools/element-templates/baseparse: + element-maker: Add baseparse template + +2010-10-13 15:39:55 -0700 David Schleef + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/baseparse/Makefile.am: + * gst-libs/gst/baseparse/gstbaseparse.c: + * gst-libs/gst/baseparse/gstbaseparse.h: + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstaacparse.h: + * gst/audioparsers/gstac3parse.h: + * gst/audioparsers/gstamrparse.h: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + * gst/audioparsers/gstdcaparse.h: + * gst/audioparsers/gstflacparse.h: + * gst/audioparsers/gstmpegaudioparse.h: + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstbaseparse.c: + * gst/videoparsers/gstbaseparse.h: + * gst/videoparsers/gsth263parse.h: + * gst/videoparsers/gsth264parse.h: + * gst/videoparsers/h263parse.h: + baseparse: Create baseparse library + +2011-02-16 21:17:57 -0800 David Schleef + + * gst/dvdspu/gstspu-vobsub-render.c: + dvdsubdec: make up clut values if they weren't set + +2010-12-04 19:55:32 -0800 David Schleef + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: fix release_pad + Remove bogus freeing of pad element_private data that we + never set (collectpads uses it, which causes confusion here). + Also, check that our collectpads instance exists before using + it. Partial fix for #636011. + +2011-02-17 21:33:56 +0100 Janne Grunau + + * gst/mpegtsdemux/mpegtsbase.c: + mpegtsdemux: use G_GUINT64_FORMAT as format specifier for guint64 + fixes compilation on 32bit + +2011-02-15 18:12:02 -0800 David Schleef + + * gst/colorspace/gstcolorspace.c: + colorspace: Fix memory leak + +2011-02-10 12:35:47 +0100 Janne Grunau + + * gst/mpegtsdemux/gstmpegdefs.h: + * gst/mpegtsdemux/gstmpegdesc.c: + * gst/mpegtsdemux/gstmpegdesc.h: + mpegtsdemux: relicense gstmpegdefs.h, gstmpegdesc.h and gstmpegdesc.c to LGPL only + with permission from the license header: + """ + This library is licensed under 2 different licenses and you + can choose to use it under the terms of either one of them. The + two licenses are the MPL 1.1 and the LGPL. + """ + +2011-02-16 17:57:42 +0100 Janne Grunau + + * configure.ac: + * gst-plugins-bad.spec.in: + * gst/mpegtsdemux/Makefile.am: + * gst/mpegtsdemux/TODO: + * gst/mpegtsdemux/gstmpegdefs.h: + * gst/mpegtsdemux/gstmpegdesc.c: + * gst/mpegtsdemux/gstmpegdesc.h: + * gst/mpegtsdemux/gsttsdemux.c: + * gst/mpegtsdemux/mpegtsbase.c: + * gst/mpegtsdemux/mpegtsbase.h: + * gst/mpegtsdemux/mpegtspacketizer.c: + * gst/mpegtsdemux/mpegtspacketizer.h: + * gst/mpegtsdemux/mpegtsparse.c: + * gst/mpegtsdemux/mpegtsparse.h: + * gst/mpegtsdemux/tsdemux.c: + * gst/mpegtsdemux/tsdemux.h: + mpegtsdemux: add MPEG TS demuxer rewrite from Edward Hervey + with contributions from Miquel Angel Farre Guiu and Zaheer Abbas Merali + +2011-02-17 14:12:43 +0100 Mark Nauwelaerts + + * gst/videoparsers/gstbaseparse.c: + baseparse: tune QUERY_SEEKING response + Even if we currently do not have a duration yet, assume seekable if + it looks like we'll likely be able to determine it later on + (which coincides with needed information to perform seeking). + +2011-02-07 14:46:57 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: tune QUERY_SEEKING response + Even if we currently do not have a duration yet, assume seekable if + it looks like we'll likely be able to determine it later on + (which coincides with needed information to perform seeking). + Fixes #641047. + +2011-02-17 12:28:56 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: remove extraneous buffer unref + +2011-02-16 15:29:29 +0100 Sebastian Dröge + + * Makefile.am: + * tests/icles/Makefile.am: + * tests/icles/equalizer-test.c: + icles: Completely remove equalizer-test from -bad, it's in -good now + +2011-02-16 15:23:50 +0100 Sebastian Dröge + + * tests/icles/equalizer-test.c: + equalizer-test: Initialize debug category after gst_init() to fix segfault + +2011-02-14 12:53:49 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From f94d739 to 1de7f6a + +2011-02-14 12:14:12 +0200 Stefan Kost + + * docs/plugins/Makefile.am: + docs: remove duplicated rule from Makefile.am + This causes a make warning and might even cause dist-failure. Other modules + don't need to override the target either and if we can fi it in + common/gtk-doc-plugins.mak. + +2011-02-14 11:48:34 +0200 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: add rsvg plugin to the docs + +2011-02-14 11:42:52 +0200 Stefan Kost + + * ext/rsvg/gstrsvgdec.c: + rsvgdec: add basic doc-blob + +2011-02-11 17:59:31 +0100 Olivier Aubert + + * ext/rsvg/gstrsvgoverlay.c: + * ext/rsvg/gstrsvgoverlay.h: + rsvgoverlay: implement x/y/width/height (absolute and relative) positioning and dimensioning + Signed-off-by: Olivier Aubert + +2011-02-10 16:00:03 +0200 Teemu Katajisto + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + camerabin: application element memory leak fixes + If videobin/imagebin was never set to READY state the ownership + of elements created and set by application were never taken by + bin and therefore gst_object_sink is called for these elements + before unreffing (they may still be in floating state and not + unreffed properly without sinking first) + +2011-02-10 10:35:18 +0800 Hu Gang + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photography interface: update the noise_reduction type from guint to GstPhotographyNoiseReduction + https://bugzilla.gnome.org/show_bug.cgi?id=616814 + +2011-02-08 23:39:24 +0530 Arun Raghavan + + * gst/audioparsers/gstbaseparse.c: + * gst/videoparsers/gstbaseparse.c: + baseparse: Update min/max bitrate before first posting them + This avoids posting an initial min-bitrate of G_UINTMAX and max-bitrate + of 0. + https://bugzilla.gnome.org/show_bug.cgi?id=641857 + +2011-02-08 23:50:13 +0530 Arun Raghavan + + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstmpegaudioparse.h: + mpegaudioparse: Post CBR bitrate as nominal bitrate + Even if VBR headers are missing, we can't guarantee that a stream is in + fact a CBR stream, so it's safer to let baseparse calculate the average + bitrate rather than assume a CBR stream. However, in order to make + /some/ metadata available before the requisite number of frames have + been parsed, this posts the bitrate from the non-VBR headers as the + nominal bitrate. + https://bugzilla.gnome.org/show_bug.cgi?id=641858 + +2011-02-04 01:00:55 -0200 Luciana Fujii Pontello + + * gst/camerabin/gstcamerabin.c: + camerabin: Always take photo when preview-caps is set + When filename is not set, but preview-caps is set, take the photo and + send its preview. + +2011-01-26 11:49:48 -0200 Luciana Fujii Pontello + + * gst/camerabin/gstinputselector.c: + camerabin: Events with select-all in input-selector + When select-all was set, input-selector wasn't handling upstream events. + Now input-selector forwards the event to all of its sink pads. This + changes the input-selector internal to camerabin until it is replaced + with a better solution. + +2011-02-07 23:17:55 +0100 Mark Nauwelaerts + + * sys/directdraw/gstdirectdrawsink.c: + directdrawsink: avoid aspect-ratio borders overlying other windows + Fixes #632056. + +2011-02-07 22:47:34 +0100 Mark Nauwelaerts + + * sys/directdraw/gstdirectdrawsink.c: + directdrawsink: avoid rendering to invalid area + Based on patch by Havard Graff + Fixes #594280. + +2011-02-08 11:24:59 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Do not re-set the clock if it is null + Avoids not needed work and doesn't assert when trying to + unref the null reference + +2011-02-07 09:50:22 +0200 Teemu Katajisto + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: fix --no-xwindow option handling in gst-camerabin-test + --no-window flag is false by default and selection based on the option whether + to create XWindow is done before options are parsed. Therefore XWindow is never + created. + https://bugzilla.gnome.org/show_bug.cgi?id=641712 + +2010-09-06 14:10:11 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstamrparse.c: + amrparse: a valid amr-wb frame should not have reserved frame type index + See #639715. + +2011-02-07 14:05:34 +0100 Mark Nauwelaerts + + * configure.ac: + configure.ac: set GST_LIB_LDFLAGS + Aligns GST_LIB_LDFLAGS with e.g. -base to arrange for proper exports in libs. + +2011-01-12 17:13:07 +0200 Stefan Kost + + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin2/Makefile.am: + * tests/examples/camerabin2/gst-camera2.c: + camerabin-tests: fix lookup of UI files + These are uninstalled examples. Pass $srcdir to cpp to build the correct + location for the UI file. + +2011-02-04 09:08:26 +0100 Alexey Fisher + + * ext/vp8/gstvp8enc.c: + vp8enc: Add description for bitrate units. + +2011-02-03 15:22:51 -0300 Thiago Santos + + * gst/camerabin2/gstimagecapturebin.c: + imagecapturebin: Fix property setting + Set the property on the child and not on itself causing infinite + looping + +2011-02-01 11:20:25 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Improve preview checking + +2011-02-01 11:19:53 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Fix preview messages + Image previews where being posted in sync with the buffers + timestamps, this makes no sense as previews should be posted ASAP. + Also adds some debugging messages. + +2011-02-01 11:19:29 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + wrappercamerabinsrc: Handle src state change to avoid losing timestamps + Camerabin2 uses state changes to force the source to renegotiate its + caps to the capture formats. The state changes makes the source lose + its clock and base_time, causing it to stop timestamping the buffers. + We still need a proper way to make sources renegotiate its caps, so this + patch is a hack to make the source continue timestamping buffers even + after changing state. The patch works by getting the clock and base + time before doing the state change to NULL and setting them back + after putting it to PLAYING again. It also cares to drop the first + new segment after this state change. + +2011-01-27 15:35:14 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: preview filter tests + Adds tests to the preview-filter property of camerabin2 + +2011-01-27 14:39:19 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + camerabin2: Add preview-filter property + Adds a property to select a custom element for preview pipeline + buffers processing + +2011-01-27 10:19:42 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Add tests for custom filters + Adds tests to check that custom filters elements receive buffers + +2011-01-26 15:27:19 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add custom filter properties + Adds custom filter properties for camerabin2. Custom filters + can be added to video/image/preview branches. + +2011-02-03 16:24:24 +0100 Edward Hervey + + * gst/camerabin/camerabinpreview.c: + camerabin: Initialize variables + Makes compilers happy + +2011-02-02 18:41:39 +0000 Tim-Philipp Müller + + * sys/dvb/gstdvbsrc.c: + dvbsrc: fix up enum nick names + https://bugzilla.gnome.org/show_bug.cgi?id=591651 + +2011-01-31 17:24:24 +0100 Mark Nauwelaerts + + * gst/dccp/gstdccp.c: + * gst/dccp/gstdccp_common.h: + dccp: use socklen_t where appropriate rather than specific type + In particular, fixes Cygwin build where socklen_t is defined as int + in line with native win32 api definition. + +2011-02-01 20:01:13 +0000 Tim-Philipp Müller + + * gst/rtpvp8/Makefile.am: + rtpvp8: also link against libgstbase-0.10 for adapter and bit reader API + https://bugzilla.gnome.org/show_bug.cgi?id=641178 + +2011-02-01 14:40:54 +0000 Tim-Philipp Müller + + * configure.ac: + * gst/id3tag/id3tag.c: + id3mux: map new GST_TAG_ENCODED_BY to ID3v2 TENC frame + https://bugzilla.gnome.org/show_bug.cgi?id=627268 + +2011-01-31 17:45:19 +0000 Tim-Philipp Müller + + * gst/videoparsers/Makefile.am: + videoparsers: dist h264parse.h, fixing make distcheck + Spotted by Nathanael D. Noblet + +2011-01-14 10:19:28 +0200 Teemu Katajisto + + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinpreview.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: optimize setting new caps for preview image pipeline + Avoid re-creating and linking of preview image pipeline when + setting new preview image caps. Backported from camerabin2. + https://bugzilla.gnome.org/show_bug.cgi?id=639502 + +2011-01-30 17:08:11 +0000 Tim-Philipp Müller + + * gst/rtpvp8/Makefile.am: + rtpvp8: fix LIBS and CFLAGS order in Makefile.am + +2011-01-23 17:02:38 +0000 Sjoerd Simons + + * gst/rtpvp8/gstrtpvp8depay.c: + rtpvp8depay: Accept packets with only one byte of data + When fragmenting partions it can happen that an RTP packet only caries 1 + byte of RTP data. + +2011-01-23 16:42:17 +0000 Sjoerd Simons + + * gst/rtpvp8/gstrtpvp8pay.c: + * gst/rtpvp8/gstrtpvp8pay.h: + rtpvp8pay: Treat the frame header just like any other partition + When setting up the initial mapping just act as if the global frame + information is another partition. This saves special-casing it later in + the actual packetizing code. + +2010-05-16 17:23:17 +0100 Sjoerd Simons + + * configure.ac: + * gst/rtpvp8/Makefile.am: + * gst/rtpvp8/gstrtpvp8.c: + * gst/rtpvp8/gstrtpvp8depay.c: + * gst/rtpvp8/gstrtpvp8depay.h: + * gst/rtpvp8/gstrtpvp8pay.c: + * gst/rtpvp8/gstrtpvp8pay.h: + rtpvp8: Add simple payloaders and depayloaders for VP8 + Minimal implementation of http://www.webmproject.org/code/specs/rtp/, + version 0.3.2 + +2011-01-28 12:38:19 +0100 Mark Nauwelaerts + + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gsth264parse.c: + * gst/videoparsers/gsth264parse.h: + * gst/videoparsers/h264parse.c: + * gst/videoparsers/h264parse.h: + * gst/videoparsers/plugin.c: + videoparsers: add h264parse + Functionally equivalent to (legacy)h264parse and re-uses the latter's low + level NAL parsing, but otherwise based on GstBaseParse, and replacing + some property configuration with caps negotiation. + +2011-01-27 18:20:13 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: rename to legacyh264parse + +2011-01-27 18:16:14 +0100 Mark Nauwelaerts + + * configure.ac: + * gst/h263parse/Makefile.am: + * gst/h263parse/gstbaseparse.c: + * gst/h263parse/gstbaseparse.h: + * gst/h263parse/gsth263parse.c: + * gst/h263parse/gsth263parse.h: + * gst/h263parse/h263parse.c: + * gst/h263parse/h263parse.h: + * gst/videoparsers/Makefile.am: + * gst/videoparsers/gstbaseparse.c: + * gst/videoparsers/gstbaseparse.h: + * gst/videoparsers/gsth263parse.c: + * gst/videoparsers/gsth263parse.h: + * gst/videoparsers/h263parse.c: + * gst/videoparsers/h263parse.h: + * gst/videoparsers/plugin.c: + h263parse: move to videoparsers and separate plugin registration + +2011-01-27 18:03:50 +0100 Mark Nauwelaerts + + * gst/h263parse/gstbaseparse.c: + * gst/h263parse/gstbaseparse.h: + * gst/h263parse/gsth263parse.c: + h263parse: update to latest baseparse + +2011-01-06 12:29:34 +0100 Mark Nauwelaerts + + * gst/h263parse/Makefile.am: + * gst/h263parse/gsth263parse.c: + * gst/h263parse/gsth263parse.h: + * gst/h263parse/h263parse.c: + * gst/h263parse/h263parse.h: + h263parse: shuffle code to untangle h263parse and parameter parsing + +2011-01-06 12:34:12 +0100 Mark Nauwelaerts + + * gst/h263parse/gsth263parse.c: + * gst/h263parse/gsth263parse.h: + * gst/h263parse/h263parse.c: + h263parse: provide for proper debug category, min frame size and code style + +2010-12-10 16:40:44 +0100 Mark Nauwelaerts + + * gst/h263parse/gsth263parse.c: + h263parse: remove redundant get_caps + .. as src pad already set to use fixed_caps + +2010-12-10 16:26:27 +0100 Mark Nauwelaerts + + * gst/h263parse/gsth263parse.c: + * gst/h263parse/gsth263parse.h: + h263parse: simplify valid_frame parsing + ... considering that baseparse takes care of skipping etc + +2010-05-14 02:08:03 +0530 Arun Raghavan + + * configure.ac: + * gst/h263parse/Makefile.am: + * gst/h263parse/gstbaseparse.c: + * gst/h263parse/gstbaseparse.h: + * gst/h263parse/gsth263parse.c: + * gst/h263parse/gsth263parse.h: + * gst/h263parse/h263parse.c: + h263parse: Add an h263parse element + This adds an h263parse element for parsing H.263 streams, breaking them + up into frame-sized buffers, and exporting metadata such as profile and + level. + https://bugzilla.gnome.org/show_bug.cgi?id=622276 + +2011-01-27 16:52:34 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: improve handling of dependent substream frames + In particular, timestamps of these should track main-stream timestamps. + +2011-01-21 14:53:39 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: tune default duration estimate update interval + Rather than a fixed default frame count, estimate frame count to aim for + an interval duration depending on fps if available, otherwise use old + fixed default. + +2011-01-14 15:16:04 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: reverse playback; mind keyframes for fragment boundary + +2011-01-13 15:26:21 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstamrparse.c: + amrparse: properly check for sufficient available data prior to access + +2011-01-12 14:40:37 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: ensure non-empty candidate frames + +2011-01-11 15:24:23 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: clarify some debug statements + +2011-01-11 15:24:02 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: properly track upstream timestamps + ... rather than with a delay. + +2011-01-11 15:23:29 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: need proper frame duration to obtain sensible frame bitrate + +2011-01-11 15:22:51 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: proper initial values for index tracking variables + +2011-01-11 12:05:13 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: arrange for consistent event handling + +2011-01-10 16:59:59 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.h: + baseparse: header style cleaning + +2011-01-10 17:07:38 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: provide some more initial frame metadata in parse_frame + ... and document accordingly. + +2011-01-10 16:56:36 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + * gst/audioparsers/gstflacparse.c: + baseparse: refactor passthrough into format flags + Also add a format flag to signal baseparse that subclass/format can provide + (parsed) timestamp rather than an estimated one. In particular, such "strong" + timestamp then allows to e.g. determine duration. + +2011-01-10 15:34:48 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstmpegaudioparse.c: + baseparse: introduce a baseparse frame to serve as context + ... and adjust subclass parsers accordingly + +2011-01-07 16:39:51 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: restrict duration scanning to pull mode and avoid extra set_caps call + +2011-01-07 15:58:49 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: update some documentation + Also add some more debug. + +2011-01-06 11:41:44 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: allow increasing min_size for current frame parsing only + Also check that subclass actually either directs to skip bytes or + increases expected frame size to avoid going nowhere in bogus + indefinite looping. + +2011-01-14 15:26:37 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baesparse: fix refactor regression in loop based parsing + +2011-01-06 11:16:56 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: pass all available data to subclass rather than minimum + Also reduce some adapter calls and add a few debug statements. + +2010-12-10 15:59:49 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: fix reverse playback handling + +2010-12-10 14:56:13 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: minor typo and debug statement cleanup + +2010-12-10 14:40:05 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: reduce locking + ... which is either already mute and/or implicitly handled by STREAM_LOCK. + +2011-01-27 17:32:49 +0100 Sebastian Dröge + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/h264/gstvdph264dec.c: + vdpau: Initialize some variables to make gcc 4.6 happy + +2011-01-27 17:29:12 +0100 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Initialize some variables to make gcc 4.6 happy + +2011-01-26 18:45:56 +0000 Tim-Philipp Müller + + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + jp2kdec, jp2kenc: add support v308 (4:4:4 YUV) + Because we can. + +2011-01-26 14:27:21 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Use the correct for limit + There are 3 taglists to be tested, not 2 + +2011-01-26 11:40:43 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstwrappercamerabinsrc.c: + camerabin2: Do not forget to unref some stuff + Cleanup properly by unrefing the encoding profile and preview caps + +2011-01-26 10:54:53 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstwrappercamerabinsrc.c: + camerabin2: Add names to some elements + Adds names to instances of some elements to make debugging easier + +2011-01-25 18:10:18 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Handle videosink states more carefully + When going to ready, camerabin2 could create an empty file + if the videosink was put to ready. This patch only puts videosink + to ready on the PAUSED_TO_READY state change if it is on PAUSED + or PLAYING. + +2011-01-14 14:08:38 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: avoid loop in frame locating interpolation + +2011-01-24 23:32:30 -0300 Thiago Santos + + * ext/rsvg/gstrsvgoverlay.c: + rsvgoverlay: Do not segfault on unexistent files + When passing an unexistent file to rsvgoverlay it would + crash because the svg loading would fail without setting + an error. + This patch makes it check if the handle was actually created + and logs an error in case it didn't. Maybe it should post an + error to the bus, but the previous error handling didn't, so + I just followed the same logic. + +2011-01-24 18:37:12 -0300 Thiago Santos + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: add timing printing for preview image + Measure and print the time taken to generate preview image. And + fix a typo + +2011-01-24 18:36:58 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Remove unused macro + +2011-01-12 16:26:19 +0200 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: Don't set default values for GstPhotography interface settings + Don't set any default values for source element GstPhotography interface + settings, source elements should have sane defaults themselves. + Also, setting scene-mode is tricky as it is a superset of other GstPhotography + settings. This might cause problem with defaults e.g. setting scene-mode to + 'night' may configure flash-mode as 'on' by definition, and after that + we don't want to override this flash-mode setting with gst-camerabin-test default + value. Moreover, user needs have an option to set scene mode first and then force + some individual setting to a different value from the scene-mode definition. + https://bugzilla.gnome.org/show_bug.cgi?id=639841 + +2011-01-24 17:46:49 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Check the start time of buffers + Be careful when trying to create a newsegment event to avoid + start times of -1 from invalid buffer timestamps + +2011-01-11 15:52:03 +0000 Vincent Penquerc'h + + * gst/dvdspu/gstspu-vobsub-render.c: + dvdspu: don't write clipped lines to the output buffer + We may not increment the output pointer, but it'll still be just + off the end of the allocated area. + https://bugzilla.gnome.org/show_bug.cgi?id=602847 + +2011-01-19 15:07:25 -0300 Thiago Santos + + * gst/camerabin2/PORTING: + camerabin2: Update porting file + Adds porting information about using encodebin on camerabin2 + +2011-01-14 08:12:25 -0300 Thiago Santos + + * gst/camerabin2/PORTING: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstimagecapturebin.c: + camerabin2: Add image-done message + Post an image-done message when a new image is saved to disk + +2011-01-11 14:50:48 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * tests/check/Makefile.am: + * tests/check/elements/camerabin2.c: + camerabin2: Implement tagsetter interface + +2011-01-11 10:29:48 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Add preview image to tests + Adds tests for checking that preview images are posted with + the correct caps on tests + +2011-01-11 09:12:24 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add a property to select the encoding profile + Adds a video-profile to allow selecting which encoding profile + to use for video recordings + +2011-01-11 08:44:41 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstplugin.c: + * gst/camerabin2/gstvideorecordingbin.c: + * gst/camerabin2/gstvideorecordingbin.h: + * tests/check/Makefile.am: + * tests/check/elements/videorecordingbin.c: + camerabin2: Removing videorecordingbin + Removing videorecordingbin as we now use encodebin for it + +2010-12-27 11:29:42 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Move to encodebin + +2011-01-10 15:19:52 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Set output-selector pad-negotiation-mode to none + Use output-selector none negotiation mode as it was the default before + the last changes. This likely needs to be fixed to use 'active' on + camerabin2 + +2011-01-10 15:19:04 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Handle state change failures + When its internal element fails to change state, don't act as + if succeeded. + +2010-12-30 00:27:03 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + camerabin2: Implement previewing + Implement previewing functionality using 2 properties. A boolean + (post-previews) that indicates if previews should be posted, and a + GstCaps (preview-caps) to provide the desired preview caps. + wrappercamerabinsrc implements previewing by supplying the captured + image to a pipeline to adapt it to the required caps before posting. + +2010-12-30 00:26:07 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/Makefile.am: + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + camerabin2: Add methods for preview image message posting + Adds a helper struct and functions for implementing a preview message + in camerabin2. + +2010-12-29 23:48:31 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: tests: Use mainloops + Use mainloops instead of sleeps to read bus messages and catch + errors. + +2010-12-29 14:12:06 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Use drop_eos function from camerabingeneral + There was already a event probe function for dropping EOS on + camerabingenereal, so use that instead of replicating the code + +2011-01-24 11:55:41 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + * tests/check/elements/imagecapturebin.c: + tests: camerabin2: imagecapturebin2: fix warnings + Warnings passed me by on the last commits to camerabin2 tests, + fixing them. + +2011-01-24 11:05:41 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + tests: camerabin2: Only run a test if -good 0.10.27 is present + A camerabin2 tests depends on the commit + dcbba0932dc579abd6aab4460fa1a416374eda1b for jpegenc on -good + that was released on 0.10.27. + This patch makes it check for this version before running the + test. + +2011-01-24 10:08:17 -0300 Thiago Santos + + * tests/check/elements/imagecapturebin.c: + tests: imagecapturebin: Only run a test if -good is 0.10.27 or newer + One test on imagecapturebin requires dcbba0932dc579abd6aab4460fa1a416374eda1b + on good that was released on 0.10.27. + https://bugzilla.gnome.org/show_bug.cgi?id=640286 + +2011-01-18 17:31:06 -0300 Thiago Santos + + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: add names for more elements + +2011-01-24 11:18:29 +0000 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * win32/common/config.h: + Back to development + +=== release 0.10.21 === + +2011-01-21 21:13:22 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.21 + +2011-01-19 20:00:13 -0800 David Schleef + + * tools/gst-element-maker: + element-maker: Fix handling of debug category + +2011-01-19 18:26:30 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: mind gst_buffer_unref not liking NULL + Fixes #639950. + +2011-01-18 18:18:03 -0300 Thiago Santos + + * gst/mxf/mxfdemux.c: + mxfdemux: Fix unitialized variable warning + +2011-01-18 13:00:11 +0000 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * win32/common/config.h: + 0.10.20.4 pre-release + +2011-01-14 16:30:11 -0300 Thiago Santos + + * gst/audioparsers/gstbaseparse.c: + audioparsers: baseparse: Be careful to not lose the event ref + Don't unref the event if it hasn't been handled, because the caller + assumes it is still valid and might reuse it. + I ran into this problem when transcoding an AVI (with mp3 inside) + to gpp. + https://bugzilla.gnome.org/show_bug.cgi?id=639555 + +2011-01-13 11:28:32 -0300 Thiago Santos + + * tests/check/elements/qtmux.c: + test: qtmux: Tests qtmux reuse + Forces the use of qtmux after it has been put to PLAYING and back + to NULL once + https://bugzilla.gnome.org/show_bug.cgi?id=639338 + +2011-01-13 15:27:36 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: set src pads when starting file + ... rather than at _init time, so they are also available following a + pad (de)activation cycle. + https://bugzilla.gnome.org/show_bug.cgi?id=639338 + +2011-01-12 16:39:22 +0000 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + * ext/kate/gstkateutil.c: + kate: ensure the kate pad does not shoot ahead of the video pad + Sync both pads by waiting in the kate chain function. + Do not reset our internal segment from segment updates, in order + to be able to map video running time to kate running time, to + give libtiger the timestamp it expects. This allows us to use + running time to sync to video, which is The Right Way. + https://bugzilla.gnome.org/show_bug.cgi?id=600929 + +2011-01-13 18:35:15 -0200 Luciana Fujii Pontello + + * gst/camerabin/gstcamerabin.c: + camerabin: Enable conversion flags + Camerabin default should just work, so we need to enable audio, image + and video conversions. + https://bugzilla.gnome.org/show_bug.cgi?id=639456 + +2011-01-13 17:10:13 +0000 Tim-Philipp Müller + + * gst/audioparsers/gstdcaparse.c: + dcaparse: fix sync word for 14-bit little endian coding + Fix copy'n'paste bug that made us look for the raw little endian + sync word twice instead of looking for the 14-bit LE sync word + as well. Fixes parsing of such streams (see #636234 for sample file). + +2011-01-13 16:27:04 +0000 Tim-Philipp Müller + + * gst/audioparsers/gstbaseparse.c: + docs: minor baseparse docs/comment fixes + Remove copy'n'paste leftovers. + +2011-01-13 13:36:09 +0200 Teemu Katajisto + + * gst/camerabin/gstcamerabin.c: + camerabin: set pad-negotiation-mode to active for output-selector + Fixes #639413. + +2011-01-12 16:55:07 +0200 Stefan Kost + + * gst/asfmux/gstasfmux.c: + asfmux: use g_error_free instead of g_free + +2011-01-12 16:50:51 +0200 Stefan Kost + + * tests/examples/camerabin2/gst-camera2.c: + camerabin2: use g_error_free instead of g_free + +2011-01-12 11:57:29 +0100 Edward Hervey + + * gst/y4m/gsty4mdec.c: + y4mdec: Default colorspace is I420 + https://bugzilla.gnome.org/show_bug.cgi?id=639296 + +2011-01-11 23:44:51 +0000 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.20.3 pre-release + +2011-01-11 15:50:52 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From e572c87 to f94d739 + +2011-01-10 19:11:22 +0100 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtspacketizer: Don't forget the GType when using caps_new_simple() + +2011-01-10 16:36:45 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From ccbaa85 to e572c87 + +2011-01-10 14:54:10 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 46445ad to ccbaa85 + +2011-01-10 11:25:47 +0000 Tim-Philipp Müller + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsdemux: fix silly way of creating caps + +2011-01-10 11:18:52 +0000 Karol Sobczak + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsdemux: fix re-syncing on invalid data after seek + Or possibly even at startup. If we couldn't find a sync within + the first few bytes, we'd just push more data into the adapter + but never discard any of the invalid data at the beginning, so + would never be able to re-sync. + https://bugzilla.gnome.org/show_bug.cgi?id=639063 + +2011-01-08 03:12:11 +0000 Tim-Philipp Müller + + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogutils.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + * ext/schroedinger/gstschroutils.c: + cog, schroedinger: fix warnings when compiling with -DG_DISABLE_ASSERT + +2011-01-08 03:10:00 +0000 Tim-Philipp Müller + + * configure.ac: + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * win32/common/config.h: + 0.10.20.2 pre-release + +2011-01-08 02:49:06 +0000 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: update docs + +2011-01-08 02:47:12 +0000 Tim-Philipp Müller + + * po/bg.po: + * po/ca.po: + * po/ja.po: + po: update translations + +2011-01-08 02:43:41 +0000 Tim-Philipp Müller + + * gst/camerabin/Makefile.am: + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/gstcamerabin-marshal.list: + * gst/camerabin/gstinputselector.c: + * gst/camerabin/gstinputselector.h: + camerabin: use private input-selector that still has "select-all" property + The "select-all" property was removed when input-selector was moved + to core, but camerabin uses this, so make camerabin use a private + copy until a better fix is found. + +2011-01-08 00:32:21 +0000 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: Makefile.am clean-up + Avoid duplicates GST_CHECK_CFLAGS and GST_OPTIONS_CFLAGS are already in + AM_CFLAGS. Add LDADD instead of GST_CHECK_LIBS for consistency. + +2011-01-08 00:19:06 +0000 Tim-Philipp Müller + + * gst/smoothwave/demo-osssrc.c: + smoothwave: remove old 0.8 example containing code with sideeffects in g_return_if_fail() + May just as well remove it rather than fix it, so it doesn't show + up in greps for this any longer. + +2011-01-08 00:18:17 +0000 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + tests: make git ignore new schroenc test binary + +2011-01-08 00:17:26 +0000 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: fix CFLAGS and LIBADD order in Makefile.am + +2011-01-08 00:08:11 +0000 Tim-Philipp Müller + + * 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-08 00:01:01 +0000 Tim-Philipp Müller + + * ext/directfb/dfb-example.c: + directfb: don't put code with side-effects into g_assert() + It will all be turned into a NOOP if -DG_DISABLE_ASSERT is used + (as it is for pre-releases and releases). + +2011-01-07 23:57:21 +0000 Tim-Philipp Müller + + * ext/xvid/gstxvidenc.c: + xvidenc: don't put code with side effects into g_return_val_if_fail() + And don't use g_return*_if_fail() for error handling in elements. + +2011-01-07 18:49:02 +0000 Tim-Philipp Müller + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/mpegvideoparse/mpegvideoparse.h: + Revert "mpegvideoparse: fix timestamp generation" + This reverts commit 2271608c4314d6d0a685c18c5c47d55495586159. + This patch needs more work so it doesn't cause grave playback + regressions (multi-second freezes) with some files that have + slightly broken timestamps but play fine everywhere else. + https://bugzilla.gnome.org/show_bug.cgi?id=636279 + https://bugzilla.gnome.org/show_bug.cgi?id=632222 + +2011-01-07 15:47:39 +0000 Tim-Philipp Müller + + * configure.ac: + configure: fix --disable-external + +2011-01-07 14:51:46 +0000 Tim-Philipp Müller + + * configure.ac: + configure: use $LIBM instead of hard-coding -lm + +2011-01-07 15:22:07 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: don't leak the caps + +2011-01-07 02:10:33 +0000 Tim-Philipp Müller + + * gst/mpegdemux/flutspmtinfo.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix PAT and PMT info-related object leaks + +2011-01-06 12:51:27 +0100 Edward Hervey + + * gst/jpegformat/gstjpegparse.c: + jpegparse: Fix unitialized variable on macosx + +2011-01-06 12:50:14 +0100 Edward Hervey + + * gst/jp2kdecimator/jp2kcodestream.c: + jp2kdecimator: Fix unitialized variables on macosx + +2011-01-06 12:49:43 +0100 Edward Hervey + + * gst/audioparsers/gstflacparse.c: + flacparse: Fix unitialized variable on macosx + +2010-12-15 15:58:48 -0800 David Schleef + + * gst/y4m/gsty4mdec.h: + y4mdec: Fix copyright + +2010-12-17 14:50:50 -0800 David Schleef + + * tools/element-templates/pushsrc: + * tools/gst-element-maker: + element-maker: improve pushsrc + +2011-01-05 16:43:45 +0100 Edward Hervey + + * gst/y4m/gsty4mdec.c: + y4m: Fix unitialized variables on macosx + +2011-01-05 13:44:04 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/Makefile.am: + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/ffmpeg-colorspace.h: + dvbsuboverlay: some more minor clean-ups + +2011-01-04 16:03:01 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix leak of "clear screen" DVBSubtitles structs + +2011-01-04 13:51:21 +0000 Janne Grunau + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix two minor deinitialization memory leaks + +2011-01-03 23:55:59 +0000 Tim-Philipp Müller + + * tests/examples/Makefile.am: + examples: dist camerabin2 example as well + https://bugzilla.gnome.org/show_bug.cgi?id=638604 + +2011-01-03 23:49:51 +0000 Tim-Philipp Müller + + * gst/camerabin2/Makefile.am: + camerabin2: fix cflags and libs order in Makefile.am + +2011-01-03 23:47:33 +0000 Tim-Philipp Müller + + * gst-libs/gst/basecamerabinsrc/Makefile.am: + basecamerabinsrc: fix libs order in Makefile.am + +2011-01-03 23:46:02 +0000 Tim-Philipp Müller + + * gst-libs/gst/Makefile.am: + build: fix disting of experimental basecamerabinsrc lib used by camerabin2 + https://bugzilla.gnome.org/show_bug.cgi?id=638604 + +2011-01-03 17:10:36 -0600 Rob Clark + + * sys/dvb/camswclient.c: + * sys/dvb/gstdvbsrc.c: + dvb: fix build errors on macosx + fixes the following compile errors: + cc1: warnings being treated as errors + camswclient.c: In function 'cam_sw_client_open': + camswclient.c:81: warning: implicit declaration of function 'strncpy' + camswclient.c:81: warning: incompatible implicit declaration of built-in function 'strncpy' + camswclient.c:89: warning: implicit declaration of function 'strerror' + camswclient.c:89: warning: nested extern declaration of 'strerror' + camswclient.c:89: warning: format '%s' expects type 'char *', but argument 9 has type 'int' + camswclient.c: In function 'send_ca_pmt': + camswclient.c:129: warning: implicit declaration of function 'memcpy' + camswclient.c:129: warning: incompatible implicit declaration of built-in + function 'memcpy' + gstdvbsrc.c:48:19: error: error.h: No such file or directory + Signed-off-by: Rob Clark + +2011-01-03 20:05:52 +0100 Janne Grunau + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: remove unnecessary RGB -> YUV conversion by using YUV palettes + the default CLUTs still use RGB -> YUV conversions since the standard defines + them as RGBA values. + +2011-01-03 20:21:57 +0000 Tim-Philipp Müller + + * m4/Makefile.am: + * m4/esd.m4: + * m4/glib.m4: + * m4/gst-matroska.m4: + * m4/gst-shout2.m4: + * m4/gtk.m4: + * m4/ogg.m4: + * m4/vorbis.m4: + m4: remove some cruft + +2011-01-03 17:24:23 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: adjust nasty case timestamp tracking + That is, all sorts of problems arise with re-ordered input timestamps that + tend to defy automagic handling for every case, so allow for a few variations + that can be tried depending on circumstances. + Also try to document accordingly. + Also fixes #638288. + +2010-12-30 21:48:41 +0200 Felipe Contreras + + * gst/qtmux/gstqtmux.c: + qtmux: get rid of timestamp overprotectiveness + Signed-off-by: Felipe Contreras + +2011-01-03 16:56:57 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/atomsrecovery.c: + * gst/qtmux/gstqtmux.c: + qtmux: simplify and fix pts_offset storing + In particular, only write a ctts atom if and only if ever a non-zero offset. + +2011-01-03 10:43:15 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: add some more documentation + +2010-12-03 15:23:00 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: remove large-file property + Rather, auto-determine if 64-bits fields are needed for a valid result, and + stick to plain 32-bits if not needed. + API: GstQTMux:large-file (removed) + +2011-01-03 18:13:37 +0200 Stefan Kost + + * sys/dvb/README: + README: fix the example pipeline + Fix the obvious outdated parts. Still this README looks outdated and should be + updated or removed. + +2011-01-02 19:38:01 -0800 David Schleef + + * tools/gst-element-maker: + element-maker: Add debug category + +2011-01-02 16:13:56 -0800 David Schleef + + * gst/colorspace/colorspace.c: + colorspace: Disable matrixing on big-endian + It's broken until someone writes better Orc code. Fixes #631232. + +2010-12-05 03:29:42 -0800 David Schleef + + * gst/mpegtsmux/tsmux/tsmuxstream.c: + mpegtsmux: Set adaptation flag when appropriate + Specifically, when there's stuff to go into the adaptation + header. + +2010-11-17 17:49:17 -0800 David Schleef + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + mpegtsmux: Set random_access_indicator for keyframes + +2010-12-31 16:20:22 +0000 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + tiger: outline text by default, to make it easier to read + https://bugzilla.gnome.org/show_bug.cgi?id=638527 + +2011-01-02 15:11:52 +0000 Tim-Philipp Müller + + * LICENSE_readme: + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-jack.xml: + * ext/Makefile.am: + * ext/jack/.gitignore: + * ext/jack/Makefile.am: + * ext/jack/README: + * ext/jack/gstjack.c: + * ext/jack/gstjack.h: + * ext/jack/gstjackaudioclient.c: + * ext/jack/gstjackaudioclient.h: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + * ext/jack/gstjackringbuffer.h: + * ext/jack/gstjackutil.c: + * ext/jack/gstjackutil.h: + * gst-plugins-bad.spec.in: + * tests/examples/Makefile.am: + * tests/examples/jack/Makefile.am: + * tests/examples/jack/jack_client.c: + jack: move plugin to gst-plugins-good + https://bugzilla.gnome.org/show_bug.cgi?id=621929 + +2011-01-02 13:52:36 +0000 Tim-Philipp Müller + + * ext/kate/gstkatedec.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + kate: fix caps and string leaks and some minor clean-ups + Don't leak source caps. Use GST_PTR_FORMAT to log caps, so + we don't need to leak strings from gst_caps_to_string(). + No need to use GST_DEBUG_FUNCPTR for vfuncs where the base + class will never look them up (like property getters/setters). + Don't use g_return_*_if_fail() for things that aren't directly + programming errors (by the application developer). + Fixes kate unit test under valgrind. + +2010-12-31 16:17:50 +0000 Vincent Penquerc'h + + * ext/kate/gstkateutil.c: + kate: reenable the sending of a message for tags + https://bugzilla.gnome.org/show_bug.cgi?id=638412 + +2011-01-02 13:29:06 +0000 Tim-Philipp Müller + + * gst/gaudieffects/Makefile.am: + gaudieffects: dist python examples + +2010-12-31 00:09:09 -0800 David Schleef + + * tools/gst-element-maker: + element-maker: Update FSF address + +2010-12-31 00:07:28 -0800 David Schleef + + * tools/Makefile.am: + * tools/gst-app-maker: + Add gst-app-maker + +2010-12-31 00:12:53 -0800 David Schleef + + * gst/dtmf/tone_detect.c: + dtmf: Fix build failure caused by previous commit + +2010-12-30 19:21:47 -0800 David Schleef + + * ext/cog/generate_tables.c: + * ext/cog/gstcms.c: + * ext/cog/gstcolorconvert.c: + cog: Use math-compat.h + +2010-12-30 19:21:21 -0800 David Schleef + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: Fix c99-ism + +2010-12-30 19:12:23 -0800 David Schleef + + * gst/legacyresample/resample_functable.c: + * gst/legacyresample/resample_ref.c: + legacyresample: Use math-compat header + +2010-12-30 19:03:54 -0800 David Schleef + + * gst/gaudieffects/gstgaussblur.c: + * gst/geometrictransform/gstrotate.c: + change M_PI to G_PI + +2010-12-30 19:03:14 -0800 David Schleef + + * gst/frei0r/frei0r.h: + * gst/frei0r/gstfrei0r.h: + frei0r: convert uint32_t to guint32 + +2010-12-30 18:20:47 -0800 David Schleef + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmf: build fixes for MSVC + Use gint16 and G_PI. + +2010-12-30 18:19:47 -0800 David Schleef + + * gst/dtmf/tone_detect.c: + dtmf: reindent + +2010-12-30 18:02:06 -0800 David Schleef + + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: use g_ascii_strcasecmp() + +2010-12-31 01:38:02 +0000 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-selector.xml: + * gst-plugins-bad.spec.in: + * gst/selector/.gitignore: + * gst/selector/Makefile.am: + * gst/selector/gstinputselector.c: + * gst/selector/gstinputselector.h: + * gst/selector/gstoutputselector.c: + * gst/selector/gstoutputselector.h: + * gst/selector/gstselector-marshal.list: + * gst/selector/gstselector.c: + * gst/selector/selector.vcproj: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/selector.c: + * tests/examples/Makefile.am: + * tests/examples/switch/.gitignore: + * tests/examples/switch/Makefile.am: + * tests/examples/switch/switcher.c: + * tests/icles/.gitignore: + * tests/icles/Makefile.am: + * tests/icles/output-selector-test.c: + selector: move input-selector and output-selector to core + https://bugzilla.gnome.org/show_bug.cgi?id=614306 + +2010-12-30 01:17:28 +0000 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-colorspace.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dvbsuboverlay.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-jp2kdecimator.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-opencv.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-y4mdec.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: update plugin docs + +2010-12-30 01:14:29 +0000 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-valve.xml: + * gst-plugins-bad.spec.in: + * gst/valve/Makefile.am: + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/valve.c: + valve: move valve element/plugin to core + https://bugzilla.gnome.org/show_bug.cgi?id=630808 + +2010-12-29 13:18:37 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + camerabin2: Various leak fixes + Various leak fixes and some code reorganization + +2010-12-27 17:18:29 -0300 Thiago Santos + + * tests/examples/camerabin2/.gitignore: + camerabin2: example: gitignore captured files + +2010-12-26 20:52:25 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Implement video capture renegotiate + Handle caps renegotiation from camerabin2's renegotiate event + to allow video capture to be done with the user's requested + resolution. + +2010-12-26 20:47:40 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Add tests for video capture + Add a test for capturing multiple videos with different resolutions + in a sequence. + +2010-12-26 20:35:47 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix renegotiate event pushing + Use a hack to make the event upstream to reach the camera source + instead of going downstream and being useless. + This was already fixed this way for image srcpad renegotiate and + video srcpad was left unfixed. + +2010-12-24 09:10:48 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + wrappercamerabinsrc: Refactor internal pipeline + Instead of linking 3 src pads from tee to the ghostpads, use 2 + srcpads and add an output-selector to completely split caps + negotiation of video/image modes. I don't think there is an + use case that would require image and video pads to be used + at the same time. + +2010-12-22 14:42:27 +0000 Vincent Penquerc'h + + * configure.ac: + configure: use -pthread for xvid configure check + https://bugzilla.gnome.org/show_bug.cgi?id=637823 + https://bugzilla.gnome.org/show_bug.cgi?id=637308 + +2010-12-28 17:16:05 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: mode can be only image or video + No need to check if camerabin is on video mode if it isn't on + image mode as those are the only 2 modes available. + Additionally, if mode gets corrupted somehow and would be neither + image or video it would cause a null pointer dereferencing some + lines of code below, so this is safer. + +2010-12-28 16:55:11 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Remove unused variable + +2010-12-27 16:58:26 -0300 Thiago Santos + + * gst/asfmux/gstasf.c: + asfmux: Fix plugin package name/origin + +2010-12-27 13:20:28 +0100 Alessandro Decina + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix compiler warnings + +2010-12-27 11:10:53 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: clean-up: allocate flat array of rectangles + instead of an array of pointers to individually-allocated rectangles. + +2010-12-23 18:18:50 +0000 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + tiger: fallback on headers in caps to initialize if headers are absent + When Totem switches streams, tiger will be reset, and start receiving + buffers from the middle of the stream, without being sent headers. + If this happens, try to get headers from the caps. + https://bugzilla.gnome.org/show_bug.cgi?id=638004 + +2010-12-26 17:19:00 +0000 Tim-Philipp Müller + + * gst-libs/gst/interfaces/photography.c: + photography: fix typo in property description + +2010-12-26 17:07:38 +0000 Tim-Philipp Müller + + * tests/examples/camerabin/gst-camera.c: + examples: fix gtk3 code path in camerabin example app + Just add rows via the combobox's model, which should work with + both gtk2 and gtk3, instead of using the gtk_combo_box_append_text() + convenience API (which was renamed to gtk_combo_box_text_append_text()). + Fixes compilation against gtk3 (there was a typo in the list store + variable name, spotted by Markus Vartiainen). + +2010-12-25 17:01:11 +0000 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: if seeking with GST_SEEK_TYPE_CUR, flush everything + We don't know how to calculate the target, so be safe. + https://bugzilla.gnome.org/show_bug.cgi?id=600929 + +2010-12-25 16:44:03 +0000 Tim-Philipp Müller + + * ext/kate/gstkatetiger.c: + tiger: move #if #else bits outside of macro + Some compilers/preprocessors don't like if/else/endif preprocessor + directives in the middle of macros. + +2010-12-24 14:44:23 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/dvb-sub.c: + dvbsuboverlay: clean-up: merge private data struct into main struct + +2010-12-24 14:24:12 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: clean-up: dvb sub parser helper doesn't need to be a GObject + +2010-01-25 18:26:25 +0000 Vincent Penquerc'h + + * ext/kate/gstkate.c: + tiger: Give tiger primary rank + +2010-01-25 18:58:38 +0000 Vincent Penquerc'h + + * ext/kate/Makefile.am: + * ext/kate/gstkate.c: + * ext/kate/gstkatedec.c: + * ext/kate/gstkatedec.h: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatespu.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + * ext/kate/gstkateutil.c: + * ext/kate/gstkateutil.h: + kate: add segment tracking, and various other improvements + https://bugzilla.gnome.org/show_bug.cgi?id=600929 + +2010-12-24 10:15:46 +0000 Vincent Penquerc'h + + * gst/mve/gstmvedemux.c: + mve: do not use the pad buffer allocation functions in demuxers + https://bugzilla.gnome.org/show_bug.cgi?id=637929 + +2010-12-24 09:50:00 +0000 Vincent Penquerc'h + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: do not use the pad buffer allocation functions in demuxers + https://bugzilla.gnome.org/show_bug.cgi?id=637931 + +2010-12-23 22:01:00 +0000 Tim-Philipp Müller + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: try harder to make buffer metadata writable before modifying + Also, check buffer for NULL-ness before dereferencing it. + https://bugzilla.gnome.org/show_bug.cgi?id=637824 + +2010-12-22 11:44:55 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: Notify earlier + Notify about ready-for-capture changes earlier to allow camerabin2 + to do the videobin state switching before the capture starts. + +2010-12-21 19:22:36 -0300 Thiago Santos + + * gst/camerabin2/gstvideorecordingbin.c: + videorecordingbin: Fix leaks + +2010-12-21 11:04:00 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Refactor tests + Refactor tests case so that the same tests can be run for different + camera sources. + +2010-12-20 18:30:32 -0300 Thiago Santos + + * tests/check/elements/.gitignore: + tests: gitignore camerabin2 tests + Adds more camerabin2 elements tests to gitignore + +2010-12-20 18:09:26 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Add converters for viewfinder branch + Viewfinder branch should have converters as it has to work + always anyway. + +2010-12-20 14:20:35 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/imagecapturebin.c: + imagecapturebin: Add another test case + Adds a test case to check if a sequence of buffers with different + caps can be pushed to imagecapturebin and saved correctly + +2010-12-20 02:59:14 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/viewfinderbin.c: + viewfinderbin: Add basic check test + Adds minimum check test. It's not a very useful test, but at least + it allows us to run it under valgrind and check for leaks automatically + +2010-12-20 02:58:44 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + viewfinderbin: Remove leaks + Removing various leaks from viewfinderbin + +2010-12-17 23:06:45 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: more logs + +2010-12-17 23:06:23 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Small tests update + Increases timeout value so that tests won't fail with full + debug output. + Also removes buffer alloc from videotestsrc as this feature + isn't ready on camerabin2 + +2010-12-14 22:06:33 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Adds tests for image capture with different caps + Adds a test that tries sucessive captures with different caps + +2010-12-16 00:40:25 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + wrappercamerabinsrc: Handle camerabin2 custom renegotiate events + +2010-12-15 14:05:54 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Use custom renegotiate event + Adds a custom renegotiate event that is pushed to the camerasrc pad + that needs renegotiation due to the user selecting a new capture + caps for that pad. + This is a way of notifying the source that it should update its caps, even + if it doesn't use pad allocs. + +2010-12-16 22:49:24 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + wrappercamerabinsrc: Add local mode + +2010-12-14 18:42:51 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adds properties for capture caps + Adds properties for selecting caps for video and image captures + +2010-12-19 19:40:54 -0300 Thiago Santos + + * gst-libs/gst/Makefile.am: + basecamerabinsrc: Fix makefile building order + basecamerabinsrc must be built after photography interface + as it depends on it. + +2010-12-10 17:45:40 +0200 Teemu Katajisto + + * gst/camerabin2/gstimagecapturebin.c: + camerabin2: remove abreviations from imagecapturebin + +2010-12-16 08:47:56 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + basecamerasrc: Add some more logging + Adds some more logging and always assume capture has started before + start_capture is called. This helps on image captures that might + call finish_capture directly from start_capture or before start_capture + finishes. + +2010-12-15 22:35:16 -0300 Thiago Santos + + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + basecamerasrc: More cleanup + Remove old legacy code copied from camerabin(1) that should be handled + by caps negotiation on camerabin2 + +2010-12-15 14:07:15 -0300 Thiago Santos + + * gst/camerabin2/gstwrappercamerabinsrc.c: + wrappercamerabinsrc: Remove unused variable + Remove wait_for_prepara variable that wasn't being used + +2010-12-14 17:23:10 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstplugin.c: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + * gst/camerabin2/gstwrappercamerabinsrc.c: + * gst/camerabin2/gstwrappercamerabinsrc.h: + * tests/check/elements/camerabin2.c: + camerabin2: Rename v4l2camerasrc to wrappercamerabinsrc + Use a better name for the element that wraps single pad src element + into a 3pad source required by camerabin2. + +2010-12-14 16:59:54 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + v4l2camerasrc: remove video filter property code + Removes some unused custom video filter element property code + +2010-12-16 10:51:38 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + viewfinderbin: Fix video-sink property again + Avoid switching the element on the set_property function, instead wait + for the next NULL -> READY transition. + +2010-12-14 14:48:28 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Use videotestsrc on the tests + Use videotestsrc to avoid openning the camera device on the tests. + +2010-12-14 14:43:59 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + v4l2camerasrc: add video-src property + Adds a property to select the src element to be used internally + on v4l2camerasrc. Yeah, I know, this element should have a better + name. + +2010-12-13 17:56:14 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Add test for supported caps properties + Adds tests for checking that the supported caps properties work + as expected (using the respective pads get caps function) + +2010-12-14 08:44:36 -0300 Thiago Santos + + * gst/camerabin2/PORTING: + camerabin2: adds PORTING document + Adds a PORTING document to explain the differences from + camerabin to camerabin2 and help application developers on + porting from one to another. + +2010-12-13 19:36:41 -0300 Thiago Santos + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/basecamerabinsrc/Makefile.am: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.c: + * gst-libs/gst/basecamerabinsrc/gstbasecamerasrc.h: + * gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.c: + * gst-libs/gst/basecamerabinsrc/gstcamerabin-enum.h: + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstcamerabin-enum.c: + * gst/camerabin2/gstcamerabin-enum.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + * tests/check/Makefile.am: + * tests/check/elements/camerabin2.c: + camerabin2: Move basecamerasrc to gst-libs + Move the base camera src class to gst-libs/gst/basecamerabinsrc to + allow it to be included from the tests. + +2010-12-14 14:28:49 +0200 Teemu Katajisto + + * gst/camerabin2/gstvideorecordingbin.c: + * gst/camerabin2/gstvideorecordingbin.h: + * tests/check/elements/videorecordingbin.c: + camerabin2: add videorecordingbin::video-muxer property + +2010-12-14 12:21:57 +0200 Teemu Katajisto + + * gst/camerabin2/gstvideorecordingbin.c: + * gst/camerabin2/gstvideorecordingbin.h: + * tests/check/elements/videorecordingbin.c: + camerabin2: add videorecordingbin::video-encoder property + +2010-12-14 09:58:35 +0200 Teemu Katajisto + + * gst/camerabin2/gstvideorecordingbin.c: + camerabin2: remove abbreviations from videorecordingbin + +2010-12-14 10:48:56 +0200 Teemu Katajisto + + * gst/camerabin2/gstimagecapturebin.c: + camerabin2: imagecapturebin: release objects and memory allocations + +2010-12-13 16:36:19 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Add camera-src property + Adds a property to select the camera source element to be used. + Changing only happens on the next NULL->READY transition + +2010-12-13 11:53:59 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Rename variables + Use better name for the variables, making the code clearer. Also + keep a ref for some internal elements to avoid fetching them + by name when needed later. + +2010-12-12 23:03:21 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Add properties for supported capture caps + Adds 2 property for getting the supported image/video capture + caps from the camera source. + +2010-12-12 20:46:16 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstcamerabin-enum.h: + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: Put enums inside their classes .c + Remove global list of properties' enums and put them + inside their classes .c + +2010-12-12 19:33:24 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstviewfinderbin.c: + * gst/camerabin2/gstviewfinderbin.h: + * tests/check/elements/camerabin2.c: + viewfinderbin: Fixes to video-sink handling + Handle video-sink more carefully, checking if it should + be already added to the bin, and removing old ones when + replacing. + +2010-12-13 16:28:58 +0200 Teemu Katajisto + + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstimagecapturebin.h: + * tests/check/elements/imagecapturebin.c: + camerabin2: add imagecapturebin::image-muxer property + +2010-12-13 12:08:22 +0200 Teemu Katajisto + + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstimagecapturebin.h: + * tests/check/elements/imagecapturebin.c: + camerabin2: add imagecapturebin::image-encoder property + +2010-12-10 17:45:40 +0200 Teemu Katajisto + + * gst/camerabin2/gstimagecapturebin.c: + camerabin2: remove abreviations from imagecapturebin + +2010-12-10 12:08:48 -0300 André Dieb Martins + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstviewfinderbin.c: + * gst/camerabin2/gstviewfinderbin.h: + * tests/check/elements/camerabin2.c: + camerabin2: implement viewfinderbin::video-sink property to override default video output + +2010-12-09 14:13:13 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + basecamerasrc: Make construct_pipeline optional + Construct pipeline should be optional. Subclasses that don't + have internal elements don't need it. + +2010-12-09 12:23:01 +0200 Stefan Kost + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + basecamerasrc: write more details on the api docs + +2010-12-09 12:22:26 +0200 Stefan Kost + + * gst/camerabin2/gstbasecamerasrc.h: + basecamerasrc: use the enum type for mode + +2010-12-09 12:21:16 +0200 Stefan Kost + + * gst/camerabin2/gstbasecamerasrc.c: + basecamerasrc: comment cleanups + +2010-12-22 21:44:47 +0000 Tim-Philipp Müller + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: ensure buffer metadata is writable before modifying it + https://bugzilla.gnome.org/show_bug.cgi?id=637824 + +2010-12-22 18:13:04 +0100 Edward Hervey + + * gst/id3tag/gstid3mux.c: + id3mux: Set to GST_RANK_PRIMARY + We want it to take precedence over any other id3 formatter. + +2010-12-21 18:01:28 +0100 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Fix some more leaks and reorganize unref code + +2010-12-20 15:33:28 +0100 benjamin gaignard + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Avoid some leaks in autoconvert + unref sink and src pad after gst_pad_by_direction calls unref + element if gst_auto_convert_activate_element failed. + See bug #637553. + +2010-12-21 17:03:43 +0100 Sebastian Dröge + + * tests/check/elements/asfmux.c: + asfmux: Fix buffer leak in the unit test + +2010-12-20 07:19:04 -0800 Saleem Abdulrasool + + * tests/examples/camerabin/gst-camera.c: + camerabin: fix for latest GTK+ API changes + +2010-12-20 17:47:29 +0100 Edward Hervey + + * common: + Automatic update of common submodule + From 169462a to 46445ad + +2010-12-20 11:06:52 -0300 Thiago Santos + + * tests/check/elements/camerabin.c: + camerabin: Fix caps leaks + Fix some caps leaks on unit tests + +2010-12-20 09:37:22 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + jifmux: Fix leaks on check test + Fix leaks in jifmux check test + +2010-12-20 13:51:03 +0200 Stefan Kost + + * gst-libs/gst/interfaces/photography.c: + photography: use a flags type instead of the uint + Also use 0 as default and let the implementation set something that they support. + +2010-12-20 11:14:49 +0200 Hu Gang + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photography: add missing property and cabability flag for noise reduction + +2010-12-19 17:23:24 +0530 Olivier Crête + + * tests/check/elements/autoconvert.c: + tests: Fix leak in autoconvert test + +2010-12-19 17:16:10 +0530 Olivier Crête + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Use gst_caps_can_intersect() + +2010-12-19 12:53:34 +0100 Sebastian Dröge + + * gst/qtmux/gstqtmux.c: + qtmux: Free AtomInfo structs + +2010-12-19 12:50:30 +0100 Sebastian Dröge + + * gst/qtmux/gstqtmux.c: + qtmux: Free tag string after use + +2010-12-19 12:12:25 +0100 Sebastian Dröge + + * tests/check/pipelines/tagschecking.c: + tagschecking: Fix some more memory leaks + +2010-12-19 12:12:12 +0100 Sebastian Dröge + + * tests/check/elements/imagecapturebin.c: + imagecapturebin: Don't leak message in the unit test + +2010-12-19 12:09:41 +0100 Sebastian Dröge + + * gst/camerabin2/gstimagecapturebin.c: + imagecapturebin: Don't leak pad and sink + +2010-12-19 12:05:11 +0100 Sebastian Dröge + + * gst/camerabin2/gstimagecapturebin.c: + imagecapturebin: Don't leak pad template created from static pad template + +2010-12-19 12:03:03 +0100 Sebastian Dröge + + * gst/camerabin2/gstimagecapturebin.c: + imagecapturebin: Don't leak location string + +2010-12-19 12:00:25 +0100 Sebastian Dröge + + * gst/jpegformat/gstjifmux.c: + jifmux: Don't leak taglist + +2010-12-19 11:38:03 +0100 Sebastian Dröge + + * gst/autoconvert/gstautovideoconvert.c: + autovideoconvert: Don't leak pad templates created from static pad templates + +2010-12-19 11:20:25 +0100 Sebastian Dröge + + * gst/autoconvert/gstautovideoconvert.c: + autovideoconvert: Add autoconvert child before chaining up to parent state change function + ...and remove/unlink autoconvert child when going back to NULL. + +2010-12-19 11:19:38 +0100 Sebastian Dröge + + * tests/check/Makefile.am: + states: Ignore more vdpau elements in the generic states test + +2010-12-19 11:17:47 +0100 Sebastian Dröge + + * Makefile.am: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/autocolorspace.c: + * tests/check/elements/autovideoconvert.c: + autovideoconvert: Rename and adjust unit test too + +2010-12-18 12:48:42 -0800 Leo Singer + + * sys/applemedia/miovideosrc.c: + * sys/applemedia/qtkitvideosrc.m: + applemedia: fix compiler warning: redundant declaration of 'parent_class' + GST_BOILERPLATE_FULL declares parent_class as well. + https://bugzilla.gnome.org/show_bug.cgi?id=637532 + +2010-12-17 19:41:25 +0200 Lasse Laukkanen + + * gst/qtmux/gstqtmux.c: + qtmux: allow zero duration tracks + +2010-12-16 15:31:23 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: use GST_LOG etc. for logging + The dvbsub routines were originally designed as a mini lib with a + log callback (which from the looks of it in our case would always + be called and always assemble the string even with debug output + disabled). Some of these debug statements can probably be removed + or cleaned up some more. + +2010-12-16 00:19:13 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/ffmpeg-colorspace.h: + dvbsuboverlay: remove some unused defines + +2010-12-16 00:13:18 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix atomic access + +2010-12-16 15:33:45 +0000 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix rendering artefacts + Initialize source x position for odd height special case. + +2010-12-16 11:29:07 +0100 Edward Hervey + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: The enable property is a boolean and not an integer + +2010-12-16 09:56:00 +0100 Sebastian Dröge + + * gst/autoconvert/Makefile.am: + * gst/autoconvert/gstautocolorspace.c: + * gst/autoconvert/gstautocolorspace.h: + * gst/autoconvert/gstautovideoconvert.c: + * gst/autoconvert/gstautovideoconvert.h: + * gst/autoconvert/plugin.c: + autoconvert: Rename autocolorspace to autovideoconvert + This doesn't just convert between color spaces. + +2010-12-15 12:45:38 -0800 David Schleef + + * tools/Makefile.am: + * tools/base.c: + * tools/element-maker: + * tools/element-templates/audiofilter: + * tools/element-templates/audiosink: + * tools/element-templates/audiosrc: + * tools/element-templates/base: + * tools/element-templates/baseaudiosink: + * tools/element-templates/baseaudiosrc: + * tools/element-templates/basertpdepayload: + * tools/element-templates/basertppayload: + * tools/element-templates/basesink: + * tools/element-templates/basesrc: + * tools/element-templates/basetransform: + * tools/element-templates/cddabasesrc: + * tools/element-templates/element: + * tools/element-templates/gobject: + * tools/element-templates/pushsrc: + * tools/element-templates/sinkpad: + * tools/element-templates/sinkpad-simple: + * tools/element-templates/srcpad: + * tools/element-templates/srcpad-simple: + * tools/element-templates/tagdemux: + * tools/element-templates/videosink: + * tools/gobject.c: + * tools/gst-element-maker: + * tools/gstaudiofilter.c: + * tools/gstaudiosink.c: + * tools/gstaudiosrc.c: + * tools/gstbaseaudiosink.c: + * tools/gstbaseaudiosrc.c: + * tools/gstbasertpdepayload.c: + * tools/gstbasertppayload.c: + * tools/gstbasesink.c: + * tools/gstbasesrc.c: + * tools/gstbasetransform.c: + * tools/gstcddabasesrc.c: + * tools/gstelement.c: + * tools/gstpushsrc.c: + * tools/gsttagdemux.c: + * tools/gstvideosink.c: + * tools/sinkpad-simple.c: + * tools/sinkpad.c: + * tools/srcpad-simple.c: + * tools/srcpad.c: + element-maker: Clean up directory + +2010-12-15 21:28:06 +0100 Benjamin Gaignard + + * gst/bayer/gstbayer2rgb.c: + bayer2rgb: Add framerate to the sink caps + Fixes bug #637224. + +2010-12-15 21:19:55 +0100 Benjamin Gaignard + + * tests/check/Makefile.am: + * tests/check/elements/autocolorspace.c: + autocolorspace: Add unit test + +2010-12-15 21:14:38 +0100 Benjamin Gaignard + + * gst/autoconvert/Makefile.am: + * gst/autoconvert/gstautocolorspace.c: + * gst/autoconvert/gstautocolorspace.h: + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/plugin.c: + autocolorspace: Add autoconvert based video format convert element + Fixes bug #636106. + +2010-12-15 21:11:29 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Rename DVB subtitling media type to subpicture/x-dvb + +2010-12-15 21:11:11 +0100 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Rename DVB subtitling media type to subpicture/x-dvb + +2010-12-15 20:54:35 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Don't draw anything on the video if the enable property is set to FALSE + +2010-12-15 20:53:21 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Add #defines for the property default values + +2010-12-15 20:51:12 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Use g_atomic_int_get() for reading the max_page_timeout field + +2010-12-15 20:49:57 +0100 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Mark array static const and use G_N_ELEMENTS instead of sizeof + +2010-12-15 14:39:56 +0100 Janne Grunau + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: add DESC_DVB_SUBTITLING descriptor for language parsing + +2010-12-15 14:23:58 +0100 Janne Grunau + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: enable gather_pes only for DVB subtitle private streams + +2010-12-14 14:34:56 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: use atomic instructions to set/get enable property + +2010-12-14 14:28:45 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: add property to limit page_time_out to a setable maximum + +2010-12-14 11:11:08 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: implement display definition segment subtitle windows + simplifies subtitle scaling in blit_i420() + +2010-12-11 17:25:29 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: scale subtitles according to the display size + Display size is either transmitted in the display definition segment or + implicitly defined to 720x576. The subtitle window information also present in + the display definition segment is not yet used. + +2010-12-11 17:10:25 +0100 Janne Grunau + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + dvbsuboverlay: implement display definition segment parsing + +2010-12-10 12:27:54 +0100 Janne Grunau + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix luma stride for scaled subtitles (display width != width) + +2010-12-15 16:48:15 +0100 Edward Hervey + + * ext/rsvg/gstrsvgoverlay.c: + rsvgoverlay: Don't set uint on an int property + +2010-12-15 14:56:19 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From 20742ae to 169462a + +2010-12-14 19:03:09 -0800 David Schleef + + * tools/Makefile.am: + * tools/element-maker: + * tools/gstaudiofilter.c: + * tools/gstaudiosink.c: + * tools/gstaudiosrc.c: + * tools/gstbaseaudiosink.c: + * tools/gstbaseaudiosrc.c: + * tools/gstbasertpdepayload.c: + * tools/gstbasertppayload.c: + * tools/gstbasesink.c: + * tools/gstbasesrc.c: + * tools/gstbasetransform.c: + * tools/gstcddabasesrc.c: + * tools/gstelement.c: + * tools/gstpushsrc.c: + * tools/gsttagdemux.c: + * tools/gstvideosink.c: + * tools/sinkpad-simple.c: + * tools/sinkpad.c: + * tools/srcpad-simple.c: + * tools/srcpad.c: + element-maker: improve generation of several classes + Better creation of pads, test and fix many other classes. Most + classes work now, although might not create functional elements. + +2010-12-13 23:32:30 -0800 David Schleef + + * configure.ac: + * gst/y4m/Makefile.am: + * gst/y4m/gsty4mdec.c: + * gst/y4m/gsty4mdec.h: + y4mdec: Add y4mdec + Feel the y4m love. It seeks. It works in pitivi. + +2010-12-13 23:15:05 +0000 Francis Rammeloo + + * sys/winscreencap/gstgdiscreencapsrc.c: + gdiscreencapsrc: fix memory leak + Structure members of ICONINFO struct filled by GetIconInfo() must + be deleted when no longer needed according to the API reference. + https://bugzilla.gnome.org/show_bug.cgi?id=611428 + +2010-12-13 16:23:37 +0100 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: avoid leaking tag event + +2010-12-13 15:17:29 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: relax bsid checking + ... to the widest possible spec interpretation. + Fixes #637062. + +2010-12-13 16:23:45 +0200 Stefan Kost + + * common: + Automatic update of common submodule + From 011bcc8 to 20742ae + +2010-12-12 23:34:02 +0000 Matthew Ife + + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + rfbsrc: fail more gracefully if source gets disconnected or geometry changes + Don't get caught in an infinite loop if the source gets disconnected and also + support gracefully failing upon detecting the frame geometry has increased + (rather than segfaulting). + https://bugzilla.gnome.org/show_bug.cgi?id=635397 + +2010-12-12 22:13:13 +0100 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: avoid leaking converted comment string + +2010-12-12 12:01:38 +0100 Sebastian Dröge + + * gst/videomeasure/gstvideomeasure_ssim.c: + ssim: Set classification to Filter/Analyzer/Video instead of Filter/Converter/Video + Fixes bug #636109. + +2010-12-12 02:24:00 +1100 Jan Schmidt + + * gst/gaudieffects/burn-example.py: + * gst/gaudieffects/gstburn.c: + gaudieffects: Avoid divide by 0 in burn element + +2010-12-12 02:16:49 +1100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Defer pushing tag updates until streaming. + Push tag/title info updates in the streaming thread, avoiding + spurious losses of the downstream events when flushing. + See: https://bugzilla.gnome.org/show_bug.cgi?id=594222 + +2010-11-16 17:18:33 +1100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Attempt to use glib language setting for DVD menus/audio + +2010-11-16 17:09:06 +1100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Fix silly typo in button state tracking. + +2010-12-10 00:58:58 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + applemedia: only enqueue buffers in the VideoToolbox callbacks + These callbacks may fire from any thread, hence we should only enqueue + buffers and let the streaming thread take care of the rest as soon as + the blocking encode or decode operation has finished. + +2010-11-19 15:53:55 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/coremediactx.h: + * sys/applemedia/cvapi.c: + * sys/applemedia/dynapi-internal.h: + * sys/applemedia/dynapi.c: + * sys/applemedia/dynapi.h: + applemedia: bring back Leopard compatibility + At least as far as miovideosrc is concerned. Turns out that CoreVideo's + CVPixelBufferGetIOSurface is not present in Leopard's version of CoreVideo. + We solve this by making it possible for symbols to be marked as optional. + +2010-11-29 13:47:11 +0100 Christian Berentsen + + * sys/winks/ksvideohelpers.c: + winks: fix framerate fraction range mapping + Min and max may be slightly different but compress to the same fraction. + +2010-12-09 18:06:38 +0100 Wim Taymans + + * ext/jp2k/gstjasperdec.c: + jasperdec: don't fail hard on decoding error + don't post an error and return GST_FLOW_ERROR on a simple decoding error. We can + just resume and continue decoding the next image. + +2010-12-09 11:54:17 +0100 Alessandro Decina + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: reset the queue condition to NO_FRAMES in unlockStop. + Fixes a segfault in create: when going PLAYING -> PAUSED -> PLAYING. + +2010-12-09 11:04:19 +0100 Alessandro Decina + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: run the mainRunLoop for a while if not running. + QTCaptureSession::addInput and QTCaptureSession::addOutput call + NSObject::performSelectorOnMainThread internally so they need the mainRunLoop to + run at least for a while to complete. + +2010-12-07 19:40:28 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + basecamerasrc: Remove ghostpads + Remove ghost pads from basecamerasrc. Different implementations + of camera sources might not use ghostpads and use default pads. + +2010-12-07 19:12:40 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstv4l2camerasrc.c: + basecamerasrc: Removing ununsed methods + Remove one unused method _finish_image_capture() + +2010-12-06 11:05:17 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/examples/Makefile.am: + camerabin2: Only run tests if experimental is enabled + Only run camerabin2 tests and build examples if experimental + plugins are enabled + +2010-12-06 10:06:37 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: Cleanup + Removing commented code + +2010-12-05 11:18:09 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + basecamerasrc: Move start/stop capture signals to basecamerasrc + Move start/stop signals and ready-for-capture to basecamerasrc + as this should be present on all camera sources + +2010-12-04 10:15:34 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + basecamerasrc: Add mode property + Move mode property from v4l2camerasrc to basecamerasrc, as all + camera sources should handle it. + +2010-12-04 00:27:17 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Reset all elements on video recording branch before capture + We need to reset the elements from the video recording branch, including + the queue and capsfilter in order to clear the eos state and activate + the pads. + This makes it possible to record multiple videos with camerabin2 in a + sequence, otherwise the source would get a unexpected return and + push EOS, stopping the whole pipeline. + +2010-12-03 12:13:07 -0300 Thiago Santos + + * tests/check/elements/camerabin2.c: + camerabin2: Fix tests capture location creation + Fixes capture location creation to use multifilesink location + like strings. E.g. using capture_%d instead of capture_0 to let + camerabin2 handle the %d replacing + +2010-12-03 12:12:32 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: More debug logs + Sprinkle some more debugging logs + +2010-12-03 12:11:59 -0300 Thiago Santos + + * tests/examples/camerabin2/gst-camera2.c: + examples: camerabin2: Print more info + Add some printing for error/eos cases. + +2010-12-02 03:44:37 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstvideorecordingbin.c: + camerabin2: Various fixes + As video recording bin's state is locked, we should always + remember of setting it to NULL when camerabin2 goes to NULL + Be more careful when using elements that might not + have been created yet + And do not set location property recursively on videorecordingbin + +2010-12-02 03:08:52 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/camerabin2.c: + camerabin2: Adding tests for camerabin2 + Adds some basic tests for camerabin2 + +2010-12-02 02:21:49 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/imagecapturebin.c: + * tests/check/elements/videorecordingbin.c: + tests: camerabin2: adds tests for elements + Adds basic tests for both imagecapturebin and for + videorecordingbin elements + +2010-12-02 01:33:19 -0300 Thiago Santos + + * gst/camerabin2/gstviewfinderbin.c: + viewfinderbin: Improve elements creation + Be more careful with cleanup of elements. Also add some logs and + improve docs a little. + +2010-12-02 00:19:05 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin-enum.c: + * gst/camerabin2/gstcamerabin-enum.h: + camerabin2: remove unused code + General cleanup, removing unused bits + +2010-11-30 20:13:27 -0300 Thiago Santos + + * configure.ac: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstimagecapturebin.h: + * gst/camerabin2/gstvideorecordingbin.c: + * gst/camerabin2/gstvideorecordingbin.h: + camerabin2: adds location property + Adds a location property to enable applications to select + the captured files names. Locations are handled just like + multifilesink ones + Also disables -Wformat-nonliteral to allow to use non-literals + on g_strdup_printf on camerabin and generate a sequence of + locations for captures. + +2010-11-30 20:15:47 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Fix set/get property function names + Add more consistency to the function names by using + gst_camera_bin as the other functions. + +2010-11-30 18:19:20 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Handle vidbin state change individually + Keep vidbin state locked to avoid it going to playing without + being used and leaving an empty file created. + Check the docs on the code for details on the handling. + +2010-11-30 11:40:18 -0300 Thiago Santos + + * configure.ac: + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Keep it under --enable-experimental + camerabin2 is still under heavy development, activate it only if + the --enable-experimental flag is on. + Also add a note to the docs. + +2010-11-30 11:06:33 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin-enum.h: + * gst/camerabin2/gstv4l2camerasrc.c: + v4l2camerasrc: Add ready-for-capture property + Adds property that informs if v4l2camerasrc is available + for starting a new capture. + It is useful for applications to know (via deep-notify) when the + property changes and a new capture is possible. Note, however, that + starting a new capture from the notify callback will cause a deadlock. + +2010-11-30 09:28:50 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin-enum.c: + * gst/camerabin2/gstcamerabin-enum.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + camerabin2: Update v4l2camerasrc to use start/stop signals + Removes the old logic for v4l2camerasrc that used the mode + property switching to start/stop captures to make it identical + to camerabin2 behavior and to allow the future addition of + pausing a video recording. + This also removes the MODE_PREVIEW as it became useless. + +2010-11-29 18:53:34 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Cleanup capturing flag + Cleanup capturing flag when the source switches back to the + viewfinder mode + +2010-11-29 18:24:35 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.h: + v4l2camerasrc: Remove unnecessary padding + +2010-11-29 15:49:26 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + v4l2camerasrc: Implement video capture + Implements video capture on v4l2camerasrc by using the mode property, + when mode is set to video, the pad probe pushes a new segment + and starts pushing buffers on the pad, when it the property is + sent back to preview, the pad probe pushes an EOS and stops + pushing buffers. + This is controlled by a Recording State variable, that is protected + by the GST_OBJECT_LOCK. I don't think locking for every buffer is + nice, so we could find an alternative lockless way here. + +2010-11-29 12:57:21 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + v4l2camerasrc: Fix image capture + Once a image is captured, v4l2camerasrc should return to the + preview mode and stop capturing. + +2010-11-29 11:31:26 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin-enum.c: + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Keep mode definition at -enum file + Use 'mode' enum definition from gstcamerabin-enum file to avoid + conflicts between v4l2camerasrc and gstcamerabin2 modes. + For now there is a MODE_PREVIEW there that is only used on the + camerasrc, not sure if we are keeping it at the future, but for + now this works. + +2010-11-29 10:46:38 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + v4l2camerasrc: Adds mode property + Adds mode property to v4l2camerasrc + +2010-11-29 10:45:30 -0300 Thiago Santos + + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: Adding debug categories + Adding debug categories to v4l2camerasrc and camerabin2, also + removing generic category from camerabingeneral. + +2010-11-26 23:55:12 -0300 Thiago Santos + + * configure.ac: + * tests/examples/Makefile.am: + * tests/examples/camerabin2/.gitignore: + * tests/examples/camerabin2/Makefile.am: + * tests/examples/camerabin2/gst-camera2.c: + * tests/examples/camerabin2/gst-camera2.h: + * tests/examples/camerabin2/gst-camera2.ui: + examples: Adds camerabin2 example + Adds gtk camerabin2 example app + +2010-11-26 17:24:58 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + camerabin2: Adding basic property and signals + Adds mode property to camerabin2, allowing users to + select between video and stills capture. Also adds + start/stop capture actions to trigger and stop + capturing + +2010-11-26 15:55:39 -0300 Thiago Santos + + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstvideorecordingbin.c: + camerabin2: Set filesink's async to FALSE + In order to preroll, camerabin2 should have its filesinks in + the imagecapturebin and videorecordingbin with async=FALSE. + +2010-11-26 14:51:30 -0300 Thiago Santos + + * gst/camerabin2/gstcamerabin2.c: + camerabin2: Adding basic elements + Instantiating and linking basic elements on camerabin2 + so it at least shows the viewfinder when running. + +2010-11-26 10:14:46 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstcamerabin2.c: + * gst/camerabin2/gstcamerabin2.h: + * gst/camerabin2/gstplugin.c: + camerabin2: Adds a stub element for camerabin2 + Adds camerabin2 element, it is now a pile of stubs. + +2010-11-25 22:05:39 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: v4l2camerasrc: Remove platform specific code + Remove platform specific code + +2010-11-25 21:49:47 -0300 Thiago Santos + + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: Removing uneeded properties + Removing uneeded and unregistered properties. + +2010-11-25 20:55:36 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + camerabin2: v4l2camerasrc: Fix property warning + Avoid setting a property that doesn't exist. + +2010-11-25 20:53:04 -0300 Thiago Santos + + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + camerabin2: v4l2camerasrc: Remove unused variable + Removed unused leftover variable + +2010-11-25 14:57:13 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstplugin.c: + * gst/camerabin2/gstvideorecordingbin.c: + * gst/camerabin2/gstvideorecordingbin.h: + camerabin2: Adds video recording bin + Adds an bin that is responsible for encoding and saving video + streams to files. + For now it is simply a ffmpegcolorspace ! theoraenc ! oggmux ! + filesink bin. + Still uncapable of recording audio. + +2010-11-25 13:00:50 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/camerabingeneral.c: + * gst/camerabin2/camerabingeneral.h: + * gst/camerabin2/gstbasecamerasrc.c: + * gst/camerabin2/gstbasecamerasrc.h: + * gst/camerabin2/gstcamerabin-enum.c: + * gst/camerabin2/gstcamerabin-enum.h: + * gst/camerabin2/gstplugin.c: + * gst/camerabin2/gstv4l2camerasrc.c: + * gst/camerabin2/gstv4l2camerasrc.h: + camerabin2: Adding v4l2camerasrc from robclark's branch + Adds 3-pad v4l2 camera source from Rob Clark's camerabin + branch on http://gitorious.org/robclark-gstreamer/gst-plugins-bad + +2010-11-24 20:31:33 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstimagecapturebin.c: + * gst/camerabin2/gstimagecapturebin.h: + * gst/camerabin2/gstplugin.c: + camerabin2: Adds new imagecapturebin + Adds an bin that is responsible for image captures. + It is a simple ffmpegcolorspace ! jpegenc ! jifmux ! multifilesink + for now. + +2010-11-24 20:15:38 -0300 Thiago Santos + + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstplugin.c: + * gst/camerabin2/gstviewfinderbin.c: + * gst/camerabin2/gstviewfinderbin.h: + camerabin2: Move plugin init to a separate file + Moves plugin init to gstplugin.c to allow multiple + elements to register themselves. + +2010-11-24 17:28:57 -0300 Thiago Santos + + * configure.ac: + * gst/camerabin2/Makefile.am: + * gst/camerabin2/gstviewfinderbin.c: + * gst/camerabin2/gstviewfinderbin.h: + camerabin2: viewfinderbin: Adds viewfinderbin element + Adds viewfinder bin element, one of the modules of camerabin2 + that is responsible for displaying the video from the camera. + For now it is only a bin with ffmpegcolorspace ! videoscale ! + autovideosink + +2010-12-08 19:36:48 +0100 Alessandro Decina + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: fix compiler warnings on OSX. + +2010-11-24 12:22:01 +0200 Stefan Kost + + * tests/icles/output-selector-test.c: + output-selector-test: don't hardcode videosinks and use more colorspace conv. + Use autovideosink instead of hardcoded sinks. Use an additional colorspace + converter between videotestsrc and timeoverlay. + +2010-12-08 15:18:32 +0000 Tim-Philipp Müller + + * configure.ac: + configure: require released versions of core/base instead of old git + +2010-12-07 15:44:00 +0100 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: re-use cleanup() in finalize() + ... and also favor finalize() rather than dispose(). + +2010-11-18 13:39:23 +0530 Arun Raghavan + + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + mpeg4videoparse: Set srcpad caps before forwarding newsegment + This holds all newsegement and most other events till there is enough + data to set srcpad caps, so that the downstream link is properly + negotiated before data starts flowing. + https://bugzilla.gnome.org/show_bug.cgi?id=635204 + +2010-11-18 23:29:51 +0530 Arun Raghavan + + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + mpeg4videoparse: Use sinkpad caps as base for srcpad caps + This way, we don't lose additional fields that come from upstream (like + profile/level for now). + https://bugzilla.gnome.org/show_bug.cgi?id=635202 + +2010-12-07 15:20:29 +0100 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: minor fix to error handling + We weren't handling unparseable codec_data in some cases. + https://bugzilla.gnome.org/show_bug.cgi?id=635202 + +2010-12-07 17:17:44 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Implement nearest neighbour scaling for the subpictures + This becomes necessary when SDTV subtitles are used for HDTV videos. + +2010-12-07 14:55:28 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: align code with comment + +2010-12-07 14:55:15 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: re-use reset() in finalize() + +2010-11-17 19:16:12 +0530 Arun Raghavan + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: Set srcpad caps before forwarding newsegment + This holds all newsegement and most other events till there is enough + data to set srcpad caps, so that the downstream link is properly + negotiated before data starts flowing. + https://bugzilla.gnome.org/show_bug.cgi?id=635205 + +2010-12-06 19:00:28 +0100 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: try to convert comment tag to UTF-8 + +2010-12-06 18:19:20 +0100 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: discard incomplete image + ... as determined when finding SOI next image before an EOI. + +2010-12-06 18:18:11 +0100 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: avoid infinite loop when resyncing + +2010-12-06 22:48:09 +0530 Arun Raghavan + + * gst/rawparse/gstaudioparse.c: + audioparse: Allow implicit channel map for 1-/2-channel audio + This makes sure we don't set an empty channel map array for 1-/2-channel + audio, causing an assert later on. + +2010-12-06 17:08:55 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Revert some parts of last commit that shouldn't be committed + +2010-12-06 17:05:28 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Really choose the latest possible subpictures + And not the first subpictures that are still valid according to the + page timeout. + +2010-12-06 16:44:11 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Refactor blending function and take average of all chroma values + +2010-12-03 17:35:36 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Improve selection of current to be displayed subpictures + Drop all subpictures that are too old anyway and clear the currently + displayed subpictures if num_rects==0 happens. + +2010-12-03 16:21:15 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Implement clipping of video buffers + Also don't clip subpicture buffers, they have no duration and + clipping them doesn't make much sense here. + +2010-12-03 16:08:13 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: Clean up locking some more + +2010-12-03 16:05:56 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Flush subtitles and all internal state when needed + +2010-12-03 15:52:21 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Set the global library log function exactly once + And don't use one of the possibly many renderer instances, this is only + calling for crashes. + +2010-12-03 15:46:40 +0100 Sebastian Dröge + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: Remove lots of commented out and unused code and clean up locking + +2010-12-01 09:59:14 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Fix more of the blending, so it looks quite good now + * libdvbsub gives us alpha channel already, not transparency level, so + don't do another "alpha = 255 - alpha", this is done by libdvbsub. + * Fix alpha channel handling in interpolation - assrender had an additional + 1bpp alpha bitmap as a possible mask, we don't. So don't use the palette + index array as alpha values; bug from quick code porting long ago to + changing pixel colors (assrender has a single pixel color for whole + regions or something, unlike dvbsub, which has indexed colors). + * Don't forget to reassign our YUV and other local pixel color variables + after shifting to work on the bottom part of a 2x2 subsample block, or + it's obviously very blocky. + Remaining issues in blending: + * Should probably be interpolating or doing something else useful with the + resulting U and V channels, so that most of the source pixel UV values would + actually be actually cared about, except for just one out of possibly four. + * Don't convert AYUV to ARGB in libdvbsub, and then back from ARGB to AYUV in + dvbsuboverlay for no reason + * Re-factor the whole thing to something more like textoverlay blending + * Related to that, perhaps cache the current spu in a good format for quick + blending on each frame, after which the more often called blending parts + might become more straightforward + +2010-12-01 07:26:03 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Fix blending bug regarding color channel addressing. + libdvbsub gives us ARGB ordered pixels right now, not RGBA. + +2010-12-01 07:20:07 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Do blending calls when appropriate + This gives us actually shown subtitles, however with bugs in the + current blitting code, resulting in very transparent subtitles. + +2010-12-01 07:06:35 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Implement fallback page_time_out honoring + The spec has a page_time_out in the page composition segment to ensure + subtitles don't get stuck on screen for too much longer than intended, + when future page composition segments get lost on bad reception, or other + problems. Honor it in the gst plugin side. + +2010-12-01 06:01:15 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: Implement subtitle queueing and syncing with video + Push incoming subtitle pages in a FIFO queue (pending_subtitles) + and dequeue the head when it's time to show it (when video running + time reaches the subtitle page running time). + Keep the subtitle page, that is supposed to be blended on top of video + currently, in a separate object variable (current_subtitle). As a + next step we can then pre-render current_subtitle to a better to blend + format. + +2010-12-01 05:49:22 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/dvb-sub.c: + dvbsuboverlay: Make the new dvb_subtitles_free() accept NULL + Don't crash if dvb_subtitles_free(NULL) gets passed, like most other + *_free functions are happy with. + +2010-12-01 05:26:02 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Pass page_time_out and pts with the DVBSubtitles structure + Eases holding onto the information in gst plugins side queue of + DVBSubtitles, so we won't need to create yet another temporary struct + to keep the pts and page_time_out too. + And this really logically belongs at the toplevel information set anyway + and in that struct... + +2010-12-01 04:28:02 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + dvbsuboverlay: Make the libdvbsub callback handler responsible for memory cleanup + We want to allow queueing of raw region image data in the gst plugin side, + and keep the data around until we pop the item from the queue. So make + the callback handler responsible for memory cleanup, if one is installed. + +2010-11-30 04:45:54 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + dvbsuboverlay: Work with GstClockTime instead of PTS for subtitle timing + Abuse libdvbsub PTS tracking to just store our running time in it, to get + it back in the callbacks. As GStreamer does its own PTS handling behind our + back (especially for video), we should just sync with video per running time, + not try to do it with PTS, which doesn't seem well accessible for video chain. + We can later relabel dvb-sub.c pts naming convention if wanted, it's just + passing along guint64 values, which GstClockTime fortunately is too. + The current idea is to collect the regions returned by the callback into + a FIFO buffer and pop and pre-render the top one into a separate + quick-to-blend cached format, which is then appropriately blended in the + video chain until the next one on top of the stack reaches the video chains + running time (or the fallback timer hits). + +2010-11-30 03:56:32 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/dvb-sub.c: + dvbsuboverlay: Add FIXME note about non-constant PTS for a display set handling. + +2010-11-30 03:47:46 +0200 Mart Raudsepp + + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + dvbsuboverlay: Remove dvb_sub_feed() API + GStreamer will only use dvb_sub_feed_with_pts, as it has its own PES filter + to do the header parsing. + +2010-11-29 20:55:30 +0000 Tim-Philipp Müller + + * gst/dvbsuboverlay/TODO: + dvbsuboverlay: more TODO + +2010-11-29 20:10:17 +0000 Mart Raudsepp + + * gst/mpegdemux/gstmpegtsdemux.c: + gstmpegtsdemux: add temporary **HACK** for dvb subs testing so dvbsuboverlay gets whole packets + leio, what's the mpegts demux hack about? + my libdvbsub code can't handle cut packets + so the hack instructs the demuxer to gather full packets before pushing down, but it applies that to more PES packet types than just dvbsub, but I'm not sure if that's a bad thing + either way, needs a cleaner solution, either in demuxer, or I need to handle cut packets + ok, but really it should be fixed in the overlay, right? + or a parser be inserted + the problem is that I don't know from the first packet beforehand if it is a cut one or no + not + err, first buffer + just when I receive the next one I see if it has a valid timestamp on it or not + so I can't very well queue it up in the chain either, I might be blocking the very last subtitle for no reason or something + but you could just drop/ignore packets until you find one, right? + find what? + a complete packet? + the problem isn't that they aren't complete + the problem is that they are cut across multiple GstBuffers by the demuxer without the hack + sure, I understand that + but you can't easily determine if a GstBuffer contains he start fragment of a packet or not? + I guess I could parse the packet and see if its length is enough, just like the libdvbsub code eventually does too + I can, it has a timestamp if it's the first chunk + I just never know if I need to wait for more, without some parsing + ah ok + while the demuxer could just give me an uncut one in the first place + like it always does for program streams + that gather_pes is always set in gstmpegdemux, but not in gstmpegtsdemux + +2010-11-29 20:06:07 +0000 Mart Raudsepp + + * configure.ac: + * gst/dvbsuboverlay/Makefile.am: + * gst/dvbsuboverlay/TODO: + * gst/dvbsuboverlay/dvb-sub.c: + * gst/dvbsuboverlay/dvb-sub.h: + * gst/dvbsuboverlay/ffmpeg-colorspace.h: + * gst/dvbsuboverlay/gstdvbsuboverlay.c: + * gst/dvbsuboverlay/gstdvbsuboverlay.h: + dvbsuboverlay: initial version, work in progress + +2010-12-03 18:11:56 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + audioparsers: update some documentation + +2010-12-03 18:11:38 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: add to documentation + +2010-12-03 18:11:09 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/audioparsers/gstdcaparse.c: + dcaparse: add to documentation + +2010-12-03 18:09:41 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/qtmux/gstqtmux.c: + qtmux: add documentation + +2010-11-08 19:58:31 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: increase keyframe awareness + ... which is not particular relevant for audio parsing, but more so + in video cases. In particular, auto-determine if dealing with video (caps). + +2010-12-03 17:46:27 +0100 Benjamin Gaignard + + * Android.mk: + * sys/audioflingersink/Android.mk: + * sys/audioflingersink/GstAndroid.cpp: + * sys/audioflingersink/audioflinger_wrapper.cpp: + * sys/audioflingersink/audioflinger_wrapper.h: + * sys/audioflingersink/gstaudioflingerringbuffer.h: + * sys/audioflingersink/gstaudioflingersink.c: + * sys/audioflingersink/gstaudioflingersink.h: + sys: Add android audioflingersink + +2010-12-03 17:42:46 +0100 Benjamin Gaignard + + * Android.mk: + * android/NOTICE: + * android/aacparse.mk: + * android/amrparse.mk: + * android/h264parse.mk: + * android/metadata.mk: + * android/qtmux.mk: + * android/sdpelem.mk: + Add build system for Android + +2010-12-02 15:45:02 +0200 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: smal api doc update + +2010-12-02 05:39:14 -0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Avoid assertion on image finishing + As imgbin_finished() is scheduled from g_idle_add, it might + be run a little later than expected, this can lead to the application + setting camerabin to ready before imgbin_finished() runs. In this case, + the processing counter goes to 0 and an assertion happens. + This patch relaxes the imgbin_finished() check on the processing + counter. + +2010-12-01 23:14:56 -0800 David Schleef + + * tools/element-maker: + element-maker: Handle names with multiple underscores + +2010-12-01 23:04:57 -0800 David Schleef + + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstchopmydata.c: + * gst/debugutils/gstchopmydata.h: + chopmydata: Add new element + This element splits up a stream into randomly-sized buffers. + Useful (maybe) for testing parsers. + +2010-12-02 03:09:59 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: Remove leftover comment + Remove comment that doesn't make sense anymore + +2010-12-01 23:21:33 +0100 Alessandro Decina + + * sys/applemedia/miovideosrc.c: + applemedia: don't use the deprecated g_strcasecmp function. + Replace g_strcasecmp with g_ascii_strcasecmp. + +2010-12-01 23:20:36 +0100 Alessandro Decina + + * gst/pcapparse/gstpcapparse.c: + * sys/applemedia/mioapi.c: + Fix compiler warnings with gcc 4.2.1 on OSX. + +2010-12-01 15:28:53 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + ac3parse: use proper EAC-3 caps + +2010-12-01 10:45:49 +0100 David Hoyt + + * gst/qtmux/gstqtmux.c: + qtmux: handle msvc ftruncate incompatibility + Fixes #636185. + +2010-10-09 17:39:36 -0700 David Schleef + + * tests/check/Makefile.am: + * tests/check/elements/schroenc.c: + Add a schroenc test + +2010-11-27 20:13:38 -0800 David Schleef + + * ext/dirac/gstdiracdec.cc: + * gst/liveadder/liveadder.c: + * gst/mpegpsmux/mpegpsmux.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + Fix pad template memleaks + Pad templates returned by gst_static_pad_template_get() were not + being unreffed. + +2010-11-30 18:43:24 -0800 David Schleef + + * ext/vp8/gstvp8enc.c: + vp8enc: Readd setting of granulepos + Revert parts of last patch that removed setting of granulepos. + oggmux still requires correct granulepos in incoming packet. + +2010-11-29 20:21:31 -0800 David Schleef + + * ext/vp8/gstvp8enc.c: + vp8enc: Don't override timestamps set by base class + Because the base class does it correctly. + Fixes: #635720, #625558. + +2010-11-30 15:41:02 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: avoid unexpected stray metadata + +2010-11-30 15:40:28 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: use proper _NONE output value when applicable + +2010-11-15 20:03:01 +0100 Sebastian Dröge + + * configure.ac: + * gst/jp2kdecimator/Makefile.am: + * gst/jp2kdecimator/gstjp2kdecimator.c: + * gst/jp2kdecimator/gstjp2kdecimator.h: + * gst/jp2kdecimator/jp2kcodestream.c: + * gst/jp2kdecimator/jp2kcodestream.h: + jp2kdecimator: Add a JPEG2000 decimator element + This element drops information from JPEG2000 images without reencoding. + +2010-11-23 21:45:41 +0100 Sebastian Dröge + + * ext/jp2k/gstjasperenc.c: + jp2kenc: Emit SOP markers in every codestream packet + This makes parsing much easier, faster and more reliable. + +2010-11-27 16:07:19 -0600 Alejandro Gonzalez + + * gst/qtmux/gstqtmux.c: + qtmux: gst_qtmux_check_difference verify before subtract + Avoid negative overflow by checking the order of operands + on subtraction of unsigned integers. + https://bugzilla.gnome.org/show_bug.cgi?id=635878 + +2010-11-27 18:58:07 -0800 David Schleef + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: Fix some memleaks + +2010-11-15 11:37:39 -0800 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: minor memleak fix + +2010-11-25 19:31:35 +0100 Edward Hervey + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: Remove dead assignments + +2010-11-25 19:31:03 +0100 Edward Hervey + + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + videomeasure: Remove dead assignments + +2010-11-25 19:25:27 +0100 Edward Hervey + + * gst/tta/gstttadec.c: + * gst/tta/gstttaparse.c: + tta: Remove dead assignments and useless variable + +2010-11-25 19:24:56 +0100 Edward Hervey + + * gst/stereo/gststereo.c: + stereo: Remove dead assignments + +2010-11-25 19:21:23 +0100 Edward Hervey + + * gst/sdp/gstsdpdemux.c: + sdp: Remove useless variables + +2010-11-25 19:21:11 +0100 Edward Hervey + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Remove dead assignments + +2010-11-25 19:21:01 +0100 Edward Hervey + + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + real: Remove dead assignments + +2010-11-25 19:20:51 +0100 Edward Hervey + + * gst/ivfparse/gstivfparse.c: + ivfparse: Remove dead assignments + +2010-11-25 19:06:49 +0100 Edward Hervey + + * gst/freeze/gstfreeze.c: + freeze: Remove dead assignments + +2010-11-25 19:06:38 +0100 Edward Hervey + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Remove dead assignments + +2010-11-25 19:06:27 +0100 Edward Hervey + + * gst/dtmf/gstrtpdtmfdepay.c: + dtmf: Remove dead assignments + +2010-11-25 19:01:42 +0100 Edward Hervey + + * gst/dccp/gstdccp.c: + dccp: Remove dead assignments + +2010-11-25 18:56:42 +0100 Edward Hervey + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstbaseparse.c: + audioparsers: Remove dead assignments + +2010-11-25 18:52:47 +0100 Edward Hervey + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + vp8: Remove dead assignments + +2010-11-25 18:49:23 +0100 Edward Hervey + + * ext/sdl/sdlaudiosink.c: + sdlaudiosink: Remove dead assignments + +2010-11-25 18:47:15 +0100 Edward Hervey + + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + schroedinger: Remove dead assignments + +2010-11-25 18:43:30 +0100 Edward Hervey + + * ext/mimic/gstmimenc.c: + mimenc: Remove dead assignment + +2010-11-25 18:43:18 +0100 Edward Hervey + + * ext/cog/gstcogdownsample.c: + cogdownsample: Remove dead assignment + +2010-11-25 18:42:33 +0100 Edward Hervey + + * ext/opencv/gstcvdilateerode.c: + * ext/opencv/gstcvlaplace.c: + * ext/opencv/gstcvsmooth.c: + * ext/opencv/gstcvsobel.c: + * ext/opencv/gstedgedetect.c: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstopencvutils.c: + * ext/opencv/gstopencvvideofilter.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttextwrite.c: + opencv: Remove dead assignments + ... and fix indentation + +2010-11-25 18:33:37 +0100 Edward Hervey + + * ext/cog/gstcogcolorspace.c: + cogcolorspace: Remove dead assignment + +2010-11-25 18:30:56 +0100 Edward Hervey + + * ext/cog/cogframe.c: + cogframe: Remove dead assignments + +2010-11-25 18:29:31 +0100 Edward Hervey + + * ext/celt/gstceltenc.c: + celtenc: Initialize variable + In the case the tag_setter returns something, empty_tags would be + garbage value. + +2010-11-25 18:29:22 +0100 Edward Hervey + + * ext/celt/gstceltenc.c: + celtenc: Remove dead assignment + +2010-11-25 18:26:21 +0100 Edward Hervey + + * ext/assrender/gstassrender.c: + assrender: Remove dead assignments + +2010-11-25 17:14:23 +0100 Andoni Morales Alastruey + + * gst/audioparsers/gstbaseparse.c: + audioparse: fix possible division-by-zero + https://bugzilla.gnome.org/show_bug.cgi?id=635786 + +2010-10-23 01:56:04 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Don't pass the ShmPipe to the function closing the shm area + +2010-10-23 01:22:43 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Use the right counter when freeing buffers + +2010-10-23 01:12:49 +0200 Olivier Crête + + * sys/shm/Makefile.am: + * sys/shm/shmalloc.h: + shmalloc: Manually decide to use GLib or not in the shmalloc + So make it easier for embedders to use it with or without Glib + +2010-10-20 22:49:59 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Remove duplicated arguement + +2010-10-20 22:39:21 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Fix socket leak on connect() error + +2010-10-20 22:28:13 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + * sys/shm/shmpipe.h: + shm: sp_client_recv returns negative on error, so make the retval signed + +2010-10-20 22:17:30 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Rename confusingly named variable + +2010-10-20 22:14:09 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Change permissions on old shm areas too + Change the permissions on old shm areas + +2010-10-20 22:01:36 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Use the macro for the last error too + +2010-10-20 21:52:31 +0200 Olivier Crête + + * sys/shm/shmpipe.c: + shm: Use "ablock" for all ShmAllocBlock variables + Use the ablock variable name for ShmAllocBlocks and block for + ShmBlock + +2010-10-20 21:52:24 +0200 Olivier Crête + + * sys/shm/shmpipe.h: + shm: Add more comments + +2010-10-20 21:41:15 +0200 Youness Alaoui + + * sys/shm/shmpipe.c: + shm: stylist improvements + +2010-10-20 21:33:24 +0200 Youness Alaoui + + * sys/shm/shmalloc.c: + shm: Explain some fields + Explain what some of the fields in the allocator actually mean + +2010-11-22 15:26:06 +0100 Robert Swain + + * gst/interlace/gstinterlace.c: + interlace: Fix buffer timestamp and duration + The field rate is twice the frame rate of the src pad and so the duration of + one output buffer is src_fps_d / (2 * src_fps_n). + +2010-11-22 10:29:56 +0100 Robert Swain + + * gst/interlace/gstinterlace.c: + interlace: Rename pattern property to field-pattern + This is mostly for clarity of what the property means and, I believe, makes the + pattern-offset property more comprehensible. + +2010-11-22 10:27:22 +0100 Robert Swain + + * gst/interlace/gstinterlace.c: + interlace: Add pattern offset property + This property allows one to start at any point within the field pattern after + a discontinuity (whenever gst_interlace_reset () is called). Thus with the + 2:3:3:2 pattern, for example, one can start at offset 2 and achieve 3:2:2:3 + or offset 1 and achieve 3:3:2:2. + +2010-11-19 17:01:41 -0300 Lasse Laukkanen + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/gstcamerabin.c: + camerabin: Create imagebin elements when image mode is set in camerabin NULL state + This patch refactors imagebin element creation and linking into separate functions, + and adds re-using also for imagebin internally created elements. + So this refactoring allows creating imagebin elements already in NULL state when + application sets the image mode, and next state change from NULL to READY will be faster. + This reduces first capture latency. + Earlier the elements were both created and linked in NULL to READY state change. + +2010-11-22 12:23:30 +0100 Andoni Morales Alastruey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: Create a sub-buffer with the section length + +2010-11-19 15:23:41 -0500 Josh Doe + + * ext/opencv/gstcvdilateerode.c: + * ext/opencv/gstcvequalizehist.c: + * ext/opencv/gstcvlaplace.c: + * ext/opencv/gstcvsmooth.c: + * ext/opencv/gstcvsobel.c: + * ext/opencv/gstedgedetect.c: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstopencvutils.c: + * ext/opencv/gstopencvutils.h: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttextwrite.c: + opencv: fix caps issues and extend supported caps for some elements + Some elements had vague caps, such as "video/x-raw-rgb", which caused problems + at least with textwrite. For other elements, the underlying OpenCV functions + support more than just one image type, so I increased the number of supported + caps. + I created a utility function "gst_opencv_caps_from_cv_image_type", so each + element creates caps directly from OpenCV image types, such as CV_8UC1 for + 8-bit grayscale. This function uses gstvideo to create uniform caps. + https://bugzilla.gnome.org/show_bug.cgi?id=635304 + +2010-11-22 17:43:12 -0300 Thiago Santos + + * gst/jpegformat/gstjpegparse.c: + jpegparse: Small optimization on tags parsing + Optimize a little avoiding copying a taglist when parsing xmp/exif + data. + +2010-09-17 09:52:12 -0300 Thiago Santos + + * gst/selector/gstoutputselector.c: + outputselector: Avoid losing the last_buffer when switching + This patch makes outputselector take an extra ref when pushing + the last_buffer to avoid it losing it during the switch function. + This makes resend-latest properly work if the active-pad is changed + during the switch function buffer pushing (on a pad probe, for example). + https://bugzilla.gnome.org/show_bug.cgi?id=629917 + +2010-09-17 09:44:02 -0300 Thiago Santos + + * gst/selector/gstoutputselector.c: + outputselector: Recheck pending switch after pushing buffer + This patch makes output-selector always recheck if there's a + pending pad switch after pushing a buffer, preventing that + it pushes a buffer on the 'wrong' pad. + https://bugzilla.gnome.org/show_bug.cgi?id=629917 + +2010-11-22 15:10:26 +0200 Olivier Aubert + + * ext/rsvg/Makefile.am: + * ext/rsvg/gstrsvg.c: + * ext/rsvg/gstrsvgoverlay.c: + * ext/rsvg/gstrsvgoverlay.h: + rsvgoverlay: scalable and relative svg overlay with cairo + Add a cairo+librsvg based overlay element to the rsvg plugin. + +2010-11-22 17:06:05 +0200 Stefan Kost + + * tests/check/Makefile.am: + make: remove traces or moved/removed plugins + +2010-11-22 17:05:23 +0200 Stefan Kost + + * Makefile.am: + make: add missinf trailing \ to fix the build + +2010-11-21 23:11:19 -0800 David Schleef + + * gst/colorspace/colorspace.c: + colorspace: remove incorrect check + +2010-11-19 17:55:36 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: remove remnant of obsolete property + +2010-11-19 15:18:58 +0100 Mark Nauwelaerts + + * tests/check/elements/qtmux.c: + tests: qtmux: also unit test fragmented file cases + +2010-07-30 12:48:29 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: allow specifying trak timescale + This is mainly because Smoothstreaming client are broken and don't + take the TimeScale property into account. + +2010-11-19 17:41:41 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + qtmux: include sdtp atoms for ismv fragmented files + Based on patch by Marc-André Lureau + +2010-11-19 19:17:45 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: enable default fragmented file for ismlmux + +2010-09-02 13:58:05 +0200 Marc-André Lureau + + * gst/qtmux/atoms.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + qtmux: add ismlmux, for fragmented isml major brand + +2010-11-19 14:44:45 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: finalize sinkpads list + +2010-07-22 19:40:07 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + qtmux: add moov in streamheader + +2010-08-06 13:26:27 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: add streamable property to avoid building fragmented mfra index + +2010-11-18 16:48:06 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: add mfra to fragmented file + Based on patch by Marc-André Lureau + +2010-11-15 15:17:59 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: optionally create fragmented file + In this mode, an initial empty moov (containing only stream metadata) is written, + followed by fragments containing actual data (along with required metadata). + New fragments are started either at keyframe (if such are sparse) or when + property configured duration exceeded. + Based on patch by Marc-André Lureau + Fixes #632911. + +2010-11-15 15:12:45 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + qtmux: use helper to set atom flags from given uint + +2010-11-09 16:49:07 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: refactor configuring and sending of moov + Based on patch by Marc-André Lureau + +2010-11-09 15:54:44 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: refactor extra top-level atom handling + Also check a bit more for possible errors, and free proper items in such case. + +2010-11-09 15:01:15 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: refactor slightly using buffer helper + +2010-11-05 13:48:57 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: fix misinforming comment + +2010-11-05 12:08:15 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + qtmux: delegate mvex handling to atoms + ... which keeps qtmux simpler. + +2009-09-28 16:11:35 +0200 Marc-André Lureau + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + qtmux: add mvex/trex in header if fragmented + One "trex" is added per "trak". We don't support default values, + but the "trex" box is mandatory. + +2009-09-28 13:01:30 +0200 Marc-André Lureau + + * gst/qtmux/fourcc.h: + qtmux: add a couple of fourcc for fragmented mp4 + +2010-11-05 11:08:01 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: avoid removing temp file when error occurred + +2009-09-30 17:16:30 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + qtmux: truncate buffer file after each send + +2009-09-28 16:53:51 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + qtmux: remove temp file when reset/finalize + +2010-08-18 02:00:10 +0530 Arun Raghavan + + * gst/jpegformat/gstjpegparse.c: + jpegformat: Push tags after setting srcpad caps + This patch defers emission of tag events till caps are set on the source + pad of jpegparse, so that these tags can be seen downstream. + https://bugzilla.gnome.org/show_bug.cgi?id=627211 + +2010-11-19 18:51:32 +0100 Alessandro Decina + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: fix compiler warning + +2010-11-19 18:26:59 +0100 Andoni Morales Alastruey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: fix thinko + +2010-11-19 17:25:01 +0100 Andoni Morales Alastruey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: fix handling of TOT and TDT sections. Fixes #635281. + TDT and TOT sections, with PID=0x14, doesn't extend to several packets + and the section filter is not needed here and shouldn't be used at all + for these tables because the have a different structure. + For example, TDT tables were not parsed for odd hours because this bit + is the 'current_next_indicator' bit for the other sections, and the table + was discarded. + +2010-11-19 17:22:06 +0100 Andoni Morales Alastruey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: don't calculate the CRC for TOT tables. Fixes #635281. + TOT tables, with table_id=0x73, don't have a CRC, so don't calcute it + +2010-11-18 18:42:38 +0100 Andoni Morales Alastruey + + * sys/dvb/dvbbasebin.c: + dvbbasebin: Add TDT to the initial pids filter for dvbsrc. Fixes #635200. + +2010-11-16 17:35:36 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: add gst_jpeg_parse_skip_marker () + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-08-13 13:14:30 +0200 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: use byte reader accessors + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-17 10:49:30 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: inline gst_jpeg_parse_sof () + No functional changes (hopefully). + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-16 17:23:35 +0100 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: fix typo + https://bugzilla.gnome.org/show_bug.cgi?id=626618 + +2010-11-18 10:58:06 -0300 Aleksey Lim + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Do not use audio clock after stopping video capture + Adda provide clock function to camerabin to make it not + provide the audio clock of the record bin when no video + recording is happening + Fixes #613379 + +2010-11-17 16:23:42 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: use correct offset when adding index entry + ... bearing in mind that BUFFER_OFFSET is media specific and may not + reflect the basic offset after having been parsed. + +2010-11-17 14:30:09 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: enhancements for timestamp marked framed formats + That is, as such formats allow subclass to extract position from frame, + it is possible to extract duration (if not otherwise provided) + from (near) last frame, and a seek can fairly accurately target the required + position. + Fixes #631389. + +2010-11-16 17:06:14 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: refactor frame scanning peformed by _loop + +2010-11-16 18:04:00 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: slightly optimize sending of pending newsegment events + +2010-11-16 17:04:35 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: minor fixes and enhancements + Arrange for upstream as well as downstream flushing when seeking. + Also determine upstream size as well as seekability. Adjust some comments + to reality and employ debug statement in proper order. + +2010-11-17 15:33:36 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + aacparse: minor cleanups + +2010-11-17 15:24:37 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + aacparse: fix regression in ADIF src caps setting + +2010-11-16 12:11:53 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: parse seektable + Fixes #631389 (partially). + +2010-11-16 12:08:54 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: minor refactor and enable default baseparse segment clipping + +2010-11-12 00:40:33 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + celvideosrc: fix nasty deadlock + We cannot call any CMBufferQueue functions while holding the lock that + our callback also depends on. So now we make use of CMBufferQueue's + trigger API in order to get notified when the queue has data. + +2010-11-11 23:41:44 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/cmapi.c: + * sys/applemedia/cmapi.h: + cmapi: cover CMBufferQueue's trigger API + +2010-11-11 21:42:03 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + celvideosrc: unlock should also notify + Otherwise we depend on being woken up by the CoreMedia queue getting + its next buffer. + +2010-11-10 23:16:51 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtdec.h: + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + applemedia: don't push synchronously from callback + The codec that called us might be holding locks to shared resources, so + we should never push downstream from within its buffer callback. + Note that a GstBufferList is not used here because we need to preserve + the buffer metadata held by our GstBuffer subclasses. + +2010-11-10 20:52:47 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtenc.c: + vtenc: bump H.264 level from 1.3 to 3.0 + This should be turned into a property. + +2010-11-10 20:44:15 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + celvideosrc: add basic device selection support + +2010-11-10 20:51:27 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/cvapi.c: + * sys/applemedia/cvapi.h: + cvapi: add wrapper for IO surface access + To be used in a future video sink for zero-copy rendering. + +2010-11-10 20:25:28 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celapi.c: + * sys/applemedia/celapi.h: + celapi: add capture port type constants + +2010-11-09 22:43:14 +0200 Mart Raudsepp + + * ext/assrender/gstassrender.c: + assrender: Remove unused src_stride variable from blit functions + +2010-11-09 18:10:43 -0300 Thiago Santos + + * Makefile.am: + * win32/common/libgstphotography.def: + win32: Adding photography interface .def file + Adds check-exports to -bad to have photography interface + .def file created + Fixes #578629 + +2010-11-09 19:38:25 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstmpegaudioparse.c: + mpegaudioparse: fix silly leak in _reset + +2010-11-08 23:54:31 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vth264decbin.c: + * sys/applemedia/vth264encbin.c: + applemedia: biplanar is actually NV12, not I420 + D'oh! + +2010-11-08 21:22:13 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + vtenc: remove keyframe enforcement workaround + Was only needed for old iOS where the H.264 encoder didn't support + kVTEncodeFrameOptionKey_ForceKeyFrame. + +2010-11-08 18:56:52 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/cvapi.c: + * sys/applemedia/cvapi.h: + cvapi: add a few extra bits of wrapping + +2010-11-08 15:08:19 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/coremediabuffer.c: + * sys/applemedia/corevideobuffer.c: + * sys/applemedia/cvapi.h: + applemedia: lock CVPixelBuffer read-only + As per Apple's docs, this may improve performance by avoiding redundant + invalidations of existing caches of the buffer contents. + +2010-11-08 10:33:58 -0300 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: Remove gstring leak + Simplify gst-camerabin-test by removing GString and replacing + with gchar for the filename handling. Also removes a leak of + the GString data. + +2010-11-08 16:00:21 +0200 Stefan Kost + + * ext/rsvg/gstrsvgdec.c: + rsvgdec: avoid reffing the element in chain + +2010-11-08 15:45:48 +0200 Stefan Kost + + * ext/rsvg/gstrsvgdec.c: + rsvgdec: add some minimal logging to track what it is doing + +2010-11-08 13:52:49 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + celvideosrc: put planar first in template caps + +2010-11-08 13:49:04 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/cvapi.h: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vth264decbin.c: + * sys/applemedia/vth264encbin.c: + applemedia: improve vtenc/vtdec performance + Profiling of H.264 encode and decode revealed that conversions + between packed and planar were happening behind the scenes. + Hence we now choose I420 instead of YUY2. + +2010-10-22 18:07:00 +0300 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: add async bus handler to gst-camerabin-test + Splits the bus handler into sync and async, keeping the + prepare-xwindow handling at the sync for faster handling and + moving the others to the async handler + +2010-11-06 12:27:32 +0000 Tim-Philipp Müller + + * configure.ac: + configure: we still require Gtk+ >= 2.14.0 when compiling against 2.0 + The check for the minor version was dropped in one of the previous + commits. + +2010-11-05 16:51:57 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + celvideosrc: measure fps when statistics is enabled + Also refactor timestamping slightly. + +2010-11-05 15:14:08 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + celvideosrc: update to new Celestial and MediaToolbox APIs + This means celvideosrc is no longer compatible with iOS 3.x. + +2010-11-05 15:08:56 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + celvideosrc: fix debug category description + +2010-11-05 15:08:02 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celapi.c: + * sys/applemedia/celapi.h: + celapi: update to reflect new API on iOS 4.x + Also add remaining property constants for device and stream. + +2010-11-05 15:07:38 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/mtapi.c: + * sys/applemedia/mtapi.h: + mtapi: update to reflect new API on iOS 4.x + Also add remaining property constants for device and stream. + +2010-11-05 10:56:51 +0100 Sebastian Dröge + + * gst/colorspace/gstcolorspaceorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.h: + colorspace: Update generated ORC sources + +2010-08-26 17:08:19 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + camerabin: Adds 'idle' property + Adds 'idle', a read-only boolean property that tells applications + if there is any capturing/saving/encoding going on in camerabin. If + not, it is safe to set it to NULL and release resources without + losing data. + +2010-05-05 13:58:07 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * tests/check/elements/camerabin.c: + camerabin: Add "ready-for-capture" property + Add "ready-for-capture" property to indicate if preparing a new + capture is possible. + "ready-for-capture" changes before the 'image-done' signal, so + the application can be notified that it can do a new capture + even before the previous one has finished encoding/saving. + +2010-11-05 00:32:35 +0000 Tim-Philipp Müller + + * configure.ac: + configure: don't even check for Gtk+ if --disable-examples is specified + There are Gtk+-based examples in plugin dirs and tests/icles/ too, and + we want to disable those as well then. + +2010-11-05 00:24:31 +0000 Tim-Philipp Müller + + * configure.ac: + configure: add --with-gtk option and default to Gtk+ 2.0 while the 3.0 API is still in flux + https://bugzilla.gnome.org/show_bug.cgi?id=634014 + +2010-11-03 00:04:27 +0000 Tim-Philipp Müller + + * configure.ac: + * tests/Makefile.am: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/zbar.c: + * tests/files/Makefile.am: + * tests/files/barcode.png: + tests: add very simple zbar unit test + Not valgrind clean yet (could be zbar's fault though). + +2010-11-04 19:25:24 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/avfvideosrc.m: + * sys/applemedia/celvideosrc.c: + * sys/applemedia/miovideosrc.c: + * sys/applemedia/qtkitvideosrc.m: + applemedia: make video source element details consistent + Inspired by the v4l2src element details. + +2010-11-04 19:11:04 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/avfvideosrc.m: + * sys/applemedia/qtkitvideosrc.m: + applemedia: consistently use gst_element_class_set_details_simple + +2010-11-04 19:02:50 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + celvideosrc: update e-mail address + +2010-11-04 18:59:44 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/Makefile.am: + * sys/applemedia/celvideosrc.c: + * sys/applemedia/celvideosrc.h: + * sys/applemedia/iphonecamerasrc.c: + * sys/applemedia/iphonecamerasrc.h: + * sys/applemedia/plugin.m: + applemedia: rename iphonecamerasrc to celvideosrc + This is in order to improve consistency with the other three sources. + +2010-11-04 17:58:36 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/avfvideosrc.m: + avfvideosrc: don't explicitly empty the buffer queue + We're holding the only reference to it so there's no need to explicitly + empty it right before letting go of our reference. + +2010-11-04 17:50:33 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/avfvideosrc.m: + avfvideosrc: make buffer offset start from zero + +2010-11-04 17:47:25 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: implement zero-copy by using buffer-factory + This means we'll wrap each CoreVideo buffer inside a GstBuffer instead of + making a copy. + +2010-11-04 17:44:12 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/bufferfactory.h: + * sys/applemedia/bufferfactory.m: + bufferfactory: add support for wrapping CVBuffer + +2010-11-04 17:24:03 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: fix up refcounting + Should keep a strong reference to the device, but we don't need to manage + the reference count of elements of an NSMutableArray as it takes care of + that for us. + +2010-11-04 17:16:05 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/qtkitvideosrc.m: + qtkitvideosrc: simplify timestamping algorithm + Aligning timestamps on duration boundaries, skipping frames and so forth + are clearly things that fall outside the scope of a video source. + +2010-11-04 14:14:09 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/Makefile.am: + * sys/applemedia/avfvideosrc.h: + * sys/applemedia/avfvideosrc.m: + * sys/applemedia/bufferfactory.h: + * sys/applemedia/bufferfactory.m: + * sys/applemedia/plugin.m: + applemedia: add new iOS video source based on AVFoundation + This element makes use of the documented AVFoundation framework made + available starting with iOS 4.0, and hence this means we can finally + capture video using a public API. + +2010-11-04 14:24:36 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtdec.c: + * sys/applemedia/vtenc.c: + * sys/applemedia/vth264decbin.c: + applemedia: fix stream-format caps used for H.264 + The stream-format's "avc-sample" member is now called just "avc". + +2010-11-04 14:29:37 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/miovideodevice.c: + * sys/applemedia/plugin.m: + * sys/applemedia/qtkitvideosrc.m: + applemedia: update e-mail addresses + +2010-11-04 14:18:29 +0100 Sebastian Dröge + + * gst/colorspace/gstcolorspace.c: + colorspace: Inverse -base version check logic to actually make sense + +2010-11-03 18:34:28 -0400 Olivier Crête + + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/gstpcapparse.h: + pcapparse: Add support for Linux Cooked Capture (SLL) frames + +2010-11-03 18:23:27 -0400 Olivier Crête + + * gst/pcapparse/gstpcapparse.c: + pcapparse: Fail on unknown version or linktype + The element only knows about major version 2 and only decodes linktype ethernet + +2010-11-03 18:02:49 -0400 Olivier Crête + + * gst/pcapparse/gstpcapparse.c: + pcapparse: Send error GstMessage if stream doesn't have the expected magic + +2010-11-03 16:16:24 +0100 Andoni Morales Alastruey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: send TDT tables messages in a serialized event downstream + https://bugzilla.gnome.org/show_bug.cgi?id=633917 + +2010-11-03 15:37:48 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + colorspace: Add support for IYU1 + +2010-11-03 15:12:42 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: First version of YUV9 and YVU9 implementation + +2010-11-03 09:20:15 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + colorspace: Use GST_CHECK_PLUGINS_BASE_VERSION() instead of other hacks + +2010-10-18 15:32:14 +0200 Thijs Vermeir + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/mpegvideoparse/mpegvideoparse.h: + mpegvideoparse: fix timestamp generation + Use information from the gop header and picture + header to calculate the picture timestamp. (time_code + and temporal_reference) and adapt to upstream timestamps if + provided. + https://bugzilla.gnome.org/show_bug.cgi?id=632222 + +2010-11-02 23:08:30 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/vtapi.h: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtdec.h: + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + applemedia: switch vtapi to CFTypeRef style typedefs + +2010-11-02 22:53:33 +0100 Ole André Vadla RavnÃ¥s + + * sys/applemedia/celapi.h: + * sys/applemedia/cmapi.c: + * sys/applemedia/cmapi.h: + * sys/applemedia/coremediabuffer.c: + * sys/applemedia/coremediabuffer.h: + * sys/applemedia/iphonecamerasrc.c: + * sys/applemedia/iphonecamerasrc.h: + * sys/applemedia/mioapi.h: + * sys/applemedia/miovideodevice.c: + * sys/applemedia/miovideodevice.h: + * sys/applemedia/miovideosrc.c: + * sys/applemedia/miovideosrc.h: + * sys/applemedia/mtapi.h: + * sys/applemedia/vtapi.h: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtdec.h: + * sys/applemedia/vtenc.c: + applemedia: support public version of CoreMedia + Also rename the relevant API so we mirror the public API more closely, and + switch to CoreFoundation CFTypeRef style typedefs. We still support the old + private CoreMedia in order to not break OS X support. + This means that vtenc and vtdec are now compatible with iOS 4.x, and in + theory also future versions of OS X, where this API may turn public like + it has on iOS. + +2010-11-02 17:46:11 +0000 Tim-Philipp Müller + + * ext/zbar/gstzbar.c: + zbar: handle more formats that start with an 8-bit Y plane + We can handle most planar YUV layouts too, as long as we don't + tell zbar about the chroma planes. + +2010-11-02 17:18:52 +0000 Tim-Philipp Müller + + * ext/zbar/gstzbar.c: + * ext/zbar/gstzbar.h: + zbar: use correct stride + Fixes detection for images with a width that's not a multiple of four. + Based on patch by: Kaj-Michael Lang + Based on patch by: Stefan Kost + https://bugzilla.gnome.org/show_bug.cgi?id=630830 + +2010-11-02 16:54:59 +0000 Tim-Philipp Müller + + * gst/colorspace/gstcolorspace.c: + colorspace: fix build with current git of gst-plugins-base + ifdef tests don't work so well if we define them in the code + above in case they aren't defined. + +2010-11-02 16:35:57 +0000 Tim-Philipp Müller + + * ext/zbar/gstzbar.c: + zbar: minor clean-up + Fix typo and use DEFAULT_FOO define for property default. + +2010-11-02 16:32:55 +0000 Tim-Philipp Müller + + * ext/zbar/gstzbar.c: + zbar: disable cache by default + Since it breaks still image bar code detection. + +2010-11-02 16:05:37 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + colorspace: Add support for 8 bit paletted RGB + This needs the 8 bit paletted support from -base + which will be committed after release. Without this + the 8 bit parts are disabled. + +2010-11-02 10:24:49 -0300 Thiago Santos + + * gst/camerabin/camerabinpreview.c: + camerabin: Add missing change to previous commits + Forgot to add this change to the latest commits. This fixes the build. + +2010-11-02 09:39:49 -0300 Thiago Santos + + * gst/camerabin/camerabinpreview.c: + camerabin: Fix leaks in the preview handling + Remember to unref the bus after adding the watch. + Remember to unref the element after getting it with + gst_bin_get_by_name. + +2010-11-02 09:38:20 -0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Do not leak a caps + gst_caps_replace doesn't take ownership, but refs the caps. So we + unref the remaining caps. + +2010-09-24 16:28:13 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Reset pre-night-mode stored fps when mode changes + When switching between video/still modes the pre-night-mode fps + should be reset to prevent it being used in the incorrect mode, causing + the videosource to fail configuring itself + +2010-09-21 16:23:47 +0300 Teemu Katajisto + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: add support for setting many post-processing elements + Instead of taking a single element as input for the image post + processing option, take a list of comma separated elements + that will be used. + +2010-09-20 11:54:20 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: Store app preferred capture parameters separately + Store width/height/fps for video captures in a separate variable + than the one that stores the currently used value. + This prevents the user preferences to be lost when resetting + the currently used dimensions for night mode, for example + +2010-09-20 08:42:41 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: cleanup used caps when going to NULL + Resets used caps so that camerabin doesn't try to use them + when restarting, where elements/properties might have changed + and the old caps be incompatible + +2010-09-09 10:50:59 +0300 Teemu Katajisto + + * gst/camerabin/gstcamerabin.c: + camerabin: fix priority for idle_add function + Adds a higher priority to the idle_add function for when + the image bin finished the image capture. This reduces the + delay for the application to be notified about this. + +2010-11-01 23:04:44 +0200 Stefan Kost + + * gst/selector/gstinputselector.c: + inputselector: log times in human readable form + +2010-11-01 22:40:36 +0200 Stefan Kost + + * gst/selector/gstinputselector.c: + inputselector: move reoccuring logs to LOG and remove a double info + Less debug spew in DEBUG category. No need to log pad again if we use + GST_LOG_OBJECT(pad,...). + +2010-11-01 15:53:52 +0000 Tim-Philipp Müller + + * ext/cog/gstcogorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.h: + cog, colorspace: update orc backup functions for latest changes + Should fix build on systems without the latest orc. + +2010-11-01 15:53:31 +0000 Tim-Philipp Müller + + * 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/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/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 translations + +2010-10-31 23:46:27 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + colorspace: Add support for RGB15 and BGR15 + +2010-10-31 23:44:20 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + colorspace: Add support for RGB16 and BGR16 + +2010-10-31 23:25:57 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: Add support for Y16 + +2010-10-31 23:25:40 +0100 Sebastian Dröge + + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: Fix Y800 ORC getline implementation + +2010-10-31 23:07:43 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: Add support for A420 + +2010-10-31 23:00:07 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + colorspace: Add support for Y41B + +2010-10-31 22:39:38 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + colorspace: Add support for SDTV/HDTV YUV conversions + +2010-10-31 22:21:35 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + colorspace: Add comment for the A420 getline/putline table row + +2010-10-31 20:40:09 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + colorspace: Add const to the source arrays and the getline/putline table + +2010-10-31 19:42:30 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + colorspace: Make fast-path transform table const + +2010-10-31 19:39:33 +0100 Sebastian Dröge + + * gst/colorspace/colorspace.c: + colorspace: Only do the I420->YUY2 conversion once per scanline in the fast path + +2010-10-29 14:08:58 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: use only upstream duration if it provides one + +2010-10-25 14:15:50 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: reflow update_bitrate code + ... which makes local variables represent real state better, and avoids + triggering unneeded updates/actions. + +2010-10-25 14:13:51 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: add some debug statements + +2010-10-28 18:51:02 +0200 Sebastian Dröge + + * gst/gaudieffects/Makefile.am: + * gst/gaudieffects/gstplugin.c: + gaudieffects: Include gstcontroller header and add the required CFLAGS + +2010-10-27 14:57:36 +0200 Luis de Bethencourt + + * gst/gaudieffects/gstburn.c: + * gst/gaudieffects/gstburn.h: + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstchromium.h: + * gst/gaudieffects/gstdilate.c: + * gst/gaudieffects/gstdilate.h: + * gst/gaudieffects/gstdodge.c: + * gst/gaudieffects/gstexclusion.c: + * gst/gaudieffects/gstexclusion.h: + * gst/gaudieffects/gstplugin.c: + * gst/gaudieffects/gstsolarize.c: + * gst/gaudieffects/gstsolarize.h: + gaudieffects: made filter parameters dynamic and controllable + +2010-07-01 15:07:41 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideodevice.c: + winks: work around shutdown deadlock + GetOverlappedResult() might never return with some drivers. Time out + after 1000 ms. We cannot really fix this without either: + 1) Controlling the streaming thread so we can do CancelIo() from that + thread. + 2) Switch to using IO completion ports. + +2010-06-11 18:04:58 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideodevice.c: + winks: remove JPEG validation hack + This should clearly not be done in a video source. + +2010-04-20 12:05:45 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/ksvideohelpers.c: + winks: set PrioritySubClass to KSPRIORITY_NORMAL instead of 1 + In order to match the reference implementation. + +2010-04-20 11:59:23 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideodevice.c: + winks: retry when KsCreatePin fails with ERROR_NOT_READY + Turns out that the reference implementation does this, hence we need to + mirror this behaviour. This typically happens with hardware that takes + some time to initialize. + +2009-10-26 16:09:00 +0100 Ole André Vadla RavnÃ¥s + + * sys/winks/ksvideohelpers.c: + winks: improve framerate fraction conversions + * For instance 7.5 fps should be represented as 15/2 instead of 7/1. + * Clamp AvgTimePerFrame and dwBitRate to account for rounding errors. + +2009-10-12 17:26:15 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksclock.c: + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideodevice.h: + * sys/winks/gstksvideosrc.c: + * sys/winks/kshelpers.c: + * sys/winks/kshelpers.h: + * sys/winks/ksvideohelpers.c: + winks: improve error-handling + Most important part here is special-casing "device busy" so the application + is able to provide better feedback when another application is using the + device. + +2009-09-07 16:45:57 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideodevice.h: + * sys/winks/gstksvideosrc.c: + winks: performance improvements + * Make the driver write directly into each GstBuffer to avoid memcpy(). + * Don't memset() the buffer before reusing it. + * Recycle memory by keeping two spare buffers. Two because the sink + downstream may keep a ref to the previous buffer. + Note that we align buffers on highest possible byte boundary (4096) so we + don't have to take into account what kind of alignment the driver requires. + +2009-09-07 16:09:34 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksclock.c: + * sys/winks/gstksclock.h: + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideodevice.h: + * sys/winks/gstksvideosrc.c: + * sys/winks/gstksvideosrc.h: + winks: store priv pointer instead of looking it up + +2009-08-31 19:33:30 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideosrc.c: + winks: post error message on flow-unexpected + +2009-08-31 19:28:50 +0200 Andres Colubri + + * sys/winks/gstksvideosrc.c: + * sys/winks/gstksvideosrc.h: + winks: add property probing support + +2009-08-31 19:26:36 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideosrc.c: + * sys/winks/ksvideohelpers.c: + * sys/winks/ksvideohelpers.h: + winks: sort devices that look like cameras first + +2009-08-31 19:25:02 +0200 Knut Inge Hvidsten + + * sys/winks/ksvideohelpers.c: + winks: provide guessed pixel-aspect-ratio in caps + +2009-08-31 19:23:40 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksclock.c: + winks: only try to change state when actually open + +2009-08-31 19:22:40 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/kshelpers.c: + * sys/winks/kshelpers.h: + * sys/winks/ksvideohelpers.c: + winks: ignore unsupported formats + +2010-10-28 16:14:34 +0200 Ole André Vadla RavnÃ¥s + + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideosrc.c: + winks: adjust a couple of logging severities + Should clearly not be considered warnings, as they're quite common. + +2010-10-27 18:30:11 +0100 Ole André Vadla RavnÃ¥s + + * configure.ac: + * sys/Makefile.am: + * sys/applemedia/Makefile.am: + * sys/applemedia/celapi.c: + * sys/applemedia/celapi.h: + * sys/applemedia/cmapi.c: + * sys/applemedia/cmapi.h: + * sys/applemedia/coremediabuffer.c: + * sys/applemedia/coremediabuffer.h: + * sys/applemedia/coremediactx.c: + * sys/applemedia/coremediactx.h: + * sys/applemedia/corevideobuffer.c: + * sys/applemedia/corevideobuffer.h: + * sys/applemedia/cvapi.c: + * sys/applemedia/cvapi.h: + * sys/applemedia/dynapi-internal.h: + * sys/applemedia/dynapi.c: + * sys/applemedia/dynapi.h: + * sys/applemedia/iphonecamerasrc.c: + * sys/applemedia/iphonecamerasrc.h: + * sys/applemedia/mioapi.c: + * sys/applemedia/mioapi.h: + * sys/applemedia/miovideodevice.c: + * sys/applemedia/miovideodevice.h: + * sys/applemedia/miovideosrc.c: + * sys/applemedia/miovideosrc.h: + * sys/applemedia/mtapi.c: + * sys/applemedia/mtapi.h: + * sys/applemedia/plugin.m: + * sys/applemedia/qtkitvideosrc.h: + * sys/applemedia/qtkitvideosrc.m: + * sys/applemedia/vtapi.c: + * sys/applemedia/vtapi.h: + * sys/applemedia/vtdec.c: + * sys/applemedia/vtdec.h: + * sys/applemedia/vtenc.c: + * sys/applemedia/vtenc.h: + * sys/applemedia/vth264decbin.c: + * sys/applemedia/vth264decbin.h: + * sys/applemedia/vth264encbin.c: + * sys/applemedia/vth264encbin.h: + * sys/applemedia/vtutil.c: + * sys/applemedia/vtutil.h: + applemedia: New plugin for Apple multimedia APIs + Provides the following elements: + qtkitvideosrc: OS X video source relying on the QTKit API. Comes with + hard-coded caps as the API does not provide any way of querying for + formats supported by the hardware. Hasn't been tested a lot, but seems + to work. + miovideosrc: OS X video source which uses the undocumented/private + CoreMediaIOServices API, which is also the one used by iChat. + Present on latest version of Leopard and all versions of Snow Leopard. + Has been tested extensively with built-in cameras and TANDBERG's + PrecisionHD USB camera. + vtenc, vtdec: Generic codec wrappers which make use of the undocumented/ + private VideoToolbox API on OS X and iOS. List of codecs are currently + hard-coded to H.264 for vtenc, and H.264 + JPEG for vtdec. Can easily be + expanded by adding new entries to the lists, but haven't yet had time to + do that. Should probably also implement probing as available codecs depend + on the OS and its version, and there doesn't seem to be any way to + enumerate the available codecs. + vth264decbin, vth264encbin: Wrapper bins to make it easier to use + vtdec_h264/vtenc_h264 in live scenarios. + iphonecamerasrc: iPhone camera source relying on the undocumented/private + Celestial API. Tested on iOS 3.1 running on an iPhone 3GS. Stops working + after a few minutes, presumably because of a resource leak. Needs some + love. + Note that the iOS parts haven't yet been ported to iOS 4.x. + +2010-10-28 11:43:34 +0100 Sebastian Pölsterl + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Add tag event emission. Fixes #627253 + +2010-10-27 13:17:10 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From 7bbd708 to 011bcc8 + +2010-10-21 16:06:08 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Check the source scene mode when creating it + As camerabin only gets notified of the changes from the + video source element, it should query the initial value + once the source is created so it initializes itself + correctly. + +2010-10-20 00:07:01 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: fix distcheck a bit more + Dist elements/parser.h header file, which fixes the 'make check' build. + +2010-10-19 23:40:36 +0100 Tim-Philipp Müller + + * tests/check/elements/valve.c: + tests: fix valve unit test + gst_buffer_pad_alloc() needs simple caps or NULL caps, + ANY caps are not allowed. + +2010-10-19 23:25:54 +0100 Tim-Philipp Müller + + * gst/audioparsers/gstdcaparse.c: + dcaparse: init variable to make osx build bot happy + gstdcaparse.c: In function 'gst_dca_parse_check_valid_frame': + gstdcaparse.c:246: warning: 'best_sync' may be used uninitialized in this function + +2010-10-19 00:15:20 +0100 Tim-Philipp Müller + + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstdcaparse.c: + * gst/audioparsers/gstdcaparse.h: + * gst/audioparsers/plugin.c: + audioparsers: add very basic dts/dca parser + Still some issues, e.g. with seekable queries in totem, but also + processing already-chunked input (created with matroskademux ! gdppay). + +2010-10-19 16:23:23 +0300 Stefan Kost + + * ext/amrwbenc/gstamrwbenc.c: + * ext/apexsink/gstapexsink.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafsink.c: + * ext/audioresample/gstaudioresample.c: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2enc.c: + * ext/cdaudio/gstcdaudio.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstlogoinsert.c: + * ext/dc1394/gstdc1394.c: + * ext/dirac/gstdiracenc.cc: + * ext/directfb/dfbvideosink.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: + * ext/faac/gstfaac.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkatetag.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + * ext/libfame/gstlibfame.c: + * ext/modplug/gstmodplug.cc: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * ext/mplex/gstmplexjob.cc: + * ext/musicbrainz/gsttrm.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/nas/nassink.c: + * ext/neon/gstneonhttpsrc.c: + * ext/ofa/gstofa.c: + * ext/opencv/gstedgedetect.c: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gsttemplatematch.c: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsfsink.c: + * ext/soundtouch/gstpitch.cc: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkinenc.c: + * ext/xvid/gstxvidenc.c: + * ext/zbar/gstzbar.c: + various (ext): add missing G_PARAM_STATIC_STRINGS flags + Canonicalize property names as needed. + +2010-10-19 16:24:12 +0300 Stefan Kost + + * gst/videosignal/gstvideoanalyse.c: + videoanalyse: fix copy'n'paste off by one for param spec flags change + +2010-10-19 13:43:14 +0300 Stefan Kost + + * gst/asfmux/gstasfmux.c: + * gst/autoconvert/gstautoconvert.c: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversrc.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/filter/gstiir.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: + * gst/gaudieffects/gstburn.c: + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstdilate.c: + * gst/gaudieffects/gstdodge.c: + * gst/gaudieffects/gstexclusion.c: + * gst/gaudieffects/gstsolarize.c: + * gst/h264parse/gsth264parse.c: + * gst/id3tag/gstid3mux.c: + * gst/librfb/gstrfbsrc.c: + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpegdemux/flutspatinfo.c: + * gst/mpegdemux/flutspmtinfo.c: + * gst/mpegdemux/flutspmtstreaminfo.c: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/mpegtsparse.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mve/gstmvemux.c: + * gst/nsf/gstnsf.c: + * gst/passthrough/gstpassthrough.c: + * gst/pcapparse/gstpcapparse.c: + * gst/playondemand/gstplayondemand.c: + * gst/pnm/gstpnmenc.c: + * gst/qtmux/gstqtmoovrecover.c: + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + * gst/rtpmux/gstrtpmux.c: + * gst/scaletempo/gstscaletempo.c: + * gst/sdp/gstsdpdemux.c: + * gst/selector/gstinputselector.c: + * gst/selector/gstoutputselector.c: + * gst/smooth/gstsmooth.c: + * gst/speed/gstspeed.c: + * gst/stereo/gststereo.c: + * gst/subenc/gstsrtenc.c: + * gst/vbidec/gstvbidec.c: + * gst/videodrop/gstvideodrop.c: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + * gst/videosignal/gstvideoanalyse.c: + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + various (gst): add missing G_PARAM_STATIC_STRINGS flags + Canonicalize property names as needed. + +2010-10-19 15:30:02 +0300 Stefan Kost + + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafsink.c: + * ext/shout/gstshout.c: + * gst/smooth/gstsmooth.c: + various: wrap property registration and add a single fixme for long desc. + +2010-10-19 15:06:36 +0300 Stefan Kost + + * gst/pnm/gstpnmenc.c: + pnmenc: remove stray " in doc comment + +2010-10-19 13:44:25 +0300 Stefan Kost + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: remove DEBUG_FUNCPTR from gobject vmethods + +2010-10-08 19:33:16 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: Adds tests for the new tags + Adds tests for the new exif tags in -base + +2010-10-09 17:36:07 -0700 David Schleef + + * ext/dirac/gstdiracenc.cc: + * ext/schroedinger/gstschroenc.c: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + basevideo: Move common fields/functions to basecodec + +2010-09-28 18:21:57 +0300 Kaj-Michael Lang + + * ext/zbar/gstzbar.c: + * ext/zbar/gstzbar.h: + zbar: Make scanner cache optional + +2010-10-14 23:04:15 +0300 Stefan Kost + + * gst-libs/gst/interfaces/photography.h: + photography: actualy use the enum in the vmethods + If we introduce a new GstPhotographyNoiseReduction, lets also use it + in the vmethods + +2010-10-14 23:03:19 +0300 Stefan Kost + + * gst-libs/gst/interfaces/photography.h: + photography: retab interface struct fields + +2010-10-14 12:32:05 -0700 David Schleef + + * common: + Automatic update of common submodule + From 5a668bf to 7bbd708 + +2010-10-14 14:07:48 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin-enum.h: + camerabin: Remove unused entry + Remove camerabin unused enum entry + +2010-10-14 13:41:00 -0300 Thiago Santos + + * gst-libs/gst/interfaces/photography.h: + photography: Avoid breaking ABI + Move the newly added functions/fields to the end of the structs + +2010-10-14 11:45:55 +0200 Thijs Vermeir + + * gst/mpegvideoparse/mpegpacketiser.c: + mpegvideoparse: accelerate search for start code + As the startcode always starts with 0x000001 some iterations + can be skipped if values > 1 are detected. + ~ 70% faster on HD video stream. + https://bugzilla.gnome.org/show_bug.cgi?id=632130 + +2010-10-14 16:48:21 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: properly parse e-ac3 frame header + Also add a few debug statements. + +2010-10-14 11:24:42 +0200 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: reflow opening and closing decoder + In particular, this reconfigures quite forcefully when renegotiation is needed. + Fixes #631501. + +2010-10-13 17:47:29 +0200 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: prevent infinite loop when adjusting framerate + Fixes #632070. + +2010-10-12 21:46:37 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: update tests to the new datetime api + Update jifmux tests to use new gstdatetime API in core + +2010-10-12 09:37:56 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstrotate.c: + * gst/geometrictransform/gstrotate.h: + * gst/geometrictransform/plugin.c: + geometrictransform: Adds rotate element + Adds a new rotate element to geometrictransform. It still + needs some work. But this is a good starting point. + Based on patch from Bert Douglas + +2010-10-13 11:00:01 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: tweak setting buffer metadata; avoid timestamp jitter + Fixes #631993. + +2010-10-12 18:17:27 +0200 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: cater for renegotiation + At least, whenever either stream (e.g. ADTS) or upstream provides necessary + info for doing so. + Fixes #631501. + +2010-10-12 18:07:49 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + aacparse: streamline src caps setting + In particular, also set src caps whenever changes in stream warrant doing so. + +2010-10-12 16:13:07 +0100 Tim-Philipp Müller + + * sys/directdraw/gstdirectdrawsink.c: + directdrawsink: port GstXOverlay bits to new API + Don't use deprecated API. + +2010-10-12 16:35:55 +0200 Mark Nauwelaerts + + * tests/check/elements/faac.c: + faac: adjust unit test to faac modified output + +2010-10-10 12:32:33 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + checks: remove variables from Makefile.am that aren't set + Remove some stuff that was copy'n'pasted from core but + doesn't apply here. The following vars aren't set: + CHECK_CFLAGS, CHECK_LIBS, GST_OBJ_CFLAGS, GST_OBJ_LIBS, + so we may just as well remove them. + +2010-10-12 12:11:37 +0200 Sebastian Dröge + + * tests/examples/camerabin/gst-camera.c: + examples: Fix compilation with GTK+ 3.0 + +2010-10-12 10:28:33 +0200 Sebastian Dröge + + * tests/check/elements/flacparse.c: + flacparse: Adjust unit tests to new flacparse behaviour + Garbage after frames is now included in the frames because flacparse + has no easy way to detect the real end of a frame. Decoders are + expected to everything after the frame because only decoding the + bitstream will reveal the real end of the frame. + Fixes bug #631814. + +2010-10-12 10:27:53 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Don't drop the last frame if it is followed by garbage + See bug #631814. + +2010-10-11 17:49:46 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: perform bitrate handling and posting after newsegment sending + +2010-10-11 17:36:19 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: immediately post subclass provided bitrate + +2010-10-11 17:06:48 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: fix parsing with unknown framesizes + Fixes #631814 (mostly). + +2010-10-11 17:05:28 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: handle trailing encoder output + +2010-10-11 14:25:41 +0200 Sebastian Dröge + + * ext/gsettings/gstswitchsrc.c: + switchsrc: Set the GST_ELEMENT_IS_SOURCE flag + +2010-09-13 19:07:55 +0100 Damien Lespiau + + * sys/dvb/gstdvbsrc.c: + dvbsrc: Fix example usage, bandwidth=8 not 8MHz + The bandwidth property is enum that takes the values 8, 7, 6, AUTO not + 8MHz. + +2010-10-08 17:01:29 -0400 Olivier Crête + + * sys/shm/shmalloc.h: + shm: Add C++ protection + Add c++ protection in the relevant places + +2010-10-08 12:44:45 -0700 David Schleef + + * common: + Automatic update of common submodule + From c4a8adc to 5a668bf + +2010-10-08 12:55:29 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From 5e3c9bf to c4a8adc + +2010-10-07 23:37:36 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Simplify frame header parsing by using lookup tables + Based on a patch by Felipe Contreras. + See bug #631200. + +2010-10-07 23:28:08 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: Don't parse the complete FLAC frames but only look for valid frame headers + Thanks to Felipe Contreras for the suggestion. This is partially + based on his patches and makes flacparse more than 3.5 times faster. + Looking for valid frame headers is unlikely to give false positives + because every frame header is at least 9 bytes long, contains a + 14 bit sync code and a 8 bit checksum over the first 8 bytes. + Fixes bug #631200. + +2010-10-07 11:59:30 +0200 Mark Nauwelaerts + + * gst/sdp/gstsdpdemux.c: + sdpdemux: workaround internal rtspsrc failing state change + Fixes #630046. + +2010-10-07 10:34:48 +0200 Sebastian Dröge + + * gst/rawparse/Makefile.am: + * gst/rawparse/gstaudioparse.c: + * gst/rawparse/gstaudioparse.h: + audioparse: Add support for setting the channel-positions + +2010-10-06 18:32:51 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Really post tags only after the initial newsegment event + The first newsegment event will be send by the first call to + gst_base_parse_push_buffer() if necessary, posting the tags + before that is not a good idea. Instead do it from the + GstBaseParse::pre_push_buffer vfunc. + +2010-10-06 16:54:16 +0200 Sebastian Dröge + + * gst/coloreffects/gstchromahold.c: + chromahold: Fix hue calculation for red colors + Also make the calculation much more accurate... + +2010-10-06 15:21:09 +0200 Sebastian Dröge + + * gst/coloreffects/gstchromahold.c: + chromahold: Make everything greyscale if the target color is grey + +2010-10-06 11:55:34 +0200 Sebastian Dröge + + * gst/coloreffects/Makefile.am: + * gst/coloreffects/gstchromahold.c: + * gst/coloreffects/gstchromahold.h: + * gst/coloreffects/gstplugin.c: + chromahold: Add chromahold color effect + This effect converts all colors except a single one to + grey. The color is selected by an RGB triple and a + tolerance for the color matching in hue degree can be specified. + +2010-10-05 17:04:10 +0200 Mark Nauwelaerts + + * gst/sdp/gstsdpdemux.c: + sdpdemux: fix and reflow some exits + +2010-10-05 16:56:49 +0200 Mark Nauwelaerts + + * gst/sdp/gstsdpdemux.c: + sdpdemux: error out if no streams found in sdp message + +2010-10-05 16:47:51 +0200 Mark Nauwelaerts + + * gst/sdp/gstsdpdemux.c: + sdpdemux: unbreak standard manager setup + +2010-10-05 11:44:48 +0100 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + .gitignore: ignore more unit test binaries + +2010-10-05 11:42:42 +0100 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * ext/Makefile.am: + * ext/alsaspdif/Makefile.am: + * ext/alsaspdif/alsaspdifsink.c: + * ext/alsaspdif/alsaspdifsink.h: + * gst-plugins-bad.spec.in: + * m4/Makefile.am: + * m4/gst-alsa.m4: + alsaspdif: remove alsaspdifsink element + Remove alsaspdifsink, it's not needed any longer. alsasink in -base + has been able to handle SPDIF for a while now. + +2010-10-05 11:17:52 +0100 Tim-Philipp Müller + + * gst/audioparsers/gstbaseparse.c: + Revert "baseparse: add skip property" + This reverts commit b5a3d60363d837a10f0533c141ec93d10b742312. + Reverting this for now, since no one really seems to remember why this + property exists or what it could possibly be good for. It seems to have + been in the original mp3parse since the beginning of time and was back- + ported from there. + +2010-10-04 10:41:52 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Fix uninitialized variable compiler warnings + These warnings are wrong, the variables are only used if they were + initialized by the bit reader. + +2010-09-14 02:48:58 +0300 Felipe Contreras + + * gst/audioparsers/gstflacparse.c: + flacparse: fix picture parsing + Signed-off-by: Felipe Contreras + +2010-10-03 23:54:49 +0200 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Push tags before the header buffers are pushed + +2010-08-02 20:50:21 +0300 Felipe Contreras + + * gst/audioparsers/gstflacparse.c: + flacparse: trivial caps fix + Signed-off-by: Felipe Contreras + +2010-10-03 23:45:46 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Add G_PARAM_STATIC_STRINGS + Add G_PARAM_STATIC_STRINGS to qtmux properties + +2010-10-03 23:14:53 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: valve: Fix tests build + Adds missing cflags/libs to valve check test to + fix build + +2010-10-03 23:50:29 +0200 Sebastian Dröge + + * gst/audioparsers/gstbaseparse.c: + audioparser: Let the format string agree with the parameters to fix compiler warning + +2010-10-03 15:55:22 +0200 Sebastian Dröge + + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: Check return values of the bitreader functions + +2010-10-03 15:41:20 +0200 Sebastian Dröge + + * gst/audioparsers/gstac3parse.c: + ac3parse: Use unchecked versions of the bitreader get functions + We didn't check the return values anyway... + +2010-09-28 13:52:29 +0300 Stefan Kost + + * gst/valve/gstvalve.c: + valve: no need to ref the object in _chain + Don't ref the pad in chain, like elsewhere + +2010-09-22 15:44:43 +0530 Arun Raghavan + + * gst/audioparsers/gstbaseparse.c: + baseparse: Fix debug output + We lose the reference to the buffer after gst_pad_push(), so the debug + print should happen before. + https://bugzilla.gnome.org/show_bug.cgi?id=622276 + +2010-10-01 12:34:55 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/flacparse.c: + * tests/check/elements/parser.c: + * tests/check/elements/parser.h: + audioparsers: add flacparse unit test + ... and tweak parser test helper in the process. + +2010-09-29 16:12:42 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: support reverse playback + ... in pull mode or upstream driven. + +2010-09-27 12:16:43 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: remove done TODOs and update documentation + +2010-09-25 14:40:54 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: use determined seekability in answering SEEKING query + +2010-09-25 14:32:06 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: add skip property + +2010-09-25 13:59:39 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/ac3parse.c: + * tests/check/elements/mpegaudioparse.c: + audioparsers: add ac3parse and mpegaudioparse unit test + +2010-09-25 13:59:18 +0200 Mark Nauwelaerts + + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstmpegaudioparse.c: + * gst/audioparsers/gstmpegaudioparse.h: + * gst/audioparsers/plugin.c: + mpegaudioparse: initial version + ... adequately equivalent to mp3parse, so lets boldly set it + to higher rank. + +2010-09-25 14:01:07 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + aacparse: set minimum frame size at _start + ... rather than one time at _init. + +2010-09-25 13:50:51 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/aacparse.c: + * tests/check/elements/aacparse_data.h: + * tests/check/elements/amrparse.c: + * tests/check/elements/amrparse_data.h: + * tests/check/elements/parser.c: + * tests/check/elements/parser.h: + audioparsers: refactor existing unit tests using common helper + +2010-09-22 15:07:09 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: use _set_frame_props to configure frame lead_in and lead_out + ... provided a corresponding decoder with sufficient leading and following + frames to carry out full decoding for a particular segment. + +2010-09-22 14:13:17 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + * gst/audioparsers/gstflacparse.c: + baseparse: use _set_duration to configure duration update interval + ... as it logically belongs there as one or the other; either subclass + can provide a duration, or an estimate must be made (reguarly updated). + +2010-09-22 13:55:20 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: localize use of provided fps information + +2010-09-22 12:13:12 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: seek table and accurate seek support + +2010-09-21 13:57:10 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: proper and more extended segment and seek handling + That is, loop pause handling, segment seek support, newsegment for gaps, etc + +2010-09-21 10:57:04 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: add index support + +2010-09-21 09:59:56 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: refactor state reset + +2010-09-20 16:39:37 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: prevent indefinite resyncing + +2010-09-20 13:57:55 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: specific EOS handling if no output so far + +2010-09-20 13:31:57 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: adjust _set_frame_prop documentation and set default as claimed + +2010-09-20 13:30:54 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: fix bitrate copy-and-paste and update heuristic + +2010-09-17 18:33:29 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: post duration message if average bitrates is updated + +2010-09-17 18:24:22 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: remove is_seekable vmethod and use a set_seek instead + Seekability, like duration, etc is unlikely to change (frequently), and + the default assumption covers most cases, so let subclass set when needed. + At the same time, allow subclass to indicate if it has seek-metadata (table) + available, and possibly have it provide an average bitrate. + +2010-09-17 17:35:40 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: remove redundant default is_seekable + +2010-09-17 17:21:46 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: add another hook for subclass prior to pushing buffer + ... and allow subclass to perform custom segment clipping, or to + emit tags or messages at this time. + +2010-09-17 17:19:37 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: 0 converts to 0 by default + +2010-09-16 18:56:46 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + basepase: refactor conversion using helper function and export default convert + +2010-09-16 18:35:47 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: streamline query handling + +2010-09-16 11:51:20 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: cleanup struct and remove unused member + +2010-08-16 11:04:37 +0200 Mark Nauwelaerts + + * gst/audioparsers/plugin.c: + audioparsers: increase ranks to enable auto-plugging + Because we can, and should, have some shakedown testing before having + these make it into -good later on ... + +2010-09-22 16:07:24 +0530 Arun Raghavan + + * gst/audioparsers/gstbaseparse.c: + baseparse: Allow chaining of subclass event handlers + This allows the child class to chain its event handler with + GstBaseParse, so that subclasses don't have to duplicate all the default + event handling logic. + https://bugzilla.gnome.org/show_bug.cgi?id=622276 + +2010-09-30 17:48:35 -0400 Olivier Crête + + * tests/check/elements/valve.c: + tests: Fix caps leak in the valve test + +2010-09-30 17:24:29 -0400 Olivier Crête + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/valve.c: + valve: Add unit tests + Add a unit test for the valve element. + +2010-09-30 16:26:19 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + valve: Make the drop variable into an atomic. + Using an atomic allows us to avoid locking the whole object all time time. + As suggested by Stefan Kost. + +2010-09-30 16:22:04 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + valve: Correctly set the DISCONT flag after dropping buffers + +2010-09-30 16:16:47 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + valve: Remove superflous checking casts + +2010-09-30 16:13:23 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + valve: Fix style, improve comments + Minor improvements to the comments and break a few overly long lines + +2010-09-30 16:07:29 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + rtpmux: Improve documentation + Add an example pipeline, and try to explain a bit more what it does. + +2010-09-29 17:34:00 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Do not wrongly fail when starting a capture + If the elements are in NULL/READY and changing state to + PAUSED/PLAYING while a capture is started + camerabin might not set the active_bin properly causing the + capture start to fail. + This patch fixes it by checking the current and pending state + of the branches instead of only the current one + +2010-09-29 10:13:06 +0200 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: reverse playback; cater for decoder delay + ... thereby actually using the gather and decode queues. + +2010-09-29 10:08:17 +0200 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: tweak output buffer timestamping + In particular, avoid packetised input leading to initial to non-0 output ts. + +2010-09-28 16:20:50 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Use static caps instead of converting strings to caps all the time + +2010-09-28 16:14:14 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Fix crashes if plugins don't provide correct property information + The vertigo plugin for example claims to have 3 properties but + the 3rd property does nothing and has a NULL name. + Fixes bug #630783. + Thanks to Martti Kühne for debugging this. + +2010-09-28 14:26:11 +0300 Stefan Kost + + * gst/valve/gstvalve.c: + valve: move default: parst in the switch statement to the end + Now sure if it matters, but the previous form looks weired. + +2010-09-28 14:23:01 +0300 Stefan Kost + + * gst/valve/gstvalve.c: + valve: move debug-category registration to type init + +2010-09-28 14:22:18 +0300 Stefan Kost + + * gst/liveadder/liveadder.c: + liveadder: move debug-category registration to type init + +2010-09-28 14:17:45 +0300 Stefan Kost + + * gst/liveadder/liveadder.c: + liveadder: GST_BOILERPLATE already sets parent_class + +2010-09-28 14:16:58 +0300 Stefan Kost + + * gst/liveadder/liveadder.c: + liveadder: use base_init for pad_templates and element_details + +2010-09-28 14:15:57 +0300 Stefan Kost + + * gst/liveadder/liveadder.c: + liveadder: use G_PARAM_STATIC_STRINGS on properties + +2010-09-28 14:15:13 +0300 Stefan Kost + + * gst/valve/gstvalve.c: + valve: use G_PARAM_STATIC_STRINGS on properties + +2010-09-28 14:07:39 +0300 Stefan Kost + + * gst/valve/gstvalve.c: + valve: GST_BOILERPLATE already sets parent_class + +2010-09-28 14:08:29 +0300 Stefan Kost + + * gst/videomeasure/gstvideomeasure_collector.c: + videomeassure: GST_BOILERPLATE already sets parent_class + +2010-09-28 11:35:53 +0300 Hu Gang + + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + * gst/camerabin/gstcamerabin-enum.h: + photography: extend photography iface + Add more color tone modes and add NoseReduction settings. + Fixes #616814. + +2010-09-26 20:41:25 +0100 Tim-Philipp Müller + + * ext/resindvd/resindvdsrc.c: + resindvdsrc: improve error messages on read erros + Provide 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:05:17 +0100 Tim-Philipp Müller + + * configure.ac: + configure: set plugin release datetime + +2010-09-25 12:33:58 +0200 Sebastian Dröge + + * ext/ofa/gstofa.c: + ofa: Call g_object_notify() after the fingerprint was created + +2010-09-25 10:46:34 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rfilter.h: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rmixer.h: + * gst/frei0r/gstfrei0rsrc.c: + * gst/frei0r/gstfrei0rsrc.h: + frei0r: Fix scanning of plugin subdirectories and support different vendors + The frei0r spec specifies, that plugins can be in subdirectories inside + the main plugin directories to introduce new namespaces called vendors. + +2010-09-24 22:47:01 +0200 Sebastian Dröge + + * gst/frei0r/frei0r.h: + frei0r: Update frei0r interface specification to 1.2 + +2010-09-24 22:43:51 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Add support for the FREI0R_PATH environment variable + This was added in version 1.2 of the spec and replaces the default + list of directories. + +2010-09-23 14:15:08 +0300 Lasse Laukkanen + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: initialize interval_ts and last_frames_* counters + Initialize interval_ts to first QOS event timestamp, otherwise the + fps statistics are printed always after one rendered frame. + Also, initialize last_frames_* counters, the values are bogus e.g. after + PLAYING-NULL-PLAYING state change. + +2010-09-24 13:29:55 +0300 Stefan Kost + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: remove unused variable + +2010-09-24 13:25:22 +0300 Stefan Kost + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: remove unused signal boilerplate + +2010-09-24 13:24:48 +0300 Stefan Kost + + * gst/rtpmux/gstrtpmux.c: + rtpmux: no need to ref pad in _chain() + +2010-09-22 23:41:32 -0300 Thiago Santos + + * tests/examples/camerabin/gst-camera.c: + camerabin: example: make gst-camera use flags + Enable all convertion flags in gst-camera example app + for safety. + Fixes #603063 + +2010-09-22 23:39:07 -0300 Thiago Santos + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin-enum.c: + * gst/camerabin/gstcamerabin-enum.h: + camerabin: Adds new video-colorspace-flag to flags + Adds a new flag to allow a colorspace convertion before + the video encoder element. + Fixes #603063 + +2010-09-22 22:39:49 -0300 Thiago Santos + + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Use link_full version for disabling hierarchy check + Disable hierarchy checks when linking because we are already + handling the element adding to bins and it should be done + correctly. + +2010-09-22 21:03:56 -0300 Thiago Santos + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Set queues to silent + We currently don't use queues' signals, so set them + to silent. + +2010-09-22 11:57:28 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + schrodec: Fix class definition + Class structures should include parent class, not the parent + instance structure. + +2010-09-22 16:41:33 +0200 Wim Taymans + + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/gstpcapparse.h: + pcapparse: fix weird caps code + Remove the weird (failing) code to figure out caps on the srcpad. + Add a caps property to decide what caps to put on the outgoing buffers. + Fix an event leak. + +2010-09-21 18:13:37 -0700 David Schleef + + * gst/colorspace/colorspace.c: + colorspace: quiet a GST_ERROR + +2010-09-21 19:07:05 +0200 Wim Taymans + + * gst/sdp/gstsdpdemux.c: + * gst/sdp/gstsdpdemux.h: + sdpdemux: add property to disable redirect + Add a property to avoid redirection to the rtsp-sdp:// url but instead embeds an + rtspsrc element inside sdpdemux as the session manager. + Based on patch by Marco Ballesio. + Fixes #630046 + +2010-09-21 18:45:03 +0200 Edward Hervey + + * ext/sdl/sdlvideosink.c: + sdlvideosink: Fix function prototype for touchy compilers + +2010-09-21 18:34:19 +0200 Edward Hervey + + * common: + Automatic update of common submodule + From 080e025 to 5e3c9bf + +2010-09-21 16:31:07 +0200 Edward Hervey + + * ext/sdl/sdlvideosink.c: + sdl: Port to new XOverlay API + Fixes #630253 + +2010-09-21 16:26:34 +0200 Edward Hervey + + * sys/vdpau/gstvdpsink.c: + vdpau: Use the new XOverlay API + Fixes #630254 + +2010-09-21 10:59:42 -0300 Thiago Santos + + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camerabin-test.c: + camerabin: examples: do not use deprecated GstXOverlay functions + Replace the deprecated gst_x_overlay_set_xwindow_id with + gst_x_overlay_set_window_handle + Fixes #630255 + +2010-09-21 12:33:18 +0200 Sebastian Dröge + + * configure.ac: + configure: Use -DGST_DISABLE_DEPRECATED again for GIT versions + +2010-09-21 12:29:06 +0200 Sebastian Dröge + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + dshowdecwrapper: Don't use GST_FLOW_IS_FATAL() + And don't error out on UNEXPECTED + +2010-09-21 12:27:56 +0200 Sebastian Dröge + + * ext/spc/gstspc.c: + spc: Don't use GST_FLOW_IS_FATAL() + +2010-09-21 12:27:20 +0200 Sebastian Dröge + + * ext/mplex/gstmplex.cc: + mplex: Don't use GST_FLOW_IS_SUCCESS() + +2010-08-27 19:17:14 +0200 Sebastian Dröge + + * tests/icles/pitch-test.c: + pitch-test: Don't use deprecated GstController API + +2010-08-27 19:00:38 +0200 Sebastian Dröge + + * ext/timidity/gsttimidity.c: + timidity: Don't post an error message on the bus for UNEXPECTED + Also don't use GST_FLOW_IS_FATAL() + +2010-08-27 19:00:18 +0200 Sebastian Dröge + + * ext/timidity/gstwildmidi.c: + wildmidi: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:58:23 +0200 Sebastian Dröge + + * ext/gme/gstgme.c: + gme: Post an error message on the bus for fatal errors + Also don't use GST_FLOW_IS_FATAL(). + +2010-08-27 18:56:23 +0200 Sebastian Dröge + + * ext/sndfile/gstsfsink.c: + sfsink: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:52:54 +0200 Sebastian Dröge + + * gst/tta/gstttaparse.c: + ttaparse: Don't post an error message on UNEXPECTED + Also don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:51:59 +0200 Sebastian Dröge + + * gst/sdp/gstsdpdemux.c: + sdpdemux: Don't use GST_FLOW_IS_SUCCESS() + +2010-08-27 18:51:24 +0200 Sebastian Dröge + + * gst/rawparse/gstrawparse.c: + rawparse: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:50:30 +0200 Sebastian Dröge + + * gst/nuvdemux/gstnuvdemux.c: + nuvdemux: Don't use GST_FLOW_IS_FATAL() + And don't post an error message for WRONG_STATE or UNEXPECTED. + +2010-08-27 18:49:12 +0200 Sebastian Dröge + + * gst/nsf/gstnsf.c: + * gst/nsf/nes_apu.c: + nsf: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:48:25 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:47:03 +0200 Sebastian Dröge + + * gst/mve/gstmvedemux.c: + * gst/mve/gstmvedemux.h: + mvedemux: Add proper flow return aggregation + NOT_LINKED should only be returned if all streams returned NOT_LINKED. + +2010-08-27 18:41:06 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/mpegtsparse.c: + mpegdemux: Don't use GST_FLOW_IS_FATAL() + And fix some minor issues related to its usage. + +2010-08-27 18:36:26 +0200 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Don't use GST_FLOW_IS_FATAL() + +2010-08-27 18:35:10 +0200 Sebastian Dröge + + * gst/audioparsers/gstbaseparse.c: + baseparse: Don't use GST_FLOW_IS_FATAL() + Also don't post an error message for UNEXPECTED and do it + for NOT_LINKED. + +2010-08-27 18:33:49 +0200 Sebastian Dröge + + * gst/asfmux/gstasfparse.c: + asfparse: Don't use GST_FLOW_IS_FATAL() + Also don't push EOS downstream on WRONG_STATE, it will be dropped anyway. + +2010-08-27 18:32:46 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Don't use GST_FLOW_IS_SUCCESS() + +2010-08-27 18:32:33 +0200 Sebastian Dröge + + * gst/aiff/aiffparse.c: + aiffparse: Don't use GST_FLOW_IS_FATAL() + +2010-09-20 21:46:49 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Mention photography interface in docs + Add a note to docs about getting the videosource and accessing + its photography interface (in case it has it) + Fixes #616923 + +2010-08-25 14:04:59 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Adds missing variable initialization + Adds missing app_src_vid initialization + +2010-08-26 15:33:59 +0300 Teemu Katajisto + + * gst/camerabin/gstcamerabin.c: + camerabin: check state change to playing for imagebin and videobin + Properly check and handle error cases related to imagebin and + videobin state changes. + +2010-06-28 21:48:26 -0300 Thiago Santos + + * gst/camerabin/camerabinimage.c: + camerabin: Remove useless src template pad + camerabin imagebin doesn't need a src template pad. + +2010-06-21 09:34:43 -0300 Thiago Santos + + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinpreview.h: + * gst/camerabin/gstcamerabin.c: + camerabin: Forward tag events to preview pipeline + Forward tag events from image pipeline to preview pipeline so + that preview elements can use capture tags information + +2010-06-21 16:17:24 +0300 Hoseok Chang + + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinpreview.h: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: add "preview-source-filter" property + Adds 'preview-source-filter' for adding an element to proccess + the preview images before posting them to the bus. + +2010-05-25 15:39:43 +0300 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + camerabin: update tag names in test application to latest gst definitions + +2010-05-17 13:44:36 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: Make block-after-capture resetting more consistent + Adds another boolean to help controlling viewfinder blocking, + making it possible for the applications to reset the viewfinder + blocking after capture was started but before the blocking + actually happens. + +2010-05-12 21:11:27 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Unblock the viewfinder when going to READY + Unblock the viewfinder when going to ready to avoid + blocking when setting camerabin to playing again and + attemping to capture. Keep the property as is. + +2010-09-20 17:19:33 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: add monitoring and support for photoiface zoom for video-source + Makes camerabin aware of changes in its videosource zoom property. + +2010-09-20 16:22:30 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + * tests/examples/camerabin/gst-camerabin-test.c: + camerabin: Change zoom property from int to float + Updates zoom property for a more natural type and + makes it consistent with the photography API + +2010-09-19 18:51:35 -0300 Thiago Santos + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photography: Add zoom property + Adds a property to set/get the zoom as a float + +2010-06-08 10:04:52 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: remove caching photography interface settings + Camerabin doesn't implement photography interface, so we + don't need caching the video source properties anymore. + +2010-04-22 17:46:59 +0300 Teemu Katajisto + + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: use photoiface properties through video-source + Fixes #616923 + +2010-04-22 14:03:34 +0300 Teemu Katajisto + + * tests/check/elements/camerabin.c: + tests: camerabin: remove photoiface property/settings tests + Fixes #616923 + +2010-08-31 18:06:15 -0300 Teemu Katajisto + + * gst/camerabin/Makefile.am: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinphotography.c: + * gst/camerabin/gstcamerabinphotography.h: + camerabin: remove photography interface implementation from camerabin + Remove notify signal proxy for video-source. Application can use + video-source directly from now on to get notified of property changes. + Add monitoring scene-mode property change to select lowest possible + framerate for video capture when night mode is selected. + Fixes #616923 + +2010-04-29 12:44:29 +0300 Teemu Katajisto + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: add --no-xwindow option and fix option handling + Add --no-xwindow option to not to create xwindow. Also fix zoom and + mute option types and filename string handling. + +2010-04-29 13:24:18 +0300 Lasse Laukkanen + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photography: Add image-preview-supported-caps interface property + Adds a readable property to gstphotography interface to query + what are the allowed preview caps supported. + Patch by Tommi Myöhänen + +2010-09-20 12:34:06 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: Remove unused code + +2010-09-20 11:26:59 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Remove check for old -base + +2010-09-19 19:33:40 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: Add handling of GstForceKeyUnit events + +2010-09-18 19:25:49 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Fix name of 30p/60i pattern + +2010-09-18 19:21:47 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: add capture pattern handling + Move typical scan_for_sync() usage into base class, which just + calls gst_adapter_masked_scan_uint32(). + +2010-09-18 19:14:36 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Don't blow away field information + Also, set field flags correctly. + +2010-09-18 17:28:48 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + * ext/vp8/gstvp8dec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: Move deadline to frame structure + +2010-09-18 14:57:32 -0700 David Schleef + + * gst/interlace/gstinterlace.c: + interlace: Add allow-rff property. Fix timestamping + +2010-09-18 13:32:07 -0700 David Schleef + + * gst/interlace/gstinterlace.c: + interlace: merge telecine into normal operation + +2010-09-08 15:08:50 +0200 Robert Swain + + * gst/interlace/gstinterlace.c: + interlace: Add telecine support + +2010-09-17 08:43:48 +0200 Sebastian Dröge + + * configure.ac: + * ext/cog/Makefile.am: + * ext/cog/cogvirtframe.c: + * ext/cog/gstcog.c: + * ext/cog/gstcogmse.c: + cog: Allow compilation without orc + Also don't ignore --disable-orc. Fixes bug #629897. + +2010-09-14 16:17:47 -0300 Thiago Santos + + * tests/check/elements/camerabin.c: + camerabin: Adds a new test to check sequential capture of images + Adds a new test case that shoots a sequence of image capture + and check that the files are valid. + Also adds taglist checking capabilities to tests. + +2010-09-15 17:54:49 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: Follow xmp serialization guidelines closer + qt and isom variants have different ways of serializing + xmp, follow these guidelines. + Those can be found in Adobe's xmp docs. + +2010-09-15 21:47:09 +0100 Tim-Philipp Müller + + * gst/colorspace/gstcolorspaceorc-dist.c: + * gst/colorspace/gstcolorspaceorc-dist.h: + colorspace: add orc-dist files + Should fix build without orc or too old orc. + +2010-09-15 17:51:26 +0100 Tim-Philipp Müller + + * gst/debugutils/gstchecksumsink.h: + checksumsink: fix up copyright in header file + +2010-09-12 14:59:42 +0100 Tim-Philipp Müller + + * pkgconfig/gstreamer-libs-uninstalled.pc.in: + * pkgconfig/gstreamer-libs.pc.in: + * pkgconfig/gstreamer-plugins-uninstalled.pc.in: + * pkgconfig/gstreamer-plugins.pc.in: + pkgconfig: remove some old unused files from 0.8 days + +2010-09-15 18:38:03 +0300 Stefan Kost + + * Makefile.am: + metadata: add removed files to cruft vars + +2010-09-15 18:13:55 +0300 Stefan Kost + + * tests/check/elements/jifmux.c: + tests: add missing stdio include + +2010-09-15 18:10:33 +0300 Stefan Kost + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-metadata.xml: + * ext/Makefile.am: + * ext/metadata/.gitignore: + * ext/metadata/Makefile.am: + * ext/metadata/README: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatademux.h: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxjpeg.h: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadatamuxpng.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadatatypes.h: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + * tests/check/Makefile.am: + * tests/check/pipelines/.gitignore: + * tests/check/pipelines/metadata.c: + * tests/icles/Makefile.am: + metadata: remove metadata plugin + This plugins functionality is replaced by utility libraries in base for exif + and xmp. Jpeg images can use this via jpegformat plugin. + Fixes #486659 + +2010-09-14 11:28:56 -0700 David Schleef + + * gst/bayer/gstbayer2rgb.c: + bayer2rgb: Add format=bggr/etc. to caps + +2010-09-13 18:49:43 -0700 David Schleef + + * gst/colorspace/Makefile.am: + * gst/colorspace/colorspace.c: + * gst/colorspace/colorspace.h: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + * gst/colorspace/gstcolorspaceorc.orc: + colorspace: Add conversion code + Work in progress. Colorspace handles most format conversion using + 3-stage getline/matrix/putline process using an AYUV or ARGB + intermediate, with most functions handled by Orc. There is also + a table of single-pass conversions, all handled by Orc. The plan + is to add optional stages for various chroma upsampling/downsampling + algorithms, dithering, and float/int16 intermediates, and then have + Orc create multi-stage functions at runtime. + +2010-09-13 12:48:50 -0700 David Schleef + + * configure.ac: + * gst/colorspace/Makefile.am: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + * gst/colorspace/gstcolorspaceorc.orc: + * gst/colorspace/yuv2rgb.c: + * gst/colorspace/yuv2rgb.h: + colorspace: Revive element + Now based on Orc. + +2010-09-09 14:49:06 -0400 Tristan Matthews + + * ext/jack/Makefile.am: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: added translatable text for server not found error + +2010-08-09 14:32:57 +0200 Olivier Crête + + * ext/celt/gstceltenc.c: + celtenc: Change bitrate to bits/sec + +2010-09-10 13:36:24 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Reset tags when going to READY + Reset the tagsetter tags when going to READY state + +2010-09-10 13:33:16 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: Fix element description + Use saner categories for jifmux/jpegparse elements + +2010-09-10 11:31:46 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Set tags to more elements + Remove check for 'Muxer' category when setting tags + for tagsetters. Set them to all tagsetters in the + pipelines. + +2010-09-10 18:35:27 +0200 Mark Nauwelaerts + + * gst/sdp/gstsdpdemux.c: + sdpdemux: redirect SDP with an rtsp control URL + When we find an SDP with an rtsp:// url as the global control attribute or when + all streams have an rtsp:// control attribute, post an redirect message with an + rtsp-sdp:// url containing the SDP. + Fixes #628214 + +2010-09-10 10:29:38 -0300 Thiago Santos + + * gst/geometrictransform/gstfisheye.c: + * gst/geometrictransform/gsttunnel.c: + geometrictransform: Fix build with debugging disabled + Add some ifdefs to prevent build failures due to unused + variables + +2010-09-09 23:59:17 +0300 Stefan Kost + + * 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 17:18:06 +0200 Edward Hervey + + * configure.ac: + configure.ac: Remove dependency on libswscale + It's not used in the gst opencv plugin. + +2010-09-09 15:03:24 +0100 Tim-Philipp Müller + + * configure.ac: + * ext/opencv/Makefile.am: + opencv: define CV_NO_BACKWARD_COMPATIBILITY to suppress warnings caused by compat header + Compile with -DCV_NO_BACKWARD_COMPATIBILITY for now, so that the compat header + doesn't get included, which causes compiler warnings that (it seems) can't be + switched off easily. As a result, we also specify a max. version in configure, + so the build doesn't break if our code doesn't compile against newer opencv + versions any more with that flag. + +2010-09-09 11:07:47 +0100 Tim-Philipp Müller + + * ext/opencv/Makefile.am: + opencv: avoid 'unused' compiler warnings with inline functions in opencv headers + Override CV_INLINE to avoid 'unused' gcc warnings. GLib will take care of defining + 'inline' sufficiently and OpenCV's define isn't good enough to avoid 'unused' + compiler warnings (at least in version 2.1.0). + +2010-09-09 10:27:49 +0100 Tim-Philipp Müller + + * ext/opencv/gstopencv.c: + opencv: update plugin source package name and origin + +2010-09-08 23:59:38 -0300 Thiago Santos + + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstfacedetect.h: + facedetect: Add more parameters + Expose the parameters of cvHaarDetectObjects in facedetect + element. + +2010-09-08 14:59:54 -0300 Thiago Santos + + * ext/opencv/Makefile.am: + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvdilate.c: + * ext/opencv/basicfilters/gstcvdilate.h: + * ext/opencv/basicfilters/gstcvdilateerode.c: + * ext/opencv/basicfilters/gstcvdilateerode.h: + * ext/opencv/basicfilters/gstcvequalizehist.c: + * ext/opencv/basicfilters/gstcvequalizehist.h: + * ext/opencv/basicfilters/gstcverode.c: + * ext/opencv/basicfilters/gstcverode.h: + * ext/opencv/basicfilters/gstcvlaplace.c: + * ext/opencv/basicfilters/gstcvlaplace.h: + * ext/opencv/basicfilters/gstcvsmooth.c: + * ext/opencv/basicfilters/gstcvsmooth.h: + * ext/opencv/basicfilters/gstcvsobel.c: + * ext/opencv/basicfilters/gstcvsobel.h: + * ext/opencv/edgedetect/Makefile.am: + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/faceblur/Makefile.am: + * ext/opencv/faceblur/gstfaceblur.c: + * ext/opencv/faceblur/gstfaceblur.h: + * ext/opencv/facedetect/Makefile.am: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/facedetect/gstfacedetect.h: + * ext/opencv/gstcvdilate.c: + * ext/opencv/gstcvdilate.h: + * ext/opencv/gstcvdilateerode.c: + * ext/opencv/gstcvdilateerode.h: + * ext/opencv/gstcvequalizehist.c: + * ext/opencv/gstcvequalizehist.h: + * ext/opencv/gstcverode.c: + * ext/opencv/gstcverode.h: + * ext/opencv/gstcvlaplace.c: + * ext/opencv/gstcvlaplace.h: + * ext/opencv/gstcvsmooth.c: + * ext/opencv/gstcvsmooth.h: + * ext/opencv/gstcvsobel.c: + * ext/opencv/gstcvsobel.h: + * ext/opencv/gstedgedetect.c: + * ext/opencv/gstedgedetect.h: + * ext/opencv/gstfaceblur.c: + * ext/opencv/gstfaceblur.h: + * ext/opencv/gstfacedetect.c: + * ext/opencv/gstfacedetect.h: + * ext/opencv/gstopencvutils.c: + * ext/opencv/gstpyramidsegment.c: + * ext/opencv/gstpyramidsegment.h: + * ext/opencv/gsttemplatematch.c: + * ext/opencv/gsttemplatematch.h: + * ext/opencv/gsttextwrite.c: + * ext/opencv/gsttextwrite.h: + * ext/opencv/pyramidsegment/Makefile.am: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + * ext/opencv/templatematch/Makefile.am: + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/templatematch/gsttemplatematch.h: + * ext/opencv/textwrite/Makefile.am: + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + opencv: Refactor files structure + Remove internal folders and put all code inside the main plugin + folder. Also fixes some building warnings. + +2010-09-08 00:08:44 -0300 Thiago Santos + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-opencv.xml: + * ext/Makefile.am: + * ext/opencv/Makefile.am: + opencv: Adds new plugin opencv + Moves opencv plugin from http://github.com/Elleo/gst-opencv + into -bad module. + +2010-09-05 23:09:26 -0300 Thiago Santos + + * ext/opencv/facedetect/gstfacedetect.c: + facedetect: Post an useful message + Add a message to be post when faces are found on a frame that + contains all faces on a single message and also has + timestamp/running/segment times for that buffer so it + can be identified. + This message is called 'facedetect' and has a 'faces' list + of structures with all faces. + The old 'face' message is still posted for each face found, but + it is not really useful as it doesn't have any reference to the + buffer that generated it. + +2010-09-05 17:53:24 -0300 Thiago Santos + + * ext/opencv/facedetect/Makefile.am: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/facedetect/gstfacedetect.h: + facedetect: Use GstOpencvVideoFilter as the base class + Port facedetect to use GstOpencvVideoFilter as the base class + to inherit all the goodness that GstBaseTransform/GstVideoFilter + already handles. + +2010-09-03 20:27:31 -0300 Thiago Santos + + * ext/opencv/Makefile.am: + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvdilate.c: + * ext/opencv/basicfilters/gstcvdilateerode.c: + * ext/opencv/basicfilters/gstcvdilateerode.h: + * ext/opencv/basicfilters/gstcvequalizehist.c: + * ext/opencv/basicfilters/gstcvequalizehist.h: + * ext/opencv/basicfilters/gstcverode.c: + * ext/opencv/basicfilters/gstcvlaplace.c: + * ext/opencv/basicfilters/gstcvlaplace.h: + * ext/opencv/basicfilters/gstcvsmooth.c: + * ext/opencv/basicfilters/gstcvsmooth.h: + * ext/opencv/basicfilters/gstcvsobel.c: + * ext/opencv/basicfilters/gstcvsobel.h: + * ext/opencv/gstopencvbasetrans.c: + * ext/opencv/gstopencvbasetrans.h: + * ext/opencv/gstopencvvideofilter.c: + * ext/opencv/gstopencvvideofilter.h: + opencvbasetrans: Use GstVideoFilter as the base class + Port from GstBaseTransform to GstVideoFilter as the base class. + +2010-05-24 19:28:59 -0300 Thiago Santos + + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvlaplace.c: + * ext/opencv/basicfilters/gstcvlaplace.h: + * ext/opencv/gstopencv.c: + * ext/opencv/gstopencvbasetrans.c: + * ext/opencv/gstopencvbasetrans.h: + cvlaplace: adds new cvlaplace element + Adds new cvlaplace element. + Also adds a new opencvbasetransform function to be overriden + by children classes: the cv_set_caps, it allows children classes + to know what are they going to handle and prepare properly. + +2010-05-19 20:11:39 -0300 Thiago Santos + + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvsobel.c: + * ext/opencv/basicfilters/gstcvsobel.h: + * ext/opencv/gstopencv.c: + * ext/opencv/gstopencvutils.c: + Adds new element cvsobel + +2010-05-17 19:04:49 -0300 Thiago Santos + + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvequalizehist.c: + * ext/opencv/basicfilters/gstcvequalizehist.h: + * ext/opencv/gstopencv.c: + Adds new element cvequalizehist + +2010-05-16 19:14:54 -0300 Thiago Santos + + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/basicfilters/gstcvdilate.c: + * ext/opencv/basicfilters/gstcvdilate.h: + * ext/opencv/basicfilters/gstcvdilateerode.c: + * ext/opencv/basicfilters/gstcvdilateerode.h: + * ext/opencv/basicfilters/gstcverode.c: + * ext/opencv/basicfilters/gstcverode.h: + * ext/opencv/gstopencv.c: + Adds new elements cvdilate and cverode + Adds 2 similar elements (so similar they have their own baseclass), + cvdilate and cverode. + +2010-05-16 17:03:51 -0300 Thiago Santos + + * ext/opencv/basicfilters/gstcvsmooth.c: + * ext/opencv/gstopencvbasetrans.c: + cvsmooth: Improve parameters docs + +2010-05-16 16:37:12 -0300 Thiago Santos + + * ext/opencv/basicfilters/gstcvsmooth.c: + cvsmooth: Deactivating blur-no-scale + Deactivate blur-no-scale because basetransform doesn't provide a way + to override getcaps for pads, always using templatecaps independent + of properties. + +2010-05-16 11:42:08 -0300 Thiago Santos + + * ext/opencv/basicfilters/gstcvsmooth.c: + * ext/opencv/gstopencvbasetrans.c: + * ext/opencv/gstopencvutils.c: + * ext/opencv/gstopencvutils.h: + cvsmooth: Add support for video/x-raw-gray + +2010-05-16 00:46:01 -0300 Thiago Santos + + * ext/opencv/Makefile.am: + * ext/opencv/gstopencvbasetrans.c: + * ext/opencv/gstopencvutils.c: + * ext/opencv/gstopencvutils.h: + Adding gstopencvutils + Adds a file to keep utilitary functions together + +2010-05-11 20:11:42 -0300 Thiago Santos + + * ext/opencv/Makefile.am: + * ext/opencv/basicfilters/gstcvsmooth.c: + * ext/opencv/basicfilters/gstcvsmooth.h: + * ext/opencv/gstopencv.c: + cvsmooth: Adds new element cvsmooth + Adds new cvsmooth element + +2010-05-05 01:24:54 -0300 Thiago Santos + + * ext/opencv/Makefile.am: + * ext/opencv/basicfilters/Makefile.am: + * ext/opencv/gstopencvbasetrans.c: + * ext/opencv/gstopencvbasetrans.h: + gstopencvbasetrans: Adds this new base class + Adds GstOpencvBaseTransform as base class for simple 1:1 + opencv filters + +2010-04-26 17:18:54 -0300 Thiago Santos + + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + pyramidsegment: Allocate a new buffer for output + Use a newly allocated buffer for output, and release the intermediary + image used. + Also add a TODO for performance improvement + +2010-04-26 17:34:12 -0300 Thiago Santos + + * ext/opencv/faceblur/gstfaceblur.c: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/textwrite/gsttextwrite.c: + faceblur: facedetect: templatematch: textwrite: Set buffer to writable + These elements operates in place, set buffer to writable before + operating. + +2010-04-26 16:17:23 -0300 Thiago Santos + + * ext/opencv/edgedetect/gstedgedetect.c: + edgedetect: Fix chain buffer handling + Allocate a new output buffer instead of using the input buffer + pointing to the internal cvCEdge opencv's IplImage data, which + might change, consequently changing the buffer. + +2010-04-25 16:27:04 -0300 Thiago Santos + + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/faceblur/gstfaceblur.c: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/textwrite/gsttextwrite.c: + configure: enable -Werror to improve code + -Werror on git version is useful to keep code clean. + +2010-03-02 13:55:05 +0530 Sreerenj Balachandran + + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + Added the property for setting the RGB colours. modified: ext/opencv/textwrite/gsttextwrite.c modified: ext/opencv/textwrite/gsttextwrite.h + +2010-03-02 13:18:19 +0530 Sreerenj Balachandran + + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + Added the property for setting the "thickness" of font modified: ext/opencv/textwrite/gsttextwrite.c modified: ext/opencv/textwrite/gsttextwrite.h + +2010-03-02 12:45:58 +0530 Sreerenj Balachandran + + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + Added the property for setting x and y co-ordinates modified: ext/opencv/textwrite/gsttextwrite.c modified: ext/opencv/textwrite/gsttextwrite.h + +2010-03-02 12:41:25 +0530 Sreerenj Balachandran + + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + added the propery for setting x and y co-ordinates modified: ext/opencv/textwrite/gsttextwrite.c modified: ext/opencv/textwrite/gsttextwrite.h + +2010-02-28 14:36:35 +0000 Mike Sheldon + + * ext/opencv/facedetect/gstfacedetect.c: + Apply Stefan's faceblur fixes to facedetect + +2010-02-28 14:32:00 +0000 Sreerenj Balachandran + + * ext/opencv/Makefile.am: + * ext/opencv/gstopencv.c: + * ext/opencv/textwrite/Makefile.am: + * ext/opencv/textwrite/gsttextwrite.c: + * ext/opencv/textwrite/gsttextwrite.h: + Add simple text overlay plugin + +2010-02-19 22:50:18 +0200 Stefan Kost + + * ext/opencv/faceblur/gstfaceblur.c: + faceblur: fix handling of profile property. + Dup and free the string. Fixes leaking new values and avoids crashing + gst-inspect. + +2009-12-18 11:23:59 +0000 Mike Sheldon + + * ext/opencv/templatematch/gsttemplatematch.h: + Fix includes in template matching element + +2009-05-26 12:59:04 +0100 Mike Sheldon + + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/faceblur/gstfaceblur.c: + * ext/opencv/faceblur/gstfaceblur.h: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/facedetect/gstfacedetect.h: + * ext/opencv/gstopencv.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/templatematch/gsttemplatematch.h: + Bring code in to line with general Gstreamer standards + +2009-05-25 12:57:11 +0100 Mike Sheldon + + * ext/opencv/templatematch/gsttemplatematch.c: + Fix segfault in template match element if no template has been set Add template matching python example Add autotool, libtool and pkgconfig dependencies to debian control file + +2009-05-25 11:26:28 +0100 Mike Sheldon + + * ext/opencv/Makefile.am: + * ext/opencv/faceblur/Makefile.am: + * ext/opencv/faceblur/gstfaceblur.c: + * ext/opencv/faceblur/gstfaceblur.h: + * ext/opencv/gstopencv.c: + Add a plugin for automatically blurring faces in videos and images + +2009-05-13 12:19:43 +0300 Noam + + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/templatematch/gsttemplatematch.h: + Added control for changing method + +2009-05-13 11:55:31 +0300 Noam + + * ext/opencv/Makefile.am: + * ext/opencv/gstopencv.c: + * ext/opencv/templatematch/Makefile.am: + * ext/opencv/templatematch/gsttemplatematch.c: + * ext/opencv/templatematch/gsttemplatematch.h: + Added templatematch element + +2009-05-08 11:55:20 +0530 kapil + + * ext/opencv/Makefile.am: + * ext/opencv/edgedetect/Makefile.am: + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/facedetect/Makefile.am: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/facedetect/gstfacedetect.h: + * ext/opencv/gstopencv.c: + * ext/opencv/pyramidsegment/Makefile.am: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + Registering all elements under opencv plugin + +2009-05-06 15:49:42 +0100 Mike Sheldon + + * ext/opencv/facedetect/gstfacedetect.c: + Fix the profile parameter in the facedetect element to accept a string correctly + +2009-05-06 15:33:48 +0100 Mike Sheldon + + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + Release OpenCV images when finalizing elements + +2009-05-06 16:38:15 +0530 kapil + + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/facedetect/gstfacedetect.h: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + Fixed compile errors + +2009-04-20 18:40:13 +0300 Mike Sheldon + + * ext/opencv/facedetect/gstfacedetect.c: + Make face detect send a bus message when a face is detected Write a simple python example for face detection + +2009-04-18 23:43:37 +0300 Mike Sheldon + + * ext/opencv/Makefile.am: + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/facedetect/Makefile.am: + * ext/opencv/facedetect/gstfacedetect.c: + * ext/opencv/facedetect/gstfacedetect.h: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + Add face detection element Clean up some generated files Update a few old comments + +2008-12-18 23:48:40 +0000 Mike Sheldon + + * ext/opencv/Makefile: + * ext/opencv/Makefile.in: + * ext/opencv/edgedetect/Makefile: + * ext/opencv/edgedetect/Makefile.in: + * ext/opencv/pyramidsegment/Makefile: + * ext/opencv/pyramidsegment/Makefile.in: + * Remove some autotools generated files + +2008-12-18 23:43:36 +0000 Mike Sheldon + + * ext/opencv/Makefile: + * ext/opencv/Makefile.am: + * ext/opencv/Makefile.in: + * ext/opencv/edgedetect/Makefile: + * ext/opencv/edgedetect/Makefile.am: + * ext/opencv/edgedetect/Makefile.in: + * ext/opencv/edgedetect/gstedgedetect.c: + * ext/opencv/edgedetect/gstedgedetect.h: + * ext/opencv/pyramidsegment/Makefile: + * ext/opencv/pyramidsegment/Makefile.am: + * ext/opencv/pyramidsegment/Makefile.in: + * ext/opencv/pyramidsegment/gstpyramidsegment.c: + * ext/opencv/pyramidsegment/gstpyramidsegment.h: + * Make it possible to set threshold2 at runtime * Implement pyramid segmentation element * Make masking optional on edgedetect * Clean up edgedetect, add element details * Implemented edge detect element + +2010-09-08 16:57:57 -0300 Thiago Santos + + * gst/id3tag/id3tag.c: + id3mux: Map GST_TAG_ALBUM_ARTIST + Map GST_TAG_ALBUM_ARTIST to TPE2 as it is done in + -base id3tag mappings. + +2010-08-09 00:15:03 +0100 Tim-Philipp Müller + + * common: + * configure.ac: + * tests/check/Makefile.am: + Use AG_GST_CHECK_GST_PLUGINS_{GOOD,UGLY,BAD,FFMPEG} macros from common + to find plugin directories for the various modules our unit tests depend + on in an uninstalled environment. This makes sure these plugins are found + even when distchecking (which happens from a subdirectory, which means + that the currently used trick to find the uninstalled directories of + these modules doesn't work in that case). + +2010-09-07 19:16:24 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + docs: update plugin docs sgml file a bit + +2010-09-07 15:22:28 -0300 Thiago Santos + + * docs/plugins/.gitignore: + docs: add 2 new files to gitignore + Adds gst-plugins-bad-plugins.args.new and + gst-plugins-bad-plugins.signals.new to .gitignore + +2010-09-07 14:45:12 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Make it more colorspace smart + This makes it able to recombine rgb images, making it possible + to add tags to rgb jpegs as well. + Uses a simple strategy to check what are the possible colorspaces + and avoid adding jfif to ones that aren't YUV/Gray. + +2010-09-07 10:26:29 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: Adds tests for new ppi tags + Adds tests to check if libexif can read our + EXIF_TAG_X/Y_RESOLUTION tags. + +2010-09-07 13:28:20 +0200 Robert Swain + + * gst/interlace/gstinterlace.c: + interlace: Fix element details + +2010-09-07 11:42:30 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From c2e10bf to aa0d1d0 + +2010-09-07 11:34:35 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-interlace.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + docs: update plugin introspection data for recent changes + +2010-09-07 11:28:44 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-dvbsrc.xml: + * docs/plugins/inspect/plugin-flacparse.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-x264.xml: + docs: remove introspection files for plugins that have been merged, moved or renamed + The aacparse, amrparse, flacparse plugins have been merged into the audioparsersbad + plugin. The aiffparse plugin has been renamed to aiff since it also contains an + aiff muxer now. The amrwb plugin has been renamed to amrwbenc. The dvbsrc plugin + has been renamed to dvb. The gstrtpmanager plugin has moved to -good. The x264 + plugin has moved to -ugly. And the mpegtsparse plugin has been merged into the + mpegdemux2 plugin. + +2010-09-07 00:16:00 +0100 Tim-Philipp Müller + + * .gitignore: + * tests/examples/Makefile.am: + tests: fix distcheck by disting new jack example directory + Also add test binary to ignores. + +2010-09-06 17:17:54 -0400 Tristan Matthews + + * configure.ac: + * tests/examples/Makefile.am: + * tests/examples/jack/Makefile.am: + * tests/examples/jack/jack_client.c: + examples: add test to demonstrate jack_client_t usage + +2010-09-06 16:11:31 -0400 Tristan Matthews + + * ext/jack/gstjack.c: + * ext/jack/gstjack.h: + * ext/jack/gstjackaudioclient.c: + * ext/jack/gstjackaudioclient.h: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + jack: added client property + +2010-06-17 16:26:07 -0400 Tristan Matthews + + * ext/jack/gstjackbin.c: + jack: removed unused file gstjackbin.c + This is a 0.8 leftover. + +2010-09-06 14:12:00 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: non-TIME seek event is simply not handled + +2010-09-06 09:28:46 -0300 Thiago Santos + + * configure.ac: + configure: Bump -core/-base requirements to 0.10.30.1 + We need 0.10.30.1 to have latest tags in core/base for jifmux + tests. + +2010-08-26 02:54:55 -0400 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Make the dtmfsrc accept events sent with gst_element_send_event + The doc says to use gst_element_send_event on the pipeline, but if + we are to call it on the element itself, it's a noop. This should make it + handle the event properly before delegating it to basesrc. + +2010-09-05 16:30:05 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: set new framerate on output caps instead of input caps + It's not allowed to change the caps provided by the setcaps function. + https://bugzilla.gnome.org/show_bug.cgi?id=628326 + +2010-09-06 03:23:26 -0700 David Schleef + + * tools/element-maker: + element-maker: Take parameters on command line + Now it's actually useful. + +2010-09-06 03:04:13 -0700 David Schleef + + * gst/interlace/gstinterlace.c: + interlace: Add documentation + +2010-09-06 10:29:21 +0200 Sebastian Dröge + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: Use G_GUINT64_FORMAT instead of %llu + Fixes compiler warnings on 64 bit architectures. + +2010-09-06 11:03:07 +0300 Stefan Kost + + * gst/selector/gstinputselector.c: + inputselector: sync with copy in -base + Use _get_caps_reffed to avoid copies. + +2010-08-24 11:50:47 +0300 Stefan Kost + + * gst/selector/gstoutputselector.c: + outputselector: move the debug init to the boilerplate macro + +2010-08-24 11:50:09 +0300 Stefan Kost + + * gst/selector/gstinputselector.c: + inputselector: use GST_BOILERPLATE macro + +2010-08-24 11:26:52 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: don't add a g_mainloop dependency + Just update the fps-message from the probe handler. + +2010-08-18 11:35:44 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: small cleanup + Add one one example and lower the fon't size for the overlay. + +2010-08-23 09:51:25 -0500 Rob Clark + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: measure fps in terms of wall clock time + Measure fps in terms of system clock, rather than pipeline clock, to get + an accurate meaure of fps. + +2010-09-05 22:41:24 -0700 David Schleef + + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstchecksumsink.c: + * gst/debugutils/gstchecksumsink.h: + checksumsink: Add new element + +2010-09-05 22:30:54 -0700 David Schleef + + * gst/videomeasure/gstvideomeasure_ssim.c: + ssim: Add I420 support + +2010-09-05 21:34:30 -0700 David Schleef + + * gst/interlace/gstinterlace.c: + interlace: Add more formats + +2010-09-05 18:58:36 -0700 David Schleef + + * common: + Automatic update of common submodule + From d3d9acf to c2e10bf + +2010-09-05 23:40:08 +1000 Jan Schmidt + + * docs/plugins/gst-plugins-bad-plugins.args.new: + * docs/plugins/gst-plugins-bad-plugins.signals.new: + Remove .new docs files from the repository + +2010-09-05 15:34:13 -0700 Jonathan Rosser + + * ext/cog/cogvirtframe.c: + cog: Fix cog_virt_frame_new_convert_u8() + Conversion was using uninitialized data instead of source frame. + Fixes #626425. + +2010-09-05 12:06:31 -0700 David Schleef + + * configure.ac: + * ext/cog/gstcogorc-dist.c: + cog: Fix generated Orc code + Also drop required Orc back down to 0.4.7. + +2010-08-30 21:22:14 -0300 Thiago Santos + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Use jifmux instead of metadatamux + Use jifmux element to write exif/xmp tags instead of metadatamux + +2010-08-30 21:21:49 -0300 Thiago Santos + + * gst/camerabin/Makefile.am: + * gst/camerabin/gstcamerabin.c: + camerabin: Use new tags from -base + Replace private tags from metadata plugin with the new generic tags + from -base. + +2010-09-03 14:12:23 -0300 Thiago Santos + + * tests/check/elements/camerabin.c: + camerabin: Refactor tests + The tests were done in 2 steps, first there was a suite + that generated the files (while checking that camerabin + was operating correctly). Then there was a second suite + that was run to check that all files were playable with + playbin2. Those second tests were not being run because + they were checking if camerabin was initialized, and it + never was as those tests didn't use a 'setup' function. + This commit refactors the tests by removing this second + suite and merging its validation with the first suite's + functions. + +2010-08-24 14:43:50 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: Adds geo location tags tests + Adds some more tests for geo location tags. + Also use libexif constants for the exif tags' ids. + +2010-08-24 09:02:59 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + tests: jifmux: Refactor testing code a little + Refactor testing code to allow testing for cases where the + same gstreamer tag is mapped to multiple exif tags. + +2010-08-23 11:57:37 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/jifmux.c: + jifmux: More tests for exif tags + Refactors some code and add some more tests for exif tags + +2010-09-02 11:18:27 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Do not limit the size of the image on 16bits + Use guint instead of guint16 to represent the size of the encoded image, + this would make some recombined images lose most of their data and + show like a big black image with a small line of content on top. + Also adds a minor log message. + +2010-08-21 17:01:29 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjifmux.h: + jifmux: Set output pad caps + Set output pad caps to guarantee caps on the buffers being + pushed downstream. + +2010-08-20 08:34:35 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Detect EOI correctly + EOI are not always at the last 4 bytes. We need to search + the last 5 bytes to find the 0xFFD9 sequence as jpegenc seems + to round the buffer size to the next 4 multiple. + +2010-08-19 22:43:47 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Put APP0 first always + Fixes the order of the APP0/APP1 markers. APP0 should + be first. + +2010-09-02 01:32:10 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: parse "pixel-aspect-ratio" from stream + +2010-09-02 01:04:15 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + vdpau: remove non working unused code from GstBaseVideoDecoder + +2010-09-02 00:17:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + vdpau: GstBaseVideoDecoder set default par to 1/1 + +2010-09-01 23:47:21 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg/gstvdpmpegframe.c: + * sys/vdpau/mpeg/gstvdpmpegframe.h: + * sys/vdpau/mpeg4/gstmpeg4frame.h: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.c: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.h: + * sys/vdpau/mpeg4/mpeg4util.c: + vdpau: remove gst_base_video_decoder_get_current_frame + we now pass the current frame to GstBaseVideoDecoder::parse_data + also fixup some errors in vdpaumpeg4dec so that it now gives correct output + +2010-09-01 22:03:05 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/basevideodecoder/gstvideoframe.c: + * sys/vdpau/basevideodecoder/gstvideoframe.h: + vdpau: rework GstBaseVideoDecoder timestamping + timestamps are now chosen in the following order: + upstream -> parsed by decoder -> calculated from timestamp offset + we also check the timestamps supplied from upstream/decoder to see if they + atleast is increasing. + +2010-09-01 17:45:19 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdecoder.c: + vdpau: fix invalid unref + +2010-09-05 12:19:32 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From ec60217 to d3d9acf + +2010-09-05 11:45:35 +0200 Edward Hervey + + * configure.ac: + configure.ac: Bump orc requirement to 0.4.8.1 + 0.4.7 creates code with unavailable symbols + 0.4.8 creates buggy code + Let's use git head of orc (which still won't work because git head + of orc still claims to be 0.4.8) + This allows all the rest of -bad to build properly. + +2010-07-14 21:00:12 +0200 Edward Hervey + + * ext/timidity/gsttimidity.c: + timidity: Fix unitialized variables (gcc 4.4.4) + +2010-09-04 11:35:16 -0700 David Schleef + + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + cog: update disted Orc files + +2010-08-26 22:03:20 -0700 David Schleef + + * ext/sdl/sdlvideosink.c: + sdlvideosink: Re-enable YVYU and UYVY + YVYU on my machine appears to be doing software conversion + (and doing it incorrectly). + +2010-08-26 20:15:43 -0700 David Schleef + + * tools/base.c: + * tools/element-maker: + element-maker: construct element names + +2010-08-22 21:43:20 -0700 David Schleef + + * configure.ac: + * gst/interlace/Makefile.am: + * gst/interlace/gstinterlace.c: + interlace: new element + +2010-08-20 17:24:23 -0700 David Schleef + + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogorc.orc: + cog: Add fast paths for colorspace conversion + +2010-08-20 17:23:17 -0700 David Schleef + + * configure.ac: + configure: require Orc 0.4.7 + +2010-08-13 21:58:01 -0700 David Schleef + + * tools/element-maker: + * tools/gstelement.c: + element-maker: Fix up GstElement + +2010-08-13 21:54:54 -0700 David Schleef + + * ext/cog/cogvirtframe.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogorc.orc: + cog: Improvements in colorspace and scaler + Add fast paths for YUV->YUV conversions and Orc code for all. + Use Orc for horizontal resampling. + +2010-06-11 14:39:30 -0700 David Schleef + + * ext/cog/Makefile.am: + * ext/cog/gstcog.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogfilter.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: minor cleanups + Improve element descriptions, remove unused files, code cleanup. + +2010-09-03 10:03:04 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.args.new: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.signals.new: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.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. + +2010-09-01 22:05:43 +0200 Andoni Morales Alastruey + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxstream.c: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + mpegtsmux: Initialize PES packet before getting the header size. + The PES header length is calculated before setting the dynamic flags, returning + a wrong value. Small frames that should be sent in a single TS packet are + spawned to a new packet because of that error. For audio streams where a single + frame can cope in one TS packet it introduces a huge overhead. + For a 100B packet, we prepare a TS packet with a payload of(100+9)B. Then, we + write the TS header using this value in tsmux_write_ts_header, and call + tsmux_stream_get_data(). The dynamic flags where not set yet and now + tsmux_stream_pes_header_length() returns 14B instead of 9B. The payload of the + TS packet is 114B, 5B more than what was calculated. 109B are sent in a first + packet and the remaining 5B are sent in another one. + Fixes bug #628548. + +2010-09-02 10:23:30 +0200 Sebastian Dröge + + * ext/cog/gstcogcolorspace.c: + cogcolorspace: Classify as Filter/Converter/Video instead of effect + Fixes bug #628570. + +2010-09-01 18:30:17 +0200 Thibault Saunier + + * gst/videosignal/gstvideoanalyse.c: + videoanalyse: Use correct element classification + This is no effect but an analyzer. Fixes bug #628527. + +=== release 0.10.20 === + +2010-09-03 00:23:02 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.20 + +2010-09-03 00:21:06 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: update for release + +2010-09-03 00:19:33 +0100 Tim-Philipp Müller + + * po/LINGUAS: + * po/el.po: + * po/gl.po: + * po/ro.po: + * po/sl.po: + po: update translations + +2010-09-03 00:01:21 +0100 Tim-Philipp Müller + + * gst-plugins-bad.doap: + doap: reference git repository instead of CVS repository + +2010-09-02 22:39:33 +0100 Tim-Philipp Müller + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: fix wrong use of GST_ELEMENT_ERROR + +2010-08-30 16:01:36 +0200 Sebastian Dröge + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * ext/cog/gstcogorc-dist.c: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.19.5 pre-release + +2010-08-30 15:20:08 +0200 Sebastian Dröge + + * tests/examples/camerabin/Makefile.am: + camerabin: Don't install gst-camera.ui + The examples are not meant to be installed and the executables of + them are not installed anyway. + Fixes bug #627918. + +2010-08-25 22:56:03 -0400 Youness Alaoui + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Unlock the right mutex + The mutex locked is for the 'mux' object, but we unlock the + pad, which means that if the rtpmux gets a flush, then the + object lock will stay locked forever, causing it to freeze + the next time it tries to take it. + Fixes bug #627991 + +2010-08-27 15:49:39 +1000 Jan Schmidt + + * configure.ac: + configure: Bump neon requirement to 0.27.0 + Needed in order to have ne_set_connect_timeout + Fixes bug #625076 + +2010-08-21 21:42:04 +0200 Sebastian Dröge + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.19.4 pre-release + +2010-08-16 12:36:24 +0200 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: autodetect out-of-order input timestamps and determine DTS accordingly + Favour using input buffer timestamps for DTS, but fallback to using buffer + duration (accumulation) if input ts detected out-of-order. + Fixes #624212. + +2010-08-20 11:09:19 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Avoid recombining RGB jpegs + JFIF only allows YUV as colorspace, when we receive an RGB jpeg, + we should just push it forward without adding the JFIF marker. + Fixes #627413 + +2010-08-13 14:34:21 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8dec.c: + vp8dec: Set GstBaseVideoDecoder::packetized to TRUE as soon as possible + This fixes an infinite loop if an EOS event is received before + GstBaseVideoDecoder::start() is called, e.g. immediately when the + pads are activated. + Fixes bug #626815. + +2010-08-13 17:24:25 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 3e8db1d to ec60217 + +2010-08-11 22:03:07 +0200 Olivier Crête + + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstdilate.c: + gaudieffects: Mark inline functions as static inline + Otherwise it fails to correctly link them in some cases. + https://bugzilla.gnome.org/show_bug.cgi?id=626670 + +2010-08-11 17:19:06 +0100 Tim-Philipp Müller + + * .gitignore: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsettings.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * win32/common/config.h: + 0.10.19.3 pre-release + +2010-08-11 17:19:17 +0100 Tim-Philipp Müller + + * ext/gsettings/Makefile.am: + gsettings: fix make distcheck + Clean up file we generated at build time. + +2010-08-11 12:09:37 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + checks: blacklist gsettings* elements for generic/states test + When the test is run, the schema file won't be installed yet, + and there doesn't seem to be an environment variable to set + to force GSettings to look in a different directory. + https://bugzilla.gnome.org/show_bug.cgi?id=626603 + +2010-08-11 00:23:02 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-coloreffects.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * ext/cog/gstcogorc-dist.c: + * win32/common/config.h: + 0.10.19.2 pre-release + This commit is out of sequence, it really belongs between commits + 15098331412ceb982c24b89bb4346354fb56433c (Automatic update of + common submodule) and dd26f378b01d679834f12935efc7093fb5807956 + (configure: Fix the CELT checks to ...) + +2010-08-09 00:42:45 +0100 Tim-Philipp Müller + + * configure.ac: + configure: bump core/base requirement to released versions + This commit is out of sequence, it really belongs between commits + 15098331412ceb982c24b89bb4346354fb56433c (Automatic update of + common submodule) and dd26f378b01d679834f12935efc7093fb5807956 + (configure: Fix the CELT checks to ...) + +2010-08-09 00:42:25 +0100 Tim-Philipp Müller + + * configure.ac: + configure: fix --disable-external + This commit is out of sequence, it really belongs between commits + 15098331412ceb982c24b89bb4346354fb56433c (Automatic update of + common submodule) and dd26f378b01d679834f12935efc7093fb5807956 + (configure: Fix the CELT checks to ...) + +2010-08-08 17:09:22 +0100 Tim-Philipp Müller + + * tests/check/elements/jifmux.c: + checks: skip jifmux tests if required elements aren't available + This commit is out of sequence, it really belongs between commits + 15098331412ceb982c24b89bb4346354fb56433c (Automatic update of + common submodule) and dd26f378b01d679834f12935efc7093fb5807956 + (configure: Fix the CELT checks to ...) + +2010-08-11 11:52:44 +0200 Sebastian Dröge + + * gst/legacyresample/Makefile.am: + legacyresample: Link against $(LIBM) for rint() and friends + +2010-08-11 11:51:16 +0200 Sebastian Dröge + + * m4/gsettings.m4: + gsettings: Add gsettings.m4 for the gsettings macros + +2010-08-11 11:50:05 +0200 Sebastian Dröge + + * gst/invtelecine/Makefile.am: + invtelecine: Link against $(LIBM) for sqrt() and friends + +2010-08-11 11:39:35 +0200 Sebastian Dröge + + * configure.ac: + configure: Fix the CELT check to actually succeed if CELT >= 0.5 is available + Also remove the AC_MSG_RESULTS([no]), pkg-config does this for us already. + +2010-08-10 10:58:46 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From bd2054b to 3e8db1d + +2010-08-09 17:20:11 +0200 Filippo Argiolas + + * gst/geometrictransform/gstsquare.c: + * gst/geometrictransform/gstsquare.h: + geometrictransform: add a "zoom" parameter to square filter + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-09 16:55:43 +0200 Filippo Argiolas + + * gst/geometrictransform/gstsquare.c: + * gst/geometrictransform/gstsquare.h: + geometrictransform: make square "width" and "height" customizable + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-09 10:03:20 +0200 Filippo Argiolas + + * gst/geometrictransform/gstmirror.c: + * gst/geometrictransform/gstmirror.h: + geometrictransform: add a "mode" property to mirror filter + Add a "mode" enum property to mirror that defines how to split the frame + and with side reflect. + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-09 08:52:51 +0200 Filippo Argiolas + + * gst/geometrictransform/gstbulge.c: + * gst/geometrictransform/gstbulge.h: + geometrictransform: add a "zoom" parameter to bulge filter + Rework bulge mapping function to give more predictable results. + Now the bulge is done dividing by a scale factor that smoothsteps from + "zoom" at the center to 1.0 at "radius". + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-05 16:16:37 +0200 Filippo Argiolas + + * gst/geometrictransform/gststretch.c: + * gst/geometrictransform/gststretch.h: + geometrictransform: add an "intensity" parameter to stretch filter + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-05 12:43:15 +0200 Filippo Argiolas + + * gst/geometrictransform/gsttunnel.c: + geometrictransform: make tunnel "radius" customizable + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-05 12:29:16 +0200 Filippo Argiolas + + * gst/geometrictransform/gstbulge.c: + geometrictransform: make bulge "radius" customizable + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-05 12:25:04 +0200 Filippo Argiolas + + * gst/geometrictransform/gststretch.c: + geometrictransform: make stretch "radius" customizable + https://bugzilla.gnome.org/show_bug.cgi?id=625908 + +2010-08-08 23:56:43 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpeg4/mpeg4util.c: + vdpaumpeg4dec: fix typo in default_non_intra_quant_matrix + +2010-07-14 11:03:35 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/mpeg4/gstmpeg4frame.c: + * sys/vdpau/mpeg4/gstmpeg4frame.h: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.c: + * sys/vdpau/mpeg4/gstvdpmpeg4dec.h: + * sys/vdpau/mpeg4/mpeg4util.c: + * sys/vdpau/mpeg4/mpeg4util.h: + vdpau: add mpeg4 part2 decoder + +2010-08-08 12:46:01 +0100 Tim-Philipp Müller + + * tests/check/elements/id3mux.c: + checks: skip id3mux unit tests that need id3demux if id3demux is not available + +2010-08-08 12:26:55 +0100 Tim-Philipp Müller + + * configure.ac: + configure: build and dist new coloreffects plugin + Fixes make distcheck. + +2010-08-08 12:01:31 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Only check the plugin filenames, not the directory names + +2010-08-08 11:56:42 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Don't try to register/load the same frei0r plugin at different locations twice + This could happen because for example /usr/lib is linked + to /usr/lib64 and both are loaded. The frei0r specification + says that the plugin init function must only be called once + and for some plugin weird things (including crashes) are + happening. + Fixes bug #623710. + +2010-08-06 01:56:29 +0100 Tim-Philipp Müller + + * sys/dvb/gstdvbsrc.c: + * sys/dvb/gstdvbsrc.h: + dvbsrc: align actual default values for properties with defaults in param spec + https://bugzilla.gnome.org/show_bug.cgi?id=621404 + +2010-08-06 12:14:04 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdevice.c: + * sys/vdpau/gstvdp/gstvdpdevice.h: + vdpau: fix destruction of GstVdpDevice when it failed to open + only close display in finalize and check if vdp_decoder_destroy is available + before we use it + +2010-08-05 23:55:00 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpsink.h: + vdpausink: use separate mutex for device locking + we can't use GST_OBJECT_LOCK since that cause problems when we try to post + errors, due to gst_element_post_message also taking the GST_OBJECT_LOCK + +2010-08-06 11:04:57 +0100 David Hoyt + + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + neonhttpsrc: add connect-timeout and read-timeout properties + https://bugzilla.gnome.org/show_bug.cgi?id=625076 + +2010-08-06 10:44:24 +0100 Tim-Philipp Müller + + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + * tests/check/elements/neonhttpsrc.c: + neonhttpsrc: add "cookies" property + Based on patch by: Sameer Naik + https://bugzilla.gnome.org/show_bug.cgi?id=625174 + +2010-07-25 17:04:12 +0200 Andoni Morales Alastruey + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: close our own window when changing the window id + If we created the window, it needs to be closed after setting a new + window id. + https://bugzilla.gnome.org/show_bug.cgi?id=574290 + +2010-07-25 17:01:19 +0200 Raimo Jarvi + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: allow changing window ID whilst in PLAYING state + https://bugzilla.gnome.org/show_bug.cgi?id=574290 + +2010-08-06 03:19:16 +0200 Olivier Crête + + * gst/frei0r/gstfrei0r.c: + frei0r: Load plugins in /usr/{local/,}lib{32,64}/frei0r-1 too + Loads the plugins in more paths where they could be installed by + multilib distributions. + Fixes #623710 + +2010-08-05 13:57:11 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From a519571 to bd2054b + +2010-08-03 10:08:34 +0200 Filippo Argiolas + + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstcirclegeometrictransform.c: + * gst/geometrictransform/gstcirclegeometrictransform.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gsttwirl.c: + * gst/geometrictransform/gstwaterripple.c: + geometrictransform: make ciclegt "radius" property relative + Make the "radius" property of CircleGeometricTransform relative. + This is more coherent with the way [x,y]-center properties are handled + and allow to set a radius without knowing the video size. + Radius is defined with respect to the circle circumscribed about the + video rectangle so that a point in the center has radius 0.0 and one in + a vertex has radius 1.0. + Note that this is not a regression from the previous absolute way of + defining the radius as a user who knows the video size can easily + calculate the relative radius and set that. + https://bugzilla.gnome.org/show_bug.cgi?id=625959 + +2010-08-04 23:50:53 +0100 Tim-Philipp Müller + + * gst/id3tag/id3tag.c: + id3mux: minor code clean-up + Add helper function to write text frames with just one string. + +2010-08-04 23:44:47 +0100 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + .gitignore: ignore more unit test binaries + +2010-06-14 20:07:33 +1000 Jonathan Matthew + + * gst/id3tag/id3tag.c: + * tests/check/Makefile.am: + * tests/check/elements/id3mux.c: + id3mux: add support for beats-per-minute tag + Write beats per minute into the TBPM frame, and add unit + test for id3mux, based on id3v2mux unit test. + https://bugzilla.gnome.org/show_bug.cgi?id=621523 + +2010-08-04 19:26:51 +0200 Sebastian Dröge + + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + configure: Check if the compiler supports ISO C89 or C99 and which parameters are required + This first checks what is required for ISO C99 support and sets the relevant + compiler parameters and if no C99 compiler is found, it checks for a + C89 compiler. This enables us to check for and use C89/C99 functions + that gcc hides from us without the correct compiler parameters. + +2010-08-04 10:15:00 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-coloreffects.xml: + coloreffects: Add to the documentation + +2010-08-04 10:11:11 +0200 Sebastian Dröge + + * gst/coloreffects/gstcoloreffects.c: + * gst/coloreffects/gstplugin.c: + coloreffects: Minor cleanup + +2010-08-04 10:09:53 +0200 Sebastian Dröge + + * gst/coloreffects/gstcoloreffects.c: + coloreffects: Improve property description a bit + +2010-08-04 10:08:24 +0200 Sebastian Dröge + + * gst/coloreffects/gstcoloreffects.c: + coloreffects: Don't use the fixed_caps func on the pads + coloreffects can renegotiate during playback without any problems. + +2010-08-03 14:39:22 +0200 Filippo Argiolas + + * gst/coloreffects/gstcoloreffects.c: + * gst/coloreffects/gstcoloreffects.h: + coloreffects: add ayuv support + Currently implemented switching from yuv to rgb, looking up rgb from the + table in the usual way, getting back to yuv. With luma lookup presets + (sepia, heat, xray) a color space conversion is saved directly looking + up rgb for a given Y and converting to yuv. + Probably this latter step can even be made faster precalculating a luma + to yuv table in an outer loop. + https://bugzilla.gnome.org/show_bug.cgi?id=625817 + +2010-08-01 23:03:24 +0200 Filippo Argiolas + + * configure.ac: + * gst/coloreffects/Makefile.am: + * gst/coloreffects/gstcoloreffects.c: + * gst/coloreffects/gstcoloreffects.h: + * gst/coloreffects/gstplugin.c: + coloreffects: new plugin for lookup table color mapping + Implements a color lookup table filter with 4 presets: + - heat: fake heat camera effect + - sepia: sepia toning + - xray: invert + shade to blue + - xpro: cross process + https://bugzilla.gnome.org/show_bug.cgi?id=625817 + +2010-08-03 10:29:36 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + docs: Add lots of gaudieffects/geometrictransform symbols to the docs + +2010-08-02 11:30:50 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstfisheye.c: + * gst/geometrictransform/gstfisheye.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "fisheye" + Ports gleffects "fisheye" filter to geometrictransform. + Fake fisheye lens filter. Somewhat empiric implementation because I + didn't find any good algorithm that does it with nice results. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 11:12:42 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstmirror.c: + * gst/geometrictransform/gstmirror.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "mirror" + Ports gleffects "mirror" filter to geometrictransform. + Simple yet effective mirror effect, splits the image into halves and + reflect the first into the second. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 11:01:31 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstsquare.c: + * gst/geometrictransform/gstsquare.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "square" + Ports gleffects "square" filter to geometrictransform. + Maps a region around the center into a zoomed square and smoothly get + back to normal zoom. With faces it makes a funny "cube-face" effect. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 10:46:44 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gsttunnel.c: + * gst/geometrictransform/gsttunnel.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "tunnel" + Ports gleffects "tunnel" filter to geometrictransform. + Do nothing in a circle around the center and zoom outside. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 09:39:51 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstbulge.c: + * gst/geometrictransform/gstbulge.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "bulge" + Ports gleffects "bulge" filter to geometrictransform. + Adds a protuberance around the center point. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 09:17:03 +0200 Filippo Argiolas + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/geometricmath.c: + * gst/geometrictransform/geometricmath.h: + * gst/geometrictransform/gststretch.c: + * gst/geometrictransform/gststretch.h: + * gst/geometrictransform/plugin.c: + geometrictransform: new filter "stretch" + Ports gleffects "stretch" filter to geometrictransform. + Shrinks the image around the center and gradually return to normal zoom + creating funny caricatures. + https://bugzilla.gnome.org/show_bug.cgi?id=625722 + +2010-08-02 18:33:46 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpau.c: + vdpau: set back plugin ranks to GST_RANK_NONE + the previous change was not meant to slip in + +2010-08-02 18:23:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: slightly fix GstBaseVideoDecoder timestamping + clear timestamps on flush and properly calculate the frame's end offset + +2010-08-01 12:32:31 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpvideobuffer.c: + vdpau: init debug category in gst_vdp_video_buffer_get_type + +2010-08-02 20:41:12 +1000 Jan Schmidt + + * docs/plugins/inspect/plugin-gaudieffects.xml: + * gst/gaudieffects/Makefile.am: + * gst/gaudieffects/blur-example.py: + * gst/gaudieffects/gstgaussblur.c: + * gst/gaudieffects/gstgaussblur.h: + * gst/gaudieffects/gstplugin.c: + * gst/gaudieffects/gstplugin.h: + gaudieffects: Add Gaussian Blur effect, and brief example. + +2010-07-30 23:59:10 +0200 Alessandro Decina + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: fix warning on osx. + +2010-07-30 22:27:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdp/gstvdpdevice.c: + * sys/vdpau/gstvdp/gstvdpdevice.h: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: add error reporting to device creation + +2010-07-30 16:54:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + vdpau: fix small typo in GstBaseVideoDecoder + +2010-07-30 14:47:43 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + vdpau: use gst_vdp_yuv_to_video_caps in GstVdpVideoSrcPad to transform set caps + this way we'll keep other all other fields in the caps which we didn't take in + account when we manually created the "video/x-vdpau-video" caps + +2010-07-30 14:44:09 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdputils.c: + * sys/vdpau/gstvdp/gstvdputils.h: + * sys/vdpau/gstvdp/gstvdpvideobuffer.c: + * sys/vdpau/gstvdp/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: rename gst_vdp_video_buffer_parse_yuv_caps and move it to gstvdputils.h + +2010-07-30 14:07:22 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + vdpau: GstVdpOutputSrcPad use gst_pad_alloc when outputting video/x-raw-rgb + we implement "acceptcaps" to prevent us from getting a buffer with different + width and height from what we requested. + +2010-07-30 11:29:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdputils.c: + vdpau: properly remove "chroma-type" field from transformed caps + +2010-07-30 11:27:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: use GstVdp[Video|Output]BufferPool to cache our buffers + This way we'll reuse the GstVdp[Video|Output]Buffers if they're of the same + size and chroma-type/rgba-format. + Also remove gst_vdp_output_src_pad_negotiate and set a "setcaps" function on + GstVdpOutputSrcPad instead, leaving negotiation to GstVdpVideoPostProcess. + +2010-07-30 11:20:35 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpsink.h: + vdpausink: use GstVdpOutputBufferPool to alloc our buffers + This way we'll reuse our GstVdpOutputBuffers if they're of the same size and + rgba-format + +2010-07-30 11:16:09 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + vdpau: use GstVdpVideoBufferPool in GstVdpVideoSrcPad + We also don't pad_alloc our GstVdpVideoBuffers anymore since we don't support + downstream negotation anyway. + +2010-07-30 11:06:17 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/Makefile.am: + * sys/vdpau/gstvdp/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdp/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdp/gstvdpoutputbufferpool.c: + * sys/vdpau/gstvdp/gstvdpoutputbufferpool.h: + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpsink.c: + vdpau: add GstVdpOutputBufferPool + GstVdpVideoOutputPool is a subclass of GstVdpBufferPool that caches + GstVdpOutputBuffers + +2010-07-30 11:01:15 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/Makefile.am: + * sys/vdpau/gstvdp/gstvdpvideobuffer.c: + * sys/vdpau/gstvdp/gstvdpvideobuffer.h: + * sys/vdpau/gstvdp/gstvdpvideobufferpool.c: + * sys/vdpau/gstvdp/gstvdpvideobufferpool.h: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: add GstVdpVideoBufferPool + GstVdpVideoBufferPool is a subclass of GstVdpBuffer that caches + GstVdpVideoBuffers + +2010-07-30 10:55:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/Makefile.am: + * sys/vdpau/gstvdp/gstvdpbuffer.c: + * sys/vdpau/gstvdp/gstvdpbuffer.h: + * sys/vdpau/gstvdp/gstvdpbufferpool.c: + * sys/vdpau/gstvdp/gstvdpbufferpool.h: + vdpau: add GstVdpBufferPool base class + GstVdpBufferPool will be used to cache GstVdp[Video|Output]Buffers since + creating these can be a costly operation on some hardware. + +2010-07-28 21:39:12 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.h: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: remove GstVdpOutputSrcPad "template-caps" property + instead we do as GstVdpVideoSrcPad and use the "templ" property of GstPad, + which enable us to change the signature of gst_vdp_output_src_pad_new to match + gst_pad_new_from_template + +2010-07-28 21:15:46 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: remove GstVdpOutputSrcPad code to retrieve the device from downstream + we now no longer try to get the GstVdpDevice from downstream since it in + practice didn't give us anything and complicates the code alot. Nevertheless if device + distribution should be done there's probably a lot better ways to do it. + Instead we now simply aquire the device in vdpauvideopostprocess when we're + going into PAUSED. + +2010-07-27 23:24:43 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdp/gstvdpdecoder.h: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: cleanup GstVdpDecoder opening of it's GstVdpDevice + we now no longer try to get the GstVdpDevice from downstream since it in + practice didn't give us anything and complicates the code alot. Nevertheless if device + distribution should be done there's probably a lot better ways to do it. + +2010-07-27 23:17:09 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + vdpau: fix GstBaseVideoDecoder returning wrong GstStateChangeReturn + when gst_base_video_decoder_[start|stop] fails we now return + GST_STATE_CHANGE_FAILURE instead of returning what the parent class returns + +2010-07-27 15:33:00 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpaumpegdec: remove unneeded setting of buffer flags + GstBaseVideoDecoder sets GST_VIDEO_BUFFER_TFF for us and + GST_BUFFER_FLAG_DELTA_UNIT doesn't make sense for decoded frames. + +2010-07-29 16:08:03 +0200 Andoni Morales + + * sys/dshowsrcwrapper/gstdshow.cpp: + dshowvideosrc: don't make a range if min==max + Fixes bug #625138 + +2010-07-29 10:38:58 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: actually work when we have small buffers coming in + available_fast is not what we want and it will never get to discover packet + size if 188 byte buffers are being picked up. + +2010-07-28 18:36:53 +0200 Tim-Philipp Müller + + * .gitignore: + .gitignore: ignore gsettings xml schema file + +2010-07-28 18:34:15 +0200 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-gaudieffects.xml: + * docs/plugins/inspect/plugin-geometrictransform.xml: + * docs/plugins/inspect/plugin-ivfparse.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-shm.xml: + * docs/plugins/inspect/plugin-videomaxrate.xml: + docs: add more plugins and elements to the docs + +2010-07-28 17:46:53 +0200 Tim-Philipp Müller + + * gst/ivfparse/gstivfparse.c: + * gst/ivfparse/gstivfparse.h: + ivfparse: fix up macros and function names to match guidelines + +2010-07-28 17:34:02 +0200 Tim-Philipp Müller + + * gst/gaudieffects/gstburn.c: + * gst/gaudieffects/gstburn.h: + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstchromium.h: + * gst/gaudieffects/gstdilate.c: + * gst/gaudieffects/gstdilate.h: + * gst/gaudieffects/gstdodge.c: + * gst/gaudieffects/gstdodge.h: + * gst/gaudieffects/gstexclusion.c: + * gst/gaudieffects/gstexclusion.h: + * gst/gaudieffects/gstsolarize.c: + * gst/gaudieffects/gstsolarize.h: + gaudieffects: fix structure names to comply with the plugin moving guidelines + +2010-07-28 16:15:53 +0200 Marc-André Lureau + + * gst/qtmux/gstqtmux.c: + qtmux: use caps bitrate at last chance + If we didn't get the stream's bitrate from one of the atoms, + try getting it from the caps as a last resort. + https://bugzilla.gnome.org/show_bug.cgi?id=625496 + +2010-07-28 16:12:11 +0200 Marc-André Lureau + + * gst/qtmux/atoms.c: + qtmux: btrt - max bitrate before average + According to iso base media file format, the max bitrate + is before the avg + https://bugzilla.gnome.org/show_bug.cgi?id=625496 + +2010-07-27 18:23:30 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Reset the segment on FLUSH_STOP and when going back to READY + +2010-07-27 18:07:00 +0200 Tim-Philipp Müller + + * sys/vdpau/gstvdp/Makefile.am: + vdpau: dist new header file + Fix make distcheck. + +2010-07-23 19:41:29 +0200 Julien Moutte + + * sys/dshowvideosink/dshowvideofakesrc.cpp: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + dshowvideosink: Improvements contributed from the Moovida projet. + * Inherit from GstVideoSink + * Implement GstNavigation interface + * Proper COM initialization for threaded environments + * Fix Window resource leak + * Add EVR support for better video scaling on Windows Vista and above + * Only apply PAR scaling when the keep_aspect_ratio property is set to stay + consistent with the other Linux sinks + * Prevent an infinite loop with the wndproc chain + * Fix debugging messages to use the object instance + +2010-07-23 00:28:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdp/gstvdpdecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: add gst_vdp_decoder_render and gst_vdp_decoder_init_decoder + +2010-07-22 09:21:33 +0200 Sebastian Dröge + + * tests/icles/metadata_editor.c: + examples: Use cairo instead of gdk_draw_* API + Fixes bug #625003. + +2010-07-12 22:37:47 -0300 Luis de Bethencourt + + * configure.ac: + * gst/gaudieffects/Makefile.am: + * gst/gaudieffects/gstburn.c: + * gst/gaudieffects/gstburn.h: + * gst/gaudieffects/gstchromium.c: + * gst/gaudieffects/gstchromium.h: + * gst/gaudieffects/gstdilate.c: + * gst/gaudieffects/gstdilate.h: + * gst/gaudieffects/gstdodge.c: + * gst/gaudieffects/gstdodge.h: + * gst/gaudieffects/gstexclusion.c: + * gst/gaudieffects/gstexclusion.h: + * gst/gaudieffects/gstplugin.c: + * gst/gaudieffects/gstplugin.h: + * gst/gaudieffects/gstsolarize.c: + * gst/gaudieffects/gstsolarize.h: + gaudieffects: Adds new plugin 'gaudieffects' + Adds the new 'gaudieffects' plugin, originally found + here: http://github.com/luisbg/gaudi_effects + Contains the following video effect elements: burn, chromium, dilate, + dodge, exclusion and solarize. + Thanks to Jan Schmidt for the reviewing and refactoring + +2010-07-19 21:53:30 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: try to calculate framerate if we don't get one from upstream + +2010-07-19 11:34:39 +0200 Thijs Vermeir + + * sys/vdpau/gstvdp/gstvdpdevice.c: + vdpau: fix segfault when vdpau device could not be created + +2010-07-18 21:15:34 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: fix problem when encountering GST_NAL_AU_DELIMITER + +2010-07-08 09:56:43 +0200 Sebastian Dröge + + * sys/wasapi/gstwasapisrc.c: + wasapisrc: Use new gst_audio_clock_new_full() + +2010-07-08 09:55:51 +0200 Sebastian Dröge + + * ext/alsaspdif/alsaspdifsink.c: + alsaspdifsink: Use new gst_audio_clock_new_full() + +2010-07-15 13:23:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: calculate width and height from bitstream info + +2010-07-15 11:10:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264parser.c: + vdpauh264dec: fix usage of g_bit_storage + +2010-07-14 11:19:05 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpeg/mpegutil.c: + vdpaumpegdec: rename zigzag matrix + +2010-07-14 11:17:49 +0200 Carl-Anton Ingmarsson + + * configure.ac: + * sys/vdpau/h264/gsth264parser.c: + vdpauh264dec: use g_bit_storage instead of log2 + log2 caused compile issues on certain platforms + +2010-07-13 00:40:36 -0300 Thiago Santos + + * ext/gsettings/Makefile.am: + gsettings: Fix maintainer-clean when it is not available + Do not use @GSETTINGS_RULES@ if gsettings is not available + to avoid maintainer-clean failing. + +2010-07-11 10:47:37 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0r.h: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rfilter.h: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rmixer.h: + * gst/frei0r/gstfrei0rsrc.c: + * gst/frei0r/gstfrei0rsrc.h: + frei0r: Use correct order of directories to search for plugins + And don't fail if a plugin was already registered. Frei0r allows + plugins in directories with higher importance to override plugins + from directories with lower importance. + +2010-07-10 16:52:10 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8enc: Add support for enabling automatic insertion of alt-ref frames by the encoder + +2010-07-10 16:51:53 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Fix handling of invisible/alt ref frames + +2010-07-10 15:50:50 +0200 Sebastian Dröge + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: Fix memory leak + The timestamps are only used if the output adapter is used, not + if complete frames are provided by the decoder and finish_frame() is + called and even in the case where the output adapter is used they + might not be used and are leaked. + +2010-07-10 15:46:51 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/vp8dec.c: + vp8dec: Add simple unit test for vp8dec + +2010-07-10 15:46:43 +0200 Sebastian Dröge + + * tests/check/elements/vp8enc.c: + vp8enc: Improve unit test a bit + +2010-07-10 15:32:29 +0200 Sebastian Dröge + + * tests/check/elements/vp8enc.c: + vp8enc: Also check the output caps in the unit test + +2010-07-10 15:29:46 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/vp8enc.c: + vp8enc: Add simple unit test + +2010-07-09 17:44:56 +0300 David Hoyt + + * gst/aiff/aiffmux.c: + aifmmux: use alternative way to check for inf + MSVC emits a divide-by-zero error when compiling aiffmux.c on line 205. + Fixes #623881. + +2010-07-08 21:53:35 +0100 David Hoyt + + * sys/winks/gstksvideosrc.c: + winks: fix compilation by using the right function + Fixes #623883. + +2010-07-08 17:58:16 +0200 Víctor Manuel Jáquez Leal + + * gst/jpegformat/gstjpegparse.c: + jpegparse: fix exif frame size + Skip the correct number of bytes when reading exif + data + Fixes #623854 + +2010-07-08 15:07:25 +0200 Sebastian Dröge + + * ext/timidity/gstwildmidi.c: + wildmidi: Correctly initialize properties with the default values again + +2010-07-08 07:57:55 +0200 Sebastian Dröge + + * ext/timidity/gstwildmidi.c: + wildmidi: Use PROP_ instead of ARG_ for property enums and use G_PARAM_STATIC_STRINGS + Also don't use G_PARAM_CONSTRUCT, it does not make sense for elements. + +2010-07-07 23:06:43 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Fix viewfiner-sink property for bins + Correctly iterate viewfinder-sink children when + it is a bin. + Fixes #623802 + +2010-07-06 14:48:08 +0530 Arun Raghavan + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + qtmux: Write 'btrt' atom for H.264 media if possible + This writes out the optional 'btrt' atom (MPEG4BitrateBox) for H.264 + media if either or both of average and maximum bitrate are available for + the stream. + https://bugzilla.gnome.org/show_bug.cgi?id=623678 + +2010-07-05 14:09:50 +0530 Arun Raghavan + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: Write avg/max bitrate to ESDS if available + This collects the 'bitrate' and 'maximum-bitrate' tags on the + corresponding pad and uses these to populate these fields in the ESDS + where applicable. + https://bugzilla.gnome.org/show_bug.cgi?id=623678 + +2010-07-07 10:33:18 -0700 Michael Smith + + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + dshowdecwrapper: reset flow return state tracker after flush to avoid spurious errors after flushing in some cases. + +2010-07-07 08:37:12 +0200 Sebastian Dröge + + * configure.ac: + * ext/timidity/gstwildmidi.c: + wildmidi: Add support for wildmidi 0.2.3 + Fixes bug #623722. + +2010-07-01 10:56:19 +0200 Philippe Normand + + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + dshowvideosink: Update renderer aspect ratio after force-aspect-ratio property update. + A new virtual method has been added to the RendererSupport class. It + is called during the initial renderer configuration and each time the + force-aspect-ratio property of the sink is updated. + Fixes bug #623272. + +2010-07-07 00:15:22 +0200 Andoni Morales Alastruey + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + dshowaudiodec: Fix compilation error + Closes #623713 + +2010-07-06 13:15:27 +0100 Tim-Philipp Müller + + * gst/asfmux/gstasfmux.c: + asfmux: only use g_warning() when setting the old is-live property, not when reading it + Don't want warnings in e.g. gst-inspect. + +2010-07-06 10:53:04 +0200 Edward Hervey + + * po/POTFILES.in: + po: Use proper gsettings schema file + +2010-07-05 11:52:56 +0200 Mark Nauwelaerts + + * tests/check/elements/jpegparse.c: + tests: fix caps leak in jpegparse unit test + +2010-07-05 11:48:08 +0200 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: fix skipping extra 0xff markers + In particular, this makes the jpegparse unit test pass again. + Also add a debug statement. + Fixes #622690. + +2010-07-05 10:09:36 +0200 Sebastian Dröge + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celt: Improve debugging + +2010-07-05 10:08:30 +0200 Sebastian Dröge + + * ext/celt/gstceltenc.c: + * ext/celt/gstceltenc.h: + celtenc: Add support for setting the prediction mode and the start band + +2010-07-05 09:53:33 +0200 Sebastian Dröge + + * configure.ac: + celt: Add check for celt 0.8 + +2010-07-05 09:52:18 +0200 Sebastian Dröge + + * configure.ac: + * ext/celt/gstceltenc.c: + celt: Remove support for celt < 0.5 + celt 0.5 was released more than a year ago and the bitstream is + incompatible with the current one anyway. + +2010-07-05 09:47:38 +0200 Sebastian Dröge + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celt: Fix compilation with celt 0.8 + Fixes bug #623550. + +2010-07-05 09:32:30 +0200 Alessandro Decina + + * ext/gsettings/gstgsettingsaudiosrc.c: + * ext/gsettings/gstgsettingsvideosink.c: + * ext/gsettings/gstgsettingsvideosrc.c: + gsettings: fix some more warnings + +2010-07-05 09:28:49 +0200 Alessandro Decina + + * ext/gsettings/gstgsettingsaudiosink.c: + gsettings: fix a compiler warning + +2010-07-03 16:15:34 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/gsettings/Makefile.am: + * ext/gsettings/gstgsettings.h: + * ext/gsettings/gstgsettingsaudiosink.c: + * ext/gsettings/gstgsettingsaudiosink.h: + * ext/gsettings/gstgsettingsaudiosrc.c: + * ext/gsettings/gstgsettingsaudiosrc.h: + * ext/gsettings/gstgsettingsvideosink.c: + * ext/gsettings/gstgsettingsvideosink.h: + * ext/gsettings/gstgsettingsvideosrc.c: + * ext/gsettings/gstgsettingsvideosrc.h: + * ext/gsettings/gstswitchsink.c: + * ext/gsettings/gstswitchsink.h: + * ext/gsettings/gstswitchsrc.c: + * ext/gsettings/gstswitchsrc.h: + * ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml.in: + * ext/gsettings/plugin.c: + * po/POTFILES.in: + gsettings: Initial version of GSettings plugin + This provides audio/video sources and sinks. + Fixes bug #616265. + +2010-07-03 17:48:20 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-lv2.xml: + docs: Integrate VP8 documentation + +2010-07-03 17:47:29 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8dec.h: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + vp8: Add initial documentation, based on the theoradec/theoraenc documentation + +2010-07-03 17:34:58 +0200 Sebastian Dröge + + * ext/vp8/Makefile.am: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8dec.h: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8enc.h: + * ext/vp8/plugin.c: + vp8: Move structure definitions, etc to public header files for gtk-doc + +2010-07-02 12:45:20 +0200 Edward Hervey + + * gst/qtmux/gstqtmux.c: + qtmux: Don't use bogus codec/format tags + https://bugzilla.gnome.org/show_bug.cgi?id=623365 + +2010-07-01 15:19:12 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + rtpmux: Add support for GstBufferList + Factor out most of the buffer handling and implement a chain_list + function. Also, the DTMF muxer has been modified to just have a + function to accept or reject a buffer instead of having to subclass + both chain and chain_list. + +2010-07-01 15:15:49 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Don't leak invalid buffers + +2010-06-14 15:15:09 -0400 Olivier Crête + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/videomaxrate/videomaxrate.c: + * gst/videomaxrate/videomaxrate.h: + videomaxrate: Add to docs + +2010-06-11 18:31:05 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + videomaxrate: Add fixates_caps + +2010-06-10 20:36:29 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + videomaxrate: Accept wider caps + +2010-06-10 20:25:01 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + * gst/videomaxrate/videomaxrate.h: + videomaxrate: Make period over which to average configurable + +2010-06-10 20:43:16 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + videomaxrate: Simplify transform_caps + +2010-06-10 20:14:01 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + videomaxrate: Use basetransform correctly + +2010-06-10 20:08:14 -0400 Olivier Crête + + * gst/videomaxrate/videomaxrate.c: + * gst/videomaxrate/videomaxrate.h: + videomaxrate: Make plugin actually work by using an average + +2010-06-10 19:17:00 -0400 Olivier Crête + + * configure.ac: + * gst/videomaxrate/Makefile.am: + * gst/videomaxrate/videomaxrate.c: + * gst/videomaxrate/videomaxrate.h: + videomaxrate: Import plugin + Import plugin from PsiMedia, based on my work + +2010-07-01 16:28:57 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: signal-fps-measurements is writable + signal-fps-measurements is a readwrite property, not read-only. + Also adds some more debugging logs. + +2010-06-30 18:59:23 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: add gst-ffmpeg to whitelist as well + The mxf tests use some ffmpeg elements if they're available. + +2010-06-30 18:52:12 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + tests: add plugin loading whitelist to test environment + Only want to load core/-base/-good/-ugly/-bad plugins here. + +2010-06-30 18:20:13 +0100 Sebastian Pölsterl + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: don't free PAT structure which may still be needed later + This is a problem if you tune to a channel which uses pid X and later tune to + another channel where X is used for another table (e.g. PMT). + The code that does that was actually already there but never used because the + pat structure was freed before. The commit that introduced those lines intended + to fix a memory leak, but we clean things up elsewhere. + Fixes #622725. + +2010-06-30 18:19:00 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: update inspect info, now sorted and escaped + +2010-06-30 17:54:45 +0100 Tim-Philipp Müller + + * .gitignore: + .gitignore: ignore temporary orc files + +2010-06-29 11:21:06 +0200 Sebastian Dröge + + * configure.ac: + * sys/vdpau/h264/gsth264parser.c: + vdpau: Check for log2 and only use it if it's available + +2010-06-28 16:20:09 +0100 Tim-Philipp Müller + + * autogen.sh: + * configure.ac: + Bump automake requirement to 1.10 and autoconf to 2.60 + For maintainability reasons, $(builddir) and other things. + See #622944 and #570428. + +2010-06-28 12:00:55 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264frame.c: + vdpauh264dec: don't use deprecated g_ptr_array_free incase glib >= 2.22 + +2010-06-28 11:19:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + vdpauvideopostprocess: fix resizing of output + +2010-06-28 11:08:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264frame.c: + vdpauh264dec: don't use glib 2.22 functions + +2010-06-27 20:29:06 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: change GstBaseVideoDecoder state api + +2010-06-27 10:52:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264dpb.c: + vdpauh264dec: free frames on finalize in GstH264DPB + +2010-06-27 09:55:22 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: add display property to GstVdpDecoder + +2010-06-27 01:27:28 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264dpb.h: + * sys/vdpau/h264/gsth264frame.c: + * sys/vdpau/h264/gsth264frame.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264frame.c: + * sys/vdpau/h264/gstvdph264frame.h: + vdpauh264dec: rename GstVdpH264Frame to GstH264Frame + +2010-06-27 00:36:25 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: fix error handling when plugging "vdpauvideopostprocess ! fakesink" + +2010-06-27 00:35:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdp/gstvdpdecoder.h: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: add error parameter to gst_vdp_video_src_pad_get_device + +2010-06-28 10:47:52 +0200 Sebastian Dröge + + * sys/vdpau/Makefile.am: + vdpau: Link to $(LIBM) for log2 and friends + +2010-06-27 19:22:39 +0200 Sebastian Dröge + + * gst/legacyresample/resample_functable.c: + * gst/legacyresample/resample_ref.c: + legacyresample: Include _stdint.h for int16_t and friends + +2010-06-27 17:46:44 +0200 Robert Swain + + * ext/cog/cogframe.c: + * ext/cog/cogvirtframe.c: + cog: Use g_malloc() instead of malloc() + malloc() needs stdlib.h, which isn't included here and the + memory is freed later with g_free() anyway. + +2010-06-27 11:24:37 +0100 Tim-Philipp Müller + + * ext/assrender/gstassrender.c: + * gst/ivfparse/gstivfparse.c: + * gst/jpegformat/gstjifmux.c: + assrender, ivfparse, jpegformat: fix compiler warnings with debugging disabled in core + +2010-06-27 10:41:16 +0200 Sebastian Dröge + + * tests/examples/camerabin/gst-camera.c: + * tests/icles/metadata_editor.c: + tests: Fix build with GTK+ < 2.17.7 + gtk_widget_get_allocation() was added in that version. + +2010-06-27 10:36:58 +0200 Sebastian Dröge + + * configure.ac: + * tests/examples/scaletempo/demo-gui.c: + configure: Require GTK+ >= 2.14 for the example + +2010-06-27 07:40:50 +0200 Sebastian Dröge + + * tests/examples/camerabin/gst-camera.c: + * tests/icles/metadata_editor.c: + tests: Don't use deprecated GTK API to fix the build with GTK+ 3.0 + +2010-06-26 21:02:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp/Makefile.am: + * sys/vdpau/gstvdp/gstvdp.c: + * sys/vdpau/gstvdp/gstvdpdecoder.c: + * sys/vdpau/gstvdp/gstvdpdecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264dec.h: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.h: + vdpau: add GstVdpDecoder base class + +2010-06-26 19:02:00 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264dpb.h: + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: add gst_h264_dpb_set_output_func function + +2010-06-25 20:19:20 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Write uint tags that don't have a complement + Write uint tags that have complements (e.g. track-number/ + track-count) even when we only have one of them available + and set the other one to 0. + Fixes #622484 + +2010-06-25 11:02:33 -0300 Thiago Santos + + * ext/metadata/metadataexif.c: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadataxmp.c: + metadata: Include config.h in metadata*.c files + Include config.h in metadataexif.c in metadata plugin so + that HAVE_EXIF gets defined and exif metadata is properly + generated. + Also adds config.h to all .c files missing it in metadata plugin + Fixes #622692 + +2010-06-24 20:21:15 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: Warn if preroll value is too big + Post a warning when the preroll value is greater than + the streams duration + +2010-06-24 23:57:16 +0100 Tim-Philipp Müller + + * sys/vdpau/basevideodecoder/Makefile.am: + vdpay: fix build in uninstalled setup + Add GST_PLUGINS_BASE_CFLAGS to CFLAGS so it finds the gst/video/video.h + headers in an uninstalled setup. Also reshuffle order. + +2010-06-24 18:32:44 -0300 Thiago Santos + + * gst/asfmux/gstasfobjects.c: + asfmux: Make metadata writable before setting it + Before copying metadata from one buffer to another, make sure + the destination is metadata-writable. + +2010-06-24 22:14:38 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: fix unitialized variable + +2010-06-24 22:06:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstnalreader.c: + * sys/vdpau/h264/gstnalreader.h: + vdpauh264dec: fix initalization of GstNalReader cache + +2010-06-24 12:37:36 -0300 Thiago Santos + + * gst/debugutils/.gitignore: + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutils-marshal.list: + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: Adds a signal to inform measurements to apps + Adds a signal for applications to receive the fps measurements made + instead of only printing them to the frame/stdout. + This signal is only emited if the signal-fps-measurements property + is set to TRUE + +2010-06-24 10:59:32 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: Adds max-fps and min-fps property + Adds 2 properties for getting the maximum and minimum fps + values measured + +2010-06-24 10:24:27 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: Use G_PARAM_STATIC_STRINGS in all properties + Add G_PARAM_STATIC_STRINGS to the properties that are + missing it + +2010-06-24 10:23:02 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: Add fps-update-interval property + Use a property to set/get the fps update interval instead + of having a hardcoded value. + +2010-06-24 16:20:23 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/Makefile.am: + vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder using CFLAGS + +2010-06-24 15:23:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/basevideodecoder/Makefile.am: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/basevideodecoder/gstbasevideoutils.h: + * sys/vdpau/basevideodecoder/gstvideoframe.c: + * sys/vdpau/basevideodecoder/gstvideoframe.h: + * sys/vdpau/basevideodecoder/satbasevideodecoder.c: + * sys/vdpau/basevideodecoder/satbasevideodecoder.h: + * sys/vdpau/basevideodecoder/satbasevideoutils.h: + * sys/vdpau/basevideodecoder/satvideoframe.c: + * sys/vdpau/basevideodecoder/satvideoframe.h: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264dec.h: + * sys/vdpau/h264/gstvdph264frame.c: + * sys/vdpau/h264/gstvdph264frame.h: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.h: + * sys/vdpau/mpeg/gstvdpmpegframe.c: + * sys/vdpau/mpeg/gstvdpmpegframe.h: + Revert "vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder" + This reverts commit aa0444f204157c22c11a742547c9e68a9eaecc80. + +2010-06-24 15:09:33 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 35617c2 to a519571 + +2010-06-24 13:18:55 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/basevideodecoder/Makefile.am: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/basevideodecoder/gstbasevideoutils.h: + * sys/vdpau/basevideodecoder/gstvideoframe.c: + * sys/vdpau/basevideodecoder/gstvideoframe.h: + * sys/vdpau/basevideodecoder/satbasevideodecoder.c: + * sys/vdpau/basevideodecoder/satbasevideodecoder.h: + * sys/vdpau/basevideodecoder/satbasevideoutils.h: + * sys/vdpau/basevideodecoder/satvideoframe.c: + * sys/vdpau/basevideodecoder/satvideoframe.h: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264dec.h: + * sys/vdpau/h264/gstvdph264frame.c: + * sys/vdpau/h264/gstvdph264frame.h: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.h: + * sys/vdpau/mpeg/gstvdpmpegframe.c: + * sys/vdpau/mpeg/gstvdpmpegframe.h: + vdpau: rename GstBaseVideoDecoder to SatBaseVideoDecoder + +2010-06-23 22:33:05 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264parser.c: + vdpauh264dec: use bitshifts instead of pow + +2010-06-23 22:21:18 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: add interlaced = false to sink caps + we don't support interlaced content yet + +2010-06-23 22:18:53 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmp: All read return values smaller than zero are failures + +2010-06-23 21:10:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264parser.c: + vdpauh264dec: fix parsing of scaling lists + +2010-06-23 21:09:42 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gstnalreader.c: + vdpauh264dec: fix reading of signed exp golomb + +2010-06-22 15:49:15 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: fixup decoder timestamping + +2010-06-22 14:52:00 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + vdpau: remove parse_codec_data from GstBaseVideoDecoder + +2010-06-22 14:25:17 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264parser.c: + vdpauh264dec: fix initialization of fallback scaling matrix + +2010-06-22 14:17:28 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264dpb.h: + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gsth264parser.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264frame.h: + vdpauh264dec: improve further + +2010-06-17 15:20:51 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gstvdph264dec.c: + vdpauh264dec: now works for simple streams + +2010-06-17 15:20:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.h: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + vdpau: change gst_vdp_video_src_pad_get_device behaviour + it now creates the device if it's not available + +2010-06-16 23:12:43 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/h264/gsth264dpb.c: + * sys/vdpau/h264/gsth264dpb.h: + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gsth264parser.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264dec.h: + * sys/vdpau/h264/gstvdph264frame.h: + vdpau: more work on h264 decoder + +2010-06-10 12:13:50 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/basevideodecoder/gstvideoframe.h: + * sys/vdpau/h264/gsth264parser.c: + * sys/vdpau/h264/gsth264parser.h: + * sys/vdpau/h264/gstnalreader.c: + * sys/vdpau/h264/gstnalreader.h: + * sys/vdpau/h264/gstvdph264dec.c: + * sys/vdpau/h264/gstvdph264dec.h: + * sys/vdpau/h264/gstvdph264frame.c: + * sys/vdpau/h264/gstvdph264frame.h: + vdpau: add beginning of h264 decoder + +2010-06-09 15:43:43 +0200 Carl-Anton Ingmarsson + + * configure.ac: + * sys/vdpau/Makefile.am: + * sys/vdpau/basevideodecoder/Makefile.am: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.c: + * sys/vdpau/basevideodecoder/gstbasevideodecoder.h: + * sys/vdpau/basevideodecoder/gstbasevideoutils.h: + * sys/vdpau/basevideodecoder/gstvideoframe.c: + * sys/vdpau/basevideodecoder/gstvideoframe.h: + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdp.h: + * sys/vdpau/gstvdp/Makefile.am: + * sys/vdpau/gstvdp/gstvdp.c: + * sys/vdpau/gstvdp/gstvdp.h: + * sys/vdpau/gstvdp/gstvdpdevice.c: + * sys/vdpau/gstvdp/gstvdpdevice.h: + * sys/vdpau/gstvdp/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdp/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdp/gstvdpoutputsrcpad.h: + * sys/vdpau/gstvdp/gstvdputils.c: + * sys/vdpau/gstvdp/gstvdputils.h: + * sys/vdpau/gstvdp/gstvdpvideobuffer.c: + * sys/vdpau/gstvdp/gstvdpvideobuffer.h: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdp/gstvdpvideosrcpad.h: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpoutputsrcpad.h: + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpsink.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + * sys/vdpau/mpeg/gstvdpmpegdec.c: + * sys/vdpau/mpeg/gstvdpmpegdec.h: + * sys/vdpau/mpeg/gstvdpmpegframe.c: + * sys/vdpau/mpeg/gstvdpmpegframe.h: + * sys/vdpau/mpeg/mpegutil.c: + * sys/vdpau/mpeg/mpegutil.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpau: base vdpaumpegdec on GstBaseVideoDecoder + +2010-06-08 13:36:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: fix small bug + +2010-05-15 22:47:41 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpegutil.c: + vdpaumpegdec: use READ_UINT[8|16|32] macros + +2010-06-04 12:24:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + vdpau: remove gst_vdp_video_src_pad_set_caps + +2010-06-23 21:46:42 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Do some sanity checks before accepting an URI + Fixes bug #622369. + +2010-06-17 10:58:55 -0300 Thiago Santos + + * tests/check/elements/jifmux.c: + jifmux: Adds image orientation tags tests + Adds tests for image orientation tags to jifmux + +2010-06-23 10:38:54 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: obtain correct upstream timestamp + ... for optional downstream use. + +2010-06-22 12:28:38 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: add new h264 caps attribute alignment + See #606662. + +2010-06-21 23:48:59 +0300 Stefan Kost + + * ext/timidity/gstwildmidi.c: + wildmidi: fix previous commit + We were leaking the element refcount and not the pad one. + +2010-06-21 22:33:54 +0300 Stefan Kost + + * ext/timidity/gstwildmidi.c: + wildmidi: don't leak the element refcount + +2010-06-21 19:39:54 +0200 Edward Hervey + + * gst/qtmux/gstqtmux.c: + qtmux: Remove the pad from our internal list before calling collectpads + Previously we would end up with the collectpaddata structure already freed. + This would result in a bogus iteration of mux->sinkpads (all the + GstQTPad being freed) and it wouldn't be removed from that list. + Finally, due to it not being removed from that list, we would end up + calling a bogus gst_qt_mux_pad_reset on those structures => SEGFAULT + +2010-06-21 10:21:04 -0300 Thiago Santos + + * gst/camerabin/Makefile.am: + * gst/camerabin/camerabindebug.h: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: Move debug category declaration to a separate file + Having GST_DEBUG_CATEGORY and GST_DEBUG_CATEGORY_EXTERN together + might lead to 'undefined symbol' problems. This commit moves + the _EXTERN to a separate new file. + +2010-06-21 11:13:20 +0200 Thijs Vermeir + + * gst/h264parse/gsth264parse.c: + Revert "h264parse: add parsed field to src caps" + This reverts commit 54edae4f1f2119cf492ffe44f936f99e133af7dc. + See this bug for more information: + https://bugzilla.gnome.org/show_bug.cgi?id=606662 + +2010-06-17 08:42:53 +1000 Austin Lund + + * gst/mpegvideoparse/mpegpacketiser.c: + mpegvideoparse: Remove redundant log message + +2010-06-20 10:39:39 +0200 Thijs Vermeir + + * gst/h264parse/gsth264parse.c: + h264parse: add parsed field to src caps + +2010-06-18 14:37:05 -0300 Thiago Santos + + * gst/id3tag/id3tag.c: + id3tag: Use gst_tag_list_peek_string_index + Replace _get_string_index with _peek_string_index to avoid + a string copy + +2010-06-18 18:41:59 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: also handle 3-byte bytestream sync code + +2010-06-17 10:52:31 +0200 Thijs Vermeir + + * gst/mpegdemux/gstsectionfilter.c: + mpegdemux: improve debug output + +2010-06-16 10:31:19 +0200 Benjamin Otte + + * gst/pnm/gstpnmdec.c: + pnmdec: Don't crash if no valid input was parsed yet + https://bugzilla.redhat.com/show_bug.cgi?id=603771 + +2010-06-11 10:53:26 +1000 Austin Lund + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Added debugging output for mpegpacketiser + +2010-06-15 16:50:05 +0200 Edward Hervey + + * common: + Automatic update of common submodule + From 9339ccc to 35617c2 + +2010-06-15 16:54:28 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 5adb1ca to 9339ccc + +2010-06-15 15:34:05 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: fix seek event ref handling + +2010-06-15 15:33:37 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: prevent arithmetic overflows in pull mode buffer cache handling + +2010-06-15 15:32:34 +0200 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: fix seek handling + Allow a few more seek event type combinations, and really use the result + of gst_segment_set_seek to perform the seek. Also add some debug. + +2010-06-15 16:35:35 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 57c89b7 to 5adb1ca + +2010-06-15 15:49:26 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From c804988 to 57c89b7 + +2010-06-12 09:02:29 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Implement multipass encoding + Fixes bug #621348. + +2010-06-15 11:20:21 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: sprinkle some branch prediction + +2010-06-15 11:16:47 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: handle FLUSH_STOP event + +2010-06-15 11:16:34 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + mpeg4videoparse: add config-interval parameter to re-insert config in stream + Add a new config-interval property to instruct the parser to insert + config (VOSH, VOS, etc) at periodic intervals in the stream + (when a GOP or VOP-I is encountered). + Based on patch by + Fixes #621205. + +2010-06-15 17:16:12 +1000 Jan Schmidt + + * gst/mpegvideoparse/mpegpacketiser.c: + mpegvideoparse: Apply previous timestamp when there isn't any newer. + If the current incoming packet didn't carry a timestamp, but a + previous packet had one we didn't yet use, then apply that timestamp + to the next picture. + Fixes: #618336 + +2010-06-14 17:01:03 +0200 Sebastian Dröge + + * configure.ac: + * tests/examples/mxf/mxfdemux-structure.c: + configure: Require GLib 2.20 + +2010-06-14 15:56:24 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Set VP8E_SET_CPUUSED to 0 + This setting controls how much CPU can be used by the encoder, specified + in fractions of 16. Negative values mean strict enforcement of this + while positive values are adaptive. + The default value is -4, which means that we're not running as fast + as possible and probably are wasting some quality. 0 is the recommended + default by libvpx upstream. + +2010-06-14 15:51:30 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Use VPX defines for REALTIME, GOOD/BEST quality deadlines instead of our own + These are the values used for the speed property. + +2010-06-14 15:46:58 +0200 Mark Nauwelaerts + + * ext/dts/gstdtsdec.c: + dtsdec: prevent compiler warning if orc not present + +2010-05-31 18:30:36 +0200 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: handle FLUSH_STOP sink event + +2010-05-31 18:30:19 +0200 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: optimize image parsing + Use adapter API for scanning and peeking to reduce buffer copying. + See #583047. + +2010-06-14 15:32:26 +0200 Sebastian Dröge + + * ext/dts/gstdtsdec.c: + dtsdec: Call orc_init() before trying to get target flags + +2010-06-14 14:53:33 +0200 Sebastian Dröge + + * configure.ac: + configure: Check for orc instead of liboil + +2010-06-14 14:51:31 +0200 Sebastian Dröge + + * ext/dts/Makefile.am: + * ext/dts/gstdtsdec.c: + dtsdec: Use orc for CPU feature detection + +2010-06-14 14:48:02 +0200 Sebastian Dröge + + * gst/mpegdemux/Makefile.am: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Don't use liboil functions + glibc memcpy() will be faster than liboil's/orc's for now anyway + and we can use orc's later, after orc has support for loop unrolling. + +2010-06-14 14:47:47 +0200 Sebastian Dröge + + * gst/legacyresample/Makefile.am: + * gst/legacyresample/resample.c: + * gst/legacyresample/resample_functable.c: + * gst/legacyresample/resample_ref.c: + legacyresample: Don't include liboil headers, they're not used anyway + +2010-06-14 13:26:49 +0200 Sebastian Dröge + + * configure.ac: + configure: Use GLIB_EXTRA_CFLAGS + +2010-06-14 13:04:59 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From 7a0fdf5 to c804988 + +2010-06-14 12:49:40 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: add option to insert SPS/PPS in stream + Add a new config-interval property to insert SPS and PPS at periodic intervals + in the stream (when an IDR is encountered). + Based on patch by + Fixes #620978. + +2010-06-09 15:32:14 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: also collect SPS and PPS nalu in codec_data + +2010-06-14 11:34:15 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From 6da3bab to 7a0fdf5 + +2010-06-13 08:28:05 +0200 Sebastian Dröge + + * ext/xvid/gstxvid.c: + xvid: Don't use deprecated 15/16 bit RGB masks + +2010-06-12 08:28:54 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From 733fca9 to 6da3bab + +2010-05-22 10:35:33 +0100 Tim-Philipp Müller + + * sys/vcd/vcdsrc.c: + vcdsrc: minor clean-up + Use gst_uri_has_protocol(). + +2010-06-11 15:29:43 -0300 Thiago Santos + + * configure.ac: + * tests/check/Makefile.am: + * tests/check/elements/jifmux.c: + jifmux: Fix tests building + Only build jifmux tests if libexif headers are present + +2010-06-09 19:16:03 -0700 David Schleef + + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * ext/cog/gstcogorc.orc: + cog: use glib instead of stdint types + +2010-06-09 18:39:38 -0700 David Schleef + + * configure.ac: + configure: use m4 macro for Orc check + +2010-06-05 16:02:41 +0200 Philip Jägenstedt + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: remove spurious warning + +2010-06-10 14:17:24 +0100 Tim-Philipp Müller + + * configure.ac: + configure: require core/base git for the new image tags and helper functions + +2010-05-10 10:47:06 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/jifmux.c: + tests: jifmux: Adds jifmux exif tags tests + Adds a basic unit test for jifmux to test that exif tags + are writen properly. + This test uses libexif. + Fixes #614872 + +2010-04-28 23:52:12 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: Add exif support + Adds exif writing support to jifmux. + Adds parsing support to jpegparse. + Fixes #614872 + +2010-06-09 12:40:21 -0700 David Schleef + + * common: + Automatic update of common submodule + From fad145b to 733fca9 + +2010-06-09 12:34:10 -0700 David Schleef + + * common: + Automatic update of common submodule + From 47683c1 to fad145b + +2010-06-09 20:49:10 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Fix timestamps after a seek + +2010-06-08 14:33:56 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + asfmux: Deprecate 'is-live' and add 'streamable' property + Following the similar change in flvmux, this commit adds + 'streamable' property and deprecated 'is-live' for a better/less wrong + name. + +2010-05-13 12:15:27 +0200 Andoni Morales Alastruey + + * gst/asfmux/gstasfmux.c: + asfmux: don't set the 'seekable' flag if we are streaming + Fixes #618522 + +2010-04-29 10:46:49 +0200 Andoni Morales Alastruey + + * gst/asfmux/gstasfmux.c: + asfmux: write preroll info in the header at initialization + This value doesn't need to be updated and is usefull in a streaming context + Fixes #618522 + +2010-04-26 13:33:48 +0200 Andoni Morales Alastruey + + * gst/asfmux/gstasfmux.c: + asfmux: put headers in streamheader for streaming + Fixes #618522 + +2010-06-08 13:59:45 +0200 Marc-André Lureau + + * gst/mpegtsmux/tsmux/tsmux.h: + mpegtsmux: start pmt at 0x020 as suggested by Zaheer + +2010-06-08 13:59:08 +0200 Marc-André Lureau + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + mpegtsmux: take all the pmt in the streamheaders + +2010-06-08 09:14:01 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Do not assert on set_property to NULL for elements + Check if the value is NULL before reffing them in set_property + for 'GstElement' properties + +2010-06-08 08:41:49 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Do not assert on null caps property + If camerabin receives a null caps as 'filter-caps' argument, + use the default value + +2010-06-07 22:56:17 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + geometrictransform: Use _CAST macro + Replace default type casting macro with the faster direct _CAST macro + +2010-06-07 22:21:10 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstcirclegeometrictransform.c: + * gst/geometrictransform/gstdiffuse.c: + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gstmarble.c: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstsphere.c: + * gst/geometrictransform/gsttwirl.c: + * gst/geometrictransform/gstwaterripple.c: + geometrictransform: Make properties controllable + Makes the element's properties controllable and threadsafe. + Fixes #620825 + +2010-06-07 17:39:07 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Remove page-url and swf-url properties + It's possible to include all those options in the URL already + by appending the options and separating them by spaces, e.g. + rtmp://somewhere/something opt1=val1 opt2=val2 + +2010-06-07 17:30:47 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Fix memory leaks + +2010-06-07 11:15:26 -0400 Olivier Crête + + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + dtmfdetect: Only works with rate=8000, fix in caps + +2010-06-07 07:58:22 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Fix crash in 'filename' property + Do not crash when filename property is set to NULL, use an + empty string instead. + +2010-06-07 07:38:33 -0300 Thiago Santos + + * ext/kate/gstkateenc.c: + * ext/kate/gstkatespu.c: + kate: Run gst-indent on .c files + kate plugin has some indentation problems, run gst-indent on them + and fix it + +2010-06-06 22:34:55 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/geometricmath.c: + * gst/geometrictransform/geometricmath.h: + * gst/geometrictransform/gstmarble.c: + * gst/geometrictransform/gstmarble.h: + * gst/geometrictransform/plugin.c: + marble: Adds 'marble' element to geometrictransform + Adds a new element that does a marbling effect to + geometrictransform plugin + +2010-06-06 14:35:44 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + geometrictransform: Use explicit formats from gstvideo + Use explicit format macros from gstvideo to avoid exposing + unsupported formats on template pads. Using the macros + also give us complete caps (width/height/framerate). + And add support for AYUV. + Fixes #620717 + +2010-06-05 19:38:44 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstdiffuse.c: + * gst/geometrictransform/gstdiffuse.h: + * gst/geometrictransform/plugin.c: + diffuse: Adds diffuse element to geometrictransform + Adds the 'diffuse' element to geometrictransform. It moves + the pixels of the image in random directions + +2010-06-05 19:20:06 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + geometrictransform: Make map precalculation optional + Adds a variable to be set to allow subclasses to enable + or disable precalculation of the pixels mapping + +2010-06-06 15:32:39 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Add some braces to improve readability + +2010-06-06 15:29:34 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Improve timestamp handling a bit + +2010-06-06 15:24:23 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + * ext/rtmp/gstrtmpsrc.h: + rtmpsrc: Add support for seeking + +2010-06-06 13:57:06 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + * ext/rtmp/gstrtmpsrc.h: + rtmpsrc: Handle timestamps and the position query + This is not very accurate but better than nothing. The demuxer + after the source knows more accurate timestamps. + +2010-06-06 08:30:09 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + rtmpsrc: Allocate and free the RTMP instance in start/stop + +2010-06-04 22:36:16 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + * ext/rtmp/gstrtmpsrc.h: + rtmpsrc: Add properties for setting the swfUrl and pageUrl properties + These are required for some streams unfortunately. + +2010-06-04 22:04:53 +0200 Sebastian Dröge + + * ext/rtmp/gstrtmpsrc.c: + * ext/rtmp/gstrtmpsrc.h: + rtmpsrc: Major cleanup and reorganization + +2010-06-04 08:14:42 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/rtmp/Makefile.am: + * ext/rtmp/README: + * ext/rtmp/gstrtmpsrc.c: + * ext/rtmp/gstrtmpsrc.h: + * gst/rtmp/Makefile.am: + * gst/rtmp/amf.c: + * gst/rtmp/amf.h: + * gst/rtmp/bytes.h: + * gst/rtmp/dh.h: + * gst/rtmp/dhgroups.h: + * gst/rtmp/gstrtmpsrc.c: + * gst/rtmp/gstrtmpsrc.h: + * gst/rtmp/handshake.h: + * gst/rtmp/hashswf.c: + * gst/rtmp/http.h: + * gst/rtmp/log.c: + * gst/rtmp/log.h: + * gst/rtmp/parseurl.c: + * gst/rtmp/rtmp.c: + * gst/rtmp/rtmp.h: + * gst/rtmp/rtmp_sys.h: + rtmp: Move to ext and drop internal librtmp copy + We really don't want this in gst-plugins-bad because of + legal complexities around RTMP and possible problems + for distributions. + Add README that explains how to build librtmp to be suitable + for linking to the GStreamer plugin. + +2010-06-02 00:45:06 +0100 Bastien Nocera + + * configure.ac: + * gst/rtmp/Makefile.am: + * gst/rtmp/amf.c: + * gst/rtmp/amf.h: + * gst/rtmp/bytes.h: + * gst/rtmp/dh.h: + * gst/rtmp/dhgroups.h: + * gst/rtmp/gstrtmpsrc.c: + * gst/rtmp/gstrtmpsrc.h: + * gst/rtmp/handshake.h: + * gst/rtmp/hashswf.c: + * gst/rtmp/http.h: + * gst/rtmp/log.c: + * gst/rtmp/log.h: + * gst/rtmp/parseurl.c: + * gst/rtmp/rtmp.c: + * gst/rtmp/rtmp.h: + * gst/rtmp/rtmp_sys.h: + rtmp: Add RTMP source plugin + https://bugzilla.gnome.org/show_bug.cgi?id=566604 + +2010-06-05 11:04:45 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + geometrictransform: Set output buffer data to 0 + Initialize output buffer data to 0 before doing the + transform. + +2010-06-05 10:58:00 -0300 Thiago Santos + + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstsphere.c: + * gst/geometrictransform/gsttwirl.c: + * gst/geometrictransform/gstwaterripple.c: + geometrictransform: Descriptions and default values + Improve some properties and element descriptions and changes + some default properties values. + +2010-06-04 16:14:02 -0400 Olivier Crête + + * sys/shm/gstshmsink.c: + shmsink: Verify that pipe exists before resizing it + +2010-06-04 15:54:33 -0400 Olivier Crête + + * sys/shm/shmalloc.c: + * sys/shm/shmalloc.h: + * sys/shm/shmpipe.c: + * sys/shm/shmpipe.h: + shm: Add copyright notices to shmalloc.[ch] and shmpipe.[ch] + +2010-06-04 15:53:20 -0300 Thiago Santos + + * gst/geometrictransform/geometricmath.c: + * gst/geometrictransform/geometricmath.h: + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstcircle.h: + * gst/geometrictransform/gstcirclegeometrictransform.c: + * gst/geometrictransform/gstcirclegeometrictransform.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gstkaleidoscope.h: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstpinch.h: + * gst/geometrictransform/gstsphere.c: + * gst/geometrictransform/gstsphere.h: + * gst/geometrictransform/gsttwirl.c: + * gst/geometrictransform/gsttwirl.h: + * gst/geometrictransform/gstwaterripple.c: + * gst/geometrictransform/gstwaterripple.h: + geometrictransform: Remove trailing whitespace + Remove trailing whitespace from geometrictransform files + +2010-06-03 00:24:50 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstwaterripple.c: + * gst/geometrictransform/gstwaterripple.h: + * gst/geometrictransform/plugin.c: + waterripple: Adds new waterripple element to geometrictransofmr + Adds an water ripple distortion element to geometrictransform + +2010-06-02 23:55:41 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstsphere.c: + * gst/geometrictransform/gstsphere.h: + * gst/geometrictransform/plugin.c: + sphere: Adds new 'sphere' element to geometrictransform + Adds a new element to do 'sphere' effect into geometrictransform + plugin + +2010-06-02 22:01:31 -0300 Thiago Santos + + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gsttwirl.c: + geometrictransform: adds some properties to base class + Adds a property to select what to do with pixels that are mapped out of + edges: ignore, clamp or wrap. + +2010-06-02 18:58:42 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/geometricmath.c: + * gst/geometrictransform/geometricmath.h: + * gst/geometrictransform/gstcircle.c: + * gst/geometrictransform/gstcircle.h: + * gst/geometrictransform/plugin.c: + circle: Adds circle element to geometrictransform plugin + Adds the new 'circle' element to geometrictransform plugin + +2010-06-02 01:21:23 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/geometricmath.c: + * gst/geometrictransform/geometricmath.h: + * gst/geometrictransform/gstkaleidoscope.c: + * gst/geometrictransform/gstkaleidoscope.h: + * gst/geometrictransform/plugin.c: + kaleidoscope: Adds new element 'kaleidoscope' + Adds new kaleidoscope element to geometrictransform plugin + +2010-06-02 00:48:15 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gsttwirl.c: + * gst/geometrictransform/gsttwirl.h: + * gst/geometrictransform/plugin.c: + gsttwirl: Adds new element twirl + Adds a new element to geometrictransform plugin: twirl + +2010-06-02 00:34:36 -0300 Thiago Santos + + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstcirclegeometrictransform.c: + * gst/geometrictransform/gstcirclegeometrictransform.h: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstpinch.h: + geometrictransform: Adds a intermediary baseclass circlegeometrictransform + Adds an intermediary baseclass named gstcirclegeometrictransform + to keep common properties code for filters that operate on + a circular area. + +2010-05-30 12:50:56 -0300 Thiago Santos + + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstpinch.h: + pinch: Some optimization using the prepare func + Small optimization by precalculating the center of the effect, + also use newly added _CAST macro. + +2010-05-30 12:36:08 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + geometrictransform: Adds prepare function and cleanup + Adds a prepare function to make subclasses precalculate values + that will be used throughout the mapping functions. + Also adds a missing cleanup to fix a memleak + +2010-05-26 21:39:21 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + geometrictransform: Precalculate mapping array + Precalculate when setting caps the warping map to avoid + recalculating it every buffer + +2010-05-26 18:29:15 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + geometrictransform: Accept any rgb or gray + Using gstvideo functions geometrictransform can handle + rgb or gray, put that on template caps + +2010-05-26 18:22:02 -0300 Thiago Santos + + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + * gst/geometrictransform/gstpinch.c: + geometrictransform: Rename some variables for clarity + Renames some variables and adds a minimum doc to the + mapping function for a little clarity. + Also uses gstvideo functions for the row and pixel strides + instead of hardcoded values + +2010-05-24 23:57:05 -0300 Thiago Santos + + * configure.ac: + * gst/geometrictransform/Makefile.am: + * gst/geometrictransform/gstgeometrictransform.c: + * gst/geometrictransform/gstgeometrictransform.h: + * gst/geometrictransform/gstpinch.c: + * gst/geometrictransform/gstpinch.h: + * gst/geometrictransform/plugin.c: + geometrictransform: New plugin for geometric transforms + Adds a new plugin that has elements that perform geometric + transformations to images. By geometric transformations I mean + that the operations are functions that given the output pixel + position, get the pixel position in the input image. This pixel + is then copied from input to output. + The gstgeometrictransform baseclass makes it easy to write + such elements. It boils down to write the mapping function + and exposing properties + Already added the first of the elements, 'pinch'. It's a common + effect in image editors, like gimp (distort -> pinch) + +2010-06-03 23:19:35 -0700 David Schleef + + * tools/element-maker: + * tools/gobject.c: + * tools/gstbasesink.c: + * tools/gstbasesrc.c: + tools: flesh out element-maker templates + +2010-06-03 18:14:05 -0700 David Schleef + + * gst/bayer/gstbayer2rgb.c: + bayer2rgb: handle other bayer formats + +2010-06-03 18:14:57 -0700 David Schleef + + * gst/bayer/gstrgb2bayer.c: + * gst/bayer/gstrgb2bayer.h: + rgb2bayer: handle multiple bayer formats + +2010-06-03 15:53:04 -0700 David Schleef + + * gst/bayer/Makefile.am: + * gst/bayer/gstbayer.c: + * gst/bayer/gstrgb2bayer.c: + * gst/bayer/gstrgb2bayer.h: + bayer: Add rgb2bayer element + Mostly for testing/completeness. + +2010-06-03 20:51:57 +0100 Tim-Philipp Müller + + * sys/shm/gstshmsink.c: + * sys/shm/gstshmsrc.c: + shm: fix debug messages + Misc. printf format fixes and missing arguments. + +2010-06-03 15:27:03 -0400 Olivier Crête + + * sys/shm/gstshmsink.c: + shmsink: Make static function static + +2010-06-03 15:26:52 -0400 Olivier Crête + + * sys/shm/gstshmsink.c: + * sys/shm/gstshmsrc.c: + shm: Use gst_element_class_set_details_simple + +2010-06-03 14:42:06 -0400 Olivier Crête + + * configure.ac: + * gst/shm/Makefile.am: + * gst/shm/gstshm.c: + * gst/shm/gstshmsink.c: + * gst/shm/gstshmsink.h: + * gst/shm/gstshmsrc.c: + * gst/shm/gstshmsrc.h: + * gst/shm/shmalloc.c: + * gst/shm/shmalloc.h: + * gst/shm/shmpipe.c: + * gst/shm/shmpipe.h: + * sys/Makefile.am: + * sys/shm/Makefile.am: + * sys/shm/gstshm.c: + * sys/shm/gstshmsink.c: + * sys/shm/gstshmsink.h: + * sys/shm/gstshmsrc.c: + * sys/shm/gstshmsrc.h: + * sys/shm/shmalloc.c: + * sys/shm/shmalloc.h: + * sys/shm/shmpipe.c: + * sys/shm/shmpipe.h: + shm: Move to sys/ since it doesn't exist on windows + +2010-06-03 14:41:55 -0400 Olivier Crête + + * gst/shm/gstshmsrc.c: + shmsrc: Fix indentation + +2010-06-03 14:22:36 -0400 Olivier Crête + + * gst/shm/gstshmsink.c: + * gst/shm/shmpipe.c: + * gst/shm/shmpipe.h: + shmsink: Print errors if fchmod fails + +2010-04-07 19:05:37 -0400 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Fix crash when sp_close_shm is called with self == NULL. + If sp_open_shm errors out trying to open a shm area, it would crash + when trying to free the area. The RETURN_ERROR macro calls + sp_shm_area_dec with self == NULL. sp_shm_area_dec calls + sp_shm_close, with self == NULL, which it then tries to access a + parameter of without checking. This patch checks to make sure + self != NULL before accessing that parameter. + +2010-04-07 19:05:15 -0400 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Update code standard + +2010-02-03 13:50:13 +0200 Olivier Crête + + * gst/shm/gstshmsrc.c: + shmsrc: Add socket path to error message + +2010-02-02 17:40:09 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Remove wrong test inversion + +2010-02-02 17:35:26 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Verify that accept succeeds + +2010-02-02 17:35:15 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Fix one byte overflow + +2010-02-02 11:11:06 +0200 Olivier Crête + + * gst/shm/gstshmsink.c: + * gst/shm/gstshmsrc.c: + shmsrc: Improve debug prints + +2010-01-26 12:34:34 +0200 Olivier Crête + + * gst/shm/gstshmsink.c: + shmsink: Get potentially modified after opening shmpipe + +2010-01-26 12:32:56 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + * gst/shm/shmpipe.h: + shm: Try alternate paths for the socket + +2010-01-29 11:06:44 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Don't pretend the path is random + +2010-01-29 10:57:27 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Create shm area exclusively + +2010-01-28 15:34:44 +0200 Olivier Crête + + * gst/shm/shmalloc.h: + * gst/shm/shmpipe.c: + * gst/shm/shmpipe.h: + shmalloc: Make it build in non-glib world + +2010-01-28 12:19:07 +0200 Olivier Crête + + * gst/shm/gstshmsrc.c: + * gst/shm/gstshmsrc.h: + shmsrc: Make the shmpipe life independant of the element states + +2010-01-28 11:57:34 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Simplify handling of random paths + +2010-01-28 11:36:01 +0200 Olivier Crête + + * gst/shm/gstshmsrc.c: + shmpipe: Remove useless attrib + +2010-01-28 11:31:11 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Ref client shmarea when a buffer is received in it + +2010-01-28 11:30:11 +0200 Olivier Crête + + * gst/shm/shmpipe.c: + shmpipe: Don't dec old shm area when new one is added + Its ref will be dropped when the "close" message arrives + +2010-01-27 11:49:34 +0200 Olivier Crête + + * gst/shm/gstshmsrc.c: + shmsrc: Lock uses of shmpipe + +2010-01-26 14:20:35 +0200 Olivier Crête + + * gst/shm/gstshmsrc.c: + shmsrc: Add is-live property + +2009-11-03 20:03:24 -0500 Olivier Crête + + * gst/shm/shmpipe.c: + shm: Print details on errors + +2009-11-03 18:33:35 -0500 Olivier Crête + + * gst/shm/gstshmsink.c: + * gst/shm/shmpipe.c: + shm: Make valgrind happy + +2009-11-03 16:31:37 -0500 Olivier Crête + + * gst/shm/gstshmsink.c: + shmsink: Don't block on EOS in non-blocking mode + +2009-11-03 16:09:35 -0500 Olivier Crête + + * gst/shm/shmpipe.c: + shm: Block if required + +2009-10-30 18:24:58 +0000 Olivier Crête + + * gst/shm/gstshm.h: + * gst/shm/gstshmsink.c: + * gst/shm/gstshmsink.h: + shmsink: Port to ShmPipe + +2009-10-30 12:37:50 +0000 Olivier Crête + + * gst/shm/gstshmsrc.c: + * gst/shm/gstshmsrc.h: + shmsrc: Port to ShmPipe + +2009-10-29 19:18:25 +0000 Olivier Crête + + * gst/shm/Makefile.am: + * gst/shm/shmalloc.c: + * gst/shm/shmalloc.h: + * gst/shm/shmpipe.c: + * gst/shm/shmpipe.h: + shm: Add shmpipe implementation + +2009-04-29 16:33:46 -0400 Olivier Crête + + * configure.ac: + * gst/shm/Makefile.am: + * gst/shm/gstshm.c: + * gst/shm/gstshm.h: + * gst/shm/gstshmsink.c: + * gst/shm/gstshmsink.h: + * gst/shm/gstshmsrc.c: + * gst/shm/gstshmsrc.h: + shm: Add shm based sink and src + These two elements (shmsink and shmsrc) communicate buffers using POSIX + shared memory. They also communicate the caps. The source currently acts as + a live source and ignores the timestamps coming from the sink. It also does + not transfer the tags. + +2010-06-03 15:51:18 +0530 Arun Raghavan + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Some checks to avoid asserts + gst_mpeg_descriptor_find() expects the description field to be non-NULL. + This fixes a couple of calls where the value being passed is not + verified to be non-NULL first. + https://bugzilla.gnome.org/show_bug.cgi?id=620456 + +2010-06-03 10:49:40 +0100 Tim-Philipp Müller + + * ext/vp8/gstvp8enc.c: + vp8enc: fix printf format warning in log message + gstvp8enc.c:564: error: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’ + gstvp8enc.c:744: error: format ‘%d’ expects type ‘int’, but argument 8 has type ‘size_t’ + +2010-06-03 10:43:20 +0100 Tim-Philipp Müller + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpmux: fix missing debug log message argument + +2010-06-02 22:07:31 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: add an assert to placate gcc-4.5 + +2010-06-02 19:46:50 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoparse.c: + basevideoparse: fix warning + +2010-06-02 19:38:35 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoparse.c: + basevideoparse: remove bogus api + +2010-06-02 17:54:42 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: remove gst_base_video_state_from_caps + +2010-06-02 17:40:17 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoutils.c: + basevideo: remove compatibility code + +2010-06-02 16:06:20 -0700 David Schleef + + * configure.ac: + configure: Orc is not required + +2010-06-02 16:01:28 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoparse.c: + * gst-libs/gst/video/gstbasevideoutils.c: + basevideo: use debug category for each class + +2009-10-05 15:47:58 +0100 Jan Schmidt + + * gst-libs/gst/video/gstbasevideoutils.c: + basevideo: Fail if caps don't contain a framerate field + Return false from the caps parsing function if there is no framerate + field in the provided caps + Merging previous commit into current codebase. + +2010-06-02 13:31:46 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + basevideodecoder: create new segments if missing + +2009-09-17 10:50:40 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Add a warning + Merging previous commit into current codebase. + +2009-07-03 16:08:38 +0100 Tim-Philipp Müller + + * ext/vp8/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoparse.h: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo, vp8: guard unstable API with GST_USE_UNSTABLE_API + Add some guards and fat warnings to the header files with still unstable + API, so people who just look at the installed headers know that it + actually is unstable API. + Merging previous commit into current codebase. + +2010-06-02 19:52:07 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Clear adapter when flushing + +2010-06-02 19:45:29 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Stop decoding if can't push + +2010-06-02 19:44:31 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Flush adapter right ater using it + +2009-11-18 11:14:28 -0500 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: No need to do a try allocation + +2009-11-18 11:08:25 -0500 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Document paused-mode property + +2009-10-12 20:19:38 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Use log loglevel for messages that are shown on every frame + +2009-10-12 20:09:34 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + mimdec: Remove object lock usage, stream lock is enough + +2009-10-12 20:08:12 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Output framerate is unknown + +2009-10-12 20:06:13 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + mimdec: Remove local state variable from instance + +2009-10-12 19:57:50 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Remove useless variable + +2009-10-12 19:56:54 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Make caps a lot stricter + +2009-10-12 19:52:35 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Set delta_unit flag on intra frames + +2009-10-12 19:50:52 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Initialize encoder/decoders in state change and setcaps where possible + +2009-10-12 19:36:29 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Fix element details + +2009-10-12 19:31:38 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimic: Hold element lock while accessing the clock + +2009-10-12 19:29:17 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimic: Refactor tcp header creation to not make a separate buffer + +2009-10-12 19:18:20 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimic: Function can't fail + +2009-10-12 19:17:30 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Remove C++ style comments + +2009-10-12 19:16:26 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Use GST_ELEMENT_ERROR when returning a flow error + +2009-10-12 18:54:59 -0400 Olivier Crête + + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.h: + mimic: Fix GST_MIM_*_CLASS macros + +2009-10-12 18:47:35 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimic: Warn if paused-mode is toggled while playing + +2009-10-12 18:39:06 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + mimic: Add GST_DEBUG_FUNCPTR where appropriate + +2009-10-12 18:36:58 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + * ext/mimic/gstmimic.c: + mimic: Rename functions/macros to match class names + +2010-05-10 18:37:55 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Add some debug messages + +2010-05-07 18:56:57 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + rtpdtmfmux: Remove stream-lock event handling + +2010-05-07 18:54:49 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Update doc for simplification + +2010-05-07 18:42:06 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Remove rtpdtmfmux stream-lock code + +2010-05-07 18:40:30 -0400 Olivier Crête + + * tests/check/elements/rtpmux.c: + tests: Change tests to not use the priority pads instead of the events + +2010-05-06 19:51:59 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + rtpdtmfmux: Drop buffers on non-priority sinks when something is incoming on the priority sink + +2010-05-06 18:11:40 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + rtpdtmfmux: Add priority sink pads + +2010-05-07 17:15:47 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Cleanup event function + +2010-05-07 16:42:22 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + * tests/check/elements/rtpmux.c: + rtpmux: Aggregate incoming segments + +2010-05-06 19:09:48 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Update documentation + +2010-05-06 18:10:45 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + rtpmux: Simplify request pad creation + +2010-06-02 12:16:56 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoparse.c: + basevideo: make printf formats portable + +2010-06-02 11:41:25 -0700 David Schleef + + * configure.ac: + Update Orc requirement to 0.4.4.1 + +2010-06-02 11:31:26 -0700 David Schleef + + Merge branch 'hacking' + +2010-05-22 18:14:09 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Add verify-field-flags property + When enabled, check that the video matches the field flags on the + incoming buffers. + +2010-05-22 11:36:37 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: remove old code + +2010-05-22 11:30:54 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Add 4:2:2 formats + +2010-05-22 00:44:40 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Change format table + Add format name, phase table. + +2010-03-09 12:32:42 -0800 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Add multiple pulldown formats + +2010-05-21 23:39:06 -0700 David Schleef + + * gst/invtelecine/Makefile.am: + * gst/invtelecine/gstinvtelecine.c: + invtelecine: handle different frame sizes + +2010-05-24 12:55:16 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideodecoder: (in vp8) Mark discont buffers + +2010-06-02 05:51:41 +0400 Руслан Ижбулатов + + * gst/ivfparse/gstivfparse.c: + ivfparse: Fix format string warning + Fixes #620324 + +2010-06-01 23:50:03 -0700 David Schleef + + * tests/icles/Makefile.am: + cog: remove old tests + +2010-06-01 23:34:05 -0700 David Schleef + + * tests/check/Makefile.am: + tests: Add orc tests to check Makefile + +2010-06-01 16:55:17 -0700 David Schleef + + * configure.ac: + * ext/cog/Makefile.am: + * ext/cog/cog.orc: + * ext/cog/cogframe.c: + * ext/cog/cogvirtframe.c: + * ext/cog/gstcogorc-dist.c: + * ext/cog/gstcogorc-dist.h: + * ext/cog/gstcogorc.orc: + cog: use common/orc.mak + +2010-05-16 10:24:22 +0200 Sebastian Dröge + + * ext/schroedinger/gstschroenc.c: + schro: Fix segfault on EOS + +2010-05-14 01:21:08 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + schro: fix for base video updates + +2010-05-16 10:15:53 +0200 Sebastian Dröge + + * ext/dirac/gstdiracenc.cc: + dirac: Fixes for base video encoder changes + +2010-06-01 15:54:51 -0700 David Schleef + + * ext/vp8/Makefile.am: + * ext/vp8/gst/video/gstbasevideocodec.c: + * ext/vp8/gst/video/gstbasevideocodec.h: + * ext/vp8/gst/video/gstbasevideodecoder.c: + * ext/vp8/gst/video/gstbasevideodecoder.h: + * ext/vp8/gst/video/gstbasevideoencoder.c: + * ext/vp8/gst/video/gstbasevideoencoder.h: + * ext/vp8/gst/video/gstbasevideoparse.c: + * ext/vp8/gst/video/gstbasevideoparse.h: + * ext/vp8/gst/video/gstbasevideoutils.c: + * ext/vp8/gst/video/gstbasevideoutils.h: + * ext/vp8/gst/video/gstvideocompat.c: + * ext/vp8/gst/video/gstvideocompat.h: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoparse.c: + * gst-libs/gst/video/gstbasevideoparse.h: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: Move base video from vp8 to gst-libs + +2010-06-01 23:49:31 -0700 David Schleef + + * common: + Automatic update of common submodule + From 17f89e5 to 47683c1 + +2010-06-01 22:55:11 -0700 David Schleef + + * common: + Automatic update of common submodule + From fd7ca04 to 17f89e5 + +2010-05-26 06:52:15 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8utils.h: + vp8: Use VPX_PLANE_* instead of PLANE_* + +2010-05-24 11:04:02 +0200 Sebastian Dröge + + * ext/vp8/gstvp8utils.h: + vp8: Add compatilibity defines to work with older versions of libvpx too + +2010-05-23 09:28:13 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8enc.c: + vp8dec: s/IMG_FMT_I420/VPX_IMG_FMT_I420/ + This corresponds to upstream libvpx commit 6cd4a10e167203d1deb79abf60ee72599e97891b + +2010-05-22 12:55:45 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Allow a maximum keyframe distance of 0, i.e. all frames are keyframes + +2010-05-22 09:08:46 +0200 Sebastian Dröge + + * gst/ivfparse/gstivfparse.c: + ivfparse: Send an initial NEWSEGMENT event + +2010-05-22 09:02:26 +0200 Sebastian Dröge + + * configure.ac: + * gst/ivfparse/Makefile.am: + * gst/ivfparse/gstivfparse.c: + ivfparse: Integrate into the build system + +2010-05-22 08:56:34 +0200 Sebastian Dröge + + * gst/ivfparse/gstivfparse.c: + * gst/ivfparse/gstivfparse.h: + ivfparse: Add simple IVF parser + This only supports VP8 so far. + Fixes bug #619158. + +2010-05-22 08:45:35 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Set decoder deadline from the QoS information + +2010-06-01 10:18:06 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * win32/common/config.h: + Back to development + +=== release 0.10.19 === + +2010-05-31 02:10:58 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-segmentclip.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-vp8.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-zbar.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.19 + +2010-05-31 02:10:08 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2010-05-31 01:52:17 +0100 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + docs: add some distclean rules to fix distcheck + Stolen from gtk-doc.m4 and not found in gtk-doc-plugin.m4. We need + them because we do have libs/interfaces stuff as well now (namely + GstPhotography). + +2010-05-31 00:33:16 +0100 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: fix build of gtk-doc scanner + +2010-05-28 16:35:12 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Move debug output one line above where the packet is still valid + +2010-05-28 15:53:30 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Correctly ignore non-frame packets from the encoder + Fixes bug #619916. + +2010-05-21 14:01:34 +0100 Tim-Philipp Müller + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: change profile and level strings to something nicer-looking + This is more in line with what we do elsewhere, even if it doesn't + resemble the offical abbreviations exactly. + See #616078. + +2010-05-25 16:37:58 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: plug a few memory leaks + Fixes #619617. + +2010-05-26 14:11:15 +0100 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.18.3 pre-release + +2010-05-26 14:03:20 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/camerabin.dot: + * docs/plugins/camerabin.png: + * docs/plugins/figures/Makefile.am: + * docs/plugins/figures/camerabin.dot: + * docs/plugins/figures/camerabin.png: + docs: fix dist/distcheck issues with camerabin figures + Move figures into docs/plugins as well, to avoid issues with + make dist and make distcheck (make distdir will not first descend + into child directories). Out-of-source build seems to still work + as well. + +2010-05-26 12:36:21 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + po: update translations + +2010-05-26 11:55:47 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 357b0db to fd7ca04 + +2010-05-07 16:42:12 +0400 Руслан Ижбулатов + + * configure.ac: + * ext/mplex/Makefile.am: + mplex: add MPLEX_LDFLAGS variable + So mingw32 users can hack around a compiler/linker bug. + Fixes #617145 + +2010-05-25 00:27:17 +0100 Zaheer Abbas Merali + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: fix crash if downstream is unliked + mpeg_packetizer_get_block() in some circumstances (here: if + downstream was unlinked) returns a block but does not set the + buffer causing mpegvideoparse_drain_avail() to cause invalid memory + access. + Fixes #619502. + +2010-05-24 17:41:40 -0300 Thiago Santos + + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-app.xml: + * gst-libs/gst/app/.gitignore: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstapp-marshal.list: + * gst-libs/gst/app/gstappbuffer.c: + * gst-libs/gst/app/gstappbuffer.h: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsink.h: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/app/gstappsrc.h: + * gst/app/Makefile.am: + * gst/app/gstapp.c: + Removing remaining gstapp* + There are some remaining gstapp* living unlinked from the build scripts. + Remove them. + +2010-05-24 19:21:32 -0300 Thiago Santos + + * tests/check/Makefile.am: + camerabin: Fix test build + Adds missing -bad cflags to camerabin tests. + +2010-05-23 19:17:41 +0100 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtspacketizer: fix minor memory leak + Don't leak language code. + Fixes #619444. + +2010-05-21 20:48:34 -0700 David Schleef + + * ext/cog/gstcogcolorspace.c: + cogcolorspace: resample YUV->YUV conversions + Fixes a segfault (bug #618044). + +2010-04-08 16:05:11 +0100 Bastien Nocera + + * sys/vcd/vcdsrc.c: + vcdsrc: change VCD URI handler to the DVD scheme + The current URI parsing code doesn't allow setting the "device" + from which the VCD should be read. + Use the same structure as the DVD URI handling instead, so that + devices can be passed in the URI, as well as track number. + Up the rank of the VCD plugin so that it can be auto-plugged and + used by Totem. + https://bugzilla.gnome.org/show_bug.cgi?id=340986 + +2010-05-22 07:44:27 +0200 Sebastian Dröge + + * ext/vp8/gst/video/gstbasevideodecoder.c: + basevideodecoder: Take the frame duration into account when calculating the earliest time + This formula is used in many other elements too. + Fixes bug #619318. + +2010-05-22 07:35:01 +0200 Sebastian Dröge + + * ext/vp8/gst/video/gstbasevideodecoder.c: + basevideodecoder: Reset QoS values when necessary + +2010-05-22 09:35:24 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Use GST_VIDEO_CAPS_YUV(I420) instead of handwritten I420 caps for the pad template + Fixes bug #619344. + +2010-05-21 20:53:36 +0200 Philip Jägenstedt + + * ext/vp8/gst/video/gstbasevideodecoder.c: + * ext/vp8/gst/video/gstbasevideodecoder.h: + * ext/vp8/gst/video/gstbasevideoutils.h: + * ext/vp8/gstvp8dec.c: + vp8dec: drop late frames after decoding them + This saves a memcpy, which is always something. + +2010-05-21 21:28:29 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8enc.c: + vp8enc: threads property + Increasing from 1 to 2 threads on an Thinkpad X60s decreased encode time + in a test from ~24 s to ~19 s, so this is quite useful. + Ideally we should let 0 be the default and automatically match the number + of CPU cores (or something). + +2010-05-21 15:17:46 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8enc.c: + vp8enc: add mode property to switch between CBR/VBR + Always using CBR when bitrate is used isn't that great, VBR mode + can produce meaningful results too. + +2010-05-21 10:54:57 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Only enable postprocessing if the decoder supports it + +2010-05-21 08:23:58 +0200 Philip Jägenstedt + + * ext/vp8/plugin.c: + vp8: typo: s/HAVE_VP8_DECODER/HAVE_VP8_ENCODER/ + Fixup for bug #619172. + +2010-05-21 08:13:06 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + vp8: move #ifdef HAVE_VP8_ENCODER/DECODER + Otherwise we'll try including e.g. which doesn't exist. + +2010-05-20 16:49:03 +0200 Philip Jägenstedt + + * configure.ac: + vp8: link with -lm -lpthread when testing for vp8 encoder/decoder + Fixup for bug #619172. + +2010-05-20 20:06:09 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Write GStreamer element and version in the vorbiscomment vendor string + +2010-05-20 16:49:03 +0200 Sebastian Dröge + + * configure.ac: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/plugin.c: + vp8: Only enable the encoder or decoder if it's available in libvpx + Fixes bug #619172. + +2010-05-20 10:19:54 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/plugin.c: + vp8: exlcude dec/enc based on CONFIG_VP8_DECODER/ENCODER + This may not be very autotoolish, but works with libvpx in the state + that libvpx is actually in. Moved the debug init to the elements + themselves to minimize amount of #ifdefs + +2010-05-20 15:59:57 +0200 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + docs: fix html image location for out-of-source build + +2010-05-20 09:24:53 +0200 Philip Jägenstedt + + * ext/vp8/gstvp8enc.c: + vp8enc: Limit max-latency to 25 to match libvpx + From libvpx/vp8/encoder/onyx_int.h: + #define MAX_LAG_BUFFERS (CONFIG_REALTIME_ONLY? 1 : 25) + While we don't need to be tied to what libvpx does internally, it + doesn't make sense to pretend to support longer frame lags than are + actually possible. + +2010-05-20 09:56:25 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8utils.c: + vp8: Undef HAVE_CONFIG_H before including libvpx headers + A public libvpx header includes private headers if this is + defined, causing compilation failures because the private headers + are not installed of course. + +2010-05-20 08:53:12 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Some more minor adjustments for the Ogg mapping + +2010-05-19 17:12:55 -0700 David Schleef + + * configure.ac: + * ext/audiofile/Makefile.am: + * ext/dirac/Makefile.am: + * ext/resindvd/Makefile.am: + * ext/schroedinger/Makefile.am: + * ext/sndfile/Makefile.am: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/interfaces/Makefile.am: + * gst-libs/gst/signalprocessor/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst/aiff/Makefile.am: + * gst/asfmux/Makefile.am: + * gst/audiobuffer/Makefile.am: + * gst/camerabin/Makefile.am: + * gst/dvdspu/Makefile.am: + * gst/nuvdemux/Makefile.am: + * gst/videomeasure/Makefile.am: + * sys/dvb/Makefile.am: + * sys/dxr3/Makefile.am: + * tests/examples/camerabin/Makefile.am: + Split out GST_PLUGINS_BAD_CFLAGS from GST_CFLAGS + Move include directives for gst-libs into GST_PLUGINS_BAD_CFLAGS, + and fix all the Makefiles that use it. This is so that all the + include directories are added in the proper order: first the + directories in srcdir/builddir, then gst-plugins-base dirs, then + gstreamer dirs. If the order is wrong, installed headers may be + used instead of local headers and/or uninstalled headers from -base. + +2010-05-19 23:02:19 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Fix memory leak + +2010-05-19 21:34:42 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Adjust Ogg mapping for the changes + +2010-05-12 18:50:34 -0700 David Schleef + + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: Add VP8 + +2010-05-19 18:12:18 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Add properties to control the VP8 decoder post processing feature + This is disabled by default for now. + +2010-05-19 17:16:54 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Rename keyframe-interval to max-keyframe-distance + And use default settings for buffer sizes until we expose this + somehow. + +2010-05-19 17:13:17 +0200 Sebastian Dröge + + * ext/vp8/Makefile.am: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/gstvp8utils.c: + * ext/vp8/gstvp8utils.h: + vp8: Improve error handling and debug output + +2010-05-19 14:46:48 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + vp8: Use correct strides and plane offsets for GStreamer + +2010-05-18 14:47:54 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Implement GstTagSetter interface + +2010-05-18 14:33:49 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Fix setting of the keyframe flag on encoded frames + +2010-05-18 14:30:15 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Post an error message on the bus if encoder initialization fails + +2010-05-18 14:28:55 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Fix memory leaks and fail if initializing the decoder fails + +2010-05-18 02:44:54 -0700 David Schleef + + * ext/vp8/gstvp8enc.c: + vp8enc: Set timebase + Also misc cleanup. + +2010-05-16 10:36:12 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Fix decoding of invisible frames + +2010-05-14 14:26:34 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Update the latency when initializing the encoder + +2010-05-14 14:02:53 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Correctly initialize stream info before peeking at the stream + Otherwise peeking will fail and we'll get invalid values + +2010-05-14 11:01:29 +0200 Sebastian Dröge + + * ext/vp8/gstvp8dec.c: + vp8dec: Make sure to pass a keyframe as first frame to the decoder, copy output frames only once and require width/height/etc on the input caps + +2010-05-14 10:30:18 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Add support for invisible frames and the Ogg mapping + +2010-05-14 01:14:46 -0700 David Schleef + + * ext/vp8/gstvp8dec.c: + vp8dec: Fix reset after seeking + Also remove some unused code. + +2010-05-13 21:19:32 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Set frame numbers as buffer offsets + +2010-05-13 21:18:08 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Always get as many frames as possible from the encoder + +2010-05-13 21:08:03 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Fill the oldest pending frame instead of the newest + +2010-05-13 20:20:32 +0200 Sebastian Dröge + + * ext/vp8/gstvp8enc.c: + vp8enc: Correctly set delta unit flag for non-keyframes + +2010-05-13 01:04:04 -0700 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/vp8/Makefile.am: + * ext/vp8/gst/video/gstbasevideocodec.c: + * ext/vp8/gst/video/gstbasevideocodec.h: + * ext/vp8/gst/video/gstbasevideodecoder.c: + * ext/vp8/gst/video/gstbasevideodecoder.h: + * ext/vp8/gst/video/gstbasevideoencoder.c: + * ext/vp8/gst/video/gstbasevideoencoder.h: + * ext/vp8/gst/video/gstbasevideoparse.c: + * ext/vp8/gst/video/gstbasevideoparse.h: + * ext/vp8/gst/video/gstbasevideoutils.c: + * ext/vp8/gst/video/gstbasevideoutils.h: + * ext/vp8/gst/video/gstvideocompat.c: + * ext/vp8/gst/video/gstvideocompat.h: + * ext/vp8/gstvp8dec.c: + * ext/vp8/gstvp8enc.c: + * ext/vp8/plugin.c: + vp8: Add encoder/decoder + +2010-05-18 21:32:22 +0200 Alessandro Decina + + * gst/h264parse/gsth264parse.c: + h264parse: fix wrong timestamps in some cases after seeking. + Reset ->last_outbuf_dts on flush-stop. Fixes #619064. + +2010-05-17 16:26:03 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix memory corruption when parsing adaptation field + +2010-05-17 11:52:45 +0100 Tim-Philipp Müller + + * ext/Makefile.am: + * ext/polyp/Makefile.am: + * ext/polyp/plugin.c: + * ext/polyp/polypsink.c: + * ext/polyp/polypsink.h: + Remove unused polyp audio plugin code + polypaudio was renamed to pulseaudio ages ago. + Fixes #618867. + +2010-05-15 15:37:59 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + resindvd: Check for dvdnav and dvdread libraries + +2010-05-15 01:18:52 +0200 Benjamin Otte + + * tests/examples/camerabin/Makefile.am: + examples: Don't install camerabin examples + +2010-05-15 00:19:17 +0100 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.18.2 pre-release + +2010-05-14 18:31:52 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + docs: remove more cruft related to plugins that have been moved to -good + +2010-05-14 18:25:13 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 4d67bd6 to 357b0db + +2010-05-14 16:53:20 +0100 Tim-Philipp Müller + + * configure.ac: + configure: fix --disable-external + +2010-05-14 01:55:41 +0100 Tim-Philipp Müller + + * Makefile.am: + build: add old shave files in common to 'cruft' files + +2010-05-13 14:42:48 +0200 Sebastian Dröge + + * gst/festival/gstfestival.c: + festival: Only close the connection if it's opened + +2010-05-13 14:41:08 +0200 Ivan Zderadicka + + * gst/festival/gstfestival.c: + festival: Don't open an infinite number of connections to the server and close connections + Fixes bug #618527. + +2010-05-13 12:55:29 +0200 Wim Taymans + + * ext/jack/gstjackaudiosrc.c: + jacksrc: make sure we always read nframes + Error out when we are asked to read a different size that what was configured as + the jack period size because that would mean something else is wrong. + Fixes #618409 + +2010-05-11 17:56:31 -0400 Tristan Matthews + + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + jack: improve process_cb + +2010-05-11 13:52:51 -0400 Joshua M. Doe + + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0r.h: + frei0r: Fix setting of boolean values + Setting boolean type parameters from gst-launch failed because of improper handling of type conversions. + Fixes bug #618388. + +2010-05-12 13:00:16 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: parse TDT table in mpegts. + Some tables in MPEG-TS do not have a crc in the spec, so also mpegtsparse + is not calculating crc for sections with table_id 0x70 - 0x72 because they + do not have a CRC in the spec. See EN300468. Parse Time and Date table and + output bus message. + +2010-05-11 16:03:26 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + po: remove oss4 strings + +2010-05-11 15:33:54 +0100 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/inspect/plugin-oss4.xml: + * gst-plugins-bad.spec.in: + * po/POTFILES.in: + * sys/Makefile.am: + * sys/oss4/Makefile.am: + * sys/oss4/oss4-audio.c: + * sys/oss4/oss4-audio.h: + * sys/oss4/oss4-mixer-enum.c: + * sys/oss4/oss4-mixer-enum.h: + * sys/oss4/oss4-mixer-slider.c: + * sys/oss4/oss4-mixer-slider.h: + * sys/oss4/oss4-mixer-switch.c: + * sys/oss4/oss4-mixer-switch.h: + * sys/oss4/oss4-mixer.c: + * sys/oss4/oss4-mixer.h: + * sys/oss4/oss4-property-probe.c: + * sys/oss4/oss4-property-probe.h: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-sink.h: + * sys/oss4/oss4-soundcard.h: + * sys/oss4/oss4-source.c: + * sys/oss4/oss4-source.h: + * tests/icles/.gitignore: + * tests/icles/Makefile.am: + * tests/icles/test-oss4.c: + Remove oss4 plugin + It has been moved to gst-plugins-good. + See #614305. + +2010-05-11 14:02:33 +0100 Tim-Philipp Müller + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-imagefreeze.xml: + * gst/imagefreeze/Makefile.am: + * gst/imagefreeze/gstimagefreeze.c: + * gst/imagefreeze/gstimagefreeze.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/imagefreeze.c: + Remove imagefreeze plugin/element. + It has been moved to gst-plugins-good. + See #613786. + +2010-05-11 13:15:37 +0100 Tim-Philipp Müller + + * tests/check/pipelines/tagschecking.c: + tests: don't fail tagschecking test if qtdemux is not available or too old + +2010-05-11 13:08:41 +0100 Tim-Philipp Müller + + * Makefile.am: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstcapssetter.c: + * gst/debugutils/gstcapssetter.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/capssetter.c: + Remove capssetter element + It has been moved to gst-plugins-good. + See #617739. + +2010-05-11 10:04:50 +0200 Sebastian Dröge + + * configure.ac: + configure: Check for GTK+ 3.0 and if it's not available for GTK+ 2.0 + +2010-05-11 10:01:23 +0200 Sebastian Dröge + + * tests/examples/scaletempo/demo-gui.c: + scaletempo: Don't use deprecated GTK symbols in the demo + +2010-05-07 19:15:31 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Don't try to re-send the same event more than once + +2010-05-07 22:53:17 +0300 Stefan Kost + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: make the intention of the elements more clear + +2010-05-07 13:57:12 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + Revert "jifmux: Merge xmp and tagsetter tags." + This reverts commit 4e5c4122349031264bf47e6af9338f8ae0236d5f. + jifmux shouldn't be able to handle jif and shouldn't expect + any xmp on its data. So, no need to handle them. + +2010-05-07 12:42:23 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Merge xmp and tagsetter tags. + When the current file already has tags, they shouldn't be ignored, + parse them and merge with the tagsetter ones. + +2010-05-07 11:07:34 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Reject buffers without caps + jifmux expects whole jpeg pictures in buffers, so it should + reject buffers without caps. + +2010-05-07 10:59:22 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Be safe and check bytewriter returns + Check GstByteWriter returns to know when recombining the image + failed and log a warning. + +2010-05-07 10:13:54 -0300 Thiago Santos + + * gst/jpegformat/gstjifmux.c: + jifmux: Avoid adding 2 xmp packets + jifmux was only appending a new xmp packet to the stream, + it should replace if there is already one. + +2010-05-07 10:58:49 +0300 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: add freeze to plugin docs + +2010-05-07 08:12:43 +0200 Sebastian Dröge + + * examples/mpts_test2.c: + * tests/examples/mpegtsmux/mpts_test2.c: + mpegtsmux: Move multi-program muxing example at least to the correct directory + But it doesn't work out of the box because of hardcoded paths. + +2010-05-06 13:51:22 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimic: Push out newsegment from current timestamp if the incoming ts is valid + Push out newsegment event with the timestamp from the incoming buffer if + the incoming buffers have a valid timestamp but no valid newsegment event + has been through. + +2010-05-06 22:38:22 +1000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Apply caps to generated buffers + Avoid the new warning from the core about not being able to apply caps + to NAV packet buffers, where resindvdsrc holds a ref. + +2010-05-06 13:12:32 +0200 Sebastian Dröge + + * gst/debugutils/gstcapssetter.c: + * gst/debugutils/gstcapssetter.h: + capssetter: Some minor cleanup + +2010-05-06 09:51:15 +0200 Sebastian Dröge + + * ext/libmms/gstmms.c: + mmssrc: Use the escaped location for the RTSP redirect message + gst_uri_get_location() unescapes the location, which could result in + an invalid RTSP URI. + +2010-05-06 09:48:00 +0200 Sebastian Dröge + + * ext/libmms/gstmms.c: + mmssrc: Check URI for validity and work around URI parsing bugs in libmms + Fixes bug #617650. + +2010-05-06 08:08:06 +0200 Sebastian Dröge + + * ext/libmms/gstmms.c: + mmssrc: Some random cleanup + +2010-05-05 12:23:56 +0200 Sebastian Dröge + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Set fixed caps on the correct pad + This makes the sink getcaps function actually used instead of using + the fixed caps function for it. + +2010-05-01 12:31:51 +0100 Tim-Philipp Müller + + * tests/examples/camerabin/.gitignore: + Add new camerabin test binary to .gitignore + +2010-05-01 15:00:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.h: + vdpau: fix small typo + +2010-05-01 14:58:30 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp.h: + vdpau: add leftover gstvdp.h + +2010-05-01 14:45:04 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: fix crasher on setting properties before we're in READY + +2010-04-29 22:43:59 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpoutputsrcpad.c: + vdpau: remove debug code + +2010-04-29 22:24:35 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideosrcpad.c: + vdpau: small api cleanup + merge gst_vdp_video_buffer_get_allowed_[video|yuv]_caps into + gst_vdp_video_buffer_get_allowed_caps + +2010-04-22 12:57:30 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpoutputsrcpad.h: + vdpau: small fixes + +2010-04-22 12:52:42 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpau.c: + vdpau: add back gstvdpau.c + +2010-03-17 21:02:07 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + vdpau: add gst_vdp_init function where we register types + +2010-03-17 20:59:08 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpoutputsrcpad.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpau: add better error handling to GstVdpOutputSrcPad + gst_vdp_output_src_pad_push, gst_vdp_output_src_pad_alloc_buffer and + gst_vdp_output_src_pad_get_device now take a GError parameter to be able to + signal errors to the caller + +2009-11-28 23:58:57 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + vdpau: make GstVdpVideoSrcPad(Class)? private + +2009-11-28 23:55:09 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: follow GstVdpVideoSrcPad changes + +2009-11-28 23:52:15 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + vdpau: remove template-caps propery form GstVdpVideoSrcPad + GstVdpVideoSrcPad now use the template property of GstPad instead. Also changed + the _new function to be like gst_pad_new_from_template. + +2010-05-01 01:16:50 +0400 Руслан Ижбулатов + + * sys/directdraw/gstdirectdrawsink.c: + * sys/directsound/gstdirectsoundsrc.c: + Fix warnings in directdrawsink and directsoundsrc + Fixes #617331 + +2010-04-30 19:03:58 +0100 Tim-Philipp Müller + + * configure.ac: + Bump core/base requirements to released versions + +2010-04-29 16:33:44 +0200 Mark Nauwelaerts + + * gst/jpegformat/gstjpegparse.c: + jpegparse: improve buffer scanning + Specifically, when scanning for entropy data segment length and needing + more data, do not rescan from start next time around, but resume at + last position. + See also #583047. + +2010-04-27 10:48:32 -0400 Tristan Matthews + + * ext/jack/Makefile.am: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackutil.c: + * ext/jack/gstjackutil.h: + jack: implement multichannel support correctly for jackaudiosrc + Fixes parts of bug #616541. + +2010-04-29 13:18:58 +0100 Brian Cameron + + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-sink.h: + oss4sink: implement GstStreamVolume interface and add mute and volume properties + OSS4 supports per-stream volume control, so expose this using the right + API, so that playbin2 and applications like totem can make use of it + (instead of using a volume element for volume control). + Fixes #614305. + +2010-04-29 04:42:21 +0400 Руслан Ижбулатов + + * ext/kate/gstkateenc.c: + * ext/kate/gstkatespu.c: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * ext/timidity/gsttimidity.c: + * gst/dccp/gstdccp.c: + * sys/acmenc/acmenc.c: + * sys/acmmp3dec/acmmp3dec.c: + * sys/wininet/gstwininetsrc.c: + Fix printf format strings for gcc 4.5 + Done on Windows/MinGW. + Fixes #617146 + +2010-04-27 11:21:16 +0300 Stefan Kost + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackringbuffer.h: + jack: remove empty dispose and finalize methods + +2010-04-27 10:59:00 +0300 Stefan Kost + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: don't leak caps + Add dispose methods to clear caps. + +2010-04-27 10:34:24 +0300 Stefan Kost + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: don't use GST_DEBUG_FUNCPTR for gobject vmethods + +2010-04-26 15:06:09 +0300 Stefan Kost + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + ladspa,lv2: don't fail in plugin_init when having 0 elements + If we fail, the plugin scanner will blacklist us. + +2010-04-23 14:41:17 +0100 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From fc85867 to 4d67bd6 + +2010-04-20 16:58:33 +0300 Lasse Laukkanen + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: add meaningful names for queue elements inside camerabin + +2010-04-20 15:37:03 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: also set short configuration data in codec_data + That is, header configuration may start at Video Object (startcode), + rather than at Visual Object Sequence, which is catered for and parsed, + so let's also take it as codec_data if no more available. + Fixes (remainder of) #572551. + +2010-04-19 19:04:24 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin.c: + camerabin: Avoid crashing when setting zoom in NULL + Avoid setting zoom in NULL state because the source is not + set yet and this leads to a crash. It is set on READY > PAUSED + anyway. + +2010-04-18 14:51:35 +0530 Arun Raghavan + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Export profile and level in caps + This exports profile and level in caps for MPEG 2 streams. + https://bugzilla.gnome.org/show_bug.cgi?id=616078 + +2010-04-16 19:45:16 +0200 Sebastian Dröge + + * ext/resindvd/gstmpegdefs.h: + resindvdbin: Use GST_FLOW_CUSTOM_SUCCESS instead of some integer + Fixes compiler warnings with gcc 4.5. + This is the same as commit 5a51dbd. + +2010-04-16 19:43:59 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdefs.h: + mpegdemux: Use GST_FLOW_CUSTOM_SUCCESS instead of some integer + Fixes compiler warning with gcc 4.5. + +2010-04-16 19:42:00 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + Revert "mpegpsdemux: Workaround new gcc 4.5 compiler warning" + This reverts commit a331228eccfb8c66493fa3c8c49338c79cf4642c. + +2010-04-16 19:41:46 +0200 Sebastian Dröge + + * ext/resindvd/gstmpegdemux.c: + Revert "resindvdbin: Apply gcc 4.5 compiler warning workaround to the mpegpsdemux copy" + This reverts commit 65b0f75d1b3119316b2dcaf5bff4dfd2bd824cc1. + +2010-04-15 21:44:23 +0200 Sebastian Dröge + + * ext/metadata/metadataexif.c: + metadata: Another workaround for enum values that are not actually member of the enum + +2010-04-15 21:40:19 +0200 Sebastian Dröge + + * ext/resindvd/gstmpegdemux.c: + resindvdbin: Apply gcc 4.5 compiler warning workaround to the mpegpsdemux copy + Same as a331228eccfb8c66493fa3c8c49338c79cf4642c. + +2010-04-15 21:38:54 +0200 Sebastian Dröge + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: Initialize possibly uninitialized variable + +2010-04-15 21:35:15 +0200 Sebastian Dröge + + * sys/dvb/gstdvbsrc.c: + dvbsrc: Actually compare the state and not the state change return from _get_state() + +2010-04-15 21:26:45 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: Workaround new gcc 4.5 compiler warning + gcc 4.5 warns when comparing some integer with an enum value, in + the case of GstFlowReturn this is valid though. We should later + add GST_FLOW_CUSTOM_OK1, GST_FLOW_CUSTOM_OK2, etc. after new core + is released. + +2010-04-15 20:50:58 +0200 Sebastian Dröge + + * gst/cdxaparse/gstcdxaparse.c: + cdxaparse: Compare the correct variable to GST_SEEK_TYPE_SET + +2010-04-15 07:24:16 -0300 Thiago Santos + + * configure.ac: + configure: Drop -Wcast-align + Commit message copied from core's commit from Benjamin Otte: + 246f5dba96a5b50bb74621af67b30942cca72af5 + Apparently gcc warns that GstMiniObject is not castable to + GstEvent/Message/Buffer due to them containing 64bit variables, even + though ARM hackers claim that those only need 4byte alignment. And as + long as gcc behaves that way, this warning is not very useful. + So we'll remove the warning until this problem is fixed. + Fixes #615698 + +2010-04-15 13:20:42 +0300 Adam Endrodi + + * gst/camerabin/gstcamerabin.c: + camerabin: reset software zooming if not set by the photo interface + Otherwise both software (videoscal+videocrop) and hardware zooming would be used. + +2010-04-14 16:42:57 -0700 David Schleef + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Fix up element details + +2010-04-14 16:32:34 -0700 David Schleef + + * Makefile.am: + * configure.ac: + * tools/Makefile.am: + * tools/base.c: + * tools/element-maker: + * tools/gobject.c: + * tools/gstaudiofilter.c: + * tools/gstaudiosink.c: + * tools/gstaudiosrc.c: + * tools/gstbaseaudiosink.c: + * tools/gstbaseaudiosrc.c: + * tools/gstbasertpdepayload.c: + * tools/gstbasertppayload.c: + * tools/gstbasesink.c: + * tools/gstbasesrc.c: + * tools/gstbasetransform.c: + * tools/gstcddabasesrc.c: + * tools/gstelement.c: + * tools/gstpushsrc.c: + * tools/gsttagdemux.c: + * tools/gstvideosink.c: + tools: Add element-maker + Add a script that creates elements based on any of the GStreamer + base classes. It isn't very user friendly at the moment, one + needs to edit the script to make it work properly. Each base class + has a template file describing what to put into the constructed + element. Eventually, these templates should be moved to reside + with the base class source and installed to a well-known directory, + where an installed script could find them. + The template files use the .c ending so editors know they are C + source, but gst-indent doesn't handle them correctly. So they + need to be committed with -n. Ugh. I'll try to figure out a fix + for that soon. + +2010-04-13 20:32:50 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * gst/camerabin/gstcamerabinphotography.c: + camerabin: Add video-capture-width/height/framerate properties + Adds video-capture-width, video-capture-height and + video-capture-framerate properties to allow applications to + get/set those values. Getting was not possible before this patch, + and setting was done through the set-video-resolution-fps + action, which sets the properties and promptly resets the + video source to use them. + Fixes #614958 + +2010-04-13 18:33:40 -0300 Thiago Santos + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: Adds image-capture-width/height properties + Adds image-capture-width and image-capture-height properties + to camerabin, allowing the user to get/set them. Getting was + not possible before and setting was done through the + set-image-resolution action, which shouldn't now just set + the properties. + Fixes #614958 + +2010-04-13 15:59:04 -0300 Thiago Santos + + * gst-libs/gst/interfaces/photography.c: + * gst/camerabin/gstcamerabin.c: + camerabin: photography: Spring G_PARAM_STATIC_STRINGS + Sprinkle some G_PARAM_STATIC_STRINGS over the properties + in GstPhotography interface and in camerabin + +2010-03-02 14:04:44 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + camerabin: add block-after-capture property for viewfinder blocking + Adds block-after-capture property to block running viewfinder after capturing. + This property is useful if application wants to display capture preview and avoid + running viewfinder on background. + Based on a patch by Tommi Myöhänen + +2010-02-09 14:52:49 +0200 Lasse Laukkanen + + * tests/examples/camerabin/gst-camerabin-test.c: + examples: camerabin: add viewfinder-filter and filter caps properties + Adds support for setting filter-caps and viewfinder-filter + properties in the gst-camerabin-test application + +2010-01-26 15:18:24 +0200 Tommi Myöhänen + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinphotography.c: + * tests/check/elements/camerabin.c: + GstPhotography: Add flicker and focus mode settings to photography API + Adds flicker and focus mode settings to photography API and also + implement it in camerabin. + +2009-11-26 12:12:06 +0200 Teemu Katajisto + + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camerabin-test.c: + camerabin: add gst-camerabin-test command line test tool + gst-camerabin-test tool can be used to capture still images and + video clips using camerabin element. + +2009-11-16 15:02:03 +0200 Teemu Katajisto + + * gst/camerabin/camerabinimage.c: + camerabin: do not set imagebin sinkpad twice + If we already have a sinkpad, do not get a new one + +2009-11-16 15:13:31 +0200 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: update unit tests + Add testing of setting and getting of camerabin property elements and + add post-processing elements to pipeline. + +2009-11-13 16:42:44 +0200 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: add unit tests for setting different flags when capturing + Adds some tests that use flags for capturing to asure it works + with flags set or not. + +2009-10-28 17:37:56 +0200 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: add paused video capture file validity check in unit test + Also check that the file captured in the paused capture unit test is + playable. + +2009-10-19 14:31:54 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + camerabin: add viewfinder-filter property + Adds a new property called viewfinder-filter to camerabin. + This property is used to add a filter to process the video + flow right before the viewfinder sink. + Also updates test to check property exists. + +2009-10-21 18:02:27 +0300 Lasse Laukkanen + + * tests/check/elements/camerabin.c: + camerabin: set videotestsrc pattern to white in unit test + Lower complexity of encoding and videotestsrc redrawing in order + to prevent unit test timeouts. + +2009-10-14 14:01:34 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: proxy video source photography interface property notify signals + If photography interface properties change in video source, notify the + application by emitting notify for respective camerabin properties. + +2009-10-14 14:42:01 +0300 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: New unit tests + Add unit tests for camerabin properties setting and getting, + adds one for video capturing with pause. + Also does some c99 variable declaration fixes. + +2009-10-14 14:01:05 +0300 Shenghua Liu + + * tests/check/elements/camerabin.c: + camerabin: update unit test to have test on recording snapshot preview + Adds a small check to verify that the preview image message is + being sent on video recording. + +2009-09-21 17:47:20 +0300 Lasse Laukkanen + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinphotography.c: + camerabin: add api to query supported image capture resolution + Adds new property 'image-capture-supported-caps' to GstPhotography + to query the supported image capture caps. + Also implement it in camerabin. + +2009-07-02 18:03:57 +0300 René Stadler + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: rename function and variable names, update documentation + Get rid of user_* prefix internally, use app_* instead. + +2009-09-16 15:11:49 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: add video-source-filter property + Add video-source-filter property that can be used to inject application + specific gstreamer element to camerabin pipeline. The video-source-filter + element will process all frames coming from video source. + One could add image analyzers to collect information about the stream, + or add image enhancers to improve capture quality, for example. + +2010-04-12 18:07:29 +0200 Edward Hervey + + * tests/check/elements/aacparse.c: + * tests/check/elements/amrparse.c: + check: Don't re-declare 'GList *buffers' in the tests + It's an external which lives in gstcheck.c. Redeclaring it makes some + compilers/architectures think the 'buffers' in the individual tests are + a different symbol... and therefore we end up comparing holodecks with + oranges. + +2010-02-18 18:19:50 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: don't try adapting image capture resolution if no source-resize flag + If source-resize flag is disabled then set resolution to image capture caps + according to capture resolution video source element produces. Otherwise we + write wrong resolution to image metadata. + +2010-01-05 15:13:02 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Fix capturing flag handling after image has been captured + Make sure capturing flag is unset and image-captured message is sent + before sending eos event to image bin and saving the image to a file. + +2009-11-04 13:24:13 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: fix setting filter-caps property in NULL state + Split _set_capsfilter_caps() into two parts so that we can call one part + regardless of the element state. + +2009-09-11 09:38:51 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: improve image done signal emission + Use g_idle_add_full() with G_PRIORITY_HIGH to emit image done signal, + g_idle_add() is more likely to starve with higher priority events. + +2010-04-12 12:42:06 +0200 Edward Hervey + + * configure.ac: + configure: Remove -Wundef flag + Same fix as for #615161 + +2010-04-12 09:16:19 +0200 Sebastian Dröge + + * sys/vdpau/Makefile.am: + vdpau: Correctly link to the local libgstvdp-0.10 by using the libtool archive + +2010-04-09 09:14:02 -0300 Thiago Santos + + * tests/check/Makefile.am: + tests: camerabin: enable camerabin tests + Re-enabling camerabin tests, they are passing. + +2010-04-09 11:22:55 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From fdf023d to fc85867 + +2010-04-08 12:00:10 +0200 Edward Hervey + + * tests/check/elements/jpegparse.c: + tests: Fix compilation error on macosx + +2010-04-08 10:45:33 +0100 Tim-Philipp Müller + + * sys/oss4/oss4-audio.c: + oss4: 8-bit PCM audio caps don't need an endianness field + +2010-04-08 10:40:02 +0100 Tim-Philipp Müller + + * sys/oss4/oss4-audio.c: + oss4: don't iterate the formats table twice for each entry + When iterating the formats table, we can just pass the whole + entry to our helper function, which avoids iterating the table + again to find the entry structure from the passed format id. + +2010-03-30 11:43:04 +0100 Tim-Philipp Müller + + * sys/oss4/oss4-audio.c: + oss4: also accept formats not natively supported + Also accept formats that are not natively supported by the + hardware, OSS4 can convert them internally. List the native + formats first in the caps though, to express our preference + for the native formats. We need this in order to support the + case properly where the audio hardware supports only e.g. + little endian PCM, but the host is big endian, since many + audio elements only support native endianness and make the + reasonable assumption that any audiosink will be able to + handle audio in native endianness. + Based on patch by Jerry Tan + Fixes #614317. + +2010-04-08 08:48:35 +0100 Tim-Philipp Müller + + * ext/soundtouch/Makefile.am: + soundtouch: use $(LIBM) in Makefile.am instead of -lm + +2010-04-08 01:42:23 +0100 Tim-Philipp Müller + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: fix print format in debug message + +2010-04-08 01:41:31 +0100 Tim-Philipp Müller + + * ext/assrender/gstassrender.c: + assrender: pass constant string as format string to printf + Fix compiler warning about non-string literal being passed as + first argument to print. + +2010-03-26 18:56:49 +0000 Arun Raghavan + + * gst/audioparsers/gstbaseparse.c: + baseparse: Don't emit bitrate tags too early + We wait to parse a minimum number of frames (10, arbitrarily) before + emiting bitrate tags so that our early estimates are not wildly + inaccurate for streams that start with a silence. If the stream ends + before that, we just emit the tags anyway. + While it _would_ be nicer to be specify the threshold to start pushing + the tags in terms of duration, this would introduce more complexity than + this merits. + https://bugzilla.gnome.org/show_bug.cgi?id=614991 + +2010-04-07 11:22:43 +0200 Benjamin Otte + + * ext/metadata/metadataexif.c: + metadata: fix crash when converting units + x/y-resolution are fractions, so setting them using float values is not + a good idea. + https://bugzilla.redhat.com/show_bug.cgi?id=577655 + +2010-04-05 10:33:26 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Add support for BlueRay style DTS + Fixes bug #614259. + +2010-04-04 20:23:00 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Add support for the two DTS HD stream types + Fixes bug #614259. + +2010-04-02 19:52:25 +0200 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + mpegtspacketizer: Additionally use the CRC to check if tables are duplicates + The current code just uses table id, subtable extension and version number to + check if the section has been seen before. However, this comparison is not + sufficient, causing actually new tables being dismissed. + Fixes bug #614479. + +2010-04-02 19:48:56 +0200 Sebastian Dröge + + * gst/h264parse/gsth264parse.c: + h264parse: Correctly clean up internal state for reuse + Fixes bug #614591. + +2010-04-02 19:19:23 +0200 Sebastian Dröge + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Make sure that the buffer metadata is writable before setting caps + Fixes bug #614349. + +2010-04-02 19:09:40 +0200 Sebastian Dröge + + * sys/dvb/gstdvbsrc.c: + dvbsrc: Use uint instead of int for frequency and symbol-rate properties + The kernel API specifies them as uint32 and frequencies/symbol-rates greater + than 2^31 are actually needed sometimes. + Fixes bug #614475. + +2010-03-30 01:17:15 +0100 Tim-Philipp Müller + + * common: + * ext/Makefile.am: + * gst/Makefile.am: + * sys/Makefile.am: + build: build plugins and examples in parallel where possible, if make -jN is used + +2010-03-30 01:16:32 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + po: update for string changes and new comment + +2010-03-30 01:14:58 +0100 Tim-Philipp Müller + + * sys/oss4/oss4-mixer.c: + oss4: add comment for translators + Not that that will make these strings much better. Also remove i18n + marker where it doesn't make sense. + +2010-03-27 09:46:30 +0000 Tim-Philipp Müller + + * gst/qtmux/gstqtmuxplugin.c: + qtmux: use GStreamer package name and origin in the plugin info + +2010-03-29 14:49:06 +0200 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: fix writing NALU prefix for byte-stream output format + Specifically, input may already be in byte-stream format, so sync + bytes should not be misinterpreted as NALU size. + +2010-03-29 10:00:57 +1100 Jan Schmidt + + * ext/spc/gstspc.h: + openspc: Fix build warning + Add a prototype for gst_spc_dec_get_type + +2010-03-26 18:58:35 +0100 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: Optionally check the overall frame checksums too before accepting a frame as valid + This is optional because it's a quite expensive operation and it's very + unlikely that a non-frame is detected as frame after the header CRC check + and checking all bits for valid values. The overall frame checksums are + mainly useful to detect inconsistencies in the encoded payload. + +2010-03-26 18:42:28 +0100 Sebastian Dröge + + * gst/audioparsers/gstflacparse.c: + flacparse: Check the CRC-8 of the headers before accepting a frame as valid + This makes false-positives during seeking much less likely and detection of + them much faster. + +2010-03-26 18:20:24 +0100 Sebastian Dröge + + * gst/audioparsers/gstbaseparse.c: + baseparse: Set the last stop to the buffer starttime if the duration is invalid + ...instead of not setting it at all. + +2010-03-26 18:19:00 +0100 Joshua M. Doe + + * gst/audioparsers/gstbaseparse.c: + baseparse: Send NEWSEGMENT event with correct start and position + Instead of taking the last stop (which could be buffer endtime instead + of starttime) always take the buffer starttime. + Fixes bug #614016. + +2010-03-26 16:49:01 +0000 Arun Raghavan + + * gst/audioparsers/gstflacparse.c: + flacparse: Fix buffer refcount issue + When called from the GST_FLAC_PARSE_STATE_HEADERS case, + gst_flac_parse_hand_headers() does a gst_buffer_set_caps() on a buffer + with refcount > 1. This change handles this case by making the buffer + metadata_Writable. + https://bugzilla.gnome.org/show_bug.cgi?id=614037 + +2010-03-26 12:04:48 +0000 Tim-Philipp Müller + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: add missing space to debug message + +2010-03-26 08:41:46 +0000 Tim-Philipp Müller + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: don't use function that doesn't exist + Fixes the build. + +2010-03-25 23:48:09 +0200 Stefan Kost + + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + divx: add const to fix compiler warnings + +2010-03-25 23:30:29 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: add boolean return to _process + Avoid trying to push results if processing failed anyway. + +2010-03-25 23:28:25 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: remove useless g_assert + g_malloc and co would terminate when out of memory. No need to check after it. + +2010-03-25 23:24:36 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: add more logging + +2010-03-25 23:12:37 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: register function pointers just once + Avoid re-registering those for each wrapped ladpsa/lv2 element. + +2010-03-25 23:07:46 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: add rate to caps + +2010-03-25 23:04:41 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: rename log category to be less ambigous + +2010-03-25 22:59:18 +0200 Stefan Kost + + * ext/lv2/README: + lv2: add more examples + +2010-03-25 22:58:47 +0200 Stefan Kost + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: if we tell that we handle gap flags, then do so + +2010-03-25 22:55:32 +0200 Stefan Kost + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: use glib types + +2010-03-25 22:54:49 +0200 Stefan Kost + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: fix classification + +2010-03-25 22:53:20 +0200 Stefan Kost + + * gst/dtmf/gstdtmfdetect.c: + dtmfdetect: reformat message docs + Use a list like in other element docs as an untweaked docbook table look ugly. + +2010-03-25 17:09:17 +0000 Tim-Philipp Müller + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + audioparsers: remove unused GstBaseParseClassPrivate structure + +2010-03-25 12:55:02 +0000 Arun Raghavan + + * gst/audioparsers/gstflacparse.c: + flacparse: Make bitrate estimation more accurate + This implements the get_frame_overhead() vfunc so that baseparse can + make more accurate bitrate estimates. + +2010-03-25 11:48:46 +0000 Arun Raghavan + + * gst/audioparsers/gstaacparse.c: + aacparse: Fix bitrate calculation + This patch adds the get_frame_overhead() vfunc so that baseparse can + accurately calculate the min/avg/max bitrates for aacparse. + Note: The bitrate was being incorrectly calculated for ADTS streams + (it's not in the header as the code suggests). + +2010-03-25 11:22:58 +0000 Arun Raghavan + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + audioparsers: Add bitrate calculation to baseparse + This makes baseparse keep a running average of the stream bitrate, as + well as the minimum and maximum bitrates. Subclasses can override a + vfunc to make sure that per-frame overhead from the container is not + accounted for in the bitrate calculation. + We take care not to override the bitrate, minimum-bitrate, and + maximum-bitrate tags if they have been posted upstream. We also + rate-limit the emission of bitrate so that it is only triggered by a + change of >10 kbps. + +2010-03-23 17:34:30 -0300 Thiago Santos + + * tests/check/pipelines/tagschecking.c: + tests: tagschecking: New tags tests + Adds new tags checking tests. + +2010-03-25 00:20:54 +0000 Tim-Philipp Müller + + * gst/qtmux/gstqtmux.c: + qtmux: init debug category before using it + +2010-03-24 18:54:57 +0100 Edward Hervey + + * common: + Automatic update of common submodule + From 55cd514 to c1d07dd + +2010-03-24 17:05:14 +0100 Andoni Morales + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowvideosrc: Add support for YUY2 input format + Fix bug #613708 + +2010-03-24 16:15:37 +0200 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.types: + * gst-libs/gst/interfaces/photography.c: + docs: add photography iface to docs + We normaly have separate libs docs, not done becasue of lazyness here yet. + +2010-03-24 16:05:20 +0200 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + jpegformat: add blank line to fix generated xml + +2010-03-24 15:59:53 +0200 Stefan Kost + + * ext/jack/gstjackaudiosrc.c: + jack: fix element name in section doc blob + +2010-03-24 15:05:50 +0100 Benjamin Otte + + * ext/modplug/gstmodplug.cc: + modplug: Define WORDS_BIGENDIAN to avoid undefined warning + https://bugzilla.gnome.org/show_bug.cgi?id=613795 + +2010-03-24 12:16:07 +0100 Benjamin Otte + + * configure.ac: + Use pkgconfig to detect dvdnav + The previously used dvdnav-config script was broken in a lot of distros. + +2010-03-24 00:27:34 +0000 Tim-Philipp Müller + + * ext/kate/gstkatetiger.c: + kate: fix yet another compiler warning + +2010-03-23 19:56:48 -0400 Tristan Matthews + + * gst/pnm/gstpnmdec.c: + * sys/osxvideo/osxvideosrc.c: + * sys/qtwrapper/audiodecoders.c: + * sys/qtwrapper/codecmapping.c: + * sys/qtwrapper/qtutils.c: + * sys/qtwrapper/qtutils.h: + osx: more compiler warning fixes + Avoid new warnings. + Fixes #613758. + +2010-03-23 14:15:53 -0300 Thiago Santos + + * tests/check/elements/faac.c: + tests: faac: Fix build + Fixes build of faac due to functions not being static nor + having being declared in headers. (No previous prototype error) + Probably due to added -Wmissing-prototypes + +2010-03-23 11:10:05 +0100 Sebastian Dröge + + * ext/amrwbenc/gstamrwbenc.c: + amrwbenc: Fix compiler warning + +2010-03-23 09:14:03 +0000 Tim-Philipp Müller + + * ext/cog/cog.orc: + cog: touch cog.orc to force regeneration of cogorc.[ch] + .. with new Makefile.am rules, which should fix the build + without the need to do a 'manual' make clean after updating. + +2010-03-23 01:41:31 +0100 Benjamin Otte + + * sys/wininet/gstwininetsrc.c: + wininet: Fix warnings + +2010-03-23 01:30:54 +0100 Benjamin Otte + + * sys/directdraw/gstdirectdrawsink.c: + directdraw: Fix warnings + +2010-03-23 01:15:27 +0100 Benjamin Otte + + * configure.ac: + Remove -Wundef for Windows + Windows headers tend to check _MSC_VER uncondtionally in some places, + but use #ifdef _MSC_VER in other places. + +2010-03-23 01:14:33 +0100 Benjamin Otte + + * configure.ac: + Add a bunch of warning flags + None of them trigger any warning + +2010-03-23 01:11:42 +0100 Benjamin Otte + + * gst/aiff/aiffmux.c: + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfobjects.h: + * gst/dccp/gstdccp.c: + Fixes for -Waggregate-return + The flag wasn't added due to libexif using aggregate return values. + +2010-03-22 18:02:39 +0200 Stefan Kost + + * gst-libs/gst/gettext.h: + * gst/videomeasure/gstvideomeasure.c: + i18n: build fixes: #if -> #ifdef for ENABLE_NLS + +2010-03-22 18:01:27 +0200 Stefan Kost + + * gst-libs/gst/gst-i18n-plugin.h: + i18n: fix the build + Don't include locale.h which we include in gettext.h if needed. Guard the + include like we do in the simillar headers in core. + +2010-03-22 16:56:03 +0100 Benjamin Otte + + * configure.ac: + * ext/jack/gstjackaudiosrc.c: + * ext/neon/gstneonhttpsrc.c: + * ext/timidity/gstwildmidi.c: + * gst/librfb/d3des.c: + * gst/mpegdemux/gstmpegdesc.c: + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegpsmux/psmux.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/qtmux/atoms.c: + * tests/check/elements/amrparse.c: + * tests/check/elements/capssetter.c: + * tests/check/generic/states.c: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/directfb/gstdfb.c: + * tests/icles/metadata_editor.c: + Add -Wold-style-definition + and fix the warnings + +2010-03-22 16:21:31 +0100 Benjamin Otte + + * configure.ac: + * gst/mxf/mxfmux.c: + Add -Wformat-nonliteral -Wformat-security flags + and fix the warnings + +2010-03-22 16:13:12 +0100 Benjamin Otte + + * sys/oss4/oss4-mixer.c: + oss4: Refactor code to make it look more modern + A side effect is that it passes -Wformat-nonliteral and doesn't read + invalid memory in some cases, like when the mixer track contains + a % sign or there is a number but not a known mixer name. + +2010-03-22 14:09:24 +0100 Benjamin Otte + + * sys/oss4/oss4-mixer.c: + oss4: Avoid g_quark_to_string (g_quark_from_string ()) madness + We to the strdup inside gst_oss4_mixer_control_get_translated_name() + instead of in the only caller. + +2010-03-22 13:50:30 +0100 Sebastian Dröge + + * ext/ladspa/gstladspa.c: + ladspa: Fix compiler warnings + +2010-02-02 15:49:29 +0530 Arun Raghavan + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Parse bitrate and emit as tag + This patch picks up the bitrate for the stream from the MPEG sequence + header and emits it as a tag on the source pad. + Fixes #599298. + +2010-03-22 12:38:02 +0000 Tim-Philipp Müller + + * ext/soundtouch/gstbpmdetect.cc: + soundtouch: build fixes: #if -> #ifdef + +2010-03-22 13:16:33 +0100 Benjamin Otte + + * configure.ac: + * ext/cdaudio/gstcdaudio.c: + * ext/directfb/dfbvideosink.c: + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + * ext/libmms/gstmms.c: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatamux.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/neon/gstneonhttpsrc.c: + * ext/resindvd/resindvdbin.c: + * ext/timidity/gsttimidity.c: + * ext/xvid/gstxvid.c: + * ext/xvid/gstxvid.h: + * gst/adpcmenc/adpcmenc.c: + * gst/dataurisrc/gstdataurisrc.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/festival/gstfestival.h: + * gst/id3tag/id3tag.c: + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mxf/mxftypes.c: + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + * gst/sdp/gstsdpdemux.c: + * sys/dvb/dvbbasebin.c: + * sys/dvb/gstdvbsrc.c: + * sys/dvb/parsechannels.c: + * sys/vcd/vcdsrc.c: + * tests/check/elements/asfmux.c: + * tests/check/elements/autoconvert.c: + * tests/check/elements/mplex.c: + * tests/check/elements/qtmux.c: + * tests/check/elements/selector.c: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camera.h: + * tests/examples/scaletempo/demo-gui.c: + * tests/examples/scaletempo/demo-main.c: + Add -Wwrite-strings + and fix its warnings + +2010-03-22 12:30:01 +0100 Benjamin Otte + + * configure.ac: + * ext/ladspa/gstladspa.c: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * gst/nsf/fmopl.h: + * tests/check/pipelines/metadata.c: + Add -Wundef + and fix the warnings + +2010-03-22 12:03:56 +0100 Benjamin Otte + + * tests/check/pipelines/.gitignore: + Update .gitignore + +2010-03-22 12:02:16 +0100 Benjamin Otte + + * configure.ac: + * ext/apexsink/gstapexsink.c: + * ext/cdaudio/gstcdaudio.c: + * ext/dc1394/gstdc1394.c: + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + * ext/kate/gstkatetag.c: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/metadataparseutil.h: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * gst/camerabin/gstcamerabin.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/freeze/gstfreeze.c: + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + * gst/librfb/gstrfbsrc.c: + * gst/mpegdemux/mpegtspacketizer.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + * gst/sdp/gstsdpdemux.c: + * gst/subenc/gstsrtenc.c: + Add -Wredundant-decls flag + and fix warnings from it + +2010-03-22 08:47:57 +0100 Sebastian Dröge + + * ext/gme/gstgme.h: + gme: Fix compiler warning + +2010-03-22 08:45:27 +0100 Sebastian Dröge + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdpoutputsrcpad.h: + vdpau: Fix compiler warnings + +2010-03-21 23:10:08 +0100 Benjamin Otte + + * ext/cog/Makefile.am: + * ext/cog/cogvirtframe.c: + * ext/cog/generate_tables.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogutils.c: + orc: Fix warnings + +2010-03-21 23:00:48 +0100 Benjamin Otte + + * tests/examples/scaletempo/demo-gui.c: + examples: Fix warnings + +2010-03-21 22:48:13 +0100 Benjamin Otte + + * sys/directdraw/gstdirectdrawsink.c: + directdraw: Fix warnings + +2010-03-21 22:46:00 +0100 Benjamin Otte + + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camera.h: + gst-camera: Add a header declaring the functions from the ui file + +2010-03-21 22:10:47 +0100 Benjamin Otte + + * tests/icles/Makefile.am: + * tests/icles/metadata_editor.h: + tests: Add file I forgot to check in + +2010-03-21 22:09:20 +0100 Benjamin Otte + + * sys/acmmp3dec/acmmp3dec.c: + acmmp3dec: fix warnings + +2010-03-21 21:53:44 +0100 Benjamin Otte + + * sys/acmenc/acmenc.c: + Fix acmenc for warning flags + +2010-03-21 21:39:18 +0100 Benjamin Otte + + * configure.ac: + * ext/cdaudio/gstcdaudio.c: + * ext/dc1394/gstdc1394.c: + * ext/dirac/gstdiracenc.cc: + * ext/flite/gstflitetestsrc.c: + * ext/jack/gstjack.h: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadatademux.h: + * ext/metadata/gstmetadatamux.h: + * ext/mythtv/gstmythtvsrc.c: + * ext/resindvd/resindvdsrc.c: + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + * ext/schroedinger/gstschroutils.c: + * ext/sdl/sdlaudiosink.c: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst/adpcmdec/adpcmdec.c: + * gst/adpcmenc/adpcmenc.c: + * gst/aiff/aiffmux.c: + * gst/asfmux/gstasfmux.c: + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + * gst/bayer/gstbayer2rgb.c: + * gst/dccp/gstdccp.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dvdspu/gstdvdspu.c: + * gst/invtelecine/gstinvtelecine.c: + * gst/legacyresample/resample.c: + * gst/legacyresample/resample.h: + * gst/librfb/rfbdecoder.c: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.h: + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegvideoparse.h: + * gst/mve/gstmvedemux.c: + * gst/mve/gstmvedemux.h: + * gst/mve/gstmvemux.c: + * gst/mve/gstmvemux.h: + * gst/mve/mveaudiodec.c: + * gst/mve/mveaudioenc.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmpeg.c: + * gst/nsf/nes_apu.c: + * gst/nsf/nsf.c: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/atomsrecovery.c: + * gst/qtmux/descriptors.c: + * gst/sdp/gstsdpdemux.c: + * gst/siren/common.c: + * gst/siren/common.h: + * gst/siren/dct4.c: + * gst/siren/dct4.h: + * gst/siren/huffman.c: + * gst/siren/huffman.h: + * gst/siren/rmlt.c: + * gst/siren/rmlt.h: + * gst/tta/gstttadec.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + * gst/vmnc/vmncdec.c: + * sys/dvb/cam.c: + * sys/dvb/cam.h: + * sys/dvb/camapplicationinfo.c: + * sys/dvb/camapplicationinfo.h: + * sys/dvb/camconditionalaccess.c: + * sys/dvb/camconditionalaccess.h: + * sys/dvb/camdevice.c: + * sys/dvb/camdevice.h: + * sys/dvb/camresourcemanager.c: + * sys/dvb/camresourcemanager.h: + * sys/dvb/camsession.c: + * sys/dvb/camswclient.c: + * sys/dvb/camswclient.h: + * sys/dvb/camtransport.c: + * sys/dvb/dvbbasebin.h: + * sys/dvb/parsechannels.c: + * sys/oss4/oss4-mixer.c: + * sys/vcd/vcdsrc.h: + * tests/check/elements/aacparse.c: + * tests/check/elements/amrparse.c: + * tests/check/elements/asfmux.c: + * tests/check/elements/assrender.c: + * tests/check/elements/autoconvert.c: + * tests/check/elements/camerabin.c: + * tests/check/elements/faad.c: + * tests/check/elements/imagefreeze.c: + * tests/check/elements/jpegparse.c: + * tests/check/elements/mpeg2enc.c: + * tests/check/elements/mplex.c: + * tests/check/elements/ofa.c: + * tests/check/elements/qtmux.c: + * tests/check/elements/rtpmux.c: + * tests/check/elements/selector.c: + * tests/check/elements/timidity.c: + * tests/check/generic/states.c: + * tests/check/pipelines/metadata.c: + * tests/check/pipelines/tagschecking.c: + * tests/icles/metadata_editor.c: + Add -Wmissing-declarations -Wmissing-prototypes to configure flags + And fix all warnings + +2010-03-21 21:37:37 +0100 Benjamin Otte + + * gst/siren/common.c: + * gst/siren/dct4.c: + * gst/siren/decoder.c: + * gst/siren/encoder.c: + * gst/siren/huffman.c: + * gst/siren/rmlt.c: + siren: Run gst-indent script + Includes running dos2unix on decoder.c + +2010-03-21 21:29:47 +0100 Benjamin Otte + + * tests/check/elements/kate.c: + tests: Fix kate test + It was failing due to the new buffer_metadata_writable checks added to + the core recently. + +2010-03-21 18:59:30 +0100 Benjamin Otte + + * gst/legacyresample/Makefile.am: + * gst/legacyresample/resample_chunk.c: + legacyresample: remove unused file + +2010-03-21 17:54:26 +0100 Benjamin Otte + + * configure.ac: + configure: s/GST_CVS/GST_GIT/ + +2010-03-19 16:47:15 +0100 Sebastian Dröge + + * ext/cog/generate_tables.c: + cog: Generate correct YUV->RGB tables + Fixes: #613332. + +2010-03-19 11:10:40 +0100 Wim Taymans + + * gst/sdp/gstsdpdemux.c: + sdpdemux: disable loop and auto multicast join + Disable loopback of packets. + Disable autojoin of multicast groups in the sink because the source already + does that on the shared socket. + +2010-03-18 17:30:26 +0100 Benjamin Otte + + * ext/alsaspdif/alsaspdifsink.c: + * ext/amrwbenc/gstamrwbenc.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafparse.c: + * ext/audiofile/gstafparse.h: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsink.h: + * ext/audiofile/gstafsrc.c: + * ext/audiofile/gstafsrc.h: + * ext/audioresample/gstaudioresample.c: + * ext/cdaudio/gstcdaudio.c: + * ext/celt/gstceltenc.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogfilter.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + * ext/dc1394/gstdc1394.c: + * ext/dirac/gstdiracdec.cc: + * ext/dirac/gstdiracenc.cc: + * ext/directfb/dfbvideosink.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: + * ext/faac/gstfaac.c: + * ext/faad/gstfaad.c: + * ext/flite/gstflitetestsrc.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/hermes/gsthermescolorspace.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperenc.c: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetag.c: + * ext/kate/gstkatetiger.c: + * ext/ladspa/gstladspa.c: + * ext/lcs/gstcolorspace.c: + * ext/libfame/gstlibfame.c: + * ext/libmms/gstmms.c: + * ext/lv2/gstlv2.c: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatamux.c: + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + * ext/musicbrainz/gsttrm.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/nas/nassink.c: + * ext/neon/gstneonhttpsrc.c: + * ext/polyp/polypsink.c: + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnaudiomunge.c: + * ext/resindvd/rsnparsetter.c: + * ext/resindvd/rsnstreamselector.c: + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsfsink.c: + * ext/sndfile/gstsfsrc.c: + * ext/spc/gstspc.c: + * ext/swfdec/gstswfdec.c: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkinenc.c: + * ext/theora/theoradec.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * ext/zbar/gstzbar.c: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + * gst/adpcmdec/adpcmdec.c: + * gst/adpcmenc/adpcmenc.c: + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfparse.c: + * gst/asfmux/gstrtpasfpay.c: + * gst/audiobuffer/gstaudioringbuffer.c: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstamrparse.c: + * gst/bayer/gstbayer2rgb.c: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/chart/gstchart.c: + * gst/colorspace/gstcolorspace.c: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversrc.c: + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/gstcapssetter.c: + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dvdspu/gstdvdspu.c: + * gst/festival/gstfestival.c: + * gst/filter/gstiir.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: + * gst/h264parse/gsth264parse.c: + * gst/hdvparse/gsthdvparse.c: + * gst/invtelecine/gstinvtelecine.c: + * gst/legacyresample/gstlegacyresample.c: + * gst/librfb/gstrfbsrc.c: + * gst/liveadder/liveadder.c: + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg1sys/gstmpeg1systemencode.c: + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/mpegtsparse.c: + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/mve/gstmvedemux.c: + * gst/mve/gstmvemux.c: + * gst/nsf/gstnsf.c: + * gst/nuvdemux/gstnuvdemux.c: + * gst/overlay/gstoverlay.c: + * gst/passthrough/gstpassthrough.c: + * gst/pcapparse/gstpcapparse.c: + * gst/playondemand/gstplayondemand.c: + * gst/qtmux/gstqtmoovrecover.c: + * gst/qtmux/gstqtmux.c: + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + * gst/rtjpeg/gstrtjpegdec.c: + * gst/rtjpeg/gstrtjpegenc.c: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/scaletempo/gstscaletempo.c: + * gst/sdp/gstsdpdemux.c: + * gst/selector/gstinputselector.c: + * gst/selector/gstoutputselector.c: + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + * gst/smooth/gstsmooth.c: + * gst/smoothwave/gstsmoothwave.c: + * gst/speed/gstspeed.c: + * gst/stereo/gststereo.c: + * gst/tta/gstttadec.c: + * gst/tta/gstttaparse.c: + * gst/valve/gstvalve.c: + * gst/vbidec/gstvbidec.c: + * gst/videodrop/gstvideodrop.c: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videosignal/gstvideoanalyse.c: + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + * gst/vmnc/vmncdec.c: + * sys/acmenc/acmenc.c: + * sys/acmmp3dec/acmmp3dec.c: + * sys/cdrom/gstcdplayer.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directsound/gstdirectsoundsrc.c: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dvb/dvbbasebin.c: + * sys/dvb/gstdvbsrc.c: + * sys/dxr3/dxr3audiosink.c: + * sys/dxr3/dxr3spusink.c: + * sys/dxr3/dxr3videosink.c: + * sys/fbdev/gstfbdevsink.c: + * sys/osxvideo/osxvideosrc.c: + * sys/qcam/gstqcamsrc.c: + * sys/qtwrapper/audiodecoders.c: + * sys/qtwrapper/videodecoders.c: + * sys/vcd/vcdsrc.c: + * sys/wasapi/gstwasapisink.c: + * sys/wasapi/gstwasapisrc.c: + * sys/winks/gstksvideosrc.c: + * sys/winscreencap/gstdx9screencapsrc.c: + * sys/winscreencap/gstgdiscreencapsrc.c: + gst_element_class_set_details => gst_element_class_set_details_simple + +2010-03-18 17:11:59 +0100 Benjamin Otte + + * gst/virtualdub/LICENSE: + * gst/virtualdub/Makefile.am: + * gst/virtualdub/gstvirtualdub.c: + * gst/virtualdub/gstvirtualdub.h: + * gst/virtualdub/gstxsharpen.c: + * gst/virtualdub/virtualdub.vcproj: + virtualdub: Remove + THe plugin is so hopelessly outdated, it's just not worth keeping. + +2010-03-18 17:04:59 +0100 Benjamin Otte + + * ext/xine/Makefile.am: + * ext/xine/gstxine.h: + * ext/xine/xine.c: + * ext/xine/xineaudiodec.c: + * ext/xine/xineaudiosink.c: + * ext/xine/xinecaps.c: + * ext/xine/xineinput.c: + Remove xine plugin code + The plugin is unmaintained (even worse than Xine ;)) + +2010-03-18 16:17:10 +0100 Benjamin Otte + + * tests/examples/gob/Makefile.am: + * tests/examples/gob/gst-identity2.gob: + Remove gob examples + They were outdated and wouldn't have compiled anymore. + +2010-03-17 11:30:34 -0700 David Schleef + + * ext/cog/cogvirtframe.c: + cog: Fix off-by-one in 444->420 conversion + Fixes #613160. + +2010-03-17 14:29:31 +0300 Руслан Ижбулатов + + * ext/cog/gstlogoinsert.c: + cog: Use "(png_infopp) NULL" instead of png_infopp_NULL + +2010-03-17 14:23:41 +0300 Руслан Ижбулатов + + * ext/cog/gstlogoinsert.c: + cog: Use png_get_io_ptr() instead of accessing io_ptr directly + +2010-03-17 14:21:53 +0300 Руслан Ижбулатов + + * configure.ac: + cog: Check for libpng >= 1.2 instead of libpng12 + +2010-03-16 23:46:04 +0200 Stefan Kost + + * docs/plugins/inspect/plugin-xdgmime.xml: + docs: the xdgmime plugin was merged into typefinders + +2010-03-16 23:43:02 +0200 Stefan Kost + + * ext/neon/gstneonhttpsrc.c: + neon,dvd: also use g_value_set_static_string() here for static strings + +2010-03-15 10:13:19 +0000 Tim-Philipp Müller + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix minor memory leak in property getter + Don't leak the string returned by g_strjoinv(). While we're at it, + use GString to assemble the string to be returned. + +2010-03-15 09:24:17 +0000 Tim-Philipp Müller + + * sys/dvb/gstdvbsrc.c: + dvbsrc: use g_value_set_static_string() where possible + +2010-03-15 12:17:37 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + cog: disable code that causes an orcc crash + Revert this after orc release and version bump. + +2010-03-15 11:54:02 +0100 Sebastian Dröge + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Only start the task after a seek if a buffer was received already + +2010-03-15 01:46:45 -0700 David Schleef + + * ext/cog/gstlogoinsert.c: + cog: comment on previous bad commit message + The recent commit "logoinsert checkpoint FIXME" should + actually read: Fix logoinsert variable names. + +2010-03-15 01:26:25 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogframe.c: + * ext/cog/cogframe.h: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: implement chroma-site + Determine chroma site position from the caps and use it when + upsampling/downsampling chroma. + +2010-03-14 18:56:06 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/generate_tables.c: + * ext/cog/gstcogcolorspace.c: + cogcolorspace: implement color-matrix handling + +2009-10-08 15:18:41 -0700 David Schleef + + * ext/cog/gstlogoinsert.c: + cog: logoinsert checkpoint FIXME + +2009-10-30 15:35:36 -0700 David Schleef + + * ext/cog/cogframe.c: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: Add n_taps to chroma upsampling + +2010-03-13 18:54:05 +0000 Tim-Philipp Müller + + * gst/asfmux/gstasfmux.c: + asfmux: fix typo in property description + +2010-03-13 06:03:32 +0100 Raimo Järvi + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Update caps when the sequence header changes + Fixes bug #612687. + +2010-03-12 19:30:48 +0100 Mark Nauwelaerts + + * gst/camerabin/gstcamerabin.c: + camerabin: activate video bin before feeding data to it + Fixes #612615. + +2010-03-12 11:28:51 -0300 Thiago Santos + + * tests/check/pipelines/tagschecking.c: + tests: tagschecking: Improvements and new geo-location tests + Makes some improvements to tagschecking.c, making it use + fakesrc instead of videotestsrc and allowing to set input + caps so that more muxers can be used. Previously we could + only use those that accepted raw video caps. + Also adds some tests for geo-location tags + +2010-03-12 10:53:36 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Use xmp on mp4mux and gppmux too + Do not restrict xmp to qtmux, but use it too + on mp4mux and gppmux + +2010-03-12 13:59:12 +0100 Edward Hervey + + * common: + Automatic update of common submodule + From e272f71 to 55cd514 + +2010-03-12 09:52:57 +0100 Edward Hervey + + * gst/jpegformat/gstjpegparse.c: + jpegparse: Fix unitialized variable on macosx 10.5 + +2010-03-11 21:32:28 +0200 Stefan Kost + + * configure.ac: + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: add xmp reading and writing support + Bump needed base version for new xmp helper library. Use xmp helpers in + jpegparse and jifmux. + +2010-03-12 08:23:46 +0000 Sebastian Dröge + + * configure.ac: + configure: Fix merge mistake + +2010-02-28 19:41:02 +0100 Sebastian Dröge + + * configure.ac: + * gst/segmentclip/Makefile.am: + * gst/segmentclip/gstaudiosegmentclip.c: + * gst/segmentclip/gstaudiosegmentclip.h: + * gst/segmentclip/gstsegmentclip.c: + * gst/segmentclip/gstsegmentclip.h: + * gst/segmentclip/gstvideosegmentclip.c: + * gst/segmentclip/gstvideosegmentclip.h: + * gst/segmentclip/plugin.c: + segmentclip: Add audio/video buffer segment clip elements + These elements clip the audio/video buffers to the configured segment + for the case when the upstream elements don't do this correctly. + +2010-02-28 16:08:14 +0100 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/imagefreeze.c: + imagefreeze: Add some unit tests + +2010-02-28 16:04:31 +0100 Sebastian Dröge + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Set undefined framerate in sink getcaps function + +2010-02-28 15:02:02 +0100 Sebastian Dröge + + * gst/imagefreeze/gstimagefreeze.c: + imagefreeze: Implement reverse playback and set buffer offsets + +2010-02-27 17:37:22 +0100 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-imagefreeze.xml: + imagefreeze: Add to the docs + +2010-02-27 17:33:05 +0100 Sebastian Dröge + + * configure.ac: + * gst/imagefreeze/Makefile.am: + * gst/imagefreeze/gstimagefreeze.c: + * gst/imagefreeze/gstimagefreeze.h: + imagefreeze: Add still frame stream generator element + +2010-03-05 13:33:37 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/pipelines/tagschecking.c: + check: tagschecking: tests for tags serialization in muxers + Adds a check unit test that aims to test tags serialization + and deserialization consistency (in muxers). It provides a + basic function that allows one to easily specify tags, a + muxer and a demuxer and a test will be done to check if + the tags have been consistently muxed and demuxed + +2010-02-22 16:45:34 -0300 Thiago Santos + + * gst/qtmux/Makefile.am: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + qtmux: add xmp support + Adds xmp metatags adding to qtmux. + Fixes #609539 + +2010-03-11 09:29:53 -0300 Thiago Santos + + * configure.ac: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + metadata: Remove _XMP_GEO_* tags + Removes GST_TAG_XMP_GEO_LOCATION_COUNTRY, + GST_TAG_XMP_GEO_LOCATION_CITY and + GST_TAG_XMP_GEO_LOCATION_SUBLOCATION from metadata's + private tags as those are now present at -core tags. + Fixes #612410 + +2010-03-11 17:17:15 +0000 Tim-Philipp Müller + + * gst/qtmux/gstqtmoovrecover.c: + qtmux: fix GST_ELEMENT_ERROR usage + We need to pass (NULL) rather than NULL for empty arguments. + +2010-03-11 17:58:25 +0100 Edward Hervey + + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: Fix unitialized variables + +2010-03-10 11:50:47 -0600 Rob Clark + + * gst/dccp/gstdccp.c: + fix compile error with trace macro + Note that this one isn't a problem with normal trace macros, but causes problems with + some replacement trace macros that I use, which expect the format string to be + appendable (ie "foo "fmt in the macro) + https://bugzilla.gnome.org/show_bug.cgi?id=612454 + +2010-03-10 11:49:22 -0600 Rob Clark + + * ext/alsaspdif/alsaspdifsink.c: + fix trace macro typo + https://bugzilla.gnome.org/show_bug.cgi?id=612454 + +2010-03-10 10:26:27 -0600 Rob Clark + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: fix compile error + gst/mpeg4videoparse/mpeg4videoparse.c:689: warning: comparison is always true due to limited range of data type + https://bugzilla.gnome.org/show_bug.cgi?id=612454 + +2010-03-10 10:23:23 -0600 Rob Clark + + * gst/qtmux/gstqtmoovrecover.c: + qtmux: fix compile error + gst/qtmux/gstqtmoovrecover.c:268: warning: format not a string literal and no format arguments + https://bugzilla.gnome.org/show_bug.cgi?id=612454 + +2010-03-11 11:21:10 +0100 Benjamin Otte + + * common: + Automatic update of common submodule + From df8a7c8 to e272f71 + +2010-03-11 11:29:16 +0200 Stefan Kost + + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadataxmp.c: + metadata: don't check for NULL when calling g_free. + g_free does the check already. Also small code logic cleanup and whitespace fix. + +2010-03-11 11:28:14 +0200 Stefan Kost + + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatamux.c: + metadata: remove empty setter/getter vmethod implementations + +2010-03-11 11:14:53 +0200 Stefan Kost + + * gst/invtelecine/gstinvtelecine.c: + invtelecine: inlcude stdlib.h for abs() + +2010-02-17 13:11:18 +0200 Stefan Kost + + * ext/metadata/TODO: + metadata: update bug status + +2009-09-08 09:13:07 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: refactor cropping and adapting captured images + +2009-09-10 13:41:40 +0300 Teemu Katajisto + + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/gstcamerabin.c: + camerabin: fix NULL -> READY state change failure handling. + In some error situations the NULL -> READY state change failed + and camerabin elements were not destroyed. + +2010-02-17 11:51:26 +0200 Lasse Laukkanen + + * gst/camerabin/camerabinpreview.c: + camerabin: don't use gst_bus_poll() when creating preview image + Avoid using gst_bus_poll() as the docs recommend. Use + gst_bus_timed_pop_filtered() instead. + +2010-03-10 21:01:20 +0100 Benjamin Otte + + * configure.ac: + Update for recent changes to common submodule + This just replaces every "$ERROR_CFLAGS" usage with a usage of + "$WARNING_CFLAGS $ERROR_CFLAGS" to get the same functionality as + previously. + Actually using that separation will happen later. + +2010-03-10 21:52:20 +0100 Benjamin Otte + + * common: + Automatic update of common submodule + From 9720a7d to df8a7c8 + +2010-03-10 20:44:07 +0100 Benjamin Otte + + * common: + Automatic update of common submodule + From 0b6e072 to 9720a7d + +2010-03-10 16:10:06 +0100 Benjamin Otte + + * common: + Automatic update of common submodule + From 7cc5eb4 to 0b6e072 + +2010-03-10 11:33:10 +0100 Benjamin Otte + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-apexsink.xml: + * docs/plugins/inspect/plugin-invtelecine.xml: + * docs/plugins/inspect/plugin-nsf.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + docs: Update to match recent commits + +2010-03-10 01:10:27 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 7aa65b5 to 7cc5eb4 + +2009-12-08 16:36:16 -0500 Tristan Matthews + + * ext/dc1394/gstdc1394.c: + dc1394: list valid iso-speeds in help and validate speeds in set_property. + +2009-12-08 16:05:14 -0500 Tristan Matthews + + * ext/dc1394/gstdc1394.c: + dc1394: check iso-speed values in set_property, ignore if invalid + +2009-12-08 15:37:03 -0500 Tristan Matthews + + * ext/dc1394/gstdc1394.c: + * ext/dc1394/gstdc1394.h: + dc1394: add iso-speed property + Add iso-speed property which allows for higher bandwidth dc video. + Automatically set to b-mode as needed. + Fixes #603745. + +2010-03-09 19:48:44 +0100 Víctor Manuel Jáquez Leal + + * gst/selector/Makefile.am: + inputselector: fix the LDFLAGS + +2010-03-09 21:38:59 +0000 Sebastian Dröge + + * common: + Automatic update of common submodule + From 44ecce7 to 7aa65b5 + +2010-03-09 21:26:14 +0000 Sebastian Dröge + + * ext/schroedinger/gstschroenc.c: + schroenc: Only enable framestats code with schro >= 1.0.9 + +2010-02-28 10:42:38 +0100 Sebastian Dröge + + * gst/frei0r/Makefile.am: + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Sync properties to the controller if one was set + +2010-02-27 19:08:49 +0100 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Protect set/get property and processing functions from concurrent access + The frei0r documentation says that these functions must not be called + on the same instance from different threads at the same time. All + other functions are guaranteed to be threadsafe. + +2010-02-26 16:40:25 +0100 Sebastian Dröge + + * ext/cog/Makefile.am: + * pkgconfig/Makefile.am: + * tests/icles/Makefile.am: + build: Make some more rules silent if requested + +2010-02-26 15:45:57 +0100 Sebastian Dröge + + * configure.ac: + configure: Use automake 1.11 silent rules instead of shave if available + This makes sure that we use something that is still maintained and + also brings back libtool 1.5 support. + +2010-02-26 15:25:57 +0100 Sebastian Dröge + + * tests/check/elements/assrender.c: + assrender: Add test for correct I420 rendering + +2010-03-09 12:33:37 -0800 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: Add frame-stats message + +2010-03-08 21:00:21 -0800 David Schleef + + * configure.ac: + * gst/invtelecine/Makefile.am: + * gst/invtelecine/gstinvtelecine.c: + invtelecine: Add invtelecine element + Automatic inverse telecine element. Right now, it clumsily attempts + to rearrange video fields into frames that don't have combing effects, + and only works with 60i/24p content at 720x480. Later, it will handle + other pulldown variations, change caps and smooth timestamps + appropriately. + +2010-03-01 13:49:39 +0100 Benjamin Otte + + * ext/apexsink/gstapexplugin.c: + apexsink: Use "apexsink" for plugin name + +2010-03-01 13:47:32 +0100 Benjamin Otte + + * gst/vmnc/vmncdec.c: + wmnc: Update description + +2010-03-01 13:22:06 +0100 Benjamin Otte + + * gst/nuvdemux/gstnuvdemux.c: + nuvdemux: Update plugin description + +2010-03-01 13:18:59 +0100 Benjamin Otte + + * gst/nsf/gstnsf.c: + nsf: Name the plugin nsf, not nsfdec + The plugin in gstnsf.so should be named nsf, not nsfdec. + +2010-03-08 12:23:48 -0300 Tiago Katcipis + + * ext/soundtouch/gstpitch.cc: + soundtouch: removing very annoying g_print() in pitch element + Fixes #612208. + +2010-03-09 17:50:29 +0000 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * win32/common/config.h: + Back to development + +=== release 0.10.18 === + +2010-03-06 01:49:26 +0000 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.18 + +2010-03-06 01:39:58 +0000 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2010-03-03 23:42:28 +0000 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.17.4 pre-release + +2010-02-22 19:38:15 -0300 Thiago Santos + + * gst/qtmux/gstqtmuxmap.c: + qtmux: Rename 'avc-sample' to 'avc' in caps + Fixes #606662 + +2010-02-22 19:24:06 -0300 Thiago Santos + + * gst/h264parse/gsth264parse.c: + h264parse: Replace 'avc-sample' with 'avc' in caps + Fixes #606662 + +2010-02-28 23:14:36 +0000 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins.args: + docs: remove bits that refer to plugins that have been moved + +2010-02-26 18:06:24 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Drop text buffers before the segment start and clip running time end to the segment stop + +2010-02-27 11:23:14 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Consume text buffers if they're to be displayed in the next 500ms + Instead of only consuming them if they're to be display now. Consuming + them then might make following buffers with the same timestamp to + be too late. + +2010-02-26 11:50:25 -0800 Michael Smith + + * gst/qtmux/gstqtmux.c: + qtmux: Take lock around use of (non-threadsafe) tagsetter interface. + +2010-02-24 02:03:11 +0000 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.17.3 pre-release + +2010-02-23 18:16:48 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Protect libass structures from concurrent access from multiple threads + Fixes bug #608751. + +2010-02-23 17:28:00 +0100 Sebastian Dröge + + * configure.ac: + configure: Call $PKG_CONFIG instead of pkg-config to fix cross compilation + +2010-02-22 16:51:00 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + qtmux: write all udta children atoms + UDTA might have META and other children atoms + together, write them all. + +2010-02-22 10:48:11 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: Use internal sink pads list + Due to GstCollectPads sink pads list being not reliably + iteratable (when not inside the collected function) this + patch adds a sink pads list to qtmux to be used when iterating + sink pads on reset function. + Fixes #609055 + +2010-02-21 19:57:19 +0000 Tim-Philipp Müller + + * ext/faad/Makefile.am: + faad: fix Makefile.am some more + FAAD_CFLAGS and _LIBS should be at the end, and -lgstaudio-0.10 + should go right after GST_PLUGINS_BASE_LIBS. + +2010-02-19 15:17:11 +0100 Sebastian Dröge + + * ext/faad/Makefile.am: + faad: Link with libgstbase for GstAdapter + Also fix order of CFLAGS and LIBS + +2010-02-19 08:58:33 +0000 Tim-Philipp Müller + + * configure.ac: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.17.2 pre-release + +2010-02-19 08:58:06 +0000 Tim-Philipp Müller + + * tests/icles/.gitignore: + .gitignore: ignore generated cog files + +2010-02-19 10:32:33 +0000 Tim-Philipp Müller + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: fix NULL ref and error handling if no video sink is found + If no video sink is set and autovideosink is not available for some + reason, post a proper error message on the bus when failing to + change state, and don't try to gst_object_ref() NULL pointers. Fixes + generic/states unit test when distchecking. + +2009-12-10 16:30:26 -0500 Stephen Depooter + + * ext/celt/gstceltenc.c: + celt: fix compile against earlier CELT versions + Check the existence of the CELT_SET_COMPLEXITY symbol + before trying to use it. Fixes compilation against + libcelt 0.4.0. + Fixes #604311. + +2010-02-17 12:34:38 +0200 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + jpegparse: return offset+length from _get_image_length(). + _find_end_marker() find the position of the marker. EOI has a fixed length of 2 + bytes that where missing. Fixes #608998 + +2010-02-17 01:34:45 +0000 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + .gitignore: ignore new faad unit test + +2010-02-17 01:29:40 +0000 Tim-Philipp Müller + + * gst/jpegformat/gstjpegparse.c: + jpegparse: fix invalid memory access + See bug #608998. + +2010-02-16 22:23:45 +0100 Sebastian Dröge + + * tests/check/elements/assrender.c: + assrender: Fix unit test to actually check for everything to work correctly + +2010-02-16 22:22:39 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: If no codec data is set, still initialize the ass track + +2010-02-16 21:41:38 +0100 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/assrender.c: + assrender: Add simple unit test + This renders a test string on top of a red video stream and checks + if the text is only rendered at the correct timestamps. + +2010-02-16 20:38:31 +0100 Sebastian Dröge + + * tests/check/elements/ofa.c: + ofa: Fix warning message parsing + +2010-02-16 16:49:39 +0000 Tim-Philipp Müller + + * ext/faad/gstfaad.c: + faad: guard against codec_data field with a NULL buffer in caps + Fixes #609478. + +2010-02-16 17:13:09 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + qtmux: prevent leaking hdlr name + +2010-02-16 16:24:12 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: support for ALAC + Fixes #580731. + +2010-02-16 14:19:04 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + qtmux: refactor building stsd entry 'wave' extension + +2010-02-16 10:00:50 +0000 Tim-Philipp Müller + + * gst-plugins-bad.spec.in: + Update .spec file: shapewipe and ivorbisdec have been moved elsewhere + +2010-02-16 09:49:05 +0200 Stefan Kost + + * ext/faac/gstfaac.c: + * ext/faad/gstfaad.c: + docs: unify doc style + Use gtkdoc syntax and add short desc for the examples. + +2010-02-15 23:43:05 +0000 Tim-Philipp Müller + + * configure.ac: + configure: fix up GST_CXXFLAGS properly + We don't want C specific flags in GST_CXXFLAGS, so base it on the + GST_CFLAGS that only contains the pkg-config CFLAGS but none of + the GST_OPTION_CFLAGS. Also, we only need the local includes once. + +2010-02-15 23:17:57 +0200 Stefan Kost + + * configure.ac: + configure: base GST_CXXFLAGS on --cflags from pkg-config + pkg-config sets GST_CFLAGS and GST_LIBS. We need to use CFLAGS as a starting + point for for both C and CXX settings. + +2010-02-15 12:57:55 +0000 Tim-Philipp Müller + + * ext/cog/gstcogmse.c: + cogmse: fix printf format and a few ref leaks + +2010-02-15 12:46:25 +0000 Tim-Philipp Müller + + * ext/Makefile.am: + * m4/Makefile.am: + * m4/gst-ivorbis.m4: + build: remove somem more ivorbis cruft + +2010-02-15 11:55:07 +0100 Mark Nauwelaerts + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-tremor.xml: + * ext/Makefile.am: + * ext/ivorbis/Makefile.am: + * ext/ivorbis/vorbis.c: + * ext/ivorbis/vorbisdec.c: + * ext/ivorbis/vorbisdec.h: + * ext/ivorbis/vorbisenc.h: + * ext/ivorbis/vorbisfile.c: + Moved 'ivorbis(dec)' from -bad to -base. + Fixes #609063. + +2010-02-15 09:36:05 +0100 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Fix field error. + Spotted by Burkhard Plaum + +2010-02-15 01:26:09 +0000 Tim-Philipp Müller + + * tests/check/elements/jpegparse.c: + tests: fix caps leak in jpegparse unit test + +2010-02-13 15:28:39 +0000 Tim-Philipp Müller + + * configure.ac: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/dataurisrc.c: + tests: add unit test for dataurisrc + Requires fixes from core git, so bump core requirement to git as well. + +2010-02-14 23:18:12 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 96dc793 to 44ecce7 + +2010-02-14 15:22:05 +0100 Benjamin Otte + + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camera.ui: + examples: Call gst_ensure_native_window() for gst-camera + Fixes spurious SEGVs due to multithreading conflicts in + client-side-window Gtk versions. + +2010-02-14 13:43:04 +0100 Benjamin Otte + + * tests/examples/camerabin/gst-camera.c: + examples: Use gtk functions instead of libX11 functions in camerabin + Gets around the need to link to libX11 directly and provides the same + functionality. + To boost, it's more portable, too! + +2010-02-14 13:41:57 +0100 Benjamin Otte + + * tests/examples/directfb/Makefile.am: + examples: Properly link to libm + +2010-02-13 11:00:03 +0000 Tim-Philipp Müller + + * Makefile.am: + Add shapewipe examples directory to CRUFT_DIRS + +2010-02-12 11:35:02 +0100 Sebastian Dröge + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-jpegformat.xml: + * docs/plugins/inspect/plugin-lv2.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + docs: Update documentation + +2010-02-12 11:21:23 +0100 Sebastian Dröge + + * Makefile.am: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-shapewipe.xml: + * gst/shapewipe/Makefile.am: + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + * tests/check/Makefile.am: + * tests/check/elements/shapewipe.c: + * tests/examples/Makefile.am: + * tests/examples/shapewipe/Makefile.am: + * tests/examples/shapewipe/shapewipe-example.c: + Moved 'shapewipe' from -bad to -good + Fixes bug #584536. + +2010-02-11 21:57:49 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/faad/gstfaad.c: + faad: add documentation + +2010-02-11 20:37:55 +0100 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/faad.c: + faad: add unit test + +2010-02-11 20:21:38 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: fix documentation typo + +2010-02-11 20:21:17 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: remove some redundant code + ... and move and modify some debug logging. + +2010-02-10 23:29:23 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: drain sync pending frames when appropriate + +2010-02-10 23:14:48 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: send tags exactly once when init'ed + +2010-02-10 23:14:21 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: refactor some partial stream reset + +2010-02-10 22:14:07 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: correctly estimate average bps + Count consumed bytes and corresponding duration atomically, + rather than letting bytecount run ahead of what has been decoded. + Fixes #440476. + +2010-02-10 21:49:00 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: give up after some number of decoding failures + +2010-02-10 21:37:12 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: do not attempt to sync indefinitely + +2010-02-10 21:12:07 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: use adapter rather than temporary buffer + +2010-02-10 19:14:19 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: objectify debug statements and adjust some levels + +2010-02-10 18:46:16 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: refactor src caps (re)negotiation and reflow some error exits + +2010-02-09 23:35:20 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: remove defunct and otherwise obsolete code + +2010-02-09 23:25:13 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + faad: refactor reset + +2010-02-09 22:46:32 +0100 Mark Nauwelaerts + + * ext/faad/gstfaad.c: + * ext/faad/gstfaad.h: + faad: use an in struct segment rather than a separately allocated one + +2010-02-10 10:52:53 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Preserve the input color values in all cases + +2010-02-10 10:50:49 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Scale mask alpha values by the source alpha values + +2010-02-10 10:42:32 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Fix ARGB processing + +2010-02-10 10:34:24 +0100 Sebastian Dröge + + * tests/examples/shapewipe/shapewipe-example.c: + shapewipe: Print some more details on error/warning messages + +2010-02-09 15:20:36 +0100 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Never flush more bytes than available + This could happen if the input doesn't contain any MPEG TS + data and the complete adapter content should be skipped. + +2010-02-08 11:51:52 -0300 Thiago Santos + + * gst/qtmux/atomsrecovery.c: + qtmux: atomsrecovery: Fix compilation problem + Fixes a compilation error due to unused function result. + +2010-02-08 08:26:33 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Improve/add debug output + +2010-02-08 08:20:44 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Always hold the mask mutex before signalling the GCond + +2010-02-08 08:19:48 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Move chain function error cases at the end of the function and add useful debug output + +2010-02-08 08:12:11 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + shapewipe: Fix race condition during shutdown that can lead to a deadlock + +2010-02-08 08:11:33 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Drop mask buffer on FLUSH events + +2010-02-08 08:09:55 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + shapewipe: Update copyright year + +2010-02-08 08:08:44 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Don't reset properties when going PAUSED->READY + Also use defines for the default values of the properties. + +2010-02-07 11:09:45 +0100 David Hoyt + + * ext/rsvg/gstrsvgdec.c: + rsvgdec: fix compilation with MSVC + MSVC doesn't like #if #else within statements. + Fixes #609215. + +2010-01-26 17:08:04 +0000 Vincent Penquerc'h + + * ext/kate/gstkatedec.c: + katedec: don't escape special characters + Don't escape special characters, as we'll send the buffer as + text/plain rather than text/x-pango-markup; this avoids e.g. + quotes from appearing as " in the rendered subtitles. + See bug #600929. + +2010-01-24 11:14:15 +0000 Vincent Penquerc'h + + * ext/kate/gstkatetiger.c: + kate: rename the tiger overlay element's sink pad to 'subtitle_sink' + As this is what playbin2 expects. See bug #600929. + +2010-02-07 10:19:06 +0100 Tim-Philipp Müller + + * gst/jpegformat/gstjpegformat.c: + jpegparse: lower rank to NONE so it is not autoplugged for decoding + This element is too new and too untested to have it autoplugged. + +2010-02-05 17:25:59 +0100 Sebastian Dröge + + * tests/check/elements/jpegparse.c: + jpegparse: Fix unit test + The parsed buffers have a framerate of 1/1. + Fixes bug #608998. + +2010-02-05 10:18:39 +0100 Mark Nauwelaerts + + * ext/metadata/metadatatypes.c: + metadata: append_sorted should really append sorted + ... which means that identical offset_orig should preserve the order + in which they are appended. + +2010-02-05 10:16:27 +0100 Mark Nauwelaerts + + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparseutil.c: + metadata: use a non-DEFAULT proper debug category in helper files + +2010-02-04 19:45:42 +0100 Julien Moutte + + * gst/mpegtsmux/mpegtsmux_h264.c: + mpegtsmux: Fix a potential unref of a NULL pointer. + At first iteration we don't have any cached SPS/PPS buffer to free. + +2010-02-02 11:43:22 -0500 Marc-André Lureau + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: add PAT/PMT in streamheader + The check for PAT/PMT buffers was suggested by + Zaheer Abbas Merali. + https://bugzilla.gnome.org/show_bug.cgi?id=608896 + +2010-02-03 13:31:22 +0100 Marc-André Lureau + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmuxcommon.h: + mpegtsmux: add pat-interval and pmt-interval properties + https://bugzilla.gnome.org/show_bug.cgi?id=608896 + +2010-02-03 13:41:27 +0100 Marc-André Lureau + + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + mpegtsmux: fix PAT/PMT insertion frequency + The current code is comparing timestamps with different clock. + Let's use only the clock for PTS values. + Also rename frequency to interval, to avoid confusion. And remove + documentation about value 0, which won't work like documented. + https://bugzilla.gnome.org/show_bug.cgi?id=608896 + +2010-01-27 16:29:00 +0100 Marc-André Lureau + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + mpegtsmux: marking non-delta unit, including pre-sections + This patch address the issue observed with KF timestamps + and delta flag. When a section is appended before the keyframe, + it is not marked as non-delta. It's preferable to mark the + first buffer non-delta. + This patch also simplify the initial patch written by thomas, + since it does not clutter tsmux/ with a delta flag passed + around only for GStreamer convenience. + https://bugzilla.gnome.org/show_bug.cgi?id=604908 + +2010-02-03 15:07:08 +0200 Stefan Kost + + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjifmux.c: + * gst/jpegformat/gstjifmux.h: + * gst/jpegformat/gstjpegformat.c: + * gst/jpegformat/gstjpegformat.h: + jpegformat: add a basic jifmuxer + The new element can chop and reassemble the markers. I implements the tagsetter + and for now can serialize some tags to jpeg comments. + +2009-12-12 16:07:15 -0300 Thiago Santos + + * gst/qtmux/Makefile.am: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/atomsrecovery.c: + * gst/qtmux/atomsrecovery.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmoovrecover.c: + * gst/qtmux/gstqtmoovrecover.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxplugin.c: + qtmux: Adds moov recovery feature + Adds a new property to qtmux that sets a path to a file to write + and update data about the moov atom (that is not writen till the + end of the file). If the pipeline/app crashes during execution it + might be possible to recover the movie using the qtmoovrecover element. + qtmoovrecover is an element that is also a pipeline. It is not + meant to be used with other elements (it has no pads). It is merely + a tool/utilitary to recover unfinished qtmux files. + Fixes #601576 + +2010-02-02 11:22:06 +0200 Stefan Kost + + * gst/jpegformat/gstjpegformat.h: + * gst/jpegformat/gstjpegparse.c: + jpegparse: improve parsing + Handle more app maker. Print app marker names to debug log. Remember last_marker + when parsing to avoid reparsing from the very begin. + +2010-02-02 12:23:24 +0100 Julien Moutte + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + * gst/mpegtsmux/mpegtsmux_h264.c: + * gst/mpegtsmux/mpegtsmux_h264.h: + mpegtsmux: generate SPS/PPS header once and fix overflow + Some H264 packets can be as small as 5 bytes for repeated frames. + In such a situation the output buffer size was not big enough (5*2) to fit the + SPS/PPS header and the start codes. This corrupts the ES stream. + We now generate the SPS/PPS only once which is much more optimal and we now + know the size of the header to calculate the output buffer size more safely. + +2010-02-02 01:44:20 +0100 Grigori Goronzy + + * ext/assrender/gstassrender.c: + assrender: instruct libass to use light autohinting + Fixes bug #608753. + +2010-02-02 08:53:53 +0100 Eric Appleman + + * ext/assrender/gstassrender.c: + assrender: Don't scan current working directory recursively for fonts + This can take a very long time and also libass will overwrite files + if there's an embedded font with the same filename as an existing file. + Fixes bug #575878 and #608706. + +2010-02-01 16:26:36 -0800 David Hoyt + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: don't crash on invalid AM_MEDIA_TYPE + +2010-01-27 19:06:53 -0800 Michael Smith + + * gst/qtmux/atoms.c: + qtmux: for fixed-sample size streams (PCM audio, etc) don't allocate an enormous buffer that we then won't use at all. + +2010-01-27 15:37:37 -0800 Michael Smith + + * gst/qtmux/gstqtmux.c: + qtmux: handle muxing adpcm correctly. + +2010-01-22 13:36:04 -0800 Michael Smith + + * gst/qtmux/atoms.c: + qtmux: Set the mdia hdlr name field to what quicktime uses. Fix writing it since it's not null-terminated. Improves compatibility with some hardware players. + +2010-01-22 13:30:07 -0800 Michael Smith + + * gst/qtmux/gstqtmux.c: + qtmux: endianness in gstreamer is an int, not boolean. + +2010-01-16 13:17:08 -0800 Michael Smith + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: parse more forms of codec_data + +2010-02-01 22:37:39 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: code cleanups + More logging and comments. Rename some vars for consistency. Fully init port + struct. + +2010-02-01 22:32:32 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + signalprocessor,lv2,ladspa: move sample-rate to baseclass + We need the sample-rate in baseclass for upcomming timestamp changes. + +2010-02-01 22:24:52 +0200 Stefan Kost + + * ext/lv2/README: + * ext/lv2/gstlv2.c: + lv2: shorter element names + Cut off the protocol part from the uri. Also just g_Strdup, instead of printf + the name. + +2010-02-01 17:46:29 +0200 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + jpegparse: provide a getcaps function for src pad and improve setcaps + Previously jpegparse was failing in decodebin as the caps we were setting where not + setting all caps fields. We need the own getcaps function to report what we actualy + accept. + +2010-02-01 17:16:16 +0200 Stefan Kost + + * gst/jpegformat/gstjpegparse.c: + jpegparse: extract comment and post as metadata + +2010-02-01 15:04:28 +0200 Stefan Kost + + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjpegformat.h: + * gst/jpegformat/gstjpegparse.c: + * gst/jpegformat/gstjpegparse.h: + jpegformat: code cleanups + Move the jpeg marker defines to a header (to be used for jifmux). Rewrite some + comments. Use gst_element_class_set_details_simple(). Add more logging. + +2010-01-31 22:21:42 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: simpify property registration + Avoid type cheking casts for each property. Use a running index. + +2010-01-31 22:16:18 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/Makefile.am: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: use the gst-controller, add some basic timestamping + Atleast for FX we now have timestamps and can sync the controller. Still need + timestamps for sources. + +2010-01-31 22:14:04 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + ladspa: simplify property registration + Don't do checking cast for each parameter. Use a running index. + +2010-01-31 22:13:06 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: use plugin dependency registry api + +2010-01-31 22:11:40 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: lookup GQuark just once instead for each plugin+1 + +2010-01-31 22:08:33 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + ladspa: lookup GQuark just once and not for each plugin+1 + +2010-01-31 22:07:09 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: these are not gtk-doc comments + +2010-01-31 22:05:30 +0200 Stefan Kost + + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.c: + * ext/lv2/Makefile.am: + * ext/lv2/gstlv2.c: + ladspa/lv2: link and init to gst-controller + +2010-01-31 15:53:27 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: new is a c++ keyword, better logging + Use pad instead of new for the pad var. Also use pad as object in to debug + logging. + +2010-01-30 15:19:30 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 15d47a6 to 96dc793 + +2010-01-29 12:25:08 +0200 Stefan Kost + + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjpegformat.c: + * gst/jpegformat/gstjpegparse.c: + jpegformat: move plugin part to speparate file, so that we can add the jifmux + +2010-01-29 11:39:50 +0200 Stefan Kost + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-jpegformat.xml: + docs: update of the plugin docs, adding new introspect data + +2009-08-19 12:22:30 +0200 Arnout Vandecappelle + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/jpegformat/Makefile.am: + * gst/jpegformat/gstjpegparse.c: + * gst/jpegformat/gstjpegparse.h: + * tests/check/Makefile.am: + * tests/check/elements/jpegparse.c: + jpegparse: new jpeg parser element. FIxes #583098 + Parse JPEG images, extracts its metadata, set caps and + packetize an image per buffer. + +2010-01-28 15:00:32 +0200 Stefan Kost + + * tests/examples/camerabin/gst-camera.c: + camerabin-example: cleanups for mainloop and state-changes. Fixes #608042 + Start camerabin via idle handler to have the mainloop already running. Avoid + some unnecessary state changes. Cleanup the bus usage when restarting. + +2010-01-28 14:57:06 +0200 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: don't log NULL caps, also downgrade to DEBUG as it is very verbose + This debug log entry was also not ment to be used in the failure case. + +2010-01-28 00:07:14 +0000 Tim-Philipp Müller + + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: add start function so we can error out properly if no uri is set + Also save a set URI after it has been parsed successfully, so that _get_uri() + actually works. + +2010-01-27 23:46:32 +0000 Tim-Philipp Müller + + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: don't post error message when setting the URI failed + There's a gboolean return for that, and the messages don't really + add anything useful. + +2010-01-27 23:39:14 +0000 Tim-Philipp Müller + + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: must release the object lock before using GST_ELEMENT_ERROR + +2010-01-27 23:34:34 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: add more debug and remove "\n" from debug logging + +2010-01-27 23:29:44 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: better gobject properties + Use lv2:symbol as a base for the property name and lv2:name for nick and blurb. + +2010-01-26 17:54:28 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + qtmux: streamline moov data memory storage + In particular, use arrays rather than (double) linked lists. + +2010-01-14 11:50:33 +0100 Mark Nauwelaerts + + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * gst/audioparsers/gstbaseparse.c: + audioparsers: rename baseparse GType name to avoid possible conflicts + +2010-01-14 12:06:03 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: use correct h264_parse prefix in function name + +2010-01-27 12:08:48 +0100 Vincent GENIEUX + + * sys/dvb/gstdvbsrc.c: + * sys/dvb/gstdvbsrc.h: + dvbsrc: fix element shutdown on bad reception + When we have a bad reception, avoid going into an infinite loop by setting a + shutdown flag when shutting down. + Fixes #607747 + +2010-01-26 13:44:04 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: g_free is NULL safe + +2010-01-25 19:06:53 -0300 Thiago Santos + + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfobjects.h: + * gst/asfmux/gstasfparse.c: + * gst/asfmux/gstrtpasfpay.c: + rtpasfpay: Fix packet length semantics + Following the ed4d08189ea6e19a50e029e60da52d3583c39fbb + commit, this one fixes rtpasfpay to use packet length + as the payloaded data length, but also accepting it + as the full packet size for compatibility with + other implementations due to the lack of clarity of the + spec in this part. + +2010-01-21 10:51:16 -0300 HÃ¥kon Skjelten + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + * gst/asfmux/gstasfobjects.h: + asfmux: Compatibility with WMSP in WMP + Makes the asfmux content compatible with WMSP and does + some hacks to make it playable in WMP, it doesn't accept + data objects with 0 size indicating that we don't know + its size, though the spec says it should be possible. + Fixes #607555 + +2010-01-25 23:06:59 +0200 Stefan Kost + + * tests/examples/camerabin/gst-camera.c: + camerabin-example: remove maemo comment and log filename + The maemo fixme is not needed anymore. Log the choosen filename to help + people finding the files. + +2010-01-25 23:04:38 +0200 Stefan Kost + + * gst/camerabin/camerabingeneral.c: + camerabin: ref element before removing from the bin to resurrect + This function is not supposed to dispose the element in the case of failure + as the caller is using the elements name in the error message. Also add + some more input parameter checks in the form of g_return_val_if_fail + +2010-01-25 12:21:34 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + Revert "inputselector: Protect g_object_notify() with the object's mutex" + This reverts commit 7e067615ffb5614f068f7753c10dde99afe49c3c, it's causing + deadlocks with playbin2. + +2010-01-25 12:12:32 +0100 Sebastian Dröge + + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: Remove role attribute from links + +2010-01-25 11:56:33 +0100 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-adpcmenc.xml: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-dataurisrc.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * gst/dataurisrc/gstdataurisrc.c: + dataurisrc: Add docs and integrate into build system + Fixes again bug #596885. + +2010-01-25 11:12:47 +0100 Sebastian Dröge + + * gst/dataurisrc/Makefile.am: + * gst/dataurisrc/gstdataurisrc.c: + * gst/dataurisrc/gstdataurisrc.h: + dataurisrc: Add data: URI source element + This is slightly based on the WebKit data: URI source + but supports more parts of RFC 2397. + Fixes bug #596885. + +2010-01-25 07:42:56 +0100 Sebastian Dröge + + * configure.ac: + * gst/dataurisrc/Makefile.am: + dataurisrc: Add directory for data: URI source + +2010-01-25 11:36:48 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: create valid gobject property names. Fixes #602528 + We cannot use the names as we get them from lv2 for the gparamspec name, only + for nick/blurb. Apply same algorithms like elsewhere (ladspa) for name. + +2010-01-25 11:49:46 +0200 Stefan Kost + + * gst/mxf/mxfup.c: + mxf: add a return to fix the build when turning assert off + +2010-01-25 11:48:29 +0200 Stefan Kost + + * ext/ivorbis/vorbisdec.c: + * gst/mxf/mxfup.c: + * win32/common/config.h: + Revert "mxf: add a return to fix the build when turning assert off" + This reverts commit 68ca62b369fc1b77adae85d9d805457fe4e3b562. + +2010-01-22 17:45:20 +0200 Stefan Kost + + * ext/ivorbis/vorbisdec.c: + * gst/mxf/mxfup.c: + * win32/common/config.h: + mxf: add a return to fix the build when turning assert off + +2010-01-24 20:53:00 +0100 Kipp Cannon + + * gst/selector/gstinputselector.c: + inputselector: Protect g_object_notify() with the object's mutex + This works around the thread unsafety of g_object_notify() + Fixes bug #607513. + +2010-01-22 10:48:26 +0100 Alessandro Decina + + * ext/faac/gstfaac.c: + faac: fix warnings under OS X.. + +2010-01-22 10:46:51 +0100 Alessandro Decina + + * configure.ac: + Don't build osxvideosrc and qtwrapper in Snow Leopard. + QuickTime isn't available anymore in OS X Snow Leopard. + +2010-01-22 02:23:30 +0000 Tim-Philipp Müller + + * gst/pnm/gstpnmutils.h: + pnm: use same media type as other elements + gdkpixbuf and our new typefinder in -base use image/x-portable-*. + +2010-01-22 02:22:56 +0000 Tim-Philipp Müller + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + pnm: make element details a bit more descriptive + +2010-01-22 02:19:24 +0000 Tim-Philipp Müller + + * gst/pnm/gstpnm.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmdec.h: + * gst/pnm/gstpnmenc.c: + * gst/pnm/gstpnmenc.h: + * gst/pnm/gstpnmutils.c: + * gst/pnm/gstpnmutils.h: + pnm: add copyright notice + +2010-01-22 02:10:08 +0000 Tim-Philipp Müller + + * gst/pnm/gstpnm.c: + pnm: move typefinding into -base + +2010-01-11 01:18:16 +0000 Tim-Philipp Müller + + * tests/examples/camerabin/gst-camera.c: + tests: refactor weird bus sync handler code in camerabin example + +2010-01-21 18:11:34 +0100 Thijs Vermeir + + * ext/Makefile.am: + flite: build and dist flite plugin + fixing "make dist" + +2010-01-21 15:58:11 +0100 Sebastian Dröge + + * gst/mxf/mxftypes.c: + mxf: Correctly initialize memory + +2010-01-20 13:30:48 +0100 Benjamin Otte + + * ext/lv2/gstlv2.c: + * ext/theora/theoradec.h: + * ext/zbar/gstzbar.h: + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfobjects.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/properties.c: + [cleanup] Various style and cleanups + Various fixes for gtk-doc warnings and making functions without + arguments take void as parameter. + +2010-01-20 13:29:52 +0100 Benjamin Otte + + * sys/oss4/oss4-mixer.c: + [oss4] Fix compiler warning about unused return value + +2010-01-20 00:54:51 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 358cf5c to 15d47a6 + +2010-01-18 10:57:42 +0100 Sebastian Dröge + + * gst/cdxaparse/gstcdxaparse.c: + cdxaparse: Fix buffer leak + Fixes bug #607285. + +2010-01-16 15:32:47 -0800 David Schleef + + * ext/faac/gstfaac.c: + faac: Fix channel layout + Adjusted the channel mappings to agree with the default channel mappings + in the spec, which is presumably what faac is using. Fixes #607105. + +2010-01-16 15:32:02 -0800 David Schleef + + * ext/flite/gstflitetestsrc.c: + flite: handle samplesperbuffer + +2010-01-16 12:43:43 -0800 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/flite/Makefile.am: + * ext/flite/gstflite.c: + * ext/flite/gstflitetestsrc.c: + flite: Add flitetestsrc + Flite is a speech synthesizer library (BSD-ish license). This element + negotiates a (possibly) multichannel audio stream, and then continually + outputs buffers naming the number and position of the channel. It's + kinda crappy, but I needed it for testing purposes. + +2010-01-16 17:02:52 +0100 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Make sure that property names always start with a letter + Otherwise GLib throws assertions + +2010-01-16 16:52:11 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Replace floating point arithmetic in the inner processing loops by integer arithmetic + +2010-01-16 13:05:58 +0100 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Only accept specific channel layouts as required by AAC + Fixes bug #607105. + +2010-01-16 11:41:20 +0100 Sebastian Dröge + + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera.c: + * tests/icles/Makefile.am: + examples: Fix build and signal connection for GtkBuilder stuff + +2010-01-16 11:26:15 +0100 Sebastian Dröge + + * configure.ac: + configure: Check for gmodule-export-2.0 for GtkBuilder + +2010-01-16 11:23:00 +0100 Sebastian Dröge + + * tests/icles/Makefile.am: + * tests/icles/metadata_editor.c: + icles: Link with GTK+ + +2010-01-16 11:16:05 +0100 Sebastian Dröge + + * configure.ac: + configure: Require GTK+ >= 2.12 for GtkBuilder + GTK+ 2.12 is already older than 2 years so this shouldn't + be a problem for anybody. Also it's only used in examples. + +2010-01-16 06:57:26 +0100 Javier Jardón + + * configure.ac: + * gst-plugins-bad.spec.in: + * po/POTFILES.skip: + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera-perf.glade: + * tests/examples/camerabin/gst-camera-perf.ui: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camera.glade: + * tests/examples/camerabin/gst-camera.ui: + * tests/icles/Makefile.am: + * tests/icles/metadata_editor.c: + * tests/icles/metadata_editor.glade: + * tests/icles/metadata_editor.ui: + tests: Port from libglade to GtkBuilder + Fixes bug #601108. + +2010-01-15 21:34:02 +0100 Julien Moutte + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: don't set an invalid framerate. + When fixed_vop_rate is not set we can not set a framerate based on + vop_time_increment_resolution as it would most likely be wrong. + Don't set any framerate on the caps in that case. + +2010-01-14 08:09:03 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmux.c: + qtmux: Actually use new caps info on renegotiation + Following the previous qtmux commit, this patch tries + to use the new info added to the caps to fill the 'trak' + atom's fields and children atoms. This way qtmux will + use the late added 'codec_data' when h264parse adds + it in the following pipeline: + videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \ + h264parse output-format=0 ! qtmux ! \ + filesink location=test.mov + +2010-01-13 23:33:51 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmux.c: + qtmux: Do caps renegotiation when it only adds fields + Qtmux can accept caps renegotiation if the new caps is a + superset of the old one, meaning upstream added new info to + the caps. This patch still doesn't make qtmux update any + atoms info from the new info, but at least it doesn't + reject the new caps anymore. + A pipeline that reproduces this use case is: + videotestsrc num-buffers=200 ! x264enc byte-stream=true ! \ + h264parse output-format=0 ! qtmux ! \ + filesink location=test.mov + +2010-01-14 12:59:21 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Improve debug output a bit and simplify code + +2010-01-14 12:56:12 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Make sure that the video buffer is writable before writing to it + +2010-01-14 12:47:15 +0100 Wim Taymans + + * ext/apexsink/gstapexsink.c: + apexsink: change volume property to a double + Change the volume property from int to a double so that playbin2 can use it. + Keep the volume internally as a percent for now with the default 75% mapped to + a volume of 1.0. + some cleanups, add some FIXME and comments. + Fixes #606878 + +2010-01-13 19:30:45 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: provide request pads under wider conditions + Fixes #606859. + +2010-01-13 10:35:00 -0300 Thiago Santos + + * gst/qtmux/gstqtmuxmap.c: + qtmux: Only accept avc-sample h264 + qtmux and mp4mux should only accept h264 in avc-sample + format + +2010-01-13 09:42:12 -0300 Thiago Santos + + * gst/h264parse/gsth264parse.c: + h264parse: Add stream-format to caps + Adds the new stream-format field to h264parse caps + Fixes #606662 + +2010-01-13 00:38:47 +0000 Tim-Philipp Müller + + * Makefile.am: + * common: + build: include cruft.mak and add recently-merged plugins to cruft list + +2010-01-12 23:53:18 +0000 Tim-Philipp Müller + + * ext/libmms/gstmms.c: + mmssrc: post error message in addition to redirect when connect fails + When we can't connect to the server, we should still post a proper + error message on the bus, so that applications that don't handle the + redirect messsage get a proper error message (and a hint to look for + the redirect). + Fixes #606636. + +2010-01-12 15:45:14 -0300 Thiago Santos + + * gst/h264parse/gsth264parse.c: + h264parse: Correctly rewrite all nal prefixes + When converting to byte-stream do not forget to rewrite + all nal prefixes instead of only the first one. + +2010-01-12 19:33:37 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: improve faac configuration + In particular, align configuration some more with reference binary faac. + Fixes #606726. + +2010-01-12 14:51:02 -0300 Thiago Santos + + * gst/mpegtsmux/mpegtsmux_h264.c: + mpegtsmux: Fix mistake on previous commit + Use the correct variables and variable format in the warning + message + +2010-01-12 18:55:53 +0100 Edward Hervey + + * gst/audioparsers/gstflacparse.c: + flacparse: Initialize variables. + Fixes build on $#@*( macosx + +2010-01-12 17:05:13 +0100 Edward Hervey + + * tests/check/Makefile.am: + tests: Add neonhttpsrc to the list of elements ignored for state-change + Setting neonhttpsrc to PAUSED/PLAYING requires a running http server on + localhost. + +2010-01-12 09:58:48 -0300 Thiago Santos + + * gst/h264parse/gsth264parse.c: + h264parse: remove codec_data if output is bytestream + codec_data should be removed from the src pad caps if the + output is in bytestream format + Fixes #606657 + +2010-01-12 09:35:24 -0300 Thiago Santos + + * gst/mpegtsmux/mpegtsmux_h264.c: + mpegtsmux: Do not crash on misinterpreted h264 + Avoid crashing when bytestream h264 is interpreted as avc format + h264 + Fixes #606657 + +2010-01-11 22:41:57 +0300 Ðóñëàí Èæáóëàòîâ + + * ext/soundtouch/gstbpmdetect.cc: + * ext/soundtouch/gstpitch.cc: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstamrparse.c: + * gst/h264parse/gsth264parse.c: + * gst/mpegdemux/Makefile.am: + win32: Include config.h before anything else. Fix mpegdemux LIBADD + Because config.h defines __MSVCRT_VERSION__, which should be defined + before inclusion of any system header. + Also fixes mpegdemux Makefile.am LIBADD typo. + Fixes #606665 + +2010-01-12 00:46:27 +0300 Руслан Ижбулатов + + * configure.ac: + * gst/librfb/rfbdecoder.c: + * gst/librfb/vncauth.c: + librfb: port rfbsrc to MinGW + Fixes #606677 + +2010-01-11 13:20:26 -0300 Thiago Santos + + * gst/audioparsers/gstaacparse.c: + aacparse: Also add stream-format to template caps + Do not forget to add stream-format to template caps + off aacparse + +2010-01-11 13:13:41 -0300 Thiago Santos + + * ext/faac/gstfaac.c: + * gst/audioparsers/gstaacparse.c: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + * tests/check/elements/aacparse.c: + Rename aac's stream-format 'none' to 'raw' + Renames aac's stream-format from previous commits from none to + raw + +2010-01-11 16:09:38 +0100 Руслан Ижбулатов + + * configure.ac: + configure: include into msacm.h conftest + +2010-01-11 12:10:02 -0300 Thiago Santos + + * tests/check/elements/aacparse.c: + aacparse: update tests to stream-format changes + Updates aacparse unit tests to check for stream-format + correctness as well. + +2010-01-11 10:51:18 -0300 Thiago Santos + + * gst/audioparsers/gstaacparse.c: + aacparse: Add stream-format to output caps + Adds stream-format field to output caps + +2010-01-11 10:34:32 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: Only accept stream-format='none' aac + Only accept raw aac streams (stream-format=none) to avoid + generating invalid files. + Fixes #604925 + +2010-01-11 09:48:34 -0300 Thiago Santos + + * ext/faac/gstfaac.c: + faac: Add format to output caps + Adds 'stream-format' to output caps to inform if the stream is + adts or raw. This makes it possible for muxers to reject + input streams on caps if they don't support adts instead of + generating a invalid file. + Fixes #604925 + +2010-01-11 01:02:59 +0000 Tim-Philipp Müller + + * ext/resindvd/gstmpegdemux.c: + resindvd: fix unaligned access in this copy of mpegdemux as well + See #606371. + +2010-01-11 00:59:38 +0000 Tim-Philipp Müller + + * gst/vmnc/vmncdec.c: + vmnc: use existing macros to avoid alignment issues + +2010-01-11 00:57:41 +0000 Tim-Philipp Müller + + * gst/librfb/rfbdecoder.c: + rfbsrc: use existing macros to avoid alignment issues + +2010-01-11 00:24:59 +0000 Tim-Philipp Müller + + * gst/asfmux/gstasfobjects.c: + asfmux: fix alignment and endianness issue + +2010-01-11 00:16:18 +0000 Tim-Philipp Müller + + * ext/zbar/gstzbar.c: + zbar: use GST_MAKE_FOURCC to create FOURCC + +2010-01-10 10:06:55 -0300 Linqiang Pu + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: fix allignment issue + Use GST_READ_UINT32_BE instead of GUINT32_FROM_BE to + fix int allignment issues on ARM + Fixes #606371 + +2010-01-08 16:06:38 +0000 Marc-André Lureau + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: only video can have non-delta-unit + +2009-12-18 14:14:17 +0100 Thomas Vander Stichele + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/tsmux/tsmux.c: + * gst/mpegtsmux/tsmux/tsmux.h: + mpegtsmux: mark delta-unit on outgoing buffers + Signed-off-by: Marc-André Lureau + +2010-01-07 17:54:28 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: optimize src caps updating + +2010-01-07 17:47:03 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: fix framerate calculation + ... and also remove a superfluous duplicate debug statement. + +2010-01-07 17:42:24 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: fix regression in output buffer timestamping + Specifically, properly mark a buffer (NALU or AU) to start a frame or not. + +2010-01-06 11:20:06 -0800 Michael Smith + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: avoid crash if vos < 5 bytes. + +2009-12-13 13:53:14 +0000 Tim-Philipp Müller + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: fix typo in property description + +2009-12-13 13:49:38 +0000 Tim-Philipp Müller + + * gst/mpegdemux/Makefile.am: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix language extraction + The descriptor contains ISO 639-2 language codes, but we want + two-letter ISO 639-1 codes in GST_TAG_LANGUAGE. + +2009-12-05 18:16:47 +0000 Tim-Philipp Müller + + * tests/examples/camerabin/gst-camera.c: + examples: make camerabin test application handle errors when starting up + Instead of hanging forever in a _get_state() in case an error occurs when + starting up camerabin, bail out and print an error message. Also remove + unnecessary _get_state() when shutting down the pipeline. + +2010-01-05 18:44:45 +0100 Mark Nauwelaerts + + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-audioparsersbad.xml: + audioparsers: add some missing documentation pieces + +2010-01-05 16:10:13 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: documentation fix + +2010-01-05 15:05:05 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstbaseparse.c: + audioparsers: documentation fixes + +2010-01-05 15:04:38 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/audioparsers/gstac3parse.c: + ac3parse: add documentation + +2010-01-05 14:48:49 +0100 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + flacparse: add documentation + +2009-12-21 18:29:43 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: perform additional frame checks when resyncing + +2010-01-05 16:35:52 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: fix (multiple channel) frame parsing + +2010-01-05 16:35:44 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: declare unparsed input and parsed output + +2009-12-21 18:19:23 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: fix scanning for next syncword + +2009-12-21 18:18:39 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: adjust seek handling and newsegment sending + Perform sanity check on type of seek, and only perform one that is + appropriately supported. Adjust downstream newsegment event + to first buffer timestamp that is sent downstream. + +2009-12-21 11:59:45 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: minor refactor cleanup + Also add some debug logging. + +2009-12-18 21:05:11 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: locate next sync code more efficiently + +2009-12-18 21:04:12 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: baseparse takes care of handling leftover pieces + +2009-12-18 21:02:40 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: implement leftover draining in pull mode + +2009-12-17 12:45:36 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstflacparse.c: + flacparse: set _OFFSET and _OFFSET_END on outgoing buffers + +2009-12-17 12:44:20 +0100 Mark Nauwelaerts + + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstflacparse.c: + * gst/audioparsers/gstflacparse.h: + * gst/audioparsers/plugin.c: + * gst/flacparse/Makefile.am: + * gst/flacparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.h: + * gst/flacparse/gstflac.c: + * gst/flacparse/gstflacparse.c: + * gst/flacparse/gstflacparse.h: + audioparsers: move 'flacparse' into it + +2009-12-16 18:38:33 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: provide default conversion using bps if no fps available + Also store estimated duration as such, rather than pretending otherwise + (e.g. set by subclass). + +2010-01-04 10:23:37 +0100 Sebastian Dröge + + * ext/modplug/gstmodplug.cc: + modplug: Fix indention + +2009-12-29 17:28:06 +0200 Kaj-Michael Lang + + * ext/modplug/gstmodplug.cc: + modplug: Allow 1-2 channels for 16 and 32 bit depths, not only for 8 bits. + Fixes bug #605721. + +2009-12-29 16:07:59 +0200 Kaj-Michael Lang + + * ext/modplug/gstmodplug.cc: + * ext/modplug/gstmodplug.h: + modplug: Allow 32 bit depth, modplugs native format. + Fixes bug #605720. + +2010-01-02 17:33:57 +0100 Arnaud Patard + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Handle eac3 in PMT + When the stream type is set to private data, gst-mpegtsdemux is trying to find + audio descriptors in PMT and look for AC3 (tag 0x6a) but doesn't look for EAC3 + (tag 0x7a). Handle this case too. + Fixes bug #605904. + +2009-12-30 21:50:32 +0100 Alessandro Decina + + * gst/h264parse/gsth264parse.c: + h264parse: fix caps handling in _update_src_caps. + +2009-12-28 11:34:35 +0200 Stefan Kost + + * gst/qtmux/gstqtmux.h: + qtmux: also add .h file changes to unbreak the build + +2009-12-27 23:51:50 +0200 Stefan Kost + + * gst/qtmux/gstqtmux.c: + qtmux: use correct names from template for request pads + The pads where names pad0, pad1, ... + +2009-12-27 23:32:58 +0200 Stefan Kost + + * gst/qtmux/gstqtmux.c: + qtmux: move errors _new_pad to the end + +2009-12-21 19:12:42 +0100 Mark Nauwelaerts + + * common: + Automatic update of common submodule + From 47cb23a to 14cec89 + +2009-12-21 13:58:30 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Accept non-paired uint tags + Adds support for unpaired unsigned interger tags + +2009-12-21 12:05:37 -0300 Thiago Santos + + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + qtmux: Adds new tags + Maps more tags that are already posted by qtdemux + Fixes #599759 + +2009-12-18 16:16:46 +0100 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: only raw output needs codec_data in caps + +2009-12-18 13:30:29 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: check for remaining data when draining in push mode + +2009-12-18 13:30:07 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + baseparse: fix pull mode cache size comparison + +2009-12-18 13:01:17 +0100 Edward Hervey + + * gst/audioparsers/gstac3parse.c: + ac3parse: Fix unitialized variable. + +2009-12-17 11:04:28 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: Internal sink improvements + Does some general improvements with the internal sink handling. + 1) Do not remove and re-add the ghostpad when changing + internal sink + 2) Only instantiate the default sink when changing from NULL + to READY if there is no other available + 3) Avoid changing the internal sink if not on NULL state + Fixes #598682 + +2009-12-17 07:54:04 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: Minor fixes + Downgrade a warning message to debug. Remove an + already fixed FIXME and add a note about (not-)using + fpsdisplaysink in autovideosink. Change the created + ghostpad to use the name "sink" as it is advertised in + the pad template. + +2009-12-17 14:46:01 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + * gst/audioparsers/Makefile.am: + Update spec file and fix ac3parser header listing in Makefile.am + +2009-12-17 01:05:28 +0000 Tim-Philipp Müller + + * tests/icles/Makefile.am: + tests: try to fix 'make dist' when cog is not installed + +2009-12-16 18:32:42 -0300 Thiago Santos + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: fix setting sync on child bin + Use GST_IS_BIN instead of G_OBJECT_TYPE to check if the + internal sink is a bin. Using the later won't work when + the sink is not a bin directly (but inherits from one, like + autovideosink). + Fixes #604280 + +2009-12-15 13:08:08 +0100 Philippe Normand + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: check the sync property exists on embedded sink(s) + Follow-up on 4111d6321f140eb7790620ab42e5cf1d9413b56a, the video + sink(s) used by fpsdisplaysink might not have the sync property. So we + check its existence to avoid warning from g_object_set() at runtime. + Fixes #604280 + +2009-12-10 22:20:45 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + qtmux: support more of j2k + Reads the new caps added to qtdemux by commit + c917d65e6df0b5d585f905c7ad78a8a0a44b2cb0 + and adds its corresponding atoms. + Also adds support for image/x-jpc as it is the same + as image/x-jp2, except that the buffers need to be + boxed inside a jp2c isom box before muxing. To solve + this the QTPads now have a function that (if + not NULL) is called when a buffer is collected. This + function returns a replacement to the current collected + buffer. + Fixes #598916 + +2009-12-14 16:16:08 +0100 Sebastian Dröge + + * ext/cog/Makefile.am: + cog: Table generation utility needs to link to -lm too + +2009-12-14 16:08:01 +0100 Sebastian Dröge + + * configure.ac: + * ext/cog/cog.orc: + cog: Don't build orc_memcpy() and depend on orc >= 0.4.3 for orc_memcpy() + In the latest release this function is already defined. + +2009-12-10 16:53:19 -0300 Thiago Santos + + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: Maps 'classification' tag for 3gpp files + Adds the mapping of 'classification' tags to writing of + 'clsf' atoms for gppmux. + Based on a patch by: Lasse Laukkanen + +2009-12-10 22:49:13 -0300 Philippe Normand + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: expose video sink using a property + Exposes the internally used sink as video-sink property and + makes the default one to be autovideosink instead of + the hardcoded xvimagesink + Fixes #604280 + +2009-12-11 16:32:48 -0800 Peter van Hardenberg + + * configure.ac: + * gst-plugins-bad.spec.in: + * gst/adpcmenc/Makefile.am: + * gst/adpcmenc/adpcmenc.c: + adpcmenc: add new adpcm encoder element. + +2009-12-11 10:25:16 -0800 Michael Smith + + * gst/audioparsers/gstbaseparse.c: + audioparse: fix a format string as reported on irc. + +2009-12-10 10:10:15 -0800 Michael Smith + + * gst/adpcmdec/adpcmdec.c: + adpcmdec: make power of 2 more accurate. + +2009-12-10 12:56:47 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: fix caps parameters setting + Also consider PPS when selecting SPS to pick parameters from. + Only update caps when settings actually changed, and when these are valid. + +2009-12-08 18:57:49 +0100 Mark Nauwelaerts + + * ext/ivorbis/vorbisdec.c: + * ext/ivorbis/vorbisdec.h: + ivorbis: also cater for traditional 16-bit width sample output + +2009-12-10 10:40:10 +0100 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Don't do pointer dereferences in the processing loop + Lowers the time taken there in my testcase from 6.91% to 6.20% + as measured by callgrind. + +2009-11-18 16:38:33 +0100 unknown + + * gst/rtpmux/gstrtpmux.c: + rtpmux: update the current_ssrc from the caps + Fixes #604101 + +2009-12-09 14:42:21 +0100 HÃ¥vard Graff + + * gst/rtpmux/gstrtpmux.c: + rtpmux: release pads when disposing + Because of an allocated priv (GstRTPMuxPadPrivate), the element will + leak memory if not gst_rtp_mux_release_pad() is called. This would + previously only happen if release_request_pad() was called explicitly, + somthing that should not be neccesary. + Fixes #604099 + +2009-12-09 13:40:43 +0100 Wim Taymans + + * gst/rtpmux/gstrtpdtmfmux.c: + dtmfmux: method name cleanups + +2009-12-09 09:57:58 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Implement srcpad query function to always forward to the video sinkpad + +2009-12-09 09:55:32 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Proxy buffer allocation on video sinkpad to the srcpad + ...and add getcaps function to the video sinkpad. + +2009-12-09 09:51:20 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Implement srcpad event functions for seeking and correct event forwarding + Copied from textoverlay. + +2009-12-08 17:59:04 -0800 Michael Smith + + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmux.c: + qtmux: remove c++ comments and add some more comments. + +2009-12-08 17:55:56 -0800 Michael Smith + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: add ima adpcm support + +2009-12-08 17:55:13 -0800 Stephen McNamara + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: don't leak filter_media_event + +2009-11-23 16:34:50 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: ensure sufficient data available for parsing + +2009-10-29 15:19:04 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: extract and use some more details for Enhanced Ac-3 streams + +2009-10-29 15:18:37 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + baseparse: custom bufferflag indicates not to count frame in stats + +2009-10-28 14:08:43 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: perform additional frame checks when resyncing + +2009-10-28 14:07:17 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: inform base parser of frame duration + +2009-10-27 16:16:50 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstac3parse.c: + ac3parse: improve src caps settings + +2009-11-27 17:59:03 +0100 Mark Nauwelaerts + + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstac3parse.c: + * gst/audioparsers/gstac3parse.h: + * gst/audioparsers/plugin.c: + ac3parse: initial version + MARGINAL rank for now; might take some time for some (useful) + framed=true/false to appear here and there. + +2009-11-26 18:34:45 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstamrparse.h: + amrparse: use (default) time handling of baseparser class + +2009-11-26 18:15:21 +0100 Mark Nauwelaerts + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * gst/amrparse/Makefile.am: + * gst/amrparse/gstamrparse.c: + * gst/amrparse/gstamrparse.h: + * gst/amrparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.h: + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstamrparse.c: + * gst/audioparsers/gstamrparse.h: + * gst/audioparsers/plugin.c: + audioparsers: move 'amrparse' into it + +2009-11-27 17:27:32 +0100 Mark Nauwelaerts + + * gst/audioparsers/gstbaseparse.c: + audioparsers: reference GstBaseParse now lives here + +2009-11-28 18:13:31 +0100 Mark Nauwelaerts + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * gst/aacparse/Makefile.am: + * gst/aacparse/gstaacparse.c: + * gst/aacparse/gstaacparse.h: + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + * gst/aacparse/plugin.c: + * gst/audioparsers/Makefile.am: + * gst/audioparsers/gstaacparse.c: + * gst/audioparsers/gstaacparse.h: + * gst/audioparsers/gstbaseparse.c: + * gst/audioparsers/gstbaseparse.h: + * gst/audioparsers/plugin.c: + audioparsers: rename 'aacparse' plugin to generic 'audioparsers' plugin + +2009-11-26 17:04:43 +0100 Mark Nauwelaerts + + * gst/aacparse/Makefile.am: + * gst/aacparse/gstaacparse.c: + * gst/aacparse/plugin.c: + aacparse: separate plugin registration and rename plugin + +2009-11-26 17:04:36 +0100 Mark Nauwelaerts + + * gst/aacparse/gstaacparse.c: + aacparse: ensure sufficient data available before accessing + +2009-11-05 14:31:40 +0100 Mark Nauwelaerts + + * gst/aacparse/gstaacparse.c: + * gst/aacparse/gstaacparse.h: + aacparse: use (default) time handling of baseparser class + +2009-10-29 15:19:35 +0100 Mark Nauwelaerts + + * gst/aacparse/gstaacparse.c: + aacparse: fixup comments to C-style + +2009-10-29 16:05:00 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + baseparse: reset passthrough mode to default (disabled) on activation + +2009-10-29 15:16:59 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + baseparse: ensure buffer metadata is writable + +2009-10-28 14:06:13 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + baseparse: fix/enhance DISCONT marking + In particular, consider DISCONT == !sync, and allow subclass to query + sync state, as it may want to perform additional checks depending + on whether sync was achieved earlier on. + Also arrange for subclass to query whether leftover data is being drained. + +2009-11-23 15:48:25 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + baseparse: add timestamp handling, and default conversion + In particular, (optionally) provide baseparse with a notion of frames per second + (and therefore also frame duration) and have it track frame and byte counts. + This way, subclass can provide baseparse with fps and have it provide default + buffer time metadata and conversions, though subclass can still install + callbacks to handle such itself. + +2009-10-28 12:02:03 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + baseparse: documentation fixes + +2009-10-28 12:00:08 +0100 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + baseparse: use_fixed_caps for src pad + After all, stream is as-is, and there is little molding to downstream's + taste that can be done. If subclass can and wants to do so, it can + still override as such. + +2009-12-08 14:46:35 +0100 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-lv2.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Add docs and integrate into the docs build system + +2009-12-08 14:06:23 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: For synchronizing the text, take the video running time of the next frame + This makes sure that libass already has all text buffers for the next frame + at the time when the next frame is processed. Without this text buffers + might be one frame late or not shown at all if they're only shown for a + single frame. + +2009-12-08 11:26:02 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Fix I420 mode and enable it + +2009-12-08 11:25:39 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Fix compilation with older libass versions + +2009-12-07 10:21:32 -0800 Michael Smith + + * sys/dshowvideosink/dshowvideosink.h: + dshowvideosink: spell things more betterer. + +2009-12-07 10:09:19 -0800 Stephen McNamara + + * sys/dshowvideosink/dshowvideosink.h: + dshowvideosink: add virtual destructor for internal helper class. + +2009-12-07 18:35:40 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Don't unref buffers twice + +2009-12-07 18:30:05 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Improve embedded font usage + For this add some new mimetypes and also check the filename extension. + Fixes bug #603938. + +2009-12-07 18:03:26 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Disable I420 support for now, it doesn't work reliable yet + +2009-12-07 17:04:04 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Add support for I420 + +2009-12-07 15:31:41 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Optimize blit function and add support for all other non-alpha RGB formats + Also make sure to not write behind array bounds. + +2009-12-07 14:35:55 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Fix attachment tag handling and move it into a separate function + ...to prevent code duplication. + +2009-12-07 14:26:46 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Update text last stop after checking if timestamp/duration is valid + +2009-12-07 14:23:22 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: If an ASS track was allocated already only feed new codec_data to it instead of recreating + +2009-12-07 14:05:22 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Lots of random cleanup and some minor memleak fixes + +2009-12-07 13:40:56 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Extract embedded fonts from the subtitle streams if requested + +2009-12-07 13:26:39 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Don't let libass print stuff on stderr but proxy the messages to the GStreamer debugging system + +2009-12-05 11:25:15 +0000 Tim-Philipp Müller + + * configure.ac: + * ext/apexsink/Makefile.am: + apexsink: clean up and fix configure logic and Makefile.am + Check for openssl and libcrypto using pkg-config and don't build the + plugin if those are not available. Also, fix the CFLAGS/LIBS order + in Makefile.am and use the detected LIBS instead of hard-coding + -lcrypto in the Makefile.am. Should fix #601417. + +2009-12-01 15:07:49 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 87bf428 to 47cb23a + +2009-12-01 14:09:29 +0100 Sebastian Dröge + + * configure.ac: + configure: Call AG_GST_PLATFORM for GST_EXTRA_MODULE_SUFFIX + This is used in the frei0r plugin already but never defined anywhere. + Fixes bug #602524. + +2009-12-01 14:17:22 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From da4c75c to 87bf428 + +2009-11-27 18:55:58 +0100 Edward Hervey + + * common: + Automatic update of common submodule + From 53a2485 to da4c75c + +2009-11-27 14:38:04 +0200 Teemu Katajisto + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinphotography.c: + * gst/camerabin/gstcamerabinphotography.h: + camerabin: photography interface properties. Fixes #573370 (partially) + Added GObject properties to photography interface and implemented + them in camerabin. Changed zooming to check if video-source has + zoom property. + +2009-02-23 23:18:33 +0200 René Stadler + + * Makefile.am: + * configure.ac: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-plugins-bad-uninstalled.pc.in: + * pkgconfig/gstreamer-plugins-bad.pc.in: + Add pkgconfig files for photography interface library. + +2009-10-28 12:47:19 +0200 Teemu Katajisto + + * gst/camerabin/Makefile.am: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + * gst/camerabin/gstcamerabin-enum.c: + * gst/camerabin/gstcamerabin-enum.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: add flags property. Fixes #573370 (partially) + Adds flags property to enable runtime configuration of + conversion and scaling elements. Also adds flag for disabling + audio completely. + +2009-10-27 16:28:25 +0200 Teemu Katajisto + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + camerabin: remove timeoverlay build-time definition + +2009-11-26 15:33:32 -0600 Wim Taymans + + * sys/vdpau/Makefile.am: + vdpau: fix build + +2009-11-25 21:41:27 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: replace _scale with _scale_round + Use the rounding version for improved sync between streams. + Small variations in the duration when muxing might lead to + cumullative wrong timestamping when demuxing. + Fixes #602936 + +2009-11-24 16:16:56 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: use timestamps for muxing + Try to use timestamps even when the stream has out of order + timestamps, only fall back to durations when we detect an + out of order buffer. Improves sync between streams. + +2009-11-24 14:34:51 +0200 Stefan Kost + + * ext/metadata/gstmetadatamux.c: + metadata: fix classification + +2009-11-18 11:38:50 +0100 Xavier Queralt Mateu + + * gst/mpegdemux/mpegtspacketizer.c: + Expose lang codes in pmt + +2009-11-22 19:30:43 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: optional transforming from bytestream to sample format (or vice versa) + +2009-11-20 18:31:39 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: refactor a bit into a reset function + +2009-11-20 18:49:56 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: provide w/h from stream in src caps if not in sink caps + +2009-11-06 12:58:33 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + h264parse: parse SPS some more (e.g. for width/height) + +2009-11-22 19:34:25 +0100 Mark Nauwelaerts + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: optionally output AUs rather than NALUs + That is, Access Units (frames/fields) instead of (possibly) parts thereof. + +2009-11-23 10:32:41 +0100 Edward Hervey + + * po/POTFILES.in: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + po: remove ext/resindvd/rsnbasesrc.c + +2009-11-23 09:35:30 +0100 Edward Hervey + + * win32/common/config.h: + win32: pre-release=>git + +2009-11-23 09:17:39 +0100 Edward Hervey + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + vdpau: Fix includes + +2009-11-22 22:54:27 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + vdpauvideopostprocess: convert to 1/1 pixel-aspect-ratio for rgb too + +2009-11-22 22:34:19 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + vdpausink: intersect allowed caps with our template caps + +2009-11-22 22:31:38 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + vdpau: fix gst_vdp_[video|yuv]_to_output_caps to also add rgb caps + +2009-11-22 22:30:19 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: use GstVdpVideoSrcPad + +2009-11-22 22:29:58 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdpoutputbuffer.h: + vdpau: add functions to GstVdpOutputBuffer needed for rgb download + +2009-11-22 22:28:18 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpoutputsrcpad.c: + * sys/vdpau/gstvdpoutputsrcpad.h: + vdpau: add GstPad subclass GstVdpOutputSrcPad + GstVdpOutputSrcPad is a subclass of GstPad that is used for pushing out + GstVdpOutputBuffers. It takes care of caps negotiation and conversion to + video/x-raw-rgb. + +2009-11-22 22:24:12 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + gstvdpvideosrcpad: add "template-caps" property + The property limits the available output caps + +2009-11-22 22:18:55 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideobuffer.c: + gstvdpvideobuffer: fix typo + +2009-11-21 02:51:39 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + gstvdpvideosrcpad: replace get_pad_template() with get_template_caps() + +2009-11-21 01:10:50 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + gstvdpvideosrcpad: don't recreate caps in getcaps + +2009-11-21 00:13:46 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideosrcpad.c: + * sys/vdpau/gstvdpvideosrcpad.h: + vdpau: add GstPad subclass GstVdpVideoSrcPad + GstVdpVideoSrcPad takes care of caps negotiation and conversion of + GstVdpVideoBuffers to the negotiated output format. + +2009-10-27 22:04:10 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpsink.c: + vdpausink: rework presentation blocking a bit + instead of blocking until the previous surface has been displayed, we new only + add surfaces to the queue if it's idle. + +2009-10-27 21:18:04 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: split up chain function + +2009-10-27 20:57:05 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: implement basic qos handling + +2009-10-16 00:16:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + vdpaumpegdec: add display property + +2009-10-08 23:38:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + vdpau: remove unused functions + +2009-10-08 20:25:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpau: use local libgstvdp headers + +2009-10-08 20:23:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: remove now unneeded vdpauvideoyuv and vdpauyuvvideo elements + +2009-10-08 20:19:57 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add display property + +2009-10-08 20:13:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + vdpausink: add debug output + +2009-10-08 20:13:04 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add support for video/x-raw-yuv input + +2009-10-07 10:25:46 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: add src_getcaps func + this way we can return only the caps we really support, since we're able to query vdpau + about it + +2009-10-07 00:13:00 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + vdpaumpegdec: add support for negotation of x-raw-yuv output + +2009-10-04 19:27:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: create a libgstvdp library. + The library contains GstVdpDevice GstVdpVideoBuffer and GstVdpOutputBuffer. The + library will (apart from the plugins here) be used by the upcoming gst-ffmpeg + vdpau support. + +2009-10-03 14:30:41 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: check for sink element returning wrong buffer type + +2009-10-02 01:04:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + vdpau: remove unneeded gst_vdp_video_buffer_add_reference function + +2009-09-24 22:26:58 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: fix longname + +2009-11-22 19:30:58 +0000 Tim-Philipp Müller + + * ext/mimic/Makefile.am: + * gst/autoconvert/Makefile.am: + * gst/dtmf/Makefile.am: + * gst/liveadder/Makefile.am: + * gst/rtpmux/Makefile.am: + * gst/siren/Makefile.am: + * gst/valve/Makefile.am: + Clean up LDFLAGS, LIBS, CFLAGS + Fix order, fix variables that don't exist, like GST_LIBS_LIBS, + use $(LIBM) instead of -lm, and move _LIBS from LDFLAGS to LIBADD. + Spotted by Havard Graff. + +2009-11-22 19:02:23 +0000 Tim-Philipp Müller + + * ext/cog/cogutils.h: + cog: include our own _stdint.h instead of + +2009-11-20 11:13:58 +0000 Tim-Philipp Müller + + * gst/librfb/d3des.c: + * gst/librfb/vncauth.c: + librfb: include our own _stdint.h not stdint.h + +2009-11-21 17:31:53 +0100 Jan Schmidt + + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + * ext/resindvd/rsnbasesrc.c: + * ext/resindvd/rsnbasesrc.h: + resindvd: Remove local basesrc copy + Use the real version of basesrc instead of a local copy now that it + supports the seamless segment feature that resin needs. + +2009-11-20 13:41:27 -0800 Michael Smith + + * tests/icles/Makefile.am: + tests/icles: make cog test program depend on USE_COG. Fixes build without orc. + +2009-11-20 20:55:15 +0100 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + cog: convert some params to consts in orc code + +2009-11-20 17:33:21 +0100 Julien Moutte + + * gst/frei0r/gstfrei0rmixer.c: + frei0r: Fix compilation warnings. + +2009-11-20 17:32:44 +0100 Julien Moutte + + * gst/amrparse/gstbaseparse.c: + amrparse: Fix compilation warnings + +2009-11-20 17:32:13 +0100 Julien Moutte + + * gst/aacparse/gstbaseparse.c: + aacparse: Fix compilation warnings + +2009-11-20 10:31:47 -0500 Olivier Crête + + * gst/dtmf/tone_detect.h: + dtmf: Use _stdint.h from configure + https://bugzilla.gnome.org/show_bug.cgi?id=602465 + +2009-11-20 13:13:36 +0100 David Schleef + + * ext/cog/Makefile.am: + * tests/icles/Makefile.am: + cog: Add orc test code for cog + Also look for cog.orc source file in the right place. + +2009-11-19 20:33:07 -0500 Olivier Crête + + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmf: Update dtmfdetect to make it MSVC friendly + https://bugzilla.gnome.org/show_bug.cgi?id=602465 + +2009-11-19 18:28:52 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: fix missing debug argument + Adds a missing debug argument + +2009-11-19 23:01:29 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: set the audio-channel positions again, but now in _setup + Readd the code that was reverted for the release. We now set audio-channel + positions if any on the pad caps and not on the templates. + +2009-11-19 22:59:17 +0200 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: remove commented out code that we don't need anymore + +2009-11-17 00:39:50 +0200 Stefan Kost + + * tests/check/generic/states.c: + tests: make state-change test timeout longer if wrappers are enabled + When ladspa || lv2 are enabled one could quickly get to 500 elements. + +2009-11-17 00:37:28 +0200 Stefan Kost + + * gst/real/gstrealaudiodec.c: + realaudiodec: reindent and make valgrind happy + The state-change tests reported access to uninitialized memory. + +2009-11-16 22:07:31 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + ladspa: only use g_return_val_if_fail for checking pre-conditions + g_return_* can be disabled. Still we want to check for failed instance creation. + +2009-11-16 22:05:16 +0200 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: only use g_return_val_if_fail for checking pre-conditions + g_return_* can be disabled. Still we want to check for failed instance creation. + +2009-11-16 21:52:32 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + ladspa: remove left-over comment + +2009-11-16 21:50:20 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + signalprocessor: change _setup to pass whole caps and not just sampling_rate + This allows to get rid of the sampling_rate variable in the base-class. Also now + subclasses can modify the caps to actualy negotiate. This is needed to e.g. set + audio-channel positions. + +2009-11-19 11:36:14 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: fix misinforming debug statement + +2009-11-19 11:14:57 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: ensure writable buffer metadata before setting caps + +2009-11-19 10:31:11 +0000 Tim-Philipp Müller + + * common: + Automatic update of common submodule + From 0702fe1 to 53a2485 + +2009-11-18 20:06:06 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: improving debug messages + Improves debug messages for asfmux + +2009-10-29 08:36:02 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: support for SVQ3 + Adds support for muxing SVQ3 content. Usually this format + has decoder info that must be passed in the 'seqh' field + in the caps. It is also good to add the gama atom to make + quicktime not crash. + Fixes #587922 + +2009-11-18 18:00:37 +0100 Edward Hervey + + * ext/jp2k/gstjp2k.c: + jp2k: Raise rank of encoder to MARGINAL + +2009-11-18 18:00:23 +0100 Edward Hervey + + * ext/gsm/gstgsm.c: + gsm: Raise rank of encoder to PRIMARY + +2009-11-18 18:00:00 +0100 Edward Hervey + + * ext/amrwbenc/gstamrwb.c: + amrwbenc: Raise rank to SECONDARY + +2009-11-18 17:59:21 +0100 Edward Hervey + + * ext/dirac/gstdirac.cc: + dirac: Raise rank of encoder to MARGINAL + We'll prefer to use schroedinger if available, but in case it's not available + we still have the libdirac option + +2009-11-18 17:58:53 +0100 Edward Hervey + + * ext/xvid/gstxvid.c: + xvid: Raise rank of encoder to SECONDARY + +2009-11-18 17:58:39 +0100 Edward Hervey + + * gst/aiff/aiff.c: + aiff: Raise rank of muxer to PRIMARY + +2009-11-18 17:57:59 +0100 Edward Hervey + + * gst/mve/gstmve.c: + mve: Raise rank of muxer to PRIMARY + +2009-11-18 17:57:25 +0100 Edward Hervey + + * gst/asfmux/gstasfmux.c: + asfmux: Raise rank to PRIMARY + +2009-11-18 13:41:36 +0000 Tim-Philipp Müller + + * configure.ac: + configure: bump core requirements to 0.10.25.1 as well + Make implicit requirement explicit. + +2009-11-17 16:31:09 +0100 Yaakov Selkowitz + + * ext/ladspa/Makefile.am: + * ext/lv2/Makefile.am: + signalprocessor: Use correct CFLAGS for the signalprocessor headers in LV2/LADSPA + This makes sure that the headers from the source tree are taken and not + accidentially installed system headers in the case of builddir!=srcdir. + Fixes bug #602161. + +2009-11-18 03:09:18 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnaudiomunge.c: + * gst/dvdspu/Makefile.am: + * gst/dvdspu/gstdvdspu.c: + resindvd, dvdspu: Use new still-frame API from gst-plugins-base + Replace the current custom DVD still-frame events with new event + creation/parsing API from libgstvideo. + +2009-11-18 02:16:03 +0000 Jan Schmidt + + * configure.ac: + bump gst-plugins-base requirement to 0.10.25.1 + +2009-11-18 02:04:19 +0000 Jan Schmidt + + * gst/aiff/Makefile.am: + * gst/aiff/aiff.c: + Revert "aiff: Disable aiff muxer for this release." + This reverts commit 7426be70ffb113f02e37407ea989e60b638b2f00. + Re-enable the aiff muxer now that gst-plugins-bad 0.10.17 is out + and we can rely on gst-plugins-base from git. + +2009-11-17 17:25:14 -0300 Thiago Sousa Santos + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + asfmux: handle streams with different start times + Prevents losing sync when remuxing streams with different + start times. The smallest start time is selected as + the base time and all timestamps are subtracted + from it to get the actual time to be used when + muxing and building indexes + Fixes #586848 + +2009-11-17 09:26:05 -0300 Thiago Sousa Santos + + * gst/qtmux/gstqtmux.c: + qtmux: do not leak a string + Frees a string after use. Also does some code organization + +2009-11-16 14:57:53 -0300 Thiago Sousa Santos + + * gst/qtmux/atoms.c: + qtmux: do not add size to the pointer variable + Do not wrongly add the result of the function to the + pointer to the buffer size. Instead, check the result + to see if the serialization was ok. + Based on a patch by: "Carsten Kroll " + Fixes #602106 + +2009-11-06 10:34:39 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: handle 'late' streams + When muxing streams, some can start later than others. qtmux + now handle this by adding an empty edts entry with the + duration of the 'lateness' to the stream's trak. + It tolerates a stream to be up to 0.1s late. + Fixes #586848 + +2009-11-05 21:35:56 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + qtmux: adds the EDTS and ELTS atoms to atoms.c + These atoms will be useful for signaling streams + that start later in the file. As well for adding + edit lists if needed sometime later. + +2009-11-17 17:59:56 -0800 Michael Smith + + * gst/adpcmdec/adpcmdec.c: + adpcmdec: decode adpcm without explicit length, as found in qt. + +2009-11-15 03:21:56 +0000 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Forward the still frame event downstream + Forward still-frame events downstream so elements like deinterlace + can use them. + +2009-11-14 00:31:29 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Guard against a divide-by-zero error. + https://bugzilla.gnome.org/show_bug.cgi?id=600263 + +2009-11-18 01:46:38 +0000 Jan Schmidt + + * configure.ac: + * win32/common/config.h: + Back to development -> 0.10.17.1 + +2009-11-17 01:53:54 +0000 Jan Schmidt + + * gst-plugins-bad.doap: + Add 0.10.17 release to the doap file + +=== release 0.10.17 === + +2009-11-17 01:25:47 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * win32/common/config.h: + Release 0.10.17 + +2009-11-17 01:13:36 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-11-15 21:46:01 +0200 Stefan Kost + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + signalprocessor: don't set channel positions in template-caps, Fixes #601775 + Revert the changes that added audio positions to template caps. We have an un- + fortunate limitation in core that does not allow to do it. Keep a few things + commented out, so that the channel position can later on be set in setcaps. + +2009-11-13 02:18:31 +0000 Jan Schmidt + + * configure.ac: + * po/ky.po: + * po/lv.po: + * po/sv.po: + * win32/common/config.h: + 0.10.16.3 pre-release + +2009-11-11 10:58:29 +0100 Sebastian Dröge + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celt: Port to 0.7 API + Fixes bug #600724. + +2009-11-11 10:54:25 +0100 Sebastian Dröge + + * configure.ac: + * ext/celt/gstceltenc.c: + celt: Make celt version checks better extensible + +2009-11-09 19:20:21 +0000 Jan Schmidt + + * ChangeLog: + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.16.2 pre-release + +2009-11-09 19:08:49 +0000 Jan Schmidt + + * gst/aiff/Makefile.am: + * gst/aiff/aiff.c: + aiff: Disable aiff muxer for this release. + The aiff muxer relies on GstByteWriter API added after 0.10.25. Disable + it for this release. + Revert this commit after gst-plugins-bad 0.10.17 + +2009-11-09 14:10:20 +0000 Jan Schmidt + + * gst/asfmux/Makefile.am: + asfmux: Uncomment --disable-static flag + For some reason that libtool flags line that prevents building + the static lib was commented out. Reported by Mart Raudsepp on IRC. + +2009-11-09 11:49:15 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Remove useless variables and fix a uninitialized variable compiler warnings + Merged from gst-plugins-base, dfd51aa82a9e1c9924375183796eab70e574a231. + +2009-11-09 11:48:39 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Make sure that running_time->timestamp calculation never becomes negative + Merged from gst-plugins-base, f3653854585864a09d35e037853407332ea6901f. + +2009-11-09 11:48:00 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Use the start time (i.e. timestamp) as the last stop + Using the end time makes it impossible to replace buffers, which is + a big problem for subtitles that could have very long durations. + Merged from gst-plugins-base, 27034be4611231cc55fa3d3e253baa40c6bff41d. + +2009-11-09 11:47:15 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Improve debugging + Merged from gst-plugins-base. + +2009-11-07 12:29:15 +0100 Edward Hervey + + * ext/jp2k/gstjasperenc.c: + jp2kenc: Fix klass (s/Decoder/Encoder/) + +2009-11-06 15:31:26 +0100 Chris Hills + + * sys/dvb/gstdvbsrc.c: + dvbsrc: Add support for DVB-T/DVB-C with DVB API 3.3 + +2009-11-06 11:44:50 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: The text and video duration should only compared as running time too + The end times of the text and video buffers could be different than + their start running time + duration because of different rates. + +2009-11-06 09:16:18 +0100 Sebastian Dröge + + * ext/kate/gstkate.c: + kate: Lower tiger's rank to NONE again + It's not well tested yet and doesn't handle segments and text/video + synchronization properly yet. Autoplugging it will cause failures. + +2009-11-06 07:12:03 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Reset segments on FLUSH_STOP events + +2009-11-05 17:41:53 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Improve debugging + +2009-11-06 00:46:12 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmux.c: + qtmux: Adding some ifs for protection + Adding somes ifs to protect against warning conditions + that might happen when upstream element is not sane + Fixes #600895 + +2009-11-05 13:40:38 -0300 Thiago Santos + + * gst/scaletempo/gstscaletempo.c: + scaletempo: properly update new segments + Scaletempo was missing an update of 'stop' in + new segment parameters when pushing it downstream, + which caused files to end earlier when rate < 1. + Fixes #599903 + Based on patch by: Bastian Hecht + +2009-11-05 23:17:58 +0000 Tim-Philipp Müller + + * ext/timidity/gstwildmidi.c: + timidity: printf format fixes + +2009-11-05 22:03:51 +0000 Tim-Philipp Müller + + * ext/mythtv/gstmythtvsrc.c: + mythtv: printf format fixes + +2009-11-05 21:58:38 +0000 Tim-Philipp Müller + + * ext/libmms/gstmms.c: + mms: printf format fixes + +2009-11-05 21:51:07 +0000 Tim-Philipp Müller + + * ext/kate/gstkateenc.c: + * ext/kate/gstkatespu.c: + kate: printf format fixes + +2009-11-05 21:47:05 +0000 Tim-Philipp Müller + + * ext/resindvd/gstmpegdemux.c: + resindvd: printf format fixes + +2009-11-05 21:45:07 +0000 Tim-Philipp Müller + + * sys/dvb/dvbbasebin.c: + dvbbasebin: printf format fixes + +2009-11-05 21:44:51 +0000 Tim-Philipp Müller + + * ext/directfb/dfbvideosink.c: + directfb: printf format fixes + +2009-11-05 21:44:39 +0000 Tim-Philipp Müller + + * ext/alsaspdif/alsaspdifsink.c: + alsaspdifsink: printf format fixes + +2009-11-05 17:13:36 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Update last stop for the subtitles + +2009-11-05 17:06:18 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Synchronize text and video by taking the running time instead of the stream time + +2009-11-05 16:44:09 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Keep track of the subtitle segments + +2009-11-05 16:41:56 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: If the video segment is not in TIME format don't accept it + +2009-11-04 22:52:19 -0500 Olivier Crête + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + dtmfdetect: Add dtmfdetects to plugins docs + +2009-11-04 22:19:58 -0500 Olivier Crête + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfdetect.c: + * gst/dtmf/gstdtmfdetect.h: + * gst/dtmf/tone_detect.c: + * gst/dtmf/tone_detect.h: + dtmfdetect: Add DTMF tone detector + It looks at raw audio data and emits messages when DTMF is detected. + The dtmf detector is the same Goertzel implementation used in FreeSwitch + and Asterisk. It is in the public domain. + +2009-11-05 13:53:46 +0100 Wim Taymans + + * gst/selector/gstinputselector.c: + Revert "inputselector: use get_caps_reffed()" + This reverts commit 49ec4f796a0e3f88a851708782c853baf4b05724. + We can't use this new function yet. + +2009-11-05 13:29:55 +0100 Wim Taymans + + * gst/selector/gstinputselector.c: + inputselector: use get_caps_reffed() + +2009-11-05 13:17:27 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Drop too late text buffer immediately + Also improve debugging a bit and drop buffers without valid + timestamp or duration because we can't handle them. + +2009-11-05 12:25:25 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Fix race condition that results in a deadlock on shutdown + +2009-11-04 22:21:35 -0500 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Reject empty caps + +2009-11-04 22:21:22 -0500 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Use log level for repeated debug messages + +2009-11-04 20:05:17 -0500 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Allow for any samplerate + +2009-11-04 23:32:07 +0000 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Fix previous commit: ensure we take a ref on the features + +2009-11-04 15:21:50 +0000 Jan Schmidt + + * ext/resindvd/rsnbasesrc.c: + * gst/autoconvert/gstautoconvert.c: + resindvd,autoconvert: Avoid depending on 0.10.26 API + Wait until after the next release to bump the core requirement. + Until then, don't use gst_plugin_feature_list_copy and + gst_pad_peer_get_caps_refed. + +2009-11-02 17:06:53 +0000 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + resindvd: Remove old code and obsolete comments + Remove some disabled code paths and obsolete FIXME comments + +2009-10-14 15:47:27 -0400 Gabriel Millaire + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + celtdec : chain_parse_data : check validity of timestamp, create a new one if needed celtenc : default framesize is 480 setcaps : gets framesize and set caps enc_chain : sets framesize in caps Added frame-size to static caps of audio/x-celt Replaced GST_DEBUG_OBJECT by GST_LOG_OBJECT in enc_chain setcaps: get frame-size from int instead of string setcaps: use default value for frame-size + +2009-11-04 17:13:34 +0100 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegdemux: Fix pointer-differences printout + There is unfortunately no G_*_FORMAT conversion specifier for differences of + pointers in glib, and we can't rely either on all platforms being 64bit. + So let's just cast the difference to a gint and be done with it. + +2009-11-04 13:55:04 +0000 Jan Schmidt + + * po/Makevars: + po: Don't create backup .po files + As well as preventing creation of useless backup files, it works + around a bug in gettext 0.17 on OS/X + +2009-11-04 15:57:40 +0100 Wim Taymans + + * ext/cdaudio/gstcdaudio.c: + cdaudio: fix properties + Fix properties and allow setting the device property. + +2009-11-04 13:11:44 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Return WRONG_STATE from the subtitle chain when flushing + +2009-11-04 13:07:27 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Unlock and free any pending subtitle buffers on FLUSH_START + +2009-11-04 12:50:18 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Synchronize subtitle buffers with the video + Fixes bug #600662. + +2009-11-04 00:21:19 +0200 Stefan Kost + + * gst/selector/gstinputselector.c: + inputselector: also add inline to the proto to fix the build + +2009-11-04 00:19:20 +0200 Stefan Kost + + * ext/zbar/gstzbar.c: + zbar: include quality and check count, fixes #600461 + We report the relative quality in the message and we also use the cache to skip + early detects and doubles. + +2009-11-03 18:14:12 +0100 Edward Hervey + + * gst/selector/gstinputselector.c: + gst: Remove dead assignments and resulting unused variables + Merged from gst-plugins-base, 8cd1b5209b68944e1be56ca8bb69e46d4abb7a34. + +2009-11-03 18:12:21 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Use the same iterate internal links function as in gst-plugins-base + +2009-11-03 18:11:13 +0100 Tim-Philipp Müller + + * gst/selector/gstinputselector.c: + Remove GST_DEBUG_FUNCPTR where they're pointless + There's not much point in using GST_DEBUG_FUNCPTR with GObject + virtual functions such as get_property, set_propery, finalize and + dispose, since they'll never be used by anyone anyway. Saves a + few bytes and possibly a sixteenth of a polar bear. + Merged from gst-plugins-base, 6f4c1ac58341ee189225d313ddfe9ae24a65c88c. + +2009-11-03 18:09:55 +0100 David Schleef + + * gst/selector/gstinputselector.c: + Remove Ronald Bultje from Authors field + Replaced with "GStreamer maintainers + " or just removed, + depending on the number of other authors. + Merged from gst-plugins-base, 0e9bc5125aca546d773ed1002df573dd8e2dc136. + +2009-11-03 18:08:05 +0100 Wim Taymans + + * gst/selector/gstinputselector.c: + inputselector: set output caps before pushing + Set the output caps on the srcpad before pushing the buffer because else core + will do a rather expensive check to see if we can actually accept those caps on + the srcpad. + Merged from gst-plugins-base, bdfb4b46d746ef298fcf44260879c342af4cafa3. + +2009-11-03 18:06:11 +0100 Wim Taymans + + * gst/selector/gstinputselector.c: + inputselector: install an acceptcaps function + Install a custom acceptcaps function instead of using the default expensive + check. We accept whatever downstream accepts so we pass along the acceptcaps + call to the downstream peer. + Merged from gst-plugins-base, 5b72f2adf996739036e8d9b5f91005455d1fface. + +2009-11-03 15:08:02 +0100 Sebastian Dröge + + * ext/kate/gstkatetiger.c: + tiger: Make sure that tiger is not autoplugged by decodebin2 + It's not really a decoder... + +2009-11-03 14:50:15 +0100 Sebastian Dröge + + * ext/kate/gstkate.c: + kate: Change ranks of katedec and tiger to PRIMARY to be autoplugged + +2009-11-03 14:49:44 +0100 Sebastian Dröge + + * ext/kate/gstkatetiger.c: + tiger: Change name of the subtitle sink template and classification + This will make sure that subtitleoverlay can work with tiger. + +2009-11-02 11:33:19 +0000 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + resindvd: Take a copy of the passed plugin features + Clarify the ownership of the internal plugin feature list by making + a copy of any passed list. Avoids crashes when freeing a passed list, + or leaks caused by not freeing any internally built list. + +2009-11-02 10:20:40 +0000 Jan Schmidt + + * ext/resindvd/rsnbasesrc.c: + resindvd: Fix an oversight from updating the copy of basesrc + Plugins need gst-i18n-plugin.h, not gst-i18n-lib.h + +2009-11-01 15:56:54 +0000 Tim-Philipp Müller + + * ext/soundtouch/gstpitch.cc: + pitch: remove pointless gst_element_no_more_pads() + +2009-11-01 23:17:02 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Use gst_base_src_new_seamless_segment() + When switching to a new seamless segment, use the new + gst_base_src_new_seamless_segment() function, because elements can't + send themselves seek events from the streaming thread. + +2009-11-01 23:16:18 +0100 Jan Schmidt + + * ext/resindvd/rsnbasesrc.c: + * ext/resindvd/rsnbasesrc.h: + resindvd: Add gst_base_src_new_seamless_segment() to GstBaseSrc copy + Add a new function to the internal copy of GstBaseSrc for starting a new + seamless segment. + +2009-11-01 19:21:38 +0100 Jan Schmidt + + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + * ext/resindvd/rsnbasesrc.c: + * ext/resindvd/rsnbasesrc.h: + * ext/resindvd/rsnpushsrc.c: + * ext/resindvd/rsnpushsrc.h: + resindvd: Update the base source copy + This breaks seamless segment updates, causing deadlocks, + to be fixed in subsequent commits. + +2009-11-02 02:48:18 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: Fix PGS window parsing + Fix a problem introduced in the last PGS parsing patch by skipping + the window count byte after reading it. + +2009-11-01 20:42:44 +0200 René Stadler + + * gst/aiff/aiffparse.c: + aiff: fix aiffparse debug category variable name + Fixes missing symbol when compiling with debugging, since this is now in sync + with the plugin_init in aiff.c. + +2009-11-01 20:41:03 +0200 René Stadler + + * gst/aiff/aiff.c: + aiff: init plugin debug category + Fixes assertion (or unused variable warning with DISABLE_NLS). + +2009-10-31 19:42:50 +0000 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-aiff.xml: + * gst/aiff/aiffmux.h: + * gst/aiff/aiffparse.h: + aiff: add aiff elements to docs + +2009-10-31 19:37:08 +0000 Tim-Philipp Müller + + * gst/aiff/aiff.c: + * gst/aiff/aiffmux.c: + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + aiff: gratuitious clean-ups: canonicalise function names, structs and defines + +2009-10-31 17:50:54 +0000 Tim-Philipp Müller + + * gst/aiff/Makefile.am: + * gst/aiff/aiff.c: + * gst/aiff/aiffmux.c: + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + aiff: enable new aiff muxer + Fixes #598763 even more. + +2009-10-17 22:58:03 +0100 Robert Swain + + * gst/aiff/aiffmux.c: + * gst/aiff/aiffmux.h: + aiff: add basic AIFF muxer + Fixes #598763. + +2009-10-31 17:25:15 +0000 Tim-Philipp Müller + + * gst/aiff/Makefile.am: + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + aiff: remove unused includes and fix flags order in Makefile.am + Also remove GST_PLUGINS_BASE_LIBS from LIBADD since we don't + need to link against any of the -base libs (we just use a define + from the gstaudio headers). + +2009-10-31 17:20:53 +0000 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/inspect/plugin-aiff.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * gst-plugins-bad.spec.in: + * gst/aiff/Makefile.am: + * gst/aiff/aiffparse.c: + * gst/aiff/aiffparse.h: + * gst/aiffparse/Makefile.am: + * gst/aiffparse/aiffparse.c: + * gst/aiffparse/aiffparse.h: + * po/POTFILES.in: + aiff: rename 'aiffparse' plugin to 'aiff' + +2009-10-08 19:06:26 -0400 Olivier Crête + + * tests/check/elements/rtpmux.c: + tests: Add test for rtpdtmfmux locking + +2009-09-28 19:54:53 -0400 Olivier Crête + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpmux.c: + tests: Add unit test for rtpmux + +2009-09-28 13:36:44 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Don't ignore requested pad name + +2009-10-29 16:42:34 -0700 Michael Smith + + * tests/check/Makefile.am: + tests: Use GST_PLUGINS_BASE_{CFLAGS,LIBS} for camerabin tests. + +2009-10-29 16:34:23 -0700 Michael Smith + + * sys/osxvideo/Makefile.am: + * sys/osxvideo/osxvideoplugin.c: + * sys/osxvideo/osxvideoplugin.m: + osxvideosrc: change a .m file containing only C code to a .c file. Makes building this easier. + +2009-10-27 22:08:42 +0000 Jan Schmidt + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Don't send new-segment with start time == -1 + When sending new-segment to a stream, ensure that there is either a valid + PCR, or else wait until there's a PTS on the stream (dropping packets if + needed) in order to avoid generating an invlaid new-segments event. + https://bugzilla.gnome.org/show_bug.cgi?id=595161 + +2009-10-28 16:22:13 +0200 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: use raw audio/video in unit tests + Removes dependency to ogg/vorbis/theora when running camerabin + unit tests. + +2009-10-28 17:37:44 +0100 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: cleanup push buffer callback + +2009-10-27 14:31:39 -0700 Michael Smith + + * gst/id3tag/id3tag.c: + id3mux: glib doesn't reliably null-terminate wide-character encodings in g_convert, so write the null-terminator separately and explicitly. + +2009-10-18 14:20:07 +0300 Stefan Kost + + * ext/lv2/gstlv2.c: + lv2: fix pad direction for ungrouped ports + Classic copy'n'paste bug. + +2009-10-27 16:37:53 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: fix tag writing bug + g_convert seems to add a single null terminating byte to + the end of the string, even when the output is UTF16, we + force the second 0 byte when copying to the output buffer. + This issue was causing random crashes because it was + assumed that the string resulting from g_convert had + 2 extra bytes, but it has only one. + +2009-10-27 11:51:05 -0700 Michael Smith + + * sys/directsound/gstdirectsoundsrc.c: + * tests/icles/output-selector-test.c: + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs8/gst-plugins-bad.sln: + * win32/vs8/libgstdirectdraw.vcproj: + Remove executable bits from non-executable files. + +2009-10-27 00:22:42 +0000 Jan Schmidt + + * ext/resindvd/rsnstreamselector.c: + * ext/resindvd/rsnstreamselector.h: + resindvd: Remove extra new-segment in rsnstreamselector. Send discont. + All the input pads for the resin stream selectors have the same source, + and receive/send the same segment info, so there's no need to send a + segment when switching and activating a different pad. Removing it makes + on-the-fly audio track switching work properly. + After switching audio track, mark the next buffer discont. + +2009-10-26 20:55:15 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Avoid a deadlock. Improve chapter seek. + Avoid a potential deadlock that happens when a call to + gst_clock_id_wait_async() immediately calls the callback. + Improve previous chapter seeking slightly by avoiding 'segment + start != -1' assertions when there is no previous chapter and + the seek therefore fails. + +2009-10-26 12:19:32 +0000 Jan Schmidt + + * ext/resindvd/rsnstreamselector.c: + resindvd: lower a debug message to log level. + +2009-10-26 11:00:34 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Add a keypress mapping for switching audio track + For debugging purposes, make keys 1-8 switch audio track. + +2009-10-24 12:54:19 +0100 Jan Schmidt + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/autoconvert.c: + autoconvert: Add a simple unit test + Set up an autoconvert with 2 factories, and check that it can switch + between them when the caps change. + +2009-10-24 14:29:33 +0100 Jan Schmidt + + * ext/resindvd/rsndec.c: + resindvd: Set the new initial-identity property on autoconvert + https://bugzilla.gnome.org/show_bug.cgi?id=599469 + +2009-10-24 12:38:14 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Support installing identity as the initial child + Add the 'initial-identity' property, which inserts identity for + at startup for event passing, and replaces it with a new child + when the first buffer (and caps) actually arrives. + https://bugzilla.gnome.org/show_bug.cgi?id=599469 + +2009-10-24 11:18:59 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Cache incoming new segment events and push to children. + Cache incoming new-segment info. + When installing a child element, inform it of the current segment info. + https://bugzilla.gnome.org/show_bug.cgi?id=599469 + +2009-10-26 00:41:55 +0000 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Add some debug in factory caps intersection + +2009-10-24 11:05:47 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Simple fixes. + Free the plugin feature list on dispose. + Output a debug message when downstream returns a fatal flow result + Fix awkward wording in a debug warning. + +2009-10-24 10:27:03 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Gratuitously move GST_OBJECT_LOCK into a macro + Create GST_AUTOCONVERT_LOCK/UNLOCK macros that (for now) just call + GST_OBJECT_LOCK. + +2009-10-15 13:32:32 +0100 Robert Swain + + * ext/faac/gstfaac.c: + faac: Use definitions for default values + Makes changing the defaults easier and more fool-proof in the future. + Fixes #598552 + +2009-10-15 13:17:46 +0100 Robert Swain + + * ext/faac/gstfaac.c: + faac: Change default AAC Profile to Low Complexity (LC) as this is more widely supported + +2009-10-15 13:15:40 +0100 Robert Swain + + * ext/faac/gstfaac.c: + faac: Change the param_spec default value for allowed block types to match the gst_faac_init value of 'normal' as this is better + +2009-10-20 10:57:28 -0300 Thiago Santos + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: check width/height range + Checks if the width/height that are to be set on src pad caps + are within valid range of [16,4096] + +2009-10-16 10:47:32 -0300 Thiago Santos + + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + gppmux: Add support for 3gr6 + Keep track of the chunk durations to be able to add 3gr6 + brand if it is a faststart file and the longest chunk is + smaller than a sec. Implemented according to 3gpp + TS 26.244 v6.4.0 (2005-09) + Fixes #584361 + +2009-10-15 21:11:16 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Only push ftyp later (in faststart mode) + In faststart mode, there is no need to send the ftyp + right at the beginning of the stream. Waiting and sending it + only later (when the moov atom is ready to be sent) provides + us with more information about the stream and we can better + select the compatible brands. + +2009-10-15 17:51:39 -0300 Thiago Santos + + * gst/qtmux/gstqtmux.c: + qtmux: Improve error message + Improve error message when we can't get or estimate the + timestamp/duration of a buffer + +2009-10-26 00:42:16 +0000 Jan Schmidt + + * win32/common/config.h: + win32: Commit bumped version number + +2009-10-24 16:31:26 -0400 Wim Taymans + + * gst/camerabin/camerabingeneral.c: + camerabin: fix build + +2009-10-19 15:54:29 +0300 Teemu Katajisto + + * tests/check/elements/camerabin.c: + camerabin: fix for gstreamer core unit test framework update + Set camerabin state to NULL in the each test case end. + +2009-10-19 14:54:59 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinphotography.c: + * tests/check/elements/camerabin.c: + * tests/examples/camerabin/gst-camera-perf.c: + * tests/examples/camerabin/gst-camera.c: + camerabin: remove abbreviations from the property names. Fixes #573370 (partialy) + Also rename their use in tests and examples. + +2009-10-16 11:50:22 +0300 Stefan Kost + + * gst-libs/gst/interfaces/Makefile.am: + * gst/camerabin/Makefile.am: + * gst/selector/Makefile.am: + build: use gst-glib-gen.mak to fix the glib build rules. + The build rules in glib-gen.mak were using pattern rules in a non save way. + +2009-10-16 11:21:05 +0300 Stefan Kost + + * ext/cog/.gitignore: + * tests/check/elements/.gitignore: + * tests/examples/camerabin/.gitignore: + gitignore: ignore more + +2009-10-15 17:45:00 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: set camerabin to READY before accessing the elements + +2009-10-14 17:42:43 +0300 Stefan Kost + + * ext/timidity/gstwildmidi.c: + wildmidi: use G_DIR_SEPARATOR_S instead of hardcoded slashes + +2009-10-15 17:17:41 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: code cleanups + Align element initialisation. This should be re-thought, g_object_new zeros things already. + Harmonize the element getters for the src/sinks to return what we actualy use. + +2009-10-15 16:41:12 +0300 Tommi Myöhänen + + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinpreview.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: implement video preview creation + Completes preview creation mechanism to be able to provide a preview + image for video clips too. + +2009-10-15 16:15:03 +0300 Stefan Kost + + * configure.ac: + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: set camerabin default sources/sinks like in playbin2. Fixes #574434 + This uses same approach like in playbin, namely checking for user defined + element, auto{audio,video}{sink,src} and finally DEFAULT_{AUDIO,VIDEO}{SRC,SINK} + defines from config.h. + +2009-10-15 15:59:23 +0300 Stefan Kost + + * ext/ladspa/gstladspa.c: + ladspa: don't reference freed pointer when building portnames + +2009-10-08 15:18:04 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/generate_tables.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstlogoinsert.c: + cog: Add color matrix to RGB->YCbCr conversion + +2009-10-08 14:33:28 -0700 David Schleef + + * ext/cog/Makefile.am: + * ext/cog/cogframe.h: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/generate_tables.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstlogoinsert.c: + cog: Add color matrix selection to cogcolorspace + Eventually hook it up to caps via gstvideo + +2009-10-08 13:24:36 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcogcolorspace.c: + cog: Improve RGB<->YCbCr matrixing + YCbCr->RGB now has a 'bits' setting, which controls the number + of bits used for the matrix coefficients. Choices are 6 or 8. + 6 is low quality, but faster. + RGB->YCbCr now works. Always works in 8 bit, since it's the same + speed as 6 bit. + +2009-10-08 13:23:53 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + cog: Fix AYUV unpacking + +2009-10-07 16:30:26 -0700 David Schleef + + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + cog: hacking to improve matrix quality + +2009-10-24 20:33:27 +0200 Edward Hervey + + * configure.ac: + configure.ac: And back to development we go + +=== release 0.10.16 === + +2009-10-23 23:16:45 +0100 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.16 + +2009-10-23 23:15:31 +0100 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-10-23 11:00:53 +0300 Kaj-Michael Lang + + * ext/zbar/gstzbar.c: + Fix start/stop typo + +2009-10-23 10:48:25 +0100 Thomas Green + + * configure.ac: + configure: also build neonhttpsrc with libneon-29.x + Fixes #599332. + +2009-10-23 10:18:12 +0200 Edward Hervey + + * ext/schroedinger/gstschroenc.c: + schroenc: Use guint64 instead of uint64_t. Fixes #599355 + +2009-10-22 14:00:10 +0100 Jan Schmidt + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + Revert "dshowsrcwrapper: cleanup push buffer callback" + gst-plugins-bad is still frozen for general commits. + This reverts commit 2e4131926f2726fe8fee5c39dd9357f14764d0cb. + +2009-10-22 14:26:30 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: cleanup push buffer callback + +2009-10-22 11:43:17 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/Makefile.am: + mpegpsmux: some minor build fixes + CLFAGS -> CFLAGS, and fix order of variables while we're at it. + +2009-10-22 00:50:37 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Take the object lock fewer times + When starting up and creating the list of element factories, only + take the object lock twice instead of 3 times. + +2009-10-21 23:06:56 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Don't hold the object lock when pushing + When pushing out cached events, don't hold the object lock. Avoids + deadlocks starting up DVD playback. + +2009-10-22 11:10:28 +0200 Sebastian Dröge + + * ext/faac/Makefile.am: + faac: Link with libgstbase for GstAdapter + Fixes bug #599272. + +=== release 0.10.15 === + +2009-10-21 17:14:34 +0100 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gmedec.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + release 0.10.15 + +2009-10-21 16:51:09 +0100 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-10-16 14:37:02 -0700 Michael Smith + + * gst/id3tag/id3tag.c: + id3tag: actually write image to APIC tag. + +2009-10-16 12:30:59 +0100 Jan Schmidt + + * configure.ac: + * win32/common/config.h: + 0.10.14.4 pre-release + +2009-10-16 11:53:14 +0100 Jan Schmidt + + * sys/vdpau/Makefile.am: + dist: Include vdpsink.h in the tarball to fix the dist. + +2009-10-16 11:08:05 +0100 Jan Schmidt + + * ext/dts/gstdtsdec.c: + dtsdec: Use gst_buffer_ref/unref, not gst_object_ref/unref + properly fixes: #598274 + +2009-10-16 01:26:10 +0100 Jan Schmidt + + * gst/autoconvert/gstautoconvert.c: + autoconvert: Use gst_pad_peer_accept_caps instead of gst_pad_set_caps. + gst_pad_set_caps on the internal source pad always succeeds, because + caps propagate to the peer with buffers, not immediately. Using + gst_pad_peer_accept_caps properly checks whether the actual + sub-element can accept caps when they change. + https://bugzilla.gnome.org/show_bug.cgi?id=575568 + +2009-10-16 01:09:49 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Re-send audio stream select on re-configuration + When the layout of the audio streams changes, re-send the current + audio stream selection event, in order to trigger switching to the + new stream properly. + https://bugzilla.gnome.org/show_bug.cgi?id=575568 + +2009-10-16 00:50:31 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Fix a small flaw - if any audio stream exists, use it + Don't create a dummy audio stream if only non-AC3 tracks exist. + +2009-10-16 10:16:33 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From 85d1530 to 0702fe1 + +2009-10-15 23:48:53 +0100 Jan Schmidt + + * ChangeLog: + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.14.3 pre-release + +2009-10-14 11:06:46 +0100 Jan Schmidt + + * ext/resindvd/rsndec.c: + resindvd: Fix decoder pad template to allow LPCM + The pad template in the new switching decoder is too restrictive, + preventing the LPCM decoder from being selected. + https://bugzilla.gnome.org/show_bug.cgi?id=575568 + +2009-10-14 10:41:38 +0200 Edward Hervey + + * common: + Automatic update of common submodule + From a3e3ce4 to 85d1530 + +2009-10-13 13:05:50 +0100 Jan Schmidt + + * ext/resindvd/rsnaudiomunge.c: + resindvd: Don't leak a reference to the parent in rsnaudiomunge + Don't leak a reference to the pad parent in the sink pad event handler + in rsnaudiomunge. + https://bugzilla.gnome.org/show_bug.cgi?id=598263 + +2009-10-13 13:04:47 +0100 Jan Schmidt + + * ext/dts/gstdtsdec.c: + dtsdec: Fix reference leak on all input buffers in 'dvd mode' + https://bugzilla.gnome.org/show_bug.cgi?id=598274 + +2009-10-13 16:01:26 +0200 Peter Christoffersen + + * ext/faad/gstfaad.c: + faad2: Don't leak element reference in the setcaps function + Fixes bug #598139. + +2009-10-12 14:27:57 +0100 Jan Schmidt + + * ChangeLog: + * configure.ac: + * po/LINGUAS: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/eu.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.14.2 pre-release + +2009-10-12 12:29:44 +0200 Josep Torra + + * ext/faad/gstfaad.c: + faad: fixes warning in macosx snow leopard + +2009-10-12 09:06:37 +0300 Stefan Kost + + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: ensure segtotal is at least 2 + Not only adjust buffer-time and avoid segtotal=0, but instead ensure segtotal is + atleast 2. Do same change on jacksrc. We could also check the latency and buffer + time configured by the client and adjust buffer-time so that we get to the same + number of segments. + +2009-10-12 00:51:27 +0300 Stefan Kost + + * ext/jack/gstjackaudiosink.c: + jack: don't crash in ringbuffer with SIGFPE on small buffer-times + Jack overrides user-specified latency-time with the one it gets from jack + itself. It also needs to adjust buffer-time somewhat to avoid segtotal being 0 + +2009-10-11 22:10:04 +0300 Stefan Kost + + * ext/metadata/metadataexif.c: + metadata: init variables + metadatamux_exif_get_exif_from_tag() does not neccesarily init the passed + variables. + +2009-10-03 21:35:02 +0300 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessor: use the type define like everywhere else + +2009-10-03 21:31:55 +0300 Stefan Kost + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + signalprocessort: register debug category just once + Previously we were trying to register it for every subclass. + +2009-10-11 14:10:59 +0200 Josep Torra + + * ext/soundtouch/gstbpmdetect.cc: + * ext/soundtouch/gstpitch.cc: + soundtouch: fixes warnings on macosx snow leopard + +2009-10-11 14:02:26 +0200 Josep Torra + + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + schroedinger: fix warnings on macosx snow leopard + +2009-10-11 13:56:43 +0200 Josep Torra + + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + metadata: fix warnings in macosx snow leopard + +2009-10-11 13:51:58 +0200 Josep Torra + + * ext/libmms/gstmms.c: + mms: fixes warning in macosx snow leopard + +2009-10-11 13:46:00 +0200 Josep Torra + + * ext/dirac/gstdiracenc.cc: + dirac: fix warning in macosx snow leopard + +2009-10-11 13:13:56 +0200 Josep Torra + + * gst/nuvdemux/gstnuvdemux.c: + * gst/speed/gstspeed.c: + speed: fix warnings in macosx snow leopard + +2009-10-11 13:07:19 +0200 Josep Torra + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: fix warning in macosx snow leopard + +2009-10-11 12:56:29 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/mpegtspacketizer.c: + mpegdemux: fix warnings in macosx snow leopard + +2009-10-11 11:35:23 +0200 Josep Torra + + * gst/dtmf/gstrtpdtmfdepay.c: + dtmf: fix warnings in macosx snow leopard + +2009-10-11 11:27:08 +0200 Josep Torra + + * gst/amrparse/gstamrparse.c: + * gst/amrparse/gstbaseparse.c: + amrparse: fix warnings in macosx snow leopard + +2009-10-11 11:22:11 +0200 Josep Torra + + * gst/aacparse/gstaacparse.c: + * gst/aacparse/gstbaseparse.c: + aacparse: fix warnings in macosx snow leopard + +2009-10-11 11:14:16 +0200 Josep Torra + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoparse.c: + basevideo: fix warnings in macosx snow leopard + +2009-10-09 13:18:31 +0200 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * gst/dvdspu/gstdvdspu.c: + assrender/dvdspu: Increase ranks to PRIMARY + +2009-10-09 09:19:06 +0200 Sebastian Dröge + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Include SubPicture in the classification + +2009-10-09 09:18:04 +0200 Sebastian Dröge + + * ext/assrender/gstassrender.c: + assrender: Make classification a bit more accurate + Change from "Filter/Effect/Video" to "Mixer/Video/Overlay/Subtitle" + +2009-10-08 19:51:31 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/capssetter.c: + capssetter: add unit test + +2009-10-08 11:00:49 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From 19fa4f3 to a3e3ce4 + +2009-10-07 16:29:08 -0700 David Schleef + + * ext/schroedinger/gstschroparse.c: + schro: remove unused include of liboil.h + +2009-10-07 15:43:22 +0300 Stefan Kost + + * ext/metadata/metadataxmp.c: + metadata: don't copy trailing NULL of strings in xmp metadata + Also useing g_strdup, fixes the malloc <-> g_free mismatch. + +2009-10-07 15:26:12 +0300 Stefan Kost + + * ext/cog/gstcms.c: + * ext/directfb/dfb-example.c: + * ext/libmms/gstmms.c: + * ext/resindvd/resindvdsrc.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/videomeasure/gstvideomeasure_collector.c: + * sys/dvb/gstdvbsrc.c: + * tests/examples/camerabin/gst-camera-perf.c: + build: fprintf, sprintf, sscanf need stdio.h + +2009-09-18 18:45:09 -0400 Olivier Crête + + * tests/check/Makefile.am: + * tests/check/pipelines/.gitignore: + * tests/check/pipelines/mimic.c: + tests: Add test for mimic elements + +2009-09-18 17:47:58 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Remove invalid todo + +2009-10-06 18:36:15 +0200 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: Ignore emphasis on/off bytes, and do fallback string encoding. + For fallback, try ISO 8859-9 encoding if ISO 6637 failed. + Add more debug calls. + +2009-10-05 17:04:28 -0700 David Schleef + + * ext/dirac/gstdiracenc.cc: + dirac: various fixes + - Work around BaseEncoder bug not tracking frame index early. + - Fix conversion of UYVY, YUY2, AYUV to internal format. + +2009-10-05 16:16:34 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: Revert "Call GstBaseVideoEncoder::start/stop during pad [de]activation." + This reverts commit 4c087bcb072dcc9847b11c00123cf93c5e541dcb. + The reverted commit changes the order that set_format() and start() + are called, which is incorrect. The correct order is set_format(), + start(), handle_frame()..., stop() + +2009-10-05 13:33:22 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideoencoder.c: + basevideo: Free frame using utility function + +2009-10-05 21:11:18 +0100 Jan Schmidt + + * ext/dirac/gstdiracenc.cc: + diracenc: Fix caps unlinked negotiation + move caps related code to gst_dirac_enc_set_format, and + use the source pad template to get allowed caps when there is + no peer pad. + +2009-10-05 19:49:06 +0100 Jan Schmidt + + * ext/schroedinger/gstschroenc.c: + schroenc: When the source pad isn't linked, use the pad template + For negotiation, use the source pad pad template when it doesn't + have a peer. + +2009-10-05 15:47:58 +0100 Jan Schmidt + + * gst-libs/gst/video/gstbasevideoutils.c: + basevideo: Fail if caps don't contain a framerate field + Return false from the caps parsing function if there is no framerate + field in the provided caps + +2009-10-05 11:15:03 -0700 Michael Smith + + * gst/id3tag/id3tag.c: + id3mux: Write UTF-16 byte order marker correctly. + +2009-10-05 16:39:37 +0200 Alessandro Decina + + * ext/schroedinger/gstschroenc.c: + schroenc: move caps related code to gst_schro_enc_set_format. + +2009-10-05 15:28:47 +0200 Alessandro Decina + + * configure.ac: + Depend on gtk-x11 explicitly. + Fixes the build on OSX if gtk+-quartz is installed. + +2009-10-05 15:26:15 +0200 Alessandro Decina + + * sys/qtwrapper/audiodecoders.c: + Fix compilation warning with gcc-4.2. + +2009-10-05 11:47:56 +0100 Jan Schmidt + + * tests/check/elements/.gitignore: + Add faac test binary to the git ignores + +2009-10-05 11:47:01 +0100 Jan Schmidt + + * ext/dirac/Makefile.am: + * ext/schroedinger/Makefile.am: + Use GST_CXXFLAGS and GST_CFLAGS to pull in local gst-libs includes. + Move the GST_CXXFLAGS and GST_CFLAGS to the start of the includes set + to pull in the local gst-libs from there first, instead of listing + it explicitly. + +2009-10-05 11:02:16 +0100 Jan Schmidt + + * ext/dirac/Makefile.am: + * ext/schroedinger/Makefile.am: + Fix CFLAGS and LDFLAGS for dirac/schrodinger + Include the local headers and libs before ones outside this + module. + +2009-10-02 16:35:09 -0700 David Schleef + + * ext/dirac/Makefile.am: + * ext/dirac/gstdiracenc.cc: + * gst-libs/gst/video/gstbasevideoencoder.c: + dirac: convert to BaseVideoEncoder + +2009-09-27 14:25:39 -0700 David Schleef + + * ext/cog/Makefile.am: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcms.c: + * ext/cog/gstcms.h: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: hacking + Add RGB to YCbCr matrixing + Add tiny color management system (CMS) for video + Add quality level for colorspace + +2009-09-25 18:14:28 -0700 David Schleef + + * ext/cog/cogvirtframe.c: + cog: reset cache instead of returning NULL + Returning NULL makes things crash. Resetting the cache + makes things run slow. Still an underlying bug somewhere, + but not critical. + +2009-09-23 13:17:54 -0700 David Schleef + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltdec.h: + celtdec: Handle lookahead, discont + +2009-10-02 19:08:21 +0300 Stefan Kost + + * ext/faac/gstfaac.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + * tests/examples/camerabin/gst-camera-perf.c: + build: add missing stdlib include to fix the build + +2009-10-02 14:25:50 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + Add GstBaseVideoDecoder::set_sink_caps vfunc. + +2009-10-02 12:40:02 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideodecoder.c: + Call GstBaseVideoDecoder::start/stop during pad [de]activation. + +2009-10-01 16:06:02 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideoencoder.c: + Don't ignore the value returned from GstBaseVideoEncoder::set_format. + +2009-10-01 16:12:15 +0200 Alessandro Decina + + * ext/schroedinger/gstschroenc.c: + Fix schroenc for refcount change in GstBaseVideoEncoder. + +2009-10-01 15:50:55 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideoencoder.c: + Unref frame->sink_buffer in gst_base_video_encoder_finish_frame + +2009-10-01 16:11:46 +0200 Alessandro Decina + + * ext/schroedinger/gstschroenc.c: + Make gst_schro_enc_handle_frame return GstFlowReturn. + +2009-10-01 16:26:22 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + Make GstBaseVideoEncoder::handle_frame return GstFlowReturn + +2009-10-01 16:24:50 +0200 Alessandro Decina + + * gst-libs/gst/video/gstbasevideoencoder.c: + Call GstBaseVideoEncoder::start/stop during pad [de]activation. + +2009-10-02 12:04:28 +0200 Alessandro Decina + + * gst/videosignal/gstvideodetect.c: + Fix a compiler warning. + +2009-10-02 13:02:31 +0300 Stefan Kost + + * ext/zbar/gstzbar.c: + * ext/zbar/gstzbar.h: + zbar: post a message instead of printing the code to stdout + Docment the message format that we sent. Add a property to turn message sending off. + +2009-10-02 11:23:49 +0300 Stefan Kost + + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-lv2.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xvid.xml: + docs: update plugin doc scan files + +2009-10-02 11:22:48 +0300 Stefan Kost + + * ext/zbar/gstzbar.c: + zbar: cleanups + Use start/stop to manage the cache. Few code cleanups and comments. + +2009-10-02 11:09:11 +0300 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-cog.xml: + * docs/plugins/inspect/plugin-pnm.xml: + * docs/plugins/inspect/plugin-videomeasure.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-zbar.xml: + docs: add zbar plugin + +2009-10-02 10:37:43 +0300 Stefan Kost + + * ext/Makefile.am: + zbar: add new plugin to the build here too + +2009-10-02 10:32:37 +0300 Stefan Kost + + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: keep list sorted + +2009-10-02 07:46:17 +0200 Sebastian Dröge + + * configure.ac: + configure.ac: Fix build system, zbar is no dependency-less plugin + +2009-10-01 23:51:04 +0300 Stefan Kost + + * configure.ac: + * ext/zbar/Makefile.am: + * ext/zbar/gstzbar.c: + * ext/zbar/gstzbar.h: + zbar: wrap zbar library as a image analyzer + zbar is a bar code scanner library. + +2009-10-01 17:19:54 +0100 Christian F.K. Schaller + + * gst-plugins-bad.spec.in: + * win32/MANIFEST: + update spec file with latest changes and remove file from MANIFEST which isn't there any longer + +2009-09-02 15:26:15 +0300 Tommi Myöhänen + + * ext/metadata/metadataxmp.c: + metadata: change XMP location tags to start with capitals + +2009-08-25 10:10:15 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: fix deadlock when error occurs at video recording startup + +2009-08-27 14:35:26 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: handle preview-caps only in image mode and only when they change + This prevents camerabin to create preview pipeline every time when + application re-sets the same caps again. + +2009-08-25 09:35:07 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: don't send multiple EOS events to video pipeline + +2009-08-22 17:09:39 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabinphotography.c: + camerabin: fix scene mode setting + Camerabin caches photography settings, but it didn't take into account + that scene mode setting may change other settings as well. So, config + needs to be read back from device after scene mode is set. + +2009-08-21 09:14:31 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: allow mode parameter setting in NULL state + +2009-08-20 17:55:26 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: allow capture resolution to be set in NULL state + +2009-09-10 15:16:23 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: fix image queue parameter setting + Camerabin incorrectly used G_GUINT64_CONSTANT macro for setting + "max-size-buffers" and "max-size-bytes" properties in image queue, + even when they aren't 64bit integers. + +2009-08-12 11:10:55 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: fix warning with g_object_get and join separate g_object_sets into one + +2009-07-31 11:57:12 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: reset active-pad in output-selector after READY state + Camerabin sets itself to READY state during resolution change. This + operation makes output-selector to forget its currently active pad, + so it must be set again after state change. + +2009-06-29 15:23:25 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: don't reset capsfilters or zoom if error occurs + If an error occurs, application should set pipeline to NULL, and updating + zoom can actually block message handling if video device driver has failed + and video src element supports zooming using photography interface and S_CROP. + +2009-10-01 17:17:03 +0300 René Stadler + + * gst/videomeasure/Makefile.am: + videomeasure: link with libm + +2009-10-01 15:09:27 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + resindvdbin: If no suitable audio decoder is found play the DVD without audio + +2009-10-01 14:54:43 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + resindvdbin: Also post missing element messages if any other element is missing + +2009-10-01 14:52:06 +0200 Sebastian Dröge + + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdbin.c: + resindvdbin: Post missing decoder messages if one is missing + For video this is an error, for audio only a warning. + +2009-10-01 14:40:56 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + resindvdbin: Use the new video decoder + This makes resindvdbin work with other MPEG video decoders than + mpeg2dec, for example the FFMPEG or Fluendo MPEG decoders. + +2009-10-01 14:37:43 +0200 Sebastian Dröge + + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiodec.h: + * ext/resindvd/rsndec.c: + * ext/resindvd/rsndec.h: + resindvdbin: Rename files + +2009-10-01 14:36:23 +0200 Sebastian Dröge + + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiodec.h: + resindvdbin: Refactor audio decoder and add a (MPEG) video decoder + +2009-10-01 13:29:03 +0200 Sebastian Dröge + + * ext/resindvd/rsnaudiodec.c: + rsnaudiodec: Get desired sink caps from the pad template + +2009-10-01 10:54:15 +0200 Sebastian Dröge + + * ext/rsvg/gstrsvgdec.c: + rsvg: Unpremultiply Cairo's ARGB to match GStreamer's + +2009-09-25 12:20:50 +0400 Руслан Ижбулатов + + * gst/videomeasure/gstvideomeasure_collector.c: + Take offset gaps into account. + Prevents measurecollector from crashing when frame numbers are not consecutive. + Fixes bug #596285. + +2009-09-29 15:47:13 +0200 Marc-André Lureau + + * gst/qtmux/atoms.c: + qtmux: fix flags_as_uint to flags[] + +2009-09-30 15:47:17 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + resindvdbin: Create external srcpads from the static pad templates + +2009-09-22 12:16:37 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: Improve PGS parsing + Improve (slightly) the interpretation of PGS set-window blocks + to avoid printing warnings about unused bytes when there are multiple + window definitions. + +2009-09-22 01:16:47 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: Fix rendering and add guards + Fix the rendering when we hit the right hand side of the display + area, by resetting to the correct X coordinate, and add some more + guards against bad PGS data. + +2009-09-08 00:01:28 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + * gst/videosignal/gstvideomark.h: + videosignal: change pattern data type to uint64, add property and message field + Keeps the old uint typed value support for compatibility. + +2009-09-06 05:36:46 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + videosignal: allow pattern-count property to be 0 + +2009-09-04 22:50:34 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + videosignal: add support for packed YUV formats + +2009-09-04 22:30:27 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideodetect.h: + * gst/videosignal/gstvideomark.c: + * gst/videosignal/gstvideomark.h: + videosignal: add support for all planar YUV formats, using gstvideo + +2009-09-06 02:44:05 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + videosignal: add bound checks + +2009-09-04 16:25:05 +0300 René Stadler + + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + videosignal: remove unused macros + +2009-09-26 17:23:02 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + resindvdbin: Use gst_caps_can_intersect() because it's faster + +2009-09-26 17:21:35 +0200 Sebastian Dröge + + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiodec.h: + rsnaudiodec: Use ghost pads and always forward application/x-gst-dvd events immediately + Fixes bug #582779. + +2009-09-26 17:19:32 +0200 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsnaudiodec.c: + resindvdbin: Use autoconvert in rsnaudiodec and build a list of possible decoders + Partially fixes bug #582779. + +2009-09-25 16:54:10 +0200 Mark Nauwelaerts + + * gst/amrparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.h: + * gst/flacparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.h: + baseparse: sync baseparse change + +2009-09-25 17:02:53 +0200 Mark Nauwelaerts + + * gst/aacparse/gstaacparse.c: + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + aacparse: forego (bogus) parsing of already parsed (raw) input + +2009-09-25 11:07:02 +0200 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Use new single iterator for the internally linked pads + This fixes a deadlock and removes some useless code. + +2009-09-25 11:04:01 +0200 Sebastian Dröge + + * ext/resindvd/rsnstreamselector.c: + rsnstreamselector: Use new single object iterator for the internally linked pads + This prevents an ugly deadlock. + +2009-09-25 10:50:31 +0200 Sebastian Dröge + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsnbasesrc.c: + resindvdbin: Don't block the external ghost pads but only their targets + +2009-09-24 11:26:29 -0700 David Schleef + + * ext/cog/Makefile.am: + cog: use BUILT_SOURCES instead of temp library + +2009-09-23 12:32:54 +0200 Alessandro Decina + + * gst/adpcmdec/adpcmdec.c: + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfparse.c: + * gst/h264parse/gsth264parse.c: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mxf/mxfmpeg.c: + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + Fix warnings with gcc 4.0.1. + +2009-09-22 12:25:13 +0100 Tim-Philipp Müller + + * configure.ac: + configure: fix --disable-external again + +2009-09-22 13:44:14 +0300 Stefan Kost + + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + Revert "LV2 preset support." + This reverts commit c95f59cd2dc129899b37fecaa52c89db3d8a5ef8. + +2009-09-22 13:43:57 +0300 Stefan Kost + + * ext/lv2/gstlv2.c: + Revert "Fix property index when setting preset." + This reverts commit 0a6b22b1917af8a89db1981a0f5df3dcee78b1dd. + +2009-09-22 13:23:25 +0300 Stefan Kost + + * ext/cog/Makefile.am: + cog: fix the build + Add a uninstalled convinience libtool library containing the generated sources. + Add that as a dependency to the plugin. + +2009-08-17 17:21:41 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Fix property index when setting preset. + +2009-08-17 17:06:40 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + LV2 preset support. + +2009-09-22 08:11:36 +0200 Lutz Mueller + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmdec.h: + * gst/pnm/gstpnmutils.c: + pnm: Handle ASCII encoded PNM data that is split over multiple buffers + Also: + - unref buffers after gst_buffer_span + - fix scanning of header if header data is split over several buffers + Fixes bug #595700. + +2009-09-21 11:33:50 -0700 David Schleef + + * ext/cog/cogtables.c: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/generate_tables.c: + * ext/cog/gstcogscale.c: + cog: Add quality setting to cogscale + +2009-09-21 09:35:30 -0700 David Schleef + + * ext/cog/Makefile.am: + * ext/cog/cog.orc: + * ext/cog/cogvirtframe.c: + cog: (re-)implement 1/2/4-tap scaling + +2009-09-21 09:30:44 -0700 David Schleef + + * ext/cog/cogframe.h: + * ext/cog/cogvirtframe.c: + cog: Fix the virtual frame line cache + +2009-09-21 09:49:23 -0700 David Schleef + + * ext/celt/gstceltenc.c: + celtenc: VBR requires celt-0.6.0 + +2009-09-21 12:06:55 +0200 Edward Hervey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Specify that psi table is static const. + This avoids re-allocating it every single time we go into it. + Roughly 10% performance boost in overall tsparse processing time. + +2009-09-20 17:53:24 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + Revert "mpegtsparse: use fixed size array rather than dynamically allocating" + This reverts commit ae75b6f3666512887ae526f16a1ad41bbf2517ac. + +2009-09-20 15:30:59 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + mpegtsparse: use fixed size array rather than dynamically allocating + +2009-09-20 15:18:46 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: replace streams hashtable with an array of streams + +2009-09-20 14:08:50 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: unref caps on dispose, reset packet size on _reset + +2009-09-20 13:15:14 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: make sure packetsize is set on caps of buffers + +2009-09-20 12:38:00 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + mpegtsparse: detect packetsize and don't just assume 188 bytes. + +2009-09-19 14:10:28 -0700 David Schleef + + * ext/celt/gstceltenc.c: + * ext/celt/gstceltenc.h: + celtenc: Add complexity, cbr, and max-bitrate properties + +2009-09-19 13:32:19 -0700 David Schleef + + * configure.ac: + * ext/cog/Makefile.am: + * ext/cog/cog.orc: + * ext/cog/cogframe.c: + * ext/cog/cogorc.c: + * ext/cog/cogorc.h: + * ext/cog/cogvirtframe.c: + * ext/cog/gstcogcolorspace.c: + cog: autogenerate code, colorspace improvements + +2009-09-18 20:27:44 -0700 David Schleef + + * ext/cog/cogframe.c: + * ext/cog/cogvirtframe.c: + * ext/cog/gstcog.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogfilter.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogutils.c: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: remove // comments + +2009-09-16 20:39:52 +0200 Edward Hervey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Don't use GstIterator, do change detection ourselves. + Using a GstIterator is slow because we have to create/destroy that + iterator every single time. + We just do the threadsafe cookie check and list iteration ourselves. + +2009-09-15 23:18:43 +0200 Edward Hervey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Avoid type-checking casts in tight loops + +2009-09-15 23:12:33 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtspacketizer: Make next_packet() return an enum. + This avoids calling an extra gst_adapter_available() in a tight loop. + +2009-09-15 23:11:01 +0200 Edward Hervey + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: More branch prediction macros + +2009-09-15 20:49:39 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtsparse.c: + mpegtspacketizer: Spread branch prediction macros + +2009-09-15 19:16:36 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse/mpegtspacketizer: Register and use GQuark for structures. + +2009-09-15 18:57:25 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtspacketizer: Initialize debugging in _get_type + There's no need for an extra function since all debuggin will require + a MpegTSPacketizer which means that the GType will be created, therefore + move the debug category initialization there. + +2009-09-15 23:09:21 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtspacketizer: memset structure instead of individually setting fields to 0 + +2009-09-15 23:08:13 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtspacketizer: Remove g_return_if_fail + It's overkill for code only used by one element. + +2009-09-15 19:44:46 +0200 Edward Hervey + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtsparse.c: + mpegtspacketizer/parse: Don't use gst_structure_to_string() for debugging. + There's GST_PTR_FORMAT for that, and too bad for the systems that don't have + support for that. It just costs too much cpu. + +2009-09-15 19:00:30 +0200 Edward Hervey + + * gst/mpegtsparse/.gitignore: + * gst/mpegtsparse/Makefile.am: + * gst/mpegtsparse/gstmpegdesc.c: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtspacketizer.h: + * gst/mpegtsparse/mpegtsparse.c: + * gst/mpegtsparse/mpegtsparse.h: + * gst/mpegtsparse/mpegtsparsemarshal.list: + gst: Remove dead mpegtsparse directory. + This was seriously confusing. Also, the code is in gst/mpegdemux/ + +2009-09-18 14:25:49 -0700 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/cog/Makefile.am: + * ext/cog/cog.h: + * ext/cog/cogframe.c: + * ext/cog/cogutils.h: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcog.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogfilter.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcogutils.c: + * ext/cog/gstcogutils.h: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + cog: fixes to make cog work inside -bad + +2009-09-18 15:06:57 -0700 David Schleef + + * gst/videomeasure/Makefile.am: + videomeasure: fix line endings + +2009-09-18 15:06:36 -0700 David Schleef + + * gst/videomeasure/Makefile.am: + videomeasure: fix distcheck + +2009-09-17 18:16:35 -0700 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: quiet debugging message in last commit + +2009-09-17 18:15:28 -0700 David Schleef + + * ext/schroedinger/gstschroenc.c: + schroenc: Keep track of granule offset + +2009-08-31 10:36:46 -0700 David Schleef + + * configure.ac: + * ext/cog/Makefile.am: + * ext/cog/cogframe.c: + * ext/cog/cogframe.h: + * ext/cog/cogorc.c: + * ext/cog/cogorc.h: + * ext/cog/cogvirtframe.c: + * ext/cog/cogvirtframe.h: + * ext/cog/gstcog.c: + * ext/cog/gstcogcolorspace.c: + * ext/cog/gstcogdownsample.c: + * ext/cog/gstcogfilter.c: + * ext/cog/gstcogmse.c: + * ext/cog/gstcogscale.c: + * ext/cog/gstcogutils.c: + * ext/cog/gstcogutils.h: + * ext/cog/gstcolorconvert.c: + * ext/cog/gstlogoinsert.c: + Copy cog plugin and video library from cog project + +2009-09-17 16:54:57 -0700 David Schleef + + * ext/schroedinger/gstschrodec.c: + schrodec: Fix resync bug due to adapter API change + gst_adapter_masked_scan_uint32() changed slightly from when + this element was in Schroedinger. Oops. + +2009-09-17 16:57:16 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: debug at new segment events + +2009-09-17 16:54:14 -0700 David Schleef + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: Set DISCONT on buffers + +2009-09-17 10:50:40 -0700 David Schleef + + * gst-libs/gst/video/gstbasevideodecoder.c: + basevideo: Add a warning + +2009-09-17 10:49:13 -0700 David Schleef + + * ext/celt/gstceltenc.c: + celtenc: don't limit bit rate + +2009-09-17 09:38:02 +0200 Lutz Mueller + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + pnm: Add ASCII decoding support + ...and make the ASCII output of the encoder a bit more pretty. + Fixes bug #595409. + +2009-09-17 09:35:00 +0200 Sebastian Dröge + + * configure.ac: + pnm: Remove the experimental status from the pnm plugin + +2009-08-14 18:08:56 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + More tolerate port group support, plugin cleanup. + Gracefully handle plugins with illegal groups that contain no symbol by + treating ports in that group normally (i.e. as if they weren't part of a + group). The port groups spec mandates that groups have a valid unique + symbol, but plugins aren't perfect... + Make (conceptually) static plugin variables actually (C) static, + and clean up SLV2 related things with a GCC shared library destructor, + if GCC is in use. + +2009-08-12 01:07:57 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Make mono warning visible in public documentation. + +2009-08-12 01:03:32 -0400 Dave Robillard + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + Multi-channel support with channel positions. + This queries port roles from the LV2 data and converts it into GStreamer + channel positions. This should allow any type of multi-channel plugin + (including beyond stereo, e.g. surround) to work fine in GStreamer, + and with elements that require channel positions to be explicitly stated. + +2009-08-10 23:12:24 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Add documentation for LV2 element. + +2009-08-10 23:04:47 -0400 Dave Robillard + + * ext/ladspa/gstladspa.c: + Fix typo in LADSPA element documentation. + +2009-07-21 15:45:06 -0400 Dave Robillard + + * configure.ac: + Bump SLV2 dependency to 0.6.6. + +2009-07-10 21:52:30 -0400 Dave Robillard + + * ext/lv2/calf-lv2-port-groups.patch: + * ext/lv2/swh-lv2-port-groups.patch: + Add swh and calf LV2 port group patches. + +2009-07-03 20:00:11 -0400 Dave Robillard + + * ext/ladspa/gstladspa.c: + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + Working multi-channel pads for LV2 plugins. + +2009-06-27 00:25:38 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Allocate a static predicate for pg:inGroup. + +2009-06-25 17:25:52 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Only allocate lv2:inPlaceBroken predicate once. + +2009-06-25 15:10:24 -0400 Dave Robillard + + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + Eliminate use of static mono pad template. + +2009-06-25 15:07:05 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Separate port discovery from pad template creation. + This first counts ports (using the builtin slv2 functions to do so + rather than manually as before), then creates descriptors for each port + and finds all port groups. Only then are pad templates created (towards + using group information for creating multi-channel pads). + +2009-06-25 12:34:03 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Use silly glib types :). + +2009-06-20 19:52:26 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + Query and store port group information. + Replace port index arrays with a struct for holding more information + than just indices (e.g. groups). + +2009-05-25 22:15:56 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + Working basic LV2 signal processing. + LV2 plugins, short of any surprises, should work with the same basic + functionality as LADSPA plugins. + +2009-05-25 20:43:10 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Set class inPlaceBroken property. + +2009-09-17 09:43:37 +0300 Stefan Kost + + * ext/ivorbis/vorbisdec.c: + docs: fix example and mention difference to vorbisdec + +2009-09-02 11:11:20 +0100 Jan Schmidt + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpau: Fix bogus check before unreffing + +2009-09-01 19:48:43 +0100 Jan Schmidt + + * configure.ac: + vdpau: Fix pkg-config test + If the pkg-config check doesn't succeed, test with the old method + instead of bailing out of configure with an error. + +2009-08-20 00:16:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: handle pixel-aspect-ratio better + the implementation is not entirely correct since we assume that the sink + element's pixel-aspect-ratio is 1/1 + +2009-08-19 22:52:34 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: remove par from caps since we don't handle it yet + +2009-08-19 22:40:48 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + vdpauvideopostprocess: don't remove interlaced flag in video_to_output_caps() + +2009-08-19 22:23:17 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add inverse-telecine property + +2009-08-19 22:03:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: fix noise-reduction property getter + +2009-08-19 22:02:19 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add sharpening property + +2009-08-17 23:42:50 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.h: + vdpau: remove gst_vdp_device_new from header + +2009-08-17 23:42:21 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + vdpausink: fix error handling if gst_vdp_get_device returns NULL + +2009-08-17 23:39:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + vdpau: add back vdpausink and vdpauvideopostprocess + +2009-08-17 23:39:14 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + vdpdevice: fix error handling and threadsafety + return NULL incase of initalization errors and guard hashtable access with a mutex + +2009-07-17 22:50:18 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: get correct number of needed frames if we're doing noise reduction + +2009-07-17 22:48:23 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: small indent fix + +2009-07-15 20:18:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: fix gst_byte_reader_masked_scan_uint32 usage + +2009-07-04 19:48:42 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvidepostprocess: remove boolean noise-reduction property + Use the float one to determine if we should enable noise reduction or not + +2009-07-04 15:46:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add support for noise reduction + +2009-07-04 13:59:36 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + vdpauvideopostprocess: add support for deinterlacing + The code is roughly modeled after the deinterlace plugin + +2009-07-02 17:11:10 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpsink.h: + vdpausink: add myself to copyright + +2009-07-02 14:01:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideopostprocess.c: + vdpauvideopostprocess: s/gst_vdp_vpp_set_caps/gst_vdp_vpp_sink_setcaps + +2009-07-01 23:12:20 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: use gst_byte_reader_masked_scan_uint32 instead of our own version + +2009-07-01 00:20:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + vdpau: use G_N_ELEMENTS instead of hardcoding array sizes + +2009-07-01 00:13:14 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + vdpau: use G_N_ELEMENTS instead of NULL terminating array + +2009-06-30 23:55:13 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpoutputbuffer.c: + * sys/vdpau/gstvdpoutputbuffer.h: + * sys/vdpau/gstvdpsink.c: + * sys/vdpau/gstvdpsink.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideopostprocess.c: + * sys/vdpau/gstvdpvideopostprocess.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + vdpau: add new vdpausink and vdpauvideopostprocess elements + vdpausink is as the name implies a sink which takes vide/x-vdpau-output buffers + and outputs it to the screen. + vdpauvideopostprocess is an element which takes video/x-vdpau-video buffers and + outputs video/x-vdpau-output buffers. The element can also do things like + deinterlacing and other postprocessing but this is not implemented yet. + +2009-06-29 22:50:42 +0200 Carl-Anton Ingmarsson + + * configure.ac: + vdpau: check for vdpau with pkg-config first + +2009-06-24 17:51:58 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideoyuv.c: + vdpau: split gst_vdp_mpeg_dec_reset into start and stop + +2009-06-24 11:36:28 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: don't put the GstVdpDevice in the caps + +2009-06-23 23:03:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: make GstVdpVideoYUV implement pad_alloc + also change GstVdpMpegDec and GstVdpYUVVideo to make use of this + +2009-06-23 17:26:22 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + vdpau: add support for YUY2 + +2009-06-23 17:16:25 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + vdpau: add support for UYVY + +2009-06-23 16:57:45 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: factor out common caps calculation and put it in gstvdputils.[ch] + +2009-06-22 23:25:55 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdputils.c: + * sys/vdpau/gstvdputils.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpyuvvideo.c: + vdpau: refactor GstVdpVideoYUV and GstVdpYUVVideo + +2009-06-22 22:17:48 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: make GstVdpYUVVideo inherit from GstBaseTransform + +2009-06-22 11:00:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideoyuv.c: + vdpau: fixup some debug prints + +2009-06-22 10:57:25 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + vdpau: make GstVdpVideoYUV inherit from GstBaseTransform + +2009-09-16 08:22:19 +0200 Lutz Mueller + + * gst/pnm/gstpnm.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + * gst/pnm/gstpnmutils.c: + * gst/pnm/gstpnmutils.h: + pnm: Support ASCII format for encoding and handle unsupported formats better in the decoder + Fixes bug #595215. + +2009-09-15 23:32:06 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: Handle base_time when sending segment updates. + Don't send bogus new segment update events when the stream doesn't + start at 0. Fixes broken seeking in some files. + Fixes: #594812 + +2009-08-18 13:35:59 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/gstsectionfilter.c: + mpegtsdemux, mpegtsparse: max section length is 4093 not 1021. + +2009-08-18 01:08:03 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: add pad for DVB Subtitling pads + +2009-09-13 19:39:59 +0200 Sebastian Dröge + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + pnm: Use correct rowstride for 8 bit grayscale too + +2009-09-13 19:33:57 +0200 Sebastian Dröge + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + pnm: Correctly convert from/to GStreamer rowstride + +2009-09-13 19:17:15 +0200 Sebastian Dröge + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + pnm: Fix caps + 8 bit grayscale caps have no endianness field and the caps name + of GST_VIDEO_CAPS_RGB is still "video/x-raw-rgb" and not GST_VIDEO_CAPS_RGB. + +2009-09-13 19:13:24 +0200 Lutz Mueller + + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmenc.c: + * gst/pnm/gstpnmenc.h: + pnm: Lots of bugfixes + (1) Fix examples. + (2) Add support for gray images. + (3) Remove "use_fixed_caps" which doesn't seem to be useful. + (4) Do proper negotiation in the encoder. + (5) Fix memleak in the setcaps function in the encoder. + (6) Keep a link to the src pad in the encoder now that we need it more often. + Partially fixes bug #164870. + +2009-09-12 18:57:05 +0100 Christian Schaller + + * gst/h264parse/gsth264parse.c: + Fix factory information for h264parse, add missing Video + +2009-09-11 14:38:46 -0700 Michael Smith + + * gst/aiffparse/aiffparse.c: + aiffparse: Fix an off-by-8 bug in parsing the AIFF data size. + This led to overreading by 8 bytes, giving an audible glitch at the end of + a file (except when the file didn't have a trailing chunk of some sort). + +2009-09-08 20:52:09 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Use GST_TIME_FORMAT in debug statement. + +2009-09-08 09:20:00 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Reset stream->last_time when flushing. + This fixes naive seeking a tiny bit (by basically hinting at _data_cb + that it shouldn't expect the incoming buffers to be the ones just after + the previous ones). + Without this, seeking by more than 10mins forward would just end up in an + endless loop. + +2009-09-08 09:18:42 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Sprinkle branch prediction macros. + +2009-09-10 12:12:26 -0700 Michael Smith + + * gst/id3tag/id3tag.c: + id3tag: When writing id3v2.3, do not use UTF-8. + UTF-8 is only permitted in v2.4. So instead use ISO-8859-1 for ascii-only + strings, and UTF16 otherwise. Also, do not null terminate strings in text + frames, except where required. These two allow windows media player to play + (and correctly read tags) files created by id3mux. + +2009-07-23 16:13:28 -0700 Michael Smith + + * gst/adpcmdec/adpcmdec.c: + adpcmdec: complete ima adpcm support. + +2009-07-23 11:59:39 -0700 Michael Smith + + * gst/adpcmdec/adpcmdec.c: + adpcmdec: checkpoint for incomplete IMA ADPCM support. + +2009-09-10 12:02:21 +0200 Sebastian Dröge + + * gst/videomeasure/gstvideomeasure.c: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_ssim.c: + videomeasure: Fix format strings and include correct i18n header + +2009-09-10 11:58:02 +0200 Sebastian Dröge + + * gst/videomeasure/gstvideomeasure.c: + * gst/videomeasure/gstvideomeasure.h: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_collector.h: + * gst/videomeasure/gstvideomeasure_ssim.c: + * gst/videomeasure/gstvideomeasure_ssim.h: + videomeasure: Fix indention, line endings and use LRN's real name + +2009-09-09 19:14:27 +0400 Руслан Ижбулатов + + * configure.ac: + * gst/videomeasure/Makefile.am: + * gst/videomeasure/gstvideomeasure.c: + * gst/videomeasure/gstvideomeasure.h: + * gst/videomeasure/gstvideomeasure_collector.c: + * gst/videomeasure/gstvideomeasure_collector.h: + * gst/videomeasure/gstvideomeasure_ssim.c: + * gst/videomeasure/gstvideomeasure_ssim.h: + videomeasure: Initial version of videomeasure plugin + This plugin contains elements for calculating metrics of video streams, intended for objective video codec comparison. + At the moment only SSIM metric is implemented (why would you need anything else anyway?). + Also contains a helper videomeasure_collector element that collects measurement events and outputs them into a file (to be used with gst-launch). + Other metrics may be implemented in the future along with a base class for all measurers. + Fixes bug #594321. + +2009-09-10 08:54:23 +0200 Sebastian Dröge + + * configure.ac: + pnm: Mark PNM plugin as experimental because it doesn't work well yet + +2009-09-10 08:53:46 +0200 Sebastian Dröge + + * gst/pnm/gstpnmdec.c: + pnmdec: Partially fix negotiation issues and refcount leaks + +2009-09-10 08:48:12 +0200 Sebastian Dröge + + * gst/pnm/Makefile.am: + * gst/pnm/gstpnmenc.c: + pnmenc: Fix negotiation issues and refcount leaks + +2009-09-10 08:29:06 +0200 Sebastian Dröge + + * gst/pnm/gstpnm.c: + pnm: Fix typefinder caps + +2009-09-10 08:23:22 +0200 Lutz Mueller + + * configure.ac: + * gst/pnm/Makefile.am: + * gst/pnm/gstpnm.c: + * gst/pnm/gstpnmdec.c: + * gst/pnm/gstpnmdec.h: + * gst/pnm/gstpnmenc.c: + * gst/pnm/gstpnmenc.h: + * gst/pnm/gstpnmutils.c: + * gst/pnm/gstpnmutils.h: + pnm: Add PNM encoder and decoder elements + Fixes bug #164870. + +2009-09-10 07:56:25 +0200 Sebastian Dröge + + * ext/ladspa/Makefile.am: + * ext/lv2/Makefile.am: + * gst-libs/gst/signalprocessor/Makefile.am: + signalprocessor: Fix various build/dist issues + Install the headers, version the library with @GST_MAJORMINOR@, + add all required libraries to _LIBADD instead of _LDFLAGS, + and add GST_*_LDFLAGS to _LDFLAGS. + Fixes bug #594715. + +2009-09-09 14:34:03 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowvideosrc: cache device caps + +2009-09-09 12:41:17 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * win32/vs9/libgstdshowsrcwrapper.vcproj: + dshowvideosrc: use IEnumMediaTypes when IAMStreamConfig is not usable + For some device drivers IAMStreamConfig is not supported. + But EnumMediatypes does not provide range size and framerate. + +2009-09-06 11:50:39 +0200 Mark Nauwelaerts + + * tests/check/Makefile.am: + * tests/check/elements/faac.c: + faac: add unit test + +2009-09-08 22:24:12 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: add some debug statements for discrepancy cases and plug memleak + +2009-09-06 11:49:17 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: sprinkle some more G_(UN)LIKELY + +2009-09-06 11:44:27 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: enforce sync between wrapper view of data and encoder returned data + +2009-09-05 21:35:35 +0200 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: add faac to documentation + +2009-09-05 21:35:19 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: add some documentation + +2009-08-31 19:31:57 +0200 Havard Graff + + * gst/selector/gstoutputselector.c: + outputselector: make GST_FORMAT_TIME the default segment format + +2009-08-31 19:33:50 +0200 Havard Graff + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: remove unused variable to fix compiler warning + Fixes bug #594278. + +2009-09-08 15:16:44 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Fix usage of __always_inline__ attribute + This attribute can't be used for function declarations because + it needs the function body. Instead of a forward declaration of + functions, move the function itself above it's first use. + Fixes bug #594489 and compilation with gcc 4.3 and earlier. + +2009-09-07 17:33:15 +0200 Marc-André Lureau + + * ext/assrender/gstassrender.c: + assrender: Fix compilation with libass = 0.9.6 + Fixes bug #594382. + +2009-09-07 19:08:08 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: fix aspect-ratio parsing in VO + +2009-09-07 16:20:23 +0200 Mark Nauwelaerts + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: also consider user_data pieces when parsing VO(S) + +2009-09-07 16:44:52 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * win32/vs9/gst-plugins-bad.sln: + * win32/vs9/libgstdshowsrcwrapper.vcproj: + dshowsrcwrapper: add support both Unicode and MBCS + +2009-09-07 15:44:16 +0200 Julien Isorce + + * win32/vs8/gst-plugins-bad.sln: + * win32/vs8/libdshowsrcwrapper.vcproj: + * win32/vs9/gst-plugins-bad.sln: + * win32/vs9/libgstdshowsrcwrapper.vcproj: + dshowsrcwrapper: upgrade frozen build to vs9 + +2009-09-07 15:21:28 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + dshowsrcwrapper: indent dshowsrcwrapper.cpp + +2009-09-07 15:12:55 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + Revert "dshowsrcwrapper: remove unused extern C" + This reverts commit d3c88d637d7e7d60f1437ccd3dfc23b37e2a320e. + Reverting this since the entry point isn't found because of + C++ build. + +2009-09-07 10:59:53 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowaudiosrc.h: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + dshowsrcwrapper: indent + +2009-09-07 10:51:28 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: convert line ended characters to LF + +2009-09-07 10:38:39 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + dshowsrcwrapper: remove unused extern C + +2009-09-07 10:31:54 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + dshowsrcwrapper: go back to previous mode + +2009-09-05 10:22:52 +0200 Sebastian Dröge + + * common: + Automatic update of common submodule + From 00a859e to 19fa4f3 + +2009-09-04 19:17:06 +0200 Sebastian Dröge + + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + wildmidi/timidity: Add audio/riff-midi to the src pad template caps + +2009-09-04 17:32:34 +0200 Wim Taymans + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + siren: fix setting caps on the output pad + Also set the caps on the output pad when the input buffers don't have caps. + +2009-09-04 17:27:52 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + * ext/timidity/gstwildmidi.h: + wildmidi: cleanups and fix seeking + Remove time_per_frame, it's too inaccurate. + Fix convert for -1 values. + Use scaling to convert samples to time. + Fix segment handling. + Fix seeking. + Fix buffer clipping (not yet enabled) + Protect the WildMidi library with the object lock to avoid races when changing + properties. + Fix offsets on output buffers, for raw audio the offset contains the sample + position not byte position. + Add better DISCONT handling. + Fixes #519001 + +2009-09-04 16:29:53 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowvideosrc: move VIDEO_STREAM_CONFIG_CAPS to GstCapturePinMediaType + +2009-09-04 14:11:33 +0100 christian schaller + + Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-09-04 14:10:55 +0100 christian schaller + + * gst-plugins-bad.spec.in: + Update spec file + +2009-09-04 13:13:39 +0200 Josep Torra + + * ext/neon/gstneonhttpsrc.c: + neonhttpsrc: handle all redirection http status codes + +2009-09-04 12:53:36 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: in seeking use a factor for SCR interpolation + Fixes seeking on clips where PTS are unalignded with SCR. + +2009-09-04 12:40:40 +0200 Wim Taymans + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirendec.h: + sirendec: rewrite sirendec + Add setcaps and event functions. + Add state change functions to clean variables. + Use adapter. + Add timestamps and duration on outgoing buffers. + Add DISCONT handling. + +2009-09-04 12:40:07 +0200 Wim Taymans + + * gst/siren/gstsirenenc.c: + sirenenc: cleanups + +2009-09-04 12:35:31 +0200 Josep Torra + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: set specific caps for lpcm in private stream + In the clips that I've found those streams, the lpcm header is + different than the DVD case. + Then the decoder need to know this in order to be able parse it. + +2009-09-04 12:30:18 +0200 Josep Torra + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: added autodetect of packet size and removed m2ts mode property + +2009-09-04 12:08:45 +0200 Julien Isorce + + Merge branch 'master' of ssh://cap@git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-09-04 12:08:02 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + dshowvideosrc: move default video caps into GstCapturePinMediaType + +2009-09-04 12:02:18 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: some more handling of VC1 and EAC3 + If the PMT have the register descriptor HDMV assume EAC3 + For VC1 make the code more aligned to RP227. + +2009-07-16 10:06:36 +0100 Vincent Penquerc'h + + * gst/dvdspu/gstspu-vobsub-render.c: + Try to fit subtitles within the video frame when they're too large + +2009-09-01 21:30:35 -0400 Olivier Crête + + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/gstpcapparse.h: + pcapparse: Set the GStreamer timestamp according to the pcap timestamps + +2009-09-03 19:04:33 +0200 Wim Taymans + + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + sirenenc: fix events and caps + Add an event function that clears the adapter. + Add a setcaps function to configure caps on the srcpad. Remove the instance + variable for the caps. + +2009-09-03 18:43:26 +0200 Wim Taymans + + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + sirenenc: fix timestamping + Handle DISCONT and reset adapter. + code cleanups. + Put timestamps and discont flags on output buffers. + Fix error handling. + Remove bogus object locks, it's all protected by the STREAM_LOCK. + +2009-09-03 17:49:41 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowvideosrc: factorize dshow format to gst caps conversion + +2009-09-03 17:20:47 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + dshowsrcwrapper: remove cplusplus condition + +2009-09-03 17:12:26 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + dshowvideosrc: factorize dshow video format parsing + +2009-09-03 15:45:06 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: If stream type is AC3 and no EAC3 descriptor is found assume AC3 + +2009-09-03 15:40:14 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Implement EAC3 handling according some ATSC specs. + Fixes bug #594030. + +2009-09-03 00:28:16 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/inspect/plugin-xdgmime.xml: + * gst-plugins-bad.spec.in: + * gst/xdgmime/Makefile.am: + * gst/xdgmime/gstxdgmime.c: + xdgmime: move xdg typefinder to the other typefinders in -base + Remove the xdgmime plugin which now barely contains any code at all + and move the functionality into gst-plugins-base next to the other + typefinders. + +2009-09-02 13:35:02 +0100 Tim-Philipp Müller + + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegsmux, mpegpsmux: fix unused variable warning with the debugging system in core disabled + +2009-09-01 12:41:19 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Stream type 0x81 is normal AC3, not EAC3 + Not sure what the stream type for EAC3 is though. + Fixes bug #593059. + +2009-08-30 23:07:30 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: refactor slightly and remove superfluous code + +2009-08-30 23:06:24 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + faac: freshen up caps negotiation + Perform sink and src caps negotiation during caps negotation, + and also cater for re-negotiation. + +2009-08-30 23:00:35 +0200 Mark Nauwelaerts + + * ext/faac/gstfaac.c: + * ext/faac/gstfaac.h: + faac: rewrite data caching and timestamp handling + Also fixes #593348. + +2009-08-31 18:55:52 +0200 Peter Kjellerstedt + + * configure.ac: + configure: A little clean up. + Reorder the list of AM_CONDITIONAL()s used when --disable-external is + specified to match the actual order of the plug-ins earlier in the file. + +2009-08-31 18:49:16 +0200 Peter Kjellerstedt + + * configure.ac: + configure: Allow --disable-external to be specified again. + +2009-08-31 18:47:44 +0200 Peter Kjellerstedt + + * configure.ac: + configure: Allow --disable-kate to actually be specified. + +2009-08-31 18:41:59 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: cleanup error handler + +2009-08-31 18:34:03 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: free the adapter + +2009-08-31 18:32:07 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: cleanups + +2009-08-31 18:21:34 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: allow for push mode operation + Fixes #586929 + +2009-08-31 18:20:00 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + * ext/timidity/gstwildmidi.h: + wildmidi: use state machine + Use a state machine to keep track of the current state. + Add chain function and event function on the sinkpad. + Remove some unused code. + +2009-08-31 17:38:28 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: remove useless function calls + +2009-08-31 17:33:32 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + * ext/timidity/gstwildmidi.h: + wildmidi: set caps on pad + Set the caps on the pad and use those caps instead of keeping a separate caps + pointer around. + Fix some whitespace. + +2009-08-31 17:27:39 +0200 Wim Taymans + + * ext/timidity/gstwildmidi.c: + wildmidi: fix whitespace + +2009-08-31 16:07:03 +0100 Tim-Philipp Müller + + * ext/kate/Makefile.am: + kate: fix typo in Makefile.am + GST_PLUGIN_BASE_LIBS should be GST_PLUGINS_BASE_LIBS. Fixes #593683. + +2009-08-31 13:31:16 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flacparse.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegpsmux.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rsvg.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + docs: update plugin docs for git version + +2009-08-31 13:14:02 +0100 Tim-Philipp Müller + + * ext/gme/gstgme.c: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/metadata.c: + * ext/mplex/gstmplex.cc: + * ext/rsvg/gstrsvgdec.c: + * gst/aiffparse/aiffparse.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mxf/mxfmux.c: + * gst/nuvdemux/gstnuvdemux.c: + GstAdapter is not a GstObject and should be freed with g_object_unref() + +2009-08-31 13:00:04 +0100 Tim-Philipp Müller + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: use an old-fashioned array instead of GPtrArray for mux->programs + Using GPtrArray for a fixed-sized array is a bit pointless and makes + for ugly code. + +2009-08-31 10:48:35 +0200 Sebastian Dröge + + * gst/mpegpsmux/mpegpsmux_aac.c: + * gst/mpegpsmux/mpegpsmux_aac.h: + * gst/mpegpsmux/mpegpsmux_h264.c: + * gst/mpegpsmux/mpegpsmux_h264.h: + mpegpsmux: Add missing files to fix compilation + Fixes bug #593625. + +2009-08-10 01:14:19 +0800 Lin YANG + + * examples/mpts_test2.c: + mpegtsmux: Test program of mpts support is added + +2009-07-22 20:27:36 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: Minor fixes + +2009-07-22 20:25:42 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: mux->programs: use GPrtArray instead of GArray + +2009-07-11 19:29:53 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: mpegtsmux_collected(): calculate PCR for programs + +2009-07-11 19:15:12 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + mpegtsmux: mpegtsmux_create_streams(): create multi streams + +2009-07-11 19:13:23 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: MpetTsPadData: add prog_id and ref to its program + +2009-07-11 19:09:17 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: Extend mux->program to a GArray programs + +2009-07-11 17:44:54 +0800 Lin YANG + + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegtsmux/mpegtsmux.h: + mpegtsmux: Add new property prog-map to the muxer + +2009-08-18 12:14:46 +0200 Sebastian Dröge + + * gst/h264parse/gsth264parse.c: + h264parse: Free the PPS buffers too + +2009-08-17 18:03:00 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: compute timestamp + +2009-08-17 17:58:46 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: recognize more types of NAL + Also recognizes NALs carrying VCL (i.e. visible pictures). We + typically only compute timestamps for such NALs + +2009-08-17 17:56:26 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: parser init & finalize + +2009-08-17 17:53:43 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode slice header + +2009-08-17 17:53:11 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode SEI + +2009-08-17 17:52:47 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode SEI: picture timing info + +2009-08-17 17:52:12 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode SEI: buffering period + +2009-08-17 17:51:36 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode PPS + +2009-08-17 17:51:10 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: decode SPS + +2009-08-17 17:50:33 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: SPS: decode vui params + +2009-08-17 17:50:02 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + h264parse: SPS: decode hrd params + +2009-08-17 17:44:38 +0800 Lin YANG + + * gst/h264parse/gsth264parse.h: + h264parse: Start slice header parsing work + +2009-08-17 17:43:51 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: Start SEI parsing work + +2009-08-17 17:42:06 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: Start PPS parsing work + +2009-08-17 17:38:59 +0800 Lin YANG + + * gst/h264parse/gsth264parse.c: + * gst/h264parse/gsth264parse.h: + h264parse: Start SPS parsing work + +2009-08-11 12:00:10 +0200 Lin Yang + + * configure.ac: + * gst/mpegpsmux/Makefile.am: + * gst/mpegpsmux/bits.h: + * gst/mpegpsmux/crc.h: + * gst/mpegpsmux/mpegpsmux.c: + * gst/mpegpsmux/mpegpsmux.h: + * gst/mpegpsmux/psmux.c: + * gst/mpegpsmux/psmux.h: + * gst/mpegpsmux/psmuxcommon.h: + * gst/mpegpsmux/psmuxstream.c: + * gst/mpegpsmux/psmuxstream.h: + mpegpsmux: Add MPEG PS muxer + +2009-08-13 16:45:55 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/rsvg/Makefile.am: + * ext/rsvg/gstrsvg.c: + * ext/rsvg/gstrsvgdec.c: + * ext/rsvg/gstrsvgdec.h: + rsvg: Add RSVG SVG decoder plugin + This supports + - decoding single SVG images and a stream of SVG images with a given framerate + - lossless scaling of SVG images + - ARGB output + +2009-08-31 09:11:34 +0200 Sebastian Dröge + + * configure.ac: + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + assrender: Fix compilation with libass >= 0.9.7 and fix aspect ratio setting + Fixes bug #575261. + +2009-08-30 22:20:55 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxftypes.c: + mxf: Unconditionally use GLib 2.16 API + +2009-08-30 22:17:53 +0200 Sebastian Dröge + + * configure.ac: + * gst/xdgmime/Makefile.am: + * gst/xdgmime/gstxdgmime.c: + * gst/xdgmime/xdgmime/xdgmime.c: + * gst/xdgmime/xdgmime/xdgmime.h: + * gst/xdgmime/xdgmime/xdgmimealias.c: + * gst/xdgmime/xdgmime/xdgmimealias.h: + * gst/xdgmime/xdgmime/xdgmimecache.c: + * gst/xdgmime/xdgmime/xdgmimecache.h: + * gst/xdgmime/xdgmime/xdgmimeglob.c: + * gst/xdgmime/xdgmime/xdgmimeglob.h: + * gst/xdgmime/xdgmime/xdgmimeicon.c: + * gst/xdgmime/xdgmime/xdgmimeicon.h: + * gst/xdgmime/xdgmime/xdgmimeint.c: + * gst/xdgmime/xdgmime/xdgmimeint.h: + * gst/xdgmime/xdgmime/xdgmimemagic.c: + * gst/xdgmime/xdgmime/xdgmimemagic.h: + * gst/xdgmime/xdgmime/xdgmimeparent.c: + * gst/xdgmime/xdgmime/xdgmimeparent.h: + xdgmime: Always use GLib instead of xdgmime + Now that we depend on GLib 2.16 we can as well use it's + internal copy of the xdgmime instead of our own. + +2009-08-30 22:13:26 +0200 Sebastian Dröge + + * gst/id3tag/id3tag.c: + id3tag: Unconditionally use GLib 2.16 API + +2009-08-19 17:18:25 +0200 Sebastian Dröge + + * ext/resindvd/rsnstreamselector.c: + rsnstreamselector: Use iterate internal links instead of deprecated get internal links + +2009-08-19 17:05:32 +0200 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Use iterate internal links instead of deprecated get internal links + +2009-08-30 23:38:45 +0100 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + Back to hacking -> 0.10.14.1 + +=== release 0.10.14 === + +2009-08-30 00:24:47 +0100 Tim-Philipp Müller + + * common: + common: update common to a version that includes a fixed mangle-tmpl.py + Which is needed to build the plugin docs for the frei0r plugin (and + was included in the 0.10.14 release tarball). + +2009-08-29 19:35:31 +0100 Tim-Philipp Müller + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-asfmux.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-kate.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mimic.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-schro.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-vdpau.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.14 + +2009-08-29 19:02:36 +0100 Tim-Philipp Müller + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-08-26 01:21:27 +0100 Tim-Philipp Müller + + * configure.ac: + * win32/common/config.h: + 0.10.13.5 pre-release + +2009-08-26 01:18:00 +0100 Руслан Ижбулатов + + * configure.ac: + * sys/directdraw/Makefile.am: + * sys/directsound/Makefile.am: + * sys/directsound/gstdirectsoundsrc.c: + directdraw, directsound: unify CFLAGS and fix configure checks for DirectX-based plugins + One set of CFLAGS for all DirectX-based plugins. Correct header/library + checks for DirectX-based-plugins. Remove unused variable and label in + directsoundsrc. + Fixes #593068. + +2009-08-26 00:26:42 +0100 Arek Korbik + + * ext/schroedinger/gstschroenc.c: + schroenc: set right OFFSET and OFFSET_END on header buffers to make oggmux happy + Without this oggmux will just keep buffering output pages in some cases. + Fixes #593024. + +2009-08-25 23:44:50 +0400 Руслан Ижбулатов + + * ext/resindvd/Makefile.am: + * gst/rawparse/Makefile.am: + resindvd, rawparse: fix LDFLAGS for gst-plugins-base libs + Fixes #593063. + +2009-08-24 20:06:27 +0100 Tim-Philipp Müller + + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.13.4 pre-release + +2009-08-24 18:16:15 +0100 Tim-Philipp Müller + + * ext/amrwbenc/gstamrwbenc.c: + amrwbenc: use different element GType name to avoid conflict with previous plugin + Use a different GType name for the element to avoid 'cannot register existing type' + warnings when running 'make check' in the unpacked tarball with the old amrwb plugin + also installed as system plugin under the old name (it used to be called 'amrwrb' + and now it's 'amrwbenc'). + +2009-08-24 14:37:28 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: use of default debug category and better dshow errors readability + +2009-08-21 01:17:18 +0100 Tim-Philipp Müller + + * tests/icles/test-oss4.c: + tests: fix test-oss4 to treat an empty device name the same as a NULL name + +2009-08-18 15:48:09 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Write FOURCC as 32bit + +2009-08-15 17:54:50 -0700 David Schleef + + * REQUIREMENTS: + remove a bunch of junk from REQUIREMENTS + +2009-08-14 20:20:41 +0100 Tim-Philipp Müller + + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.13.3 pre-release + +2009-08-14 14:10:23 +0100 Tim-Philipp Müller + + * configure.ac: + configure: disable ass plugin for libass >= 0.9.7 because of API changes + See #575261. + +2009-08-12 18:33:22 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + asfmux: Do not mess up GstCollectData list + asfmux was messing up with the GstCollectData list of its + GstCollectPads when sorting the list inplace. This patch makes + it copy the list before sorting it, leaving the GstCollectPads + list as is. Fixes #591610 + +2009-08-12 12:23:30 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: USE GST_WRITE_*_LE macros + +2009-08-12 12:21:33 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Refuse to go playing in paused-mode without clock + Only try to use the clock in if paused-mode is set and refuse to go playing + in paused-mode without it. + Fixes bug #591538 + +2009-08-11 16:42:51 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + dtmfsrc: Empty event queue on finalize + +2009-08-11 16:39:42 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + dtmf: Use GSlice for internal event structures + +2009-08-11 16:23:20 -0400 Tim-Philipp Müller + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Cleanup events on finalize + Problem found by Laurent Glayal + Fixes bug #591440 + +2009-08-11 16:23:20 -0400 Tim-Philipp Müller + + * gst/dtmf/gstrtpdtmfsrc.c: + rtpdtmfsrc: Cleanup events on finalize + Problem found by Laurent Glayal + Fixes bug #591440 + +2009-08-12 10:28:32 +0100 Tim-Philipp Müller + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpdevice.c: + * tests/check/Makefile.am: + vdpau: blacklist for generic states test, and demote to GST_RANK_NONE + These elements are not fit for autoplugging, so demoting to RANK_NONE. + Also blacklisting for generic states test, since fixing these elements + up to do some minimal error handling seems to be a bit more work. + Partially fixes #591538. + +2009-08-11 18:01:37 +0100 Tim-Philipp Müller + + * configure.ac: + * po/LINGUAS: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/lv.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.13.2 pre-release. + +2009-08-11 15:27:34 +0100 Tim-Philipp Müller + + * MAINTAINERS: + Add myself to MAINTAINERS file and update Wim's e-mail. + +2009-08-11 14:17:32 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + Update spec file with latest changes + +2009-08-11 12:42:28 +0100 Tim-Philipp Müller + + * ext/kate/gstkateenc.c: + * tests/check/elements/kate.c: + kateenc: error out if category has not been set and check for obviously wrong values + +2009-08-11 02:46:54 +0100 Tim-Philipp Müller + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * gst-plugins-bad.spec.in: + * gst/rtpmanager/.gitignore: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpbin-marshal.list: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpmanager.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.c: + * gst/rtpmanager/rtpstats.h: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpbin.c: + * tests/check/elements/rtpbin_buffer_list.c: + Move rtpmanager from -bad to -good. + +2009-08-11 09:05:35 +0100 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + .gitignore: ignore asfmux unit test binary + +2009-08-11 09:00:37 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + checks: disable unit tests that are flaky or don't work with core git + camerabin test seems to time out with core git, so disabling because + chances are the problem is in the test and the core git stuff will + be released before we can fix the code in the test. + neonhttpsrc unit test is a bit flaky, it tends to fail the first + time when called (the host/url it checks for seems to be down as + well/anyway). + +2009-08-10 22:16:37 +0100 Tim-Philipp Müller + + * gst/mixmatrix/Makefile.am: + * sys/dshowsrcwrapper/Makefile.am: + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowaudiosrc.h: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + Remove execute flags from source files + +2009-08-09 02:04:46 +0100 Tim-Philipp Müller + + * configure.ac: + configure: bump core/base requirements to released version + To avoid confusion. + +2009-08-10 16:35:36 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: can list more than 1 device + something like the following code now works: + vector getVideoDeviceNames() + { + vector l_name; + string property; + GstElement* videodevicesrc = create_element("dshowvideosrc", "videodevicesrc"); + GstPropertyProbe* probe = GST_PROPERTY_PROBE (videodevicesrc); + GValueArray* va = gst_property_probe_get_values_name (probe, "device-name"); + if (va) + { + for(size_t i=0; i < va->n_values; ++i) + { + GValue* v = g_value_array_get_nth(va, i); + string name(g_value_get_string(v)); + l_name.push_back(name); + } + } + if (videodevicesrc) + gst_object_unref(GST_OBJECT (videodevicesrc)); + return l_name; + } + +2009-08-10 16:17:41 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + dshowaudiosrc: handles device-name property + +2009-08-10 16:03:17 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + dshowsrcwrapper: add a helper function to check a media type + +2009-08-10 14:32:03 +0200 Julien Isorce + + Merge branch 'master' of ssh://cap@git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-08-10 13:21:09 +0100 Tim-Philipp Müller + + * ext/Makefile.am: + spc: fix typo in Makefile.am and build the right plugin (spc not gme) + +2009-08-10 14:23:14 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + dshowvideosrc: can use other video sizes and framerates than the defaults + Even if the device could capture several video sizes at several framerates, + without this commit, it was only possible to use one video size and + one framerate: the default directshow values. + +2009-08-10 11:40:13 +0200 Julien Isorce + + * win32/vs8/gst-plugins-bad.sln: + * win32/vs8/libgstdirectsound.vcproj: + directsoundsrc: add vs8 project + +2009-08-10 11:36:41 +0200 Julien Isorce + + * sys/directsound/gstdirectsoundsrc.c: + directsoundsrc: LF and indent + +2009-08-09 15:20:48 +0200 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Cache events and send them downstream once an element was selected + +2009-08-09 14:55:26 +0200 Sebastian Dröge + + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Small cleanups + +2009-08-09 12:25:01 +0200 Julien Isorce + + * sys/directdraw/gstdirectdrawsink.c: + directdrawsink: Fix crash when exposing in GST_STATE_READY + Fixes bug #541962. + +2009-08-08 22:14:53 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Don't answer the SEEKING query if we don't know the answer yet + A bitrate!=-1 is required for seeking but the bitrate is only calculated + after the second PCR was read. + Fixes bug #590446. + +2009-08-08 21:20:01 +0200 Sebastian Dröge + + * ext/spc/gstspc.c: + spc: Lower rank to SECONDARY to make the gme plugin the default + +2009-08-08 21:17:37 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/spc/Makefile.am: + * ext/spc/gstspc.c: + * ext/spc/gstspc.h: + * ext/spc/tag.c: + * ext/spc/tag.h: + spc: Add the OpenSPC spc plugin again + The gme plugin obsoletes it but it might still be useful + for users that don't have gme yet or prefer openspc for some reason. + +2009-08-08 12:20:55 +0100 Tim-Philipp Müller + + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + kate: some minor clean-ups + Print flow return as string in log message; if we check the return + value of gst_buffer_new_and_alloc() we should use the _try() function + that might actually return NULL. Post error message when returning + GST_FLOW_ERROR. Use portable GLib macros to print 64-bit integers. + Don't use 0LL, that's also not portable (and unneeded here). + +2009-08-08 10:30:11 +0200 Sebastian Dröge + + * gst/rawparse/gstvideoparse.c: + videoparse: Only provide very fundamental caps in the pad template + We can't easily know which caps will can be used because we rely on + libgstvideo's support for video formats. + +2009-08-08 10:27:52 +0200 Sebastian Dröge + + * gst/rawparse/gstrawparse.c: + * gst/rawparse/gstrawparse.h: + rawparse: Small cleanups and implement SEEKING query + +2009-08-08 08:27:24 +0200 Sebastian Dröge + + * gst/rawparse/gstaudioparse.c: + audioparse: Small cleanups + +2009-08-08 07:59:16 +0200 Sebastian Dröge + + * gst/rawparse/Makefile.am: + * gst/rawparse/gstrawparse.h: + * gst/rawparse/gstvideoparse.c: + * gst/rawparse/gstvideoparse.h: + videoparse: Use libgstvideo for everything instead of our own calculations + Also make RGB usage easier by providing xRGB, RGBx, etc. formats + instead of requiring to set red_mask and friends. + +2009-08-07 19:12:26 +0200 Josep Torra + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix a memory leak + +2009-08-07 19:00:23 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: added VC1, EAC3 and LPCM related to blueray/hdmv + +2009-08-07 18:35:42 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: added caps for AAC and fixed playback of a clip with LPCM + +2009-08-07 18:17:28 +0200 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + mpegpsdemux: improved demuxer performance + Increased performance doing pull_range in blocks of 32Kb instead of 4Kb. + Caching the value of gst_adapter_available instead of calling it 3 times. + Added some comments with the header descriptions. + Peek enough data to avoid a corner case where could be readed data outside + the buffer. + Speed up some more inlining some functions and keeping another stream pointer + list to be used as iterator. + Sprinkle branch prediction macros accross the code. + Handling the seeking with flush in pull mode in the proper way. + +2009-08-07 14:41:31 +0200 Sebastian Dröge + + * ext/gme/Makefile.am: + * ext/gme/gstgme.c: + * ext/gme/gstgme.h: + gmedec: Use GstAdapter instead of many buffer joins + This reduces the number of reallocations and memcpys drastically. + Also free the input data as soon as it's complete and passed to GME + as it's not needed anymore. + +2009-08-07 13:07:17 +0200 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: prevent infinite loop when draining + +2009-08-07 13:06:28 +0200 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: fix minor memory leak + +2009-08-07 13:04:18 +0200 Mark Nauwelaerts + + * gst/flacparse/gstbaseparse.c: + flacparse: sync baseparse (some more) + +2009-08-07 09:21:04 +0200 Sebastian Dröge + + * ext/gme/gstgme.c: + gmedec: Add caps for all supported file formats to the srcpad template + +2009-08-07 07:23:07 +0200 Sebastian Dröge + + * ext/gme/gstgme.c: + gme: Don't add empty string tags + +2009-08-07 07:01:11 +0200 Sebastian Dröge + + * ext/gme/gstgme.c: + gme: Fix caps name again + +2009-08-07 06:59:55 +0200 Sebastian Dröge + + * ext/gme/gstgme.c: + * ext/gme/gstgme.h: + gme: Rename everything from SPC to GME + +2009-08-07 06:59:41 +0200 Sebastian Dröge + + * ext/spc/Makefile.am: + * ext/spc/gstspc.c: + * ext/spc/gstspc.h: + * ext/spc/tag.c: + * ext/spc/tag.h: + spc: Really remove old SPC code + +2009-08-07 06:56:54 +0200 Sebastian Dröge + + * ext/gme/Makefile.am: + * ext/gme/gstgme.c: + * ext/gme/gstgme.h: + * ext/gme/tag.c: + * ext/gme/tag.h: + gme: Use gme for tags and duration parsing + +2009-08-07 06:41:43 +0200 Sebastian Dröge + + * configure.ac: + * ext/Makefile.am: + * ext/gme/Makefile.am: + * ext/gme/gstgme.c: + * ext/gme/gstgme.h: + * ext/gme/tag.c: + * ext/gme/tag.h: + spc: Rename SPC plugin to GME + as preparation for enabling support for non-SPC gaming console sound files. + +2009-08-06 21:42:02 +0200 Sebastian Dröge + + * ext/spc/gstspc.c: + spcdec: Forward all unknown src events upstream and don't restrict to SPC + +2009-08-06 19:26:21 +0200 ric + + * gst/rtpmanager/rtpsource.c: + rtpsource: avoid buffer leak on bad seqnum + Fixes #590797 + +2009-08-05 09:36:00 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpeg[pt]sdemux: Fix SEEKING query + Send the BYTES based query downstream, not the orignal one. + +2009-08-04 12:58:35 +0200 Jan Urbanski + + * gst/qtmux/gstqtmux.c: + qtmux: Don't require endianness field for 8 bit raw audio + Fixes bug #590360. + +2009-08-04 10:18:46 +0200 Sebastian Dröge + + * configure.ac: + * ext/spc/gstspc.c: + spc: Make the SPC plugin work with the latest libgme release + gme_enable_accuracy() was added in SVN trunk and is not yet + in any release. + +2009-08-04 10:06:54 +0200 Michael Pyne + + * configure.ac: + * ext/spc/gstspc.c: + * ext/spc/gstspc.h: + spc: Use the portable libgme instead of x86-only OpenSPC library + This will later allow us to play other gaming console files + that are supported by libgme. + Fixes bug #576800. + +2009-06-12 17:22:22 +0100 Tim-Philipp Müller + + * gst/flacparse/Makefile.am: + * gst/flacparse/gstbitreader.c: + * gst/flacparse/gstbitreader.h: + * gst/flacparse/gstbytereader.c: + * gst/flacparse/gstbytereader.h: + * gst/flacparse/gstflacparse.c: + flacparse: remove internal bitreader and bytereader now that these are in libgstbase + +2009-07-31 11:27:03 +0300 Tommi Myöhänen + + * gst/selector/gstoutputselector.c: + outputselector: check for pending srcpad in _get_property() + If there is a pending srcpad, return it instead of active srcpad + in gst_output_selector_get_property() function. + +2009-07-30 14:17:59 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabin.c: + camerabin: Set camerasrc to READY state instead of PAUSED when acquiring allowed caps + +2009-07-31 07:16:02 +0200 Sebastian Dröge + + * sys/directdraw/gstdirectdrawsink.c: + directdraw: Fix indention + +2009-07-31 02:05:41 +0400 Руслан Ижбулатов + + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + directdraw: Implement GstNavigation interface + Fixes bug #590208. + +2009-07-31 00:19:19 -0300 Thiago Santos + + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfobjects.h: + * gst/asfmux/gstrtpasfpay.c: + rtpasfpay: set padding field to 0 on rtp asf packets + The ASF RTP spec demands that packets have their padding removed + and the padding size field set to 0 for packets when puting them + inside the RTP packets + +2009-07-30 00:19:18 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: Set video stream seekable property to true + Video stream always have indexes, so they are all seekable + +2009-07-30 00:12:45 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: Removing useless TODOs + After testing in windows and linux, this audio correction field + made no difference so far. All example files I got only had + zeroes in this field + +2009-07-30 00:04:43 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: Fixes video stream properties object + Fixes stream properties object creation for video content + +2009-07-29 19:07:27 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + asfmux: accept pad requests a little longer + asfmux now start rejecting pad requests after it pushes the first + buffer, before this, it was rejecting after going to paused + +2009-07-29 18:44:11 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: adds support to vc-1 streams + +2009-07-29 17:23:31 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Remove empty finalize + +2009-07-29 16:02:58 +0200 Sebastian Dröge + + * configure.ac: + configure.ac: Fix macro name + +2009-07-29 15:35:03 +0200 Joni Valtanen + + * configure.ac: + * sys/Makefile.am: + * sys/directsound/Makefile.am: + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsrc.c: + * sys/directsound/gstdirectsoundsrc.h: + directsoundsrc: Add DirectSound source plugin + Fixes bug #344129. + +2009-07-28 22:51:39 -0300 Thiago Santos + + * tests/check/Makefile.am: + * tests/check/elements/asfmux.c: + asfmux: First basic check unit tests + Adds simple asfmux unit tests, that test pad creation and pushing a + single buffer through them + +2009-07-28 21:37:04 -0300 Thiago Santos + + * gst/asfmux/gstasfmux.c: + asfmux: Forcing pad names to be video_%02d and audio_%02d like + +2009-07-28 18:18:20 +0200 Wim Taymans + + * gst/rtpmanager/rtpsource.c: + rtpsource: allow for NULL caps on buffers + Add the NULL caps check where it matters and also cover another case of + potential NULL caps. + Fixes #590030 + +2009-07-28 11:59:56 -0400 Olivier Crête + + * gst/rtpmanager/rtpsource.c: + rtpsource: Incoming buffers do not always have caps + +2009-07-27 14:03:59 +0300 Tommi Myöhänen + + * gst/camerabin/gstcamerabinphotography.c: + camerabin: photo iface setter functions return TRUE when used in NULL state + We cache the values and apply then when possible. + +2009-07-27 08:25:37 +0300 Tommi Myöhänen + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + * gst/camerabin/gstcamerabin.c: + camerabin: do not put video pipeline into READY when start recording camerabin: remember probe IDs and disconnect them when destroying pipelines + +2009-07-27 19:59:32 +0200 Sebastian Dröge + + * ext/amrwbenc/gstamrwbenc.c: + amrwbenc: Fix compilation + +2009-07-27 19:55:27 +0200 Iago Toral + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-amrwbenc.xml: + * ext/Makefile.am: + * ext/amrwb/Makefile.am: + * ext/amrwb/README: + * ext/amrwb/gstamrwb.c: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbdec.h: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbenc.h: + * ext/amrwb/gstamrwbparse.c: + * ext/amrwb/gstamrwbparse.h: + * ext/amrwbenc/GstAmrwbEnc.prs: + * ext/amrwbenc/Makefile.am: + * ext/amrwbenc/README: + * ext/amrwbenc/gstamrwb.c: + * ext/amrwbenc/gstamrwbenc.c: + * ext/amrwbenc/gstamrwbenc.h: + amrwb: Remove AMR-WB parser and decoder and rename encoder plugin from amrwb to amrwbenc + Partially fixes bug #584890. + +2009-07-27 15:46:23 +0200 Wim Taymans + + * gst/rtpmanager/rtpsession.c: + rtpsession: avoid doing lip-sync in BYE + When we get a BYE packet, don't do lip-sync with the SR inside because some + senders have trouble constructing valid SR packets after BYE. + +2009-07-27 15:33:04 +0200 Julien Isorce + + * win32/MANIFEST: + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs7/gst-plugins-bad.sln: + * win32/vs7/libgstdirectdraw.vcproj: + * win32/vs8/libgstdirectdraw.vcproj: + directdrawsink: update vs8 build + also remove directdrawsink from vs6 and vs7 build + +2009-07-27 14:52:57 +0200 Julien Isorce + + * sys/dshowsrcwrapper/Makefile.am: + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * sys/dshowsrcwrapper/gstdshowaudiosrc.h: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowinterface.h: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + * sys/dshowsrcwrapper/libgstdshow.def: + * win32/vs8/libdshowsrcwrapper.vcproj: + dshowsrcwrapper: remove use of IGstDshowInterface + +2009-07-27 13:17:20 +0200 Wim Taymans + + * gst/rtpmanager/rtpsession.c: + rtpbin: don't do lip-sync after a BYE + After a BYE packet from a source, stop forwarding the SR packets for lip-sync + to rtpbin. Some senders don't update their SR packets correctly after sending a + BYE and then we break lip-sync. We prefer to let the jitterbuffers drain with + the current lip-sync instead. + +2009-07-27 12:43:02 +0200 Wim Taymans + + * gst/rtpmanager/rtpsession.c: + rtpbin: only reconsider once for BYE + When iterating the sources of a BYE packet, don't signal a reconsideration for + each of them but signal after we handled all sources. + +2009-07-25 12:19:07 +0100 Tim-Philipp Müller + + * ext/kate/gstkatespu.c: + kate: break up macros into multiple lines + +2009-07-24 21:54:59 +0100 Vincent Penquerc'h + + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatespu.c: + * ext/kate/gstkatetag.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + kate: use GST_ELEMENT_ERROR for error reporting + See #525743. + +2009-07-24 14:52:28 -0300 Thiago Santos + + * configure.ac: + * gst/asfmux/Makefile.am: + * gst/asfmux/gstasf.c: + * gst/asfmux/gstasfmux.c: + * gst/asfmux/gstasfmux.h: + * gst/asfmux/gstasfobjects.c: + * gst/asfmux/gstasfobjects.h: + * gst/asfmux/gstasfparse.c: + * gst/asfmux/gstasfparse.h: + * gst/asfmux/gstrtpasfpay.c: + * gst/asfmux/gstrtpasfpay.h: + asfmux: Adds new plugin asfmux + Adds the brand new asfmux plugin, containing 3 elements: + asfmux, rtpasfpay and asfparse. This plugin was developed + as a GSoC 2009 project, with David Schleef as the mentor and + Thiago Santos as the student. + +2009-07-24 08:25:03 +0100 Jan Schmidt + + * win32/MANIFEST: + win32: Fix the distcheck after dshowsrcwrapper rearrangements + Remove old files from the win32 manifest, and add the new one. + +2009-07-24 07:40:17 +0200 Sebastian Dröge + + * ext/musepack/gstmusepackdec.c: + musepackdec: Implement SEEKING query + +2009-07-24 01:00:34 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Revert "docs: fix docs build again" + It's not needed any longer after Stefan's updates in the common module. + This reverts commit 09c550a172a2c8a76f0b48f2f8ce11070598f66c. + +2009-07-24 00:42:53 +0300 Stefan Kost + + * common: + Automatic update of common submodule + From fedaaee to 94f95e3 + +2009-07-23 17:57:14 +0100 Tim-Philipp Müller + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + docs: fix docs build again + There is no element called 'ladspa', so there won't be a -details + file for it. + +2009-07-23 09:58:38 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: Remove some backward compatibility code + Also we always require liboil so use it unconditionally. + +2009-07-23 09:52:36 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegdemux: Implement query type function for the src pads + +2009-07-20 22:13:11 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Lock element before unlocking + +2009-07-20 22:08:52 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Fix leaks + Use gst_pad_new_from_static_template() to not leak the pad template + Also properly chain up the finalize to the parent + +2009-07-20 22:08:24 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Use gst_pad_new_from_static_template + Prevents leak found by valgrind + +2009-07-20 21:52:59 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Unref clockid + +2009-07-20 14:00:17 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Don't overwrite valid timestamps + +2009-07-20 13:45:54 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + Revert "mimdec: Ignore the timestamps inside the buffers" + This reverts commit 5e051fa98aeebdce2eca6b321ec1929e6f8fdf61. + +2009-07-21 15:33:41 -0400 Olivier Crête + + * gst/rtpmanager/rtpsession.c: + rtpsession: Free conflicting addresses on finalize + +2009-07-21 15:31:33 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Free the pad private data on pad release + Free the pad private data on pad release instead of using a weak ref, + which is not thread safe. Also, lock the content of the pad private using the element's + object lock. + +2009-07-22 14:19:18 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Ignore errors pushing out new segments + The following buffer push will return more valuable information. + +2009-07-22 18:01:12 +0300 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-frei0r.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-lv2.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * ext/ladspa/gstladspa.c: + docs: add docs for ladspa and update plugin docs + Add also inspect files for lv2 and frei0r (no docs yet). + +2009-07-22 17:05:29 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: more perf-test cleanups + Remove some obsolete exmaples. Add video-width/height. Use proper api for + setting still image resolution. Fix stopping random tests on bin-state-changes. + Remove the memdup in snapshot again, as its not needed (pixbuf goes out of + scope with the buffer). + +2009-07-22 11:45:21 +0100 Tim-Philipp Müller + + * sys/dshowsrcwrapper/Makefile.am: + dshowsrcwrapper: update Makefile.am for source file renames as well + +2009-07-21 13:37:20 +0100 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/pcapparse/gstpcapparse.h: + docs: add pcapparse to docs + +2009-07-22 12:34:36 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + dshowaudiosrc: do not remove a range of length 0 + +2009-07-22 12:24:46 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: + * sys/dshowsrcwrapper/gstdshowaudiosrc.cpp: + * win32/vs8/libdshowsrcwrapper.vcproj: + dshowaudiosrc: converts code to C++ + +2009-07-22 11:01:49 +0200 Julien Isorce + + * sys/dshowsrcwrapper/gstdshowvideosrc.c: + * sys/dshowsrcwrapper/gstdshowvideosrc.cpp: + * win32/vs8/libdshowsrcwrapper.vcproj: + dshowvideosrc: converts code to C++ + +2009-07-22 00:33:22 +0300 Stefan Kost + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: don't add a base_time==-1 to segment positions + Fixes assertion about newsegment with start=-1. + +2009-07-21 17:48:33 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: small speedup in software zoom + Force crop on even pixel position to avoid slowpath in crop & scale. + +2009-07-21 16:48:26 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: we need to copy the data in the example + gdk_pixbuf_new_from_data does not copy the data. + +2009-07-21 11:28:20 +0300 Stefan Kost + + * ext/lv2/Makefile.am: + make: remove whitespace after trailing backslash + +2009-07-21 12:42:33 +0100 Vincent Penquerc'h + + * ext/kate/gstkatespu.h: + kate: fix time conversion from DVD style timestamps. + +2009-07-21 13:51:20 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Implement SEEKING query + +2009-07-21 13:39:21 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: Implement SEEKING query + Fixes bug #588944. + +2009-07-21 13:33:58 +0200 Sebastian Dröge + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Implement SEEKING query + Partially fixes bug #588944. + +2009-07-21 13:17:06 +0200 Sebastian Dröge + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Free the PMT before setting a new one + +2009-07-21 13:14:00 +0200 Mikael Magnusson + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Remove old PES PIDs when receiving PAT tables + Fixes bug #583470. + +2009-07-21 11:10:49 +0200 Julien Isorce + + * win32/vs8/libdshowsrcwrapper.vcproj: + dshowsrcwrapper: fix relative path + +2009-07-21 10:49:37 +0200 Julien Isorce + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/dshow/Makefile.am: + * gst-libs/gst/dshow/gstdshow.cpp: + * gst-libs/gst/dshow/gstdshow.h: + * gst-libs/gst/dshow/gstdshowfakesink.cpp: + * gst-libs/gst/dshow/gstdshowfakesink.h: + * gst-libs/gst/dshow/gstdshowfakesrc.cpp: + * gst-libs/gst/dshow/gstdshowfakesrc.h: + * gst-libs/gst/dshow/gstdshowinterface.cpp: + * gst-libs/gst/dshow/gstdshowinterface.h: + * sys/dshowsrcwrapper/Makefile.am: + * sys/dshowsrcwrapper/gstdshow.cpp: + * sys/dshowsrcwrapper/gstdshow.h: + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: + * sys/dshowsrcwrapper/gstdshowaudiosrc.h: + * sys/dshowsrcwrapper/gstdshowfakesink.cpp: + * sys/dshowsrcwrapper/gstdshowfakesink.h: + * sys/dshowsrcwrapper/gstdshowinterface.h: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.c: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.cpp: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.c: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + * sys/dshowsrcwrapper/libgstdshow.def: + * win32/common/libgstdshow.def: + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libdshowsrcwrapper.dsp: + * win32/vs8/gst-plugins-bad.sln: + * win32/vs8/libdshowsrcwrapper.vcproj: + start refactoring of dshowsrcwrapper + -remove gst-libs/gst/dshow + -fakesource is moved from gst-libs/gst/dshow to sys/dshowsrcwrapper + -some minor changes (C/C++ check and includes) to make the plugin + compile again. + +2009-07-21 01:06:19 +0100 Tim-Philipp Müller + + * ext/kate/gstkateutil.c: + kate: use new GST_TAG_SUBITLE_CODEC tag instead of GST_TAG_CODEC + +2009-07-21 00:54:47 +0100 Tim-Philipp Müller + + * ext/kate/gstkateenc.c: + * ext/kate/gstkateutil.c: + * tests/check/elements/kate.c: + katedec: only put primary language tag in GST_TAG_LANGUAGE + Only put primary language into GST_TAG_LANGUAGE, and convert to lower case, + ie. only use "en" of "en_GB". This is per our tag documentation and hence + what apps expect. Also add example to kateenc property description so people + know a language code is wanted here. + +2009-07-21 00:04:28 +0100 Tim-Philipp Müller + + * ext/kate/gstkatedec.c: + katedec: add comment why we dont' support application/x-kate here for now + +2009-07-20 13:54:49 +0100 Vincent Penquerc'h + + * ext/kate/Makefile.am: + * ext/kate/README: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkatespu.c: + * ext/kate/gstkatespu.h: + katedec: create SPU format images from suitable background images + Make katedec fabricate dvd-style subpictures for subtitle overlay + bitmaps, for easier playbin2 integration (#588638). + +2009-07-20 16:24:23 +0100 ogg.k.ogg.k + + * ext/kate/gstkatetag.c: + * ext/kate/gstkateutil.c: + * tests/check/Makefile.am: + * tests/check/elements/kate.c: + kate: fix some minor memory leaks + Makes 'make check-valgrind' work for the kate unit test (#525743) + +2009-07-20 16:39:42 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: add code in test to store snapshots for manual verification + Use gdk_pixbuf to save the image in perf-test. Also remove some obsolute + commented out code. + +2009-07-20 16:24:05 +0300 Stefan Kost + + * gst/camerabin/camerabinpreview.c: + camerabin: log formats in preview image conversion + +2009-07-20 16:21:06 +0300 Stefan Kost + + * gst/camerabin/camerabinvideo.c: + camerabin: remove unused variable assignment + Result is not needed here, but variable is used later on. Also remove double new + lines in function. + +2009-07-20 16:20:15 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: check query return result before using it + +2009-07-20 16:19:40 +0300 Stefan Kost + + * ext/metadata/metadataexif.c: + metadata: don't dereference the pointer before the validity check + +2009-07-20 10:17:07 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: improve perf test robustness and add comments + +2009-07-20 12:25:15 +0100 Vincent Penquerc'h + + * ext/kate/gstkateenc.c: + kateenc: also recognise the new recommended 'SUB' category + Move the check for 'simple' subtitles category to a separate routine + and add in the new recommended SUB category (#525743). + +2009-07-20 11:41:40 +0100 Vincent Penquerc'h + + * ext/kate/gstkateenc.c: + * ext/kate/gstkateenc.h: + kateenc: keep bitmap/palette/region around when on the spot encoding is not possible due to an unknown end time + Fixes valgrind unitialized value report. See #525743. + +2009-07-19 23:45:02 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-kate.xml: + docs: add inspect info for kate plugin + Should fix the docs build. + +2009-07-19 23:35:05 +0100 Tim-Philipp Müller + + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetag.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + kate: add some FIXMEs + +2009-07-19 23:32:07 +0100 Tim-Philipp Müller + + * ext/kate/gstkate.c: + katedec: demote to GST_RANK_NONE for now + There are still some autoplugging issues to sort out, and it needs + some testing. + +2009-07-19 23:29:19 +0100 Tim-Philipp Müller + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + checks: add kate unit tests to valgrind blacklist for now + And add check binary to ignore list. + +2009-07-19 23:16:07 +0100 Tim-Philipp Müller + + * ext/kate/gstkateparse.c: + * ext/kate/gstkateutil.c: + kate: make sure to free some more stuff + +2009-07-19 22:29:19 +0100 Tim-Philipp Müller + + * ext/kate/gstkate.h: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkateutil.c: + * tests/check/elements/kate.c: + kate: fix up for additional subtitle/x-kate media type + +2009-07-13 22:38:43 +0100 Tim-Philipp Müller + + * ext/kate/gstkate.c: + kate: remove local kate typefinder, use the one in -base + +2009-07-10 18:45:28 +0100 Tim-Philipp Müller + + * ext/kate/gstkate.c: + * ext/kate/gstkate.h: + * ext/kate/gstkatedec.c: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateparse.c: + * ext/kate/gstkatetiger.c: + kate: change media type to subtitle/x-kate and update define accordingly + +2009-02-15 18:35:04 +0000 Vincent Penquerc'h + + * LICENSE_readme: + * REQUIREMENTS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/Makefile.am: + * ext/kate/Makefile.am: + * ext/kate/README: + * ext/kate/gstkate.c: + * ext/kate/gstkate.h: + * ext/kate/gstkatedec.c: + * ext/kate/gstkatedec.h: + * ext/kate/gstkateenc.c: + * ext/kate/gstkateenc.h: + * ext/kate/gstkateparse.c: + * ext/kate/gstkateparse.h: + * ext/kate/gstkatetag.c: + * ext/kate/gstkatetag.h: + * ext/kate/gstkatetiger.c: + * ext/kate/gstkatetiger.h: + * ext/kate/gstkateutil.c: + * ext/kate/gstkateutil.h: + * gst-plugins-bad.spec.in: + * tests/check/Makefile.am: + * tests/check/elements/kate.c: + add new Kate plugin, for Kate overlay streams + katedec: Kate decoder (text only) + kateenc: Kate encoder (text and DVD SPU only) + katetag: Kate tagger + kateparse: Kate parser + tiger: Kate renderer using the Tiger rendering library + Fixes #525743. + +2009-07-19 15:37:50 +0100 Tim-Philipp Müller + + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + real: differentiate between 'module does not exist' and genuine module opening errors + Don't log a GST_ERROR if one of the codec modules we were looking for + doesn't exist. That's not a genuine error, but somewhat expected. + +2009-07-18 08:43:37 +0200 Matijs van Zuijlen + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: Fix integer overflow + This breaks playback of files >4 GB as the offset was + a guint before. Changing it to a guint64 fixes this. + +2009-07-17 15:47:10 +0300 Stefan Kost + + * ext/metadata/gstbasemetadata.c: + metadata: reset state if there is something to reset + The condition was wrong and as such the element was writing the same tags on subsequent + images if reused. + +2009-07-17 15:45:32 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: use gst_caps_replace instead of separate calls + This fixes setting snapshot caps back to NULL also. + +2009-07-17 15:38:06 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: implemnet two more tests + Add tests for videorecording startup and capture startup delay. + +2009-07-17 09:36:15 +0100 Zaheer Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: add component tag to the video component structure in eit + +2009-07-16 17:27:09 -0400 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Don't pretend to be ML20 if paused + +2009-07-16 16:06:26 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + mimdec: Ignore the timestamps inside the buffers + +2009-07-16 15:43:46 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Don't try to parse the header before dropping the paused frames + +2009-07-16 15:43:15 -0400 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Print the incoming fourcc on errors + +2009-06-19 20:13:53 +1000 Austin Lund + + * sys/dvb/gstdvbsrc.c: + Increased the length of time for tuning in gstdvbsrc.c. + Some devices take a while to tune and 500ms was too short to detect + successful tuning. As well as waiting for 5 seconds each 100ms the + status is checked and the loop is broken out of when tuning has suceeded. + +2009-07-16 19:49:26 +0200 Aleksey Yulin + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Don't use PIDs > MPEGTS_MAX_PID + The mpegtsdemux streams array only has MPEGTS_MAX_PID entries + and accessing one afterwards will result in crashes. + Fixes bug #575672. + +2009-07-16 18:14:18 +0300 Zeeshan Ali (Khattak) + + * ext/metadata/gstmetadatamux.c: + Add more debug output to metadatamux + +2009-07-16 12:03:32 +0200 Josep Torra + + * gst/mpegdemux/gstpesfilter.c: + pesfilter: Permit unbounded packets for 0xfd (extended stream id). + Added parsing of PES extension related data. + Fixes some VC1 related issues. + +2009-07-16 13:55:14 +0100 Jan Schmidt + + * sys/oss4/oss4-mixer.c: + oss4: Attempt to fix a compiler warning + Don't store a const gchar * in a non-const gchar * local var. + Also, make the translation string function static since it's only + used in the one file. + +2009-07-15 18:10:04 +0100 Jan Schmidt + + * ext/metadata/metadataexif.c: + metadata: Fix some compiler warnings + Cast some debug string parameters so that they don't cause mismatched + type warnings. + +2009-07-15 16:17:35 +0100 Jan Schmidt + + * sys/vdpau/gstvdpmpegdec.c: + vdpau: Fix a compiler warning about uninitialised variable use. + +2009-06-10 19:21:21 +0100 Garrett D'Amore + + * sys/oss4/oss4-audio.c: + * sys/oss4/oss4-mixer-slider.c: + * sys/oss4/oss4-mixer-switch.c: + * sys/oss4/oss4-mixer.c: + oss4: Enhancements to the mixer and audio output + Code cleanups, general improvements, support for the + new mixer flags in latest gst-plugins-base. + Fixes: #584252 + Patch By: Brian Cameron + Patch By: Garrett D'Amore + +2009-07-15 18:27:39 +0100 Zaheer Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: add component tag to structure for component message + +2009-07-15 17:44:10 +0300 Stefan Kost + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + camerabin: use nonbuffered io to save memcopies + We write large blocks anyway, so no extra buffering please. Also use one + g_object_set to set multiple properties on same object. + +2009-07-15 12:20:17 +0300 Stefan Kost + + * gst/camerabin/TODO: + camerabin: track todo items + +2009-07-15 11:17:36 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: leave image/video bin in ready when changing mode + +2009-07-14 14:10:55 +0200 Sebastian Dröge + + * gst/amrparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.h: + amrparse: Sync baseparse changes + +2009-07-14 14:08:04 +0200 Sebastian Dröge + + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + aacparse: Add function for the baseparse subclass to push buffers downstream + Also handle the case gracefully where the subclass decides to drop + the first buffers and has no caps set yet. It's still required to + have valid caps set when the first buffer should be passed downstream. + +2009-07-14 14:07:44 +0200 Sebastian Dröge + + * gst/aacparse/gstbaseparse.c: + baseparse: Fix seek event leaking + +2009-07-14 10:44:58 +0200 Stefan Kost + + * ext/metadata/metadatatags.c: + metadata: fix copy'n'paste in tag description + +2009-07-13 18:04:14 -0700 David Schleef + + * ext/schroedinger/gstschroenc.c: + schro: Add enum types for schroedinger settings + +2009-06-30 16:31:12 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Don't send empty language code strings + Ignore empty language codes on some poorly coded DVDs, rather than + setting empty strings into our outgoing taglist. + +2009-07-13 12:24:04 -0400 Olivier Crête + + * common: + Automatic update of common submodule + From 5845b63 to fedaaee + +2009-07-10 21:42:19 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Only enable paused mode if the property is true + +2009-07-10 13:03:54 +0100 Tim-Philipp Müller + + * ext/ivorbis/Makefile.am: + * ext/ivorbis/vorbisdec.c: + ivorbis: extract vorbis comments + Fixes #575818. + +2009-07-08 17:59:29 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Add BGRA support for video in/output + +2009-07-08 15:26:07 +0200 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsdemux: Fix double free + The hash table already makes sure that the stream is correctly + free'd when elements are removed. + Fixes bug #587819. + +2009-07-08 10:16:19 +0100 Miguel Àngel Farré + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: parse component tag + +2009-07-08 10:11:52 +0100 Miguel Àngel Farré + + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: parse carousel identifier descriptor + +2009-07-07 15:28:04 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: add parsing of data broadcast descriptors + +2009-07-07 20:28:09 +0200 Sebastian Dröge + + * gst-libs/gst/video/Makefile.am: + basevideo: Link with libgstvideo for some used functions + +2009-07-07 19:18:16 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + mimenc: Send pause frames when paused + +2009-07-07 19:15:42 +0100 Olivier Crête + + * ext/mimic/gstmimdec.c: + mimdec: Ignore pause frames + +2009-07-07 18:27:36 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Put keyframe/paused flags in tcp header + +2009-07-07 18:18:06 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + mimenc: Put timestamp on the header buffer + +2009-07-07 18:22:54 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + mimenc: Retimestamp to the running time + +2009-07-06 17:17:22 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + mimenc: Save the segment + +2009-07-06 16:24:59 +0100 Olivier Crête + + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + mimenc: Add property for the paused mode + +2009-07-03 16:08:38 +0100 Tim-Philipp Müller + + * ext/schroedinger/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoparse.h: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo, schroedinger: guard unstable API with GST_USE_UNSTABLE_API + Add some guards and fat warnings to the header files with still unstable + API, so people who just look at the installed headers know that it + actually is unstable API. + +2009-07-02 15:58:00 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: fix sdt parsing. + fix parsing of everything for each service from eit schedule flag on and also + add a running-status parameter to the bus message structure. + +2009-07-02 11:24:48 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + shapewipe: Add support for ARGB video input/output + +2009-07-01 10:55:12 -0700 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/schroedinger/Makefile.am: + * ext/schroedinger/gstschro.c: + * ext/schroedinger/gstschrodec.c: + * ext/schroedinger/gstschroenc.c: + * ext/schroedinger/gstschroparse.c: + * ext/schroedinger/gstschroutils.c: + * ext/schroedinger/gstschroutils.h: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstbasevideocodec.c: + * gst-libs/gst/video/gstbasevideocodec.h: + * gst-libs/gst/video/gstbasevideodecoder.c: + * gst-libs/gst/video/gstbasevideodecoder.h: + * gst-libs/gst/video/gstbasevideoencoder.c: + * gst-libs/gst/video/gstbasevideoencoder.h: + * gst-libs/gst/video/gstbasevideoparse.c: + * gst-libs/gst/video/gstbasevideoparse.h: + * gst-libs/gst/video/gstbasevideoutils.c: + * gst-libs/gst/video/gstbasevideoutils.h: + basevideo: move from -base + Also move schroedinger plugin. This creates a new library, + gstbasevideo-0.10, which will probably be merged back into + gstvideo-0.10 when this is moved back to -base. + +2009-07-01 12:55:03 +0200 Wim Taymans + + * gst/rtpmanager/rtpsource.c: + rtpbin: use new method for netaddress to string + +2009-06-29 17:24:58 +0100 Jan Schmidt + + * ext/Makefile.am: + dist: Add lv2 plugin to the dist + +2009-06-29 16:37:01 +0100 Jan Schmidt + + * tests/examples/Makefile.am: + dist: Add the camerabin examples subdirectory to the dist + +2009-06-29 18:48:33 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + * tests/check/elements/rtpbin.c: + rtpbin: do better cleanup of the src ghostpads + Connect to the pad-removed signal of the ptdemux elements so that we remove the + ghostpads for them. Fixes cleanup when going to NULL as well as when releasing + the sinkpads. + Fixes #561752 + +2009-06-29 17:48:13 +0200 Wim Taymans + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + docs: remove old element + +2009-05-28 19:08:40 +0200 Wim Taymans + + * gst/rtpmanager/rtpsession.c: + rtpsession: add a comment + +2009-06-29 16:37:54 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpsession.c: + rtpbin: add SDES property + Remove all individual SDES properties and use one sdes property that takes a + GstStructure instead. This will allow us to add more custom stuff to the SDES + messages later. + +2009-06-29 16:21:05 +0200 Wim Taymans + + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + rtpbin: add SDES property that takes GstStructure + Remove all individual SDES properties and use one sdes property that takes a + GstStructure instead. This will allow us to add more custom stuff to the SDES + messages later. + +2009-06-02 17:46:08 +0200 Wim Taymans + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpclient.h: + * gst/rtpmanager/gstrtpmanager.c: + rtpbin: removed old gstrtpclient + +2009-06-29 12:23:59 +0200 Andoni Morales + + * ext/sdl/sdlvideosink.c: + sdl: only include sys/time.h when we have it + Fixes #586956 + +2009-06-29 12:02:19 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Correctly clean up elements to be reusable and not leak memory + +2009-06-29 11:59:13 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rfilter.h: + frei0r: In the filter plugins create the frei0r instances in create() before playback starts + +2009-06-29 11:56:59 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rmixer.c: + frei0r: In the mixer plugins create the frei0r instances in create() before playback starts + +2009-06-29 11:54:26 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rsrc.c: + frei0r: In the src plugins create the frei0r instances in create() before playback starts + +2009-06-29 11:50:44 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + frei0r: Use fixed caps on the filter pads + This is required because we have to create a new frei0r + instance for any caps changes and the instances can have history. + Just creating a new instance during playback can result in bad output + right after the caps change. + +2009-06-27 09:51:01 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Set the default property values correctly + +2009-06-26 18:35:06 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: code cleanups + Downgrade a WARNING to INFO. Use a bit more compact code. Add a fixme comment. + +2009-06-26 18:34:36 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: just ref caps, we don't need a writable copy + +2009-06-26 18:33:47 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: no need to ref and unref this temporarily + +2009-06-26 18:32:40 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: don't leak sink_caps if they would be any-caps + +2009-06-26 18:31:51 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: don't leak preview images + +2009-06-26 18:30:01 +0300 Stefan Kost + + * gst/camerabin/gstcamerabin.c: + camerabin: don't leak viewfinder-caps + +2009-06-26 16:07:43 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: make shot2shot test more reliable + We can only trigger next shot (in the test) when current is captured and saved. + +2009-06-26 13:10:12 +0300 Stefan Kost + + * gst/camerabin/camerabinvideo.c: + camerabin: insert a few blank lines for readability + +2009-06-26 13:09:27 +0300 Stefan Kost + + * gst/camerabin/camerabinpreview.c: + camerabin: don't leak messages and element refs in preview + +2009-06-26 15:10:05 +0100 Jan Schmidt + + * autogen.sh: + autogen.sh: Use printf instead of 'echo -n'. Check for automake-1.1[01] + Check for more automake command variants. Use printf instead of 'echo -n' + for portability + +2009-06-26 13:42:51 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From f810030 to 5845b63 + +2009-06-26 09:30:22 +0100 Changwoo Ryu + + * gst/freeze/Makefile.am: + freeze: don't build plugin static lib + Pass --tag=disable-static to libtool like we do for other plugins. + Fixes #587023. + +2009-06-25 12:31:32 -0400 Dave Robillard + + * ext/lv2/gstlv2.c: + Use GST_WARNING instead of fprintf. + +2009-05-30 11:18:21 -0400 Dave Robillard + + * ext/lv2/README: + Add LV2 quick start README. + +2009-06-25 19:23:16 +0300 Stefan Kost + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: don't leak requestpads + Requestpads need to be released and unreffed. Add a comment in one case where + we intentionaly don't unref. + +2009-06-25 19:21:47 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: sync first test more safely + Don't use gst_element_get_state() to wait for PLAYING, Use the bus-handler + insteader and asynchronously schedule next test. + +2009-06-25 16:41:49 +0200 Mark Nauwelaerts + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/gstcapssetter.c: + * gst/debugutils/gstcapssetter.h: + capssetter: import element into -bad + +2009-06-25 08:38:21 +0200 Edward Hervey + + * gst/qtmux/atoms.c: + qtmux: Remove unused variable. + +2009-06-25 08:38:10 +0200 Edward Hervey + + * gst/qtmux/gstqtmux.c: + qtmux: Fix debug statement. + +2009-06-24 18:56:28 +0300 Stefan Kost + + * tests/examples/camerabin/gst-camera-perf.c: + camerabin: add target-times option to specify test times + Have some reasonable default times. Add a commandline option to override + defaults. Interpret target-time=0 as skip-test. + +2009-06-23 13:01:52 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: buffer-alloc support fixes to image and video bin handling + Keep image bin in PAUSED state in image mode except when processing/saving (PLAYING/READY). + Change output-selector to view finder before setting video bin to READY. + Fix filename sent with img-done signal. + +2009-06-23 13:01:13 +0300 Lasse Laukkanen + + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + camerabin: fix setting mute when video bin elements haven't been created + +2009-06-16 18:12:29 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: set image bin to PAUSED when starting capture + Set image bin to PAUSED also when starting capture using photography + interface. + +2009-04-21 10:55:36 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: leave v4l2camsrc "capture-mode" as video mode when pausing + +2009-06-24 15:14:33 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From f3bb51b to f810030 + +2009-06-22 03:55:27 +0100 Jan Schmidt + + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpvideoyuv.c: + VDPAU: Move I420/YV12 to the front of the caps. Add debug. + Make I420/YV12 caps be preferred when downloading to YUV buffers, + when possible, by listing them first in the set of output caps. + Add some debug in the caps selection code. + +2009-06-23 18:01:18 +0200 Mark Nauwelaerts + + * ext/xvid/gstxvidenc.c: + xvidenc: also allow video/mpeg on output caps. Fixes #377784. + +2009-06-23 18:23:13 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Correctly handle 0/1 fps + +2009-06-22 23:50:49 +0300 Stefan Kost + + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.h: + * ext/lv2/Makefile.am: + * ext/lv2/gstlv2.h: + signalprocessor: use $(top_builddir) instead of relative paths + +2009-06-22 23:49:03 +0300 Stefan Kost + + * gst/camerabin/Makefile.am: + camerabin: add local include dir to CFLAGS + +2009-04-28 23:24:45 -0400 Dave Robillard + + * configure.ac: + * ext/Makefile.am: + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.h: + * ext/ladspa/gstsignalprocessor.c: + * ext/ladspa/gstsignalprocessor.h: + * ext/lv2/Makefile.am: + * ext/lv2/gstlv2.c: + * ext/lv2/gstlv2.h: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/signalprocessor/.gitignore: + * gst-libs/gst/signalprocessor/Makefile.am: + * gst-libs/gst/signalprocessor/gstsignalprocessor.c: + * gst-libs/gst/signalprocessor/gstsignalprocessor.h: + Working LV2 plugin discovery. + - Separate gstsignalprocessor into a separate library (not sure if this + is in the right place, but it works for now anyway) + - Create LV2 element based on LADSPA element, port most discovery + functionality + +2009-03-29 13:31:21 -0400 Dave Robillard + + * ext/ladspa/gstladspa.h: + Fix inconsistent style (trivial test commit). + +2009-03-29 13:23:02 -0400 Dave Robillard + + * configure.ac: + Add configure check for SLV2. + +2009-06-22 22:01:22 +0300 Stefan Kost + + * tests/check/elements/camerabin.c: + camerabin: debug log only change + +2009-06-22 18:35:21 +0300 Stefan Kost + + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + metadata: map more tags and fix reading of xmp tags + Register xmp schemas for photoshop and iptc. Map a few location tags there. + Add more dc tags. Fix reading xmp tag by iteration over known schemas. Add + some more debug logging. + +2009-06-16 17:12:27 +0300 Stefan Kost + + * tests/check/elements/camerabin.c: + camerabin: more cleanup in tests + Add more debug logging. Remove unused mutex and cond. + +2009-06-12 14:26:24 +0300 Stefan Kost + + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/gstcamerabin.c: + camerabin: code cruft removal and debug logs + Remove unused code. Add lots of debug loging. Change comments for local + functions to not use /** gtk-doc start style. + +2009-06-12 10:40:48 +0300 Stefan Kost + + * configure.ac: + * tests/examples/Makefile.am: + * tests/examples/camerabin/.gitignore: + * tests/examples/camerabin/Makefile.am: + * tests/examples/camerabin/gst-camera-perf.c: + * tests/examples/camerabin/gst-camera-perf.glade: + * tests/examples/camerabin/gst-camera.c: + * tests/examples/camerabin/gst-camera.glade: + camerabin: add camerabin examples + gst-camera is a gtk-test app to play with the imagecapture and videorecording. + gst-camera-perf is a tool to run various scenarios and take time meassurements + (e.g. shot-to-shot). Also sort the output files in configure.ac a bit to be + in alphabetical order. + +2009-06-10 11:15:01 +0300 Stefan Kost + + * ext/metadata/metadataexif.c: + metadata: fix conversion of geo coordinates + Coordinate conversion has been verified with exiv2 and some webpages. + Minutes wher totally off and seconds were not used at all. + +2009-06-22 11:19:07 +0200 Wim Taymans + + * gst/h264parse/gsth264parse.c: + h264parse: detect and fix for bad NALU sizes + when in AVC mode a nalu size seems invalid, assume the NALU has the size of the + available data instead of looping forever. + Fixes #586354 + +2009-06-19 21:20:26 +0100 Jan Schmidt + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpvideoyuv.c: + VDPAU: Add some debug statements + +2009-06-18 17:06:23 +0100 Jan Schmidt + + * sys/vdpau/Makefile.am: + VDPAU: Fix build flags to pull in gst-plugins-base libs + +2009-06-15 18:33:06 +0100 Jan Schmidt + + * sys/vdpau/gstvdpvideoyuv.c: + VDPAU: Refactor the error path to a common output, and fix a leak. + Don't leak the input buffer on errors. Add some debug statements. + +2009-06-15 18:29:56 +0100 Jan Schmidt + + * sys/vdpau/gstvdpmpegdec.c: + VDPAU: Fix up caps in vdpaumpegdec. Remove extra semicolon + Fix a typo in the caps for the VDPAU mpeg decoder (chroma_type->chroma-type) + and use the GST_VDP_VIDEO_CAPS for the pad template. + Remove a stray semicolon. + +2009-06-12 16:39:39 +0100 Jan Schmidt + + * configure.ac: + * sys/vdpau/Makefile.am: + VDPAU: Enhance the configure tests + Check for the VDPAU headers in /usr/include/nvidia as they are on some + platforms (Fedora/rpmfusion). Also check that the libvdpau library is + available. + +2009-06-09 23:14:26 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: use fixed src caps + +2009-06-08 14:35:29 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + vdpaumpegdec: drop all frames before a GOP when we seek + +2009-06-08 14:15:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: small cleanup + +2009-06-07 23:46:38 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: s/IS_VDPAU/IS_VDP + +2009-06-07 01:25:01 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: send newsegment event if only the rate has been updated + +2009-06-07 01:12:50 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + vdpaumpegdec: use mutex to protect mpeg_dec->seeking from concurrent access + +2009-06-07 00:55:55 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: use gst_pad_get_parent for threadsafety + +2009-06-06 21:27:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: further work on seeking + +2009-06-05 23:11:18 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/mpegutil.c: + vdpaumpegdec: small cleanups + +2009-06-05 22:28:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdec.c: + vdpaumpegdec: set GST_BUFFER_FLAG_DELTA_UNIT on non I_FRAME's + +2009-06-05 21:48:28 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpmpegdec.c: + * sys/vdpau/gstvdpmpegdec.h: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: rename gstvdpmpegdecoder.[ch] to gstvdpmpegdec.[ch] + +2009-06-05 21:46:08 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: rename GstVdpMpegDecoder to GstVdpMpegDec + +2009-06-05 21:42:30 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: pass buffer size directly to gst_vdp_mpeg_decoder_decode + +2009-06-05 21:18:47 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: small cleanup + +2009-06-05 21:16:48 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: calculate byterate from the size of the incoming data + +2009-06-05 19:08:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: print frame_nr in debug print + +2009-06-05 18:28:17 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: interlaced fixes + +2009-06-05 18:18:38 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: only set base duration once + +2009-06-05 17:53:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: don't send the EVENT_NEWSEGMENT downstream if we're seeking + +2009-06-05 17:43:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: implement seeking + +2009-06-05 11:54:17 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: change a GST_DEBUG to GST_WARNING + +2009-06-05 11:52:32 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: remove unused broken_gop field + +2009-06-05 11:51:41 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: add new gst_vdp_mpeg_decoder_flush for flushing the decoder + +2009-06-05 11:24:34 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: use GSE_DEBUG_FUNCPTR + +2009-06-05 11:20:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: don't drop discont buffers + +2009-06-05 11:17:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpaumpegdec: handle GST_QUERY_POSITION and GST_QUERY_DURATION + +2009-06-04 21:17:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpaumpegdec: calculate correct duration from data in MPEG_PACKET_EXT_PICTURE_CODING + +2009-06-04 19:30:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: fix so that the first frame in a raw mpegvideo stream get timestamp 0 + +2009-06-04 19:17:14 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpdecoder.h: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vpdaumpegdec: remove useless GstVdpDecoder baseclass + +2009-06-04 18:11:06 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpaumpegdec: use GstBitReader to parse bitstream + +2009-05-06 23:07:00 +0200 Carl-Anton Ingmarsson + + * gst/mpegvideoparse/mpegvideoparse.c: + * sys/vdpau/gstvdp.c: + vdpau: change element rank for testing purposes + set mpegvideoparse rank to primary and vdpaumpegdec to primary - 1 to get vdpaumpegdec + correctly plugged into playbin + +2009-05-05 23:19:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpmpegdecoder.c: + vdpau: add debug on GstVdpDevice destroy + +2009-05-05 23:13:25 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: small code cleanup + +2009-05-05 23:08:51 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: remove unnused GstVdpBFrame struct + +2009-05-05 23:07:06 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + vdpaumpegdec: fix small typo in debug print + +2009-05-05 18:54:31 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpdecoder.h: + vdpaumpegdec: fixup timestamping of outgoing buffers + +2009-05-05 18:45:07 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: don't add forward_reference if the frame is an I_FRAME + +2009-05-05 18:37:50 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: set correct timestamps + +2009-05-05 17:30:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: remove unneeded locking since we know do StateChange correctly + +2009-05-05 17:28:19 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpdecoder.h: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + s/GST_TYPE_VDPAU/GST_TYPE_VDP/g + +2009-05-05 17:20:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: s/GST_TYPE_VDPAU/GST_TYPE_VDP/g + +2009-05-05 17:15:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: fixup state change + +2009-05-05 16:29:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + vdpau: init "vdpaudevice" debug catoegory in gst_vdp_get_device + +2009-05-05 08:11:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: hold the lock in change_state + +2009-05-03 21:52:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + vdpaumpegdec: the B_FRAME decoding was completely wrong, fix it + the buffers don't come in output order so fix the decoder to handle this + add new gst_vdp_video_buffer_add_reference method to GstVdpVideoBuffer to be able to keep + buffers alive. Ie. a B_FRAME need to have both the forward reference and the backward + reference alive during it's lifetime. + add mutex to protect for threadsafety issues when we reset the decoder in FLUSH_STOP + +2009-04-30 21:58:01 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpegutil.c: + vdpaumpegdec: set full_pel_forward_vector to 0 when pic_type == P_FRAME + +2009-04-27 21:30:59 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: drop frames if we haven't got an I_FRAME yet + +2009-04-27 20:57:12 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + vdpau: set vdpauvideoyuv and vdpauyuvvideo to GST_RANK_PRIMARY + +2009-04-27 20:50:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: destroy the VdpDecoder and reset the decoder on state change + +2009-04-27 20:45:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + vdpau: fix error where we forgot to pass a trailing NULL to g_object_new + +2009-04-27 20:21:44 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + vdpau: close display on finalize + +2009-04-27 20:18:52 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + vdpau: small fixes + init create GstVdpDevice on GST_STATE_CHANGE_READY_TO_PAUSED instead of on + GST_STATE_CHANGE_NULL_TO READY + add back incrementing of frame_nr + +2009-04-27 20:15:07 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdevice.c: + vdpau: use g_once_init_enter instead of g_once + +2009-04-27 18:34:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: if available use incoming buffer timestamp as output timestamp + +2009-04-27 15:12:26 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: clear the adapter when we reset the decoder + +2009-04-26 23:25:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpdecoder.h: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: fixup renaming + the rename work done in commit 24cf84d06b2f4b2edec3383b198441a07829618b didn't + include typecasts. This commit fixes this. + +2009-04-26 23:20:30 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: reset decoder on GST_EVENT_FLUSH_STOP + +2009-04-26 22:05:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: reset decoder when we get a discont buffer + +2009-04-26 20:40:45 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: add "MPEG_PACKET_EXT_PICTURE_CODING" debug statement + +2009-04-22 23:35:07 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpaumpegdec: handle broken_gop field + +2009-04-22 21:04:58 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/mpegutil.c: + vdpaumpegdec: convert all manual parsing to use read_bits instead + +2009-04-22 20:28:19 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: remove unneded gst_buffer_ref and the accompanying gst_buffer_unref + +2009-04-22 20:25:55 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: fixup error where we set forward_reference instead of backward_reference + +2009-04-16 23:43:24 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/mpegutil.c: + vdpaumpegdec: handle multiple B_FRAMEs in a row + +2009-04-16 22:30:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: more B_FRAME work + +2009-04-16 22:06:50 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdec: inital support at handling B_FRAMES + +2009-04-15 23:49:07 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: fixup GstFlowReturn propagation a bit + +2009-04-15 23:38:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpaumpegdec: parse PICTURE_CODING_EXTENSION alternate_scan bit + +2009-04-15 23:31:33 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/mpegutil.c: + vdpaumpegdec: fixup quantmatrix extension parsing + +2009-04-15 18:17:54 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdec: correct some default values + mpeg1 now give nearly correct output :) + +2009-04-15 17:52:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdecoder: remove unused slice field + +2009-04-14 23:47:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpvideobuffer.h: + vdpau: rename "video/vdpau-video" caps to "video/x-vdpau-video" + +2009-04-14 21:07:32 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpdecoder.h: + vdpau: remove "silent" property from GstVdpDecoder + +2009-04-14 21:05:44 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpdecoder.c: + vdpau: don't set element details in GstVdpDecoder + +2009-04-14 21:04:59 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpmpegdecoder.c: + vdpaumpegdecoder: rename to "vdpaumpegdec" + +2009-04-14 19:08:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + vdpaumpegdecoder: remove unnecesary want_slice field + +2009-04-13 22:21:03 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdp.c: + vdpau: small cosmetical fix + +2009-04-13 22:19:20 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdp.c: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaudevice.c: + * sys/vdpau/gstvdpaudevice.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/gstvdpauvideobuffer.c: + * sys/vdpau/gstvdpauvideobuffer.h: + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauvideoyuv.h: + * sys/vdpau/gstvdpauyuvvideo.c: + * sys/vdpau/gstvdpauyuvvideo.h: + * sys/vdpau/gstvdpdecoder.c: + * sys/vdpau/gstvdpdecoder.h: + * sys/vdpau/gstvdpdevice.c: + * sys/vdpau/gstvdpdevice.h: + * sys/vdpau/gstvdpmpegdecoder.c: + * sys/vdpau/gstvdpmpegdecoder.h: + * sys/vdpau/gstvdpvideobuffer.c: + * sys/vdpau/gstvdpvideobuffer.h: + * sys/vdpau/gstvdpvideoyuv.c: + * sys/vdpau/gstvdpvideoyuv.h: + * sys/vdpau/gstvdpyuvvideo.c: + * sys/vdpau/gstvdpyuvvideo.h: + vdpau: rename all files and objects from Vdpau to Vdp + +2009-04-13 21:23:38 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: decode slices when we get the next picture header. MPEG2 now kindof works. + +2009-04-13 21:11:54 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/mpegutil.c: + vdpau: small improvement to mpeg decoder + +2009-04-13 20:04:21 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudevice.c: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauvideoyuv.h: + * sys/vdpau/gstvdpauyuvvideo.c: + * sys/vdpau/gstvdpauyuvvideo.h: + vdpau: remove unused "silent" properties + +2009-04-13 19:36:53 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauyuvvideo.c: + vdpau: implement GstVdpauVideoBuffer -> I420 conversion + +2009-04-09 16:54:27 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudevice.h: + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauyuvvideo.c: + vdpau: move definition of the VdpChromaType array and the VdpauFormats to gstdevice.h + +2009-04-07 21:51:48 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: small fix + set vdp_info.forward_reference to VDP_INVALID handle when unreffing the old + buffer + +2009-04-07 20:46:49 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/gstvdpaudevice.c: + * sys/vdpau/gstvdpaudevice.h: + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauyuvvideo.c: + * sys/vdpau/gstvdpauyuvvideo.h: + vdpau: add new GstVdpauYUVVideo element + the GstVdpauYUVVideo element takes raw YUV video and outputs + GstVdpauVideoBuffers + +2009-04-04 22:45:09 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpauvideoyuv.c: + vdpau: VideoYUV unref buffer in chain so that we don't leak them MpegDecoder parse sequence headers + +2009-04-04 22:05:11 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: remove some unneded includes + +2009-04-04 22:03:23 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpau.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpauvideoyuv.c: + vdpau: move plugin definition to a new gstvdpau.c file fix up debug categories + +2009-04-04 20:53:35 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/gstvdpauvideobuffer.c: + * sys/vdpau/gstvdpauvideobuffer.h: + * sys/vdpau/gstvdpauvideoyuv.c: + * sys/vdpau/gstvdpauvideoyuv.h: + vdpau: add new GstVdpauVideoYUV element + GstVdpauDecoder now pushes GstVdpauVideoBuffers instead of doing + VdpSurface -> YUV conversion. To get YUV data you now put in a GstVdpauVideoYUV + element which takes GstVdpauVideoBuffers and outputs YUV data. + +2009-04-03 17:59:02 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: small indent fix + +2009-04-03 17:58:25 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudevice.c: + vdpau: remove obosolete FIXME and some debug prints from gstvdpaudevice.c + +2009-04-03 17:53:21 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gst-vdpau-device.h: + * sys/vdpau/gstvdpaudevice.h: + vdpau: commit rename of gst-vdpau-device.h to gstvdpaudevice.h + +2009-04-03 17:52:20 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gst-vdpau-device.c: + vdpau: remove gst-vdpau-device.c + +2009-04-03 17:51:16 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaudevice.c: + vdpau: rename gst-vdpau-device.[ch] to gstvdpaudevice.[ch] + +2009-04-01 21:42:56 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + vdpau: change all references of "gst_vdpaudecoder*" to "gst_vdpau_decoder" + +2009-04-01 21:40:14 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: make the decoder clean up after itself + +2009-04-01 21:26:45 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + vdpau: remove extra \ from Makefile.am + +2009-04-01 21:19:18 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gst-vdpau-device.c: + * sys/vdpau/gst-vdpau-device.h: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + vdpau: add gstvdpaudevice for abstracting vdpau initalization + +2009-03-31 22:54:14 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaumpegdecoder.h: + vdpau: remove comment + +2009-03-31 22:53:40 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpau: MPEG1 decoding know gives recognizable output + +2009-03-29 15:28:06 +0200 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpau: create VdpDecoder in set_caps add more functions for parsing mpeg + +2009-03-27 17:11:04 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/vdpauvariables.h: + vdpau: store vdpau function pointers in a local structure + +2009-03-27 16:55:19 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + * sys/vdpau/mpegutil.c: + * sys/vdpau/mpegutil.h: + vdpau: extract mpeg2 profile from codec_data + +2009-03-26 21:04:48 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + vdpau: extract mpeg version + +2009-03-25 20:41:46 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpauh264decoder.c: + * sys/vdpau/gstvdpauh264decoder.h: + * sys/vdpau/gstvdpaumpegdecoder.c: + vdpau: add version specification to mpegdecoder caps + +2009-03-25 20:38:27 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaumpegdecoder.c: + * sys/vdpau/gstvdpaumpegdecoder.h: + vdpau: focus on mpeg instead of h264 + +2009-03-25 19:59:06 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/vdpauvariables.h: + vdpau: rough try at implementing pushinf of YV12 buffers + +2009-03-24 22:26:56 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + vdpau: remove obsolete comment + +2009-03-23 21:36:55 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/vdpauvariables.h: + vdpau: init vdpau in GST_STATE_CHANGE_NULL_TO_READY add gst_vdpaudecoder_push_video_surface to vdpaudecoder.h + +2009-03-23 20:47:00 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + vdpau: add stubs for pushing VdpVideoSurfaces to the src pad + +2009-03-21 22:06:12 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpauh264decoder.c: + vdpau: update VdpauH264Decoder element description + +2009-03-20 21:26:11 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + vdpau: changle gstvdpaudecoder.c classification + +2009-03-20 21:24:40 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + * sys/vdpau/gstvdpauh264decoder.c: + * sys/vdpau/gstvdpauh264decoder.h: + * sys/vdpau/vdpauvariables.h: + vdpau: implement downstream caps negotiation + +2009-03-15 21:23:35 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/gstvdpaudecoder.c: + vdpau: small indentation fix + +2009-03-15 21:21:49 +0100 Carl-Anton Ingmarsson + + * sys/vdpau/Makefile.am: + * sys/vdpau/gstvdpaudecoder.c: + * sys/vdpau/gstvdpaudecoder.h: + vdpau: add basic base class for vdpau decoders + +2009-03-14 10:43:28 +0100 Carl-Anton Ingmarsson + + * configure.ac: + * sys/Makefile.am: + * sys/vdpau/Makefile.am: + add new vdpau directory + +2009-06-19 19:09:19 +0200 Branko Subasic + + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + * tests/check/Makefile.am: + * tests/check/elements/rtpbin_buffer_list.c: + rtpbin: add support for buffer-list + Add support for sending buffer-lists. + Add unit test for testing that the buffer-list passed through rtpbin. + fixes #585839 + +2009-06-18 12:13:28 +0200 Mark Nauwelaerts + + * gst/aacparse/gstaacparse.c: + aacparse: ADIF: do not send bogus timestamps, leave to downstream (decoder) + +2009-06-11 15:54:42 +0200 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + qtmux: only use (64-bit) extended (mdat) atom size if needed. Fixes #585319. + +2009-06-10 14:46:14 +0200 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: set default movie timescale to microsecond units + +2009-06-10 13:24:20 +0200 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + qtmux: compress/optimize stsc writing + +2009-06-10 12:42:44 +0200 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + qtmux: add 3GP style tagging (and refactor appropriately) + +2009-06-01 23:00:44 +0200 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + qtmux (and variants): handle pixel-aspect-ratio. Fixes #584358. + +2009-06-19 17:04:13 +0100 Tim-Philipp Müller + + * ext/mythtv/gstmythtvsrc.c: + * gst/mpegtsmux/mpegtsmux.c: + Fix previous commit so that things still work with debug logs enabled + +2009-06-19 16:21:28 +0100 Tim-Philipp Müller + + * ext/apexsink/gstapexsink.c: + * ext/directfb/dfbvideosink.c: + * ext/libmms/gstmms.c: + * ext/metadata/metadataexif.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/resindvd/resindvdsrc.c: + * ext/sdl/sdlvideosink.c: + * gst/dvdspu/gstdvdspu.c: + * gst/liveadder/liveadder.c: + * gst/mpegtsmux/mpegtsmux.c: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * sys/oss4/oss4-mixer.c: + Make build without warnings with debugging disabled + +2009-06-16 21:34:56 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Make plugin scanning more robust + +2009-06-16 21:27:38 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Make sure to only register plugins that have valid propert types + +2009-06-16 19:42:41 +0200 Sebastian Dröge + + * configure.ac: + * gst/frei0r/gstfrei0rfilter.c: + frei0r: Remove custom get_unit_size implementation + This is already handled by the default one from GstVideoFilter + +2009-06-15 17:05:36 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + frei0r: Fix the klass of the filter elements + +2009-06-14 19:41:27 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Free type names + +2009-06-14 19:35:29 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rmixer.c: + frei0r: Unref the GstCollectPads instance on finalize + +2009-06-14 19:27:03 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Don't allow caps changes in PLAYING/PAUSED + Most frei0r source plugins generate output based on + previous output and creating a new instance on caps + changes will let the output start at 0 again. + +2009-06-14 19:21:34 +0200 Sebastian Dröge + + * gst/frei0r/Makefile.am: + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rmixer.c: + * gst/frei0r/gstfrei0rmixer.h: + freir0: Add support for frei0r mixer plugins + +2009-06-13 10:06:57 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Destroy the f0r_instance_t in stop() + +2009-06-12 22:04:14 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rsrc.c: + frei0r: Add the frei0r plugin type to the element name + This makes it easier to distinguish generators from filters, etc + +2009-06-12 22:00:20 +0200 Sebastian Dröge + + * gst/frei0r/Makefile.am: + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0rsrc.c: + * gst/frei0r/gstfrei0rsrc.h: + frei0r: Add support for frei0r source/generator plugins + +2009-06-12 15:13:29 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Allow the complete double range for double properties + The spec restricts it to [0,1] but some plugins are using the + complete double range. + +2009-06-12 15:07:26 +0200 Sebastian Dröge + + * gst/frei0r/gstfrei0r.c: + frei0r: Use better property nicks + +2009-06-12 14:59:28 +0200 Sebastian Dröge + + * configure.ac: + * gst/frei0r/Makefile.am: + * gst/frei0r/frei0r.h: + * gst/frei0r/gstfrei0r.c: + * gst/frei0r/gstfrei0r.h: + * gst/frei0r/gstfrei0rfilter.c: + * gst/frei0r/gstfrei0rfilter.h: + frei0r: First version of a frei0r wrapper plugin + Currently this only supports frei0r filters. + +2009-06-14 20:00:51 +0200 Maximilian Högner + + * gst/scaletempo/gstscaletempo.c: + scaletempo: Explicitely cast to signed integers to fix a segfault + Fixes bug #585660. + +2009-06-09 19:14:41 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + shapewipe: Implement basic QoS + This change is based on Tim's QoS implementation + for jpegdec. + +2009-06-09 18:45:19 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Proxy queries on the video pads to the correct peers + +2009-06-09 18:37:43 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Proxy bufferalloc on the video sinkpad + +2009-06-09 18:25:13 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Try to work inplace if possible + This saves one new, large allocation per frame for the + most cases. + +2009-06-16 18:46:49 +0100 Tim-Philipp Müller + + * gst/mxf/mxfdemux.c: + mxfdemux: fix stray semicolons that mess up if statement + +2009-06-11 13:42:20 +0100 Jan Schmidt + + * common: + * docs/plugins/Makefile.am: + docs: Bump common to correct upload-doc.mak, fix a comment in the doc Makefile + +2009-06-18 20:33:00 +0100 Jan Schmidt + + * configure.ac: + * win32/common/config.h: + Back to development -> 0.10.13.1 + +2009-06-18 08:53:12 +0100 Jan Schmidt + + * gst-plugins-bad.doap: + Add 0.10.13 release entry to the doap file + +=== release 0.10.13 === + +2009-06-18 08:29:56 +0100 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * win32/common/config.h: + Release 0.10.13 + +2009-06-17 21:56:56 +0100 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-06-16 17:09:26 +0300 Stefan Kost + + * gst/camerabin/camerabinimage.c: + camerabin: reset filename after capture to avoid racy when capturing again + If we don't reset the filename we cannot check if we still expect the filename + for a subsequent capture pass. The imagebin would good to paused and we set the + filename in that state. This trigers an error-message and would capture to the + old filename. + +2009-06-12 10:29:20 +0300 Stefan Kost + + * tests/check/Makefile.am: + * tests/check/elements/camerabin.c: + camerabin: cleanups in the tests + Sprinkle more logging to make it easier to follow. Specify a low framerate and + capture resolution to avoid tests timing out. Make the sinks sync to test closer + to reality. Fix Makefile to use uninstalled interface. + +2009-06-12 10:26:30 +0300 Stefan Kost + + * gst/camerabin/camerabinimage.c: + * gst/camerabin/gstcamerabin.c: + camerabin: set imagebin to PAUSED on capture and delayed filename setting + We need to set imagebin to PAUSED to not fail the bufferalloc. We also need to + keep the filesinks state locked until we have the filename for the run. + +2009-06-12 10:14:27 +0300 Stefan Kost + + * gst/selector/gstoutputselector.c: + outputselector: do the pad_alloc for the pad that is pending and have a fallback + We should do the pad_alloc for the pending pad if any, as we will switch to that + pad on next _chain() call. Also do a fallback alloc, if there is no output yet to + not fail state transitions in dynamic pipelines. + +2009-06-11 16:00:36 +0100 Jan Schmidt + + * win32/common/config.h: + win32: Bump win32 config.h version number too + +2009-06-05 22:43:50 +0100 Jan Schmidt + + * configure.ac: + * po/LINGUAS: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ja.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.12.3 pre-release + +2009-06-06 21:28:27 +0400 LRN + + * gst/debugutils/Makefile.am: + Added base libs to debug utils makefile + Fixes #585015 + +2009-06-07 10:55:59 +0200 Edward Hervey + + * tests/check/pipelines/metadata.c: + tests/metadata: Don't try tags we can't handle. Fixes #584945 + +2009-06-06 19:28:07 +0200 Edward Hervey + + * gst/hdvparse/Makefile.am: + hdvparse: Link against libm because we use pow(). + +2009-06-06 13:53:04 +0100 Jan Schmidt + + * tests/examples/Makefile.am: + examples: Don't build the mxf example if GTK isn't present. + +2009-06-06 13:17:49 +0100 Jan Schmidt + + * ext/apexsink/gstapexraop.c: + * ext/apexsink/gstapexsink.c: + apexsink: Fix compiler warnings + Fix compile warnings on solaris from bzero not being declared (use + memset instead), and strict-aliasing warnings (use a temporary + variable). + +2009-06-06 02:35:35 +0100 Tim-Philipp Müller + + * gst/id3tag/id3tag.c: + id3mux: init genre field in ID3v1 tag to an invalid number + So that it is not interpreted as 'Blues' if no genre is to be written. + +2009-06-06 01:05:49 +0100 Tim-Philipp Müller + + * gst/id3tag/gstid3mux.c: + id3mux: don't write ID3v1 tag until specifically instructed to do so + ID3v1 tags are one of the most broken and ill-designed things that + exist on this planet. Let's not write them by default. + +2009-06-06 00:58:46 +0100 Tim-Philipp Müller + + * gst/id3tag/id3tag.c: + id3mux: don't write empty ID3v1 tag + +2009-06-06 00:39:10 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-id3tag.xml: + * gst/id3tag/Makefile.am: + * gst/id3tag/gstid3mux.c: + * gst/id3tag/gstid3mux.h: + * gst/id3tag/gstid3tag.c: + * gst/id3tag/gstid3tag.h: + * gst/id3tag/gsttagmux.c: + * gst/id3tag/id3tag.c: + * gst/id3tag/id3tag.h: + id3tag: rename new id3tag element to id3mux replacing the one removed from -ugly + +2009-06-05 23:52:05 +0100 Jan Schmidt + + * gst/nsf/nes6502.c: + nsf: Fix compiler warning on Solaris. + A SEC() macro already exists on Solaris, causing warnings about + redefining it. + +2009-06-05 22:20:46 +0200 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Fix the build on Commander Thaytan's S10SP + +2009-06-05 19:53:09 +0100 Jan Schmidt + + * tests/check/elements/.gitignore: + gitignore: Ignore shapewipe unit test binary + +2009-06-05 19:32:26 +0100 Jan Schmidt + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-x264.xml: + * ext/Makefile.am: + * ext/x264/GstX264Enc.prs: + * ext/x264/Makefile.am: + * ext/x264/gstx264enc.c: + * ext/x264/gstx264enc.h: + * gst-plugins-bad.spec.in: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + Moved 'x264enc' from -bad to -ugly + +2009-06-05 21:17:55 +0300 Stefan Kost + + * gst/camerabin/Makefile.am: + * tests/check/Makefile.am: + camerabin: fix link order + Move local version up in the link order. + +2009-06-05 20:22:17 +0200 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Emit a GST_MESSAGE_ELEMENT with some goodness in it. + +2009-06-05 10:49:41 +0200 Edward Hervey + + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Add methods to get names of various values. + +2009-06-05 10:48:52 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Fix HDV private stream definition/caps. + +2009-06-05 10:47:41 +0200 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Rewrite from scratch. Handle both hdv-a and hdv-v + This time we analyze a lot more information. + Still need to re-add the message emission. + +2009-06-05 16:48:04 +0200 Wim Taymans + + * ext/celt/gstceltenc.c: + celtenc: correct framesize range + A CELT framesize can be between 64 and 512 samples. + Fix a typo in the bitrate property description. + +2009-05-27 11:33:01 +0300 Lasse Laukkanen + + * gst/camerabin/Makefile.am: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/camerabinpreview.c: + * gst/camerabin/camerabinpreview.h: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + camerabin: preview image sending optimization + * decouple image capturing from image post-processing and encoding + * post image-captured message after image is captured + * post preview-image message with snapshot of captured image + +2009-05-19 16:58:36 +0300 Lasse Laukkanen + + * gst/camerabin/camerabinimage.c: + camerabin: don't lose post processing element in first reset + +2009-05-12 12:49:33 +0300 Lasse Laukkanen + + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinvideo.c: + camerabin: add debug including dot graph writing + +2009-05-05 14:19:46 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: unblock if error occurs during capture + +2009-05-04 10:33:18 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabinphotography.c: + camerabin: ignore night mode handling if already in night mode + +2009-05-04 10:32:10 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: stop ongoing capture if changing resolution + +2009-04-23 18:15:43 +0300 Lasse Laukkanen + + * gst/camerabin/camerabinvideo.c: + camerabin: limit the size of video bin queue leading to view finder + We don't want to show old buffers in view finder. + +2009-04-22 12:29:14 +0300 Lasse Laukkanen + + * gst/camerabin/Makefile.am: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabinxoverlay.c: + * gst/camerabin/gstcamerabinxoverlay.h: + camerabin: don't proxy gst xoverlay interface + Default view finder sink in camerabin is autovideosink which doesn't + support xoverlay iface. If application decides to use another sink + that supports xoverlay, then it can use the interface directly. + +2009-04-20 17:06:14 +0300 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * gst/camerabin/gstcamerabinphotography.c: + camerabin: allow configuring photography settings when in NULL state + Cache the photography settings if set in NULL state and apply them later + +2009-04-20 17:05:49 +0300 Lasse Laukkanen + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photography: add functions to set/get all settings with one call + +2009-03-09 18:00:45 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: crop still image capture frame if necessary + If incoming still image capture frame aspect ratio differs from aspect + ratio that application requested, then apply crop to the frame. + +2009-06-05 10:25:26 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-adpcmdec.xml: + * docs/plugins/inspect/plugin-hdvparse.xml: + * docs/plugins/inspect/plugin-id3tag.xml: + docs: add inspect files for new plugins + +2009-06-05 10:16:23 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + docs: fix build of plugin docs by updating inspect templates + The xml inspect data of the debugutilsbad plugin didn't contain the + data for the fpsdisplaysink element (someone probably ran 'make udpate' + in docs/plugins with the old libgstfpsdisplaysink.so from before the + rename still around). + +2009-06-05 10:34:30 +0100 Tim-Philipp Müller + + * docs/plugins/xml/element-fpsdisplaysink-details.xml: + Revert "docs: add doc file fro new plugin" + This reverts commit 039ef3eb072555b7ca38fc351ca386bb680ccccc. + We don't track the stuff in xml/ in git. + +2009-06-05 11:18:31 +0300 Stefan Kost + + * docs/plugins/xml/element-fpsdisplaysink-details.xml: + docs: add doc file fro new plugin + +2009-06-01 16:31:42 +0300 Lasse Laukkanen + + * gst/selector/gstoutputselector.c: + output-selector: serialize setting and actual changing of new active pad + +2009-05-04 12:29:54 +0300 Lasse Laukkanen + + * gst/selector/gstoutputselector.c: + output-selector: unref latest buffer also when resending has been disabled + +2009-04-16 17:32:03 +0300 Lasse Laukkanen + + * gst/selector/gstoutputselector.c: + output-selector: keep ref to buffer for resending only if explicitly requested + +2009-06-04 19:08:16 +0200 Wim Taymans + + * gst/selector/gstinputselector.c: + inputselector: don't leak pads in iterator + +2009-06-04 16:29:31 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdesc.c: + mpegdemux: Add a GST_MEMDUMP line in the descriptor parsing + Make it possible to see descriptor contents in the debug output + (GST_DEBUG=mpegtsdesc:9), and remove a stray semi-colon. + +2009-06-04 16:11:16 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Avoid passing the custom GST_FLOW_NEED_MORE_DATA upstream + Don't return GST_FLOW_NEED_MORE_DATA from the chain function at the end + of files. + +2009-06-04 08:56:29 +0200 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Notify when the tags property of the selector sinkpads changes + First part of bug #584686. + +2009-06-04 08:56:14 +0200 Sebastian Dröge + + * tests/check/elements/shapewipe.c: + shapewipe: Increase timeout of the unit test + +2009-06-03 23:35:36 +0100 Tim-Philipp Müller + + * configure.ac: + Bump core/base requirements to released versions + +2009-06-02 11:36:01 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + add two new plugins to spec file + +2009-06-02 11:23:37 +0100 Christian Schaller + + * gst/dvdspu/Makefile.am: + dvdspu: add missing header to Makefile.am: gstspu-common.h + +2009-06-02 01:09:32 +0100 Tim-Philipp Müller + + * ext/dirac/Makefile.am: + dirac: use GST_CXXFLAGS instead of GST_CFLAGS for c++ compilers + Fixes compiler message about passing -Wdeclaration-after-statement + to the C++ compiler. + +2009-06-01 15:53:27 +0100 Tim-Philipp Müller + + * gst/aacparse/gstaacparse.c: + aacparse: fix sample rate extraction from codec data + In one case we extracted the sample rate index from the codec data + and saved it as sample rate rather than getting the real sample + rate from the table. Fix that, and also make sure we don't access + non-existant table entries by adding a small helper function that + guards against out-of-bounds access in case of invalid input data. + +2009-06-01 14:02:33 +0100 Tim-Philipp Müller + + * gst/aacparse/gstaacparse.c: + * gst/amrparse/gstamrparse.c: + aacparse, amrparse: remove bogus gst_pad_fixate_caps() calls + +2009-06-01 13:56:18 +0100 Tim-Philipp Müller + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: propagate return value of GstBaseParse::set_sink_caps() + gst_base_parse_sink_setcaps() presumably should fail if the subclass + returns FALSE from its ::set_sink_caps() function. + +2009-06-01 13:47:01 +0100 Tim-Philipp Müller + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: don't try to GST_LOG an already-freed caps string + The proper way to log caps is via GST_PTR_FORMAT anyway. + +2009-06-01 13:05:35 +0100 Tim-Philipp Müller + + * gst/aacparse/gstaacparse.c: + * tests/check/elements/aacparse.c: + aacparse: set channels and rate on output caps, and keep codec_data + Create output caps from input caps, so we maintain any fields we + might get on the input caps, such as codec_data or rate and channels. + Set channels and rate on the output caps if we don't have input caps + or they don't contain such fields. We do this partly because we can, + but also because some muxers need this information. Tagreadbin will + also be happy about this. + +2009-06-01 22:42:08 +0200 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmuxmap.c: + gppmux: enhance ftyp brand heuristic. Fixes #584360. + +2009-06-01 21:24:27 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Fix some issues that were exposed by the new unit test + +2009-06-01 21:24:12 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/shapewipe.c: + shapewipe: Add unit test for shapewipe + +2009-05-31 21:33:01 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-shapewipe.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst/shapewipe/gstshapewipe.c: + shapewipe: Add documentation and integrate into the build system + +2009-05-31 20:24:44 +0100 Tim-Philipp Müller + + * gst/sdp/gstsdpdemux.c: + sdpdemux: include glib.h before checking if G_OS_WIN32 is defined + +2009-05-31 20:23:19 +0100 Tim-Philipp Müller + + * .gitignore: + .gitignore: ignore new shapewipe example binary + +2009-05-31 18:23:50 +0200 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Setting rank to NONE so it doesn't get picked up by playbin2. + +2009-05-31 18:23:08 +0200 Edward Hervey + + * gst/hdvparse/gsthdvparse.c: + hdvparse: Emit application message with the parsed information. + +2009-05-31 14:15:11 +0200 Edward Hervey + + * configure.ac: + * gst/hdvparse/Makefile.am: + * gst/hdvparse/gsthdvparse.c: + * gst/hdvparse/gsthdvparse.h: + hdvparse: New element for parsing private/hdv-a1 streams. + +2009-05-29 21:07:26 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + shapewipe: Adjust border to still have everything transparent at 1.0 and the other way around + +2009-05-29 16:55:25 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * tests/examples/shapewipe/shapewipe-example.c: + shapewipe: Divide the border value by two, otherwise we use a twice a wide border + +2009-05-29 16:51:50 +0200 Sebastian Dröge + + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + * tests/examples/shapewipe/shapewipe-example.c: + shapewipe: Add border property to allow smooth borders + ...and use a border of 0.01 in the example application. + +2009-05-29 15:44:51 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Fix bogus uninitialised variable access + Typo in the previous commit + +2009-05-29 15:01:42 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Use the ISO 639 language code descriptor to send tags. + If there is an ISO 639 language descriptor for a stream, send a language + code tag so that players can show a meaningful language for the audio and + subtitle streams. + +2009-05-29 16:00:16 +0200 Sebastian Dröge + + * tests/examples/shapewipe/Makefile.am: + shapewipe: Fix Makefile of the example application + +2009-05-29 15:32:24 +0200 Sebastian Dröge + + * configure.ac: + * gst/shapewipe/Makefile.am: + * gst/shapewipe/gstshapewipe.c: + * gst/shapewipe/gstshapewipe.h: + * tests/examples/Makefile.am: + * tests/examples/shapewipe/Makefile.am: + * tests/examples/shapewipe/shapewipe-example.c: + shapewipe: Add a simple shapewipe transition filter & example application + +2009-05-28 17:37:44 -0400 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Transform the right session sdes message + Fixes #584165 + +2009-05-28 17:33:10 -0400 Olivier Crête + + * gst/rtpmanager/rtpsource.c: + Add ssrc to application/x-rtp-source-sdes structure + +2009-05-28 23:12:13 +0100 Tim-Philipp Müller + + * gst/rawparse/gstaudioparse.c: + audioparse: add support for A-Law and µ-Law + +2009-05-28 23:08:17 +0100 Tristan Matthews + + * gst/dvdspu/gstspu-pgs.c: + gstspu: Fix compiler warnings on OS/X + Fix some warnings for format string args and uninitialized vars on OS/X + Fixes: #584164 + Signed-off-by: Jan Schmidt + +2009-05-28 13:56:10 +0200 Mark Nauwelaerts + + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: + qtmux: use different stsd atom type for H263 for ISO and QT variants + Fixes #584114. + +2009-05-28 13:07:37 +0200 Mark Nauwelaerts + + * configure.ac: + soundtouch: fix detection of libsoundtouch >= 1.4 + +2009-05-28 13:09:24 +0200 Mark Nauwelaerts + + * gst/amrparse/gstamrparse.c: + * gst/amrparse/gstamrparse.h: + amrparse: consider header size in byte <-> time conversions + +2009-05-26 19:43:53 +0200 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + baseparse: fix debug category + +2009-05-28 10:38:50 +0300 Stefan Kost + + * gst/selector/gstoutputselector.h: + selector: remove not needed instance var (previous commit). + +2009-05-11 16:12:54 +0300 Stefan Kost + + * ext/jack/gstjackaudioclient.c: + * ext/jack/gstjackaudiosink.c: + jack: when stopping playback, do one more cycle to flush the port. Fixes #582167 + The gst_jack_audio_client_set_active() flags the port as deactivating and uses + a GCond to wait until the jack_process_cb() has run once more and cleared the + flag. This way the client zero's the buffer. This happens if one manyally go + to PAUSED and then to READY, while leting the mainloop run inbetween. + +2009-05-28 10:12:58 +0300 Stefan Kost + + * gst/selector/gstoutputselector.c: + * gst/selector/gstoutputselector.h: + outputselector: implement pad_alloc on active pad. + +2009-05-27 22:54:51 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/gstmpegdemux.h: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnaudiomunge.c: + resindvd: Create all the audio streams of all formats + Enable creation of the demuxer pads for all audio streams, even types we + don't yet support. This means that unsupported types (LPCM, DTS) are output, + but not linked to anything yet. If only unsupported streams are available, + the user hears silence instead of having the pipeline not pre-roll correctly. + This is a prerequisite for hooking up the automatic decoder switching. + +2009-05-27 11:03:14 +0200 Wim Taymans + + * gst/rtpmanager/rtpsource.c: + rtpsouce: the network address is in network order + Bring the network address in netowkr byte order to the host order. + +2009-05-27 00:51:45 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + gstspu: Convert g_warnings to GST_ERROR, and fix format specifiers + Use G_GSSIZE_FORMAT for printing pointer differences, which should work on + both 32-bit and 64-bit systems. + Use GST_ERROR instead of g_warning for printing messages about unknown + packet contents. + +2009-05-27 00:47:05 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-vobsub-render.c: + gstspu: Fix a nasty regression, with DVDs randomly crashing + Use the local wrapper function when clearing the compositing buffers to + ensure the correct portion is being cleared. + +2009-05-26 19:38:54 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: LPCM streams are only from 0xa0 to 0xaf. + Fix the same bug as the previous commit, but in resindvd's copy of + mpegdemux. + +2009-05-26 18:47:32 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: Only treat streams from 0xa0 to 0xaf as LPCM, not 0xa0..0xbf + Don't treat some streams (Private Stream 2) as LPCM when they're not. Fixes + playback of files that have private streams in them now that the PES filter + emits such packets. + +2009-05-26 18:43:18 +0100 Tim-Philipp Müller + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: fix printf formats to avoid compiler warnings + +2009-05-26 17:19:35 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From 6ab11d1 to c572721 + +2009-05-23 23:19:05 +0100 Jan Schmidt + + * gst/dvdspu/Makefile.am: + * gst/dvdspu/gstdvdspu-render.c: + * gst/dvdspu/gstdvdspu.c: + * gst/dvdspu/gstdvdspu.h: + * gst/dvdspu/gstspu-common.h: + * gst/dvdspu/gstspu-pgs.c: + * gst/dvdspu/gstspu-pgs.h: + * gst/dvdspu/gstspu-vobsub-render.c: + * gst/dvdspu/gstspu-vobsub.c: + * gst/dvdspu/gstspu-vobsub.h: + gstspu: Implement PGS rendering and alpha blending + Refactor the DVD subpicture compositing, switching it to 8-bit alpha + calculations. Reuse some of the resulting code to implement PGS + subpicture blending. + Implement parsing and collecting of composition objects properly, but + assuming a single active window and colour palette for now. I need more + PGS samples. + +2009-05-22 11:13:59 +0100 Jan Schmidt + + * gst/dvdspu/Makefile.am: + * gst/dvdspu/gstdvdspu.c: + * gst/dvdspu/gstspu-vobsub.c: + * gst/dvdspu/gstspu-vobsub.h: + dvdspu: Move a bunch of vobsub specific logic to a separate file. + Start separating out the vobsub logic in preparation for creating + separate renderer objects for each subpicture format. + +2009-05-22 11:12:52 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: Add copyright header and includes to the PGS handler + +2009-05-22 10:15:44 +0100 Jan Schmidt + + * gst/dvdspu/gstspu-pgs.c: + dvdspu: Make the PGS dumping less verbose + +2009-05-21 23:45:43 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Collect entire PGS packets and queue as events + Collect fragmented PGS packets and submit as complete events for + processing at the correct moment. + +2009-05-20 08:55:40 +0100 Jan Schmidt + + * gst/dvdspu/Makefile.am: + * gst/dvdspu/gstdvdspu.c: + * gst/dvdspu/gstdvdspu.h: + * gst/dvdspu/gstspu-pgs.c: + * gst/dvdspu/gstspu-pgs.h: + dvdspu: Add simple PGS handler that dumps the packet info + Add setcaps logic on the subpicture sink pad for configuring + which subpicture format is arriving. + Add the first piece of PGS subpicture handling by dumping the stream + contents out to the terminal as the packets arrive. + Add some more debug. + Don't calculate the running time for our subpicture packets twice, + once is enough. + +2009-05-21 15:22:58 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Add a simple default colour table. + When we're not provided with a palette in advance, draw with a grey + colour or two, instead of YUV green. + +2009-05-21 11:13:54 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + mpegdemux: Add sparse stream filling. + First stab at sending new-segment events to effect sparse stream + updates. + +2009-05-21 00:41:47 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + mpegdemux: Add support for outputting sub-picture streams found in files. + Output subpicture streams when they are found on the private stream ID. + Don't strip off the first byte of such packets when pushing. + +2009-05-20 08:50:37 +0100 Jan Schmidt + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + * gst/mpegdemux/gstpesfilter.h: + mpegtsdemux: Add mapping for DVD and Bluray subpicture streams. + Add output subpicture pads for DVD (video/x-dvd-subpicture) and Bluray PGS + (subpicture/x-pgs) streams. Remove an unused variable from + the PES filter. + +2009-05-25 00:25:07 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: Fix subpicture timing in some cases + Make sure we send events to all pads. Unmark the notlinked flag on + freshly selected pads to ensure they get data. + +2009-05-22 14:02:38 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: Try a different approach to segment filling. + Restore the old segment update behaviour, and instead extend the + close segment stop time if the SCR (last_stop) overruns the calculated + stop position. + +2009-05-21 11:10:13 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: Minor change to inline a function in the demuxer + +2009-05-20 19:31:24 +0100 Jan Schmidt + + * tests/check/Makefile.am: + states: Ignore the camerabin for the states test + It accesses the video device, which isn't generally desirable for the + state test. + +2009-05-22 13:07:38 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Don't accidentally lose the colour palette when flushing the SPU + Fixes racy startup on DVDs where it sometimes gets entirely the wrong set + of colours in the menus and subtitles. + +2009-05-26 15:40:52 +0200 Wim Taymans + + * gst/rtpmanager/rtpsource.c: + rtpsource: byteswap the port from GstNetAddress + Since the port in GstNetAddress is in network order we might need to byteswap it + before adding it to the source statistics. + +2009-05-11 19:30:34 +0200 Edward Hervey + + * gst/mpegdemux/gstpesfilter.c: + gstpesfilter: Directly use gst_adapter_take_buffer(). + +2009-05-25 16:27:34 +0200 Edward Hervey + + * gst/mpegdemux/gstpesfilter.c: + gstpesfilter: Don't peek the adapter if we don't have enough data. + +2009-05-25 16:25:42 +0200 Edward Hervey + + * gst/mpegdemux/gstpesfilter.c: + gstpesfilter: Don't skip private streams PES but push them out. + The one thing we *DO* need to do for those streams is to skip all + the PTS/DTS/Scrambling/DSM/extension/... handling. + +2009-05-25 15:21:52 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Ignore NULL packets as early as possible. + This avoids: + * creating a MpegTSStream structure for nothing + * processing packet data for nothing + +2009-05-25 15:21:12 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Add mapping for HDV private streams + +2009-05-25 17:24:32 +0200 Mathias Hasselmann + + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + neonhttp: add property to support SS cerificates + Add a property to support self-signed certificates in neonhttpsrc. This property + is FALSE by default. + Fixes #511097 + +2009-05-25 13:46:29 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: remove ptdemux ghostpads + +2009-05-25 13:33:20 +0200 Wim Taymans + + * tests/check/elements/rtpbin.c: + tests: add receive rtpbin unit test + +2009-05-25 11:18:57 +0200 Wim Taymans + + * ext/x264/gstx264enc.c: + * ext/x264/gstx264enc.h: + x264enc: add multipass-cache-file property + Fixes #583627 + +2009-05-23 13:11:28 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + Update spec file + +2009-05-22 16:56:52 -0700 Michael Smith + + * common: + * configure.ac: + * gst/adpcmdec/Makefile.am: + * gst/adpcmdec/adpcmdec.c: + adpcmdec: Add new plugin for ms-adpcm decoding. + +2009-05-20 16:46:49 +0200 Edward Hervey + + * gst/mpegvideoparse/mpegpacketiser.c: + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + mpegvideoparse: Detect interlaced content and set it on outgoing caps. + I also added the parsing of all the other bits in the sequence extension + header in case we need it later. + +2009-05-22 16:41:19 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: add to new signal to remove SSRC pads + +2009-05-22 16:35:20 +0200 Ali Sabil + + * gst/rtpmanager/gstrtpbin-marshal.list: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + ssrcdemux: emit signal when pads are removed + Add action signal to clear an SSRC in the ssrc demuxer. + Add signal to notify of removed ssrc. + See #554839 + +2009-05-22 15:45:19 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: use our ghostpads instead of its target + Since we keep a reference to our ghostpads, we can use them to track sessions. + This avoid us having to mess with the target of the ghostpad. + +2009-05-22 15:37:29 +0200 Wim Taymans + + * tests/check/elements/rtpbin.c: + tests: more rtpbin checks + +2009-05-22 15:36:17 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: don't warn when getting request pads twice + Allow getting the request pads multiple times, just return the previously + created pads. + +2009-05-22 13:47:30 +0200 Wim Taymans + + * gst/rtpmanager/rtpsource.c: + rtpsource: add RTP and RTCP source address + Add the RTP and RTCP sender addresses in the stats structure. + +2009-05-22 13:45:15 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: reuse source code for SDES + Reuse the RTPSource object property instead of duplicating code. + +2009-05-22 13:44:17 +0200 Wim Taymans + + * tests/check/elements/rtpbin.c: + tests: add more rtpbin tests + +2009-05-22 12:23:27 +0200 Wim Taymans + + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/rtpbin.c: + tests: add rtpbin unit test + Add the beginnings of an rtpbin unit test + Add some more stuff to .gitignore + +2009-05-22 12:20:13 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: set target state on new elements + Set the state on newly added elements to the state of the parent. + Add some debug info and do some cleanups + +2009-05-22 11:59:17 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: unref requests pads after releasing + +2009-05-21 16:00:46 +0200 Wim Taymans + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: fix memleaks and refcounts + Use correct constants for PID_type so that we clear the right filter. + provide_clock must return a ref to a clock. + +2009-05-22 09:55:20 +0100 Tim-Philipp Müller + + * autogen.sh: + * configure.ac: + autotools: move -Wno-portability for automake to configure.ac + +2009-05-22 09:54:57 +0100 Tim-Philipp Müller + + * gst/id3tag/gstid3tag.c: + * gst/id3tag/gstid3tag.h: + * gst/id3tag/id3tag.c: + id3tag: canonicalise function names + +2009-05-22 09:51:29 +0100 Tim-Philipp Müller + + * gst/id3tag/gstid3tag.c: + * gst/id3tag/gstid3tag.h: + * gst/id3tag/gsttagmux.c: + id3tag: change GType to GstId3Tag so it doesn't conflict with the id3tag plugin in -ugly + +2009-05-22 01:29:33 +0100 Tim-Philipp Müller + + * win32/common/config.h: + win32: update config.h + +2009-05-22 01:27:09 +0100 Tim-Philipp Müller + + * gst/id3tag/gsttagmux.c: + id3tag: register GType of the base class with a less generic name + .. so we can easily move the base class into -base later without + causing GType name conflicts. + +2009-05-22 01:04:02 +0100 Tim-Philipp Müller + + * common: + * m4/gst-fionread.m4: + m4: fix 'suspicious cache value id' warnings in gst-fionread.m4 + And update common to pull in a related fix from there. + +2009-05-22 01:43:50 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Implement releasing the streams + See #561752 + +2009-05-22 01:16:11 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Keep jb signals handler + Keep the signal handlers so they can be disconnected at release time + See #561752 + +2009-05-22 01:12:57 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: use the right lock for the sessions + Use the right lock when iterating the sessions. + +2009-05-22 01:03:55 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Free session if request pads are released + Free the session when all the request pads are released. + Don't mess with the session list in free_session as it is called from a foreach + on that list. + Set the state of the upstream element to NULL first. + See #561752 + +2009-05-22 00:51:53 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Implement relasing of the rtp recv pad + +2009-05-22 00:44:51 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Implement releasing of rtp send pads + +2009-05-22 00:34:36 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Implement release of the recv rtcp pad + See #561752 + +2009-05-22 00:16:19 +0200 Olivier Crête + + * gst/rtpmanager/gstrtpbin.c: + rtpbin: Implement releasing of rtcp src pad + See #561752 + +2009-05-18 23:38:59 +0100 Jan Schmidt + + * ext/dts/gstdtsdec.c: + * ext/dts/gstdtsdec.h: + dtsdec: Reconcile element code with a52dec changes + Re-work the dtsdec element code to unify it with changes made it a52dec, + including support for reverse playback and dynamic channel negotiation + on the source pad. + +2009-05-21 21:35:32 +0100 Jan Schmidt + + * win32/common/config.h: + win32: Update the win32 config.h + +2009-05-18 23:21:47 +0200 Wim Taymans + + * gst/sdp/gstsdpdemux.c: + * gst/sdp/gstsdpdemux.h: + sdpdemux: rework RTCP sending and RTP receiving + When we are dealing with multiast, create the udp src and sink elements pointing + to the multicast addresses. When we are doing unicast, receive data on the local + ports and don't send RTCP because we don't know where we have to send it. + Fixes #583188 + +2009-05-21 13:15:46 -0700 Michael Smith + + * configure.ac: + * gst/id3tag/Makefile.am: + * gst/id3tag/gstid3tag.c: + * gst/id3tag/gstid3tag.h: + * gst/id3tag/gsttagmux.c: + * gst/id3tag/gsttagmux.h: + * gst/id3tag/id3tag.c: + * gst/id3tag/id3tag.h: + id3tag: Add new id3 tagging plugin, supports v1, v2.3, and v2.4. + By default, does v1 and v2.3, but there are properties to select. + Will hopefully replace id3mux, id3v2mux, in the not-too-distant future. + +2009-05-21 21:02:55 +0100 Jan Schmidt + + * configure.ac: + Back to hacking -> 0.10.12.1 + +=== release 0.10.12 === + +2009-05-20 22:31:54 +0100 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.12 + +2009-05-20 20:44:12 +0100 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-05-20 17:10:40 +0200 Edward Hervey + + * gst/mxf/mxfmetadata.c: + mxf: Fix frame_layout for non-interlaced formats. Fixes #583337 + +2009-05-16 01:58:33 +0100 Jan Schmidt + + * ChangeLog: + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.11.3 pre-release + +2009-05-16 01:53:15 +0100 Jan Schmidt + + * win32/MANIFEST: + win32: Add directdraw project files to the win32 manifest + +2009-05-16 01:14:23 +0100 Jan Schmidt + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-directdraw.xml: + * sys/Makefile.am: + Moved 'directdraw' from -good to -bad + +2007-06-15 09:13:55 +0000 Jan Schmidt + + [MOVED FROM GOOD] win32/vs6/: Mark *.dsp & *.dsw as binary files and convert to DOS line endings, as they don't load into VS6 correctly... + Original commit message from CVS: + * win32/vs6/autogen.dsp: + * win32/vs6/gst_plugins_good.dsw: + * win32/vs6/libgstalaw.dsp: + * win32/vs6/libgstalpha.dsp: + * win32/vs6/libgstalphacolor.dsp: + * win32/vs6/libgstapetag.dsp: + * win32/vs6/libgstaudiofx.dsp: + * win32/vs6/libgstauparse.dsp: + * win32/vs6/libgstautodetect.dsp: + * win32/vs6/libgstavi.dsp: + * win32/vs6/libgstcutter.dsp: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + * win32/vs6/libgsteffectv.dsp: + * win32/vs6/libgstflx.dsp: + * win32/vs6/libgstgoom.dsp: + * win32/vs6/libgsticydemux.dsp: + * win32/vs6/libgstid3demux.dsp: + * win32/vs6/libgstinterleave.dsp: + * win32/vs6/libgstjpeg.dsp: + * win32/vs6/libgstlevel.dsp: + * win32/vs6/libgstmatroska.dsp: + * win32/vs6/libgstmedian.dsp: + * win32/vs6/libgstmonoscope.dsp: + * win32/vs6/libgstmulaw.dsp: + * win32/vs6/libgstmultipart.dsp: + * win32/vs6/libgstqtdemux.dsp: + * win32/vs6/libgstrtp.dsp: + * win32/vs6/libgstrtsp.dsp: + * win32/vs6/libgstsmpte.dsp: + * win32/vs6/libgstspeex.dsp: + * win32/vs6/libgstudp.dsp: + * win32/vs6/libgstvideobalance.dsp: + * win32/vs6/libgstvideobox.dsp: + * win32/vs6/libgstvideocrop.dsp: + * win32/vs6/libgstvideoflip.dsp: + * win32/vs6/libgstvideomixer.dsp: + * win32/vs6/libgstwaveform.dsp: + * win32/vs6/libgstwavenc.dsp: + * win32/vs6/libgstwavparse.dsp: + Mark *.dsp & *.dsw as binary files and convert to DOS line + endings, as they don't load into VS6 correctly otherwise. + +2007-02-11 15:26:49 +0000 Sébastien Moutte + + [MOVED FROM GOOD] Makefile.am: Add win32 MANIFEST + Original commit message from CVS: + * Makefile.am: + Add win32 MANIFEST + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Clear unused code and add comments. + Remove yuv from template caps, it only supports RGB + actually. + Implement XOverlay interface and remove window and fullscreen + properties. + Add debug logs. + Test for blit capabilities to return only the current colorspace if + the hardware can't blit for one colorspace to another. + * sys/directsound/gstdirectsoundsink.c: + Add some debugs. + * win32/MANIFEST: + Add VS7 project files and solution. + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + * win32/vs6/libgstqtdemux.dsp: + Update project files. + +2006-11-01 10:19:18 +0000 Sergey Scobich + + [MOVED FROM GOOD] sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523) + Original commit message from CVS: + Patch by: Sergey Scobich + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdrawsink_window_thread), + (gst_directdrawsink_create_default_window): + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundsink.c: + Wait until the window is created before using it; guard unistd.h + includes with HAVE_UNISTD_H. (#366523) + * win32/vs8/libgstdirectdraw.vcproj: + * win32/vs8/libgstdirectsound.vcproj: + Update project files. + +2006-07-24 21:43:06 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer. + Original commit message from CVS: + * sys/directsound/gstdirectsoundsink.h: + * sys/directsound/gstdirectsoundsink.c: + Add an attenuation property that will directly attenuate the + directsound buffer. + Change the size of the directsound secondary buffer to a half second. + Add more debug logs. + Add a lock to protect dsound buffer write access. + Fix a bad implementation of reset. + * sys/directsound/gstdirectdrawsink.c: + * sys/directsound/gstdirectdrawsink.h: + Add a keep_aspect_ratio property. + Do not use overlay if not supported. + Add more debug logs. + Remove overwrite of WM_ERASEBKGND message handling. It was not + redrawing border when keep_aspect_ratio was enabled. + * win32/common/config.h: + update version waiting an auto-generated config.h + +2006-03-03 23:45:23 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection + Original commit message from CVS: + * sys/directdraw: + * sys/directsound: + sinks are now using GST_RANK_PRIMARY to be used with autodectection + * win32/vs6: + project files updated to fix some bugs + * win32/vs7: + * win32/vs8: + vs7 and vs8 project files added + +2006-01-05 23:17:44 +0000 Sébastien Moutte + + * win32/vs6/libgstdirectdraw.dsp: + [MOVED FROM GOOD] added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ... + Original commit message from CVS: + 2006-01-05 Sebastien Moutte + * added sys/directdraw + * added sys/directsound + * added win32/vs6/gst_plugins_bad.dsw + * added win32/vs6/libgstdirectsound.dsp + * added win32/vs6/libgstdirectdraw.dsp + * added win32/common/config.h + +2009-02-27 20:40:31 +0100 LRN + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] directdrawsink: Fix type mismatches + Fixes bug #573343. + +2009-01-29 11:07:59 +0200 Stefan Kost + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] Remove version numbers from a few gst-launch examples. + The majority of the examples doe not use -0.10 and this will also help us to maintain the docs. + +2009-01-29 10:10:08 +0200 Stefan Kost + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] Update and add documentation for platform specific plugins (sys). + Link to properties. Correct titles for examples. Fix examples. + +2008-11-04 12:28:34 +0000 Stefan Kost + + [MOVED FROM GOOD] Don't install static libs for plugins. Fixes #550851 for -good. + Original commit message from CVS: + * ext/aalib/Makefile.am: + * ext/annodex/Makefile.am: + * ext/cairo/Makefile.am: + * ext/dv/Makefile.am: + * ext/esd/Makefile.am: + * ext/flac/Makefile.am: + * ext/gconf/Makefile.am: + * ext/gdk_pixbuf/Makefile.am: + * ext/hal/Makefile.am: + * ext/jpeg/Makefile.am: + * ext/ladspa/Makefile.am: + * ext/libcaca/Makefile.am: + * ext/libmng/Makefile.am: + * ext/libpng/Makefile.am: + * ext/mikmod/Makefile.am: + * ext/pulse/Makefile.am: + * ext/raw1394/Makefile.am: + * ext/shout2/Makefile.am: + * ext/soup/Makefile.am: + * ext/speex/Makefile.am: + * ext/taglib/Makefile.am: + * ext/wavpack/Makefile.am: + * gst/alpha/Makefile.am: + * gst/apetag/Makefile.am: + * gst/audiofx/Makefile.am: + * gst/auparse/Makefile.am: + * gst/autodetect/Makefile.am: + * gst/avi/Makefile.am: + * gst/cutter/Makefile.am: + * gst/debug/Makefile.am: + * gst/effectv/Makefile.am: + * gst/equalizer/Makefile.am: + * gst/flx/Makefile.am: + * gst/goom/Makefile.am: + * gst/goom2k1/Makefile.am: + * gst/icydemux/Makefile.am: + * gst/id3demux/Makefile.am: + * gst/interleave/Makefile.am: + * gst/law/Makefile.am: + * gst/level/Makefile.am: + * gst/matroska/Makefile.am: + * gst/median/Makefile.am: + * gst/monoscope/Makefile.am: + * gst/multifile/Makefile.am: + * gst/multipart/Makefile.am: + * gst/oldcore/Makefile.am: + * gst/qtdemux/Makefile.am: + * gst/replaygain/Makefile.am: + * gst/rtp/Makefile.am: + * gst/rtsp/Makefile.am: + * gst/smpte/Makefile.am: + * gst/spectrum/Makefile.am: + * gst/udp/Makefile.am: + * gst/videobox/Makefile.am: + * gst/videocrop/Makefile.am: + * gst/videofilter/Makefile.am: + * gst/videomixer/Makefile.am: + * gst/wavenc/Makefile.am: + * gst/wavparse/Makefile.am: + * sys/directdraw/Makefile.am: + * sys/directsound/Makefile.am: + * sys/oss/Makefile.am: + * sys/osxaudio/Makefile.am: + * sys/osxvideo/Makefile.am: + * sys/sunaudio/Makefile.am: + * sys/v4l2/Makefile.am: + * sys/waveform/Makefile.am: + * sys/ximage/Makefile.am: + Don't install static libs for plugins. Fixes #550851 for -good. + +2008-08-21 21:56:19 +0000 Ole André Vadla Ravnås + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_buffer_alloc, gst_directdraw_sink_bufferpool_clear): + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_buffer_alloc, + gst_directdraw_sink_bufferpool_clear): + Fix two more buffer ref leaks. + +2008-08-21 15:28:09 +0000 Ole André Vadla Ravnås + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Fix buffer ref leak. + Original commit message from CVS: + Patch by: Ole André Vadla Ravnås + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_show_frame): + Fix buffer ref leak. + +2008-05-07 15:33:52 +0000 Haakon Sporsheim + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_setup_ddraw): Do IDirectDrawClipper_SetHWnd() if the window I... + Original commit message from CVS: + patch by: Haakon Sporsheim + * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_setup_ddraw): + Do IDirectDrawClipper_SetHWnd() if the window ID has already been + set after creating the clipper. + +2008-05-07 15:28:06 +0000 Haakon Sporsheim + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame): Added checking of surface lost case after an uns... + Original commit message from CVS: + patch by: Haakon Sporsheim + * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame): + Added checking of surface lost case after an unsuccessful + IDirectDrawSurface7_Lock() call. + If surface is lost, return GST_FLOW_OK. + +2008-05-07 15:19:47 +0000 Haakon Sporsheim + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame, + Original commit message from CVS: + patch by: Haakon Sporsheim + * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_show_frame, + WndProc, gst_directdraw_sink_window_thread): + Improved Windows message loop and fixed window destruction issue. + When the window which DirectDraw is rendering to is destroyed, the + render/show_frame function will return GST_FLOW_ERROR. + Partially fixes #520885. + +2008-05-07 15:09:10 +0000 Haakon Sporsheim + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps): Fixed mid stream resolution change bug, the offscr... + Original commit message from CVS: + patch by: Haakon Sporsheim + * sys/directdraw/gstdirectdrawsink.c (gst_directdraw_sink_set_caps): + Fixed mid stream resolution change bug, the offscreen surface is now + released when set_caps is called. + Partially fixes #520885. + +2008-05-07 14:56:22 +0000 Ole André Vadla Ravnås + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c + (gst_directdraw_sink_buffer_alloc): + Make it so that gst_directdraw_sink_buffer_alloc uses the right + width/height. + Especially when looking through the pool of buffers, make sure that + the width/height of caps is used instead of the already negotiated + dimensions. + For example if a buffer with different caps is requested, i.e. + higher resolution, the caller would get a buffer with the old + dimensions and thus corrupt the heap. + +2008-05-07 14:43:39 +0000 Ole André Vadla Ravnås + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c + (gst_directdraw_sink_buffer_alloc): + Clear the flags on recycled buffers from buffer_alloc. + Partially fixes #520885. + The right fix this time. + +2008-05-07 14:39:45 +0000 Ole André Vadla Ravnås + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c + (gst_directdraw_sink_buffer_alloc): + Reverting previous commit, it had it all mixed up, was for a different + patch (major automation screw-up). Sorry! + +2008-05-07 13:48:28 +0000 Ole André Vadla Ravnås + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c + (gst_directdraw_sink_buffer_alloc): + Clear the flags on recycled buffers from buffer_alloc. + Partially fixes #520885. + +2008-02-12 12:22:48 +0000 Sebastian Dröge + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Properly chain up finalize functions. Fixes bug #515980. + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: + (gst_ddrawsurface_class_init), (gst_ddrawsurface_finalize), + (gst_directdraw_sink_finalize): + Properly chain up finalize functions. Fixes bug #515980. + +2008-01-07 16:41:00 +0000 Tim-Philipp Müller + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: FALSE is not a gpointer. + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_window_thread): + FALSE is not a gpointer. + +2008-01-05 21:20:08 +0000 Julien Moutte + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Make sure we create our internal window only when we need it. That will give a ch... + Original commit message from CVS: + 2008-01-05 Julien Moutte + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_set_window_id), + (gst_directdraw_sink_set_caps), + (gst_directdraw_sink_change_state), + (gst_directdraw_sink_buffer_alloc), + (gst_directdraw_sink_draw_borders), + (gst_directdraw_sink_show_frame), + (gst_directdraw_sink_setup_ddraw), + (gst_directdraw_sink_window_thread), + (gst_directdraw_sink_get_ddrawcaps), + (gst_directdraw_sink_surface_create): Make sure we create our + internal window only when we need it. That will give a chance to + the application to get the prepare-xwindow-id bus message. Draw + black borders when keeping aspect ratio. Handle the case where + our + rendering window disappears (closed or errors) like other sinks + do. Various 80 columns fixes, improve state change order. That + element could need some more love. + +2007-09-22 08:12:57 +0000 Thomas Vander Stichele + + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + [MOVED FROM GOOD] fix header and comments + Original commit message from CVS: + fix header and comments + +2007-06-14 12:14:24 +0000 Jan Schmidt + + [MOVED FROM GOOD] Make sure to dist everything needed for win32 builds. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/directdraw/Makefile.am: + * sys/directsound/Makefile.am: + * sys/waveform/Makefile.am: + Make sure to dist everything needed for win32 builds. + +2007-06-08 16:31:15 +0000 Jan Schmidt + + [MOVED FROM GOOD] Rename the keep-aspect-ratio property to force-aspect-ratio to make it consistent with xvimagesink and ximagesink. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_class_init): + Rename the keep-aspect-ratio property to force-aspect-ratio to make + it consistent with xvimagesink and ximagesink. + +2007-05-24 08:35:23 +0000 Vincent Torri + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.*: Fix more warnings when compiling with MingW (#439914). + Original commit message from CVS: + Patch by: Vincent Torri + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_buffer_alloc), + (gst_directdraw_sink_show_frame), + (gst_directdraw_sink_check_primary_surface), + (gst_directdraw_sink_check_offscreen_surface), + (EnumModesCallback2), (gst_directdraw_sink_get_ddrawcaps), + (gst_directdraw_sink_surface_create): + * sys/directdraw/gstdirectdrawsink.h: + Fix more warnings when compiling with MingW (#439914). + +2007-05-20 14:59:46 +0000 Tim-Philipp Müller + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.c: Bunch of small fixes: remove static function that doesn't exist; declare another ... + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: (gst_ddrawsurface_finalize), + (gst_directdraw_sink_buffer_alloc), + (gst_directdraw_sink_get_ddrawcaps), + (gst_directdraw_sink_surface_create): + Bunch of small fixes: remove static function that doesn't exist; + declare another one that does; printf format fix; use right macro + when specifying debug category; remove a bunch of unused variables; + #if 0 out an unused chunk of code (partially fixes #439914). + +2007-05-15 17:22:58 +0000 Tim-Philipp Müller + + [MOVED FROM GOOD] Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save and restore the various flags in the directdraw/dir... + Original commit message from CVS: + * configure.ac: + * sys/directdraw/Makefile.am: + * sys/directsound/Makefile.am: + Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save + and restore the various flags in the directdraw/directsound + detection section. Apparently improves cross-compiling for win32 + with mingw32 under some circumstances (#437539). + +2007-04-29 13:56:18 +0000 Thomas Vander Stichele + + * sys/directdraw/gstdirectdrawsink.c: + [MOVED FROM GOOD] 80 char police + Original commit message from CVS: + 80 char police + +2007-03-11 22:23:04 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/directdraw/gstdirectdrawsink.*: Handle display mode changes during playback. + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Handle display mode changes during playback. + +2007-02-27 12:02:03 +0000 Christian Schaller + + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + [MOVED FROM GOOD] update copyright statements + Original commit message from CVS: + update copyright statements + +2007-02-18 18:00:51 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/directdraw/: Prepare the plugin to move to good: + Original commit message from CVS: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Prepare the plugin to move to good: + Remove unused/untested code (rendering to an extern surface, + yuv format rendering).Use GST_(DEBUG/*)_OBJECT macros + Rename all functions from gst_directdrawsink to gst_directdraw_sink. + Add gtk doc section + Fix a bug in gst_directdraw_sink_show_frame, memcpy line by line + respecting destination surface stride. + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + Prepare the plugin to move to good: + Rename all functions from gst_directsoundsink to gst_directsound_sink. + Add gtk doc section + * win32/common/config.h.in: + * win32/MANIFEST: + Add config.h.in + +2007-02-11 15:26:49 +0000 Sébastien Moutte + + [MOVED FROM GOOD] Makefile.am: Add win32 MANIFEST + Original commit message from CVS: + * Makefile.am: + Add win32 MANIFEST + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Clear unused code and add comments. + Remove yuv from template caps, it only supports RGB + actually. + Implement XOverlay interface and remove window and fullscreen + properties. + Add debug logs. + Test for blit capabilities to return only the current colorspace if + the hardware can't blit for one colorspace to another. + * sys/directsound/gstdirectsoundsink.c: + Add some debugs. + * win32/MANIFEST: + Add VS7 project files and solution. + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + * win32/vs6/libgstqtdemux.dsp: + Update project files. + +2007-01-03 19:54:33 +0000 Vincent Torri + + [MOVED FROM GOOD] Add directdrawsink to build and dist it, so it gets built when compiling with MingW on win32 and the required headers... + Original commit message from CVS: + Patch by: Vincent Torri + * configure.ac: + * sys/Makefile.am: + * sys/directdraw/Makefile.am: + Add directdrawsink to build and dist it, so it gets built when + compiling with MingW on win32 and the required headers and libraries + are available (fixes: #392313). + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame), + (gst_directdrawsink_setup_ddraw), + (gst_directdrawsink_surface_create): + Comment out some unused things and fix some printf format issues in + order to avoid warnings when buildling with MingW (#392313). + +2006-11-01 10:19:18 +0000 Sergey Scobich + + [MOVED FROM GOOD] sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523) + Original commit message from CVS: + Patch by: Sergey Scobich + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdrawsink_window_thread), + (gst_directdrawsink_create_default_window): + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundsink.c: + Wait until the window is created before using it; guard unistd.h + includes with HAVE_UNISTD_H. (#366523) + * win32/vs8/libgstdirectdraw.vcproj: + * win32/vs8/libgstdirectsound.vcproj: + Update project files. + +2006-07-24 21:43:06 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer. + Original commit message from CVS: + * sys/directsound/gstdirectsoundsink.h: + * sys/directsound/gstdirectsoundsink.c: + Add an attenuation property that will directly attenuate the + directsound buffer. + Change the size of the directsound secondary buffer to a half second. + Add more debug logs. + Add a lock to protect dsound buffer write access. + Fix a bad implementation of reset. + * sys/directsound/gstdirectdrawsink.c: + * sys/directsound/gstdirectdrawsink.h: + Add a keep_aspect_ratio property. + Do not use overlay if not supported. + Add more debug logs. + Remove overwrite of WM_ERASEBKGND message handling. It was not + redrawing border when keep_aspect_ratio was enabled. + * win32/common/config.h: + update version waiting an auto-generated config.h + +2006-06-12 10:53:26 +0000 Tim-Philipp Müller + + [MOVED FROM GOOD] ext/libmms/gstmms.c: Set caps on outgoing buffers. + Original commit message from CVS: + * ext/libmms/gstmms.c: (gst_mms_create): + Set caps on outgoing buffers. + * sys/directdraw/gstdirectdrawsink.c: (gst_directdrawsink_init): + Comment out unused global instance variable. + +2006-06-01 22:00:26 +0000 Stefan Kost + + [MOVED FROM GOOD] Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.h: + * ext/amrwb/gstamrwbdec.h: + * ext/amrwb/gstamrwbenc.h: + * ext/amrwb/gstamrwbparse.h: + * ext/arts/gst_arts.h: + * ext/artsd/gstartsdsink.h: + * ext/audiofile/gstafparse.h: + * ext/audiofile/gstafsink.h: + * ext/audiofile/gstafsrc.h: + * ext/audioresample/gstaudioresample.h: + * ext/bz2/gstbz2dec.h: + * ext/bz2/gstbz2enc.h: + * ext/dirac/gstdiracdec.h: + * ext/directfb/dfbvideosink.h: + * ext/divx/gstdivxdec.h: + * ext/divx/gstdivxenc.h: + * ext/dts/gstdtsdec.h: + * ext/faac/gstfaac.h: + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.h: + * ext/ivorbis/vorbisenc.h: + * ext/libfame/gstlibfame.h: + * ext/nas/nassink.h: + * ext/neon/gstneonhttpsrc.h: + * ext/polyp/polypsink.h: + * ext/sdl/sdlaudiosink.h: + * ext/sdl/sdlvideosink.h: + * ext/shout/gstshout.h: + * ext/snapshot/gstsnapshot.h: + * ext/sndfile/gstsf.h: + * ext/swfdec/gstswfdec.h: + * ext/tarkin/gsttarkindec.h: + * ext/tarkin/gsttarkinenc.h: + * ext/theora/theoradec.h: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackparse.h: + * ext/xine/gstxine.h: + * ext/xvid/gstxviddec.h: + * ext/xvid/gstxvidenc.h: + * gst/cdxaparse/gstcdxaparse.h: + * gst/cdxaparse/gstcdxastrip.h: + * gst/colorspace/gstcolorspace.h: + * gst/festival/gstfestival.h: + * gst/freeze/gstfreeze.h: + * gst/gdp/gstgdpdepay.h: + * gst/gdp/gstgdppay.h: + * gst/modplug/gstmodplug.h: + * gst/mpeg1sys/gstmpeg1systemencode.h: + * gst/mpeg1videoparse/gstmp1videoparse.h: + * gst/mpeg2sub/gstmpeg2subt.h: + * gst/mpegaudioparse/gstmpegaudioparse.h: + * gst/multifilesink/gstmultifilesink.h: + * gst/overlay/gstoverlay.h: + * gst/playondemand/gstplayondemand.h: + * gst/qtdemux/qtdemux.h: + * gst/rtjpeg/gstrtjpegdec.h: + * gst/rtjpeg/gstrtjpegenc.h: + * gst/smooth/gstsmooth.h: + * gst/smoothwave/gstsmoothwave.h: + * gst/spectrum/gstspectrum.h: + * gst/speed/gstspeed.h: + * gst/stereo/gststereo.h: + * gst/switch/gstswitch.h: + * gst/tta/gstttadec.h: + * gst/tta/gstttaparse.h: + * gst/videodrop/gstvideodrop.h: + * gst/xingheader/gstxingmux.h: + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundsink.h: + * sys/dxr3/dxr3audiosink.h: + * sys/dxr3/dxr3spusink.h: + * sys/dxr3/dxr3videosink.h: + * sys/qcam/gstqcamsrc.h: + * sys/vcd/vcdsrc.h: + Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + +2006-04-25 21:56:38 +0000 Stefan Kost + + [MOVED FROM GOOD] Define GstElementDetails as const and also static (when defined as global) + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafparse.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/audioresample/gstaudioresample.c: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2enc.c: + * ext/cdaudio/gstcdaudio.c: + * ext/directfb/dfbvideosink.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init): + * ext/faac/gstfaac.c: (gst_faac_base_init): + * ext/faad/gstfaad.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbisfile.c: + * ext/lcs/gstcolorspace.c: + * ext/libfame/gstlibfame.c: + * ext/libmms/gstmms.c: (gst_mms_base_init): + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init): + * ext/nas/nassink.c: (gst_nassink_base_init): + * ext/neon/gstneonhttpsrc.c: + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsf.c: + * ext/swfdec/gstswfdec.c: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkinenc.c: + * ext/theora/theoradec.c: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init): + * gst/chart/gstchart.c: + * gst/colorspace/gstcolorspace.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init): + * gst/festival/gstfestival.c: + * gst/filter/gstbpwsinc.c: + * gst/filter/gstiir.c: + * gst/filter/gstlpwsinc.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: (gst_puzzle_base_init): + * gst/librfb/gstrfbsrc.c: + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg1sys/gstmpeg1systemencode.c: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpeg2sub/gstmpeg2subt.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/multifilesink/gstmultifilesink.c: + * gst/overlay/gstoverlay.c: + * gst/passthrough/gstpassthrough.c: + * gst/playondemand/gstplayondemand.c: + * gst/qtdemux/qtdemux.c: + * gst/rtjpeg/gstrtjpegdec.c: + * gst/rtjpeg/gstrtjpegenc.c: + * gst/smooth/gstsmooth.c: + * gst/smoothwave/gstsmoothwave.c: + * gst/spectrum/gstspectrum.c: + * gst/speed/gstspeed.c: + * gst/stereo/gststereo.c: + * gst/switch/gstswitch.c: + * gst/tta/gstttadec.c: (gst_tta_dec_base_init): + * gst/tta/gstttaparse.c: (gst_tta_parse_base_init): + * gst/vbidec/gstvbidec.c: + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/virtualdub/gstxsharpen.c: + * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init): + * gst/y4m/gsty4mencode.c: + * sys/cdrom/gstcdplayer.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/glsink/glimagesink.c: + * sys/qcam/gstqcamsrc.c: + * sys/v4l2/gstv4l2src.c: + * sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init): + * sys/ximagesrc/ximagesrc.c: + Define GstElementDetails as const and also static (when defined as + global) + +2006-04-01 10:09:11 +0000 Thomas Vander Stichele + + * sys/directdraw/gstdirectdrawplugin.c: + [MOVED FROM GOOD] rework build; add translations for v4l2 + Original commit message from CVS: + rework build; add translations for v4l2 + +2006-03-03 23:45:23 +0000 Sébastien Moutte + + [MOVED FROM GOOD] sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection + Original commit message from CVS: + * sys/directdraw: + * sys/directsound: + sinks are now using GST_RANK_PRIMARY to be used with autodectection + * win32/vs6: + project files updated to fix some bugs + * win32/vs7: + * win32/vs8: + vs7 and vs8 project files added + +2006-01-05 23:17:44 +0000 Sébastien Moutte + + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + [MOVED FROM GOOD] added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ... + Original commit message from CVS: + 2006-01-05 Sebastien Moutte + * added sys/directdraw + * added sys/directsound + * added win32/vs6/gst_plugins_bad.dsw + * added win32/vs6/libgstdirectsound.dsp + * added win32/vs6/libgstdirectdraw.dsp + * added win32/common/config.h + +2009-05-15 10:45:45 +0100 Jan Schmidt + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: Fix resetting of the sink in NULL + Reset the fpsdisplaysink in NULL by removing the textoverlay if we + created it. + Fixes: #582633 + +2009-05-16 00:17:00 +0100 Jan Schmidt + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst/y4m/Makefile.am: + * gst/y4m/gsty4mencode.c: + * gst/y4m/gsty4mencode.h: + * gst/y4m/y4menc.vcproj: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/y4menc.c: + Moved 'y4menc' from -bad to -good + +2009-05-15 18:24:41 +0100 Tim-Philipp Müller + + * po/Makevars: + po: add Makevars magic so we don't get line numbers in *.po files + This avoids the number one reason for local modifications in *.po + files and and makes things less annoying when working with git (or + any other VCS for that matter). + +2009-05-15 01:54:44 -0300 Thiago Santos + + * gst/qtmux/atoms.c: + [qtmux] Fixes segfault when adding a blob as first tag. + Moves tags data initialization to the function that actually appends + the tags to the list. Fixes #582702 + Also fixes some style caught by the pre-commit hook. + +2009-05-14 21:20:47 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + mxfdemux: Use a RW lock to protect metadata and add all pads at once without a lock held + This makes it possible, among other things, to do a query in the + pad-added callback. + Fixes bug #582656. + +2009-05-14 10:34:08 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Fix the argument order in a debug statement + Make the debug statement correctly show the 'old' and 'new' button + coordinates, instead of the wrong way around. + +2009-05-14 09:53:25 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/gstmpegdemux.h: + resindvd: Make segment updates less aggressive. + When updating a pad, send the update to half a second behind the SCR, + which avoids ever updating the start time for a pad to beyond the end of + the cell. Also, remember the last actual new-segment start time for each + pad, and use it when closing the segment. + +2009-05-13 12:47:43 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Rework button highlight calculation slightly + When the current button number is higher than the number of available + buttons, switch to the highest numbered button rather than the lowest. + Also, don't throw errors when we fail to retrieve some button info + from libdvdnav, just reset the highlight. + +2009-05-12 23:42:00 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Send commands-changed on button change and handle commands query + Send the commands-changed navigation message when the set of available + DVD menu button actions changes, and handle the commands navigation + query so that (e.g.) Totem can know about the available navigation + commands. + +2009-05-14 08:42:24 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Fix a leak of the DVD title string + +2009-05-14 10:55:38 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Push update frame, if any, when entering stills. + When entering a still frame generates an updated buffer, make sure + to push it out, otherwise we may not put a frame onscreen with a + rendered button, causing raciness as to whether buttons get drawn + or not when jumping back to the menu on some discs. + +2009-05-13 10:29:36 +0100 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + resindvd: Fix raciness in rsndvdbin when initially creating pads + Protect pad exposure with a preroll lock to avoid situations + where no-more-pads is fired more than once, or fired just before + the last pad is actually added. + +2009-05-13 17:55:46 +0200 Wim Taymans + + * gst/y4m/gsty4mencode.c: + y4menc: change my email + change my email to something more current + See #580783 + +2009-05-13 17:54:47 +0200 Wim Taymans + + * gst/y4m/gsty4mencode.c: + y4menc: don't strip timestamps + Fixes #582483 + +2009-05-13 10:47:23 +0200 Sebastian Dröge + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-deinterlace2.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * gst/deinterlace/.gitignore: + * gst/deinterlace/Makefile.am: + * gst/deinterlace/deinterlace.vcproj: + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: + * gst/deinterlace2/tvtime/greedyhmacros.h: + * gst/deinterlace2/tvtime/linear.c: + * gst/deinterlace2/tvtime/linearblend.c: + * gst/deinterlace2/tvtime/mmx.h: + * gst/deinterlace2/tvtime/plugins.h: + * gst/deinterlace2/tvtime/scalerbob.c: + * gst/deinterlace2/tvtime/sse.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: + * gst/deinterlace2/tvtime/vfir.c: + * gst/deinterlace2/tvtime/weave.c: + * gst/deinterlace2/tvtime/weavebff.c: + * gst/deinterlace2/tvtime/weavetff.c: + * gst/deinterlace2/tvtime/x86-64_macros.inc: + Moved 'deinterlace2' from -bad to -good + And remove old deinterlace plugin as deinterlace2 will + be called deinterlace in -good. + +2009-05-12 21:50:12 +0200 Sebastian Dröge + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * gst/flv/Makefile.am: + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvmux.c: + * gst/flv/gstflvmux.h: + * gst/flv/gstflvparse.c: + * gst/flv/gstflvparse.h: + Moved 'flv' from -bad to -good + +2009-05-12 00:50:01 +0100 Jan Schmidt + + * ChangeLog: + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.11.2 pre-release + +2009-05-11 17:50:41 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/gstmpegdemux.h: + resindvd: Modify the segment update logic + Send segment updates to the audio and subpicture pads more frequently, + but less often to the video pad, where timestamps appear less often. + This helps with gap filling on some DVDs. + +2009-05-11 16:09:56 +0100 Jan Schmidt + + * ext/resindvd/rsnaudiomunge.c: + resindvd: Increase the amount of filler audio generated + When creating a filler audio buffer in rsnaudiomunge, generate + a bit more, as audio sinks don't seem to preroll otherwise. This + needs a better algorithm in general, to intelligently fill the + gap, rather than hard-coding a value. + +2009-05-11 14:17:42 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Manage timed still sequences better + Make timed still frames work better by extending the current segment + when needed, and restarting the still sequence with the correct + remaining duration when the wait it interrupted by activation of a + highlight NAV packet. + +2009-05-11 11:06:03 +0100 Jan Schmidt + + * ext/resindvd/rsnaudiomunge.c: + resindvd: Change the audiomunge debug output. + Make sure we always show information about the segment events passing through, + even when pre-roll audio buffers aren't going to be needed. + +2009-05-11 11:04:25 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Make the debugging output a bit clearer. + Display more info about custom DVD events in the debug messages. + +2009-05-08 17:42:12 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Always push a frame at the start of a still frame, and fix a leak. + Make sure to push the frame for a still frame, with discont = true and + timestamp=none, so that it gets displayed by the sink. Also, don't leak + each rendered video frame during still menus. + +2009-05-08 17:40:48 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu-render.c: + dvdspu: Add a guard when we don't have any subpicture buffer to render + +2009-05-08 16:29:20 +0100 Jan Schmidt + + * ext/resindvd/rsnaudiomunge.c: + resindvd: Rename the audio munger debug category + Rename a debug category: rsn_audiomunge -> rsnaudiomunge. + +2009-05-08 16:27:31 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Ensure we send a title tag in the first play section. + +2009-05-08 16:06:01 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Simplify some stuff. Remove an unnecessary LOG message. + Skip attempting to schedule a nav block unless we're in PLAYING. Take a lock + slightly later, when we actually need it. Remove a noisy LOG message. + +2009-05-08 14:23:48 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Remove per-menu description from the TITLE tag + The part number reported while in a menu doesn't reflect the selected + menu, so it's pointless to use it to report which menu we're in (Audio, + Angle etc). Just report "DVD Menu" in the title tag instead. + +2009-05-08 14:20:32 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Send title info message when current angle is switched. + Make sure we send an update title tag when the current angle or available + angles changes. + +2009-05-08 10:43:27 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Implement navigation command change message and query + Send messages when the available DVD navigation commands changes, and + handle navigation commands and angles queries. + +2009-05-11 16:59:20 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: Protect bitrate estimation against bogus values. + If the estimated bitrate is lower than 188 bytes, there's most likely + something completely wrong with the two samples. If that happens, + force recalculation. + Use guint64 for observation PCR, I saw cases where it would overflow. + +2009-05-11 16:58:58 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Only take PCR from the active stream for bitrate estimation. + +2009-05-11 16:40:46 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: Change debugging levels for very frequent messages. + This allows debugging with mpegtsdemux:4 while being able to track what's + going on (and avoid taking up as much cpu for debugging as for the actual + demuxing process). + +2009-05-09 09:57:47 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: Revert indentation and comment header file. + One shouldn't run gst-indent on .h files, in this case it was un-beautifying + the indentation :) + +2009-05-10 21:21:36 +0200 Mark Nauwelaerts + + * gst/qtmux/gstqtmuxmap.c: + gppmux: Add MPEG-4 part 2 to supported formats. Fixes #581593. + +2009-05-10 17:17:15 +0200 Sebastian Dröge + + * configure.ac: + faad: Fix configure check for the FAAD version + The previous version matched things like 297 for + version 2.7, etc which could be added to the file + by other headers. + Fixes bug #582074. + +2009-05-10 11:17:17 +0200 Marc-Andre Lureau + + * autogen.sh: + Run libtoolize before aclocal + This unbreaks the build in some cases. Fixes bug #582021 + +2009-05-10 10:40:36 +0200 Tristan Matthews + + * gst/mxf/mxfmux.c: + mxfmux: Fix uninitialized variable compiler warning + This will always be set to something but gcc didn't detect + this. Fixes bug #582013. + +2009-05-09 23:47:39 +0100 Christian Schaller + + * ext/x264/GstX264Enc.prs: + Remove wrong stuff from preset file + +2009-05-09 15:48:54 +0200 Sebastian Dröge + + * gst/mxf/mxfmux.c: + * gst/mxf/mxfmux.h: + mxfmux: Write metadata items in reference order + This ensures that the metadata items are always written + in the same order and that first comes the preface, + then the identification linked from the preface, ... + Some demuxers can't handle files where the metadata + items are in random order. + +2009-05-09 15:48:41 +0200 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Fix EOS logic again + +2009-05-09 15:48:01 +0200 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Don't unref NULL buffers if pushing a buffer after the first failed + +2009-05-09 12:42:25 +0100 Christian Schaller + + * ext/x264/GstX264Enc.prs: + Add a more representative example preset file for x264 + +2009-05-08 18:24:28 +0100 Zaheer Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: Add initial naive seeking support and fix duration query. + Sync from gst-fluendo-mpegdemux and have seeking/duration query + improvements in. No support however for wrapped around pcrs etc. but a + start nonetheless. + Also fix indentation issues. + +2009-05-08 16:38:26 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + Comment out preset not in yet + +2009-05-08 15:39:24 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + deinterlace2: Add a disabled mode for passthrough operation + Also allow to change the mode in PAUSED and PLAYING by updating + the caps if necessary. + +2009-05-07 17:53:42 +0100 Christian Schaller + + * ext/faac/gstfaac.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/x264/gstx264enc.c: + * gst/flv/gstflvdemux.c: + * gst/mxf/mxf.c: + * gst/qtmux/gstqtmux.c: + Add ranks to various muxers and encoders in -bad + +2009-05-07 17:34:36 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + Update spec file + +2009-05-07 13:12:34 +0200 Rov Juvano + + * tests/examples/scaletempo/demo-player.c: + scaletempo: Don't require gconfaudiosink in the demo + Fixes bug #537700. + +2009-05-06 21:48:30 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Don't open all VTS ifo at the start + Load each VTS ifo the first time the disc enters that VTS, + rather than scanning them all at the start. + +2009-05-06 21:19:13 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Send a title tag when we change chapter/menu/angle + Allow apps like Totem to display a nicer title that reflects the current + position on the disc. + +2009-05-05 13:18:20 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Don't send highlight-reset messages when not needed + Fix a small bug that results in the SPU highlight being reset more often + than is necessary - ie, clearing it when it's already cleared. + +2009-05-05 13:14:47 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: send angles-changed messages when appropriate + When the current angle changes, or the number of available angles changes, + send an angles-changed message to let the app know. + +2009-05-05 11:34:26 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Make the next/prev angle switching cycle at the ends + When the current angle is 1 and prev_angle is requested, loop to the + maximum angle and vice versa for next_angle + +2009-05-05 16:54:39 +0200 Arnout Vandecappelle + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: don't leak the config data + Clear the config data when going to READY or when disposed. + Fixes #581427 + +2009-05-05 16:48:37 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpssrcdemux.c: + rtpssrcdemux: drop unexpected RTCP packets + We usually only get SR packets in our chain function but if an invalid packet + contains the SR packet after the RR packet, we must not fail but simply ignore + the malformed packet. + Fixes #581375 + +2009-05-04 22:09:05 +0100 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtsparse.c: + * gst/mpegdemux/mpegtsparse.h: + mpegtsparse: Remember pids that are meant to be stream pids. + Fixes #569781 + +2009-05-04 12:37:31 +0200 Sebastian Dröge + + * ext/celt/gstceltenc.c: + celt: Implement preset interface + +2009-05-04 12:36:17 +0200 Sebastian Dröge + + * ext/dirac/gstdiracenc.cc: + dirac: Implement preset interface + +2009-05-04 12:34:59 +0200 Sebastian Dröge + + * ext/jp2k/gstjasperenc.c: + jp2kenc: Implement preset interface + +2009-05-04 12:33:41 +0200 Sebastian Dröge + + * ext/mpeg2enc/gstmpeg2enc.cc: + mpeg2enc: Implement Preset interface + +2009-05-04 12:31:58 +0200 Sebastian Dröge + + * ext/xvid/gstxvidenc.c: + xvid: Implement Preset interface + +2009-05-04 12:30:26 +0200 Sebastian Dröge + + * ext/faac/gstfaac.c: + faac: Implement preset interface + +2009-05-03 17:42:44 +0100 Vincent Genieux + + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: Ignore subtable extension when parsing PAT + Fixes #569673. + +2009-05-03 17:21:22 +0100 Vincent Genieux + + * gst/mpegdemux/mpegtsparse.c: + * gst/mpegdemux/mpegtsparse.h: + mpegtsparse: make safe changing the program-numbers property dynamically + Fixes #569437. + +2009-05-03 14:28:51 +0200 Mark Nauwelaerts + + * ext/libmms/gstmms.c: + mms: extend BaseSrc query handling rather than overriding + +2009-04-27 22:39:15 +0200 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: fix (regression in) newsegment handling + (aacparse, amrparse, flacparse). Fixes #580133. + +2009-05-02 12:23:03 +0100 Zaheer Merali + + * sys/dvb/gstdvbsrc.c: + dvbsrc: fix pes filter pid resetting + +2009-05-01 02:26:22 +0100 Tim-Philipp Müller + + * ext/dts/gstdtsdec.h: + dtsdec: cosmetic fix to header structure to make gtk-doc happy + +2009-05-01 14:25:40 +0100 Tim-Philipp Müller + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/debugutils/fpsdisplaysink.c: + docs: make fpsdisplaysink show up in the docs + +2009-05-01 02:21:10 +0100 Tim-Philipp Müller + + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: move private struct into plugin struct and use Gst namespace + +2009-05-01 01:59:56 +0100 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-debugutilsbad.xml: + * docs/plugins/inspect/plugin-fpsdisplaysink.xml: + * gst/debugutils/Makefile.am: + * gst/debugutils/debugutilsbad.c: + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: rename plugin (not element) to debugutilsbad + Makes it easier to add further utils here without creating yet another plugin. + +2009-05-01 14:28:23 +0100 Zaheer Merali + + * sys/dvb/gstdvbsrc.c: + dvbsrc: unset pid filters correctly + +2009-04-30 14:43:36 -0300 Thiago Santos + + * gst/qtmux/gstqtmuxmap.c: + qtmux: changes caps of src pads to video/quicktime, variant=something + Take a look at bug #580005 for further info. + +2009-04-30 17:29:35 +0100 Christian Schaller + + Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-04-30 17:28:47 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + Update for new presets file + +2009-04-30 17:08:52 +0100 Tristan Matthews + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplaysink: init variable to NULL to avoid compiler warning + Fixes #580901. + +2009-04-30 14:20:16 +0200 Wim Taymans + + * gst/dvdspu/gstdvdspu-render.c: + * gst/dvdspu/gstdvdspu.h: + dvdspu: do some basic clipping + Add some basic clipping of the subtitle region when the subtitle is bigger than + the image we should put it on. + +2009-04-30 14:18:58 +0200 Wim Taymans + + * gst/dvdspu/gstdvdspu.c: + dvdspu: don't EOS when the subtitle got EOS + Don't forward the EOS on the subtitle pad as the video might still be running. + +2009-04-30 13:45:30 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: code cleanup and plug overlay as needed + Pluggin the text-ovelay causes some slowdowns and might need a colorspace + converter. We now only check the text-overlay property whne goint to ready and + plug or unplug the text-overlay at that time. If the property changes during + playing, its not switched immediately. + +2009-04-30 00:06:36 +0300 Stefan Kost + + * ext/x264/GstX264Enc.prs: + * ext/x264/Makefile.am: + * ext/x264/gstx264enc.c: + x264enc: add preset support + Add preset iface and a (dummy) preset file as a starting point. + +2009-04-26 21:26:00 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiomunge.c: + resindvd: Convert some g_print to GST_LOG_OBJECT and friends, remove some others + Trim down the g_print verbosity. + +2009-04-26 21:29:27 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Add DVDFASTSTART env var to making some testing easier + +2009-04-24 14:08:55 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: Remove redundant modulo operation in the demuxer + +2009-04-24 14:07:30 +0100 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/resindvdsrc.c: + resindvd: Map audio and subpicture logical streams to physical. + The logical audio and subpicture stream number doesn't always correspond + with the physical substream it is coming from. When configuring the demuxer + pads, use the mapping table provided in each PGC to get the layout and + ensure the demuxer creates the correct pads. + +2009-04-29 18:52:20 +0100 Tristan Matthews + + * gst/flv/gstflvmux.c: + flvmux: init variable to NULL to fix compiler warning + Fixes #580786. + +2009-04-29 16:57:36 +0200 Mark Nauwelaerts + + * ext/x264/gstx264enc.c: + x264enc: add some documentation on profile + +2009-04-29 13:56:07 +0200 Sebastian Dröge + + * gst/flv/gstflvmux.c: + * gst/flv/gstflvparse.c: + flv: Set/require the framed/parsed fields of the audio/mpeg caps to TRUE + +2009-04-29 13:16:25 +0200 Sebastian Dröge + + * gst/flv/gstflvmux.c: + flv: Always write at least the minimal tags and write the PAR as tags + +2009-04-29 13:03:46 +0200 Sebastian Dröge + + * gst/flv/gstflvmux.c: + * gst/flv/gstflvmux.h: + flv: Add support for muxing some tags + +2009-04-29 13:03:27 +0200 Sebastian Dröge + + * gst/flv/gstflvparse.c: + flv: Add support for title tag + +2009-04-29 09:40:41 +0200 Sebastian Dröge + + * gst/flv/gstflvparse.c: + flv: Fix parsing of tags and add new mappings + We shouldn't register a new GstTag for every unknown tag + we find as this might lead to conflicts and also those + tags are essentially unknown. + Add mappings for some known tags and also convert string + dates to GDate, as found in many FLV files. + +2009-04-28 16:10:21 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Reject wrong caps + +2009-04-28 16:03:19 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Fix leak Fixed a leak discovered by Laurent Glayal + +2009-04-28 15:58:41 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Fix leak + Fixed a leak discovered by Laurent Glayal + +2009-04-27 11:09:08 +0200 Olivier Crete + + * gst/rtpmanager/rtpsource.c: + rtpsouce: make WARNING into LOG + Since neither rtpmanager nor any of the payloaders properly implement + pad allocation, there is no way for the rtpmanager to inform downstream elements + of the new SSRC if there is an SSRC collision. So the warning is emitted all the + time and it is confusing. + Fixes #580144 + +2009-04-27 11:06:01 +0200 Olivier Crete + + * gst/rtpmanager/rtpsession.c: + rtpsession: notify when SSRC changes + Emit a g_object_notify when the SSRc changes because of a collision. + Fixes #580144 + +2009-04-27 10:04:51 +0100 Christian Schaller + + * gst-plugins-bad.spec.in: + * gst/dccp/Makefile.am: + Add new plugin to spec file and add missing header to gst/dccp/Makefile.am + +2009-04-25 00:44:15 +0100 Tim-Philipp Müller + + * tests/check/elements/.gitignore: + * tests/check/pipelines/.gitignore: + tests: make git ignore new unit tests binaries + +2009-04-25 00:42:44 +0100 Tim-Philipp Müller + + * win32/MANIFEST: + win32: dist libgstdshow.def by adding it to win32/MANIFEST + Fixes #578563. + +2009-04-24 18:53:36 -0300 Thiago Santos + + * gst/qtmux/gstqtmuxmap.c: + mp4mux: Changes src caps to application/x-iso-mp4 + Fixes #580005 + +2009-04-24 16:01:44 +0100 Jan Schmidt + + * win32/common/config.h: + win32: Commit the win32 config with bumped version number. + Should have committed this when I unfroze the build last time, sorry. + +2009-04-24 14:51:00 +0100 Jan Schmidt + + * tests/check/Makefile.am: + check: exclude rsndvdbin from the states test + +2009-04-24 15:42:27 +0300 Stefan Kost + + * configure.ac: + soundtouch: fix configure to use proper shell syntax. fixes #580091 + +2009-04-23 17:33:25 +0100 Jan Schmidt + + * configure.ac: + soundtouch: Fix compilation on newer libSoundTouch + Newer libsoundtouch requires that we include an extra header that wasn't + previously required, so define HAVE_SOUNDTOUCH_1_4 for newer builds so that it + gets included. + +2009-04-20 11:38:01 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: more cleanups + Use normal gst-defines in PLUGIN_DEFINE. Shorten _start/stop method names. + More ideas. Move debug category-init down to plugin-init. + +2009-04-20 09:51:50 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: use a nicer font family + +2009-04-20 10:24:37 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: various cleanups, docs and comments + Remove unused base_init. Add basic doc blob. Reuse query object. Rename + variables for clarity. Add comments and ToDos. + +2009-04-20 09:49:32 +0300 Stefan Kost + + * gst/debugutils/fpsdisplaysink.c: + fpsdisplay: remove iface proxy + When we get bus messages for setting the xid, we have the real sink element + instance as message_src. No need to proxy the xoverlay iface therefore + (autovideosink does not do it either). Also we don't need to rewrite the + message src of all messages from that sink. + +2009-04-23 11:04:46 +0100 Jan Schmidt + + * gst/selector/gstinputselector.c: + input-selector: Forward segment events for the active pad immediately. + When a segment event is received on the active pad, forward it downstream + immediately instead of deferring it until the next data buffer arrives. This + fixes problems with segment updates never being sent downstream, like those + needed for sparse streams, or for closing previously opened segments. + This fixes playback of DVD menus with a still video frame and an audio track, + for example. + Fixes: #577843 + +2009-04-22 18:01:07 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Fix warning + +2009-04-20 20:00:15 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Set different caps depending on the input + +2009-04-22 16:25:07 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Only free pad private when pad is disposed + +2009-04-22 19:52:05 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvmux.c: + * gst/flv/gstflvmux.h: + flv: Add documentation to flvmux and flvdemux + Partially fixes bug #573737. + +2009-04-22 19:45:07 +0200 Sebastian Dröge + + * gst/mxf/mxfmux.h: + mxf: Mark most fields of the instance struct as private + +2009-04-22 19:43:22 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + deinterlace2: Add documentation and integrate into the build system + +2009-04-22 19:24:43 +0200 Sebastian Dröge + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-assrender.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-deinterlace2.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-fpsdisplaysink.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst/mxf/mxfmux.c: + mxf: Add documentation to mxfmux and update the docs + +2009-03-19 15:37:17 -0700 LRN + + * ext/modplug/gstmodplug.cc: + modplug: Use correct header file + modplug's sndfile.h conflicts with libsndfile's sndfile.h, so + we'll access it directly using modplug/sndfile.h. Fixes #573849 + Signed-off-by: David Schleef + +2009-03-19 15:29:04 -0700 LRN + + * m4/gst-sdl.m4: + sdl: Use SDL static-libs for conftest + Fixes: #573847. This fixes building with SDL on Windows. + Signed-off-by: David Schleef + +2009-03-19 14:55:26 -0700 LRN + + * ext/mpeg2enc/gstmpeg2encoptions.cc: + mpeg2enc: Get number of processors on win32 + Fixes #573848. + Signed-off-by: David Schleef + +2009-03-19 14:49:13 -0700 David Schleef + + * configure.ac: + soundtouch: Add pkgconfig check for soundtouch-1.4 + Fixes #573846. + +2009-02-26 14:18:54 -0800 David Schleef + + * gst/rawparse/gstrawparse.c: + * gst/rawparse/gstrawparse.h: + * gst/rawparse/gstvideoparse.c: + * gst/rawparse/gstvideoparse.h: + Add interlaced support to videoparse + Add a virtual method in rawparse to set buffer flags. This doesn't + use API from unreleased -base, since it defines GST_VIDEO_BUFFER_TFF + if it's not defined yet. + +2009-04-21 22:13:12 +0100 Jan Schmidt + + * common: + Automatic update of common submodule + From b3941ea to 6ab11d1 + +2009-04-21 13:27:29 -0400 Olivier Crête + + Merge branch 'rtpmux-fixes' + +2009-04-21 16:48:39 +0200 Edward Hervey + + * ext/libmms/gstmms.c: + mmssrc: If the connection fails, emit a redirection msg to the rtsp equivalent. + This should help fix the issue with Windows Media Server using rtsp... but + still declaring the stream with mms:// + +2009-04-21 16:08:55 +0200 Edward Hervey + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: Only error out at EOS push failure if we don't have any streams. + This should remove the bogus error messages while still keeping the original + intent of this, which is to inform the pipeline/application/user that we + could not find any valid streams. + There are many reasons why pushing an event can fail, and not all of them are + because there's no link downstream (it could be because it was blocked, or + flushing). + +2009-04-10 19:24:26 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: add hack specific for itvhd + itvhd masks its h264 video stream as a private stream making it harder for + other set top boxes to decode. this checks for specific program number, video + pid and stream type combination before declaring it as h264. + +2009-04-10 19:06:55 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: detect AC3 streams in PMT table + add 'has-ac3' boolean to pmt bus message + +2009-04-10 01:16:30 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + itv hd hack + +2009-04-10 01:11:01 +0200 Zaheer Abbas Merali + + * gst/mpegdemux/gstmpegtsdemux.c: + hack for itvhd sid to detect mpeg1 as h264 + +2009-04-20 18:41:39 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Remove useless caps mangling + +2009-04-20 18:36:42 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + rtpmux: Rename variable for more clarity + +2009-04-20 17:43:39 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + rtpmux: Use GST_BOILERPLATE + +2009-04-20 17:42:40 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + * gst/rtpmux/gstrtpmux.c: + rtpmux: Do the includes locally + +2009-04-20 16:34:30 +0200 Andy Wingo + + * sys/osxvideo/osxvideosrc.c: + patch over logic errors in osxvideosrc + apple's compiler carps, with reason, about some constructs in osxvideosrc.c + fix them. + also it seems that for some reason this required a gst-indent run. whee + +2009-04-20 13:09:46 +0200 Andy Wingo + + add osxvideosrc + * configure.ac: + * sys/Makefile.am: + * sys/osxvideo/Makefile.am: Autoconfiscation. + * sys/osxvideo/osxvideoplugin.m: + * sys/osxvideo/osxvideosrc.h: + * sys/osxvideo/osxvideosrc.c: Add osxvideosrc. Should fix #153684. + Patch-by: Ole André Vadla Ravnås + Patch-by: Ali Sabil + Patch-by: Barracuda Networks + +2009-04-19 17:18:35 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Make it possible to select interlacing autodetection or to enfore deinterlacing + For this add a "mode" property that defaults to "interlaced" for now as + most decoders/demuxers don't properly set the "interlaced" field on the + caps yet. + If this property is set to "auto" the element will work in passthrough + mode unless the caps contain the "interlaced" field. + +2009-04-18 23:42:57 +0100 Zaheer Merali + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: fix leak of GST_TYPE_LIST gvalue + +2009-04-18 13:09:23 +0100 Zaheer Merali + + * gst/mpegdemux/mpegtsparse.c: + mpegtsparse: fix leak in src_pad_query + +2009-04-17 16:16:29 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpsession.c: + rtpsession: join the RTCP thread + Avoid a case where a joinable thread would be left unjoined, which leaked the + thread structure. + Fixes #577318. + +2009-04-17 15:39:59 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Use GST_(DEBUG|WARNING|ERROR)_OBJECT instead of the non-OBJECT ones + +2009-04-17 15:39:36 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Reset history if DISCONT is set on the incoming buffer + +2009-04-17 15:39:10 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Fix timestamps for buffers with RFF flag set + +2009-04-16 22:14:15 +0200 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Properly handle the new interlaced support from libgstvideo for (de)muxing + +2009-04-16 17:41:37 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: + * gst/deinterlace2/tvtime/greedyh.c: + * gst/deinterlace2/tvtime/scalerbob.c: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/weave.c: + * gst/deinterlace2/tvtime/weavebff.c: + * gst/deinterlace2/tvtime/weavetff.c: + deinterlace2: Rename line_length to row_stride and remove output_stride + +2009-04-16 15:52:39 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Implement support for RFF and ONEFIELD buffer flags + +2009-04-16 18:36:13 +0300 Stefan Kost + + * configure.ac: + * gst/debugutils/Makefile.am: + * gst/debugutils/fpsdisplaysink.c: + * gst/debugutils/fpsdisplaysink.h: + fpsdisplaysink: add a initial port of a sink with fps display + This now works with a event probe. Needs some extra work. + +2009-03-09 18:22:28 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: clean up and fix assertion fail when setting zoom in NULL state + +2009-03-09 18:31:07 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: fix format matching when detecting allowed frame rate + +2009-03-09 18:25:48 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: don't lose pending state when changing resolution + +2009-02-27 17:12:38 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin-marshal.list: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * tests/check/elements/camerabin.c: + camerabin: change img-done signal parameter from GString* to const gchar* + Don't allow setting filename via img-done signal parameter but force app + use filename property. Don't stop capture when setting filename property. + Update check unit test based on the change. + +2009-04-15 13:23:01 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + rtpmux: Add GST_DEBUG_FUNCPTRs + +2009-04-15 13:15:55 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Release locked pad on release_pad + Release the special pad if the pad is removed from the muxer. + +2009-04-15 13:09:27 -0400 Laurent Glayal + + * gst/rtpmux/gstrtpdtmfmux.c: + rtpdtmfmux: Release special on pad dispose + Fixes #577690 + +2009-04-15 18:14:48 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: prevent overflow in EOS estimation + Use a guint64 instead of a guint to hold a 64bit value to prevent completely + bogues EOS estimation values due to overflows. + +2009-04-15 17:44:17 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + rtpbin: we should not provide a clock + There is no need to provide a clock. + +2009-04-15 17:28:56 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: more estimated EOS fixes + Do more accurate EOS estimate and guard against backward timestamps. + +2009-04-15 17:25:02 +0200 Wim Taymans + + * gst/rtpmanager/gstrtpjitterbuffer.c: + jitterbuffer: release lock before pushing EOS + Make sure we release the jitterbuffer lock before we start pushing out data + because else we might deadlock. + +2009-04-15 15:46:44 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: + * gst/deinterlace2/tvtime/greedyh.c: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + deinterlace2: Move output buffer from the instance struct to a function parameter + +2009-04-15 15:33:17 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + * gst/deinterlace2/gstdeinterlace2.h: + deinterlace2: Add initial support for automatic detection of the field order + +2009-04-15 14:47:49 +0200 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + deinterlace2: Add support for YVYU colorspace + This is the same as YUY2 with just Cr and Cb swapped. As + we don't make a difference between them when deinterlacing + this works. + +2009-04-13 13:32:34 +0200 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Small cleanup + +2009-04-10 18:00:06 +0100 Tim-Philipp Müller + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + dshowdec: fix compilation with the debugging system disabled + One GST_DEBUG_CATEGORY_INIT should be enough anyway. + Fixes #578562 (spotted by David Hoyt). + +2009-04-09 23:53:39 +0200 Janin Kolenc + + * ext/x264/gstx264enc.c: + * ext/x264/gstx264enc.h: + x264enc: add force keyframe event handling + Use the GstForceKeyUnit event to force a keyframe. + Fixes #578112. + +2009-04-08 11:52:46 -0700 Michael Smith + + * configure.ac: + * sys/acmenc/Makefile.am: + * sys/acmmp3dec/Makefile.am: + acmenc, acmmp3dec, sdp: link to all requires libraries on win32. + Add winsock for windows (for sdp). Link to all the plugins-base + libs we indirectly use for acmmenc and acmmp3dec. + +2009-04-07 15:50:37 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/pipelines/mxf.c: + mxf: Add unit tests for checking if mxfmux ! mxfdemux pipelines are working without errors + +2009-04-07 15:49:00 +0200 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Don't use invalid buffer offsets, instead assume offset == 0 + +2009-04-07 15:45:50 +0200 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Fix comparison + +2009-04-07 15:19:29 +0200 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxful.c: + * gst/mxf/mxful.h: + Use UL database for all metadata ULs + +2009-04-07 04:53:02 +0300 René Stadler + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: Fix slightly broken buffer-in-segment check (aacparse, amrparse, flacparse) + +2009-04-05 03:50:19 +0300 René Stadler + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + baseparse: Fix push mode seeking (aacparse, amrparse) + Sending the flush-start event forward before taking the stream lock actually + works, in contrast to deadlocking in downstream preroll_wait (hunk 1). + After that we get the chain function being stuck in a busy loop. This is fixed + by updating the minimum frame size inside the synchronization loop because the + subclass asks for more data in this way (hunk 2). + Finally, this leads to a very probable crash because the subclass can find a + valid frame with a size greater than the currently available data in the + adapter. This makes the subsequent gst_adapter_take_buffer call return NULL, + which is not expected (hunk 3). + +2009-04-04 21:19:11 +0300 Felipe Contreras + + * common: + Automatic update of common submodule + From d0ea89e to b3941ea + +2009-04-04 17:51:34 +0100 Tim-Philipp Müller + + * ext/bz2/Makefile.am: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2enc.c: + bz2: fix some refcount mistakes and do some cleaning up + No need to unref buffers if pad_push returns something non-FLOW_OK. + In fact, this will cause assertions or crashes. However, we do need + to unref the input buffer whenever we don't pass it downstream. Also, + a non-OK flow return is not an error, so don't post error messages on + the bus - the pipeline may just be shutting down. Miscellaneous other + clean-ups and crack removal. Plenty of work left for those who feel + like it. + +2009-04-04 14:54:25 +0200 Edward Hervey + + * common: + Automatic update of common submodule + From f8b3d91 to d0ea89e + +2009-04-03 23:10:28 +0100 Tim-Philipp Müller + + * configure.ac: + configure.ac: fix dvdnav version check + Fixes #577864. This time for real. + +2009-04-03 17:55:31 +0100 Tim-Philipp Müller + + * configure.ac: + * ext/resindvd/resindvdsrc.h: + resindvd: require libdvdnav >= 4.1.2 for dvdnav_get_current_time() + Fixes #577864. + +2009-04-03 10:29:53 +0100 Jan Schmidt + + * configure.ac: + misc: Bump plugins-base requirement to 0.10.22.1 + +2009-04-01 17:41:40 +0100 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Send both the logical and physical substream ID in the stream change. + When sending the stream change message(s) to the demuxer, also include the + logical stream id along with the physical ID, so that the demuxer can remap + logical->physical MPEG stream ID. + +2009-04-01 02:23:20 +0100 Jan Schmidt + + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Use new GstNavigation functionality. + Handle the new DVD commands, so that we can handle commands from a player + to change angle, jump to menus etc. Use the new GstNavigation event parsing + functions, instead of hand-rolled stuff. + Send GstNavigation notification messages when the mouse enters a button + or leaves it, so UI can turn the mouse cursor to a hand icon. + +2009-03-30 01:07:49 +0100 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + resindvd: Switch to using a hard-coded mpeg2dec, and change pad blocking a bit. + Change the pad blocking behaviour during startup, and use a hard-coded mpeg2dec (for the moment), in order to make things work with playbin2. + +2009-03-25 12:31:10 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Add newline to debug g_print statement + +2009-03-25 02:20:12 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Make highlights work when jumping into menus + Make the highlights re-appear correctly when jumping back into menus + by making sure to set the flushing_seek flag for user-action initiated + seeks. + Fiddle some debug related to tracking down the issue. + +2009-03-25 01:21:28 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Support multiangle titles. + Add a workaround for an apparent libdvdnav bug where it loses nav packets + during multiangle titles, and add some keypress bindings to switch the angle. + +2009-03-18 09:35:12 +0000 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + resindvd: Add back in support for using hardcoded a52dec + +2009-03-16 20:31:58 +0000 Jan Schmidt + + * ext/resindvd/gstmpegdemux.c: + resindvd: Add some debug when creating the output pads in the demuxer + +2009-03-10 10:39:22 +0000 Jan Schmidt + + * ext/resindvd/rsnaudiodec.c: + resindvd: More hacking on the audio decoder. + +2009-03-05 00:04:24 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Trim back the g_print debug - convert to GST_DEBUG and GST_LOG + +2009-03-04 16:16:57 +0000 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiodec.h: + resindvd: Extend the Resin audio decoder element, and switch rsndvdbin to use it + +2009-02-27 10:18:14 +0000 Jan Schmidt + + * ext/resindvd/Makefile.am: + * ext/resindvd/rsnaudiodec.c: + * ext/resindvd/rsnaudiodec.h: + resindvd: First part of the re-plugging audio decoder + +2009-02-27 09:42:35 +0000 Jan Schmidt + + * ext/resindvd/resindvdbin.c: + resindvd: remove unused code path from the bin + +2009-02-26 00:29:26 +0000 Jan Schmidt + + * ext/resindvd/resindvdbin.h: + resindvd: Indent some things + +2009-02-26 00:27:54 +0000 Jan Schmidt + + * ext/resindvd/rsnaudiomunge.c: + * ext/resindvd/rsnwrappedbuffer.c: + resindvd: Switch GST_BOILERPLATE to G_DEFINE_TYPE for no real reason. + +2009-03-24 01:02:28 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + resindvd: Add faststart, and work around some multi-angle issues + Add a 'fast-start' property to the rsndvdsrc element, that attempts to + jump directly to the DVD menu when starting. Doesn't work correctly on all + titles yet. + Add workarounds for issues with multiple angles in libdvdnav: Use a heuristic + to avoid detecting discontinuities during multiple-angle titles, it seems + caused by libdvdnav losing some NAV packets in multiangle titles. Fix + seeking in multi-angle titles by aligning our sector calculation logic + with libdvdnav's. Also, use libdvdnav's dvdnav_get_current_time() method + to determine the logical position of the current cell when it changes, as the + cell_start value in the cell_change event provides a number that doesn't + compensate for angle cell blocks. + +2009-03-21 19:04:05 +0000 Jan Schmidt + + * ext/resindvd/resindvdsrc.c: + resindvd: Small debug output change in the source element + +2009-04-01 02:25:42 +0100 Jan Schmidt + + * gst/dvdspu/gstdvdspu.c: + dvdspu: Add some debug + Add a little bit of extra debug. Wrap a hardcoded #if 0 into a define instead. + +2009-04-02 13:05:11 +0200 Sebastian Dröge + + * ext/jp2k/gstjasperenc.c: + jp2enc: Unref peer caps after usage to fix a memory leak + +2009-04-02 12:46:13 +0200 Sebastian Dröge + + * tests/check/Makefile.am: + * tests/check/elements/mxfmux.c: + mxfmux: Add unit tests + +2009-04-01 15:45:22 +0100 Tim-Philipp Müller + + * gst/legacyresample/gstlegacyresample.c: + legacyresample: fix negotiation so that upstream can actually fixate to downstream's rate + If one side has a preference for a particular sample rate or set of sample rates, we + should honour this in the caps we advertise and transform to and from, so that elements + actually know about the other side's sample rate preference and can negotiate to it + if supported. Also add unit test for this. + +2009-03-31 16:07:46 +0200 Mark Nauwelaerts + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + baseparse: Delay newsegment as long as possible. + If newsegment is sent (too) early, caps may not yet be fixed/set, + and downstream may not have been linked. + +2009-03-30 21:57:12 +0200 Mark Nauwelaerts + + * ext/mpeg2enc/gstmpeg2encoptions.cc: + mpeg2enc: fix bitrate property settings + Align bitrate property interpretation with usual mpeg2enc behaviour. + Fixes #575736. + +2009-03-27 21:39:05 +0000 Alan Falloon + + * configure.ac: + configure.ac: make --disable-external work again + +2009-03-27 19:37:47 +0000 Tim-Philipp Müller + + * ext/jp2k/gstjasperdec.c: + * ext/jp2k/gstjasperdec.h: + jp2kdec: implement basic QoS + Don't try to decode frames that are going to be late anyway. + +2009-03-27 17:44:57 +0100 Wim Taymans + + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpjitterbuffer.h: + rtpbin: add on_npt_stop signal + Add the on_npt_stop signal to rtpbin and rtpjitterbuffer to notify the + application that the NPT stop position has been reached. + +2009-03-27 11:20:02 +0100 Wim Taymans + + * gst/selector/gstoutputselector.c: + outputselector: reset state when going to READY + Reset the last-buffer, the pending pad and the segment when going to the READY + state. + Fixes #576712. + +2009-03-25 21:24:44 +0100 Mark Nauwelaerts + + * gst/qtmux/gstqtmux.c: + qtmux: fix reusing element + State change to READY and then back to PAUSED should still provide + the proper structures as are otherwise freshly available following + a request_new_pad. + Pointed out by Thiago Santos. + +2009-03-26 20:28:30 +0100 Sebastian Dröge + + * gst/mxf/mxfmux.c: + * gst/mxf/mxftypes.c: + mxf: Fix compilation and compiler errors with GLib < 2.16.0 + +2009-03-26 14:26:34 +0100 Sebastian Dröge + + * gst/mxf/mxftypes.c: + mxf: Fix "cast to pointer type of different size" compiler warning + +2009-03-26 13:24:49 +0100 Sebastian Dröge + + * gst/mxf/mxftypes.c: + mxf: Rename forgotten function to fix unresolved symbols error + +2009-03-26 13:20:18 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfvc3.c: + mxf: Use mxf_u{l,uid}_is_equal() and friends instead of memcmp() + +2009-03-26 13:11:07 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdms1.h: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfmux.c: + * gst/mxf/mxftypes.c: + * gst/mxf/mxftypes.h: + mxf: Differentiate between UL and UUID + +2009-03-26 12:46:22 +0100 Sebastian Dröge + + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfd10.c: + * gst/mxf/mxfd10.h: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfdv-dif.h: + * gst/mxf/mxfessence.c: + * gst/mxf/mxfessence.h: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfjpeg2000.h: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfmux.h: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.c: + * gst/mxf/mxftypes.h: + * gst/mxf/mxful.c: + * gst/mxf/mxful.h: + * gst/mxf/mxfup.c: + * gst/mxf/mxfup.h: + * gst/mxf/mxfvc3.c: + * gst/mxf/mxfvc3.h: + * gst/mxf/mxfwrite.c: + * gst/mxf/mxfwrite.h: + mxf: Source files and #include cleanup + +2009-03-26 12:10:05 +0100 Sebastian Dröge + + * configure.ac: + * gst/xdgmime/Makefile.am: + * gst/xdgmime/gstxdgmime.c: + xdgmime: Use GIOs g_content_type_guess() if possible + +2009-03-26 11:51:43 +0100 Sebastian Dröge + + * gst/mxf/mxfwrite.c: + mxf: Use the UL database for some more ULs + +2009-03-26 11:42:45 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Remove some GLib < 2.14 compatibility stuff + +2009-03-26 11:37:28 +0100 Руслан Ижбулатов + + * configure.ac: + * sys/acmenc/Makefile.am: + * sys/acmenc/acmenc.c: + * sys/acmmp3dec/Makefile.am: + * sys/acmmp3dec/acmmp3dec.c: + acm: Port to MinGW + Fixes bug #573595. + +2009-03-26 11:33:50 +0100 Руслан Ижбулатов + + * configure.ac: + * gst/xdgmime/Makefile.am: + xdgmime: Link with winsock library to fix build with MinGW + Partially fixes bug #573595. + +2009-03-26 11:32:08 +0100 Руслан Ижбулатов + + * configure.ac: + * gst/dccp/Makefile.am: + * gst/dccp/gstdccp.c: + * gst/dccp/gstdccp.h: + * gst/dccp/gstdccp_common.h: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsink.h: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpclientsrc.h: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversink.h: + * gst/dccp/gstdccpserversrc.c: + * gst/dccp/gstdccpserversrc.h: + dccp: Port DCCP plugin to MinGW + Partially fixes bug #573595. + +2009-03-26 11:23:30 +0100 Руслан Ижбулатов + + * configure.ac: + dccp: Disable the dccp plugin if no pthread support is available + Partially fixes bug #573595. + +2009-03-26 08:13:10 +0100 Sebastian Dröge + + Merge branch 'mxfmux' + +2009-03-26 08:12:02 +0100 Sebastian Dröge + + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfvc3.c: + mxfmux: Cleanup + +2009-03-26 08:11:20 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfmux.c: + * gst/mxf/mxfmux.h: + mxfmux: Fix handling of buffers with more than one edit unit and EOS handling + +2009-03-25 23:04:13 +0200 Stefan Kost + + * ext/ladspa/gstsignalprocessor.c: + * ext/ladspa/gstsignalprocessor.h: + ladspa: comment signalprocessor class more and do minor code cleanups + +2009-03-25 12:40:35 +0100 Sebastian Dröge + + * configure.ac: + Require core >= 0.10.22.1 for %u pad template support + +2009-03-24 15:23:03 +0100 Wim Taymans + + * gst/selector/gstinputselector.c: + selector: merge the tags + Merge the tags received on the input-selector sinkpads instead of only keeping + the last one we saw. + +2009-03-23 19:33:31 +0000 Jan Schmidt + + * NEWS: + Fix version number in the NEWS file + +2009-03-19 01:17:25 +0200 René Stadler + + * gst/aacparse/gstaacparse.c: + aacparse: Fix busyloop when seeking. Fixes #575388 + The problem is that after a discont, set_min_frame_size(1024) is called when + detect_stream returns FALSE. However, detect_stream calls check_adts_frame + which sets the frame size on its own to something larger than 1024. This is the + same situation as in the beginning, so the base class ends up calling + check_valid_frame in an endless loop. + +2009-03-19 00:32:40 +0200 René Stadler + + * gst/aacparse/gstaacparse.c: + aacparse: Refactor check_valid_frame to expose broken code + Just moving code around and removing an unhelpful/misleading comment. + +2009-03-23 11:17:39 +0100 Wim Taymans + + * gst/qtmux/gstqtmux.c: + qtmux: fix includes for lseek + -- + +2009-03-20 14:20:16 +0100 LRN + + * gst/qtmux/gstqtmux.c: + win32: fix seeking in large files + Use _lseeki64() on Windows to seek in large files. + Fixes #576021. + +2009-03-16 11:21:02 +0100 Wim Taymans + + * ext/jack/gstjack.c: + * ext/jack/gstjack.h: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + jack: Add new connection mode + Add a new connection mode to jacksrc and jacksink. In this new auto-force + connection mode jack will create as many ports as requested/needed in the + pipeline and will then connect as many physical ports as possible, possibly + leaving some ports unconnected. + Also get rid of some leftover g_print. + Fixes #575284. + +2009-03-23 15:06:11 +0100 Sebastian Dröge + + * gst/mxf/mxfparse.c: + mxf: Move some static const variables into functions + +2009-03-13 19:42:18 +0100 Alessandro Decina + + * configure.ac: + * ext/celt/gstceltenc.c: + celtenc: build with celt 0.5. + +2009-03-22 20:14:25 +0000 Jan Schmidt + + * configure.ac: + back to development -> 0.10.11.1 + +2009-03-20 15:55:19 +0200 Stefan Kost + + * tests/check/Makefile.am: + tests: reenable metadata test + +2009-03-20 15:33:31 +0200 Stefan Kost + + * tests/check/Makefile.am: + metadata: reenable test + +2009-03-20 15:18:05 +0200 Stefan Kost + + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataxmp.h: + metdata: more logging and code cleanups + Sprinkle more debug log statements into the code. Move some repeaded string + constant into header files and use sizeof instead of manually counted bytes. Add + comments. + +2009-03-20 15:14:07 +0200 Stefan Kost + + * ext/metadata/metadatamuxjpeg.c: + metadata: fix muxing jfifless jpeg. Fixes #574401 + Don't error out when to be muxed jpeg has no jfif, as we can easily + add it. + +2009-03-20 15:10:22 +0200 Stefan Kost + + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadataxmp.h: + metadata: fix include guards + +2009-03-20 15:04:16 +0200 Stefan Kost + + * ext/metadata/metadata.c: + metadata: rework doc comment + +2009-03-09 23:43:55 +0200 Stefan Kost + + * gst/autoconvert/Makefile.am: + * gst/camerabin/Makefile.am: + * gst/dtmf/Makefile.am: + * gst/liveadder/Makefile.am: + * gst/mxf/Makefile.am: + * gst/nuvdemux/Makefile.am: + * gst/qtmux/Makefile.am: + * gst/rtpmux/Makefile.am: + * gst/siren/Makefile.am: + * gst/valve/Makefile.am: + Makefile.am: no static libs for plugins + +2009-03-22 15:58:50 +0100 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Fix error handling + +2009-03-22 15:51:37 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfup.c: + * gst/mxf/mxfvc3.c: + mxfmux: Fix some memory leaks, improve debugging and handle errors better + +2009-03-22 15:35:42 +0100 Sebastian Dröge + + * gst/mxf/mxfmux.c: + * gst/mxf/mxfmux.h: + mxfmux: Add an error state from which we return immediately + Also improve debugging a bit. + +2009-03-19 20:41:16 +0100 Sebastian Dröge + + * gst/mxf/mxful.c: + mxf: Optimize mxf_ul_is_subclass() a bit + +2009-03-19 14:30:34 +0100 Sebastian Dröge + + * gst/mxf/Makefile.am: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + * gst/mxf/mxful.c: + * gst/mxf/mxful.h: + mxf: Start implementing a central UL database and add some helper functions and use them + +2009-03-17 14:27:50 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfmux: Make sure to include a picture in the edit units when muxing MPEG2/MPEG4 + +2009-03-17 14:23:37 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfdemux: Remove accidentially committed g_assert_not_reached() + +2009-03-16 17:49:40 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxf: Add support for muxing/demuxing subsampled YUV formats + +2009-03-16 17:22:22 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxfdemux: Use correct width/height for stride conversions + +2009-03-16 17:18:17 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxf: Implement stride transformations for raw video content for muxing and demuxing + +2009-03-16 15:37:25 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxfdemux: Simplify caps selection by using a lookup table + +2009-03-16 12:48:31 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxfmux: Add initial support for muxing raw picture essence + +2009-03-16 12:15:46 +0100 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Only add an essence container UL once to the partition and preface + +2009-03-16 12:07:20 +0100 Sebastian Dröge + + * gst/mxf/mxfup.c: + mxfdemux: Add support for AYUV and v308 YUV colorspaces + +2009-03-16 11:00:57 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfmux: Use the correct edit rate instead of estimating it from the first buffer duration + +2009-03-15 15:27:56 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Error out directly if pushing a packet downstream failed + +2009-03-15 15:27:24 +0100 Sebastian Dröge + + * gst/mxf/mxfdv-dif.c: + mxfmux: Add support for DV/DIF muxing and add framerate, etc to the caps when demuxing DV/DIF content + +2009-03-15 15:27:03 +0100 Sebastian Dröge + + * gst/mxf/mxfmux.c: + mxfmux: Add some debugging and error out on invalid input data + +2009-03-14 19:59:39 +0100 Sebastian Dröge + + * gst/deinterlace/gstdeinterlace.c: + deinterlace: Fix uninitialized variable compiler warnings + +2009-03-11 19:38:26 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfmux: Add support for muxing MPEG audio and video + +2009-03-11 19:38:02 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfdemux: Use correct caps type for AC3 audio (audio/x-ac3 instead of audio/ac3) + +2009-03-11 19:34:12 +0100 Sebastian Dröge + + * gst/mxf/mxfjpeg2000.c: + mxfmux: Add support for muxing JPEG2000 code streams + +2009-03-11 19:33:54 +0100 Sebastian Dröge + + * gst/mxf/mxfvc3.c: + mxfmux: Add support for muxing VC-3 (aka DNxHD) video + +2009-03-11 19:33:38 +0100 Sebastian Dröge + + * gst/mxf/mxfalaw.c: + mxfmux: Add support for muxing A-Law audio + +2009-03-11 19:33:18 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + mxfmux: Add support for muxing raw audio + +2009-03-11 19:32:16 +0100 Sebastian Dröge + + * configure.ac: + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmux.c: + * gst/mxf/mxfmux.h: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + * gst/mxf/mxfwrite.c: + * gst/mxf/mxfwrite.h: + mxf: Add MXF muxer + This muxer currently only supports OP1a and is + probably not yet 100% complying to the standards. + +2009-03-11 19:30:22 +0100 Sebastian Dröge + + * ext/jp2k/gstjasperenc.c: + jp2kenc: Add width/height/fourcc to the pad template caps + +=== release 0.10.11 === + +2009-03-21 01:09:08 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-autoconvert.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-deinterlace2.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dirac.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.11 + +2009-03-20 23:37:39 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/tr.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + +2009-03-20 23:31:19 +0000 Jan Schmidt + + * sys/dshowdecwrapper/gstdshowvideodec.h: + dshowdec: Add par_n and par_d to the object structure to fix compilation + +2009-03-18 12:32:08 +0000 Jan Schmidt + + * configure.ac: + * win32/common/config.h: + 0.10.6.5 pre-release + +2009-03-18 10:35:43 +0000 Jan Schmidt + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + mxfdemux: Fix build on GLib < 2.16 some more + +2009-03-18 00:02:48 +0000 Jan Schmidt + + * configure.ac: + 0.10.10.4 pre-release + +2009-03-16 17:29:16 +0000 Zaheer Merali + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + mxf: Replace g_hash_table_get_values with code working with glib 2.6. + Fixes #575565 + +2009-03-13 16:31:56 +0000 Jan Schmidt + + * configure.ac: + * win32/common/config.h: + 0.10.10.3 pre-release + +2009-03-13 16:16:21 +0000 Jan Schmidt + + * po/fi.po: + * po/id.po: + * po/pt_BR.po: + po: Update po files from upstream + +2009-03-13 16:08:03 +0000 Jan Schmidt + + * po/LINGUAS: + * po/tr.po: + po: Add Turkish translation + +2009-03-12 23:54:12 +0000 Tim-Philipp Müller + + * gst/xdgmime/gstxdgmime.c: + xdgmime: make xdg typefinder more conservative + The whole raison d'etre of this typefinder is to help avoid false + positives when used in combination with our main typefinder in + -base. Its task is not really to typefind audio/video files, even + less so given that it detects *MIME* types, not GStreamer media + types. Therefore, if this typefinder detects an audio or video + type, don't even suggest it - our own typefinders are hopefully + better at this and detect the right type of type on top of that, + and even if they're not we really want to know about it and fix + it. Fixes #575157. + +2009-03-13 15:59:37 +0100 Wim Taymans + + * gst/rtpmanager/gstrtpsession.c: + rtpbin: don't return FALSE on seek events + Silently ignore the seek event instead of returning FALSE. + +2009-03-13 10:07:18 +0000 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: workaround to fix playback of certain malformed clips + Added a workarround to permit play certain malformed clips where first + SCR is greater than last SCR. Fixes bug #454228 + +2009-03-12 20:13:11 +0100 Edward Hervey + + * tests/check/Makefile.am: + check: Disabling metadata unit test until #574401 is fixed. + +2009-03-12 17:53:37 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add some more plugins the spec file + +2009-03-11 13:04:36 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + Update spec file with new plugins + +2009-03-10 15:12:24 +0000 Tim-Philipp Müller + + * ext/directfb/dfbvideosink.c: + dfbvideosink: include stdlib.h for abs() + +2009-03-10 21:18:20 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: Fixed a bug in the TS scanner. Fixes #574009 + +2009-03-10 00:22:55 +0000 Jan Schmidt + + * configure.ac: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + * win32/common/config.h: + 0.10.10.2 pre-release + +2009-03-10 00:10:09 +0000 Jan Schmidt + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-twolame.xml: + * ext/Makefile.am: + * ext/twolame/Makefile.am: + * ext/twolame/gsttwolame.c: + * ext/twolame/gsttwolame.h: + * po/POTFILES.in: + Moved twolame from Bad to Ugly + +2009-03-09 23:13:00 +0000 Jan Schmidt + + * common: + Automatic update of common submodule + From 7032163 to f8b3d91 + +2009-03-08 12:05:24 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From ffa738d to 7032163 + +2009-03-08 11:21:00 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 3f13e4e to ffa738d + +2009-03-07 11:46:33 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 3c7456b to 3f13e4e + +2009-03-07 10:46:40 +0100 Sebastian Dröge + + * common: + Automatic update of common submodule + From 57c83f2 to 3c7456b + +2009-03-06 22:36:19 +0000 Jan Schmidt + + * gst/camerabin/gstcamerabin.c: + * tests/check/elements/camerabin.c: + camerabin: Make the tests pass when the camerabin can't initialise. + The camerabin tests were throwing glib errors and hanging when + gst-plugins-good elements (jpegenc, videocrop) can't found. + +2009-03-06 21:14:48 +0000 Jan Schmidt + + * tests/check/elements/.gitignore: + misc: Ignore the camerabin binary in the check/elements subdir + +2009-03-06 19:22:58 +0000 Jan Schmidt + + * gst/camerabin/Makefile.am: + camerabin: Partly fix distcheck + Don't dist the generated marshal.h header by putting it in the headers + list. + +2009-03-07 00:20:28 +0200 Stefan Kost + + * tests/check/pipelines/metadata.c: + metadata: change 'q' back to 'jpegenc' (my keyboard hates me) + +2009-03-06 23:34:56 +0200 Stefan Kost + + * configure.ac: + * ext/metadata/metadata.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadataparsejpeg.c: + * tests/check/pipelines/metadata.c: + metadata: cleanup, fix the test, add comments + First do not build the plugin, if we have none of the backend, as it won't work + then. Fix the miniobject_unref error in the test. Sprinkle a first handful of + debug logs into the element code. + +2009-03-06 20:02:21 +0100 Sebastian Dröge + + * tests/check/elements/legacyresample.c: + legacyresample: Fix memory leak in the unit test by unreffing the caps + +2009-03-06 17:46:37 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + mxfdemux: Store and use the seqnum of the currently running segment everywhere + +2009-03-06 17:24:03 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Don't even try to serialize DM frameworks as it will cause an assertion until this is finished + +2009-03-06 12:42:50 +0100 Edward Hervey + + * ext/faad/gstfaad.c: + faad: Use the public headers if faad2 >= 2.7. Fixes #573369 + Since faad2-2.7, the public function prototypes are in sync with the + actual function prototypes used internally in libfaad. + +2009-03-06 11:08:18 +0100 Wim Taymans + + * ext/ladspa/gstladspa.c: + ladspa: fix compilation when LRDF is missing + -- + +2009-03-05 22:55:17 +0200 Stefan Kost + + * configure.ac: + * ext/ladspa/Makefile.am: + ladspa: remove -ldl as we now use glibs gmodule. + +2009-03-05 22:37:52 +0200 Stefan Kost + + * configure.ac: + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.c: + ladspa: add initial liblrdf support. + Get classification from rdf metadata. + +2009-03-05 22:04:48 +0200 Stefan Kost + + * ext/mplex/gstmplex.cc: + mplex: fix required version + With this version it builds on opensuse 11.1. + +2009-03-05 14:40:57 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Don't use NULL GstStructures to prevent warnings + Currently serializing of DM Frameworks is not supported + yet by DMS1 and will give us NULL. + +2009-03-04 21:30:30 +0000 Tim-Philipp Müller + + * gst-libs/gst/interfaces/Makefile.am: + * gst-libs/gst/interfaces/photography.h: + * gst/camerabin/Makefile.am: + photography: declare interface as unstable API by means of a warning + Application developers won't know right away which module an interface comes from, + and may assume that it is covered by the usual GStreamer API guarantees, so make + it as clear as possible that this particular API is still subject to change + (should have done that with other libraries in -bad before too really). + +2009-03-04 20:37:51 +0000 Tim-Philipp Müller + + * configure.ac: + configure: detect faad's minor version and define FAAD2_MINOR_VERSION in config.h + +2009-03-04 16:46:08 +0000 Tim-Philipp Müller + + * docs/plugins/inspect/plugin-valve.xml: + * gst-plugins-bad.spec.in: + * gst/valve/Makefile.am: + valve: rename plugin file from libfsvalve.* to libgstvalve.* + If you're running things uninstalled, you might need to manually + remove the registry to get the plugin's features to show up + correctly. Also, you probably want to do a make clean to get rid + of the old plugin file. + +2009-03-04 19:50:10 +0100 Edward Hervey + + * gst/real/gstreal.c: + gsreal: bring down the rank of the real decoders to MARGINAL. + Basically, at this point, the ffmpeg equivalent decoders perform way + better, so we'll make the ffmpeg equivalents PRIMARY and these + MARGINAL. + +2009-03-04 18:42:15 +0000 Zaheer Merali + + * sys/dvb/gstdvbsrc.c: + dvbsrc: make some docs up to date + +2009-03-04 18:16:31 +0000 Josep Torra + + * gst/mpegdemux/gstmpegtsdemux.c: + mpegtsdemux: reset sync_lut_len to 0 on READY to NULL + +2009-03-04 15:30:04 +0000 Christian Schaller + + Merge branch 'master' of ssh://uraeus@git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-03-04 15:28:46 +0000 Christian Schaller + + * docs/plugins/Makefile.am: + * gst-plugins-bad.spec.in: + * tests/examples/Makefile.am: + docs/plugins/Makefile.am: add figures subdirectory tests/examples/Makefile.am: add mxf subdirectory gst-plugins.spec.in: add new plugins + +2009-03-04 16:15:57 +0100 Peter Kjellerstedt + + * tests/check/Makefile.am: + check: gst-plugins-bad.supp needs to be distributed. + +2009-03-04 15:05:48 +0200 Stefan Kost + + * configure.ac: + * ext/ladspa/gstladspa.c: + ladspa: add LIBDIR/ladspa to search path and make path more portable + Use glib defines for searchpath separators. Filter searchpath to avoid scanning + path entries twice. Fix the return in ladspa_plugin_directory_search to return + wheter we found a plugin. + +2009-03-04 14:34:12 +0200 Stefan Kost + + * ext/ladspa/Makefile.am: + * ext/ladspa/load.c: + * ext/ladspa/search.c: + * ext/ladspa/utils.h: + ladspa: rewrite the directory scanning, fixes first part of #573370 + Move the two function from search.c into gstladspa.c and make them static. + Remove non needed arguments from function prototypes. Use glib api for + simplicity and portability. + +2009-03-04 11:14:18 +0100 LRN + + * ext/faad/gstfaad.c: + faad: use gint8 instead of int8_t + Use gint8 instead of int8_t to fix compilation. + Fixes #573851. + +2009-03-04 11:07:52 +0100 LRN + + * ext/gsm/gstgsmdec.c: + gsmdec: Use G_BYTE_ORDER to fix Windows compile + gstgsmdec relies on BYTE_ORDER, which is not available on Windows. Use + G_BYTE_ORDER instead. + Fixes #573850. + +2009-03-03 14:30:53 -0500 Olivier Crête + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-mimic.xml: + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + Add Doc for mimic plugin + +2009-03-03 14:03:34 -0500 Olivier Crête + + * configure.ac: + * ext/Makefile.am: + * ext/mimic/gstmimic.c: + Move mimic to -bad + +2009-03-03 14:20:37 -0500 Olivier Crête + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + * ext/mimic/gstmimic.c: + Re-indent to GST style + +2008-07-25 22:47:26 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + [MOVED FROM GST-P-FARSIGHT] Only output a newsegment if the incoming newsegment isnt a time segment + 20080725224726-3e2dc-f82b993c0fbfe8bd487d2f1962fec1d0b6564ebc.gz + +2008-07-25 22:26:48 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + [MOVED FROM GST-P-FARSIGHT] Remove unused member variables + 20080725222648-3e2dc-24649782a39462c7c3fef9d6270b3db4c4ace1bb.gz + +2008-07-25 22:24:48 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Send out the right segment and use stored timestamps directly + 20080725222448-3e2dc-e119bf09ede1cf187581d59176c8b35bafb731ae.gz + +2008-07-25 19:48:33 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Skip non-keyframes before we get a keyframe + 20080725194833-3e2dc-583df57c8ebce4b149a01768ed7d3737136a208f.gz + +2008-07-25 19:33:58 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Ignore upstream newsegment events in mimdec + 20080725193358-3e2dc-7c0f22386e0208a45eae9c1d7eb62e86f61d14ba.gz + +2008-07-25 19:25:30 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] emit the right timestamp in the newsegment event + 20080725192530-3e2dc-a3cc0ce73fca181caee323d699d8576df916e8d3.gz + +2008-07-25 19:08:49 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Use video/x-mimic as the caps type + 20080725190849-3e2dc-38e4acc9d4ad8231ed22f6cc4d7d8c2a8b5668e9.gz + +2008-07-04 22:07:13 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + [MOVED FROM GST-P-FARSIGHT] Add proper locking to mimenc + 20080704220713-3e2dc-6a22d1a423716e8b84bc3bda9986a1b4ff0c0d37.gz + +2008-07-04 22:03:18 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Remove useless implementation of getcaps from mimdec + 20080704220318-3e2dc-d81bc59b2308c5ad0d3144030c5650295e99f3c6.gz + +2008-07-04 22:02:43 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + [MOVED FROM GST-P-FARSIGHT] Add proper locking to mimdec + 20080704220243-3e2dc-71c157d82999dfb41bd62b4064b1887ab22e84c1.gz + +2008-07-04 21:59:36 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Remove leak + 20080704215936-3e2dc-22d992f98c9931f062662fc05f1ce65bc97f619a.gz + +2008-07-04 21:55:50 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Reset the gst timestamp if the time different is too large + 20080704215550-3e2dc-76eb3f600f2b977e916f7e1f654529ddaff06ac9.gz + +2008-07-04 21:52:08 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Use the timestamp from the first buffer as the base + 20080704215208-3e2dc-5822771f2694deda4a7cd5cdd3c38ab9eff7fa2d.gz + +2008-07-04 21:49:35 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Store the timestamp in the header + 20080704214935-3e2dc-90ec73df3225b41baa681ab691fb8bd47e17c780.gz + +2008-07-04 21:19:43 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Re-indent mimdec + 20080704211943-3e2dc-def1e0dacc4a45fe2b4afdcb903a1328c95117ac.gz + +2008-07-04 21:15:11 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Simplify newsegment code + 20080704211511-3e2dc-b98d1e5b31c23eb7912197f9364a31560d092c63.gz + +2008-07-04 20:50:10 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + [MOVED FROM GST-P-FARSIGHT] Port mimic plugins to GST_BOILERPLATE + 20080704205010-3e2dc-da41e5685ab9ceb67555d499125432cd12d5505d.gz + +2008-07-04 20:41:12 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + * ext/mimic/gstmimic.c: + [MOVED FROM GST-P-FARSIGHT] Remove trailing whitespace in mimic plugin + 20080704204112-3e2dc-1ab4b913d58faa058742b01e083f7debd6877bb3.gz + +2008-07-04 20:29:41 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + [MOVED FROM GST-P-FARSIGHT] Fix conflicts + 20080704202941-3e2dc-7f5a38845b797e12d672551466e635d484cb6763.gz + +2007-11-10 05:17:17 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Fix mimic enc chain function, return res for chain(), get the parent element with the proper accessor function, use the _OBJECT debugging macros + 20071110051717-3e2dc-4726fcd19cc3d1121a4e13276a41f5f86dc1c9b1.gz + +2007-11-10 05:14:27 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Make the _set_caps function of mimic enc more robust + 20071110051427-3e2dc-381a71f2cbfdbf508e941b672e9058c82fabce24.gz + +2007-11-10 05:14:01 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Remove the gst 0.9.1 ifdef + 20071110051401-3e2dc-1f071d732d64573889977405995692d94b10a0d6.gz + +2007-11-10 05:10:35 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Make caps gst 0.10 compliant + 20071110051035-3e2dc-f7024bd3ecfb6794fe8d09dcb100ba0b4783df5d.gz + +2007-11-10 05:09:50 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Use g_type_class_peek_parent instead of reffing the parent class directly + 20071110050950-3e2dc-6d14ddd6ae3ceeeaa4e641b7b09613e442927f92.gz + +2007-11-10 05:08:52 +0000 Olivier Crete + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Remove framesize properties on the mimic encoder + 20071110050852-3e2dc-cb8165c073bfa981790dc91693fd1c483ea7b6ea.gz + +2007-11-10 05:07:53 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Use the _OBJECT debug macros + 20071110050753-3e2dc-560d22a86eea1108f1746d0123744d33812e94c9.gz + +2007-11-10 05:03:51 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Use gst_pad_get_parent instead of looking into the GstObject directly + 20071110050351-3e2dc-636f7d7737494f810047a8ee6927cde060bb4b4b.gz + +2007-11-10 05:02:32 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Return back result of pad push + 20071110050232-3e2dc-4a080d97963cd8ab6d528c4012d14353c1cfe97b.gz + +2007-11-10 04:11:25 +0000 Olivier Crete + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + [MOVED FROM GST-P-FARSIGHT] Ole's port to gst 0.10 + 20071110041125-3e2dc-e2994c3bbe1578d98e4f707bd10f24fabf942c2b.gz + +2008-12-11 17:54:18 -0500 Olivier Crête + + * ext/mimic/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-02-11 22:24:31 +0000 Youness Alaoui + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Limit timestamp diff in case of a jump in the timestamps + 20080211222431-4f0f6-726fc66403081533371f775954aab4c7b8fdc643.gz + +2008-02-06 03:16:54 +0000 Youness Alaoui + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Make it back to 30 fps in caps + 20080206031654-4f0f6-d8197e53888906805041e6552c0dd774c55e9e89.gz + +2008-02-06 03:09:47 +0000 Youness Alaoui + + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Fix timestamps in gst buffers sent by gstmimic + 20080206030947-4f0f6-9dc7d9b1a92a717c71b1e490a5591f0e2ffe0dad.gz + +2008-02-06 02:03:35 +0000 Youness Alaoui + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Fix framerate type in caps for gstmimic element + 20080206020335-4f0f6-0d9e136039ad6b7b84982bdac242a059d50fbb66.gz + +2006-03-24 20:16:19 +0000 philippe.kalaf@collabora.co.uk + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Fixed couple of compilation issues + 20060324201619-2425b-bf339926f533aa4efece855fbbe94e59c7bb955f.gz + +2006-03-24 19:57:20 +0000 philippe.kalaf@collabora.co.uk + + * ext/mimic/gstmimenc.c: + [MOVED FROM GST-P-FARSIGHT] Calls to gst_pad_get_parent ref the object so it needs to be unreffed < hexa00@gmail.com + 20060324195720-2425b-17928be34ee67f71efbaf62de76deba9ad13f0f2.gz + +2006-02-14 21:00:27 +0000 philippe.kalaf@collabora.co.uk + + * ext/mimic/Makefile.am: + [MOVED FROM GST-P-FARSIGHT] Separated ERROR_CFLAGS from GST_CFLAGS + 20060214210027-2425b-1f9e6ed591c08e5907d02ef7ea9a8cf62bf29840.gz + +2005-10-24 15:37:48 +0000 Philippe Khalaf + + * ext/mimic/gstmimdec.c: + [MOVED FROM GST-P-FARSIGHT] Should not be done in dispose, moving to finalize + 20051024153748-05459-9625fec05547c535bf5f3c66aebba84861b549aa.gz + +2005-07-16 19:50:21 +0000 Philipe Kalaf + + * ext/mimic/.git-darcs-dir: + * ext/mimic/Makefile.am: + * ext/mimic/gstmimdec.c: + * ext/mimic/gstmimdec.h: + * ext/mimic/gstmimenc.c: + * ext/mimic/gstmimenc.h: + * ext/mimic/gstmimic.c: + [MOVED FROM GST-P-FARSIGHT] Import from CVS to darcs + +2009-03-03 14:32:38 -0500 Olivier Crête + + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + rtpmux: Ignore rtpmux get_type function for docs + +2009-03-03 19:08:28 +0000 Sebastian Pölsterl + + * gst/mpegdemux/mpegtspacketizer.c: + mpegtsparse: fix memleak + Fix memleak in mpegts_packetizer_clear where MpegTSPacketizerStream is + not freed properly when using foreach_stream_clear function. + +2009-03-03 18:28:10 +0000 Josep Torra + + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: dynamically adjust the sync LUT table + Make the sync LUT table adjusted dynamically according to the size + of scanned data. Fixes demuxing buffers of any size. + +2009-02-25 21:05:42 -0500 Olivier Crête + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-autoconvert.xml: + * gst/autoconvert/Makefile.am: + * gst/autoconvert/gstautoconvert.c: + * gst/autoconvert/gstautoconvert.h: + autoconvert: Import fsselector from gst-plugins-farsight as autoconvert + fsselector is too close to selector, so import is as autoconvert. Not importing + the history because the directory is also called gst/selector and it fails. + +2009-03-02 10:57:35 +0100 Edward Hervey + + * gst/qtmux/gstqtmux.c: + qtmux: Be a bit more verbose in our debug message when failing to renegotiate + +2009-03-02 17:00:41 +0100 Sebastian Dröge + + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + mxfdemux: Use arrays instead of lists for the metadata registries + +2009-03-02 16:29:01 +0100 Sebastian Dröge + + * gst/xdgmime/gstxdgmime.c: + xdgmime: Reduce probability to POSSIBLE + +2009-03-02 16:27:55 +0100 Sebastian Dröge + + * gst/xdgmime/gstxdgmime.c: + xdgmime: Add locking to the xdg_mime_* calls as it's not thread-safe + +2009-03-01 20:18:30 +0100 Sebastian Dröge + + * gst/xdgmime/xdgmime/xdgmimealias.c: + * gst/xdgmime/xdgmime/xdgmimecache.c: + * gst/xdgmime/xdgmime/xdgmimeglob.c: + * gst/xdgmime/xdgmime/xdgmimeicon.c: + * gst/xdgmime/xdgmime/xdgmimeparent.c: + xdgmime: Use g_pattern_match_simple() instead of fnmatch() for Win32 compatibility + +2009-03-01 20:13:31 +0100 LRN + + * gst/xdgmime/xdgmime/xdgmimemagic.c: + xdgmime: Fix unused variable compiler warning + +2009-03-01 20:12:12 +0100 Sebastian Dröge + + * gst/xdgmime/xdgmime/xdgmimecache.c: + xdgmime: Don't warn if we have no MMAP support + +2009-03-01 20:11:07 +0100 Sebastian Dröge + + * gst/xdgmime/xdgmime/xdgmimecache.c: + xdgmime: Use g_ntoh[ls] instead of the non-GLib functions for Win32 compatibility + +2009-03-01 20:09:24 +0100 Sebastian Dröge + + * gst/xdgmime/xdgmime/xdgmimemagic.c: + xdgmime: Use G_BYTE_ORDER instead of relying on LITTLE_ENDIAN to be defined + +2009-03-01 20:02:12 +0100 Sebastian Dröge + + * ext/ladspa/Makefile.am: + ladspa: Don't compile unused code from load.c + +2009-02-28 23:47:02 +0000 Tim-Philipp Müller + + * gst/real/gstreal.c: + realdec: use gst_plugin_add_dependency() + +2009-02-28 15:23:07 -0800 Michael Smith + + * sys/acmenc/acmenc.c: + acmenc: fix whitespace + Convert to unix newlines, and reindent in some broken places. + +2009-02-28 20:42:49 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxf: Fix memory leak + gst_structure_id_set() will copy GstStructures instead of taking + the ownership. + +2009-02-28 20:39:42 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + mxf: Store the metadata type ID inside the class structure + +2009-02-28 19:41:10 +0100 vanista + + * gst/mpegdemux/gstsectionfilter.c: + mpegtsdemux: Fix memory leaks when PUSI is missed due to packet loss + Fixes bug #573288. + +2009-02-28 11:43:56 +0100 Edward Hervey + + * gst/nsf/fmopl.c: + nsf: Don't write further than the limits of the table (size is 75, as defined in the header) + gcc 4.3.3 found this one, I'm impressed. + +2009-02-28 10:29:15 +0100 Sebastian Dröge + + * tests/examples/mxf/mxfdemux-structure.c: + mxf: Don't use GLib 2.16 API unconditionally in the example + +2009-02-27 20:43:25 +0100 Andrzej Polatyński + + * gst/videosignal/gstvideoanalyse.c: + videoanalyse: Fix brightness calculation to not only use the first rowstride + Fixes bug #573391. + +2009-02-27 11:36:58 -0800 Michael Smith + + * gst/mpeg4videoparse/mpeg4videoparse.c: + mpeg4videoparse: Use correct values for checking VO startcode. + Fix compiler warning due to condition always being true - since we're + only looking at the final byte of the startcode (not the leading + 0x000001), only check for < 0x1f, not < 0x11f + +2009-02-27 20:21:23 +0100 Sebastian Dröge + + * gst/xdgmime/gstxdgmime.c: + xdgmime: Use empty caps for registering the typefinders with old core versions + core before 0.10.22.1 produced assertions when storing typefind factories + with NULL caps in the registry. + +2009-02-26 15:40:26 +0100 Wim Taymans + + * gst/mpeg4videoparse/mpeg4videoparse.c: + * gst/mpeg4videoparse/mpeg4videoparse.h: + mpeg4videoparse: handle more formats + We only need a Video Object Start code before we can start pushing out data. + Search for this code also instead of only looking for VOS and VOP. + Fixes #572551. + +2009-02-27 12:03:23 +0000 Jan Schmidt + + Merge branch 'work' + +2009-02-27 11:56:45 +0000 Jan Schmidt + + * docs/plugins/.gitignore: + docs: Ignore some more generated files + +2009-02-27 11:55:34 +0000 Jan Schmidt + + * ext/celt/gstceltdec.c: + * ext/celt/gstceltdec.h: + celtdec: Move define into the C file so it doesn't show up in the docs + +2009-02-27 11:54:42 +0000 Jan Schmidt + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-dirac.xml: + docs: Enroll dirac plugin into the docs + +2009-02-27 11:39:56 +0000 Jan Schmidt + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/dts/gstdtsdec.c: + dtsdec: Add some basic docs to the plugin + +2009-02-27 10:16:57 +0000 Jan Schmidt + + * ext/apexsink/gstapexraop.c: + apexsink: Use a union to avoid type-punning strict aliasing compiler warning. + +2009-02-27 12:35:14 +0200 Stefan Kost + + * gst/camerabin/Makefile.am: + * gst/camerabin/gstcamerabin-marshal.list: + * gst/camerabin/gstcamerabin.c: + * tests/check/elements/camerabin.c: + camerabin: rework signaling and tests + Revert the GString change. There are no marshallers for it. A better change is + now described in http://bugzilla.gnome.org/show_bug.cgi?id=573370. + Test should work again. + +2009-02-27 11:24:37 +0200 Stefan Kost + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: revert last change and properly fix + Baseparse internaly breaks the semantics of a _chain function by calling it with + buffer==NULL. The reson I belived it was okay to remove it was that there is + also an unchecked access to buffer later in _chain. Actually that code is wrong, + as it most probably wants to set discont on the outgoing buffer. + +2009-02-27 11:06:04 +0100 Edward Hervey + + * sys/qtwrapper/qtutils.c: + qtwrapper: Only use _dump_mem() if requested. + +2009-02-26 12:48:16 -0800 David Schleef + + * gst/rawparse/gstvideoparse.c: + Add v210 format + +2009-02-26 12:47:16 -0800 David Schleef + + * gst/rawparse/gstvideoparse.c: + Fix incorrect "pixel_aspect_ratio" in caps + Should be "pixel-aspect-ratio". + +2009-02-26 18:46:00 +0100 Sebastian Dröge + + * configure.ac: + * tests/examples/mxf/.gitignore: + * tests/examples/mxf/Makefile.am: + * tests/examples/mxf/mxfdemux-structure.c: + mxf: Add example application to output the structural metadata tree into a GtkTreeView + +2009-02-26 13:10:29 +0100 Olivier Crête + + * gst/rtpmanager/gstrtpsession.c: + gstrtpbin: Don't forward revc events to sender + Don't send events from the receiver to the sender side. + Fixes #572900. + +2009-02-26 11:02:06 +0200 Stefan Kost + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + * gst/flacparse/gstbaseparse.c: + baseparse: remove checks for buffer==NULL + Accordifn to docs for GstPadChainFunction buffer cannot be NULL. If we would + leave the check, we would also need more such check below. + +2009-02-25 15:06:07 +0000 Jan Schmidt + + * common: + * configure.ac: + build: Update shave init statement for changes in common. Bump common. + +2009-02-25 15:24:13 +0200 Stefan Kost + + * tests/check/elements/neonhttpsrc.c: + tests: add a timeout of 5 slightly above the default + +2009-02-25 15:17:14 +0200 Stefan Kost + + * tests/check/elements/camerabin.c: + camerabin: increase timeout and lower video recording length + The video was recorded for too long for the test timeouts. Also the verification + suite did not had custom timouts at all. Also split the verification for images + and video to get better reporting. + +2009-02-25 11:32:22 +0000 Jan Schmidt + + * common: + Automatic update of common submodule + From 9cf8c9b to a6ce5c6 + +2009-02-25 12:34:33 +0200 Stefan Kost + + * tests/check/Makefile.am: + tests: blacklist dccp plugins. + Unless one runs a very recent kernel, they can easily lockup the whole system. + +2009-02-25 11:45:05 +0200 Stefan Kost + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/camerabin/gstcamerabin.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/selector/gstinputselector.c: + docs: various doc fixes + No short-desc as we have them in the element details. + Also keep things (Makefile.am and sections.txt) sorted. + Reword ambigous returns. No text after since please. + +2009-02-25 11:34:45 +0100 Wim Taymans + + * gst/mpegdemux/gstmpegdemux.c: + mpegdemux: don't ignore GstFlowReturn values + don't ignore the return value of pull_range because we only get a valid non-NULL + buffer when the return value is GST_FLOW_OK. Avoids a crash when the pipeline is + shutting down. + +2009-02-25 11:41:36 +0200 Stefan Kost + + * gst/camerabin/gstcamerabin-marshal.list: + * gst/camerabin/gstcamerabin.c: + camerabin: update signal marshaller and docs + Use GString instead of GPointer for the marshaller as this is what the callback uses. + Slightly reformat docs. + +2009-02-25 11:38:58 +0200 Stefan Kost + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/figures/Makefile.am: + * docs/plugins/figures/camerabin.dot: + * docs/plugins/figures/camerabin.png: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-camerabin.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-deinterlace2.xml: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-gstsiren.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-liveadder.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-twolame.xml: + * docs/plugins/inspect/plugin-valve.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xdgmime.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + docs: update docs to add camerabin and its figure + +2009-02-25 11:00:55 +0200 Stefan Kost + + * tests/check/elements/camerabin.c: + camerabin: get rid of // comment and explain + +2009-02-25 10:46:10 +0200 Stefan Kost + + * tests/check/elements/camerabin.c: + camerabin: update check unit test + Use playbin2 for validation. Use tmp_dir for capturing. Wait with g_cond for + burst capture finish. Cleanup some g_object_set. Add some logging to ease + tracing. + +2009-02-25 10:45:19 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: unblock correct pad in reset, support fakesink as view finder + +2009-02-24 16:36:28 +0100 Sebastian Dröge + + * tests/examples/app/.gitignore: + * tests/examples/app/Makefile.am: + * tests/examples/app/appsink-src.c: + * tests/examples/app/appsrc-ra.c: + * tests/examples/app/appsrc-seekable.c: + * tests/examples/app/appsrc-stream.c: + * tests/examples/app/appsrc-stream2.c: + * tests/examples/app/appsrc_ex.c: + Remove tests/examples/app as it was moved to -base a long time ago + +2009-02-24 16:33:51 +0100 Sebastian Dröge + + * Makefile.am: + * configure.ac: + * examples/Makefile.am: + * examples/app/.gitignore: + * examples/app/Makefile.am: + * examples/app/appsink-src.c: + * examples/app/appsrc-ra.c: + * examples/app/appsrc-seekable.c: + * examples/app/appsrc-stream.c: + * examples/app/appsrc-stream2.c: + * examples/app/appsrc_ex.c: + * examples/capsfilter/Makefile.am: + * examples/capsfilter/capsfilter1.c: + * examples/directfb/.gitignore: + * examples/directfb/Makefile.am: + * examples/directfb/decker.ttf: + * examples/directfb/dfblogo.png: + * examples/directfb/gstdfb.c: + * examples/gob/Makefile.am: + * examples/gob/gst-identity2.gob: + * examples/gstplay/.gitignore: + * examples/gstplay/Makefile.am: + * examples/gstplay/player.c: + * examples/indexing/.gitignore: + * examples/indexing/Makefile.am: + * examples/indexing/indexmpeg.c: + * examples/level/Makefile.am: + * examples/level/README: + * examples/level/demo.c: + * examples/level/plot.c: + * examples/scaletempo/.gitignore: + * examples/scaletempo/Makefile.am: + * examples/scaletempo/demo-gui.c: + * examples/scaletempo/demo-gui.h: + * examples/scaletempo/demo-main.c: + * examples/scaletempo/demo-player.c: + * examples/scaletempo/demo-player.h: + * examples/stats/Makefile.am: + * examples/stats/mp2ogg.c: + * examples/switch/.gitignore: + * examples/switch/Makefile.am: + * examples/switch/switcher.c: + * tests/Makefile.am: + * tests/examples/Makefile.am: + * tests/examples/app/.gitignore: + * tests/examples/app/Makefile.am: + * tests/examples/app/appsink-src.c: + * tests/examples/app/appsrc-ra.c: + * tests/examples/app/appsrc-seekable.c: + * tests/examples/app/appsrc-stream.c: + * tests/examples/app/appsrc-stream2.c: + * tests/examples/app/appsrc_ex.c: + * tests/examples/capsfilter/Makefile.am: + * tests/examples/capsfilter/capsfilter1.c: + * tests/examples/directfb/.gitignore: + * tests/examples/directfb/Makefile.am: + * tests/examples/directfb/decker.ttf: + * tests/examples/directfb/dfblogo.png: + * tests/examples/directfb/gstdfb.c: + * tests/examples/gob/Makefile.am: + * tests/examples/gob/gst-identity2.gob: + * tests/examples/gstplay/.gitignore: + * tests/examples/gstplay/Makefile.am: + * tests/examples/gstplay/player.c: + * tests/examples/indexing/.gitignore: + * tests/examples/indexing/Makefile.am: + * tests/examples/indexing/indexmpeg.c: + * tests/examples/level/Makefile.am: + * tests/examples/level/README: + * tests/examples/level/demo.c: + * tests/examples/level/plot.c: + * tests/examples/scaletempo/.gitignore: + * tests/examples/scaletempo/Makefile.am: + * tests/examples/scaletempo/demo-gui.c: + * tests/examples/scaletempo/demo-gui.h: + * tests/examples/scaletempo/demo-main.c: + * tests/examples/scaletempo/demo-player.c: + * tests/examples/scaletempo/demo-player.h: + * tests/examples/stats/Makefile.am: + * tests/examples/stats/mp2ogg.c: + * tests/examples/switch/.gitignore: + * tests/examples/switch/Makefile.am: + * tests/examples/switch/switcher.c: + Move examples directory to tests/examples as in every other GStreamer module + +2009-02-24 16:21:18 +0100 Sebastian Dröge + + * configure.ac: + * ext/dts/gstdtsdec.c: + * ext/dts/gstdtsdec.h: + dtsdec: Use new DCA functions/constants as not all distros package the compat dts.h + For backward compatibility we define the DCA functions/constants to the + old DTS functions/constants if we're building against libdts. + +2009-02-24 15:26:27 +0100 Sebastian Dröge + + * configure.ac: + * gst/xdgmime/Makefile.am: + * gst/xdgmime/gstxdgmime.c: + * gst/xdgmime/xdgmime/xdgmime.c: + * gst/xdgmime/xdgmime/xdgmime.h: + * gst/xdgmime/xdgmime/xdgmimealias.c: + * gst/xdgmime/xdgmime/xdgmimealias.h: + * gst/xdgmime/xdgmime/xdgmimecache.c: + * gst/xdgmime/xdgmime/xdgmimecache.h: + * gst/xdgmime/xdgmime/xdgmimeglob.c: + * gst/xdgmime/xdgmime/xdgmimeglob.h: + * gst/xdgmime/xdgmime/xdgmimeicon.c: + * gst/xdgmime/xdgmime/xdgmimeicon.h: + * gst/xdgmime/xdgmime/xdgmimeint.c: + * gst/xdgmime/xdgmime/xdgmimeint.h: + * gst/xdgmime/xdgmime/xdgmimemagic.c: + * gst/xdgmime/xdgmime/xdgmimemagic.h: + * gst/xdgmime/xdgmime/xdgmimeparent.c: + * gst/xdgmime/xdgmime/xdgmimeparent.h: + xdgmime: Add new typefinder based on xdgmime + This typefinder is mostly useful to filter out any false positives + by the other typefinders like the usual Word document misdetected as + MP3 file. + +2009-02-24 13:37:24 +0100 Sebastian Dröge + + * configure.ac: + dts: Prefer libdca over libdts as it's the successor + +2009-02-23 16:02:08 +0100 Edward Hervey + + * sys/qtwrapper/audiodecoders.c: + qtwrapper: Fix build on macosx + +2009-02-23 15:25:03 +0100 Edward Hervey + + * gst/liveadder/liveadder.c: + liveadder: Fix build on macosx + +2009-02-20 12:08:04 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + camerabin: Add aspect ratio capsfilter for view finder + If dealing with larger frame sizes than view finder sink element + accepts then maintain aspect ratio when scaling frames to fit. + +2009-02-20 12:07:33 +0200 Lasse Laukkanen + + * gst/camerabin/gstcamerabin.c: + camerabin: Scale incoming frames if their size does not match requested size + If capture preparation in videosrc results in frame size different + from requested size, then we need to scale them. + +2009-02-20 12:03:03 +0200 Lasse Laukkanen + + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + photo iface: Add caps object to preparation API for requested and actual capture format + Allow requesting of certain format with prepare_for_capture() and return + the actual format in GstPhotoCapturePrepared callback. + +2009-02-23 11:49:07 +0000 Jan Schmidt + + * configure.ac: + build: Add soundtouch's -lBPM to _LIBS, not _CFLAGS + +2009-02-22 22:00:58 +0100 Edward Hervey + + * gst/dccp/gstdccpserversink.c: + dccp: Fix "non-void without return value" compilation issue. + +2009-02-22 19:17:30 +0000 Jan Schmidt + + * configure.ac: + * ext/soundtouch/Makefile.am: + * ext/soundtouch/gstbpmdetect.cc: + Detect libsoundtouch 1.4 and higher. + In libsoundtouch 1.4, libBPM appears to have been subsumed into + libSoundTouch, and into the soundtouch namespace. + +2009-02-22 18:12:19 +0000 Jan Schmidt + + * configure.ac: + * docs/plugins/Makefile.am: + Use shave for the build output + +2009-02-22 18:41:08 +0100 Andoni Morales + + * configure.ac: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/gstcamerabin.c: + camerabin: Fix compilation on Windows with Visual Studio + Windows doesn't have strcasecmp so we should use + g_ascii_strcasecmp here instead. + Also Windows doesn't have sys/time.h so we first + need to check if it actually exists and if not + we should not include it. + Fixes bug #572315. + +2009-02-22 15:58:06 +0000 Jan Schmidt + + * common: + Automatic update of common submodule + From 5d7c9cc to 9cf8c9b + +2009-02-22 14:58:36 +0100 Sebastian Dröge + + * ext/directfb/dfbvideosink.c: + dfbvideosink: Don't use void * pointer arithmetic + +2009-02-22 13:17:54 +0100 Edward Hervey + + * ext/xvid/gstxvid.c: + xvid: Fix compilation warning + +2009-02-21 11:13:50 -0800 David Schleef + + * common: + Automatic update of common submodule + From 80c627d to 5d7c9cc + +2009-02-10 17:02:24 +0000 Olivier Crête + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-dtmf.xml: + * docs/plugins/inspect/plugin-rtpmux.xml: + * gst/rtpmux/Makefile.am: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmuxer.c: + Moved rtpmux from gst-p-farsight to -bad + +2009-02-20 17:45:50 -0500 Olivier Crête + + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + * gst/rtpmux/gstrtpmuxer.c: + Re-indent to Gst style + +2009-02-10 19:11:15 +0000 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Document rtp muxer a bit + +2009-02-20 13:30:49 -0500 Laurent Glayal + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + [MOVED FROM GST-P-FARSIGHT] Add signals before stream lock and after unlocking + +2009-02-18 20:18:46 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Let ssrc through getcaps + +2009-02-18 19:58:58 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Rename have_base to have_ts_base + +2009-02-18 18:14:52 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Protect the seqnum with object lock in rtpmux + +2009-02-18 18:07:44 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Remove unused sink_ts_base + +2009-02-18 15:20:58 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Have getcaps to force the same clockrate on all pads + +2009-02-18 17:05:13 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Validate RTP data in RTP Mux + +2009-02-18 14:16:00 -0500 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Remove unused clock-rate property + +2009-02-18 13:56:36 -0500 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.h: + [MOVED FROM GST-P-FARSIGHT] Clarify locking in rtpdtmfmux + +2009-02-18 13:32:56 -0500 Laurent Glayal + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Missing format parameter + +2008-12-11 17:54:18 -0500 Olivier Crête + + * gst/rtpmux/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-12-01 17:55:22 -0500 Håvard Graff + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Update seqnum base in rtp muxer + With help from Wim + +2008-12-01 17:54:58 -0500 Håvard Graff + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Fix some more leaks + +2008-12-01 17:48:29 -0500 Håvard Graff + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] Fix leak + +2008-09-29 15:03:05 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Don't unref caps we don't know (thanks Wim) + +2008-08-12 12:48:02 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Put per-buffer debug at level LOG + +2008-08-12 12:47:14 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Make debug print accurate + +2008-08-12 12:46:23 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Set our caps on the buffers + +2008-08-12 12:46:07 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Take the clock-base stored from the last setcaps + +2008-08-12 12:41:59 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Store the clock-base on setcaps + +2008-08-12 12:30:52 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Add padprivate to the request pads + +2008-08-12 12:23:32 -0400 Olivier Crête + + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Remove whitespace in gstrtpmux + +2008-08-11 21:20:06 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Make indentation more correct + +2008-08-11 21:05:34 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Fix typo + +2008-08-11 21:03:22 -0400 Olivier Crête + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Set seqnum-base and clock-base in caps from rtpmuxer + +2007-08-15 13:50:38 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] more debug + 20070815135038-f3f1e-9c7a5490a525c6e8753cb1b8c03354df99132b5c.gz + +2007-08-23 21:22:25 +0000 philippe.kalaf@collabora.co.uk + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Sync jitterbuffer with CVS -bad + 20070823212225-2425b-0fe69bf72539678dda45d615a09f1cbf502cc71a.gz + +2007-08-20 18:50:32 +0000 Youness Alaoui + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] missing comment + 20070820185032-4f0f6-0ab67b6ac40dd4e35a8fe53f3cb6daff65ce43b9.gz + +2007-07-12 19:53:36 +0000 Olivier Crete + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Make buffer writable before writing into it + 20070712195336-3e2dc-91a5fb797cfa4919d4e2f9a728c6d6fbd3b83d93.gz + +2007-07-06 20:24:59 +0000 Olivier Crete + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Set pads active when adding them to a potentially running element + 20070706202459-3e2dc-a3731f885725594def0a7be997fc7b3a739ee967.gz + +2007-06-07 12:01:21 +0000 Olivier Crete + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Fix multiple ref leaks (patches by SP GLE) + 20070607120121-3e2dc-061e9ef7a47b1b84fa8f8092f4b8bcc0e6db8c8c.gz + +2007-05-28 15:25:05 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] send event to all src pads + 20070528152505-f3f1e-039216c73dc93f64c49962c77a0253cb9cfec4d3.gz + +2007-05-28 12:37:49 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] print a warning if receive an error iterating sinkpads + 20070528123749-f3f1e-4c1eb3f511b5610143610a65a94d117f2c3d2580.gz + +2007-05-28 12:28:08 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] deal with all the gst_iterator_next() return values + 20070528122808-f3f1e-d301644c3be7633ec6dc5e28596e9346d2da6a50.gz + +2007-05-25 12:31:16 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Return correct value from the event handler + 20070525123116-f3f1e-131b37b5f4521618fe2f1320409a47e65b35ad2d.gz + +2007-05-25 10:27:09 +0000 Zeeshan Ali + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Ville's original patch to fix the traversal of dtmf event + 20070525102709-f3f1e-6c41d1ef934068a4f4e810e7e981b420075b0c98.gz + +2007-03-29 13:52:50 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Set the correct ts-offset on the get_prop value + 20070329135250-65035-a43e222d91d57c0a61cb3287586aaa29abf78674.gz + +2007-03-29 13:52:23 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Refactorize state_change + 20070329135223-65035-23a0107b2e397710f035c6e88cc0e49b65bb4d5d.gz + +2007-03-29 13:36:22 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] set SSRC on the packets + 20070329133622-65035-1be6e0aa85a71389f7d257b9cd3e13a73d6b745b.gz + +2007-03-29 13:19:36 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Code clean-up and more debug output + 20070329131936-65035-9d499e209e0d7a409c3aa0d1040778babf076179.gz + +2007-03-28 11:22:19 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Use own clock-base + 20070328112219-65035-1ba5fefbc65059e9b0c860528a31062ceb6a7331.gz + +2007-03-23 16:31:39 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Only accept RTP streams that have the same clock-rate + 20070323163139-65035-fc0b17b0b8a7a041f48994c4f26e96568168bf95.gz + +2007-03-22 16:15:52 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] Some more code-cleanups + 20070322161552-65035-bda96165e146b4f1d5fea1cc9576a7ab3abebc9e.gz + +2007-03-22 15:42:51 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] return newpad instead of NULL and warn if failed to create a pad + 20070322154251-65035-cdb6651e61c2eb0205cc8c24693b43f98a2da718.gz + +2007-03-22 12:41:32 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Refactorize the RTPMux code + 20070322124132-65035-0a3278147546e33f687097a43b775b3f6aa99f93.gz + +2007-03-22 12:14:53 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] Some more doc fixing + 20070322121453-65035-12d602272217b51bd97df4e5790024c399622dd3.gz + +2007-03-22 11:32:28 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] More Refactoring + 20070322113228-65035-bae34a79599e7de5293ed77b022361ccff822bb9.gz + +2007-03-22 11:31:54 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] More documentation + 20070322113154-65035-624850541a5b5fc3df231204be5a83d07239db28.gz + +2007-03-21 16:33:11 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpdtmfmux.c: + [MOVED FROM GST-P-FARSIGHT] Refactor the event handler function + 20070321163311-65035-987e7f25d1ab5335b79f44b277abf15e4e37d317.gz + +2007-03-21 14:52:44 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/Makefile.am: + * gst/rtpmux/gstrtpdtmfmux.c: + * gst/rtpmux/gstrtpdtmfmux.h: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + * gst/rtpmux/gstrtpmuxer.c: + [MOVED FROM GST-P-FARSIGHT] Add RTPDTMFMux element + 20070321145244-65035-9a01390b0dee3398e53199a1fa1d9352004f338e.gz + +2007-03-21 12:31:49 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/Makefile.am: + * gst/rtpmux/gstrtpmux.c: + * gst/rtpmux/gstrtpmux.h: + [MOVED FROM GST-P-FARSIGHT] Remove DTMF-specific code from RTP muxer and make it extendable + 20070321123149-65035-b8a8f55ff78eed8cbb0042e827885edfc5438242.gz + +2007-03-20 12:05:24 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Put more helpful description + 20070320120524-65035-db27a7cf6307b511aeb3d996d26e790e367a7bad.gz + +2007-03-16 15:16:41 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] remove the (commented-out) code for blocking the pads + 20070316151641-65035-0123af387951f88594797c722e882cfe70240aff.gz + +2007-03-16 13:14:44 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Drop buffers instead of blocking the sinkpads + 20070316131444-65035-9c1345ad96108881f455d4b55a7f623cd302d0ed.gz + +2007-03-14 17:16:18 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Implement stream locking, needed for DTMF + 20070314171618-65035-e4d24b1606ce0a3e2e739f01833f61e4d7555eac.gz + +2007-03-14 10:20:58 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] use GST_*_OBJECT instead of g_* + 20070314102058-65035-e2442888f2e3e5a3a7659ad7954a4fba34749ce2.gz + +2007-03-14 10:18:54 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] No need to manage pads, parent does that for us + 20070314101854-65035-ef5f4abde227102a1128835ab325905eae4c3726.gz + +2007-03-14 09:03:58 +0000 zeenix@gmail.com + + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] Fix copyright header + 20070314090358-d014a-3a6d3eeeaaf5cb8ca3bca6a33e99a551f598bd48.gz + +2007-03-07 08:53:07 +0000 zeeshan.ali@nokia.com + + * gst/rtpmux/.git-darcs-dir: + * gst/rtpmux/Makefile.am: + * gst/rtpmux/gstrtpmux.c: + [MOVED FROM GST-P-FARSIGHT] The first implementation of RTP muxer + 20070307085307-65035-833402413f99cb3f8be4883e92bad4c8722510c9.gz + +2009-02-20 18:16:02 -0500 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfsrc.c: + Document rtpdtmfdepay a bit + +2009-02-20 17:41:37 -0500 Olivier Crête + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-dtmf.xml: + * gst/dtmf/gstdtmf.c: + Moved dtmf elements from gst-plugins-farsight to -bad + +2009-02-20 17:40:57 -0500 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + Fix up documentation blobs SGML + +2009-02-20 17:37:43 -0500 Olivier Crête + + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + Re-indent to Gst style + +2009-02-18 13:30:44 -0500 Laurent Glayal + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Missing format directive + +2008-12-04 21:21:44 -0500 Olivier Crête + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Allow setting a maximum duration to a RTP DTMF event + +2008-12-04 21:11:17 -0500 Olivier Crête + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Improve the minimum quanta to make it impossible for the duration to fall down to 0 + +2008-12-01 18:31:48 -0500 Olivier Crête + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Allow setting a minimum size of a sound quanta in the dtmf depayloader + +2008-12-11 17:54:18 -0500 Olivier Crête + + * gst/dtmf/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-12-01 17:37:10 -0500 Håvard Graff + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Do wierd casting of the volume to make MSVC happy + +2008-10-15 16:21:50 -0400 Olivier Crête + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Clarify the documentation of the "event-type" field when specifying dtmf events + +2008-07-22 21:39:38 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Remove g_debugs + 20080722213938-3e2dc-44a82d017fe66f3112301c410aa0b543de6156ad.gz + +2008-06-13 23:57:23 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Take rate from the peers caps if possible + 20080613235723-3e2dc-15690ee42708c539e1be12e20e076a5613faea96.gz + +2008-06-13 23:41:44 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Put the sample rate in dtmfsrc into a variable + 20080613234144-3e2dc-e60070943bec829b703b8821c7aa4351a02deebe.gz + +2008-06-13 23:30:06 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Take the clock-rate from the caps in rtpdtmfsrc + 20080613233006-3e2dc-a7d4e918643f4f8c1bb2cc2678558c654025920e.gz + +2008-04-28 22:22:37 +0000 Olivier Crete + + * gst/dtmf/Makefile.am: + [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required + 20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz + +2008-04-12 23:44:18 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Fix byte ordering issues with dtmfsrc and rtpdtmfdepay.. use of G_STRINGIFY to avoid error on MSVC + 20080412234418-4f0f6-4828d1613dfcd564afd236dfc8fb57a299092f83.gz + +2008-03-20 19:14:38 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Fix copyrights again, per smcv's advice.. + 20080320191438-4f0f6-671c9db5d996a4601df017ceab4af6d16469c966.gz + +2008-03-19 21:17:31 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make it clear that dtmfsrc also takes named events as input + 20080319211731-3e2dc-26c729f6dc8db27e71cf6b22646a81530dbf862f.gz + +2008-03-20 18:48:41 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] debug message made into errors because that's what they are... + 20080320184841-4f0f6-8a2d283297b02713dade0ae4acaa5f6e0f67eace.gz + +2008-03-20 18:39:37 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfdepay.c: + [MOVED FROM GST-P-FARSIGHT] Clean unused stuff... + 20080320183937-4f0f6-bcb841cdc07f9e9677512f4b50b4b659a58c6783.gz + +2008-03-20 18:39:12 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Fix copyrights + 20080320183912-4f0f6-689365d5a406632e3d088fac74e4fb6f8a4eb0ea.gz + +2008-03-20 01:13:01 +0000 Youness Alaoui + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Adding support for rtpdtmfdepay + 20080320011301-4f0f6-d36a5d24be20336e36c4796d75476c9b5ee1a7e1.gz + +2008-03-19 19:32:51 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] encoding name has to be upper-case + 20080319193251-3e2dc-1581b33be9b486e35ec4948009677ccd5ffdc098.gz + +2008-03-20 00:51:47 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfcommon.h: + * gst/dtmf/gstrtpdtmfdepay.c: + * gst/dtmf/gstrtpdtmfdepay.h: + [MOVED FROM GST-P-FARSIGHT] Adding necessary files for rtpdtmfdepay + 20080320005147-4f0f6-550fe22f70152f3aab3dcd7a6b02cbf81e89232d.gz + +2008-03-20 00:50:41 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix typos + 20080320005041-4f0f6-9d22fa5d155e35b605ea85b1fd9e7197a882a1f0.gz + +2008-02-16 13:41:40 +0000 Sjoerd Simons + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] dtmfsrc: Correctly set the endianess in the caps to the machines endianess + 20080216134140-93b9a-40a3a9d7ac1679c5e0dfd24a6b91e4aba6cc6496.gz + +2007-09-17 17:52:33 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Search&Replace oops + 20070917175233-3e2dc-57f579c4b890993f49fa8e9e6470a3eb79d2b922.gz + +2007-09-17 17:51:33 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] events dont yet belong in the caps + 20070917175133-3e2dc-fd1d83b7826b898110fc571ae7c3440f1887434d.gz + +2007-09-17 16:08:20 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Add patch to make it work with maemo dsp sources that payload incorrectly + 20070917160820-3e2dc-06b1b1d1b0918b30dabea5a0714cb732b3b8d8dd.gz + +2007-09-17 04:26:49 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Oops, set to no preroll when playing->paused too + 20070917042649-3e2dc-94adb6aa0617e815a6e233232dabb4bbc48dc82c.gz + +2007-09-17 00:36:54 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Complete port to basesrc + 20070917003654-3e2dc-db0f84dabd9dd1ac929a0461865b8aaa8ef91a77.gz + +2007-09-17 00:24:12 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add caps negotiation function + 20070917002412-3e2dc-ca266816e9629746e9083c5bb8b7f73b94a9b2b0.gz + +2007-09-17 00:16:59 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Properly free non-start events + 20070917001659-3e2dc-a571777e3ecfb90989f87412f554aa10a31cc2ca.gz + +2007-09-17 00:15:52 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make interval and packet_redundancy into uint + 20070917001552-3e2dc-60032e547b3669b87317c981d985c156aab91b40.gz + +2007-09-16 19:44:08 +0000 Olivier Crete + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Make the rtp dtmf src use basesrc + 20070916194408-3e2dc-734000130dce2434a014acf843d641ff0e60aa5a.gz + +2007-09-16 19:41:01 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make dtmf src code nicer + 20070916194101-3e2dc-a8be8c509c65400d1d3962da02e67d15d2054316.gz + +2007-09-16 19:40:52 +0000 Olivier Crete + + * gst/rtpdtmf/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove unused directory + 20070916194052-3e2dc-44d7f4cb2f220761b65e2b9b6cec4b3c6f8be7c5.gz + +2007-09-14 04:20:42 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Implement stopping in a nice thread safe way + 20070914042042-3e2dc-1fe257ff4b72aca4b0eb5f285a14650b8df268c3.gz + +2007-09-14 04:18:34 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Remove get_times (Wim says its only good for really fake sources) + 20070914041834-3e2dc-fff4d5da2a145f19e7b610a1027d2c4d4bc5eae0.gz + +2007-09-13 21:21:45 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] using the unlock method of basesrc + 20070913212145-4f0f6-0e438a681bf1651c0cc0d8fa3269aed3f1668b6b.gz + +2007-09-13 21:12:26 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] more debug + 20070913211226-4f0f6-bc32b5828fc8e0323c8a6eee779a38145aacd593.gz + +2007-09-13 20:46:14 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] added debugs + 20070913204614-4f0f6-68c2a69ae7a1efca6e13c116dbad7f9b686f0242.gz + +2007-09-13 19:20:53 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make sure to unlock the thread when going to ready and to flush the queue when moving to paused or playing + 20070913192053-4f0f6-76c3925380d1a30988286170535a65dea64a5583.gz + +2007-09-13 17:55:20 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Changed dtmfsrc into a subclass of GstBaseSrc + 20070913175520-4f0f6-16ca4bf93690072f3e836d1c8a5b52cf7a421916.gz + +2007-09-04 22:57:53 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add another fix for a possible race condition + 20070904225753-4f0f6-5ba8c4260c002bb27eb98e9faba3c15799357b57.gz + +2007-09-04 21:52:24 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Add comment to explain push back + 20070904215224-3e2dc-d92ac1f403dcf571546a7c53f18809f840eea51d.gz + +2007-09-04 20:55:09 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Properly do the locking to avoid race conditions with clock unscheduling + 20070904205509-3e2dc-da19900b51af6aedb6547f4f392bef4d1061dec2.gz + +2007-09-01 00:03:24 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] oups, I did it again... + 20070901000324-4f0f6-3d8b46691ee520537b06c511a5e732f5b812b844.gz + +2007-08-31 23:54:28 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] oups, sorry.. DTMF, not RTP_DTMF for this file... + 20070831235428-4f0f6-00b606bfb4892e4f217c440b611cc794ab0de55a.gz + +2007-08-31 23:44:13 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Fixes the deadlock when pausing the dtmfsrc and rtpdtmfsrc. Had to push something on the async queue to release the blocking async_queue_pop(). Thanks to Olivier for the solution. + 20070831234413-4f0f6-793cf35fc43636e7275258cc7063fc068f5efa0a.gz + +2007-08-28 22:15:34 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] ClockID when waiting for buffer is now unscheduled when stopping the task. Various fixes to avoid bugs (thanks to -Wall -Werror). Fixes to allow the merge of the branch. + 20070828221534-4f0f6-b0d6a4fe48c4e2a16b9ff69cb310087c970ce48e.gz + +2007-08-28 17:15:46 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Cleaned up the code a bit, no use of GST_* and return value verification from gst_* + 20070828171546-4f0f6-bdeb4b1b7f99f9464aabe5c43bd4a4d2025262b6.gz + +2007-08-27 19:56:10 +0000 Olivier Crete + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix overly long lines and tabs + 20070827195610-3e2dc-396a3fa01e16f184e4109c71fe2deb6e516bdf0d.gz + +2007-08-27 19:26:18 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] untabbified dtmfsrc + 20070827192618-4f0f6-77d68070464f1b5f9a46cb6eec2d922340143c04.gz + +2007-08-27 17:24:24 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamps by sending a new_segment event to the payloader + 20070827172424-4f0f6-d20907e3d436d50bfe74eb4fc3d2d6d7b6b6dbc5.gz + +2007-08-27 17:23:39 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Better handling of packets, we send the same duration for all packets to avoid huge packets when min duration defines are modified. + 20070827172339-4f0f6-cc93304437ea376fff6458c74c46c19f6920d329.gz + +2007-08-27 17:23:22 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Changing minimum values to work better on some gateways + 20070827172322-4f0f6-5bf2bffa59a8244538dced795fa7d7649452ca91.gz + +2007-08-22 20:16:53 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] The DTMF tone generator now respects the volume argument passed in the event + 20070822201653-4f0f6-8b7ff874006e11f5a74d0fd91e5a9a43cd082ada.gz + +2007-08-22 18:01:33 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] don't know why I did that... + 20070822180133-4f0f6-6a7382f6c7d3630f91da384e1904763c7ea6fa1a.gz + +2007-08-22 17:55:33 +0000 Youness Alaoui + + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Ported the event queue work from dtmfsrc to rtpdtmfsrc + Added a queue based system for the rtpdtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each + tone, including inter-digit silence. + 20070822175533-4f0f6-f27414c406f1f7b00c9a9084a988cf3a7930fe5c.gz + +2007-08-22 17:54:44 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] ouch, printing with arguments but without %s.. that made it segfault a few times... + 20070822175444-4f0f6-445ea6ce7a9668d04cf999af772a504ec74fb67a.gz + +2007-08-22 17:51:26 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Moved the timestamp from the event to dtmfsrc structure since we have only one event at a time, so let's keep it stored in the dtmfsrc struct + 20070822175126-4f0f6-53bcda2bd8ae8c56d29e62e69ac19a30e08ad350.gz + +2007-08-20 20:38:26 +0000 Youness Alaoui + + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Added a queue based system for the dtmfsrc. Now it waits for start/stop messages on the queue, and makes sure that the minimum duty cycle (120ms) is respected between each tone, including inter-digit silence. + 20070820203826-4f0f6-750a22b612a5e495e767666934465c34fe32074b.gz + +2007-08-20 18:48:52 +0000 Youness Alaoui + + * gst/dtmf/Makefile.am: + * gst/dtmf/gstdtmf.c: + * gst/dtmf/gstdtmfsrc.c: + * gst/dtmf/gstdtmfsrc.h: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Added dtmfsrc, a DTMF Tone Generator, and made it part of the 'dtmf' plugin. + 20070820184852-4f0f6-a0d85e67708290aebafa89ab79d3cedd5815b620.gz + +2007-08-20 18:48:00 +0000 Youness Alaoui + + * gst/dtmf/.git-darcs-dir: + * gst/dtmf/Makefile.am: + * gst/dtmf/gstrtpdtmfsrc.c: + * gst/dtmf/gstrtpdtmfsrc.h: + * gst/rtpdtmf/Makefile.am: + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Moved rtpdtmf to dtmf directory + 20070820184800-4f0f6-fa33ea974510161de8c9951c39087af3613b65a4.gz + +2007-07-12 19:57:15 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Send all packet from the streaming thread, including the last one + 20070712195715-3e2dc-6848c70a7f0137c91fa882a8efb6dbf83891ae13.gz + +2007-07-12 19:55:28 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Put non-zero duration in first packet and put a minimum duration of 50ms + 20070712195528-3e2dc-d46edeaab84fb55e74842bdcf4f8792dfcdb0457.gz + +2007-07-12 16:23:28 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Fix RTP timestamp on dtmf packets + 20070712162328-3e2dc-98c1303f4a52b891ce59bf88e07d29f4e2dfc974.gz + +2007-07-11 15:52:02 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Only set marker on very first packet of an event + 20070711155202-3e2dc-f7ea3abd2cb0ca2937ea4508e6e301baaa6e2154.gz + +2007-07-11 15:51:57 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Send on packet start time + 20070711155157-3e2dc-ee0e9fc13d35296593005267a2417dd65e790d29.gz + +2007-07-11 15:50:56 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] RTP timestamp is the time of the beginning of the dtmf event + 20070711155056-3e2dc-cb5cda73fbf7df1c545cb0321b0e339914c5897f.gz + +2007-04-24 20:02:52 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] 80 column is enough for everyone + 20070424200252-3e2dc-d1bc17266afff2599129a25d44338062372f7ea3.gz + +2007-04-24 19:31:55 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add redundancy and interval properties to rtpdtmfsrc (patch by SP GLE ) + 20070424193155-3e2dc-66688001e7b529c46f108633cd9520347c3c8c3e.gz + +2007-05-04 19:52:51 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Only send dtmf if the method is unspecified or is 1 + 20070504195251-3e2dc-b95b4b8e8dad87962cf39ec2ee67b6f1b619e9bd.gz + +2007-03-08 22:35:59 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Make documentation consistent with itself + 20070308223559-3e2dc-cc20fe571370bc51bf963cc3df1b8ab4a3ddc20b.gz + +2007-04-12 20:04:35 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Use segment to calculate dtmfsrc rtp timestamp + 20070412200435-3e2dc-b5cc26b12b6e8b89f131fd27f0e4627746e85697.gz + +2007-04-02 12:46:35 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Clean-up and refactorize dtmfsrc code + 20070402124635-65035-3d13244461c1dd1fcc96b74124ad7a74d2ff0144.gz + +2007-03-30 15:43:03 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Ooops, little typo + 20070330154303-3e2dc-9f6edcde24d30caea8ea876b24a3a680d40b2ea1.gz + +2007-03-30 00:17:00 +0000 Olivier Crete + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Make it generate the proper rtp timestamps in sync with the live source + 20070330001700-3e2dc-bbf954e4edec0615c4eee603fbc6ab8a7d89436f.gz + +2007-03-29 11:42:57 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Increment the ts after setting the buffer's ts + 20070329114257-65035-c8686ab4ce20b1f36f3dac120485ade5cd90aac9.gz + +2007-03-29 10:39:46 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Calculate the rtp ts before gst ts get incremented + 20070329103946-65035-f74e3a0140c57e941444bb837d6053ad1c3cf567.gz + +2007-03-29 10:39:04 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Some code-cleanup + 20070329103904-65035-db08cc7c3098b60a556d3809de912cd0e1a545c1.gz + +2007-03-29 10:38:24 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Initialize the GstSegment at the right time + 20070329103824-65035-9ab3a0a03c5f9329cd4625ae6567c2c1fd4a73d8.gz + +2007-03-26 10:57:12 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Call set_caps when we have all the params + 20070326105712-65035-3e3dfce0b50d61eafda846bee0a6d66c3541c6ed.gz + +2007-03-23 16:29:22 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Set caps on the buffer before pushing it + 20070323162922-65035-9e4be5449c79c0a459965ee07adb4a8143c4c1d5.gz + +2007-03-14 17:17:56 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Request for stream lock when generating DTMF packets + 20070314171756-65035-0b497dfac203ff4f579525485d5804e5f5093b3f.gz + +2007-03-07 11:41:09 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Correct caps printout + 20070307114109-65035-124202884918a9c8a803080d6967234539d24b97.gz + +2007-02-16 12:06:06 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Add doc-section comments + 20070216120606-65035-6e7d28721dc0872f3f55ba7ccd4fed3d66f8175f.gz + +2007-02-15 13:48:53 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add copyrights + 20070215134853-65035-50fe5f8e999ae86a1e3ba0dbdece4911eb9dcca0.gz + +2007-02-15 13:35:36 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] No need to handle downstream events + 20070215133536-65035-648b791d404bf06900bd2698d925117c89743db9.gz + +2007-02-15 12:26:55 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Attempt to correct event handling + 20070215122655-65035-47070d9a28c08d9353b04d2d9301e29b7ee72b83.gz + +2007-02-15 10:26:29 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + [MOVED FROM GST-P-FARSIGHT] Use pause_task instead of stop_task to avoid any possible deadlocks + 20070215102629-65035-a48c773661e385a91e022e0ac1da0862c4206f85.gz + +2007-02-15 10:10:30 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Put correct seq and timestamps on the packets + 20070215101030-65035-7146a3c4a8d0feab513d13a207b2cdc5de311f03.gz + +2007-02-14 13:55:01 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Fix the copyright notice + 20070214135501-65035-e90753b1f6525f7b9c0ac2eb7e40cef7ca673e68.gz + +2007-02-14 13:13:52 +0000 zeeshan.ali@nokia.com + + * gst/rtpdtmf/.git-darcs-dir: + * gst/rtpdtmf/Makefile.am: + * gst/rtpdtmf/gstrtpdtmfsrc.c: + * gst/rtpdtmf/gstrtpdtmfsrc.h: + [MOVED FROM GST-P-FARSIGHT] Add RTP DTMF event packet generator element and test app for it + 20070214131352-65035-3c14a1047c3cd6696f3a716a62b21d3f4b9da62b.gz + +2009-01-30 09:03:42 +0100 Edward Hervey + + * autogen.sh: + autogen.sh: actually setting up a symbolic link for the pre-commit hook + +2009-02-21 17:45:09 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Add read-only property to get the structural metadata + +2009-02-21 17:40:01 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfdemux: Add MPEG video bitrate to the tags if available + +2009-02-21 17:38:49 +0100 Sebastian Dröge + + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfquark.c: + * gst/mxf/mxfquark.h: + * gst/mxf/mxftypes.h: + mxfdemux: Post structural metadata tree as tag on the bus + This will later be used to keep the structural metadata when + remuxing an MXF file and can also be used in Pitivi for example + to know the file structure and to select what should be used + and played. + +2009-02-21 16:09:27 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + mxfdemux: Fix calculation of AES3 bitrate tag + +2009-02-21 16:05:48 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + mxfdemux: Add helper function to convert MXFraction to gdouble and use it + +2009-02-21 16:00:39 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + mxfdemux: Only store the main descriptor in source packages + For the tracks we still resolve the descriptors but the + source package only contains the descriptor it really references + instead of all subdescriptors of multiple descriptors. + This makes it easier later to serialize the structural metadata + again. + +2009-02-17 17:37:49 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Set free'd memory to NULL to prevent a double free later in some cases + +2009-02-15 09:51:25 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + mxfdemux: Don't use generic metadata parsers for unknown metadata, the results are useless anyway + +2009-02-19 11:36:45 +0000 Zaheer Merali + + * gst/mpegdemux/flumpegdemux.c: + * gst/mpegdemux/flutspatinfo.c: + * gst/mpegdemux/flutspatinfo.h: + * gst/mpegdemux/flutspmtinfo.c: + * gst/mpegdemux/flutspmtinfo.h: + * gst/mpegdemux/flutspmtstreaminfo.c: + * gst/mpegdemux/flutspmtstreaminfo.h: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + mpegtsdemux: s/fluts/mpegts + Change all definitions from fluts to mpegts. + +2009-02-10 18:58:40 +0000 Olivier Crête + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Add doc infrastructure to valve + +2009-02-10 18:52:54 +0000 Olivier Crête + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + Document the GstValve + +2009-02-10 18:03:26 +0000 Olivier Crête + + * configure.ac: + * docs/plugins/inspect/plugin-valve.xml: + Moved valve from gst-plugins-farsight to -bad + +2009-02-10 17:57:16 +0000 Olivier Crête + + * gst/valve/gstvalve.c: + Rename fsvalve to valve + +2009-02-10 17:55:47 +0000 Olivier Crête + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + Re-indent valve in gst style + +2008-12-13 00:31:45 -0500 Olivier Crête + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Ignore errors if dropping is set to true + +2008-12-11 17:54:18 -0500 Olivier Crête + + * gst/valve/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-12-10 17:00:33 -0500 Olivier Crête + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Add getcaps proxying to the valve + +2008-08-20 14:11:02 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + [MOVED FROM GST-P-FARSIGHT] Rebase valve onto gstelement instead of basetransform + +2008-08-19 18:49:51 -0400 Olivier Crête + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Revert "Fix refcounting issues in prepare_output_buffer" + This reverts commit 65dd460f0a3a9c4882e638c86208f74ef62c3460. + +2008-08-05 11:30:57 +0000 sjoerd@luon.net + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Fix refcounting issues in prepare_output_buffer + 20080805113057-be0f2-9dc270781f0a0f21c616ed11dbd1f198fd1b326e.gz + +2008-04-09 16:32:21 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Remove unused dispose method in valve + 20080409163221-3e2dc-92ccb2db874e46e0d92c15520577c1be0e2bc617.gz + +2007-12-19 20:32:30 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Dont hold the object lock while calling base alloc function + 20071219203230-3e2dc-6519175d8d81496515b2d9060ac316650560f691.gz + +2007-12-19 20:32:18 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + [MOVED FROM GST-P-FARSIGHT] Set the DISCONT flag after dropping buffers + 20071219203218-3e2dc-bc5f03d88ff5837040b9214de016cc142776dfc2.gz + +2007-12-19 00:57:39 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + [MOVED FROM GST-P-FARSIGHT] Use do the alloc_buffer function in the valve + 20071219005739-3e2dc-2a0fdfa2f38f03ab4791fe5c4ab85e8790113683.gz + +2007-11-21 20:08:58 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Only set passthrough to TRUE on newer versions of gst + 20071121200858-3e2dc-b16cdeabbc3c0562c6fc7b11b9b9792c910f569e.gz + +2007-11-21 18:17:29 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Compare minor, not major + 20071121181729-3e2dc-a5997c3b7f5c86966370969714facf8ee242659d.gz + +2007-10-26 22:37:49 +0000 Olivier Crete + + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Make the valve element work with gst < 0.10.13 + 20071026223749-3e2dc-18f685a4e45fbdce677ac777586876fc719d7222.gz + +2007-10-24 22:42:46 +0000 Olivier Crete + + * gst/valve/Makefile.am: + * gst/valve/gstvalve.c: + [MOVED FROM GST-P-FARSIGHT] Rename valve to fsvalve + 20071024224246-3e2dc-c54216af2ef0ef3f1a2206d723e87be2a23ab8ed.gz + +2007-10-24 22:41:47 +0000 Olivier Crete + + * gst/valve/.git-darcs-dir: + * gst/valve/Makefile.am: + * gst/valve/gstvalve.c: + * gst/valve/gstvalve.h: + [MOVED FROM GST-P-FARSIGHT] Add valve element + 20071024224147-3e2dc-f28ab0c073e283894b65c22c4f44397c897dec01.gz + +2009-02-10 19:20:26 +0000 Olivier Crête + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + Add some documentation to the siren enc/dec plugins + +2009-02-10 19:20:19 +0000 Olivier Crête + + * gst/siren/gstsiren.h: + * gst/siren/gstsirendec.c: + * gst/siren/gstsirendec.h: + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + Re-indent the siren stuff to be gst style + +2009-02-10 17:29:05 +0000 Olivier Crête + + * configure.ac: + * docs/plugins/inspect/plugin-gstsiren.xml: + Moved siren from gst-p-farsight to -bad + +2009-02-10 17:23:38 +0000 Olivier Crête + + * gst/siren/Makefile.am: + * gst/siren/gstrtpsirendepay.c: + * gst/siren/gstrtpsirendepay.h: + * gst/siren/gstrtpsirenpay.c: + * gst/siren/gstrtpsirenpay.h: + * gst/siren/gstsiren.c: + Move siren rtp pay/depay to good + +2008-12-11 17:54:18 -0500 Olivier Crête + + * gst/siren/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-10-05 22:03:05 -0400 Olivier Crête + + * gst/siren/gstsirendec.c: + [MOVED FROM GST-P-FARSIGHT] Add underscore to make the encoder like the decoder + +2008-10-05 22:01:44 -0400 Olivier Crête + + * gst/siren/gstsirenenc.c: + [MOVED FROM GST-P-FARSIGHT] Rename offset to out_offset to make its meaning clearer + +2008-10-05 22:00:27 -0400 Olivier Crête + + * gst/siren/gstsirendec.c: + [MOVED FROM GST-P-FARSIGHT] Check the size of the input buffer, not the output buffer + +2008-09-16 15:40:04 -0400 Olivier Crête + + * gst/siren/gstsirendec.c: + [MOVED FROM GST-P-FARSIGHT] Preserve timestamp + +2008-07-04 22:21:03 +0000 Olivier Crete + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirendec.h: + [MOVED FROM GST-P-FARSIGHT] Remove useless checks, document locking + 20080704222103-3e2dc-47a7f49c414f98a188ffc42b07189daf5147483b.gz + +2008-07-04 22:17:43 +0000 Olivier Crete + + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + [MOVED FROM GST-P-FARSIGHT] make sirenenc thread safe + 20080704221743-3e2dc-f93da86438f753e14be25166aee45f8802f7d100.gz + +2008-07-04 20:18:30 +0000 Olivier Crete + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirenenc.c: + [MOVED FROM GST-P-FARSIGHT] Replace use GST_DEBUG_OBJECT in sirenenc + 20080704201830-3e2dc-8f3e401aaa594c8cc5853b73f41ca5cb047ee2d3.gz + +2008-07-04 20:17:44 +0000 Olivier Crete + + * gst/siren/gstsirendec.c: + * gst/siren/gstsirendec.h: + * gst/siren/gstsirenenc.c: + [MOVED FROM GST-P-FARSIGHT] Port sirendec to Gstelement + 20080704201744-3e2dc-99bf7b86e42da363d8c826449d84b43751572d5e.gz + +2008-07-04 20:04:54 +0000 Olivier Crete + + * gst/siren/gstsirenenc.c: + [MOVED FROM GST-P-FARSIGHT] Release ref at the end of chain + 20080704200454-3e2dc-386f2685882a74d01ce503f91396ea37506dbe83.gz + +2008-07-04 20:03:15 +0000 Olivier Crete + + * gst/siren/gstsirenenc.c: + [MOVED FROM GST-P-FARSIGHT] Remove useless call to peek_parent + 20080704200315-3e2dc-6b30efd2d32b6ca96609f4bdc0c3e286f4441746.gz + +2008-07-04 20:00:29 +0000 Olivier Crete + + * gst/siren/gstsirendec.c: + [MOVED FROM GST-P-FARSIGHT] Make GstSirenEnc use GST_*_OBJECT appropriately + 20080704200029-3e2dc-f68fdaaa8929039fd8413ff0bf8ff514f6e4fbe1.gz + +2008-07-04 19:51:02 +0000 Olivier Crete + + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + [MOVED FROM GST-P-FARSIGHT] Port sirenenc to gstelement + 20080704195102-3e2dc-cd7687512ac560faaf15f53e1e262d1874a36cdf.gz + +2008-04-28 22:22:37 +0000 Olivier Crete + + * gst/siren/Makefile.am: + [MOVED FROM GST-P-FARSIGHT] Link modules with libm where required + 20080428222237-3e2dc-b1e9120c1e9ca1a510bfd7c27e2d45f0d4a12504.gz + +2008-04-12 23:43:25 +0000 Youness Alaoui + + * gst/siren/gstrtpsirendepay.c: + [MOVED FROM GST-P-FARSIGHT] Removed debug output + 20080412234325-4f0f6-36b946a7ca3ab4e5802917b8930f036c50a93a29.gz + +2008-04-10 23:43:28 +0000 Youness Alaoui + + * gst/siren/common.h: + [MOVED FROM GST-P-FARSIGHT] Oups, typo + 20080410234328-4f0f6-962e375e78da05eab52892a57d3226fdd2ffc86d.gz + +2008-04-10 07:01:16 +0000 Youness Alaoui + + * gst/siren/.git-darcs-dir: + * gst/siren/Makefile.am: + * gst/siren/common.c: + * gst/siren/common.h: + * gst/siren/dct4.c: + * gst/siren/dct4.h: + * gst/siren/decoder.c: + * gst/siren/decoder.h: + * gst/siren/encoder.c: + * gst/siren/encoder.h: + * gst/siren/gstrtpsirendepay.c: + * gst/siren/gstrtpsirendepay.h: + * gst/siren/gstrtpsirenpay.c: + * gst/siren/gstrtpsirenpay.h: + * gst/siren/gstsiren.c: + * gst/siren/gstsiren.h: + * gst/siren/gstsirendec.c: + * gst/siren/gstsirendec.h: + * gst/siren/gstsirenenc.c: + * gst/siren/gstsirenenc.h: + * gst/siren/huffman.c: + * gst/siren/huffman.h: + * gst/siren/huffman_consts.h: + * gst/siren/rmlt.c: + * gst/siren/rmlt.h: + * gst/siren/siren7.h: + [MOVED FROM GST-P-FARSIGHT] Added Siren encoder/decoder/payloader/depayloader + 20080410070116-4f0f6-72ffbdbb262f07bfabd1e469973a01b3359bee45.gz + +2009-02-10 18:46:03 +0000 Olivier Crête + + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/liveadder/liveadder.h: + Add liveadder to the docs + +2009-02-10 18:38:11 +0000 Olivier Crête + + * gst/liveadder/liveadder.c: + Document the liveadder + +2009-02-10 16:18:32 +0000 Olivier Crête + + * configure.ac: + * docs/plugins/inspect/plugin-liveadder.xml: + * gst/liveadder/liveadder.c: + * gst/liveadder/liveadder.h: + Moved liveadder from gst-plugins-farsight to -bad + Re-indent liveadder in gst style and add it to configure + +2008-12-13 00:09:46 -0500 Olivier Crête + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Use log for message thats on every buffer + +2008-12-11 17:54:18 -0500 Olivier Crête + + * gst/liveadder/.git-darcs-dir: + [MOVED FROM GST-P-FARSIGHT] Remove .git-darcs-dir files + +2008-08-27 17:16:27 +0200 Edward Hervey + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] liveadder : Handle jitter in incoming buffers + Incoming buffers (especially those from an RTP connection) might have slight timestamp jitter. This is normally handled by audiosink (accepting up to 500ms of jitter). + Here we accept a maximum jitter of 10ms. If a buffer is within 10ms of the expected time, we correct its timestamp. + +2008-07-04 18:57:21 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Add handling of position query to liveadder + 20080704185721-3e2dc-7a687e346e74b44fa847c5e5b6eb64c3e0949764.gz + +2008-05-21 17:20:05 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Replace C99 llabs with C89 code + 20080521172005-3e2dc-8e637d1daa0e27cc2edae1fdfd0dbf23896fb5bc.gz + +2008-05-15 01:22:57 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Reset vars before restarting thread on flush stop + 20080515012257-3e2dc-e3521752cf3eaf2b8767f4c620eadfc24a8e8e31.gz + +2008-05-15 01:22:27 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Implement first version of seeking + 20080515012227-3e2dc-7f53f78d1c3dfdcdb6e7ad53e6c7f16d5e998a05.gz + +2008-05-15 01:21:42 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Add duration query from adder + 20080515012142-3e2dc-2768199183bfb9d569be1389e382bedc02e3e95e.gz + +2008-05-15 00:02:14 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Move flush stop inside where it belongs + 20080515000214-3e2dc-cda5cddd1ead5c48a554e9e9bc75ae68437bcdfb.gz + +2008-05-14 23:49:48 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + * gst/liveadder/liveadder.h: + [MOVED FROM GST-P-FARSIGHT] Have the liveadder remember if its playing or not + 20080514234948-3e2dc-9064a27a54aef598444aa6ad6463345979120828.gz + +2008-05-14 23:49:10 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Push out buffer if we're not playing while there is no clock + 20080514234910-3e2dc-1096eb7dc3fada19afc81dcd536d9edc821d0da9.gz + +2008-05-14 23:26:43 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Empty the queue on flush start + 20080514232643-3e2dc-5a3f52a3fd3771164dea95bd14410d76b4fce2aa.gz + +2008-05-14 23:17:52 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Reset pad private on flush stop + 20080514231752-3e2dc-113fec2faafc2dc11c1eaa818cb488b71e601f9b.gz + +2008-05-14 23:16:43 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Pass pad as pad to reset_pad_private + 20080514231643-3e2dc-006960b9cdc3ce8e1f890dc6d194778cbc7c9736.gz + +2008-05-02 19:10:04 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Print debug message if we return non-ok from chain + 20080502191004-3e2dc-f1f7237c06c1158cf27e29d32a69de06f7112506.gz + +2008-05-02 19:09:54 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Don't return EOS if we have no pads + 20080502190954-3e2dc-41351225e909e6d0837a6a60e187d33ab186ad76.gz + +2008-05-01 20:31:54 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Check that the format is NOT time + 20080501203154-3e2dc-780e46b1f0fe76a66e2d79a2eb85d764ff5f182f.gz + +2008-04-28 22:17:37 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Don't use g_queue_clear() + 20080428221737-3e2dc-bb8e4748751c29e0857313a09f85067ab12c3fe4.gz + +2008-05-01 20:09:40 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Pad push event after the lock has been unlocked + 20080501200940-3e2dc-ae5fec5f79f32777bba649d0d700d49f7bedff40.gz + +2008-05-01 18:25:54 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Create generic segment is none received and refuse non-time segments + 20080501182554-3e2dc-ace5ca000414428d6d94478adc5927c9f91975df.gz + +2008-04-29 14:08:02 +0000 Simon McVittie + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Add missing semicolon (did anyone test this?!) + 20080429140802-53eee-41fdb4391eddb125b7e34019427cfa5dc8afd6c0.gz + +2008-04-29 00:36:00 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Robustness check, make sure the queue is not empty before using the head element + 20080429003600-4f0f6-708c654b65812caeb3612248dbe0b2e62567c250.gz + +2008-04-29 00:34:12 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Remove useless condition + 20080429003412-4f0f6-9e890ad0ac442791a8b22650a75cb754d7f2d723.gz + +2008-04-29 00:03:39 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] check against audio_buffer_clip which can return NULL if the buffer is outside the clipping segment + 20080429000339-4f0f6-7e4e31f066b87e29265ddb3978929e51efbff47d.gz + +2008-04-28 23:49:48 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Fix object locking in setcaps + 20080428234948-4f0f6-4586434b4308e114f495e926996fc19483c1056f.gz + +2008-04-28 23:49:35 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Use g_cond_broadcast instead of g_cond_signal + 20080428234935-4f0f6-e51fab31772b32f2fb080ad70c6bedefc5c26dc6.gz + +2008-04-28 23:28:51 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Max latency should also be increased by our own latency + 20080428232851-4f0f6-05f9a89403cd54211f2f4a6595704270eab9616f.gz + +2008-04-28 22:36:06 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Fix deadlock on invalid timestamp error + 20080428223606-3e2dc-963e48b33efaf84c16d4ec4b789a6dfb2d9358ad.gz + +2008-04-28 16:19:58 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Added comment for clarity + 20080428161958-4f0f6-cbaa166fbde99013b555c69ab48d964d75773a7f.gz + +2008-04-28 16:12:35 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] added TODO comments + 20080428161235-4f0f6-fbc78533d29d37b65add6f6046fec17ce5e30cae.gz + +2008-04-28 15:59:27 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] check_eos will always return FALSE here.. + 20080428155927-4f0f6-1a93e295d3df68a96367b75060a89a947efa8944.gz + +2008-04-28 15:49:56 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] added comment on the no clock error + 20080428154956-4f0f6-7e24ed31f9c822e4323b681a54bc23f03c1a325e.gz + +2008-04-28 15:48:50 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] error if no clock is available + 20080428154850-4f0f6-38fdc4134835c457d0054301579d8cd4cbd4989a.gz + +2008-04-25 21:04:56 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] renaming unused arg + 20080425210456-4f0f6-ab1cdc944c9bcd779504292b21dc1787d6cb62a1.gz + +2008-04-25 20:39:38 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] removed unused user_data and commented line + 20080425203938-4f0f6-787778475b646461da40f3e0000a10bc96e142bc.gz + +2008-04-25 20:37:35 +0000 Youness Alaoui + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] remove unused cases and empty switch + 20080425203735-4f0f6-c0442fcf57e3f08b81bc1be3d69f5cfa0257b52a.gz + +2008-04-28 18:34:09 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Explicit the discont flag mangling + 20080428183409-3e2dc-4db2505eeca033a634253b6c2d2f4f1398e9fcca.gz + +2008-04-28 18:07:11 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Unref events when they are dropped + 20080428180711-3e2dc-eb659787f179562f15402c819f188de398deef2d.gz + +2008-04-24 22:46:27 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Use Glib G_{MAX,MIN}{U,}INT{8,16,32} macros + 20080424224627-3e2dc-1036bc58b6b4db2f9f12831cdbae3bc613facbbf.gz + +2008-04-21 03:26:14 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Unlock liveadder empty buffer gcond on flush + 20080421032614-3e2dc-4ed29e1583ff684338ba5d7611f60b1a7eaff563.gz + +2008-04-18 19:29:41 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Unref event instead of leaking it + 20080418192941-3e2dc-352e25f6ab291612be1dc139790303a1333f65d7.gz + +2008-04-03 17:09:56 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] non-perfect stream isnt an error, lets just log it + 20080403170956-3e2dc-663f6af8ce067f44ca251a89aebf262d4b8a2869.gz + +2008-04-03 16:54:31 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] We retimestamp to the running time, starting the segments from 0 should therefore work + 20080403165431-3e2dc-d981ac2f9ea7fd3c8d2be4d22f1817cf78c614e4.gz + +2008-04-03 16:54:15 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Do the min/max of the latencies correctly + 20080403165415-3e2dc-c1124bd84e67cf8a911a14bb123b8731da9f4fc4.gz + +2008-04-03 02:14:25 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Fix indentation + 20080403021425-3e2dc-efd73a6eed0676e158af70484d4e5c42ea75de74.gz + +2008-04-03 02:03:18 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Activate pads before adding them in case we're already playing + 20080403020318-3e2dc-afd58f992c0b3057221b91034b2fcd91f296e52d.gz + +2008-04-03 02:02:53 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] For latencies, use the min of the max and the max of the min (and the min wins if they cross) + 20080403020253-3e2dc-dda7e471073ee75a6f60e845c3c546af9be19675.gz + +2008-04-03 00:57:28 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Rename next_ts into expected_ts, make sure all buffers have a duration + 20080403005728-3e2dc-8245ce1bfeebebfb8f75073253b3c0e3c4b5f596.gz + +2008-04-03 00:40:12 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Don't try to set the discont flag if the duration of the previous incoming buffer was not valid + 20080403004012-3e2dc-6f95520c928c347508bdf6188c873ed724ad2dd7.gz + +2008-04-02 22:46:27 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Reset buffers offsets to none + 20080402224627-3e2dc-d3ee8c7d0c14131017842d8159f7f684d0ccef6d.gz + +2008-04-02 22:46:12 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Import adder src event handling + 20080402224612-3e2dc-21a682b18fe18782bf7fa48983c13c1ad86dc5a1.gz + +2008-03-31 18:44:21 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + * gst/liveadder/liveadder.h: + [MOVED FROM GST-P-FARSIGHT] Push out a simple newsegment event + 20080331184421-3e2dc-69544b5b03ae3bb8c1e3f967974fd250d04056b5.gz + +2008-03-31 18:44:04 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Don't return EOS if there is no sink pad + 20080331184404-3e2dc-482a134b47eadcd9f1f9d144c02ab1145028fa07.gz + +2008-03-31 17:11:16 +0000 Olivier Crete + + * gst/liveadder/liveadder.c: + [MOVED FROM GST-P-FARSIGHT] Reduce locking a bit and cleanup code a bit + 20080331171116-3e2dc-5ddfb0e459004780d3f7a660c64f58243936a844.gz + +2008-03-29 00:45:18 +0000 Olivier Crete + + * gst/liveadder/.git-darcs-dir: + * gst/liveadder/Makefile.am: + * gst/liveadder/liveadder.c: + * gst/liveadder/liveadder.h: + [MOVED FROM GST-P-FARSIGHT] Add liveadder element + 20080329004518-3e2dc-40e4746fe82bbc5a871f03fe6ff6048f436c9f85.gz + +2009-02-16 16:08:31 +0100 Sebastian Dröge + + * ext/soundtouch/gstbpmdetect.cc: + bpmdetect: Fix accidentally introduced stack overwriting introduced in last commit + +2009-02-16 16:06:02 +0100 Sebastian Dröge + + * ext/soundtouch/gstbpmdetect.cc: + bpmdetect: Save one memory allocation per stereo buffer + +2009-02-13 12:18:48 -0800 Michael Smith + + * gst/scaletempo/gstscaletempo.c: + scaletempo: Do not use void pointer arithmetic. + +2009-02-12 17:31:50 -0800 Michael Smith + + * sys/dshowvideosink/dshowvideosink.cpp: + dshowvideosink: Return ASYNC appropriately from change_state. + Make sure we don't do the wrong thing when our base class is returning + ASYNC in state changes. + +2009-02-12 15:01:48 -0800 Michael Smith + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + dshowdecwrapper: fix compilation. + Accidently merged part of one change; remove it. + +2009-02-12 22:40:48 +0100 Julien Moutte + + * gst/mpegdemux/gstmpegdemux.c: + Make the demuxer reusable in READY->PLAYING->READY->PLAYING cycles by flushing adapters correctly. + +2009-02-12 10:53:56 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Also include the picture/sound/data essence coding in the unknown caps + +2009-02-12 09:46:06 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Update TODO, we should support the drop-frame property of timecode tracks + +2009-02-12 08:46:32 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxfdemux: Fix resolval of identifications from the preface + +2009-02-11 18:40:55 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + mxfdemux: Parse MXFTimestamp's milliseconds and add _to_string() function + +2009-02-10 14:23:06 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Update TODO + +2009-02-12 10:46:23 +0100 Mark Nauwelaerts + + * ext/metadata/gstbasemetadata.c: + metadata: also post error message when returning error + +2009-02-11 17:23:03 +0000 Christian Schaller + + * ext/Makefile.am: + * gst-libs/gst/Makefile.am: + * gst-plugins-bad.spec.in: + Update spec file with latest changes, also add some missing disting directories to a couple of Makefiles.am files + +2009-02-11 17:21:20 +0100 Sebastian Dröge + + * gst/selector/gstinputselector.c: + inputselector: Fix compilation, activate_sinkpad() has no notify parameter + +2009-02-10 16:22:54 -0800 Michael Smith + + * gst/selector/gstinputselector.c: + input-selector: Activate and notify pad before processing events. + Events should trigger pad selection if we don't already have an + explicitly selected pad, so that events prior to first buffer don't get + lost. + +2009-02-11 01:54:03 +0200 René Stadler + + * gst/camerabin/gstcamerabin.c: + camerabin: Sanitize constants used for element factory names. + +2009-02-11 01:24:51 +0200 René Stadler + + * gst/camerabin/gstcamerabin.c: + camerabin: Use v4l2src as default source. + +2009-02-11 01:07:04 +0200 René Stadler + + * gst-libs/gst/interfaces/.gitignore: + photography interface: .gitignore generated files. + +2009-02-11 01:02:42 +0200 René Stadler + + * gst-libs/gst/interfaces/photography-enumtypes.c: + * gst-libs/gst/interfaces/photography-enumtypes.h: + * win32/common/photography-enumtypes.c: + * win32/common/photography-enumtypes.h: + photography interface: Move generated files to win32/common. + +2009-02-11 00:28:53 +0200 René Stadler + + * gst/camerabin/.gitignore: + camerabin: Add .gitignore to hide generated signal marshaller files. + +2009-02-11 00:19:22 +0200 René Stadler + + * gst/camerabin/gstcamerabin.c: + camerabin: Fix plugin details to use GST_PACKAGE_* values. + +2009-02-11 00:15:43 +0200 René Stadler + + * gst/aacparse/gstaacparse.c: + aacparse: Fix license specified in plugin details. + +2009-02-10 12:28:58 -0800 Michael Smith + + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + dshowdecwrapper: Pass pixel aspect through from demuxers, if supplied. + If the incoming caps have a pixel-aspect-ratio, ensure it's set on the + output. Corrects PAR for many (but probably not all) files. + +2009-02-10 12:26:25 -0800 Michael Smith + + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + dshowdecwrapper: Make audio decoders have SECONDARY rank. + These wrappers are not ideal, and for many of these formats there are + better gstreamer elements available. So, make the rank SECONDARY. In + particular, the mp3 decoder on winXP doesn't work very well. + +2009-02-10 12:12:03 -0800 Michael Smith + + * sys/dshowdecwrapper/gstdshowaudiodec.c: + * sys/dshowdecwrapper/gstdshowdecwrapper.c: + * sys/dshowdecwrapper/gstdshowvideodec.c: + dshowdecwrapper: Delete old .c files that are unused + These old files are stale; the plugin was rewritten in c++ ages + ago. Not sure why these are hanging around. + +2009-02-10 10:17:43 +0100 Sebastian Dröge + + * ext/soundtouch/gstbpmdetect.cc: + bpmdetect: Pass at most 2048 samples to SoundTouch's BPMDetect + Internally BPMDetect assumes that at most 2048 samples are passed + to it at once and stores those in a stack allocated static sized + array. If we pass too many samples this will result in a buffer overflow + resulting in heavy stack corruption and a crash. Fixes bug #570996. + +2009-02-09 17:58:42 -0800 Michael Smith + + * sys/acmmp3dec/acmmp3dec.c: + acmmp3dec: fix major memory leaks and clean up code. + Unref incoming buffers when we're done. + Reindent, clean up white space. Fix comments. + +2009-02-09 18:14:14 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: After pulling the footer metadata reset essence track positions to 0 + +2009-02-09 17:55:05 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: When trying to find an essence track position try to find position+1 too + By searching for the following position we will add the complete + generic container (i.e. all tracks) at the same position to the + index which should make finding positions for more than one track + a bit faster. + +2009-02-09 17:48:38 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: For new essence tracks only set the position to 0 if it starts in the current partition + +2009-02-09 17:44:43 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Check if the length of the src/essence track arrays are 0, not the array itself + +2009-02-09 17:25:35 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Make sure that the srcpad and essence track arrays always exist + +2009-02-09 16:12:51 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Change some GST_ERRORs to something less critical + +2009-02-09 16:09:22 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Only go into EOS and send segment-done after all tracks are finished + +2009-02-09 16:09:12 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfup.c: + mxfdemux: Update TODO + +2009-02-09 15:48:20 +0100 Julien Moutte + + * gst/camerabin/Makefile.am: + Fix build for camerabin. + +2009-02-09 12:02:50 +0100 Edward Hervey + + * common: + Bump revision to use for common submodule. + +2009-01-30 16:09:30 +0100 Edward Hervey + + * .gitignore: + * tests/check/elements/.gitignore: + * tests/check/pipelines/.gitignore: + More files to ignore + +2009-02-05 23:06:23 +0200 Nokia Corporation + + * tests/check/Makefile.am: + * tests/check/elements/camerabin.c: + tests: Add camerabin unit tests. + +2009-02-05 15:48:32 +0200 Nokia Corporation + + * configure.ac: + * gst/camerabin/Makefile.am: + * gst/camerabin/camerabingeneral.c: + * gst/camerabin/camerabingeneral.h: + * gst/camerabin/camerabinimage.c: + * gst/camerabin/camerabinimage.h: + * gst/camerabin/camerabinvideo.c: + * gst/camerabin/camerabinvideo.h: + * gst/camerabin/gstcamerabin-marshal.list: + * gst/camerabin/gstcamerabin.c: + * gst/camerabin/gstcamerabin.h: + * gst/camerabin/gstcamerabincolorbalance.c: + * gst/camerabin/gstcamerabincolorbalance.h: + * gst/camerabin/gstcamerabinphotography.c: + * gst/camerabin/gstcamerabinphotography.h: + * gst/camerabin/gstcamerabinxoverlay.c: + * gst/camerabin/gstcamerabinxoverlay.h: + Add camerabin element. + +2009-02-06 12:06:23 +0200 Nokia Corporation + + * configure.ac: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/interfaces/Makefile.am: + * gst-libs/gst/interfaces/photography-enumtypes.c: + * gst-libs/gst/interfaces/photography-enumtypes.h: + * gst-libs/gst/interfaces/photography.c: + * gst-libs/gst/interfaces/photography.h: + Add photography interface. + +2009-02-09 07:33:41 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Fix seeking to the end of file + When seeking to a position where no new offset can be + found or after the end of a track don't set the EOS flag + to TRUE as we don't (and can't) push EOS downstream then. + Instead set the current essence track position to then + end of the essence track and let the loop or chain function + set everything to EOS and push EOS downstream. + Also restart the pad's task if resolving metadata failed + (playback will continue as before) and return FALSE from + the seek if no new offset could be found. + +2009-02-08 21:52:03 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Fix last_stop calculation when seeking + +2009-02-08 21:31:40 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxfdemux: Resolve source package before accessing it's members + +2009-02-08 21:23:03 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + mxfdemux: Correctly implement timestamping in all cases + When the material package track and source package track + edit rate are different the source package track edit + rate applies to the stored essence and the material track + edit rate only applies to the values in the track's sequence + and components. + +2009-02-08 21:22:17 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Correctly handle DURATION queries with a negative duration + +2009-02-08 21:17:11 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: When changing to the component after the last component update the essence track position + +2009-02-08 21:12:21 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Small cleanup and an additional check + Update TODO list, reduce size of a stack allocated string + and don't allow essence tracks with an invalid edit rate + +2009-02-08 07:30:48 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxfdemux: For material packages make sure that tracks resolve to source tracks + +2009-02-07 10:38:26 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxfvc3.c: + mxfdemux: Add support for non-standard Avid MXF files containing DNxHD essence + Avid uses a custom essence container UL and custom essence element keys + that are fortunately compatible with the generic container essence + elements. Partially fixes bug #561922. + +2009-02-07 10:13:54 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + mxfdemux: Make essence track creation a bit more robust against broken files + Some files contain multiple tracks with the same track number but different + track id inside the same source package. This is invalid and we simply ignore + the second and following of such traacks now instead of overwriting the + information of the first one. + +2009-02-07 10:03:24 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxfdemux: Don't include multiple descriptors in the track's descriptors + +2009-02-07 09:27:13 +0100 Sebastian Dröge + + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + mxfdemux: Add support for non-standard Avid MXF files containing DV essence + Avid usually uses a custom essence container label for the essence + descriptors and stores the actual codec that is used inside the + picture essence coding field (and for sound probably in the sound + essence coding field but I have no sample files with sound). + Partially fixes bug #561922. + +2009-02-06 11:57:46 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + mxfdemux: Add data definition for Avid vendor specific picture essence + +2009-02-06 11:55:45 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: For tracks with no known mapping use dummy caps + +2009-02-06 11:21:00 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Don't remove invalid new essence track twice from the GPtrArray + +2009-02-06 11:09:11 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + mxfdemux: Implement keyframe detection for MPEG4 video streams + +2009-02-06 10:46:47 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Handle some more special cases when setting the position when seeking + +2009-02-06 10:46:09 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Adjust last_stop to the last keyframe when seeking + +2009-02-06 10:06:59 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + mxfdemux: Fix logic for finding the previous keyframe + +2009-02-06 09:53:13 +0100 Sebastian Dröge + + * gst/mxf/mxfd10.c: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfmpeg.h: + mxfdemux: Add keyframe detection for MPEG2 video streams + This is useful for seeking as we usually want to seek to the previous + keyframe. The keyframe detection is done by parsing the MPEG2 + elementary stream and if a GOP or I-frame packet is found we + assume a keyframe in this edit unit. + +2009-02-05 21:29:29 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + mxfdemux: Protect the metadata with a lock against concurrent access + +2009-02-05 17:42:37 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + Random cleanup and smaller bugfixes + Use gst_element_klass_set_details_simple(), install properties + with static strings, create pads directly from the static pad + templates, directly put the segment into the instance struct, + use GST_MSECOND instead of numbers. + The PAR is a GstFraction and not a double, use gst_structure_get_fraction(). + Simplify setcaps() functions. + +2009-02-05 17:00:30 +0100 Sebastian Dröge + + * ext/assrender/Makefile.am: + * ext/assrender/gstassrender.c: + Use GST_VIDEO_CAPS_RGB for the template caps + +2009-02-05 16:57:55 +0100 Sebastian Dröge + + * ext/assrender/gstassrender.c: + Fix compiler warnings + +2009-02-05 16:54:01 +0100 Benjamin Schmitz + + * configure.ac: + * ext/Makefile.am: + * ext/assrender/Makefile.am: + * ext/assrender/gstassrender.c: + * ext/assrender/gstassrender.h: + Add assrender plugin for rendering ASS/SSA subtitles + This element has the advantage over subparse's ASS/SSA + support that more features are supported, like fading, + by using libass. Fixes bug #481075. + +2009-02-05 10:50:27 +0100 Edward Hervey + + * tests/check/pipelines/metadata.c: + metadata test: Fix wrong looping variable. Test is now valid (but fails). + The inner looping was using the outer looping variable. + +2009-02-04 18:11:03 -0800 Michael Smith + + * sys/qtwrapper/audiodecoders.c: + Fix up things that the indent thingy complained about + +2009-02-04 18:09:58 -0800 Michael Smith + + * sys/qtwrapper/audiodecoders.c: + Fix major leaks in qtwrapper audio decoders. + Free the decoder component and audiobufferlist when caps change, or when + disposing element. + +2009-02-04 17:50:51 -0800 Michael Smith + + * sys/dshowvideosink/dshowvideofakesrc.cpp: + * sys/dshowvideosink/dshowvideofakesrc.h: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + Handle many more edge cases in dshowvideosink. + Instrument various codepaths with debug messages. + Handle (as best as I could see how - it's pretty nasty) moving a video + window to another monitor. + Add listening for directshow events. + +2009-02-04 22:50:30 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + mpegpsdemux: fixes clossing segment generation. + Ensure that the clossing segment is generated correctly and being + properly pushed. + Added some GST_DEBUG to check it. + Ensure that last_stop is updated in stream time. + Calculate duration as delta of PTS as it seems more correct than delta + of SCR in some clips that I tested. + +2009-02-04 22:17:36 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + mpegpsdemux: several fixes on the seeking function in pul mode. + Removed a line wrongly copy pasted in my previous commit. + Avoid an unsigned integer overflow. + Seek last_stop in stream time. + Clamp last_stop in stream time between first and last SCR. + Fixed a typo in the GST_DEBUG line and added some more info. + +2009-02-04 16:20:40 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + Moved var declarations to the begin of function + +2009-02-04 16:18:27 +0100 Josep Torra + + Merge branch 'master' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-bad + +2009-02-04 16:11:23 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + Improved seeking in pull mode. Some refactoring and small fixes + +2009-02-04 11:11:31 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Update TODO + +2009-02-04 11:09:26 +0100 Sebastian Dröge + + * gst/mxf/mxf.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxftypes.h: + Post an UMID tag with the current package's UMID + +2009-02-04 10:59:53 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Reset the current partition after seeking and NEWSEGMENT events + +2009-02-04 10:53:52 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + In push mode play all remaining parts of the file on EOS if there are any + +2009-02-04 10:37:20 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Add property to set the maximum allowed time difference between tracks + +2009-02-04 10:27:03 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Always set the current package, not only when it was changed + This is necessary as the current package link will be set to NULL + when updated metadata is parsed and should be set here again. + +2009-02-04 10:19:51 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Try to resolve all synchronization issues, not only the first + +2009-02-03 17:47:10 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Remove some checks that will always be TRUE + +2009-02-03 22:27:33 +0000 Tim-Philipp Müller + + * configure.ac: + configure.ac: bump core/base requirements to released versions + +2009-02-02 23:29:24 +0100 Josep Torra + + * gst/mpegvideoparse/mpegvideoparse.c: + Also flush parser when a newsegment is received. Fixes loop in reverse mode. + +2009-02-02 23:12:07 +0100 Josep Torra + + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + * gst/mpegdemux/gstpesfilter.c: + Add pull mode to mpegpsdemux and report duration reading first and last PTS. Some random cleanups. + +2009-02-02 17:44:33 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Cleanup playback package selection and notify about the current package + +2009-02-02 16:23:30 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Update tags properly, especially on component switch + +2009-02-02 16:05:14 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Error out if no pads could be created + +2009-02-02 15:54:23 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Resolve metadata and update tracks if necessary before seeking + +2009-02-02 15:54:00 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Don't go after the last component of a track + +2009-02-02 15:53:32 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Return an error if updating an already existing pad fails + +2009-02-02 07:44:12 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Fix seeking if the source clip duration is unknown + +2009-02-01 16:59:25 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Add initial support for seeking in push mode + +2009-02-01 16:58:51 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Fix deadlocks when seeking in pull mode failed and check new offset before using it + +2009-02-01 16:58:01 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Update offset in push mode and handle events properly + +2009-02-01 15:07:09 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Implement initial seeking support (pull mode only) + +2009-01-31 11:29:20 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: + Don't use GLib 2.16 API unconditionally + +2009-01-30 19:52:59 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Check for EOS on all pads after adjusting the essence track durations + +2009-01-30 19:33:56 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Fix duration calculation for essence tracks + +2009-01-30 15:50:16 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Implement GstElement::query/get_query_types vfuncs + +2009-01-30 15:34:10 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Reset all internal state in finalize + +2009-01-29 20:27:28 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Improve EOS detection and fix push mode for the last pushed in buffer + +2009-01-29 19:58:50 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Keep track of essence track position when playing source packages + This ensures that the correct essence elements are played and + that we seek to the correct essence elements. + +2009-01-29 19:42:09 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Compensate for timestamp/duration rounding errors + +2009-01-29 15:56:08 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Improve EOS logic to check all pads when pulling a packet returned EOS + This makes sure that we finish all pads that are at EOS now instead of + just finishing one and returning to this point over and over again. + +2009-01-29 15:55:44 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Only push buffers for pads that are not more than 500ms before other pads + +2009-01-29 15:39:40 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Improve EOS logic to only go into EOS after all tracks are finished + +2009-01-28 17:34:57 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Update TODO list + +2009-01-28 16:39:30 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Try to keep the timestamp difference between tracks lower than 500ms + +2009-01-27 15:36:53 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Fix playback of atom files + +2009-01-27 15:27:45 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Keep track of current playback position + +2009-01-27 14:38:30 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + Set essence track positions to 0 if we're at the start partition + +2009-01-27 14:25:26 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfd10.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxfup.c: + * gst/mxf/mxfvc3.c: + Generate an index table for essence streams + Generate an index table for essence streams during playback + and make sure that only the correct essence elements are + used for played tracks. + Make it possible to have one essence stream used in multiple + playback tracks. + Fix some minor bugs. + +2009-01-27 14:23:03 +0100 Sebastian Dröge + + * gst/mxf/mxfmetadata.c: + Don't complain if the preface has no primary package set + +2009-01-26 16:23:38 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfparse.c: + Allow index table segments without primer pack + When parsing an index table segment without a valid + primer pack in this partition only parse the static + local tags and ignore all dynamic ones. + This allows us to use index table segments in some + broken files. + +2009-01-26 16:20:34 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Add essence track abstraction + Add an abstraction to represent essence tracks and + use this everywhere. This will later be used to keep + track of positions and to generate/handle seek tables. + Some random cleanup and renaming. + +2009-01-26 14:47:31 +0100 Sebastian Dröge + + * gst/mxf/mxfparse.c: + Fix parsing of index table segments + Allocate memory for the pos tables and slice offsets + of the index entries separately to a) fix alignment in + weird cases and b) to actually have something to free() + in the index table segment reset function. + +2009-01-26 14:33:02 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxftypes.h: + Improve detection of the end of the header metadata + Header metadata is finished after partition.header_byte_count + bytes after the first byte of the primer pack are handled. + After this there can only be index table segments, filler packets, + essence or the start of the next partition. + This fixes playback of some files that have non-standard metadata + packets in the header metadata. + +2009-01-30 18:27:03 -0800 Michael Smith + + * gst/selector/gstinputselector.c: + Unref event if we don't forward it, unref pads when done with them. + +2009-01-30 22:28:11 +0200 Stefan Kost + + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + Add releaseinfo with online url. + +2009-01-30 18:20:17 +0000 Jan Schmidt + + * gst/dccp/gstdccp.c: + Fix compilation on Forte. + Dereference the pointer to the passed socket to check the actual fd + when closing them. + Cast an assignment to kill a warning. + +2009-01-30 18:18:10 +0000 Jan Schmidt + + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + Fix the return value of the default parse_frame function. + Fix the return value of the default parse_frame function in both + copies of GstBaseParse + +2009-01-30 17:31:33 +0000 Jan Schmidt + + * common: + Bump common + +2009-01-30 08:54:42 +0100 Edward Hervey + + * autogen.sh: + * common: + Use a symbolic link for the pre-commit client-side hook + +2009-01-29 17:59:35 -0200 Thiago Sousa Santos + + * sys/qtwrapper/audiodecoders.c: + * sys/qtwrapper/codecmapping.h: + * sys/qtwrapper/qtutils.h: + * sys/qtwrapper/qtwrapper.h: + qtwrapper: Fixes build at case sensitive systems. + +2009-01-28 12:41:36 +0000 Josep Torra + + * gst/mpegdemux/gstpesfilter.c: + mpegdemux: do not skip pes packets that we think are encrypted + pes packets that claim to be encrypted may not be so, so treat as normal. + Just log the flags. + +2009-01-28 13:25:14 +0100 Mark Nauwelaerts + + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmuxmap.c: + Additional media type support in qtmux (and friends). + Support AMR and H263 for both qtmux and gppmux, + and add extensions in sample table description. + +2009-01-28 12:27:42 +0000 Zaheer Merali + + * common: + * gst/mpegdemux/gstpesfilter.c: + Revert "mpegdemux: do not skip pes packets that we think are encrypted" + This reverts commit d3e4e5598f6c3db444d0014597d383ed35a02998. + +2009-01-28 12:06:49 +0000 Josep Torra + + * common: + * gst/mpegdemux/gstpesfilter.c: + mpegdemux: do not skip pes packets that we think are encrypted + pes packets that claim to be encrypted may not be so, so treat as normal. + Just log the flags. + +2009-01-24 18:13:39 +0100 Hans de Goede + + * configure.ac: + * docs/plugins/Makefile.am: + * ext/Makefile.am: + * ext/modplug/Makefile.am: + * ext/modplug/gstmodplug.cc: + * ext/modplug/gstmodplug.h: + * gst/modplug/Makefile.am: + * gst/modplug/gstmodplug.cc: + * gst/modplug/gstmodplug.h: + * gst/modplug/libmodplug/Makefile.am: + * gst/modplug/libmodplug/README: + * gst/modplug/libmodplug/changes.txt: + * gst/modplug/libmodplug/fastmix.cpp: + * gst/modplug/libmodplug/it_defs.h: + * gst/modplug/libmodplug/load_669.cpp: + * gst/modplug/libmodplug/load_amf.cpp: + * gst/modplug/libmodplug/load_ams.cpp: + * gst/modplug/libmodplug/load_dbm.cpp: + * gst/modplug/libmodplug/load_dmf.cpp: + * gst/modplug/libmodplug/load_dsm.cpp: + * gst/modplug/libmodplug/load_far.cpp: + * gst/modplug/libmodplug/load_it.cpp: + * gst/modplug/libmodplug/load_j2b.cpp: + * gst/modplug/libmodplug/load_mdl.cpp: + * gst/modplug/libmodplug/load_med.cpp: + * gst/modplug/libmodplug/load_mod.cpp: + * gst/modplug/libmodplug/load_mt2.cpp: + * gst/modplug/libmodplug/load_mtm.cpp: + * gst/modplug/libmodplug/load_okt.cpp: + * gst/modplug/libmodplug/load_psm.cpp: + * gst/modplug/libmodplug/load_ptm.cpp: + * gst/modplug/libmodplug/load_s3m.cpp: + * gst/modplug/libmodplug/load_stm.cpp: + * gst/modplug/libmodplug/load_ult.cpp: + * gst/modplug/libmodplug/load_umx.cpp: + * gst/modplug/libmodplug/load_wav.cpp: + * gst/modplug/libmodplug/load_xm.cpp: + * gst/modplug/libmodplug/mmcmp.cpp: + * gst/modplug/libmodplug/modplug.cpp: + * gst/modplug/libmodplug/modplug.h: + * gst/modplug/libmodplug/snd_dsp.cpp: + * gst/modplug/libmodplug/snd_flt.cpp: + * gst/modplug/libmodplug/snd_fx.cpp: + * gst/modplug/libmodplug/sndfile.cpp: + * gst/modplug/libmodplug/sndfile.h: + * gst/modplug/libmodplug/sndmix.cpp: + * gst/modplug/libmodplug/stdafx.h: + * gst/modplug/libmodplug/tables.cpp: + * gst/modplug/libmodplug/tables.d: + Build the modplug plugin against the modplug library and remove our copy + Always build the modplug plugin against the system modplug library + and remove our own copy. Using the system version has advantages + if security issues or other critical bugs are found in libmodplug + and our own copy wasn't really maintained anyway. + Also our copy only contained some patches to use GLib types and functions. + Fixes bug #568837. + +2009-01-23 23:42:28 +0000 Jan Schmidt + + * .gitignore: + * po/.gitignore: + Add more to the gitignores + +2009-01-23 14:02:26 +0000 Jan Schmidt + + * gst/rawparse/gstvideoparse.c: + Make RGB masks unsigned in rawvideoparse + Allow the full range of 32 bit masks for RGBA/RGB data by making sure + the mask properties are unsigned. + +2009-01-23 16:09:51 +0200 Stefan Kost + + * ext/timidity/README: + Add README with midi related links. + +2009-01-23 16:00:10 +0200 Stefan Kost + + * ext/faad/gstfaad.c: + * gst/aacparse/gstaacparse.c: + Log aac details found in codec_data. + +2009-01-23 14:43:00 +0200 Stefan Kost + + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + Configure byte order for EXIF. Fixes #568704 + Exif blocks can be in differnt byte orders. Add an element property to select wich one should be written. + +2009-01-23 12:46:28 +0100 Sebastian Dröge + + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-aiffparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-apex.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dc1394.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-deinterlace2.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flv.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegdemux2.xml: + * docs/plugins/inspect/plugin-mpegtsmux.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-ofa.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-pcapparse.xml: + * docs/plugins/inspect/plugin-qtmux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-resindvd.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-twolame.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst/audioresample/Makefile.am: + * gst/audioresample/buffer.c: + * gst/audioresample/buffer.h: + * gst/audioresample/debug.c: + * gst/audioresample/debug.h: + * gst/audioresample/functable.c: + * gst/audioresample/functable.h: + * gst/audioresample/gstaudioresample.c: + * gst/audioresample/gstaudioresample.h: + * gst/audioresample/resample.c: + * gst/audioresample/resample.h: + * gst/audioresample/resample_chunk.c: + * gst/audioresample/resample_functable.c: + * gst/audioresample/resample_ref.c: + * gst/legacyresample/Makefile.am: + * gst/legacyresample/buffer.c: + * gst/legacyresample/buffer.h: + * gst/legacyresample/debug.c: + * gst/legacyresample/debug.h: + * gst/legacyresample/functable.c: + * gst/legacyresample/functable.h: + * gst/legacyresample/gstlegacyresample.c: + * gst/legacyresample/gstlegacyresample.h: + * gst/legacyresample/resample.c: + * gst/legacyresample/resample.h: + * gst/legacyresample/resample_chunk.c: + * gst/legacyresample/resample_functable.c: + * gst/legacyresample/resample_ref.c: + * tests/check/Makefile.am: + * tests/check/elements/audioresample.c: + * tests/check/elements/legacyresample.c: + Rename audioresample files and types to legacyresample + Finish the move/rename of audioresample to legacyresample + to prevent any confusion. + +2009-01-23 12:39:21 +0100 Sebastian Dröge + + * docs/plugins/inspect/plugin-speexresample.xml: + * gst/speexresample/Makefile.am: + * gst/speexresample/README: + * gst/speexresample/arch.h: + * gst/speexresample/fixed_generic.h: + * gst/speexresample/gstspeexresample.c: + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/resample.c: + * gst/speexresample/speex_resampler.h: + * gst/speexresample/speex_resampler_float.c: + * gst/speexresample/speex_resampler_int.c: + * gst/speexresample/speex_resampler_wrapper.h: + Remove speexresample from -bad, it's in -base + +2009-01-23 12:13:00 +0100 Wim Taymans + + * gst/rtpmanager/rtpstats.c: + Send BYE packets immediatly for small sessions + When the number of participants is less than 50, the RFC allows for sending the + BYE packet immediatly instead of using the regular BYE timeout. + Fixes #567828. + +2009-01-23 11:50:29 +0100 Hans de Goede + + * configure.ac: + * ext/libmms/gstmms.c: + * ext/libmms/gstmms.h: + Add seeking support to mmssrc. Fixes bug #469930. + Add proper seeking support to mmssrc and clean + up some code. This requires libmms >= 0.4. + +2009-01-23 10:44:20 +0100 Brian Cameron + + * gst/modplug/Makefile.am: + Link modplug plugin with -lm. Fixes bug #568483. + +2009-01-23 10:11:52 +0100 Brian Cameron + + * configure.ac: + * gst/dccp/gstdccp.c: + Fix build on Solaris. Fixes bug #568480. + Fix linking on Solaris by checking for the nsl and socket + libraries which are needed for socket() and gethostbyname(). + Don't initialize some fields of struct mh to NULL/0, they're + already set to NULL/0 by a memset(). Also this fields don't + exist on Solaris. + +2009-01-22 14:37:21 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: + * gst/mxf/mxftypes.h: + Store all partitions & primer packs in memory for faster access + Store all partitions & primer packs in memory for faster access. + This is later needed for fast seeking. + Pre-fill the list of partitions with the content of the random + index pack. + Don't parse metadata of an partition twice. + +2009-01-22 18:20:03 +0200 Stefan Kost + + * common: + Update common snapshot. + +2009-01-22 14:00:57 +0100 Wim Taymans + + * win32/common/config.h: + Update config.h for development. + +2009-01-22 13:46:44 +0100 Sebastian Dröge + + * common: + Fix pre-commit hook + +2009-01-22 13:39:34 +0100 Jan Urbanski + + * gst/flv/gstflvparse.c: + Add support for ECMA arrays in script tags. Fixes bug #567965. + Add support for ECMA arrays in script tags. This fixes + seeking on some files that have the seek table stored + inside an ECMA array instead of the normal array. + +2009-01-22 13:33:14 +0100 Wim Taymans + + * gst/rtpmanager/gstrtpjitterbuffer.c: + Unlock the jitterbuffer before pushing out the packet-lost events. Move some code before we do the unlock to make the jitterbuffer state consistent while we are unlocked. + +2009-01-22 11:54:45 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + Fix UL for DTS and MPEG2 layer 1 + +2009-01-22 11:54:15 +0100 Sebastian Dröge + + * gst/mxf/mxfmpeg.c: + Add support for AAC audio + +2009-01-22 11:47:48 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + Store MXF metadata in a hash table, keyed by UID + Store the MXF metadata in a hash table, keyed by the + instance UID. This simplifies resolval of the metadata + and makes looping over all metadata sets unnecessary + in most cases. + Additionally parse metadata always. If we already have + a metadata set with the same UID replace it only if + the new metadata set is from a later offset. This + fixes metadata parsing of files where following partitions + don't have a complete copy of the previous metadata. + +2009-01-22 11:44:46 +0100 Sebastian Dröge + + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Build the random index pack while parsing + If the file contains no random index pack or just + an invalid one build the random index pack while + parsing. + +2009-01-22 11:43:56 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfd10.c: + * gst/mxf/mxfd10.h: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdms1.h: + * gst/mxf/mxfdv-dif.c: + * gst/mxf/mxfdv-dif.h: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfjpeg2000.h: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + * gst/mxf/mxfup.c: + * gst/mxf/mxfup.h: + * gst/mxf/mxfvc3.c: + * gst/mxf/mxfvc3.h: + Update copyrights for 2009 + +2009-01-22 11:42:24 +0100 Sebastian Dröge + + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdms1.h: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfparse.c: + * gst/mxf/mxfparse.h: + Simplify parsing of UL/UUID arrays + Simplify parsing of UL/UUID arrays by abstracting it + into a separate function. + +2009-01-22 11:37:22 +0100 Sebastian Dröge + + * gst/mxf/mxf.c: + * gst/mxf/mxfalaw.c: + * gst/mxf/mxfd10.c: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdms1.h: + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfmetadata.c: + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfup.c: + * gst/mxf/mxfvc3.c: + Implement parsing of DMS1 (SMPTE S380M) + +2009-01-22 11:00:59 +0100 Sebastian Dröge + + * configure.ac: + Disable the filter plugin from the build + The filter plugin only contains a limited IIR filter element + which is now obsoleted by the audioiirfilter element from + gst-plugins-good/audiofx. + +2009-01-22 11:56:34 +0000 Jan Schmidt + + * configure.ac: + Back to devel -> 0.10.10.1 + +2009-01-22 06:12:55 +0100 Edward Hervey + + * autogen.sh: + * common: + Install and use pre-commit indentation hook from common + +2009-01-21 12:22:54 +0100 Andy Wingo + + * configure.ac: + Revert "add audiobuffer to the build" + This reverts commit 1c6ac170b9f218c673c0daaf5c568c6000a37fc3. + +2009-01-21 12:18:49 +0100 Andy Wingo + + add audiobuffer to the build + * configure.ac: Add audiobuffer to the build. + +2009-01-21 04:32:16 +0100 Edward Hervey + + * autogen.sh: + autogen.sh : Use git submodule + +=== release 0.10.10 === + +2009-01-19 23:15:36 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-legacyresample.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-twolame.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * po/LINGUAS: + * win32/common/config.h: + Release 0.10.10 + Original commit message from CVS: + Release 0.10.10 + +2009-01-19 22:41:58 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/mt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + Original commit message from CVS: + Update .po files + +2009-01-09 23:44:38 +0000 Jan Schmidt + + configure.ac: 0.10.9.3 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.9.3 pre-release + +2009-01-09 22:09:06 +0000 David Schleef + + gst/mpegdemux/gstmpegtsdemux.c: Don't forward duration requests in BYTES, since the returned value doesn't mean anyth... + Original commit message from CVS: + * gst/mpegdemux/gstmpegtsdemux.c: + Don't forward duration requests in BYTES, since the returned + value doesn't mean anything. Fixes #566959 + +2009-01-09 21:59:48 +0000 David Schleef + + gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part to caps so schroenc/schroparse can use it. Fixes #5... + Original commit message from CVS: + * gst/qtmux/gstqtmuxmap.c: Add video/x-qt-part and video/x-m4-part + to caps so schroenc/schroparse can use it. Fixes #566958 + +2009-01-09 16:49:57 +0000 Jan Schmidt + + ext/resindvd/resindvdsrc.c: Additional patch for resin fixes time-based seeking in titles that don't start at sector ... + Original commit message from CVS: + * ext/resindvd/resindvdsrc.c: + Additional patch for resin fixes time-based seeking in titles + that don't start at sector 0 in the VTS, and fixes interpretation + of the cell elapsed time, so that it reports the correct time after + the seek completes. + Really fixes #566957. + +2009-01-08 17:57:19 +0000 Brian Cameron + + ext/ladspa/search.c: Avoid searching (null) paths or crashing on platforms where printing a + Original commit message from CVS: + Based on Patch by: Brian Cameron + * ext/ladspa/search.c: (LADSPAPluginSearch): + Avoid searching (null) paths or crashing on platforms where printing a + NULL string segfaults. Fixes #567004. + +2009-01-08 12:42:18 +0000 Jan Schmidt + + ext/resindvd/: Add support for time based seeking. + Original commit message from CVS: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + * ext/resindvd/rsnaudiomunge.c: + Add support for time based seeking. + Make setting dvd:// reset to the default device. + Make the 'audiomunge' element send any new segment start before + the 'gap filler' buffer it generates, and any segment closes + after. + Fixes: #566957 + +2009-01-08 09:40:22 +0000 Sebastian Dröge + + ext/ladspa/gstladspa.c: Add plugin dependency for the LADSPA plugin directories. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: (plugin_init): + Add plugin dependency for the LADSPA plugin directories. + Fixes bug #566878. + +2009-01-06 22:51:37 +0000 Jan Schmidt + + tests/check/Makefile.am: Dist test headers for amr and aac parsers. + Original commit message from CVS: + * tests/check/Makefile.am: + Dist test headers for amr and aac parsers. + Remove leftover lines mentioned speexresample tests. + +2009-01-06 22:35:50 +0000 Michael Smith + + sys/acmmp3dec/Makefile.am: Fix typo in the opposite way to give the plugin a sensible name. + Original commit message from CVS: + * sys/acmmp3dec/Makefile.am: + Fix typo in the opposite way to give the plugin a sensible name. + +2009-01-06 22:16:56 +0000 Jan Schmidt + + sys/acmmp3dec/Makefile.am: Fix typo in the makefile target preventing disting. + Original commit message from CVS: + * sys/acmmp3dec/Makefile.am: + Fix typo in the makefile target preventing disting. + +2009-01-05 23:03:31 +0000 Jan Schmidt + + Remove AppSrc/AppSink that are moving to -base. Partially fixes #564421 + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-app.xml: + * examples/Makefile.am: + * examples/app/.cvsignore: + * examples/app/Makefile.am: + * examples/app/appsink-src.c: + * examples/app/appsrc-ra.c: + * examples/app/appsrc-seekable.c: + * examples/app/appsrc-stream.c: + * examples/app/appsrc-stream2.c: + * examples/app/appsrc_ex.c: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/app/.cvsignore: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstapp-marshal.list: + * gst-libs/gst/app/gstappbuffer.c: + * gst-libs/gst/app/gstappbuffer.h: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsink.h: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/app/gstappsrc.h: + * gst/app/Makefile.am: + * gst/app/gstapp.c: + Remove AppSrc/AppSink that are moving to -base. Partially fixes + #564421 + +2009-01-05 17:41:51 +0000 Zaheer Abbas Merali + + gst/mpegdemux/mpegtspacketizer.c: Guard interval is 4 if descriptor part shows binary 11 (3 not 4). + Original commit message from CVS: + * gst/mpegdemux/mpegtspacketizer.c: + Guard interval is 4 if descriptor part shows binary 11 (3 not 4). + +2009-01-05 17:30:55 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegdesc.h: Fix up satellite delivery subsystem defs. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdesc.h: + Fix up satellite delivery subsystem defs. + +2009-01-05 17:26:00 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegdesc.h: Fix up terrestrial delivery system descriptor defs. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdesc.h: + Fix up terrestrial delivery system descriptor defs. + They should be shifted otherwise wrong values are seen. + +2009-01-05 13:41:07 +0000 Sebastian Dröge + + gst/mxf/: "Generation UID" and "This Generation UID" are different so handle them different. Also both are not part o... + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag), + (mxf_metadata_preface_handle_tag), + (mxf_metadata_identification_handle_tag), + (mxf_metadata_content_storage_handle_tag), + (mxf_metadata_essence_container_data_handle_tag), + (mxf_metadata_generic_package_handle_tag), + (mxf_metadata_track_handle_tag), + (mxf_metadata_sequence_handle_tag), + (mxf_metadata_structural_component_handle_tag), + (mxf_metadata_generic_descriptor_handle_tag), + (mxf_metadata_locator_handle_tag), + (mxf_metadata_locator_class_init): + * gst/mxf/mxfmetadata.h: + "Generation UID" and "This Generation UID" are different so handle + them different. Also both are not part of every metadata type. + +2009-01-05 12:34:18 +0000 Sascha Hauer + + gst/bayer/gstbayer2rgb.c: Fix color offset calculation for 24bpp. Fixes bug #566613. + Original commit message from CVS: + Patch by: Sascha Hauer + Luotao Fu + * gst/bayer/gstbayer2rgb.c: (get_pix_offset), + (gst_bayer2rgb_set_caps): + Fix color offset calculation for 24bpp. Fixes bug #566613. + +2009-01-05 11:28:49 +0000 vanista + + gst/mpegtsmux/: Improve muxing of AC3/h264 streams a bit. Fixes bug #550613. + Original commit message from CVS: + Patch by: vanista + * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream): + * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_pmt): + * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new), + (tsmux_stream_write_pes_header), (tsmux_stream_get_es_descrs): + * gst/mpegtsmux/tsmux/tsmuxstream.h: + Improve muxing of AC3/h264 streams a bit. Fixes bug #550613. + +2009-01-05 10:34:03 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Don't allow negative or zero edit rates to prevent division by zero and we support negative edit ... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_pad_next_component): + Don't allow negative or zero edit rates to prevent division + by zero and we support negative edit rates anyway. + +2009-01-05 10:28:58 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.c: Use hyphen in property name, perform safety buffer size check prior to mem access, and some mo... + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_class_init), + (gst_x264_enc_header_buf), (gst_x264_enc_encode_frame): + Use hyphen in property name, perform safety buffer size check + prior to mem access, and some more parentheses in macro. + +2009-01-05 10:22:29 +0000 Sebastian Dröge + + gst/mxf/: Fix compilation with debugging disabled. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_handle_tag), + (mxf_bwf_create_caps): + * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_klv_packet): + * gst/mxf/mxfmetadata.c: (mxf_metadata_handle_tag), + (mxf_metadata_preface_handle_tag), + (mxf_metadata_identification_handle_tag), + (mxf_metadata_content_storage_handle_tag), + (mxf_metadata_essence_container_data_handle_tag), + (mxf_metadata_generic_package_handle_tag), + (mxf_metadata_source_package_handle_tag), + (mxf_metadata_track_handle_tag), + (mxf_metadata_sequence_handle_tag), + (mxf_metadata_structural_component_handle_tag), + (mxf_metadata_source_clip_handle_tag), + (mxf_metadata_dm_segment_handle_tag), + (mxf_metadata_generic_descriptor_handle_tag), + (mxf_metadata_file_descriptor_handle_tag), + (mxf_metadata_generic_picture_essence_descriptor_handle_tag), + (mxf_metadata_generic_sound_essence_descriptor_handle_tag), + (mxf_metadata_generic_data_essence_descriptor_handle_tag), + (mxf_metadata_multiple_descriptor_handle_tag): + * gst/mxf/mxfparse.c: (mxf_partition_pack_parse), + (mxf_index_table_segment_parse), (mxf_primer_pack_parse), + (mxf_local_tag_add_to_hash_table): + Fix compilation with debugging disabled. + +2009-01-05 10:00:21 +0000 Mark Nauwelaerts + + configure.ac: Also mention jp2kenc as a jp2k plugin feature. + Original commit message from CVS: + * configure.ac: + Also mention jp2kenc as a jp2k plugin feature. + +2009-01-04 11:11:06 +0000 Sebastian Pölsterl + + sys/dvb/dvbbasebin.c: Fix some memory leaks. Fixes bug #566356. + Original commit message from CVS: + Patch by: Sebastian Pölsterl + * sys/dvb/dvbbasebin.c: (dvb_base_bin_init), + (dvb_base_bin_finalize), (dvb_base_bin_activate_program), + (dvb_base_bin_pmt_info_cb), (dvb_base_bin_pad_added_cb), + (dvb_base_bin_program_destroy): + Fix some memory leaks. Fixes bug #566356. + +2009-01-02 17:40:06 +0000 Olivier Crete + + gst/rtpmanager/: When an SSRC is found on the caps of the sender RTP, use this as the internal SSRC. Fixes #565910. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_setcaps_send_rtp), (create_send_rtp_sink): + * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc): + When an SSRC is found on the caps of the sender RTP, use this as the + internal SSRC. Fixes #565910. + +2009-01-02 16:50:53 +0000 Wim Taymans + + gst/rtpmanager/: Rename a method to better reflect what it really does. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_getcaps_send_rtp): + * gst/rtpmanager/rtpsession.c: (check_collision), + (rtp_session_schedule_bye_locked), (rtp_session_schedule_bye): + * gst/rtpmanager/rtpsession.h: + Rename a method to better reflect what it really does. + +2009-01-02 11:00:17 +0000 Alessandro Decina + + ext/apexsink/Makefile.am: Move -lgcrypto from _LDFLAGS to _LIBADD. + Original commit message from CVS: + * ext/apexsink/Makefile.am: + Move -lgcrypto from _LDFLAGS to _LIBADD. + +2009-01-02 01:44:11 +0000 Alessandro Decina + + ext/apexsink/Makefile.am: Link against -lgcrpyto for RSA_new and RSA_free. + Original commit message from CVS: + * ext/apexsink/Makefile.am: + Link against -lgcrpyto for RSA_new and RSA_free. + * ext/faac/gstfaac.c: + * ext/x264/gstx264enc.c: + Fix compiler warnings. + +2009-01-02 01:12:35 +0000 Alessandro Decina + + gst/mpegdemux/gstmpegdemux.c: Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: + Initialize scr_rate_n and scr_rate_d in order to fix compiler warnings. + +2008-12-31 08:53:02 +0000 Sebastian Dröge + + Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with more than a single component. This currently only works... + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: (mxf_bwf_handle_essence_element), + (mxf_aes3_handle_essence_element): + * gst/mxf/mxfalaw.c: (mxf_alaw_handle_essence_element): + * gst/mxf/mxfd10.c: (mxf_d10_picture_handle_essence_element), + (mxf_d10_sound_handle_essence_element): + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_init), + (gst_mxf_demux_choose_package), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_pad_next_component), + (gst_mxf_demux_handle_generic_container_essence_element), + (gst_mxf_demux_parse_footer_metadata), + (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query): + * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_handle_essence_element): + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_handle_essence_element): + * gst/mxf/mxfmetadata.c: (mxf_metadata_sequence_init), + (mxf_metadata_structural_component_init), + (mxf_metadata_generic_picture_essence_descriptor_init): + * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_handle_essence_element), + (mxf_mpeg_audio_handle_essence_element): + * gst/mxf/mxfparse.h: + * gst/mxf/mxfup.c: (mxf_up_handle_essence_element): + * gst/mxf/mxfvc3.c: (mxf_vc3_handle_essence_element): + * tests/check/elements/mxfdemux.c: (_sink_chain): + Implement support for OP2a/b/c and OP3a/b/c, i.e. tracks with + more than a single component. This currently only works for + the case where the components are stored in playback order + in the file. + Set some more default/distinguished values for the structural + metadata. + Make some types more strict by choosing the correct subclasses. + Set DISCONT flag on buffers after a component switch. + Take the last partition from the random index pack for the footer + partition of the header partition doesn't reference the footer + partition. This gives us the final structural metadata for + some more files in the beginning. + +2008-12-29 18:22:26 +0000 Wim Taymans + + gst/mpegdemux/gstmpegdemux.c: Use the adjusted SCR for calculating the mux rate. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query), + (gst_flups_demux_parse_pack_start): + Use the adjusted SCR for calculating the mux rate. + Don't update the rate estimation after a discont. + +2008-12-29 17:55:18 +0000 Wim Taymans + + gst/mpegdemux/gstmpegdemux.*: The position member in the newsegment event corresponds to the stream_time of the segme... + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): + * gst/mpegdemux/gstmpegdemux.h: + The position member in the newsegment event corresponds to the + stream_time of the segment start position. + +2008-12-29 17:30:03 +0000 Robin Stocker + + gst/mpegdemux/gstmpegdemux.c: Converting from time to bytes operates on the stream_time, not the SCR timeline. + Original commit message from CVS: + Patch by: Robin Stocker + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_src_query): + Converting from time to bytes operates on the stream_time, not the SCR + timeline. + The position reporting should happen in stream_time, not the segment + timestamp range. See #557161. + +2008-12-29 16:45:20 +0000 Wim Taymans + + gst-libs/gst/app/gstappsrc.*: Add properties and methods to configure and retrieve the min and max latencies. + Original commit message from CVS: + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_init), (gst_app_src_set_property), + (gst_app_src_get_property), (gst_app_src_query), + (gst_app_src_set_latencies), (gst_app_src_set_latency), + (gst_app_src_get_latency), (gst_app_src_push_buffer_full): + * gst-libs/gst/app/gstappsrc.h: + Add properties and methods to configure and retrieve the min and max + latencies. + +2008-12-29 16:29:08 +0000 Sebastian Pölsterl + + gst/mpegdemux/mpegtspacketizer.c: Fix memleak. Fixes #565614. + Original commit message from CVS: + Patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_eit): + Fix memleak. Fixes #565614. + +2008-12-29 16:18:47 +0000 Sebastian Pölsterl + + gst/mpegdemux/mpegtspacketizer.c: Add a scrambled field to the service structures retrieved from SDT to determine if ... + Original commit message from CVS: + Patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_sdt): + Add a scrambled field to the service structures retrieved from SDT to + determine if a channel is scrambled. Fixes #565613. + +2008-12-29 15:54:44 +0000 Damien Lespiau + + gst/pcapparse/: Patch to make gstpcapparse compile with mingw32 gcc. Fixes #565439. + Original commit message from CVS: + Patch by: Damien Lespiau + * gst/pcapparse/Makefile.am: + * gst/pcapparse/gstpcapparse.c: + Patch to make gstpcapparse compile with mingw32 gcc. Fixes #565439. + +2008-12-29 15:49:37 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Use method to get the internal SSRC. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_getcaps_send_rtp): + Use method to get the internal SSRC. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_set_property), (rtp_session_get_property): + Add property to congiure the internal SSRC of the session. + Fixes #565910. + +2008-12-29 15:21:58 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: Only change the SSRC of the session and reset the internal source when the SSRC actually... + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (rtp_session_set_internal_ssrc): + Only change the SSRC of the session and reset the internal source when + the SSRC actually changed. See #565910. + +2008-12-29 14:21:47 +0000 Wim Taymans + + gst/rtpmanager/rtpsource.*: When no payload was specified on the caps but there was a clock-rate, assume the clock-ra... + Original commit message from CVS: + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (rtp_source_update_caps), (get_clock_rate): + * gst/rtpmanager/rtpsource.h: + When no payload was specified on the caps but there was a clock-rate, + assume the clock-rate corresponds to the first payload type found in the + RTP packets. Fixes #565509. + +2008-12-23 16:32:05 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: With constant read failures, make sure we exit the read_device method. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + With constant read failures, make sure we exit the read_device + method. + +2008-12-23 15:26:30 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Post bus message with dvb read failure when unable to read from device. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Post bus message with dvb read failure when unable to read from + device. + +2008-12-23 12:25:47 +0000 Luotao Fu + + sys/fbdev/gstfbdevsink.c: Fix the Depth calculation. + Original commit message from CVS: + Patch by: Luotao Fu + * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps): + Fix the Depth calculation. + Fixes #564114. + +2008-12-23 11:39:59 +0000 Arnout Vandecappelle + + gst/rtpmanager/rtpjitterbuffer.*: Keep track of the last outgoing timestamp and of the last sender-side time. Timest... + Original commit message from CVS: + Patch by: Arnout Vandecappelle + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew): + * gst/rtpmanager/rtpjitterbuffer.h: + Keep track of the last outgoing timestamp and of the last sender-side + time. Timestamps can only go forward if they do at the sender + side, can only go back if they do at the sender side, and remain the + same if they remain the same at the sender side. Fixes #565319. + +2008-12-22 20:56:10 +0000 Sebastian Dröge + + gst/mxf/mxfmpeg.c: Add initial support for h.264 video (SMPTE RP2008). + Original commit message from CVS: + * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps), + (mxf_mpeg_create_caps): + Add initial support for h.264 video (SMPTE RP2008). + +2008-12-22 20:37:24 +0000 Sebastian Dröge + + gst/mxf/mxfmetadata.*: If resolving a metadata object failed the first time return + Original commit message from CVS: + * gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve): + * gst/mxf/mxfmetadata.h: + If resolving a metadata object failed the first time return + FALSE for a second mxf_metadata_base_resolve() call instead + of TRUE. + +2008-12-22 10:14:35 +0000 Sebastian Dröge + + gst/mxf/: Cleanup of the includes. + Original commit message from CVS: + * gst/mxf/mxf.c: + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfd10.c: + * gst/mxf/mxfdms1.c: + * gst/mxf/mxfdms1.h: + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxftypes.h: + Cleanup of the includes. + +2008-12-19 18:53:47 +0000 Mark Nauwelaerts + + gst/qtmux/gstqtmux.c: Do not tempt or suggest to violate gst_collect_pads API specification. + Original commit message from CVS: + * gst/qtmux/gstqtmux.c: (gst_qt_mux_change_state): + Do not tempt or suggest to violate gst_collect_pads API specification. + +2008-12-19 18:33:47 +0000 Mark Nauwelaerts + + gst/qtmux/: Dual license qtmux LGPL/MIT. Fixes #564232. + Original commit message from CVS: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/qtmux/properties.c: + * gst/qtmux/properties.h: + Dual license qtmux LGPL/MIT. Fixes #564232. + +2008-12-19 10:06:24 +0000 Sebastian Dröge + + gst/mxf/: Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to set rate and channels and use this for all ... + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps), + (mxf_aes3_create_caps): + * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps): + * gst/mxf/mxfd10.c: (mxf_d10_create_caps): + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfmetadata.c: (mxf_metadata_source_package_resolve), + (mxf_metadata_generic_picture_essence_descriptor_set_caps), + (mxf_metadata_generic_sound_essence_descriptor_set_caps): + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps): + Add mxf_metadata_generic_sound_essence_descriptor_set_caps() to + set rate and channels and use this for all sound essence. + Give some debug output when setting picture essence caps with + invalid descriptor values. + Fix height calculation from the frame layout a bit more and + add a TODO to check if it's really correct now or if it needs + more fixing (especially, does the framerate need adjustments?). + +2008-12-18 17:49:08 +0000 Sebastian Dröge + + gst/mxf/: Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4). + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: (plugin_init): + * gst/mxf/mxfvc3.c: (mxf_is_vc3_essence_track), + (mxf_vc3_handle_essence_element), (mxf_vc3_create_caps), + (mxf_vc3_init): + * gst/mxf/mxfvc3.h: + Add support for VC-3 (aka DNxHD essence, see SMPTE 2019-4). + This is untested because of lack of sample files but should + work fine. + +2008-12-17 13:51:46 +0000 Wim Taymans + + Add appsrc and appsink documentation. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init): + Add appsrc and appsink documentation. + +2008-12-17 12:06:43 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: In push mode skip the run in again if we get buffers with an offset before the run in. This can h... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_chain): + In push mode skip the run in again if we get buffers with + an offset before the run in. This can happen on seeks for example. + +2008-12-16 16:26:52 +0000 Stefan Kost + + Totally remove the internal taglists and fully use tagsetter. Fixes various tag muxing issues. + Original commit message from CVS: + * ext/celt/gstceltenc.c: + * ext/celt/gstceltenc.h: + * ext/metadata/gstmetadatamux.c: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + Totally remove the internal taglists and fully use tagsetter. Fixes + various tag muxing issues. + +2008-12-16 12:46:37 +0000 Sebastian Dröge + + tests/check/elements/mxfdemux.c: Increase the timeout to 3 minutes to prevent timeouts. + Original commit message from CVS: + * tests/check/elements/mxfdemux.c: (mxfdemux_suite): + Increase the timeout to 3 minutes to prevent timeouts. + +2008-12-16 12:37:15 +0000 Sebastian Dröge + + tests/check/elements/mxfdemux.*: Make sure the main loop is already running when handling the EOS event in pull mode.... + Original commit message from CVS: + * tests/check/elements/mxfdemux.c: (_sink_event): + * tests/check/elements/mxfdemux.h: + Make sure the main loop is already running when handling the EOS + event in pull mode. This works around a race condition that can + happen if the element goes into PLAYING, handles everything and + sends EOS before the main loop is started. + +2008-12-16 12:30:34 +0000 Sebastian Dröge + + gst/mxf/: Implement an essence element handling registry and use this instead of an hardcoded, large if-then-else block. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: (mxf_is_aes_bwf_essence_track), + (mxf_bwf_handle_essence_element), + (mxf_aes3_handle_essence_element), (mxf_bwf_create_caps), + (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps), + (mxf_aes_bwf_init): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track), + (mxf_alaw_handle_essence_element), (mxf_alaw_create_caps), + (mxf_alaw_init): + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track), + (mxf_d10_picture_handle_essence_element), + (mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps), + (mxf_d10_init): + * gst/mxf/mxfd10.h: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_generic_container_essence_element): + * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track), + (mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps), + (mxf_dv_dif_init): + * gst/mxf/mxfdv-dif.h: + * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track), + (mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps), + (mxf_jpeg2000_init): + * gst/mxf/mxfjpeg2000.h: + * gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track), + (mxf_mpeg_video_handle_essence_element), + (mxf_mpeg_audio_handle_essence_element), (mxf_mpeg_es_create_caps), + (mxf_mpeg_create_caps), (mxf_mpeg_init): + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: (mxf_essence_element_handler_register), + (mxf_essence_element_handler_find): + * gst/mxf/mxfparse.h: + * gst/mxf/mxfup.c: (mxf_is_up_essence_track), + (mxf_up_handle_essence_element), (mxf_up_rgba_create_caps), + (mxf_up_create_caps), (mxf_up_init): + * gst/mxf/mxfup.h: + Implement an essence element handling registry and use this instead + of an hardcoded, large if-then-else block. + +2008-12-16 10:50:40 +0000 Edward Hervey + + tests/check/Makefile.am: Blacklist rfbsrc from the state change test. + Original commit message from CVS: + * tests/check/Makefile.am: + Blacklist rfbsrc from the state change test. + +2008-12-16 09:59:38 +0000 Sebastian Dröge + + tests/check/: Add push and pull mode unit test for mxfdemux. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/mxfdemux.c: (_pad_added), (_sink_chain), + (_sink_event), (_create_sink_pad), (_create_src_pad_push), + (_src_getrange), (_src_query), (_create_src_pad_pull), + (GST_START_TEST), (mxfdemux_suite): + * tests/check/elements/mxfdemux.h: + Add push and pull mode unit test for mxfdemux. + +2008-12-16 08:35:05 +0000 Sebastian Dröge + + Add initial documentation for the MXF plugin and mxfdemux. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-mxf.xml: + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdemux.h: + Add initial documentation for the MXF plugin and mxfdemux. + +2008-12-16 08:21:29 +0000 Sebastian Dröge + + gst/mxf/: Rename MXFMetadataBase methods to reflect that they belong to + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_resolve_references): + * gst/mxf/mxfmetadata.c: (mxf_metadata_base_resolve_default), + (mxf_metadata_base_class_init), (mxf_metadata_base_parse), + (mxf_metadata_base_resolve), (mxf_metadata_new), + (mxf_metadata_preface_resolve), + (mxf_metadata_content_storage_resolve), + (mxf_metadata_essence_container_data_resolve), + (mxf_metadata_generic_package_resolve), + (mxf_metadata_source_package_resolve), + (mxf_metadata_track_resolve), (mxf_metadata_sequence_resolve), + (mxf_metadata_dm_segment_resolve), + (mxf_metadata_generic_descriptor_resolve), + (mxf_metadata_multiple_descriptor_resolve): + * gst/mxf/mxfmetadata.h: + Rename MXFMetadataBase methods to reflect that they belong to + MXFMetadataBase and not MXFMetadata. + +2008-12-15 18:12:26 +0000 Sebastian Dröge + + gst/mxf/: Return FALSE when parsing a metadata tag failed. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_handle_tag), + (mxf_metadata_aes3_audio_essence_descriptor_handle_tag): + * gst/mxf/mxfmetadata.c: + (mxf_metadata_multiple_descriptor_handle_tag): + Return FALSE when parsing a metadata tag failed. + Remove some useless return value assignments. + +2008-12-15 17:27:00 +0000 Sebastian Dröge + + gst/mxf/: Convert the structural metadata to GstMiniObjects to make a lot of code easier and to make everything bette... + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: (plugin_init): + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_handle_tag), + (mxf_metadata_wave_audio_essence_descriptor_init), + (mxf_metadata_wave_audio_essence_descriptor_class_init), + (mxf_metadata_aes3_audio_essence_descriptor_finalize), + (mxf_metadata_aes3_audio_essence_descriptor_handle_tag), + (mxf_metadata_aes3_audio_essence_descriptor_init), + (mxf_metadata_aes3_audio_essence_descriptor_class_init), + (mxf_is_aes_bwf_essence_track), (mxf_bwf_create_caps), + (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps), + (mxf_aes_bwf_init): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track), + (mxf_alaw_create_caps), (mxf_alaw_init): + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track), + (mxf_d10_create_caps), (mxf_d10_init): + * gst/mxf/mxfd10.h: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_find_package), (gst_mxf_demux_choose_package), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_metadata), + (gst_mxf_demux_handle_generic_container_essence_element), + (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_src_query): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track), + (mxf_dv_dif_create_caps), (mxf_dv_dif_init): + * gst/mxf/mxfdv-dif.h: + * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track), + (mxf_jpeg2000_create_caps), (mxf_jpeg2000_init): + * gst/mxf/mxfjpeg2000.h: + * gst/mxf/mxfmetadata.c: (mxf_metadata_base_finalize), + (mxf_metadata_base_handle_tag), (mxf_metadata_base_resolve), + (mxf_metadata_base_init), (mxf_metadata_base_class_init), + (mxf_metadata_parse), (mxf_metadata_resolve), + (mxf_metadata_handle_tag), (mxf_metadata_class_init), + (mxf_metadata_init), (mxf_metadata_init_types), + (mxf_metadata_register), (mxf_metadata_new), + (mxf_metadata_preface_finalize), (mxf_metadata_preface_handle_tag), + (mxf_metadata_preface_resolve), (mxf_metadata_preface_init), + (mxf_metadata_preface_class_init), + (mxf_metadata_identification_finalize), + (mxf_metadata_identification_handle_tag), + (mxf_metadata_identification_init), + (mxf_metadata_identification_class_init), + (mxf_metadata_content_storage_finalize), + (mxf_metadata_content_storage_handle_tag), + (mxf_metadata_content_storage_resolve), + (mxf_metadata_content_storage_init), + (mxf_metadata_content_storage_class_init), + (mxf_metadata_essence_container_data_handle_tag), + (mxf_metadata_essence_container_data_resolve), + (mxf_metadata_essence_container_data_init), + (mxf_metadata_essence_container_data_class_init), + (mxf_metadata_generic_package_finalize), + (mxf_metadata_generic_package_handle_tag), + (mxf_metadata_generic_package_resolve), + (mxf_metadata_generic_package_init), + (mxf_metadata_generic_package_class_init), + (mxf_metadata_material_package_resolve), + (mxf_metadata_material_package_init), + (mxf_metadata_material_package_class_init), + (mxf_metadata_source_package_finalize), + (mxf_metadata_source_package_handle_tag), + (mxf_metadata_source_package_resolve), + (mxf_metadata_source_package_init), + (mxf_metadata_source_package_class_init), + (mxf_metadata_track_finalize), (mxf_metadata_track_handle_tag), + (mxf_metadata_track_resolve), (mxf_metadata_track_init), + (mxf_metadata_track_class_init), + (mxf_metadata_track_identifier_parse), + (mxf_metadata_timeline_track_handle_tag), + (mxf_metadata_timeline_track_init), + (mxf_metadata_timeline_track_class_init), + (mxf_metadata_event_track_handle_tag), + (mxf_metadata_event_track_init), + (mxf_metadata_event_track_class_init), + (mxf_metadata_static_track_init), + (mxf_metadata_static_track_class_init), + (mxf_metadata_sequence_finalize), + (mxf_metadata_sequence_handle_tag), + (mxf_metadata_sequence_resolve), (mxf_metadata_sequence_init), + (mxf_metadata_sequence_class_init), + (mxf_metadata_structural_component_handle_tag), + (mxf_metadata_structural_component_init), + (mxf_metadata_structural_component_class_init), + (mxf_metadata_timecode_component_handle_tag), + (mxf_metadata_timecode_component_init), + (mxf_metadata_timecode_component_class_init), + (mxf_metadata_source_clip_handle_tag), + (mxf_metadata_source_clip_resolve), + (mxf_metadata_source_clip_init), + (mxf_metadata_source_clip_class_init), + (mxf_metadata_dm_source_clip_finalize), + (mxf_metadata_dm_source_clip_handle_tag), + (mxf_metadata_dm_source_clip_init), + (mxf_metadata_dm_source_clip_class_init), + (mxf_metadata_dm_segment_finalize), + (mxf_metadata_dm_segment_handle_tag), + (mxf_metadata_dm_segment_resolve), (mxf_metadata_dm_segment_init), + (mxf_metadata_dm_segment_class_init), + (mxf_metadata_generic_descriptor_finalize), + (mxf_metadata_generic_descriptor_handle_tag), + (mxf_metadata_generic_descriptor_resolve), + (mxf_metadata_generic_descriptor_init), + (mxf_metadata_generic_descriptor_class_init), + (mxf_metadata_file_descriptor_handle_tag), + (mxf_metadata_file_descriptor_init), + (mxf_metadata_file_descriptor_class_init), + (mxf_metadata_generic_picture_essence_descriptor_handle_tag), + (mxf_metadata_generic_picture_essence_descriptor_init), + (mxf_metadata_generic_picture_essence_descriptor_class_init), + (mxf_metadata_generic_picture_essence_descriptor_set_caps), + (mxf_metadata_generic_sound_essence_descriptor_handle_tag), + (mxf_metadata_generic_sound_essence_descriptor_init), + (mxf_metadata_generic_sound_essence_descriptor_class_init), + (mxf_metadata_cdci_picture_essence_descriptor_handle_tag), + (mxf_metadata_cdci_picture_essence_descriptor_init), + (mxf_metadata_cdci_picture_essence_descriptor_class_init), + (mxf_metadata_rgba_picture_essence_descriptor_finalize), + (mxf_metadata_rgba_picture_essence_descriptor_handle_tag), + (mxf_metadata_rgba_picture_essence_descriptor_init), + (mxf_metadata_rgba_picture_essence_descriptor_class_init), + (mxf_metadata_generic_data_essence_descriptor_handle_tag), + (mxf_metadata_generic_data_essence_descriptor_init), + (mxf_metadata_generic_data_essence_descriptor_class_init), + (mxf_metadata_multiple_descriptor_finalize), + (mxf_metadata_multiple_descriptor_handle_tag), + (mxf_metadata_multiple_descriptor_resolve), + (mxf_metadata_multiple_descriptor_init), + (mxf_metadata_multiple_descriptor_class_init), + (mxf_metadata_locator_init), (mxf_metadata_locator_class_init), + (mxf_metadata_text_locator_finalize), + (mxf_metadata_text_locator_handle_tag), + (mxf_metadata_text_locator_init), + (mxf_metadata_text_locator_class_init), + (mxf_metadata_network_locator_finalize), + (mxf_metadata_network_locator_handle_tag), + (mxf_metadata_network_locator_init), + (mxf_metadata_network_locator_class_init): + * gst/mxf/mxfmetadata.h: + * gst/mxf/mxfmpeg.c: + (mxf_metadata_mpeg_video_descriptor_handle_tag), + (mxf_metadata_mpeg_video_descriptor_init), + (mxf_metadata_mpeg_video_descriptor_class_init), + (mxf_is_mpeg_essence_track), (mxf_mpeg_es_create_caps), + (mxf_mpeg_create_caps), (mxf_mpeg_init): + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: (mxf_index_table_segment_parse), + (mxf_local_tag_add_to_hash_table): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + * gst/mxf/mxfup.c: (mxf_is_up_essence_track), (mxf_up_create_caps), + (mxf_up_init): + * gst/mxf/mxfup.h: + Convert the structural metadata to GstMiniObjects to make a lot of + code easier and to make everything better extensible. + Add a "registry" for metadata handlers to improve extensibility even + more and to remove metadata type specifics from mxfdemux. + Clean up a lot of parts and add some more NULL checks. + +2008-12-15 15:56:18 +0000 Stefan Kost + + ext/faac/gstfaac.c: Fix default for outputformat property. + Original commit message from CVS: + * ext/faac/gstfaac.c: + Fix default for outputformat property. + +2008-12-15 12:02:26 +0000 Wim Taymans + + examples/app/: Fix example to unref after emiting the push-buffer action. + Original commit message from CVS: + * examples/app/appsrc-ra.c: (feed_data): + * examples/app/appsrc-seekable.c: (feed_data): + * examples/app/appsrc-stream.c: (read_data): + * examples/app/appsrc-stream2.c: (feed_data): + Fix example to unref after emiting the push-buffer action. + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_push_buffer_full), (gst_app_src_push_buffer), + (gst_app_src_push_buffer_action): + Don't take the ref on the buffer in push-buffer action because it's too + awkward for bindings. Fixes #564482. + +2008-12-13 16:26:39 +0000 Edward Hervey + + m4/Makefile.am: More .m4 that aren't shipped with gettext 0.17 anymore. + Original commit message from CVS: + * m4/Makefile.am: + More .m4 that aren't shipped with gettext 0.17 anymore. + +2008-12-13 13:00:10 +0000 Edward Hervey + + m4/Makefile.am: inttypes.m4 hasn't been available since gettext-0.15, and since we now require gettext >= 0.17 ... we... + Original commit message from CVS: + * m4/Makefile.am: + inttypes.m4 hasn't been available since gettext-0.15, and since we now + require gettext >= 0.17 ... we can remove it from the list of files to + dist. + +2008-12-13 08:06:33 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Add a generic handler for descriptive metadata so we can get some debug output and let users file... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_descriptive_metadata), + (gst_mxf_demux_handle_klv_packet): + Add a generic handler for descriptive metadata so we can get some + debug output and let users file bugs for unsupport descriptive + metadata schemes. + +2008-12-12 10:29:31 +0000 Sebastian Dröge + + gst/mxf/: Major update of the TODO lists. There's still much to do. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps): + * gst/mxf/mxfdemux.c: + * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps): + * gst/mxf/mxfjpeg2000.c: + * gst/mxf/mxfmpeg.c: + * gst/mxf/mxfup.c: + Major update of the TODO lists. There's still much to do. + +2008-12-11 14:35:08 +0000 Sebastian Dröge + + gst/mxf/: Implement parsing of Event Tracks, Static Tracks, DM Segments and DM Source Clips as a preparation for desc... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_handle_metadata_track), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_metadata): + * gst/mxf/mxfparse.c: (mxf_metadata_track_parse), + (mxf_metadata_structural_component_parse), + (mxf_metadata_structural_component_reset): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Implement parsing of Event Tracks, Static Tracks, DM Segments + and DM Source Clips as a preparation for descriptive metadata + support. Next step is to implement SMPTE S380M, "Descriptive + Metadata Scheme-1". + +2008-12-09 13:44:45 +0000 Sebastian Dröge + + gst/mxf/mxfjpeg2000.c: Implement detection of the colorspace used by the + Original commit message from CVS: + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + Implement detection of the colorspace used by the + JPEG2000 codestream. XYZ colorspace isn't supported by + our decoders yet unfortunately. + +2008-12-08 15:46:13 +0000 Sebastian Dröge + + gst/mxf/mxfparse.c: All frame layout values except 0 are for interlaced video, not only 1 and 2. + Original commit message from CVS: + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_picture_essence_descriptor_set_caps): + All frame layout values except 0 are for interlaced video, + not only 1 and 2. + +2008-12-08 15:28:58 +0000 Sebastian Dröge + + gst/mxf/: Remove the concept of "final" metadata, broken files have updated metadata in following partitions even if ... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_primer_pack), + (gst_mxf_demux_handle_metadata_preface), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_choose_package), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_parse_footer_metadata), + (gst_mxf_demux_handle_klv_packet): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxftypes.h: + Remove the concept of "final" metadata, broken files have updated + metadata in following partitions even if the current partition + is closed and complete. + If there's a second primer pack inside a partition ignore the second + one instead of throwing an error. + Store the type of a track (audio, video, timestamp, ...) inside the + track struct. + Post no-more-pads only once for a stream and not a second time + when switching the currently playing package. + When updating all streams make sure that we could select and find + a package instead of dereferencing NULL. + Allow descriptive metadata inside metadata parts of a file when + pulling the footer metadata too. + Only switch the currently playing package if a new one was chosen + and the metadata is in a resolved state. If the latter isn't true + postpone the switch until the metadata is resolved. + Pull the footer metadata directly after parsing the header partition + pack if it's not closed or not complete instead of waiting until + the next KLV packet. + +2008-12-08 13:48:46 +0000 Sebastian Dröge + + gst/mxf/mxfup.c: Don't create a subbuffer, instead just change the buffer metadata of the input buffer. + Original commit message from CVS: + * gst/mxf/mxfup.c: (mxf_up_handle_essence_element): + Don't create a subbuffer, instead just change the buffer metadata + of the input buffer. + +2008-12-07 20:12:33 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Rename GstMXFPad to GstMXFDemuxPad to prevent name clashes with the GstMXFMuxPad in the muxer (la... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pad_finalize), + (gst_mxf_demux_pad_class_init), (gst_mxf_demux_pad_init), + (gst_mxf_demux_remove_pad), (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_combine_flows), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_generic_container_essence_element), + (gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop), + (gst_mxf_demux_src_query): + Rename GstMXFPad to GstMXFDemuxPad to prevent name clashes + with the GstMXFMuxPad in the muxer (later). + Pull the random index pack only directly after skipping the run + in and don't allocate an array for it if parsing it failed. + +2008-12-07 18:52:54 +0000 Sebastian Dröge + + gst/mxf/mxfd10.c: Use the mapping data for storing the channel count and the width instead of parsing caps for every ... + Original commit message from CVS: + * gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element), + (mxf_d10_create_caps): + Use the mapping data for storing the channel count and the + width instead of parsing caps for every buffer. + +2008-12-07 18:39:41 +0000 Sebastian Dröge + + gst/mxf/mxfup.c: Handle the image start and end offsets, otherwise we output too large image buffers. + Original commit message from CVS: + * gst/mxf/mxfup.c: (mxf_up_handle_essence_element), + (mxf_up_rgba_create_caps): + Handle the image start and end offsets, otherwise we output + too large image buffers. + +2008-12-07 17:57:13 +0000 Sebastian Dröge + + gst/mxf/mxfmpeg.c: Set codec name tags for the MPEG audio essence. + Original commit message from CVS: + * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps): + Set codec name tags for the MPEG audio essence. + +2008-12-07 17:16:29 +0000 Sebastian Dröge + + gst/mxf/: Add initial support for uncompressed video essence (SMPTE S384M). + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams): + * gst/mxf/mxftypes.h: + * gst/mxf/mxfup.c: (mxf_is_up_essence_track), + (mxf_up_handle_essence_element), (mxf_up_rgba_create_caps), + (mxf_up_create_caps): + * gst/mxf/mxfup.h: + Add initial support for uncompressed video essence (SMPTE S384M). + * gst/mxf/mxfparse.c: + (mxf_metadata_rgba_picture_essence_descriptor_handle_tag), + (mxf_metadata_rgba_picture_essence_descriptor_reset): + Fix parsing of the RGBA descriptor and add support for parsing + the pixel layout. + +2008-12-06 20:46:46 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: The previous partition field of the partition is relative to the current partition and not to the... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_parse_footer_metadata): + The previous partition field of the partition is relative + to the current partition and not to the offset of the header + partition. + +2008-12-06 19:46:05 +0000 Sebastian Dröge + + gst/mxf/mxfd10.c: Document decoding of the AES3 data and also skip the 32 bit header in the beginning of every buffer... + Original commit message from CVS: + * gst/mxf/mxfd10.c: (mxf_d10_sound_handle_essence_element): + Document decoding of the AES3 data and also skip the 32 bit + header in the beginning of every buffer, otherwise we get + one broken audio channel. + +2008-12-05 12:26:02 +0000 Sebastian Dröge + + gst/mxf/: Implement parsing of the generic data essence descriptor. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_metadata_generic_data_essence_descriptor), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_metadata): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_data_essence_descriptor_handle_tag), + (mxf_metadata_generic_data_essence_descriptor_reset): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Implement parsing of the generic data essence descriptor. + +2008-12-05 10:32:55 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Generalize some lines of codes that are more or less the same by a macro. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_resolve_references): + Generalize some lines of codes that are more or less the same + by a macro. + +2008-12-04 20:11:17 +0000 Sebastian Dröge + + configure.ac: Apparently AC_CONFIG_MACRO_DIR breaks when using more than one macro directory, reverting last change. + Original commit message from CVS: + * configure.ac: + Apparently AC_CONFIG_MACRO_DIR breaks when using more + than one macro directory, reverting last change. + +2008-12-04 19:50:10 +0000 Sebastian Dröge + + configure.ac: Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to our M4 macros. + Original commit message from CVS: + * configure.ac: + Set AC_CONFIG_MACRO_DIR to common/m4 to point autoconf to + our M4 macros. + +2008-12-04 17:51:37 +0000 Michael Smith + + gst/selector/gstinputselector.c: Ensure we emit notify::active-pad when auto-selecting a pad due to it having activit... + Original commit message from CVS: + * gst/selector/gstinputselector.c: + Ensure we emit notify::active-pad when auto-selecting a pad + due to it having activity and us not having an existing active + pad. Fixes #563147 + +2008-12-04 13:28:45 +0000 Sebastian Dröge + + gst/mxf/: Coding style fixes. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_resolve_references): + * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps): + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + Coding style fixes. + * gst/mxf/mxfmpeg.c: (mxf_mpeg_audio_handle_essence_element), + (mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps): + Add support for MPEG, AC3, DTS audio. + +2008-12-04 09:26:25 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Ignore zero sized essence elements. They're often inserted to fulfill the streaming requirements. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_generic_container_essence_element): + Ignore zero sized essence elements. They're often inserted + to fulfill the streaming requirements. + +2008-12-04 08:50:48 +0000 Sebastian Dröge + + gst/mxf/mxfparse.c: Fix setting of the height/width and PAR of video streams. + Original commit message from CVS: + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_picture_essence_descriptor_set_caps): + Fix setting of the height/width and PAR of video streams. + +2008-12-04 08:37:18 +0000 Sebastian Dröge + + gst/mxf/: Add support for SMPTE D10 essence (SMPTE 386M). + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfd10.c: (mxf_is_d10_essence_track), + (mxf_d10_picture_handle_essence_element), + (mxf_d10_sound_handle_essence_element), (mxf_d10_create_caps): + * gst/mxf/mxfd10.h: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams): + Add support for SMPTE D10 essence (SMPTE 386M). + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_picture_essence_descriptor_set_caps): + Don't set width/height and PAR on the caps as those values are + wrong for most files (height is sometimes the height of a field + and aspect ratio is some random value). + * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps), + (mxf_aes3_create_caps): + Fix calculation of block align if it isn't set in the descriptor. + +2008-12-03 16:08:28 +0000 Sebastian Dröge + + gst/mxf/: Add support for AES3 audio (SMPTE 382M). + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_aes3_audio_essence_descriptor_handle_tag), + (mxf_metadata_aes3_audio_essence_descriptor_reset), + (mxf_aes3_handle_essence_element), (mxf_bwf_create_caps), + (mxf_aes3_create_caps), (mxf_aes_bwf_create_caps): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_metadata_aes3_audio_essence_descriptor), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_metadata): + * gst/mxf/mxfdemux.h: + Add support for AES3 audio (SMPTE 382M). + * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps): + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + Fix coding style. + +2008-12-03 13:17:41 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Improve debugging a bit. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_generic_container_essence_element): + Improve debugging a bit. + +2008-12-03 11:43:00 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: Check if strings are valid UTF8 before using them. + Original commit message from CVS: + * gst/flv/gstflvparse.c: (FLV_GET_STRING): + Check if strings are valid UTF8 before using them. + +2008-12-03 10:15:27 +0000 Sebastian Dröge + + gst/mxf/mxfparse.c: Remove FIXME, zero-ULs and UMIDs are really invalid and we can use them as "unset" value. + Original commit message from CVS: + * gst/mxf/mxfparse.c: + Remove FIXME, zero-ULs and UMIDs are really invalid and we can + use them as "unset" value. + +2008-12-03 08:04:38 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Use a single "track_%u" src pad template and use the track ID of the playback package for the pad... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_base_init): + Use a single "track_%u" src pad template and use the track ID + of the playback package for the pad name instead of the track ID + of the source package, as the latter could be the same for + more than one track if they're in different packages. + +2008-12-02 06:21:21 +0000 David Schleef + + ext/jp2k/gstjasperenc.c: Some compilers complain about uninitialized variable; add a g_assert_not_reached() + Original commit message from CVS: + * ext/jp2k/gstjasperenc.c: Some compilers complain about + uninitialized variable; add a g_assert_not_reached() + +2008-12-01 19:36:35 +0000 이문형 + + gst-libs/gst/app/gstappsrc.c: Don't forget to release the lock again if we bail out because some pad is flushing or w... + Original commit message from CVS: + Patch by: 이문형 + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_push_buffer): + Don't forget to release the lock again if we bail out because some + pad is flushing or we've reached EOS, otherwise things will lock up + next time _push_buffer() is called (#562802). + +2008-12-01 16:37:45 +0000 Mark Nauwelaerts + + gst/qtmux/atoms.c: Fix mj2 sample description metadata construction. + Original commit message from CVS: + * gst/qtmux/atoms.c: (build_jp2h_extension): + Fix mj2 sample description metadata construction. + +2008-12-01 15:50:40 +0000 Sebastian Dröge + + gst/mxf/mxfjpeg2000.c: Use new image/x-jpc caps for the raw JPEG2000 codestream. + Original commit message from CVS: + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + Use new image/x-jpc caps for the raw JPEG2000 codestream. + For now assume sRGB as colorspace, has to be read from the descriptor + somehow later. + +2008-12-01 15:48:13 +0000 Sebastian Dröge + + ext/jp2k/: Add image/x-jpc caps name for real, raw JPEG2000 codestream data. + Original commit message from CVS: + * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps): + * ext/jp2k/gstjasperenc.c: (gst_jasper_enc_reset), + (gst_jasper_enc_set_src_caps), (gst_jasper_enc_init_encoder), + (gst_jasper_enc_sink_setcaps), (gst_jasper_enc_get_data): + * ext/jp2k/gstjasperenc.h: + Add image/x-jpc caps name for real, raw JPEG2000 codestream data. + In 0.11 we should merge image/x-j2c and image/x-jpc and simply drop + the non-standard boxing in the jasper elements and handle it in + qtmux/qtdemux. + image/x-jpc will be used by mxfdemux later. + Also add support for JP2 output in jp2kenc. + +2008-12-01 15:24:37 +0000 Sebastian Dröge + + gst/mxf/: Add the codec name, and if possible the avg bitrate, to the pad's taglist. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps): + * gst/mxf/mxfalaw.c: (mxf_alaw_create_caps): + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_generic_container_essence_element): + * gst/mxf/mxfdv-dif.c: (mxf_dv_dif_create_caps): + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + * gst/mxf/mxfmpeg.c: (mxf_mpeg_es_create_caps), + (mxf_mpeg_create_caps): + Add the codec name, and if possible the avg bitrate, to the pad's taglist. + +2008-12-01 14:25:19 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: If the preface references a primary package use this as the default playback package unless one w... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_choose_package): + If the preface references a primary package use this as the default + playback package unless one was specified by the "package" property. + If there's no preface primary package still try to use the first + material package. + +2008-11-30 17:58:32 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: If there's no descriptor for the track in the track's source package and there's a single descrip... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_resolve_references): + If there's no descriptor for the track in the track's source + package and there's a single descriptor without a linked track + assume that it belongs to this track. + +2008-11-30 17:42:30 +0000 Sebastian Dröge + + gst/mxf/: Some random cleanup. + Original commit message from CVS: + * gst/mxf/mxfalaw.c: (mxf_is_alaw_essence_track): + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams): + * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_essence_track): + * gst/mxf/mxfjpeg2000.h: + * gst/mxf/mxfmpeg.c: (mxf_is_mpeg_essence_track), + (mxf_mpeg_es_create_caps), (mxf_mpeg_create_caps): + * gst/mxf/mxfmpeg.h: + Some random cleanup. + +2008-11-30 17:26:55 +0000 Sebastian Dröge + + gst/mxf/: Add property to select the top-level source package or material package that should be used for playback. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_remove_pads), + (gst_mxf_demux_reset), (gst_mxf_demux_find_package), + (gst_mxf_demux_choose_package), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_set_property), + (gst_mxf_demux_get_property), (gst_mxf_demux_finalize), + (gst_mxf_demux_class_init): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: (mxf_umid_from_string): + * gst/mxf/mxfparse.h: + Add property to select the top-level source package or material + package that should be used for playback. + +2008-11-30 16:21:42 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Make sure that demux->offset has the correct value before calling any gst_mxf_demux_handle_* func... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack): + Make sure that demux->offset has the correct value before + calling any gst_mxf_demux_handle_* functions. + +2008-11-30 14:12:04 +0000 Sebastian Dröge + + gst/mxf/: Set the correct MPEG video version if possible and add support for MPEG4 video, including codec_data. + Original commit message from CVS: + * gst/mxf/mxfjpeg2000.c: (mxf_jpeg2000_create_caps): + * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps): + Set the correct MPEG video version if possible and add support + for MPEG4 video, including codec_data. + +2008-11-29 20:25:06 +0000 Sebastian Dröge + + gst/mxf/: Add initial support for JPEG2000 encoded video essence. + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams): + * gst/mxf/mxfjpeg2000.c: (mxf_is_jpeg2000_video_essence_track), + (mxf_jpeg2000_handle_essence_element), (mxf_jpeg2000_create_caps): + * gst/mxf/mxfjpeg2000.h: + Add initial support for JPEG2000 encoded video essence. + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_picture_essence_descriptor_set_caps): + Set the framerate in the video caps. + +2008-11-29 20:07:11 +0000 Sebastian Dröge + + ext/jp2k/gstjasperdec.c: Don't unref the element instance if we don't own a reference. + Original commit message from CVS: + * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_sink_setcaps): + Don't unref the element instance if we don't own a reference. + +2008-11-29 13:33:30 +0000 Sebastian Dröge + + Require gettext 0.17 because older versions don't mix with libtool 2.2. At build time an older gettext version will s... + Original commit message from CVS: + Patch by: Cygwin Ports maintainer + + * autogen.sh: + * configure.ac: + Require gettext 0.17 because older versions don't mix with libtool + 2.2. At build time an older gettext version will still work. + Fixes bug #556091. + +2008-11-28 18:55:01 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Only try to pull the random index pack at the end of file one time and not for every single packe... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_random_index_pack): + Only try to pull the random index pack at the end of file one time + and not for every single packet if it fails. + +2008-11-28 18:13:30 +0000 Sebastian Dröge + + gst/mxf/: Add support for A-Law encoded audio essence (SMPTE 388M and 382M). + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfaes-bwf.c: (mxf_bwf_create_caps): + * gst/mxf/mxfalaw.c: (mxf_is_alaw_audio_essence_track), + (mxf_alaw_handle_essence_element), (mxf_alaw_create_caps): + * gst/mxf/mxfalaw.h: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams): + Add support for A-Law encoded audio essence (SMPTE 388M and 382M). + +2008-11-28 14:22:50 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file with latest changes + Original commit message from CVS: + update spec file with latest changes + +2008-11-28 11:24:24 +0000 Sebastian Dröge + + gst/mxf/: Implement parsing of index table segments, which will later be used for seeking. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset), + (gst_mxf_demux_handle_index_table_segment): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: (mxf_index_table_segment_parse), + (mxf_index_table_segment_reset): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Implement parsing of index table segments, which will later be + used for seeking. + +2008-11-28 09:49:56 +0000 Sebastian Dröge + + Update audioresample documentation for the new element name. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mplex.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst/audioresample/gstaudioresample.c: + Update audioresample documentation for the new element name. + +2008-11-28 08:37:32 +0000 Sebastian Dröge + + gst/audioresample/gstaudioresample.c: And now also update the debug category from audioresample to legacyresample. + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + And now also update the debug category from audioresample + to legacyresample. + +2008-11-27 19:27:04 +0000 Sebastian Dröge + + configure.ac: Remove speexresample from the build system too. + Original commit message from CVS: + * configure.ac: + Remove speexresample from the build system too. + +2008-11-27 19:22:42 +0000 Sebastian Dröge + + Remove old speexresample files. + Original commit message from CVS: + * gst/speexresample/Makefile.am: + * gst/speexresample/README: + * gst/speexresample/arch.h: + * gst/speexresample/fixed_arm4.h: + * gst/speexresample/fixed_arm5e.h: + * gst/speexresample/fixed_bfin.h: + * gst/speexresample/fixed_debug.h: + * gst/speexresample/fixed_generic.h: + * gst/speexresample/gstspeexresample.c: + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/resample.c: + * gst/speexresample/resample_sse.h: + * gst/speexresample/speex_resampler.h: + * gst/speexresample/speex_resampler_double.c: + * gst/speexresample/speex_resampler_float.c: + * gst/speexresample/speex_resampler_int.c: + * gst/speexresample/speex_resampler_wrapper.h: + * tests/check/elements/speexresample.c: + Remove old speexresample files. + +2008-11-27 17:07:43 +0000 Sebastian Dröge + + docs/plugins/inspect/plugin-speexresample.xml: Remove old file. + Original commit message from CVS: + * docs/plugins/inspect/plugin-speexresample.xml: + Remove old file. + +2008-11-27 17:06:43 +0000 Sebastian Dröge + + docs/plugins/inspect/plugin-legacyresample.xml: Add missing file. + Original commit message from CVS: + * docs/plugins/inspect/plugin-legacyresample.xml: + Add missing file. + +2008-11-27 16:58:31 +0000 Sebastian Dröge + + Integrate the moved audioresample into the build system and rename it to legacyresample. Fixes bug #558124. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-twolame.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst/audioresample/gstaudioresample.c: (plugin_init): + * gst/audioresample/Makefile.am: + * tests/check/Makefile.am: + * tests/check/elements/audioresample.c: (setup_audioresample), + (GST_START_TEST): + Integrate the moved audioresample into the build system and + rename it to legacyresample. Fixes bug #558124. + +2008-11-27 16:26:39 +0000 Sebastian Dröge + + gst/mxf/: Implement parsing of the random index pack, which provides a seek table (including body sid) to the start o... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset), + (gst_mxf_demux_handle_random_index_pack), + (gst_mxf_demux_pull_random_index_pack), (gst_mxf_demux_loop): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: (mxf_random_index_pack_parse): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Implement parsing of the random index pack, which provides a seek + table (including body sid) to the start of partition packs. + Later this will be used for reading all index table segments of + the complete file efficiently. + +2008-11-27 10:09:53 +0000 Sebastian Dröge + + gst/mxf/: Add fundamental support for DV-DIF essence streams. + Original commit message from CVS: + * gst/mxf/Makefile.am: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_klv_packet): + * gst/mxf/mxfdv-dif.c: (mxf_is_dv_dif_essence_track), + (mxf_dv_dif_handle_essence_element), (mxf_dv_dif_create_caps): + * gst/mxf/mxfdv-dif.h: + * gst/mxf/mxfparse.c: (mxf_is_descriptive_metadata): + * gst/mxf/mxfparse.h: + Add fundamental support for DV-DIF essence streams. + Handle descriptive metadata packets as metadata packets. + +2008-11-27 08:49:08 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.*: Only try to pull the footer metadata once and not on every KLV packet if it failed before. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset), + (gst_mxf_demux_handle_klv_packet): + * gst/mxf/mxfdemux.h: + Only try to pull the footer metadata once and not on every KLV packet + if it failed before. + +2008-11-26 12:40:18 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: Make obtain_source return an aditional ref so that we don't lose our ref to it when a se... + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (obtain_source), + (rtp_session_create_source), (rtp_session_process_rtp), + (rtp_session_process_sr), (rtp_session_process_rr), + (rtp_session_process_sdes), (rtp_session_process_bye): + Make obtain_source return an aditional ref so that we don't lose our ref + to it when a session cleanup occurs when we are emiting a signal. + Emit the on_new_ssrc signal for the CSRC, not the SSRC. + Fixes #562319. + +2008-11-26 12:02:21 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Reset the sync parameters when clearing the payload type map too. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_reset_sync), + (gst_rtp_bin_clear_pt_map): + Reset the sync parameters when clearing the payload type map too. + Fixes #562312. + +2008-11-26 11:44:37 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Remove a lot of per stream state that is not needed and pass new info in the method call. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (get_client), + (gst_rtp_bin_reset_sync), (gst_rtp_bin_associate), + (gst_rtp_bin_handle_sync), (create_stream), + (gst_rtp_bin_class_init), (new_ssrc_pad_found): + * gst/rtpmanager/gstrtpbin.h: + Remove a lot of per stream state that is not needed and pass new info in + the method call. + Add signal to reset sync parameters. + Avoid parsing the caps to get a clock_base, we get this from the sync + signal now. + +2008-11-26 11:30:28 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Properly combine flow returns of the source pads. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_pad_init), + (gst_mxf_demux_reset_metadata), (gst_mxf_demux_combine_flows), + (gst_mxf_demux_handle_generic_container_essence_element): + Properly combine flow returns of the source pads. + Improve debugging and reset pad fields together with the + metadata to prevent invalid memory references. + * gst/mxf/mxfparse.c: (mxf_metadata_preface_parse): + Fix typo. + +2008-11-26 10:37:34 +0000 Sebastian Dröge + + gst/mxf/: When memset'ing the descriptors to zeroes only touch the part of this descriptor, not it's parent type. + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_reset): + * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_reset): + * gst/mxf/mxfparse.c: (mxf_metadata_file_descriptor_handle_tag), + (mxf_metadata_file_descriptor_reset), + (mxf_metadata_generic_sound_essence_descriptor_reset), + (mxf_metadata_generic_picture_essence_descriptor_reset), + (mxf_metadata_cdci_picture_essence_descriptor_reset), + (mxf_metadata_rgba_picture_essence_descriptor_reset), + (mxf_metadata_multiple_descriptor_reset): + * gst/mxf/mxfparse.h: + When memset'ing the descriptors to zeroes only touch the part + of this descriptor, not it's parent type. + Set correct default values for all metadata fields. + +2008-11-26 04:57:22 +0000 David Schleef + + gst/mpegdemux/gstmpegtsdemux.*: Enable latency code, since we're definitely after 0.10.12 + Original commit message from CVS: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + Enable latency code, since we're definitely after 0.10.12 + +2008-11-25 18:28:18 +0000 Jonathan Matthew + + ext/spc/gstspc.c: Post an error and push EOS when we can't start playback for some reason. also avoid a crash when fe... + Original commit message from CVS: + Patch by: Jonathan Matthew + * ext/spc/gstspc.c: (gst_spc_dec_sink_event), (spc_setup): + Post an error and push EOS when we can't start playback for some reason. + also avoid a crash when fed an empty file. Fixes #480543. + +2008-11-25 16:37:50 +0000 Sebastian Dröge + + tests/check/elements/speexresample.c: Make unit test again faster to prevent timeouts with valgrind. + Original commit message from CVS: + * tests/check/elements/speexresample.c: (test_pipeline): + Make unit test again faster to prevent timeouts with valgrind. + +2008-11-25 15:12:06 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Fix event leak. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtcp_src): + Fix event leak. + +2008-11-25 14:49:34 +0000 Sebastian Dröge + + gst/mxf/: Set video dimensions and pixel aspect ratio on the caps. + Original commit message from CVS: + * gst/mxf/mxfmpeg.c: (mxf_mpeg_video_create_caps): + * gst/mxf/mxfparse.c: + (mxf_metadata_generic_picture_essence_descriptor_set_caps): + * gst/mxf/mxfparse.h: + Set video dimensions and pixel aspect ratio on the caps. + +2008-11-25 10:26:11 +0000 Sebastian Dröge + + gst/mxf/: Add initial parsing of RGBA descriptors. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_handle_metadata_generic_descriptor), + (gst_mxf_demux_handle_metadata_file_descriptor), + (gst_mxf_demux_handle_metadata_multiple_descriptor), + (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_rgba_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_mpeg_video_descriptor), + (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor), + (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_metadata): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfparse.c: + (mxf_metadata_rgba_picture_essence_descriptor_handle_tag), + (mxf_metadata_rgba_picture_essence_descriptor_reset): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Add initial parsing of RGBA descriptors. + Don't initialize descriptor GArray with zeroes. + +2008-11-25 09:38:26 +0000 Sebastian Dröge + + gst/mxf/: Rewrite parsing of descriptors to go top-down instead of bottom-up which makes it possible to have the buff... + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_handle_tag): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_metadata_generic_descriptor), + (gst_mxf_demux_handle_metadata_file_descriptor), + (gst_mxf_demux_handle_metadata_multiple_descriptor), + (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_mpeg_video_descriptor), + (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor), + (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_metadata): + * gst/mxf/mxfmpeg.c: + (mxf_metadata_mpeg_video_descriptor_handle_tag): + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: (mxf_partition_pack_parse), + (mxf_primer_pack_parse), (mxf_metadata_preface_parse), + (mxf_metadata_identification_parse), + (mxf_metadata_content_storage_parse), + (mxf_metadata_essence_container_data_parse), + (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse), + (mxf_metadata_sequence_parse), + (mxf_metadata_structural_component_parse), + (mxf_metadata_descriptor_parse), + (mxf_metadata_generic_descriptor_handle_tag), + (mxf_metadata_generic_descriptor_reset), + (mxf_metadata_file_descriptor_handle_tag), + (mxf_metadata_generic_sound_essence_descriptor_handle_tag), + (mxf_metadata_generic_picture_essence_descriptor_handle_tag), + (mxf_metadata_cdci_picture_essence_descriptor_handle_tag), + (mxf_metadata_multiple_descriptor_handle_tag), + (mxf_metadata_locator_parse): + * gst/mxf/mxfparse.h: + Rewrite parsing of descriptors to go top-down instead of bottom-up + which makes it possible to have the buffer data non-writable. + Improve debugging a bit. + +2008-11-25 00:20:22 +0000 Michael Smith + + Add new directory for new acmmp3dec plugin + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + Add new directory for new acmmp3dec plugin + * sys/acmenc/Makefile.am: + * sys/acmenc/acmmp3dec.c: + Add new acmmp3dec plugin, which uses ACM for decoding mp3 on windows. + +2008-11-24 11:31:27 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Make sure to only output generic container essence elements for a track if the body SID of the su... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: + (gst_mxf_demux_handle_generic_container_essence_element): + Make sure to only output generic container essence elements + for a track if the body SID of the surrounding partition is + the same as the body SID of the track's source package. + +2008-11-24 11:17:19 +0000 Julien Moutte + + gst/flv/gstflvdemux.c: Fix non key unit seeking by always going to the previous keyframe. Mark the discont flag when ... + Original commit message from CVS: + 2008-11-24 Julien Moutte + * gst/flv/gstflvdemux.c: (gst_flv_demux_find_offset), + (gst_flv_demux_handle_seek_push), + (gst_flv_demux_handle_seek_pull): + Fix non key unit seeking by always going to the previous + keyframe. Mark + the discont flag when we've moved in the file. + * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): MP3 + streams + are parsed already, makes autoplugged pipelines shorter. + +2008-11-24 10:46:01 +0000 vanista + + gst/mpegtsmux/: Add initial support for muxing AC3/DTS/LPCM into MPEG TS. + Original commit message from CVS: + Patch by: vanista + * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream): + * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new): + Add initial support for muxing AC3/DTS/LPCM into MPEG TS. + Fixes bug #550613. + +2008-11-24 10:41:13 +0000 Sebastian Dröge + + gst/mxf/: Allow non-MXF KLV packets and just drop them instead of throwing an error and handle 9 byte product version... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet), + (gst_mxf_demux_handle_klv_packet), (gst_mxf_demux_chain): + * gst/mxf/mxfparse.c: (mxf_product_version_parse), + (mxf_metadata_identification_parse), + (mxf_metadata_content_storage_parse): + Allow non-MXF KLV packets and just drop them instead of throwing + an error and handle 9 byte product versions as written by Avid. + This doesn't add support for the non-standard Avid MXF files + but at least makes it possible to parse their header metadata. + Fix a copy&paste error in debug output. + +2008-11-23 17:50:08 +0000 Stefan Kost + + ext/jack/: Query port latencies for sink/src delays. + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosrc.c: + Query port latencies for sink/src delays. + * ext/jack/gstjackbin.c: + No printf please. + +2008-11-23 11:25:30 +0000 Sebastian Dröge + + gst/mxf/mxfdemux.c: Actually we support a length stored inside 8 bytes but it must be smaller than G_MAXUINT for GstB... + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_klv_packet), + (gst_mxf_demux_chain): + Actually we support a length stored inside 8 bytes but it must + be smaller than G_MAXUINT for GstBuffer. + +2008-11-23 11:16:36 +0000 Tal Shalif + + ext/resindvd/resindvdsrc.c: Fix format string. Fixes bug #561992. + Original commit message from CVS: + Patch by: Tal Shalif + * ext/resindvd/resindvdsrc.c: + (rsn_dvdsrc_prepare_streamsinfo_event): + Fix format string. Fixes bug #561992. + +2008-11-22 15:31:36 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: Add property to configure the RTCP MTU. + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_init), (rtp_session_set_property), + (rtp_session_get_property): + Add property to configure the RTCP MTU. + +2008-11-22 15:24:47 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: Add G_PARAM_STATIC_STRINGS. + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (copy_source), (rtp_session_create_sources), + (rtp_session_get_property): + Add G_PARAM_STATIC_STRINGS. + Add property to return a GValueArray of all known RTPSources in the + session. + * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), + (rtp_source_create_sdes), (rtp_source_set_property), + (rtp_source_get_property): + Remove properties to set the various SDES items, an application is never + supposed to change the RTPSource data. + Change the SDES getter properties to one SDES property that returns all + SDES items in a GstStructure. + +2008-11-22 15:02:15 +0000 Sebastian Dröge + + tests/check/elements/speexresample.c: Make the unit test a bit faster to prevent timeouts, especially with valgrind. + Original commit message from CVS: + * tests/check/elements/speexresample.c: (GST_START_TEST): + Make the unit test a bit faster to prevent timeouts, especially + with valgrind. + +2008-11-22 14:51:06 +0000 Sebastian Dröge + + gst/mxf/: Some more format string fixes and usage of guint instead of gint where negative values don't make sense. + Original commit message from CVS: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_push_src_event), + (gst_mxf_demux_handle_header_metadata_update_streams): + * gst/mxf/mxfparse.c: (gst_mxf_ul_hash), + (mxf_partition_pack_parse), (mxf_primer_pack_parse), + (mxf_metadata_preface_parse), (mxf_metadata_content_storage_parse), + (mxf_metadata_generic_package_parse), + (mxf_metadata_sequence_parse), + (mxf_metadata_generic_descriptor_parse), + (mxf_metadata_multiple_descriptor_parse): + Some more format string fixes and usage of guint instead of gint + where negative values don't make sense. + +2008-11-22 14:42:08 +0000 Sebastian Dröge + + gst/mxf/: Use guint instead of guint64 or gsize for all buffer sizes and use correct format strings for them. Only lo... + Original commit message from CVS: + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_parse): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfdemux.c: (gst_mxf_demux_pull_range), + (gst_mxf_demux_pull_klv_packet), + (gst_mxf_demux_parse_footer_metadata), + (gst_mxf_demux_handle_klv_packet), + (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_chain): + * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse): + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: (mxf_timestamp_parse), (mxf_fraction_parse), + (mxf_utf16_to_utf8), (mxf_product_version_parse), + (mxf_partition_pack_parse), (mxf_primer_pack_parse), + (mxf_local_tag_parse), (mxf_metadata_preface_parse), + (mxf_metadata_identification_parse), + (mxf_metadata_content_storage_parse), + (mxf_metadata_essence_container_data_parse), + (mxf_metadata_generic_package_parse), (mxf_metadata_track_parse), + (mxf_metadata_sequence_parse), + (mxf_metadata_structural_component_parse), + (mxf_metadata_generic_descriptor_parse), + (mxf_metadata_file_descriptor_parse), + (mxf_metadata_generic_sound_essence_descriptor_parse), + (mxf_metadata_generic_picture_essence_descriptor_parse), + (mxf_metadata_cdci_picture_essence_descriptor_parse), + (mxf_metadata_multiple_descriptor_parse), + (mxf_metadata_locator_parse): + * gst/mxf/mxfparse.h: + Use guint instead of guint64 or gsize for all buffer sizes and + use correct format strings for them. Only local tag set sizes + are still guint16 as they can't be larger. + Only allow KLV packets of sizes below 1<<32 as GStreamer only uses + guint for buffer sizes. The MXF standard allows packet sizes up + to 1<<64. + +2008-11-22 13:17:24 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Also unref the target pad for unknown pads. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad): + Also unref the target pad for unknown pads. + +2008-11-22 08:23:17 +0000 Sebastian Dröge + + gst/dccp/gstdccp.c: Use G_GSIZE_FORMAT instead of "%u" for a size_t variable in the format string to prevent a compil... + Original commit message from CVS: + * gst/dccp/gstdccp.c: (gst_dccp_socket_write): + Use G_GSIZE_FORMAT instead of "%u" for a size_t variable in + the format string to prevent a compiler warning. + +2008-11-21 16:17:22 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Release the right pads on rtpbin. Fixes #561752. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_release_pad): + Release the right pads on rtpbin. Fixes #561752. + +2008-11-21 15:45:15 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Add a "filter-length" property that maps to the quality values for compatibilty... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_class_init), (gst_speex_resample_set_property), + (gst_speex_resample_get_property): + Add a "filter-length" property that maps to the quality values + for compatibilty with audioresample. + +2008-11-21 10:37:13 +0000 Sebastian Dröge + + configure.ac: Remove the "experimental" flag from the deinterlace2 plugin. + Original commit message from CVS: + * configure.ac: + Remove the "experimental" flag from the deinterlace2 plugin. + +2008-11-21 10:27:15 +0000 Sebastian Dröge + + Add first version of an MXF demuxer. Currently it supports + Original commit message from CVS: + * configure.ac: + * gst/mxf/Makefile.am: + * gst/mxf/mxf.c: (plugin_init): + * gst/mxf/mxfaes-bwf.c: + (mxf_metadata_wave_audio_essence_descriptor_parse), + (mxf_metadata_wave_audio_essence_descriptor_reset), + (mxf_is_aes_bwf_essence_track), (mxf_bwf_handle_essence_element), + (mxf_bwf_create_caps), (mxf_aes_bwf_create_caps): + * gst/mxf/mxfaes-bwf.h: + * gst/mxf/mxfdemux.c: (gst_mxf_pad_finalize), + (gst_mxf_pad_class_init), (gst_mxf_pad_init), + (gst_mxf_demux_flush), (gst_mxf_demux_remove_pad), + (gst_mxf_demux_reset_mxf_state), (gst_mxf_demux_reset_metadata), + (gst_mxf_demux_reset), (gst_mxf_demux_pull_range), + (gst_mxf_demux_push_src_event), + (gst_mxf_demux_handle_partition_pack), + (gst_mxf_demux_handle_primer_pack), + (gst_mxf_demux_handle_metadata_preface), + (gst_mxf_demux_handle_metadata_identification), + (gst_mxf_demux_handle_metadata_content_storage), + (gst_mxf_demux_handle_metadata_essence_container_data), + (gst_mxf_demux_handle_metadata_material_package), + (gst_mxf_demux_handle_metadata_source_package), + (gst_mxf_demux_handle_metadata_track), + (gst_mxf_demux_handle_metadata_sequence), + (gst_mxf_demux_handle_metadata_structural_component), + (gst_mxf_demux_handle_metadata_generic_descriptor), + (gst_mxf_demux_handle_metadata_file_descriptor), + (gst_mxf_demux_handle_metadata_multiple_descriptor), + (gst_mxf_demux_handle_metadata_generic_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_cdci_picture_essence_descriptor), + (gst_mxf_demux_handle_metadata_mpeg_video_descriptor), + (gst_mxf_demux_handle_metadata_generic_sound_essence_descriptor), + (gst_mxf_demux_handle_metadata_wave_audio_essence_descriptor), + (gst_mxf_demux_handle_metadata_locator), + (gst_mxf_demux_handle_header_metadata_resolve_references), + (gst_mxf_demux_handle_header_metadata_update_streams), + (gst_mxf_demux_handle_metadata), + (gst_mxf_demux_handle_generic_container_system_item), + (gst_mxf_demux_handle_generic_container_essence_element), + (gst_mxf_demux_handle_random_index_pack), + (gst_mxf_demux_handle_index_table_segment), + (gst_mxf_demux_pull_klv_packet), + (gst_mxf_demux_parse_footer_metadata), + (gst_mxf_demux_handle_klv_packet), + (gst_mxf_demux_pull_and_handle_klv_packet), (gst_mxf_demux_loop), + (gst_mxf_demux_chain), (gst_mxf_demux_src_event), + (gst_mxf_demux_src_query_type), (gst_mxf_demux_src_query), + (gst_mxf_demux_sink_activate), (gst_mxf_demux_sink_activate_push), + (gst_mxf_demux_sink_activate_pull), (gst_mxf_demux_sink_event), + (gst_mxf_demux_change_state), (gst_mxf_demux_finalize), + (gst_mxf_demux_base_init), (gst_mxf_demux_class_init), + (gst_mxf_demux_init): + * gst/mxf/mxfdemux.h: + * gst/mxf/mxfmpeg.c: (mxf_metadata_mpeg_video_descriptor_parse), + (mxf_metadata_mpeg_video_descriptor_reset), + (mxf_is_mpeg_video_essence_track), + (mxf_mpeg_video_handle_essence_element), + (mxf_mpeg_video_create_caps): + * gst/mxf/mxfmpeg.h: + * gst/mxf/mxfparse.c: (mxf_is_mxf_packet), (mxf_is_partition_pack), + (mxf_is_header_partition_pack), (mxf_is_body_partition_pack), + (mxf_is_footer_partition_pack), (mxf_is_fill), + (mxf_is_primer_pack), (mxf_is_metadata), + (mxf_is_random_index_pack), (mxf_is_index_table_segment), + (mxf_is_generic_container_system_item), + (mxf_is_generic_container_essence_element), + (mxf_is_generic_container_essence_container_label), + (mxf_ul_is_equal), (mxf_ul_is_zero), (mxf_ul_to_string), + (mxf_umid_is_equal), (mxf_umid_is_zero), (mxf_umid_to_string), + (gst_mxf_ul_hash), (gst_mxf_ul_equal), (mxf_timestamp_parse), + (mxf_timestamp_is_unknown), (mxf_timestamp_compare), + (mxf_fraction_parse), (mxf_utf16_to_utf8), + (mxf_product_version_parse), (mxf_partition_pack_parse), + (mxf_partition_pack_reset), (_mxf_mapping_ul_free), + (mxf_primer_pack_parse), (mxf_primer_pack_reset), + (mxf_local_tag_parse), (gst_mxf_local_tag_free), + (gst_metadata_add_custom_tag), (mxf_metadata_preface_parse), + (mxf_metadata_preface_reset), (mxf_metadata_identification_parse), + (mxf_metadata_identification_reset), + (mxf_metadata_content_storage_parse), + (mxf_metadata_content_storage_reset), + (mxf_metadata_essence_container_data_parse), + (mxf_metadata_essence_container_data_reset), + (mxf_metadata_generic_package_parse), + (mxf_metadata_generic_package_reset), (mxf_metadata_track_parse), + (mxf_metadata_track_reset), (mxf_metadata_track_identifier_parse), + (mxf_metadata_sequence_parse), (mxf_metadata_sequence_reset), + (mxf_metadata_structural_component_parse), + (mxf_metadata_structural_component_reset), + (mxf_metadata_generic_descriptor_parse), + (mxf_metadata_generic_descriptor_reset), + (mxf_metadata_file_descriptor_parse), + (mxf_metadata_file_descriptor_reset), + (mxf_metadata_generic_sound_essence_descriptor_parse), + (mxf_metadata_generic_sound_essence_descriptor_reset), + (mxf_metadata_generic_picture_essence_descriptor_parse), + (mxf_metadata_generic_picture_essence_descriptor_reset), + (mxf_metadata_cdci_picture_essence_descriptor_parse), + (mxf_metadata_cdci_picture_essence_descriptor_reset), + (mxf_metadata_multiple_descriptor_parse), + (mxf_metadata_multiple_descriptor_reset), + (mxf_metadata_locator_parse), (mxf_metadata_locator_reset): + * gst/mxf/mxfparse.h: + * gst/mxf/mxftypes.h: + Add first version of an MXF demuxer. Currently it supports + MPEG video and raw audio and OP 1a/b/c. + +2008-11-21 00:47:37 +0000 Michael Smith + + sys/dshowdecwrapper/gstdshowaudiodec.cpp: Fix flushing/seeking problems returning error code. + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + Fix flushing/seeking problems returning error code. + Fix mp3 decoding with winXP (crashed randomly, occasionally). + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + Fix problems when framerate is missing from video. + +2008-11-20 18:41:34 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Pass the running time to the session when processing RTP packets. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (get_current_times), + (rtcp_thread), (gst_rtp_session_chain_recv_rtp): + Pass the running time to the session when processing RTP packets. + Improve the time function to provide more info. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_init), (update_arrival_stats), + (rtp_session_process_rtp), (rtp_session_process_sdes), + (rtp_session_process_rtcp), (session_start_rtcp), + (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Mark the internal source with a flag. + Use running_time instead of the more useless timestamp. + Validate a source when a valid SDES has been received. + Pass the current system time when processing SR packets. + * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), + (rtp_source_init), (rtp_source_create_stats), + (rtp_source_get_property), (rtp_source_send_rtp), + (rtp_source_process_rb), (rtp_source_get_new_rb), + (rtp_source_get_last_rb): + * gst/rtpmanager/rtpsource.h: + Add property to get source stats. + Mark params as STATIC_STRINGS. + Calculate the bitrate at the sender SSRC. + Avoid negative values in the round trip time calculations. + * gst/rtpmanager/rtpstats.h: + Update some docs and change some variable name to more closely reflect + what it contains. + +2008-11-20 16:01:27 +0000 Leandro Melo de Sales + + gst/dccp/: CodeStyle improvements and minor fixes to the DCCP plugin. + Original commit message from CVS: + patch by: Leandro Melo de Sales + * gst/dccp/gstdccp.c: + * gst/dccp/gstdccp.h: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsink.h: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversrc.c: + * gst/dccp/gstdccpserversrc.h: + CodeStyle improvements and minor fixes to the DCCP plugin. + Fixes #553823. + +2008-11-20 08:19:15 +0000 Sebastian Dröge + + gst/rtpmanager/gstrtpjitterbuffer.c: Initialize return value to fix compiler warning about uninitialized variable. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain_rtcp): + Initialize return value to fix compiler warning about uninitialized + variable. + +2008-11-19 16:48:38 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Mark signal arg as static scope. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init): + Mark signal arg as static scope. + +2008-11-19 09:06:29 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Remove internal sync pad, use signals instead to get lip-sync notifications. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), + (gst_rtp_bin_handle_sync), (create_stream), (free_stream), + (new_ssrc_pad_found): + Remove internal sync pad, use signals instead to get lip-sync + notifications. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_base_init), + (gst_rtp_jitter_buffer_class_init), + (gst_rtp_jitter_buffer_internal_links), (create_rtcp_sink), + (remove_rtcp_sink), (gst_rtp_jitter_buffer_request_new_pad), + (gst_rtp_jitter_buffer_release_pad), + (gst_rtp_jitter_buffer_sink_rtcp_event), + (gst_rtp_jitter_buffer_chain_rtcp), + (gst_rtp_jitter_buffer_get_property): + * gst/rtpmanager/gstrtpjitterbuffer.h: + Make it possible to send SR packets to the jitterbuffer. + Check if the SR timestamps are valid by comparing them to the RTP + timestamps. + Signal the SR packet and the timing information to listeners. + * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc), + (gst_rtp_ssrc_demux_rtcp_chain), (gst_rtp_ssrc_demux_src_query): + Remove some unused code. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew), (rtp_jitter_buffer_get_sync): + * gst/rtpmanager/rtpjitterbuffer.h: + Keep track of the last seen RTP timestamp so that we can filter out + invalid SR packets. + +2008-11-18 16:52:11 +0000 Alessandro Decina + + ext/metadata/gstbasemetadata.c: Avoid deadlock during pad activation. + Original commit message from CVS: + * ext/metadata/gstbasemetadata.c: + Avoid deadlock during pad activation. + Fixes #561241. + +2008-11-18 01:09:09 +0000 David Schleef + + gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently added. + Original commit message from CVS: + * gst/qtmux/gstqtmux.c: Quiet a debugging message that I recently + added. + +2008-11-17 19:47:32 +0000 Sebastian Dröge + + gst/rtpmanager/rtpsource.c: Fix GST_DEBUG call to only have as many arguments as required by the format string. Fixes... + Original commit message from CVS: + * gst/rtpmanager/rtpsource.c: (get_clock_rate): + Fix GST_DEBUG call to only have as many arguments as required + by the format string. Fixes a compiler warning. + +2008-11-17 15:17:52 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Do not try to keep track of the clock-rate ourselves but simply get the value from the ji... + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), + (gst_rtp_bin_sync_chain), (create_stream), (new_ssrc_pad_found): + Do not try to keep track of the clock-rate ourselves but simply get the + value from the jitterbuffer. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_get_sync): + * gst/rtpmanager/gstrtpjitterbuffer.h: + Add some debug info. + Pass the clock-rate to the jitterbuffer. + Also pass the clock-rate along with the rtp timestamp when getting the + sync parameters. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): + Fix some debug. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew), (rtp_jitter_buffer_get_sync): + * gst/rtpmanager/rtpjitterbuffer.h: + Keep track of clock-rate changes and return the clock-rate together with + the rtp timestamps used for sync. + Don't try to construct timestamps when we have no base_time. + * gst/rtpmanager/rtpsource.c: (get_clock_rate): + Request a new clock-rate when the payload type changes. + Reset the jitter calculation when the clock-rate changes. + +2008-11-17 09:33:50 +0000 Stefan Kost + + tests/check/elements/: Add missing files. + Original commit message from CVS: + * tests/check/elements/aacparse_data.h: + * tests/check/elements/amrparse_data.h: + Add missing files. + +2008-11-15 02:56:31 +0000 David Schleef + + gst/qtmux/gstqtmux.*: Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part. + Original commit message from CVS: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + Use dts from GST_BUFFER_OFFSET_END() for video/x-qt-part. + +2008-11-14 23:01:56 +0000 David Schleef + + sys/qtwrapper/codecmapping.c: Add some of our favorite codecs. + Original commit message from CVS: + * sys/qtwrapper/codecmapping.c: Add some of our favorite codecs. + +2008-11-14 21:44:32 +0000 Jan Schmidt + + gst/audioresample/gstaudioresample.c: Guard against a NULL dereference I somehow encountered - with a FLUSH_STOP arri... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + Guard against a NULL dereference I somehow encountered - + with a FLUSH_STOP arriving either before basetransform _start(), + or after _stop(). + * gst/typefind/gsttypefindfunctions.c: + Make sure we never jump backwards when typefinding corrupt mov files. + +2008-11-14 21:24:51 +0000 Mark Nauwelaerts + + gst/qtmux/: Revert previous commit. + Original commit message from CVS: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/qtmux/properties.c: + * gst/qtmux/properties.h: + Revert previous commit. + +2008-11-14 20:38:18 +0000 Mark Nauwelaerts + + gst/qtmux/: Dual license LGPL/MIT, as apparently supposed to. + Original commit message from CVS: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/qtmux/properties.c: + * gst/qtmux/properties.h: + Dual license LGPL/MIT, as apparently supposed to. + +2008-11-14 20:17:10 +0000 Mark Nauwelaerts + + gst/qtmux/: Cut detour in sample description extension construction. + Original commit message from CVS: + * gst/qtmux/atoms.c: (build_esds_extension), + (build_mov_aac_extension), (build_jp2h_extension), + (build_codec_data_extension): + * gst/qtmux/atoms.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/gstqtmux.c: (gst_qt_mux_audio_sink_set_caps), + (gst_qt_mux_video_sink_set_caps): + * gst/qtmux/gstqtmuxmap.c: (gst_qt_mux_map_format_to_header): + Cut detour in sample description extension construction. + Also actually implement ISO JPEG2000 mj2 format. + +2008-11-14 19:52:24 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.c: Construct source caps in more conventional (and correct) manner. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps): + Construct source caps in more conventional (and correct) manner. + +2008-11-14 16:15:43 +0000 Christian Schaller + + * ChangeLog: + * configure.ac: + * gst-plugins-bad.spec.in: + no more egging the pudding + Original commit message from CVS: + no more egging the pudding + +2008-11-14 14:23:02 +0000 Stefan Kost + + gst-libs/gst/play/: Remove cruft. This is not entered by make and its not even compilable. + Original commit message from CVS: + * gst-libs/gst/play/.cvsignore: + * gst-libs/gst/play/play.h: + * gst-libs/gst/play/play.vcproj: + Remove cruft. This is not entered by make and its not even compilable. + +2008-11-13 22:30:54 +0000 David Schleef + + ext/dirac/gstdiracenc.cc: Set pixel-aspect-ratio correctly in the encoder API, as well as some default gstreamerish c... + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: + Set pixel-aspect-ratio correctly in the encoder API, as well + as some default gstreamerish colorspace properties. Also, + apparently, change a bunch of indentation. + +2008-11-13 21:44:15 +0000 Mark Nauwelaerts + + ext/jp2k/: Add jp2kenc to jp2k plugin. + Original commit message from CVS: + * ext/jp2k/Makefile.am: + * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_class_init), + (gst_jasper_dec_change_state): + * ext/jp2k/gstjasperenc.c: (gst_jasper_enc_base_init), + (gst_jasper_enc_class_init), (gst_jasper_enc_init), + (gst_jasper_enc_reset), (gst_jasper_enc_set_src_caps), + (gst_jasper_enc_init_encoder), (gst_jasper_enc_sink_setcaps), + (gst_jasper_enc_get_data), (gst_jasper_enc_chain), + (gst_jasper_enc_set_property), (gst_jasper_enc_get_property), + (gst_jasper_enc_change_state): + * ext/jp2k/gstjasperenc.h: + * ext/jp2k/gstjp2k.c: (plugin_init): + Add jp2kenc to jp2k plugin. + +2008-11-13 21:31:14 +0000 Mark Nauwelaerts + + ext/jp2k/gstjasperdec.*: Make pad template caps reflect the supported formats. + Original commit message from CVS: + * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_init), + (gst_jasper_dec_reset), (gst_jasper_dec_negotiate), + (gst_jasper_dec_get_picture): + * ext/jp2k/gstjasperdec.h: + Make pad template caps reflect the supported formats. + Add or modify some debug statements, and slightly simplify image + passing to encoding library. + +2008-11-13 17:24:58 +0000 Wim Taymans + + gst/aacparse/gstaacparse.c: Don't autoplug aacparse until it works. + Original commit message from CVS: + * gst/aacparse/gstaacparse.c: (plugin_init): + Don't autoplug aacparse until it works. + +2008-11-13 15:48:54 +0000 Wim Taymans + + gst/rtpmanager/: Small cleanups and some more debug info. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps), + (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain): + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew): + Small cleanups and some more debug info. + +2008-11-13 15:20:15 +0000 Stefan Kost + + tests/check/: Add unit tests for new parsers. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/aacparse.c: + * tests/check/elements/amrparse.c: + Add unit tests for new parsers. + +2008-11-13 14:31:45 +0000 Stefan Kost + + docs/plugins/: Update docs. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-aacparse.xml: + * docs/plugins/inspect/plugin-amrparse.xml: + Update docs. + +2008-11-13 14:21:39 +0000 Stefan Kost + + gst/: Fix baseparse type name. + Original commit message from CVS: + * gst/aacparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.c: + Fix baseparse type name. + +2008-11-13 12:59:34 +0000 Stefan Kost + + Add two new baseparse based parsers (aac and amr) from Bug #518857. + Original commit message from CVS: + * configure.ac: + * gst/aacparse/Makefile.am: + * gst/aacparse/gstaacparse.c: + * gst/aacparse/gstaacparse.h: + * gst/aacparse/gstbaseparse.c: + * gst/aacparse/gstbaseparse.h: + * gst/amrparse/Makefile.am: + * gst/amrparse/gstamrparse.c: + * gst/amrparse/gstamrparse.h: + * gst/amrparse/gstbaseparse.c: + * gst/amrparse/gstbaseparse.h: + Add two new baseparse based parsers (aac and amr) from Bug #518857. + +2008-11-12 10:32:24 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.c: Fix uninitialized warnings + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + Fix uninitialized warnings + +2008-11-11 19:31:35 +0000 Mark Nauwelaerts + + tests/check/: Add unit test for qtmux. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/qtmux.c: (setup_src_pad), + (teardown_src_pad), (setup_qtmux), (cleanup_qtmux), + (check_qtmux_pad), (GST_START_TEST), (qtmux_suite), (main): + Add unit test for qtmux. + +2008-11-11 19:24:12 +0000 Mark Nauwelaerts + + gst/qtmux/gstqtmux.c: Add some more safety/sanity checks in tag manipulation. + Original commit message from CVS: + * gst/qtmux/gstqtmux.c: (gst_qt_mux_add_metadata_tags): + Add some more safety/sanity checks in tag manipulation. + +2008-11-10 15:26:40 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Also configure the next expected output seqnum when we get a seqnum-base on the ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain): + Also configure the next expected output seqnum when we get a seqnum-base + on the caps. + +2008-11-10 14:53:45 +0000 Edward Hervey + + gst/: Wim, you're a bad boy. You don't want people to contact you or what? + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsrc.c: + * gst/h264parse/gsth264parse.c: + Wim, you're a bad boy. You don't want people to contact you or what? + +2008-11-10 14:01:42 +0000 Thomas Vander Stichele + + gst/filter/gstiir.c: Fix name tag. + Original commit message from CVS: + * gst/filter/gstiir.c: + Fix name tag. + +2008-11-08 02:00:58 +0000 Thiago Sousa Santos + + Copy qtmux from revision 148 of the gst-qtmux repository. + Original commit message from CVS: + patch by: Thiago Sousa Santos + * configure.ac: + * gst/qtmux/Makefile.am: + * gst/qtmux/atoms.c: + * gst/qtmux/atoms.h: + * gst/qtmux/descriptors.c: + * gst/qtmux/descriptors.h: + * gst/qtmux/fourcc.h: + * gst/qtmux/ftypcc.h: + * gst/qtmux/gstqtmux.c: + * gst/qtmux/gstqtmux.h: + * gst/qtmux/gstqtmuxmap.c: + * gst/qtmux/gstqtmuxmap.h: + * gst/qtmux/properties.c: + * gst/qtmux/properties.h: + Copy qtmux from revision 148 of the gst-qtmux repository. + Fixes #550280. + +2008-11-07 17:35:46 +0000 Wim Taymans + + gst-libs/gst/app/gstappsrc.*: Add is-live property. + Original commit message from CVS: + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_init), (gst_app_src_set_property), + (gst_app_src_get_property), (gst_app_src_push_buffer): + * gst-libs/gst/app/gstappsrc.h: + Add is-live property. + Add some more docs. + +2008-11-06 22:54:39 +0000 Thijs Vermeir + + Fix basic navigation events + Original commit message from CVS: + * configure.ac: + * gst/librfb/Makefile.am: + * gst/librfb/gstrfbsrc.c: + Fix basic navigation events + +2008-11-06 14:05:55 +0000 Wim Taymans + + gst/deinterlace2/gstdeinterlace2.c: Bring properties into this century. + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_class_init), (gst_deinterlace2_init), + (gst_deinterlace2_set_property), (gst_deinterlace2_get_property): + Bring properties into this century. + +2008-11-06 13:00:54 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Set filters in PAUSED or PLAYING. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Set filters in PAUSED or PLAYING. + +2008-11-06 12:17:08 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.c: Make private section pads have a caps set so they are not tried to be linked in parse... + Original commit message from CVS: + * gst/mpegdemux/gstmpegtsdemux.c: + Make private section pads have a caps set so they are not tried + to be linked in parse_launch for example. + +2008-11-06 11:31:03 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.c: No need to reclaculate flush in this case. + Original commit message from CVS: + patch by: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + No need to reclaculate flush in this case. + Fixes some bad decode errors introduced. + +2008-11-06 10:42:59 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.*: Fix typo. + Original commit message from CVS: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + Fix typo. + +2008-11-05 23:31:41 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: Fix RGB mask in caps + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + Fix RGB mask in caps + +2008-11-05 22:25:25 +0000 Thijs Vermeir + + gst/librfb/: Add Hextile encoding + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Add Hextile encoding + +2008-11-05 18:52:38 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.c: Heuristic approach when resyncing. + Original commit message from CVS: + patch by: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + Heuristic approach when resyncing. + +2008-11-05 18:11:55 +0000 Sebastian Pölsterl + + gst/mpegdemux/gstmpegdesc.c: Length should be a guint8 not a gint. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegdemux/gstmpegdesc.c: + Length should be a guint8 not a gint. + * gst/mpegdemux/mpegtspacketizer.c: + Convert text to utf8 for each descriptor separately and not + concatenate them first and convert after. + +2008-11-04 20:26:00 +0000 Stefan Kost + + gst/modplug/gstmodplug.cc: Send tag event. Fixes #559286. + Original commit message from CVS: + * gst/modplug/gstmodplug.cc: + Send tag event. Fixes #559286. + +2008-11-04 18:03:55 +0000 Sebastian Pölsterl + + gst/mpegdemux/mpegtsparse.c: Fix another memleak. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtsparse.c: + Fix another memleak. + +2008-11-04 17:25:09 +0000 Sebastian Pölsterl + + Fix memleaks. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtspacketizer.c: + * sys/dvb/gstdvbsrc.c: + Fix memleaks. + +2008-11-04 12:42:30 +0000 Stefan Kost + + Don't install static libs for plugins. Fixes #550851 for -bad. + Original commit message from CVS: + * ext/alsaspdif/Makefile.am: + * ext/amrwb/Makefile.am: + * ext/apexsink/Makefile.am: + * ext/arts/Makefile.am: + * ext/artsd/Makefile.am: + * ext/audiofile/Makefile.am: + * ext/audioresample/Makefile.am: + * ext/bz2/Makefile.am: + * ext/cdaudio/Makefile.am: + * ext/celt/Makefile.am: + * ext/dc1394/Makefile.am: + * ext/dirac/Makefile.am: + * ext/directfb/Makefile.am: + * ext/divx/Makefile.am: + * ext/dts/Makefile.am: + * ext/faac/Makefile.am: + * ext/faad/Makefile.am: + * ext/gsm/Makefile.am: + * ext/hermes/Makefile.am: + * ext/ivorbis/Makefile.am: + * ext/jack/Makefile.am: + * ext/jp2k/Makefile.am: + * ext/ladspa/Makefile.am: + * ext/lcs/Makefile.am: + * ext/libfame/Makefile.am: + * ext/libmms/Makefile.am: + * ext/metadata/Makefile.am: + * ext/mpeg2enc/Makefile.am: + * ext/mplex/Makefile.am: + * ext/musepack/Makefile.am: + * ext/musicbrainz/Makefile.am: + * ext/mythtv/Makefile.am: + * ext/nas/Makefile.am: + * ext/neon/Makefile.am: + * ext/ofa/Makefile.am: + * ext/polyp/Makefile.am: + * ext/resindvd/Makefile.am: + * ext/sdl/Makefile.am: + * ext/shout/Makefile.am: + * ext/snapshot/Makefile.am: + * ext/sndfile/Makefile.am: + * ext/soundtouch/Makefile.am: + * ext/spc/Makefile.am: + * ext/swfdec/Makefile.am: + * ext/tarkin/Makefile.am: + * ext/theora/Makefile.am: + * ext/timidity/Makefile.am: + * ext/twolame/Makefile.am: + * ext/x264/Makefile.am: + * ext/xine/Makefile.am: + * ext/xvid/Makefile.am: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/dshow/Makefile.am: + * gst/aiffparse/Makefile.am: + * gst/app/Makefile.am: + * gst/audiobuffer/Makefile.am: + * gst/bayer/Makefile.am: + * gst/cdxaparse/Makefile.am: + * gst/chart/Makefile.am: + * gst/colorspace/Makefile.am: + * gst/dccp/Makefile.am: + * gst/deinterlace/Makefile.am: + * gst/deinterlace2/Makefile.am: + * gst/dvdspu/Makefile.am: + * gst/festival/Makefile.am: + * gst/filter/Makefile.am: + * gst/flacparse/Makefile.am: + * gst/flv/Makefile.am: + * gst/games/Makefile.am: + * gst/h264parse/Makefile.am: + * gst/librfb/Makefile.am: + * gst/mixmatrix/Makefile.am: + * gst/modplug/Makefile.am: + * gst/mpeg1sys/Makefile.am: + * gst/mpeg4videoparse/Makefile.am: + * gst/mpegdemux/Makefile.am: + * gst/mpegtsmux/Makefile.am: + * gst/mpegvideoparse/Makefile.am: + * gst/mve/Makefile.am: + * gst/nsf/Makefile.am: + * gst/nuvdemux/Makefile.am: + * gst/overlay/Makefile.am: + * gst/passthrough/Makefile.am: + * gst/pcapparse/Makefile.am: + * gst/playondemand/Makefile.am: + * gst/rawparse/Makefile.am: + * gst/real/Makefile.am: + * gst/rtjpeg/Makefile.am: + * gst/rtpmanager/Makefile.am: + * gst/scaletempo/Makefile.am: + * gst/sdp/Makefile.am: + * gst/selector/Makefile.am: + * gst/smooth/Makefile.am: + * gst/smoothwave/Makefile.am: + * gst/speed/Makefile.am: + * gst/speexresample/Makefile.am: + * gst/stereo/Makefile.am: + * gst/subenc/Makefile.am: + * gst/tta/Makefile.am: + * gst/vbidec/Makefile.am: + * gst/videodrop/Makefile.am: + * gst/videosignal/Makefile.am: + * gst/virtualdub/Makefile.am: + * gst/vmnc/Makefile.am: + * gst/y4m/Makefile.am: + * sys/acmenc/Makefile.am: + * sys/cdrom/Makefile.am: + * sys/dshowdecwrapper/Makefile.am: + * sys/dshowsrcwrapper/Makefile.am: + * sys/dvb/Makefile.am: + * sys/dxr3/Makefile.am: + * sys/fbdev/Makefile.am: + * sys/oss4/Makefile.am: + * sys/qcam/Makefile.am: + * sys/qtwrapper/Makefile.am: + * sys/vcd/Makefile.am: + * sys/wininet/Makefile.am: + * win32/common/config.h: + Don't install static libs for plugins. Fixes #550851 for -bad. + +2008-11-04 08:24:10 +0000 Sebastian Pölsterl + + gst/mpegdemux/mpegtsparse.c: Fix memleak. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtsparse.c: + Fix memleak. + +2008-11-03 22:00:09 +0000 Jan Schmidt + + examples/scaletempo/.cvsignore: Add example to cvs ignores. + Original commit message from CVS: + * examples/scaletempo/.cvsignore: + Add example to cvs ignores. + +2008-11-03 21:27:31 +0000 Jan Schmidt + + sys/qtwrapper/audiodecoders.c: Fix mismatched signedness compiler warning. + Original commit message from CVS: + * sys/qtwrapper/audiodecoders.c: + (open_decoder): + Fix mismatched signedness compiler warning. + +2008-11-03 08:55:49 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Add TODO at the top of the file for enabling SSE/ARM specific optimizations and... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_convert_buffer): + Add TODO at the top of the file for enabling SSE/ARM specific + optimizations and choosing the fastest implementation at runtime. + Add g_assert_not_reached() at two places that should really never + be reached. + +2008-11-02 09:19:24 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Fix format string and arguments. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_check_discont): + Fix format string and arguments. + * gst/speexresample/resample_sse.h: + Add missing file. + +2008-11-01 21:37:06 +0000 Stefan Kost + + ext/resindvd/Makefile.am: Dist the play scripts. + Original commit message from CVS: + * ext/resindvd/Makefile.am: + Dist the play scripts. + +2008-11-01 19:38:36 +0000 Sebastian Dröge + + gst/speexresample/: Add missing headers to Makefile.am. + Original commit message from CVS: + * gst/speexresample/Makefile.am: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_base_init), (gst_speex_resample_get_funcs), + (gst_speex_resample_convert_buffer), (_benchmark_int_float), + (_benchmark_int_int), (_benchmark_integer_resampling), + (plugin_init): + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/resample.c: + * gst/speexresample/speex_resampler_double.c: + * gst/speexresample/speex_resampler_float.c: + * gst/speexresample/speex_resampler_int.c: + * gst/speexresample/speex_resampler_wrapper.h: + Add missing headers to Makefile.am. + Update copyright, years and my mail address. + Benchmark the integer resampling implementation against the + float implementation and use the faster one for 8/16 bit integer + input. On most recent systems the floating point version is faster. + +2008-10-31 18:39:37 +0000 Sebastian Dröge + + configure.ac: Use AC_TRY_COMPILE instead of AC_TRY_RUN as the result of the linking is what is interesting, not that ... + Original commit message from CVS: + * configure.ac: + Use AC_TRY_COMPILE instead of AC_TRY_RUN as the result of the linking + is what is interesting, not that it actually runs. + Fixes cross-compilation and fixes bug #558639. + +2008-10-30 19:54:38 +0000 Michael Smith + + sys/qtwrapper/audiodecoders.c: Add ALAC support. + Original commit message from CVS: + * sys/qtwrapper/audiodecoders.c: + Add ALAC support. + Fix decode of mono AAC files created by itunes. + Set output format correctly (don't ask quicktime to + resample for us). + Use a larger decode buffer to avoid problems with large + ALAC packets. + Fix decode to loop until we have all output data. + * sys/qtwrapper/qtutils.c: + Fix includes so we compile on more OSes. + +2008-10-30 15:31:59 +0000 Tim-Philipp Müller + + configure.ac: Require at least Gtk 2.8.0 for the demos (that's the oldest I can test with; I'm fairly certain Gtk 2.0... + Original commit message from CVS: + * configure.ac: + Require at least Gtk 2.8.0 for the demos (that's the oldest I can + test with; I'm fairly certain Gtk 2.0.0 is not good enough any + longer); clean up some unused Gtk-related configure cruft. + * examples/scaletempo/demo-gui.c: + Define Gtk 2.12 function to noop when compiling against older Gtk. + +2008-10-30 14:55:43 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: The length for the buffer conversion function is the number of audio frames, i.... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_convert_buffer): + The length for the buffer conversion function is the number of + audio frames, i.e. we need to multiply it by the number of channels + to get the number of values. Also spotted by the unit test after + running in valgrind. + +2008-10-30 14:46:31 +0000 Sebastian Dröge + + tests/check/elements/speexresample.c: Add pipeline unit tests for testing all supported formats with up/downsampling ... + Original commit message from CVS: + * tests/check/elements/speexresample.c: (element_message_cb), + (eos_message_cb), (test_pipeline), (GST_START_TEST), + (speexresample_suite): + Add pipeline unit tests for testing all supported formats with + up/downsampling and different in/outrates. + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_push_drain), (gst_speex_resample_process): + * gst/speexresample/speex_resampler_wrapper.h: + Fix bugs identified by the testsuite. + +2008-10-30 13:44:41 +0000 Sebastian Dröge + + gst/speexresample/: Add support for int8, int24 and int32 input by converting internally to/from int16 or double. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop), + (gst_speex_resample_get_funcs), + (gst_speex_resample_transform_size), + (gst_speex_resample_convert_buffer), + (gst_speex_resample_push_drain), (gst_speex_resample_process): + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/speex_resampler_wrapper.h: + Add support for int8, int24 and int32 input by converting internally + to/from int16 or double. + +2008-10-30 13:38:19 +0000 Jan Schmidt + + ext/resindvd/resindvdsrc.*: Better fix for #546319 and similar cases by explicitly registering when we're in playing ... + Original commit message from CVS: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + Better fix for #546319 and similar cases by explicitly + registering when we're in playing state or not. + +2008-10-30 13:02:18 +0000 Stefan Kost + + ext/ladspa/gstladspa.c: Whitespace. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: + Whitespace. + * ext/ladspa/gstsignalprocessor.c: + Add a FIXME:. not sure if this code does the forwarding correctly. + +2008-10-30 12:43:44 +0000 Sebastian Dröge + + Add support for double samples as input and refactor the usage of the different compilation flavors of the speex resa... + Original commit message from CVS: + * gst/speexresample/Makefile.am: + * gst/speexresample/arch.h: + * gst/speexresample/gstspeexresample.c: (gst_speex_resample_stop), + (gst_speex_resample_get_unit_size), (gst_speex_resample_get_funcs), + (gst_speex_resample_init_state), (gst_speex_resample_update_state), + (gst_speex_resample_reset_state), (gst_speex_resample_parse_caps), + (_gcd), (gst_speex_resample_transform_size), + (gst_speex_resample_set_caps), (gst_speex_resample_push_drain), + (gst_speex_resample_process), (gst_speex_resample_transform), + (gst_speex_resample_query), (gst_speex_resample_set_property): + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/resample.c: + * gst/speexresample/speex_resampler.h: + * gst/speexresample/speex_resampler_double.c: + * gst/speexresample/speex_resampler_wrapper.h: + * tests/check/elements/speexresample.c: (setup_speexresample), + (test_perfect_stream_instance), (GST_START_TEST), + (test_discont_stream_instance): + Add support for double samples as input and refactor the usage + of the different compilation flavors of the speex resampler. + +2008-10-30 12:13:18 +0000 Stefan Kost + + gst/scaletempo/gstscaletempo.c: Return the result of parent_class->event(). + Original commit message from CVS: + * gst/scaletempo/gstscaletempo.c: + Return the result of parent_class->event(). + +2008-10-30 11:50:52 +0000 Wim Taymans + + gst/audiobuffer/: Add first version of an audioringbuffer element that can be inserted in the pipeline to convert pus... + Original commit message from CVS: + * gst/audiobuffer/Makefile.am: + * gst/audiobuffer/gstaudioringbuffer.c: + (gst_int_ring_buffer_acquire), (gst_int_ring_buffer_release), + (gst_int_ring_buffer_start), (gst_int_ring_buffer_base_init), + (gst_int_ring_buffer_class_init), (gst_int_ring_buffer_init), + (gst_int_ring_buffer_new), (gst_audio_ringbuffer_get_type), + (gst_audio_ringbuffer_class_init), (gst_audio_ringbuffer_init), + (gst_audio_ringbuffer_finalize), (gst_audio_ringbuffer_getcaps), + (gst_audio_ringbuffer_setcaps), (gst_audio_ringbuffer_bufferalloc), + (gst_audio_ringbuffer_handle_sink_event), + (gst_audio_ringbuffer_render), (gst_audio_ringbuffer_chain), + (gst_audio_ringbuffer_handle_src_event), + (gst_audio_ringbuffer_handle_src_query), + (gst_audio_ringbuffer_get_range), + (gst_audio_ringbuffer_src_checkgetrange_function), + (gst_audio_ringbuffer_sink_activate_push), + (gst_audio_ringbuffer_src_activate_push), + (gst_audio_ringbuffer_src_activate_pull), + (gst_audio_ringbuffer_change_state), + (gst_audio_ringbuffer_set_property), + (gst_audio_ringbuffer_get_property), (plugin_init): + Add first version of an audioringbuffer element that can be inserted in + the pipeline to convert push-based upstream into a pull-based + downstream. + +2008-10-30 11:43:12 +0000 Stefan Kost + + gst/audioresample/gstaudioresample.c: Return the result of parent_class->event(). + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + Return the result of parent_class->event(). + +2008-10-30 00:17:12 +0000 Michael Smith + + gst/aiffparse/aiffparse.c: AIFF is always signed, even for 8 bit. + Original commit message from CVS: + * gst/aiffparse/aiffparse.c: + AIFF is always signed, even for 8 bit. + +2008-10-29 17:02:55 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.c: Fix the docs. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init): + Fix the docs. + +2008-10-29 16:53:54 +0000 Robin Stocker + + gst/real/gstrealvideodec.c: A RealVideo video inside a container (for example MKV) should use the + Original commit message from CVS: + Patch by: Robin Stocker + * gst/real/gstrealvideodec.c: (gst_real_video_dec_setcaps): + A RealVideo video inside a container (for example MKV) should use the + PAR which is specified on the sinkpad caps. Fixes #558416. + +2008-10-29 12:11:20 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.*: Rewrite timestamp tracking to make it more robust and guarantee a continous str... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: (gst_speex_resample_start), + (gst_speex_resample_get_unit_size), + (gst_speex_resample_push_drain), (gst_speex_resample_event), + (gst_speex_resample_check_discont), (gst_speex_resample_process), + (gst_speex_resample_transform): + * gst/speexresample/gstspeexresample.h: + Rewrite timestamp tracking to make it more robust and guarantee + a continous stream. + * tests/check/Makefile.am: + * tests/check/elements/speexresample.c: (setup_speexresample), + (cleanup_speexresample), (fail_unless_perfect_stream), + (test_perfect_stream_instance), (GST_START_TEST), + (test_discont_stream_instance), (live_switch_alloc_only_48000), + (live_switch_get_sink_caps), (live_switch_push), + (speexresample_suite): + Add unit tests for speexresample based on the audioresample unit tests. + +2008-10-29 01:00:22 +0000 Jan Schmidt + + ext/resindvd/resindvdsrc.c: Make sure to start the NAV packet processing when changing state to PLAYING by passing a... + Original commit message from CVS: + * ext/resindvd/resindvdsrc.c: + Make sure to start the NAV packet processing when changing + state to PLAYING by passing a flag that indicates the state + change is in progress. + Fixes: #546319 + +2008-10-28 20:06:27 +0000 Stefan Kost + + ext/resindvd/resin-play: Remove $@ to fix parse_launch warning + Original commit message from CVS: + * ext/resindvd/resin-play: + Remove $@ to fix parse_launch warning + * ext/resindvd/resin-play2: + Add a version that uses deinterlace and xvimagesink. + +2008-10-28 19:30:33 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.*: Some random cleanup, add G_LIKELY and friends, use GST_DEBUG_OBJECT instead of ... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_get_unit_size), + (gst_speex_resample_fixate_caps), (gst_speex_resample_init_state), + (gst_speex_resample_update_state), (gst_speex_resample_parse_caps), + (gst_speex_resample_transform_size), (gst_speex_resample_set_caps), + (gst_speex_resample_push_drain), (gst_speex_resample_event), + (gst_speex_resample_check_discont), (gst_speex_fix_output_buffer), + (gst_speex_resample_process), (gst_speex_resample_transform), + (gst_speex_resample_query), (gst_speex_resample_set_property): + * gst/speexresample/gstspeexresample.h: + Some random cleanup, add G_LIKELY and friends, use GST_DEBUG_OBJECT + instead of GST_DEBUG, ... + +2008-10-28 18:44:44 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Implement position query in time format. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_query): + Implement position query in time format. + +2008-10-28 18:41:19 +0000 Sebastian Dröge + + gst/flv/: Put the GstSegment directly into the instance struct instead of allocating and free'ing it again. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), + (gst_flv_demux_loop), (gst_flv_demux_handle_seek_push), + (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event), + (gst_flv_demux_dispose), (gst_flv_demux_init): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video), (gst_flv_parse_tag_timestamp): + Put the GstSegment directly into the instance struct instead of + allocating and free'ing it again. + Push tags already if only one pad was added, no need to wait for + the second one. + When generating our index set has_video and has_audio if we find + video or audio in case the FLV header has incorrect data. + +2008-10-28 16:28:45 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Fixate to the nearest supported rate instead of the first one. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_class_init), (gst_speex_resample_fixate_caps), + (gst_speex_resample_process): + Fixate to the nearest supported rate instead of the first one. + +2008-10-28 16:25:00 +0000 Sebastian Dröge + + gst/audioresample/gstaudioresample.c: Fixate the rate to the nearest supported rate instead of the first one. Fixes b... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + (gst_audioresample_class_init), (audioresample_fixate_caps): + Fixate the rate to the nearest supported rate instead of + the first one. Fixes bug #549510. + +2008-10-28 11:46:28 +0000 Sebastian Dröge + + gst/speexresample/: Update Speex resampler with latest version from Speex GIT. + Original commit message from CVS: + * gst/speexresample/README: + * gst/speexresample/arch.h: + * gst/speexresample/fixed_arm4.h: + * gst/speexresample/fixed_arm5e.h: + * gst/speexresample/fixed_bfin.h: + * gst/speexresample/fixed_debug.h: + * gst/speexresample/fixed_generic.h: + * gst/speexresample/resample.c: (compute_func), (main), (sinc), + (cubic_coef), (resampler_basic_direct_single), + (resampler_basic_direct_double), + (resampler_basic_interpolate_single), + (resampler_basic_interpolate_double), (update_filter), + (speex_resampler_init_frac), (speex_resampler_process_native), + (speex_resampler_magic), (speex_resampler_process_float), + (speex_resampler_process_int), + (speex_resampler_process_interleaved_float), + (speex_resampler_process_interleaved_int), + (speex_resampler_set_rate_frac), (speex_resampler_skip_zeros), + (speex_resampler_reset_mem): + * gst/speexresample/speex_resampler.h: + Update Speex resampler with latest version from Speex GIT. + +2008-10-28 01:53:49 +0000 Michael Smith + + gst/aiffparse/aiffparse.*: Calculate width from depth correctly. + Original commit message from CVS: + * gst/aiffparse/aiffparse.c: + * gst/aiffparse/aiffparse.h: + Calculate width from depth correctly. + Read SSND header properly (fixes 24 bit AIFF reading). + +2008-10-27 17:01:22 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.c: Adapt to slightly modified x264 API. Fixes #555238. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_init_encoder): + Adapt to slightly modified x264 API. Fixes #555238. + +2008-10-27 16:32:49 +0000 Mark Nauwelaerts + + ext/faac/gstfaac.c: Prevent endless loop if buffer alloc error. + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_sink_event): + Prevent endless loop if buffer alloc error. + +2008-10-27 09:45:04 +0000 Sebastian Dröge + + gst/flv/: Don't memcpy() all data we want to push downstream, instead just create subbuffers and push them downstream. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_chain), + (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header), + (gst_flv_demux_create_index): + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type), + (gst_flv_parse_header): + * gst/flv/gstflvparse.h: + Don't memcpy() all data we want to push downstream, instead just + create subbuffers and push them downstream. + Fix some minor memory leaks. + +2008-10-27 09:42:55 +0000 Sebastian Dröge + + configure.ac: Require CVS of core for the last change. + Original commit message from CVS: + * configure.ac: + Require CVS of core for the last change. + +2008-10-27 09:41:18 +0000 Sebastian Dröge + + gst/flv/Makefile.am: Fix (non-critical) syntax error and add all required CFLAGS and LIBS. + Original commit message from CVS: + * gst/flv/Makefile.am: + Fix (non-critical) syntax error and add all required CFLAGS and LIBS. + * gst/flv/gstflvparse.c: (FLV_GET_STRING), + (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_tag_timestamp), (gst_flv_parse_tag_type): + Rewrite the script tag parsing to make sure we don't try to read + more data than we have. Also use GST_READ_UINT24_BE directly and + fix some minor memory leaks. + This should make all crashes on fuzzed FLV files disappear. + +2008-10-27 09:37:21 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: Properly check everywhere that we have enough data to parse and don't read outside the allocat... + Original commit message from CVS: + * gst/flv/gstflvparse.c: (FLV_GET_STRING), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_tag_type), (gst_flv_parse_header): + Properly check everywhere that we have enough data to parse and + don't read outside the allocated memory region. + +2008-10-27 09:35:34 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: If the caps change during playback and negotiation fails error out instead of trying to continue. + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + If the caps change during playback and negotiation fails error out + instead of trying to continue. + +2008-10-27 09:33:40 +0000 Sebastian Dröge + + gst/flv/: Add support for Speex audio and allow buffers without valid timestamp in the muxer. + Original commit message from CVS: + * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), + (gst_flv_mux_request_new_pad), (gst_flv_mux_write_buffer), + (gst_flv_mux_collected): + * gst/flv/gstflvmux.h: + * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate): + Add support for Speex audio and allow buffers without valid + timestamp in the muxer. + +2008-10-27 09:32:03 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Don't post an error message on the bus if sending EOS downstream didn't work. Fixes bug #550454. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_loop), + (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), + (gst_flv_demux_handle_seek_pull): + Don't post an error message on the bus if sending EOS downstream + didn't work. Fixes bug #550454. + Fix seek event handling to look at the flags of the seek event + instead of assuming some random flags, don't send segment-start + messages when operating in push mode and push seek events upstream + if we couldn't handle them. + +2008-10-27 09:27:18 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Error out early if pulling a tag failed. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag): + Error out early if pulling a tag failed. + +2008-10-27 09:25:11 +0000 Sebastian Dröge + + gst/flv/: In pull mode we create our own index before doing anything else and don't use the index provided by some fi... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_create_index), + (gst_flv_demux_loop): + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_tag_timestamp): + * gst/flv/gstflvparse.h: + In pull mode we create our own index before doing anything else + and don't use the index provided by some files (which are more than + often incorrect and cause failed seeks). + For push mode we still use the index provided by the file and extend it + while doing the playback. + +2008-10-27 09:20:01 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Instead of using gst_pad_event_default() use a small gst_pad_push_event() wrapper that only do... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_push_src_event), + (gst_flv_demux_loop), (gst_flv_demux_handle_seek_pull), + (gst_flv_demux_sink_event): + Instead of using gst_pad_event_default() use a small + gst_pad_push_event() wrapper that only does what we want and is much + more simple. + +2008-10-27 09:14:45 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.*: If our index was created by the element and not provided from the outside we should destroy it... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_change_state), + (gst_flv_demux_set_index), (gst_flv_demux_init): + * gst/flv/gstflvdemux.h: + If our index was created by the element and not provided from the + outside we should destroy it when starting a new stream to get + all old entries removed. + +2008-10-27 09:12:33 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Improve debugging a bit when pulling a buffer from upstream fails. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range): + Improve debugging a bit when pulling a buffer from upstream fails. + +2008-10-27 09:10:54 +0000 Sebastian Dröge + + gst/flv/: Close the currently playing segment from the streaming thread instead of the thread where the seek event is... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), + (gst_flv_demux_handle_seek_pull), (gst_flv_demux_dispose): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Close the currently playing segment from the streaming thread + instead of the thread where the seek event is handled. + +2008-10-27 08:57:27 +0000 David Härdeman + + gst/mpegdemux/mpegtspacketizer.c: Add support for the frequency list descriptor, which provides additional frequencie... + Original commit message from CVS: + Patch by: David Härdeman + * gst/mpegdemux/mpegtspacketizer.c: (mpegts_packetizer_parse_nit): + Add support for the frequency list descriptor, which provides + additional frequencies that should be scanned by a DVB application. + Fixes bug #557814. + +2008-10-27 08:52:50 +0000 vanista + + gst/mpegtsmux/mpegtsmux.c: Fix EOS logic by correctly popping the collect pad buffers only when we've chosen to use t... + Original commit message from CVS: + Patch by: vanista + * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_choose_best_stream): + Fix EOS logic by correctly popping the collect pad buffers only + when we've chosen to use them instead of popping them always and + storing them in a private queue. + Before the pipeline would deadlock if all pads go EOS at the same + time. Fixes bug #557763. + +2008-10-26 20:07:51 +0000 Jan Schmidt + + configure.ac: Back to development -> 0.10.9.1 + Original commit message from CVS: + * configure.ac: + Back to development -> 0.10.9.1 + +=== release 0.10.9 === + +2008-10-24 22:45:11 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dccp.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-scaletempo.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.9 + Original commit message from CVS: + Release 0.10.9 + +2008-10-24 21:43:17 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/ca.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/id.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + Original commit message from CVS: + Update .po files + +2008-10-24 16:41:33 +0000 Jan Schmidt + + configure.ac: Commit 0.10.8.4 pre-release + Original commit message from CVS: + * configure.ac: + Commit 0.10.8.4 pre-release + +2008-10-20 14:19:17 +0000 Edward Hervey + + gst/mpegdemux/gstmpegdemux.c: Fix reverse playback regression. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): + Fix reverse playback regression. + Fixes #557080 + +2008-10-19 12:39:30 +0000 Tim-Philipp Müller + + ext/apexsink/gstapexplugin.c: Set apexsink's rank to NONE so it doesn't get used by autoaudiosink (there's no point r... + Original commit message from CVS: + * ext/apexsink/gstapexplugin.c: (plugin_init): + Set apexsink's rank to NONE so it doesn't get used by + autoaudiosink (there's no point really). (#556588) + +2008-10-16 17:12:04 +0000 Jan Schmidt + + configure.ac: 0.10.8.3 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.8.3 pre-release + +2008-10-16 16:37:33 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.*: Properly handle some resync cases in the optimised buffering strategy. + Original commit message from CVS: + Patch by: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + Properly handle some resync cases in the optimised + buffering strategy. + +2008-10-16 16:18:31 +0000 Michael Smith + + sys/acmenc/Makefile.am: Remove incorrect use of DIRECTSOUND_LDFLAGS + Original commit message from CVS: + 2008-10-16 Michael Smith + * sys/acmenc/Makefile.am: + Remove incorrect use of DIRECTSOUND_LDFLAGS + +2008-10-16 15:21:15 +0000 Sebastian Dröge + + gst/flv/gstflvmux.c: Don't set video_codec to the value that actually should go into audio codec, otherwise we create... + Original commit message from CVS: + * gst/flv/gstflvmux.c: (gst_flv_mux_audio_pad_setcaps), + (gst_flv_mux_write_buffer): + Don't set video_codec to the value that actually should go + into audio codec, otherwise we create invalid files. + Fixes bug #556564. + +2008-10-16 15:06:55 +0000 Stefan Kost + + Don't install static libs for plugins. Fixes #550851 for base. + Original commit message from CVS: + * ext/alsa/Makefile.am: + * ext/cdparanoia/Makefile.am: + * ext/gio/Makefile.am: + * ext/gnomevfs/Makefile.am: + * ext/libvisual/Makefile.am: + * ext/ogg/Makefile.am: + * ext/pango/Makefile.am: + * ext/theora/Makefile.am: + * ext/vorbis/Makefile.am: + * gst/adder/Makefile.am: + * gst/audioconvert/Makefile.am: + * gst/audiorate/Makefile.am: + * gst/audioresample/Makefile.am: + * gst/audiotestsrc/Makefile.am: + * gst/ffmpegcolorspace/Makefile.am: + * gst/gdp/Makefile.am: + * gst/playback/Makefile.am: + * gst/subparse/Makefile.am: + * gst/tcp/Makefile.am: + * gst/typefind/Makefile.am: + * gst/videorate/Makefile.am: + * gst/videoscale/Makefile.am: + * gst/videotestsrc/Makefile.am: + * gst/volume/Makefile.am: + * sys/v4l/Makefile.am: + * sys/ximage/Makefile.am: + * sys/xvimage/Makefile.am: + Don't install static libs for plugins. Fixes #550851 for base. + +2008-10-16 14:54:36 +0000 Jan Schmidt + + tests/check/Makefile.am: Leave apexsink out of the states test. + Original commit message from CVS: + * tests/check/Makefile.am: + Leave apexsink out of the states test. + +2008-10-16 13:05:37 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Fix problem with using the output seqnum counter to check for input seqnum disco... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps), + (gst_rtp_jitter_buffer_flush_start), + (gst_rtp_jitter_buffer_flush_stop), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_loop): + Fix problem with using the output seqnum counter to check for input + seqnum discontinuities. + Improve gap detection and recovery, reset and flush the jitterbuffer on + seqnum restart. Fixes #556520. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert): + Fix wrong G_LIKELY. + +2008-10-16 11:55:19 +0000 Jan Schmidt + + configure.ac: Commit 0.10.8.2 pre-release bump, that actually went out in a tarball on 2008-10-11 + Original commit message from CVS: + * configure.ac: + Commit 0.10.8.2 pre-release bump, that actually went out in a + tarball on 2008-10-11 + +2008-10-16 09:51:28 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Install event handler on the rtcp_src pad, make LATENCY event return + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtcp_src), (create_send_rtcp_src): + Install event handler on the rtcp_src pad, make LATENCY event return + TRUE. + +2008-10-16 09:18:31 +0000 Edward Hervey + + gst/mpegdemux/gstmpegdemux.c: Make sure the mpegpsdemux element creates valid newsegment events. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data): + Make sure the mpegpsdemux element creates valid newsegment events. + Fixes #556428 + +2008-10-16 08:17:59 +0000 Sebastian Pölsterl + + gst/mpegdemux/mpegtspacketizer.c: Fixes segfault in get_encoding_and_convert. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegdemux/mpegtspacketizer.c: + Fixes segfault in get_encoding_and_convert. + Fixes #556482 + +2008-10-16 08:13:49 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.c: Fixes a segfault in the adaptation buffer size strategy. + Original commit message from CVS: + patch by: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + Fixes a segfault in the adaptation buffer size strategy. + Fixes #556440 + +2008-10-15 17:45:37 +0000 Edward Hervey + + gst/selector/gstinputselector.c: Gracefully handle the cases when we dont' have otherpad. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_input_selector_event), + (gst_input_selector_query): + Gracefully handle the cases when we dont' have otherpad. + Fixes #556430 + +2008-10-14 15:13:05 +0000 Edward Hervey + + gst/aiffparse/aiffparse.c: Fix debugging category initialization. + Original commit message from CVS: + * gst/aiffparse/aiffparse.c: (plugin_init): + Fix debugging category initialization. + Fixes #556274 + +2008-10-14 14:53:41 +0000 Jan Schmidt + + ext/apexsink/gstapexsink.c: Fix some more format string compiler warnings (from OS/X) + Original commit message from CVS: + * ext/apexsink/gstapexsink.c: + Fix some more format string compiler warnings (from OS/X) + +2008-10-13 12:27:06 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec for latest plugins changes + Original commit message from CVS: + update spec for latest plugins changes + +2008-10-13 07:35:25 +0000 Sebastian Dröge + + ext/apexsink/gstapexraop.c: Fix format string compiler warnings. + Original commit message from CVS: + * ext/apexsink/gstapexraop.c: (gst_apexraop_connect), + (gst_apexraop_set_volume): + Fix format string compiler warnings. + +2008-10-12 21:52:27 +0000 Jan Schmidt + + sys/oss4/: Add some spaces in translateable strings. + Original commit message from CVS: + * sys/oss4/oss4-mixer.c: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + Add some spaces in translateable strings. + Fixes: #555969 #555968 #555965 + +2008-10-12 17:08:10 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Fix regression of handling flow returns in pull mode. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag), + (gst_flv_demux_pull_header): + Fix regression of handling flow returns in pull mode. + Fixes bug #556003. + +2008-10-12 17:04:17 +0000 Sebastian Dröge + + ext/Makefile.am: Add apexsink to SUBDIRS. Fixes bug #555912. + Original commit message from CVS: + * ext/Makefile.am: + Add apexsink to SUBDIRS. Fixes bug #555912. + +2008-10-11 11:02:14 +0000 Jan Schmidt + + tests/check/pipelines/metadata.c: Make the metadata test not fail when jpegenc isn't available.... as it isn't here, ... + Original commit message from CVS: + * tests/check/pipelines/metadata.c: + Make the metadata test not fail when jpegenc isn't available.... + as it isn't here, because it's not in this module, and + therefore not in the plugin path when the check runs. + +2008-10-10 16:33:36 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: Use gst_pad_alloc_buffer_and_set_caps() to make sure we get a buffer with caps that we can wor... + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Use gst_pad_alloc_buffer_and_set_caps() to make sure we get + a buffer with caps that we can work with (i.e. the pad's caps). + Add non-keyframe video frames to the index too but without the + keyframe flag. + Add audio frames to the index only if we have no video stream. + +2008-10-10 16:15:09 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: Create pads from the pad templates, use fixed caps on them and only activate them after the ca... + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Create pads from the pad templates, use fixed caps on them + and only activate them after the caps are set. + +2008-10-10 15:51:42 +0000 Sebastian Dröge + + configure.ac: Disable flacparse for this release as it's too buggy. + Original commit message from CVS: + * configure.ac: + Disable flacparse for this release as it's too buggy. + +2008-10-10 11:17:09 +0000 Jan Schmidt + + * gst/flacparse/gstbaseparse.c: + Fix compiler warning on OS/X about parameters not matching the debug format string. + Original commit message from CVS: + 2008-10-10 Jan Schmidt + * gst/flacparse/gstbaseparse.c (gst_base_parse_push_buffer), + (gst_base_parse_update_upstream_durations): + Fix compiler warning on OS/X about parameters not matching + the debug format string. + +2008-10-10 11:01:36 +0000 Jan Schmidt + + * ChangeLog: + Fix compiler warning on OS/X about parameters not matching the debug format string. + Original commit message from CVS: + * gst/flacparse/gstbaseparse.c (gst_base_parse_push_buffer), + (gst_base_parse_update_upstream_durations): + Fix compiler warning on OS/X about parameters not matching + the debug format string. + +2008-10-09 19:38:52 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/tomsmocomp.c: Fix unused variable compiler warning when not building + Original commit message from CVS: + * gst/deinterlace2/tvtime/tomsmocomp.c: + (gst_deinterlace_method_tomsmocomp_class_init): + Fix unused variable compiler warning when not building + X86 assembly. + +2008-10-09 16:51:35 +0000 Christian Schaller + + * configure.ac: + * gst-plugins-bad.spec.in: + * tests/check/Makefile.am: + fix various build files to allow for disting and update spec file with latest changes. + Original commit message from CVS: + fix various build files to allow for disting and update spec file with latest changes. + +2008-10-09 16:20:26 +0000 Sebastian Dröge + + gst/flv/: Get an approximate duration of the file by looking at the timestamp of the last tag in pull mode. If we get... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_loop): + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_timestamp): + * gst/flv/gstflvparse.h: + Get an approximate duration of the file by looking at the timestamp + of the last tag in pull mode. If we get (maybe better) duration from + metadata later we'll use that instead. + +2008-10-09 15:43:02 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Refactor _pull_range() logic with checks into a seperate function to make things a bit more re... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_range), + (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header): + Refactor _pull_range() logic with checks into a seperate function + to make things a bit more readable. + +2008-10-09 15:26:56 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Use gst_element_class_set_details_simple(). + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_chain), + (gst_flv_demux_base_init): + Use gst_element_class_set_details_simple(). + If we get GST_FLOW_NOT_LINKED in the parse loop but at least + one of the pads is linked continue the loop. + +2008-10-09 10:01:37 +0000 Stefan Kost + + ext/amrwb/gstamrwbenc.*: Pass the discont flag from the input buffer on to the output buffer in the AMR encoder. + Original commit message from CVS: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbenc.h: + Pass the discont flag from the input buffer on to the output buffer in + the AMR encoder. + +2008-10-09 10:00:51 +0000 Sebastian Dröge + + gst/flv/gstflvparse.c: Correct caps for video codec id 5: It's On2 VP6 with alpha channel which needs a different dec... + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate), + (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate): + Correct caps for video codec id 5: It's On2 VP6 with alpha channel + which needs a different decoder and has different caps. + Add support for audio codec id 14, which is MP3 with 8kHz sampling + rate. + Fix endianness and signedness for raw audio codec ids. + Add support for alaw and mulaw audio. + +2008-10-09 09:48:46 +0000 Sebastian Dröge + + gst/flv/gstflvdemux.c: Go out of the parse loop as soon as we get an error instead of parsing until the GstAdapter is... + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_chain): + Go out of the parse loop as soon as we get an error instead + of parsing until the GstAdapter is empty. + Add some explanations about the header and tag size. + Don't print synchronizing message if everything is fine. + +2008-10-09 09:26:58 +0000 Sebastian Dröge + + gst/flv/: Add first version of a FLV muxer. The only missing feature is writing of stream metadata. + Original commit message from CVS: + * gst/flv/Makefile.am: + * gst/flv/gstflvdemux.c: (plugin_init): + * gst/flv/gstflvmux.c: (gst_flv_mux_base_init), + (gst_flv_mux_class_init), (gst_flv_mux_init), + (gst_flv_mux_finalize), (gst_flv_mux_reset), + (gst_flv_mux_handle_src_event), (gst_flv_mux_handle_sink_event), + (gst_flv_mux_video_pad_setcaps), (gst_flv_mux_audio_pad_setcaps), + (gst_flv_mux_request_new_pad), (gst_flv_mux_release_pad), + (gst_flv_mux_write_header), (gst_flv_mux_write_buffer), + (gst_flv_mux_collected), (gst_flv_mux_change_state): + * gst/flv/gstflvmux.h: + Add first version of a FLV muxer. The only missing feature is writing + of stream metadata. + +2008-10-09 09:21:44 +0000 Stefan Kost + + ext/amrwb/gstamrwbparse.*: Add flush seek handler. Taken from recent armnbparse changes. + Original commit message from CVS: + * ext/amrwb/gstamrwbparse.c: + * ext/amrwb/gstamrwbparse.h: + Add flush seek handler. Taken from recent armnbparse changes. + Sync the code more and use #defines for HEADER. + +2008-10-09 08:43:41 +0000 Stefan Kost + + ext/amrwb/gstamrwbparse.*: Fix the duration query. Also set caps on the pads and buffers more correctly. Taken from r... + Original commit message from CVS: + * ext/amrwb/gstamrwbparse.c: + * ext/amrwb/gstamrwbparse.h: + Fix the duration query. Also set caps on the pads and buffers more + correctly. Taken from recent armnbparse changes. + +2008-10-08 16:20:26 +0000 Zaheer Abbas Merali + + gst/mpegdemux/: Add Fluendo to the Long Name. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegtsdemux.c: + Add Fluendo to the Long Name. + +2008-10-08 15:25:24 +0000 Zaheer Abbas Merali + + Move of mpegtsparse to mpegdemux. + Original commit message from CVS: + * configure.ac: + * gst-plugins-bad.spec.in: + * gst/mpegdemux/Makefile.am: + * gst/mpegdemux/flumpegdemux.c: + * gst/mpegdemux/gstmpegdesc.c: + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/mpegtspacketizer.c: + * gst/mpegdemux/mpegtspacketizer.h: + * gst/mpegdemux/mpegtsparse.c: + * gst/mpegdemux/mpegtsparse.h: + Move of mpegtsparse to mpegdemux. + Fixes #555193. + +2008-10-08 15:22:12 +0000 Zaheer Abbas Merali + + * gst/mpegtsparse/mpegtsparse.c: + Move of mpegtsparse to mpegdemux + Original commit message from CVS: + Move of mpegtsparse to mpegdemux + +2008-10-08 10:21:20 +0000 Sebastian Dröge + + gst/mpegdemux/gstmpegdemux.c: Prevent a division by zero if last mux rate was zero. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_send_data), + (gst_flups_demux_parse_pack_start): + Prevent a division by zero if last mux rate was zero. + If we're going to send a NEWSEGMENT event but the segment start + and the current buffer timestamp differ by more than a second we + will start the NEWSEGMENT at the buffer timestamp. + This fixes playback of the tv2-1_25.mpg file, which has 0 as first SCR + but the first PTS are around 1 hour and 40 minutes. + Fixes bug #553755. + +2008-10-07 21:29:26 +0000 Jan Schmidt + + ext/resindvd/resindvdsrc.c: Fix next/prev chapter seeking at the beginning or end. + Original commit message from CVS: + * ext/resindvd/resindvdsrc.c: + Fix next/prev chapter seeking at the beginning or end. + Use 64-bit scaling utility functions for converting MPEG + timestamps. + +2008-10-07 18:54:41 +0000 Håvard Graff + + gst/rtpmanager/gstrtpbin-marshal.list: Add marshaller for new action signal. + Original commit message from CVS: + Patch by: Håvard Graff + * gst/rtpmanager/gstrtpbin-marshal.list: + Add marshaller for new action signal. + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_internal_session), + (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + Add action signal to retrieve the internal RTPSession object. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_get_property), (gst_rtp_session_release_pad): + Add property to access the internal RTPSession object. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (check_collision): + * gst/rtpmanager/rtpsession.h: + Add action signal to retrieve an RTPSource object by SSRC. + See #555396. + +2008-10-07 13:14:40 +0000 Stefan Kost + + gst/selector/gstoutputselector.c: Choose right pad for sending events. Fixes #555244 + Original commit message from CVS: + * gst/selector/gstoutputselector.c: + Choose right pad for sending events. Fixes #555244 + +2008-10-07 11:33:10 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Release pads of the session manager. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (find_session_by_pad), + (free_session), (gst_rtp_bin_dispose), (remove_recv_rtp), + (remove_recv_rtcp), (remove_send_rtp), (remove_rtcp), + (gst_rtp_bin_release_pad): + Release pads of the session manager. + Start implementing releasing pads of gstrtpbin. + * gst/rtpmanager/gstrtpsession.c: (remove_recv_rtp_sink), + (remove_recv_rtcp_sink), (remove_send_rtp_sink), + (remove_send_rtcp_src), (gst_rtp_session_release_pad): + Implement releasing pads in gstrtpsession. + +2008-10-07 10:02:20 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Only update the seqnum-base when it was not already configured for the streams. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps): + Only update the seqnum-base when it was not already configured for the + streams. + +2008-10-06 16:01:49 +0000 Stefan Kost + + configure.ac + Original commit message from CVS: + * configure.ac + * ext/metadata/README: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + Start using core geo tags (bump req). Fix handling of location + references. + * tests/check/Makefile.am: + Sort blacklisted elements and remove moved ones. Add new test. + * tests/check/pipelines/metadata.c: + Add first tests for metadata element. + * tests/icles/metadata_editor.c: + Move free to correct place. + +2008-10-06 15:53:01 +0000 Stefan Kost + + tests/check/generic/states.c: Stop test on state-change error. Should be applied on other modules if we agree that it... + Original commit message from CVS: + * tests/check/generic/states.c: + Stop test on state-change error. Should be applied on other modules if + we agree that it makes sense. + +2008-10-06 12:01:14 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: Actually copy the structure passed in when assigning it because it gets freed straight... + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Actually copy the structure passed in when assigning it because + it gets freed straight after the function call. + Re: pat_info and pmt_info GstStructures. + +2008-10-06 08:32:41 +0000 Zaheer Abbas Merali + + gst/mpegdemux/gstmpegtsdemux.c: Fix wrong firing of critical introduced by previous optimisation. + Original commit message from CVS: + Patch by: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + Fix wrong firing of critical introduced by previous optimisation. + +2008-10-03 17:11:12 +0000 Wim Taymans + + ext/faac/gstfaac.c: Warn and clamp to max bitrate for samplerate. + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_configure_source_pad): + Warn and clamp to max bitrate for samplerate. + Fixes #550486. + +2008-10-03 09:11:16 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: Fix possible crash where pat is pointing to a freed structure. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Fix possible crash where pat is pointing to a freed structure. + +2008-10-03 05:57:58 +0000 Stefan Kost + + ext/metadata/: Add mapping of format and mime type to xmp. + Original commit message from CVS: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataxmp.c: + * ext/metadata/Makefile.am: + Add mapping of format and mime type to xmp. + +2008-10-02 14:42:25 +0000 Stefan Kost + + ext/metadata/: Reverting. Will need to wait for core 0.10.21 release. + Original commit message from CVS: + * ext/metadata/README: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + Reverting. Will need to wait for core 0.10.21 release. + +2008-10-02 13:52:50 +0000 Stefan Kost + + ext/metadata/: Use core gsp tags. + Original commit message from CVS: + * ext/metadata/README: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + Use core gsp tags. + +2008-09-30 17:03:14 +0000 Sebastian Dröge + + gst/flacparse/gstbaseparse.c: Add support for GstIndex. + Original commit message from CVS: + * gst/flacparse/gstbaseparse.c: (gst_base_parse_finalize), + (gst_base_parse_class_init), (gst_base_parse_push_buffer), + (gst_base_parse_change_state), (gst_base_parse_set_index), + (gst_base_parse_get_index): + Add support for GstIndex. + +2008-09-30 16:41:15 +0000 Sebastian Dröge + + gst/flacparse/gstbaseparse.*: Provide a vfunc for the subclass to decide whether a frame is inside the segment or not... + Original commit message from CVS: + * gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init), + (gst_base_parse_push_buffer), + (gst_base_parse_update_upstream_durations), + (gst_base_parse_convert), (gst_base_parse_frame_in_segment): + * gst/flacparse/gstbaseparse.h: + Provide a vfunc for the subclass to decide whether a frame is inside + the segment or not and add a default implementation. + Fix approximate bitrate calculations. + +2008-09-30 16:22:04 +0000 Sebastian Dröge + + gst/flacparse/gstbaseparse.c: Approximate the average bitrate, duration and size if possible and add a default conver... + Original commit message from CVS: + * gst/flacparse/gstbaseparse.c: (gst_base_parse_class_init), + (gst_base_parse_init), (gst_base_parse_push_buffer), + (gst_base_parse_update_upstream_durations), (gst_base_parse_chain), + (gst_base_parse_loop), (gst_base_parse_activate), + (gst_base_parse_convert), (gst_base_parse_query): + Approximate the average bitrate, duration and size if possible + and add a default conversion function which uses this for + time<->byte conversions. + * gst/flacparse/gstflacparse.c: (gst_flac_parse_get_frame_size): + Fix parsing if upstream gives -1 as duration. + +2008-09-30 15:08:52 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: Ref the rtpsource object before we release the session lock when we emit the signals. + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision), + (on_ssrc_validated), (on_ssrc_active), (on_ssrc_sdes), + (on_bye_ssrc), (on_bye_timeout), (on_timeout), (on_sender_timeout): + Ref the rtpsource object before we release the session lock when we emit + the signals. + +2008-09-30 11:19:10 +0000 Ole André Vadla Ravnås + + sys/: New plugin for audio capture and playback using Windows Audio Session + Original commit message from CVS: + * sys/Makefile.am: + * sys/wasapi/Makefile.am: + * sys/wasapi/gstwasapi.c: + * sys/wasapi/gstwasapisink.c: + * sys/wasapi/gstwasapisink.h: + * sys/wasapi/gstwasapisrc.c: + * sys/wasapi/gstwasapisrc.h: + * sys/wasapi/gstwasapiutil.c: + * sys/wasapi/gstwasapiutil.h: + New plugin for audio capture and playback using Windows Audio Session + API (WASAPI) available with Vista and newer (#520901). + Comes with hardcoded caps and obviously needs lots of love. Haven't + had time to work on this code since it was written, was initially just + a quick experiment to play around with this new API. + +2008-09-30 10:43:54 +0000 Ole André Vadla Ravnås + + * ChangeLog: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + sys/dshowdecwrapper/gstdshowaudiodec.cpp + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp + (AudioFakeSink.DoRenderSample): + Fix a couple of signed/unsigned comparison warnings. + +2008-09-30 10:22:10 +0000 Ole André Vadla Ravnås + + sys/dshowdecwrapper/: Use the _T() macro to support both Unicode and MBCS. + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.h (AudioFakeSink.AudioFakeSink): + * sys/dshowdecwrapper/gstdshowvideodec.h (VideoFakeSink.VideoFakeSink): + Use the _T() macro to support both Unicode and MBCS. + +2008-09-30 10:17:41 +0000 Ole André Vadla Ravnås + + ext/libmms/gstmms.c (plugin_init): Fix return type of the GstURIHandler::get_type() implementation. + Original commit message from CVS: + * ext/libmms/gstmms.c (plugin_init): + Fix return type of the GstURIHandler::get_type() implementation. + +2008-09-29 08:26:54 +0000 Sebastian Dröge + + Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader that will be added to libgstbase later. + Original commit message from CVS: + * configure.ac: + * gst/flacparse/Makefile.am: + * gst/flacparse/gstbaseparse.c: (gst_base_parse_get_type), + (gst_base_parse_base_init), (gst_base_parse_base_finalize), + (gst_base_parse_finalize), (gst_base_parse_class_init), + (gst_base_parse_init), (gst_base_parse_check_frame), + (gst_base_parse_parse_frame), (gst_base_parse_bytepos_to_time), + (gst_base_parse_sink_event), (gst_base_parse_sink_eventfunc), + (gst_base_parse_src_event), (gst_base_parse_src_eventfunc), + (gst_base_parse_is_seekable), (gst_base_parse_push_buffer), + (gst_base_parse_handle_and_push_buffer), (gst_base_parse_drain), + (gst_base_parse_chain), (gst_base_parse_pull_range), + (gst_base_parse_loop), (gst_base_parse_sink_activate), + (gst_base_parse_activate), (gst_base_parse_sink_activate_push), + (gst_base_parse_sink_activate_pull), (gst_base_parse_set_duration), + (gst_base_parse_set_min_frame_size), + (gst_base_parse_get_querytypes), (gst_base_parse_query), + (gst_base_parse_handle_seek), (gst_base_parse_sink_setcaps): + * gst/flacparse/gstbaseparse.h: + * gst/flacparse/gstbitreader.c: (gst_bit_reader_new), + (gst_bit_reader_new_from_buffer), (gst_bit_reader_free), + (gst_bit_reader_init), (gst_bit_reader_init_from_buffer), + (gst_bit_reader_set_pos), (gst_bit_reader_get_pos), + (gst_bit_reader_get_remaining), (gst_bit_reader_skip), + (gst_bit_reader_skip_to_byte): + * gst/flacparse/gstbitreader.h: + * gst/flacparse/gstbytereader.c: (GDOUBLE_SWAP_LE_BE), + (GFLOAT_SWAP_LE_BE), (gst_byte_reader_new), + (gst_byte_reader_new_from_buffer), (gst_byte_reader_free), + (gst_byte_reader_init), (gst_byte_reader_init_from_buffer), + (gst_byte_reader_set_pos), (gst_byte_reader_get_pos), + (gst_byte_reader_get_remaining), (gst_byte_reader_skip), + (gst_byte_reader_get_uint8), (gst_byte_reader_get_int8), + (gst_byte_reader_peek_uint8), (gst_byte_reader_peek_int8), + (gst_byte_reader_get_uint24_le), (gst_byte_reader_get_uint24_be), + (gst_byte_reader_get_int24_le), (gst_byte_reader_get_int24_be), + (gst_byte_reader_peek_uint24_le), (gst_byte_reader_peek_uint24_be), + (gst_byte_reader_peek_int24_le), (gst_byte_reader_peek_int24_be): + * gst/flacparse/gstbytereader.h: + * gst/flacparse/gstflac.c: (plugin_init): + * gst/flacparse/gstflacparse.c: (gst_flac_parse_base_init), + (gst_flac_parse_class_init), (gst_flac_parse_init), + (gst_flac_parse_finalize), (gst_flac_parse_start), + (gst_flac_parse_stop), (gst_flac_parse_get_frame_size), + (gst_flac_parse_check_valid_frame), + (gst_flac_parse_handle_streaminfo), + (gst_flac_parse_handle_vorbiscomment), + (gst_flac_parse_handle_picture), (_value_array_append_buffer), + (gst_flac_parse_handle_headers), (gst_flac_parse_generate_headers), + (gst_flac_parse_parse_frame): + * gst/flacparse/gstflacparse.h: + Add FLAC parser, based on GstBaseParse. Also add the bit and byte reader + that will be added to libgstbase later. + The FLAC parser is currently not 100% bug free and fails to get the + correct frame size for some frames in some streams. + +2008-09-27 01:12:30 +0000 Jan Schmidt + + ext/resindvd/: Add in Title/Chapter seeking, and simple but buggy audio and subtitle stream selection. + Original commit message from CVS: + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/gstmpegdemux.h: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/rsnstreamselector.c: + Add in Title/Chapter seeking, and simple but buggy audio + and subtitle stream selection. + +2008-09-24 17:21:41 +0000 Michael Smith + + sys/dshowdecwrapper/: Prefer known-good filters, create directly by GUID if possible, fall back to creating highest-m... + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowaudiodec.h: + * sys/dshowdecwrapper/gstdshowfakesrc.cpp: + * sys/dshowdecwrapper/gstdshowutil.cpp: + * sys/dshowdecwrapper/gstdshowutil.h: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.h: + Prefer known-good filters, create directly by GUID if possible, + fall back to creating highest-merit filter otherwise. + Fixes playback with random dshow filters installed in some + cases. + +2008-09-23 18:13:31 +0000 Wim Taymans + + gst/rtpmanager/: Fix some docs. + Original commit message from CVS: + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_insert), + (rtp_jitter_buffer_get_sync): + * gst/rtpmanager/rtpsession.c: (on_sender_timeout), + (session_cleanup): + * gst/rtpmanager/rtpsource.c: + Fix some docs. + +2008-09-23 17:34:44 +0000 Zaheer Abbas Merali + + Patch from: Josep Torra + Original commit message from CVS: + Patch from: Josep Torra + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + Use a preallocated buffer per stream for PES packets sent on src pads. + Adaptively adjust buffer size appropriately. + +2008-09-17 14:47:12 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Clean up the debug logging code and #ifdef mess a bit: whether or not gstreamer debug mess... + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start), + (gst_neonhttp_src_send_request_and_redirect): + Clean up the debug logging code and #ifdef mess a bit: whether or not + gstreamer debug messages should be output should not depend on an + element property; also, GST_ELEMENT_ERROR will leave a line in the log + already, so merge the more useful debug log messages with the less useful + error debug strings. + +2008-09-17 14:22:38 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Don't post LIBRARY_INIT errors where we should be posting + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start): + Don't post LIBRARY_INIT errors where we should be posting + RESOURCE OPEN_READ errors. Fixes #552506. + +2008-09-17 13:59:21 +0000 Jan Schmidt + + Fix compiler warnings on OS/X + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: (jack_process_cb): + * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): + Fix compiler warnings on OS/X + +2008-09-17 09:06:57 +0000 Michael Krufky + + sys/dvb/gstdvbsrc.c: Add adapter_name for bus message in ATSC case. Fixes #552536. + Original commit message from CVS: + patch by: Michael Krufky + * sys/dvb/gstdvbsrc.c: + Add adapter_name for bus message in ATSC case. Fixes #552536. + +2008-09-15 09:39:00 +0000 Stefan Kost + + ext/celt/gstceltenc.h: Help gtk-doc to parse this correctly. + Original commit message from CVS: + * ext/celt/gstceltenc.h: + Help gtk-doc to parse this correctly. + * gst/pcapparse/gstpcapparse.c: + Add missing include. + +2008-09-15 09:34:14 +0000 Stefan Kost + + examples/Makefile.am: Only built scaletempo example if we have gtk. + Original commit message from CVS: + * examples/Makefile.am: + Only built scaletempo example if we have gtk. + +2008-09-13 01:37:50 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Do not try to adjust the offset of streams for which we have not yet seen an SR packet. A... + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session), + (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain): + Do not try to adjust the offset of streams for which we have not yet + seen an SR packet. Avoids large ts-offsets in some cases. + +2008-09-10 23:15:11 +0000 Michael Smith + + sys/dshowdecwrapper/: Major rewrite of dshowdecwrapper. Converts code to + Original commit message from CVS: + * sys/dshowdecwrapper/Makefile.am: + * sys/dshowdecwrapper/gstdshowaudiodec.c: + * sys/dshowdecwrapper/gstdshowaudiodec.cpp: + * sys/dshowdecwrapper/gstdshowaudiodec.h: + * sys/dshowdecwrapper/gstdshowdecwrapper.c: + * sys/dshowdecwrapper/gstdshowdecwrapper.cpp: + * sys/dshowdecwrapper/gstdshowdecwrapper.h: + * sys/dshowdecwrapper/gstdshowfakesrc.cpp: + * sys/dshowdecwrapper/gstdshowfakesrc.h: + * sys/dshowdecwrapper/gstdshowutil.cpp: + * sys/dshowdecwrapper/gstdshowutil.h: + * sys/dshowdecwrapper/gstdshowvideodec.c: + * sys/dshowdecwrapper/gstdshowvideodec.cpp: + * sys/dshowdecwrapper/gstdshowvideodec.h: + Major rewrite of dshowdecwrapper. Converts code to + C++, moves to direct use of DirectShow base classes, + make a lot of code clearer, simplify, etc. + Fix decode of MP3 on Vista by working around an apparent + bug in the decoder. + +2008-09-10 12:05:39 +0000 Ole André Vadla Ravnås + + sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, gst_ks_clock_start): + Original commit message from CVS: + * sys/winks/gstksclock.c (gst_ks_clock_worker_thread_func, + gst_ks_clock_start): + Synchronize KS clock as a single-shot operation for now, there's not + much point in doing it periodically until we're actually using the + KS timestamps for anything else than just discarding old frames. + * sys/winks/gstksvideosrc.c (gst_ks_video_src_open_device): + Provide the GstClock when opening the device if we already have one. + +2008-09-09 23:58:02 +0000 Ole André Vadla Ravnås + + sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, gst_ks_video_device_prepare_buffers, gst_ks_video... + Original commit message from CVS: + * sys/winks/gstksvideodevice.c (GST_DEBUG_IS_ENABLED, last_timestamp, + gst_ks_video_device_prepare_buffers, gst_ks_video_device_create_pin, + gst_ks_video_device_set_state, gst_ks_video_device_request_frame, + gst_ks_video_device_read_frame): + Guard against capturing old frames by keeping track of the last + timestamp and also zero-fill the buffers before each capture. + Only assign a master clock if the pin hasn't already got one. + Actually free buffers on the way down to avoid a huge memory leak, + as this was previously done when changing state to ACQUIRE downwards + and we now skip that state on the way down. + Add some debug. + * sys/winks/gstksvideosrc.c (DEFAULT_DEVICE_PATH, DEFAULT_DEVICE_NAME, + DEFAULT_DEVICE_INDEX, KS_WORKER_LOCK, KS_WORKER_UNLOCK, + KS_WORKER_WAIT, KS_WORKER_NOTIFY, KS_WORKER_WAIT_FOR_RESULT, + KS_WORKER_NOTIFY_RESULT, KS_WORKER_STATE_STARTING, + KS_WORKER_STATE_READY, KS_WORKER_STATE_STOPPING, + KS_WORKER_STATE_ERROR, KsWorkerState, device_path, device_name, + device_index, running, worker_thread, worker_lock, + worker_notify_cond, worker_result_cond, worker_state, + worker_pending_caps, worker_setcaps_result, worker_pending_run, + worker_run_result, gst_ks_video_src_reset, + gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_open_device, + gst_ks_video_src_close_device, gst_ks_video_src_worker_func, + gst_ks_video_src_start_worker, gst_ks_video_src_stop_worker, + gst_ks_video_src_change_state, gst_ks_video_src_set_clock, + gst_ks_video_src_set_caps, gst_ks_video_src_timestamp_buffer, + gst_ks_video_src_create): + Remove ENABLE_CLOCK_DEBUG define, it's GST_LEVEL_DEBUG after all. + Get rid of PROP_ENSLAVE_KSCLOCK and always slave the ks clock to the + GStreamer clock, it doesn't seem to hurt and matches DirectShow's + behavior. As an added bonus we usually get PresentationTime set for + each frame, so we can expand on this later for smarter latency + reporting (by looking at the diff between the timestamp from the + driver and the time according to the GStreamer clock). + Use an internal worker thread for opening the device, setting caps, + changing its state and closing it. This way we're a lot more + compatible with drivers that rely on hacks to do video-effects + between the low-level NT API and the application. Ick. + Start the ks clock and set the pin to KSSTATE_RUN on the first + create() so that we'll hopefully get hold of the GStreamer clock + from the very beginning. This way there's no chance that the + timestamps will make a sudden jump in the beginning of the stream + when we're running with a clock. + * sys/winks/kshelpers.c (CHECK_OPTIONS_FLAG, + ks_options_flags_to_string): + Reorder the flags to match the headerfile order, and make the string + a bit more compact. + * sys/winks/ksvideohelpers.c (ks_video_probe_filter_for_caps): + Avoid leaking KSPROPERTY_PIN_DATARANGES. + +2008-09-09 17:56:10 +0000 Mark Nauwelaerts + + Add jp2k plugin. Fixes #550657. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/jp2k/Makefile.am: + * ext/jp2k/gstjasperdec.c: (gst_jasper_dec_base_init), + (gst_jasper_dec_class_init), (gst_jasper_dec_init), + (gst_jasper_dec_reset), (gst_jasper_dec_sink_setcaps), + (gst_jasper_dec_negotiate), (gst_jasper_dec_get_picture), + (gst_jasper_dec_chain), (gst_jasper_dec_set_property), + (gst_jasper_dec_get_property), (gst_jasper_dec_change_state), + (plugin_init): + * ext/jp2k/gstjasperdec.h: + Add jp2k plugin. Fixes #550657. + +2008-09-09 11:47:42 +0000 Edward Hervey + + gst/mpegdemux/: Fix conflicting public names in new mpeg demuxers. + Original commit message from CVS: + * gst/mpegdemux/flumpegdemux.c: (plugin_init): + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_sync_get_type), + (gst_flups_demux_get_type), (gst_flups_demux_plugin_init): + * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_get_type), + (gst_fluts_demux_plugin_init): + Fix conflicting public names in new mpeg demuxers. + Fixes #550468 + +2008-09-09 01:14:10 +0000 Michael Smith + + gst/aiffparse/aiffparse.c: Support chunks in AIFF in any order in pull mode, and any order so long as we get COMM bef... + Original commit message from CVS: + * gst/aiffparse/aiffparse.c: + Support chunks in AIFF in any order in pull mode, and any order so + long as we get COMM before the actual data (SSND) in push mode. + Fixes playback of AIFC files. + +2008-09-08 20:27:23 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Reset the selector state when going to READY. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_reset), + (gst_input_selector_reset), (gst_input_selector_change_state): + Reset the selector state when going to READY. + +2008-09-05 13:52:34 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Add signal to notify listeners when a sender becomes a receiver. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (on_sender_timeout), + (create_session), (gst_rtp_bin_associate), + (gst_rtp_bin_sync_chain), (gst_rtp_bin_class_init), + (gst_rtp_bin_request_new_pad): + * gst/rtpmanager/gstrtpbin.h: + Add signal to notify listeners when a sender becomes a receiver. + Tweak lip-sync code, don't store our own copy of the ts-offset of the + jitterbuffer, don't adjust sync if the change is less than 4msec. + Get the RTP timestamp <-> GStreamer timestamp relation directly from + the jitterbuffer instead of our inaccurate version from the source. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop), + (gst_rtp_jitter_buffer_get_sync): + * gst/rtpmanager/gstrtpjitterbuffer.h: + Add G_LIKELY macros, use global defines for max packet reorder and + dropouts. + Reset the jitterbuffer clock skew detection when packets seqnums are + changed unexpectedly. + * gst/rtpmanager/gstrtpsession.c: (on_sender_timeout), + (gst_rtp_session_class_init), (gst_rtp_session_init): + * gst/rtpmanager/gstrtpsession.h: + Add sender timeout signal. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew), (rtp_jitter_buffer_insert), + (rtp_jitter_buffer_get_sync): + * gst/rtpmanager/rtpjitterbuffer.h: + Add some G_LIKELY macros. + Keep track of the extended RTP timestamp so that we can report the RTP + timestamp <-> GStreamer timestamp relation for lip-sync. + Remove server timestamp gap detection code, the server can sometimes + make a huge gap in timestamps (talk spurts,...) see #549774. + Detect timetamp weirdness instead by observing the sender/receiver + timestamp relation and resync if it changes more than 1 second. + Add method to report about the current rtp <-> gst timestamp relation + which is needed for lip-sync. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (on_sender_timeout), (check_collision), (rtp_session_process_sr), + (session_cleanup): + * gst/rtpmanager/rtpsession.h: + Add sender timeout signal. + Remove inaccurate rtp <-> gst timestamp relation code, the + jitterbuffer can now do an accurate reporting about this. + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (rtp_source_update_caps), (calculate_jitter), + (rtp_source_process_rtp): + * gst/rtpmanager/rtpsource.h: + Remove inaccurate rtp <-> gst timestamp relation code. + * gst/rtpmanager/rtpstats.h: + Define global max-reorder and max-dropout constants for use in various + subsystems. + +2008-09-05 11:07:32 +0000 Sebastian Pölsterl + + sys/dvb/gstdvbsrc.c: Add DVB Adapter name to structure sent over bus. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * sys/dvb/gstdvbsrc.c: + Add DVB Adapter name to structure sent over bus. + +2008-09-03 14:02:29 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add mpeg demuxer + Original commit message from CVS: + add mpeg demuxer + +2008-09-02 17:43:42 +0000 Edward Hervey + + gst/mpegdemux/: Fix build on macosx. + Original commit message from CVS: + * gst/mpegdemux/gstmpegdemux.c: (gst_flups_demux_parse_pack_start): + * gst/mpegdemux/gstmpegtsdemux.c: (gst_fluts_demux_data_cb): + Fix build on macosx. + +2008-09-02 12:04:32 +0000 Zaheer Abbas Merali + + Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This is now dual licensed MPL and LGPL. + Original commit message from CVS: + * configure.ac: + * gst/mpegdemux/Makefile.am: + * gst/mpegdemux/flumpegdemux.c: + * gst/mpegdemux/flutspatinfo.c: + * gst/mpegdemux/flutspatinfo.h: + * gst/mpegdemux/flutspmtinfo.c: + * gst/mpegdemux/flutspmtinfo.h: + * gst/mpegdemux/flutspmtstreaminfo.c: + * gst/mpegdemux/flutspmtstreaminfo.h: + * gst/mpegdemux/gstmpegdefs.h: + * gst/mpegdemux/gstmpegdemux.c: + * gst/mpegdemux/gstmpegdemux.h: + * gst/mpegdemux/gstmpegdesc.c: + * gst/mpegdemux/gstmpegdesc.h: + * gst/mpegdemux/gstmpegtsdemux.c: + * gst/mpegdemux/gstmpegtsdemux.h: + * gst/mpegdemux/gstpesfilter.c: + * gst/mpegdemux/gstpesfilter.h: + * gst/mpegdemux/gstsectionfilter.c: + * gst/mpegdemux/gstsectionfilter.h: + Add Fluendo MPEG PS and TS demuxers to gst-plugins-bad. This + is now dual licensed MPL and LGPL. + +2008-09-02 11:23:02 +0000 Wim Taymans + + gst/mpegtsmux/mpegtsmux.c: Set caps on outgoing buffers. + Original commit message from CVS: + * gst/mpegtsmux/mpegtsmux.c: (new_packet_cb): + Set caps on outgoing buffers. + +2008-09-02 09:56:44 +0000 Tim-Philipp Müller + + Enable/fix up translations for these plugins. + Original commit message from CVS: + * ext/resindvd/plugin.c: (plugin_init): + * ext/resindvd/resindvdsrc.c: + * ext/twolame/gsttwolame.c: (plugin_init): + * gst/aiffparse/aiffparse.c: (plugin_init): + Enable/fix up translations for these plugins. + * po/LINGUAS: + Add 'ca' to LINGUAS. + * po/POTFILES.in: + * po/POTFILES.skip: + Add more files for translation and more files which tools + should skip. + +2008-09-02 09:46:04 +0000 Edward Hervey + + gst/mpegtsmux/tsmux/tsmux.c: Fix build on macosx. + Original commit message from CVS: + * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_write_ts_header): + Fix build on macosx. + +2008-09-01 17:54:00 +0000 Christian Schaller + + * examples/Makefile.am: + * gst-plugins-bad.spec.in: + update spec file and add missing subdirs in Makefile.am + Original commit message from CVS: + update spec file and add missing subdirs in Makefile.am + +2008-09-01 17:49:59 +0000 Sebastian Dröge + + gst/mpegtsmux/mpegtsmux_aac.c: Allocate a fixed size buffer on the stack instead of using malloc(). + Original commit message from CVS: + * gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac): + Allocate a fixed size buffer on the stack instead of using malloc(). + * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_free), + (tsmux_program_new), (tsmux_program_free): + * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new), + (tsmux_stream_free), (tsmux_stream_consume), + (tsmux_stream_add_data): + Use GSlice. + +2008-09-01 17:47:03 +0000 Sebastian Dröge + + gst/mpegtsmux/mpegtsmux.c: Add support for muxing MPEG4 video. + Original commit message from CVS: + * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_create_stream): + Add support for muxing MPEG4 video. + +2008-09-01 17:41:39 +0000 Edward Hervey + + gst/mpegtsmux/tsmux/: Fix build of mpegtsmux. + Original commit message from CVS: + * gst/mpegtsmux/tsmux/tsmux.h: + * gst/mpegtsmux/tsmux/tsmuxstream.h: + Fix build of mpegtsmux. + +2008-09-01 16:38:40 +0000 Sebastian Dröge + + Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This is renamed to mpegtsmux to prevent conflicts. Also al... + Original commit message from CVS: + * configure.ac: + * gst/mpegtsmux/Makefile.am: + * gst/mpegtsmux/mpegtsmux.c: (mpegtsmux_base_init), + (mpegtsmux_class_init), (mpegtsmux_init), (mpegtsmux_dispose), + (gst_mpegtsmux_set_property), (gst_mpegtsmux_get_property), + (release_buffer_cb), (mpegtsmux_create_stream), + (mpegtsmux_create_streams), (mpegtsmux_choose_best_stream), + (mpegtsmux_collected), (mpegtsmux_request_new_pad), + (mpegtsmux_release_pad), (new_packet_cb), + (mpegtsdemux_prepare_srcpad), (mpegtsmux_change_state), + (plugin_init): + * gst/mpegtsmux/mpegtsmux.h: + * gst/mpegtsmux/mpegtsmux_aac.c: (mpegtsmux_prepare_aac): + * gst/mpegtsmux/mpegtsmux_aac.h: + * gst/mpegtsmux/mpegtsmux_h264.c: (mpegtsmux_prepare_h264): + * gst/mpegtsmux/mpegtsmux_h264.h: + * gst/mpegtsmux/tsmux/Makefile.am: + * gst/mpegtsmux/tsmux/crc.h: + * gst/mpegtsmux/tsmux/tsmux.c: (tsmux_new), (tsmux_set_write_func), + (tsmux_set_pat_frequency), (tsmux_get_pat_frequency), (tsmux_free), + (tsmux_program_new), (tsmux_set_pmt_frequency), + (tsmux_get_pmt_frequency), (tsmux_program_add_stream), + (tsmux_program_set_pcr_stream), (tsmux_get_new_pid), + (tsmux_create_stream), (tsmux_find_stream), (tsmux_packet_out), + (tsmux_write_adaptation_field), (tsmux_write_ts_header), + (tsmux_write_stream_packet), (tsmux_program_free), + (tsmux_write_section), (tsmux_write_section_hdr), + (tsmux_write_pat), (tsmux_write_pmt): + * gst/mpegtsmux/tsmux/tsmux.h: + * gst/mpegtsmux/tsmux/tsmuxcommon.h: + * gst/mpegtsmux/tsmux/tsmuxstream.c: (tsmux_stream_new), + (tsmux_stream_get_pid), (tsmux_stream_free), + (tsmux_stream_set_buffer_release_func), (tsmux_stream_consume), + (tsmux_stream_at_pes_start), (tsmux_stream_bytes_avail), + (tsmux_stream_bytes_in_buffer), (tsmux_stream_get_data), + (tsmux_stream_pes_header_length), + (tsmux_stream_find_pts_dts_within), + (tsmux_stream_write_pes_header), (tsmux_stream_add_data), + (tsmux_stream_get_es_descrs), (tsmux_stream_pcr_ref), + (tsmux_stream_pcr_unref), (tsmux_stream_is_pcr), + (tsmux_stream_get_pts): + * gst/mpegtsmux/tsmux/tsmuxstream.h: + Add Fluendo MPEG-TS muxer and libtsmux to gst-plugins-bad. This + is renamed to mpegtsmux to prevent conflicts. Also all relevant + informations about copyright and license are added to the top of + every file but apart from that no changes compared to the latest + SVN versions happened. + +2008-09-01 16:05:45 +0000 Edward Hervey + + tests/check/elements/audioresample.c: Now that GstBaseTransform is 'fixed' ... remove cruft from tests. + Original commit message from CVS: + * tests/check/elements/audioresample.c: (setup_audioresample), + (fail_unless_perfect_stream), (test_perfect_stream_instance), + (test_discont_stream_instance): + Now that GstBaseTransform is 'fixed' ... remove cruft from tests. + Add debugging for coherence. + +2008-09-01 13:23:03 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Reuse the get_linked_pads for both source and sinkpads because they are the same. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_input_selector_init), + (gst_input_selector_event), (gst_input_selector_query): + Reuse the get_linked_pads for both source and sinkpads because they are + the same. + Implement a custum event handler and get the internally linked pad + directly instead of relying on the default (slower) implementation. + +2008-08-31 15:01:32 +0000 Sebastian Dröge + + ext/celt/gstceltdec.c: Correctly take the granulepos from upstream if possible and correctly handle the granulepos in... + Original commit message from CVS: + * ext/celt/gstceltdec.c: (celt_dec_chain_parse_data): + Correctly take the granulepos from upstream if possible and + correctly handle the granulepos in various calculations: the + granulepos is the sample number of the _last_ sample in a frame, not + the first. + * ext/celt/gstceltenc.c: (gst_celt_enc_sinkevent), + (gst_celt_enc_encode), (gst_celt_enc_chain), + (gst_celt_enc_change_state): + * ext/celt/gstceltenc.h: + Handle non-zero start timestamps in the encoder and detect/handle + stream discontinuities. Fixes bug #547075. + +2008-08-31 12:20:33 +0000 Rov Juvano + + Add scaletempo plugin, which allows to scale the speed of audio without changing the pitch by handling seeks with a r... + Original commit message from CVS: + Patch by: Rov Juvano + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-scaletempo.xml: + * examples/scaletempo/Makefile.am: + * examples/scaletempo/demo-gui.c: (pop_status_bar), + (status_bar_printf), (demo_gui_seek_bar_format), (update_position), + (demo_gui_seek_bar_change), (demo_gui_do_change_rate), + (demo_gui_do_set_rate), (demo_gui_do_rate_entered), + (demo_gui_do_toggle_advanced), (demo_gui_do_toggle_disabled), + (demo_gui_do_seek), (demo_gui_do_play), (demo_gui_do_pause), + (demo_gui_do_play_pause), (demo_gui_do_open_file), + (demo_gui_do_playlist_prev), (demo_gui_do_playlist_next), + (demo_gui_do_about_dialog), (demo_gui_do_quit), + (demo_gui_request_set_stride), (demo_gui_request_set_overlap), + (demo_gui_request_set_search), (demo_gui_rate_changed), + (demo_gui_playing_started), (demo_gui_playing_paused), + (demo_gui_playing_ended), (demo_gui_player_errored), + (demo_gui_stride_changed), (demo_gui_overlap_changed), + (demo_gui_search_changed), (demo_gui_set_player_func), + (demo_gui_set_playlist_func), (build_gvalue_array), + (create_action), (demo_gui_show_func), (demo_gui_set_player), + (demo_gui_set_playlist), (demo_gui_show), (demo_gui_get_property), + (demo_gui_set_property), (demo_gui_init), (demo_gui_class_init), + (demo_gui_get_type): + * examples/scaletempo/demo-gui.h: + * examples/scaletempo/demo-main.c: (handle_error_message), + (handle_quit), (main): + * examples/scaletempo/demo-player.c: (no_pipeline), + (demo_player_event_listener), (demo_player_state_changed_cb), + (demo_player_eos_cb), (demo_player_build_pipeline), (_set_rate), + (demo_player_scale_rate_func), (demo_player_set_rate_func), + (_set_state_and_wait), (demo_player_load_uri_func), + (demo_player_play_func), (demo_player_pause_func), (_seek_to), + (demo_player_seek_by_func), (demo_player_seek_to_func), + (demo_player_get_position_func), (demo_player_get_duration_func), + (demo_player_scale_rate), (demo_player_set_rate), + (demo_player_load_uri), (demo_player_play), (demo_player_pause), + (demo_player_seek_by), (demo_player_seek_to), + (demo_player_get_position), (demo_player_get_duration), + (demo_player_get_property), (demo_player_set_property), + (demo_player_init), (demo_player_class_init), + (demo_player_get_type): + * examples/scaletempo/demo-player.h: + * gst/scaletempo/Makefile.am: + * gst/scaletempo/gstscaletempo.c: (best_overlap_offset_float), + (best_overlap_offset_s16), (output_overlap_float), + (output_overlap_s16), (fill_queue), (reinit_buffers), + (gst_scaletempo_transform), (gst_scaletempo_transform_size), + (gst_scaletempo_sink_event), (gst_scaletempo_set_caps), + (gst_scaletempo_get_property), (gst_scaletempo_set_property), + (gst_scaletempo_base_init), (gst_scaletempo_class_init), + (gst_scaletempo_init): + * gst/scaletempo/gstscaletempo.h: + * gst/scaletempo/gstscaletempoplugin.c: (plugin_init): + Add scaletempo plugin, which allows to scale the speed of audio without + changing the pitch by handling seeks with a rate!=1.0. + Integrate it into the docs and add the example application for it. + Fixes bug #537700. + +2008-08-30 20:22:01 +0000 David Schleef + + ext/dirac/gstdiracenc.cc: Fix some memleaks. + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: Fix some memleaks. + +2008-08-30 06:30:42 +0000 David Schleef + + ext/dirac/gstdiracenc.cc: Fix EOS handling. Clean up at object disposal. Handle 4:2:2 and 4:4:4 video. + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: Fix EOS handling. Clean up at + object disposal. Handle 4:2:2 and 4:4:4 video. + +2008-08-29 14:05:25 +0000 Jan Schmidt + + ext/resindvd/resindvdbin.c: Fix compiler warning on Forte. + Original commit message from CVS: + * ext/resindvd/resindvdbin.c: + Fix compiler warning on Forte. + +2008-08-29 13:57:39 +0000 Jan Schmidt + + configure.ac: Commit FIONREAD check, needed for the dccp src. + Original commit message from CVS: + * configure.ac: + Commit FIONREAD check, needed for the dccp src. + +2008-08-29 12:16:27 +0000 Christian Schaller + + * ext/Makefile.am: + * gst-plugins-bad.spec.in: + update spec file to include latest plugins, add apexsrc diretory to disted files + Original commit message from CVS: + update spec file to include latest plugins, add apexsrc diretory to disted files + +2008-08-29 11:36:41 +0000 Edward Hervey + + ext/faac/gstfaac.*: Add code for calculating proper timestamp/duration for the trailing encoded buffers that faac wil... + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_init), (gst_faac_sink_event), + (gst_faac_chain), (gst_faac_change_state): + * ext/faac/gstfaac.h: + Add code for calculating proper timestamp/duration for the trailing + encoded buffers that faac will output when receiving EOS. + +2008-08-29 08:57:14 +0000 Sebastian Dröge + + configure.ac: Fix CFLAGS and LIBS for the apexsink. + Original commit message from CVS: + * configure.ac: + Fix CFLAGS and LIBS for the apexsink. + +2008-08-28 22:02:28 +0000 Ole André Vadla Ravnås + + sys/winks/ksvideohelpers.c (ks_video_media_type_free): Avoid leaking the KSDATARANGE member of each KsVideoMediaType. + Original commit message from CVS: + * sys/winks/ksvideohelpers.c (ks_video_media_type_free): + Avoid leaking the KSDATARANGE member of each KsVideoMediaType. + +2008-08-28 17:16:51 +0000 Jan Schmidt + + gst/dccp/: Fix compilation on Solaris by including filio.h as needed. + Original commit message from CVS: + * gst/dccp/gstdccp.c: + * gst/dccp/gstdccpclientsrc.c: + Fix compilation on Solaris by including filio.h as needed. + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + Fix compilation with Forte - apparently it hates concatenating a + macro argument that starts with an underscore?? + +2008-08-28 17:01:30 +0000 Jérémie Bernard + + Add apexsink for audio output to Apple AirPort Express Wireless devices. Fixes bug #542510. + Original commit message from CVS: + Patch by: Jérémie Bernard + * configure.ac: + * ext/apexsink/LGPL-3.0.txt: + * ext/apexsink/Makefile.am: + * ext/apexsink/gstapexplugin.c: (plugin_init): + * ext/apexsink/gstapexraop.c: (g_strdel), (gst_apexraop_send), + (gst_apexraop_recv), (gst_apexraop_new), (gst_apexraop_free), + (gst_apexraop_set_host), (gst_apexraop_get_host), + (gst_apexraop_set_port), (gst_apexraop_get_port), + (gst_apexraop_set_useragent), (gst_apexraop_get_useragent), + (gst_apexraop_connect), (gst_apexraop_get_jacktype), + (gst_apexraop_get_jackstatus), (gst_apexraop_close), + (gst_apexraop_set_volume), (gst_apexraop_write_bits), + (gst_apexraop_write), (gst_apexraop_flush): + * ext/apexsink/gstapexraop.h: + * ext/apexsink/gstapexsink.c: (gst_apexsink_jackstatus_get_type), + (gst_apexsink_jacktype_get_type), (gst_apexsink_interfaces_init), + (gst_apexsink_implements_interface_init), + (gst_apexsink_mixer_interface_init), + (gst_apexsink_interface_supported), + (gst_apexsink_mixer_list_tracks), (gst_apexsink_mixer_set_volume), + (gst_apexsink_mixer_get_volume), (gst_apexsink_base_init), + (gst_apexsink_class_init), (gst_apexsink_init), + (gst_apexsink_set_property), (gst_apexsink_get_property), + (gst_apexsink_finalise), (gst_apexsink_open), + (gst_apexsink_prepare), (gst_apexsink_write), + (gst_apexsink_unprepare), (gst_apexsink_delay), + (gst_apexsink_reset), (gst_apexsink_close): + * ext/apexsink/gstapexsink.h: + Add apexsink for audio output to Apple AirPort Express Wireless + devices. Fixes bug #542510. + +2008-08-28 15:21:45 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Send EOS when the session object instructs us to. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp), + (gst_rtp_session_event_send_rtp_sink): + Send EOS when the session object instructs us to. + * gst/rtpmanager/rtpsession.c: (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Make it possible for the session manager to instruct us to send EOS. We + currently will EOS when the session is a sender and when the sender part + goes EOS. This is not entirely correct behaviour because the session + could still participate as a receiver. + Fixes #549409. + +2008-08-28 01:03:24 +0000 Michael Smith + + gst/aiffparse/aiffparse.c: Read size of chunks preceeding the audio data with the correct endianness. Fixes playback ... + Original commit message from CVS: + * gst/aiffparse/aiffparse.c: + Read size of chunks preceeding the audio data with the + correct endianness. Fixes playback of some files. + Fixes #538500 + +2008-08-28 00:25:28 +0000 Michael Smith + + Add an AIFF parsing element, heavily based on wavparse. + Original commit message from CVS: + * configure.ac: + * gst/aiffparse/Makefile.am: + * gst/aiffparse/aiffparse.c: + * gst/aiffparse/aiffparse.h: + Add an AIFF parsing element, heavily based on wavparse. + +2008-08-27 21:33:07 +0000 Ole André Vadla Ravnås + + * ChangeLog: + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideosrc.c: + sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init, gst_ks_video_device_set_state): + Original commit message from CVS: + * sys/winks/gstksvideodevice.c (gst_ks_video_device_class_init, + gst_ks_video_device_set_state): + Don't set the pin state to KSSTATE_RUN from the streaming thread. + Skip KSSTATE_ACQUIRE when changing pin state downwards. + Be nice and specify G_PARAM_STATIC_STRINGS. + Remove unused finalize method. + * sys/winks/gstksvideosrc.c (DEFAULT_ENABLE_QUIRKS, PROP_ENABLE_QUIRKS, + enable_quirks, gst_ks_video_src_class_init, gst_ks_video_src_init, + gst_ks_video_src_finalize, gst_ks_video_src_get_property, + gst_ks_video_src_set_property, gst_ks_video_src_reset, + gst_ks_video_src_apply_driver_quirks, gst_ks_video_src_change_state, + gst_ks_video_src_set_caps): + First driver quirk: work around Logitech's hostile driver software to + improve stability and performance. See comments for details. + Provide a property to disable driver quirks (enabled by default). + Be nice and specify G_PARAM_STATIC_STRINGS. + Remove unused dispose method. + Tweak include order. + +2008-08-27 15:45:16 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Implement the LATENCY query in a better way by taking the latency of all sinkpads an... + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_input_selector_init), + (gst_input_selector_query): + Implement the LATENCY query in a better way by taking the latency of all + sinkpads and taking the min/max instead of just taking a random pad. + +2008-08-26 12:33:16 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/tomsmocomp/: Unroll the loop to handle two bytes at once. This should give a small speedup an... + Original commit message from CVS: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: + Unroll the loop to handle two bytes at once. This should give + a small speedup and makes it possible to handle chroma and luma + different which is needed later. + +2008-08-26 11:18:38 +0000 Edward Hervey + + gst/dccp/gstdccpserversink.*: Don't put globals only used by one '.c' file in a header ! + Original commit message from CVS: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversink.h: + Don't put globals only used by one '.c' file in a header ! + Declare it as static, fixes build on macosx. + +2008-08-26 11:13:24 +0000 Edward Hervey + + gst/dccp/gstdccp.c: Whoops, that was one fix too much :) + Original commit message from CVS: + * gst/dccp/gstdccp.c: (gst_dccp_send_buffer): + Whoops, that was one fix too much :) + +2008-08-26 11:08:34 +0000 Edward Hervey + + gst/dccp/gstdccp.c: size_t's size varies by platform/architecture. Use glib convenience macro instead. Fixes build on... + Original commit message from CVS: + * gst/dccp/gstdccp.c: (gst_dccp_read_buffer), + (gst_dccp_send_buffer), (gst_dccp_set_sock_windowsize): + size_t's size varies by platform/architecture. Use glib convenience + macro instead. Fixes build on macosx. + Remove ending '\n' in debug statements. + +2008-08-26 11:01:43 +0000 Edward Hervey + + gst/pcapparse/gstpcapparse.c: Remove unused code and fix includes. + Original commit message from CVS: + * gst/pcapparse/gstpcapparse.c: (gst_pcap_parse_class_init): + Remove unused code and fix includes. + +2008-08-25 14:37:45 +0000 Sebastian Dröge + + gst/deinterlace2/: First part of the C implementation of the tomsmocomp deinterlacing algorithm. This only supports s... + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_method_class_init): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: + (gst_deinterlace_method_tomsmocomp_class_init): + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: + First part of the C implementation of the tomsmocomp deinterlacing + algorithm. This only supports search-effort=0 currently, is painfully + slow and needs some cleanup later when all search-effort settings + are implemented in C. + +2008-08-24 22:05:48 +0000 Ole André Vadla Ravnås + + New plugin for low-latency video capture on Windows (#519935). + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/winks/Makefile.am: + * sys/winks/gstksclock.c: + * sys/winks/gstksclock.h: + * sys/winks/gstksvideodevice.c: + * sys/winks/gstksvideodevice.h: + * sys/winks/gstksvideosrc.c: + * sys/winks/gstksvideosrc.h: + * sys/winks/kshelpers.c: + * sys/winks/kshelpers.h: + * sys/winks/ksvideohelpers.c: + * sys/winks/ksvideohelpers.h: + New plugin for low-latency video capture on Windows (#519935). + Uses Kernel Streaming, the lowest level API for doing video capture + on Windows (more or less just raw ioctls). + +2008-08-24 16:55:48 +0000 Ole André Vadla Ravnås + + Added documentation blobs. Thanks to Stefan for noticing! + Original commit message from CVS: + * gst/pcapparse/gstpcapparse.c: + * sys/winscreencap/gstdx9screencapsrc.c: + * sys/winscreencap/gstgdiscreencapsrc.c: + Added documentation blobs. Thanks to Stefan for noticing! + +2008-08-24 13:53:29 +0000 Ole André Vadla Ravnås + + New plugin: pcapparse (#520899). + Original commit message from CVS: + * configure.ac: + * gst/pcapparse/Makefile.am: + * gst/pcapparse/gstpcapparse.c: + * gst/pcapparse/gstpcapparse.h: + New plugin: pcapparse (#520899). + +2008-08-24 13:23:44 +0000 Haakon Sporsheim + + New plugin: winscreencap (#463941). + Original commit message from CVS: + patch by: Haakon Sporsheim + * configure.ac: + * sys/Makefile.am: + * sys/winscreencap/Makefile.am: + * sys/winscreencap/gstdx9screencapsrc.c: + * sys/winscreencap/gstdx9screencapsrc.h: + * sys/winscreencap/gstgdiscreencapsrc.c: + * sys/winscreencap/gstgdiscreencapsrc.h: + * sys/winscreencap/gstwinscreencap.c: + * sys/winscreencap/gstwinscreencap.h: + New plugin: winscreencap (#463941). + +2008-08-23 00:01:39 +0000 Michael Smith + + sys/dshowdecwrapper/gstdshowaudiodec.c: Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio is correc... + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.c: + Flip mpeg1/mpeg2 arrays for mpeg audio. Detect which type the audio + is correctly, instead of backwards. No functional changes, since this + mistake was completely self-consistent. + +2008-08-22 06:27:57 +0000 Stefan Kost + + docs/plugins/gst-plugins-bad-plugins-docs.sgml: Add, but commented out xml/element-dc1394.xml. Its documented, but + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + Add, but commented out xml/element-dc1394.xml. Its documented, but + I can't get it to be build. + * ext/celt/gstceltdec.c: + * ext/celt/gstceltenc.c: + Fix doc warnings and reformat the doc block. + +2008-08-21 13:22:38 +0000 Leandro Melo de Sales + + Add dccp plugin. Fixes #542390. + Original commit message from CVS: + patch by: Leandro Melo de Sales + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-dccp.xml: + * gst/dccp/Makefile.am: + * gst/dccp/gstdccp.c: + * gst/dccp/gstdccp.h: + * gst/dccp/gstdccpclientsink.c: + * gst/dccp/gstdccpclientsink.h: + * gst/dccp/gstdccpclientsrc.c: + * gst/dccp/gstdccpclientsrc.h: + * gst/dccp/gstdccpplugin.c: + * gst/dccp/gstdccpserversink.c: + * gst/dccp/gstdccpserversink.h: + * gst/dccp/gstdccpserversrc.c: + * gst/dccp/gstdccpserversrc.h: + * tests/icles/dccp/README: + * tests/icles/dccp/call/README: + * tests/icles/dccp/call/DCCPClient.c: + * tests/icles/dccp/call/DCCPServer.c: + * tests/icles/dccp/file/DCCPClientSaveFile.c: + * tests/icles/dccp/file/DCCPServerSendFile.c: + * tests/icles/dccp/mic/DCCPClientPlayMic.c: + * tests/icles/dccp/mic/DCCPServerMic.c: + * tests/icles/dccp/mp3/DCCPClientPlayMP3.c: + * tests/icles/dccp/mp3/DCCPServerSendMP3.c: + * tests/icles/dccp/mp3Speex/DCCPClientPlaySpeexMP3.c: + * tests/icles/dccp/mp3Speex/DCCPServerSendSpeexMP3.c: + * tests/icles/dccp/mp3Stream/DCCPClientPlayMP3Stream.c: + * tests/icles/dccp/mp3Stream/DCCPServerSendMP3Stream.c: + Add dccp plugin. Fixes #542390. + +2008-08-20 22:24:28 +0000 Tim-Philipp Müller + + configure.ac: Remove bits that presumably weren't supposed to be committed. + Original commit message from CVS: + * configure.ac: + Remove bits that presumably weren't supposed to be committed. + +2008-08-20 21:44:22 +0000 Michael Smith + + Add new windows ACM encoder wrapper. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/acmenc/Makefile.am: + * sys/acmenc/acmenc.c: + Add new windows ACM encoder wrapper. + +2008-08-18 11:13:07 +0000 Michael Krufky + + sys/dvb/: Add ATSC tunning and channels.conf parsing support. + Original commit message from CVS: + patch by: Michael Krufky + * sys/dvb/gstdvbsrc.c: + * sys/dvb/parsechannels.c: + Add ATSC tunning and channels.conf parsing support. + Fixes #537455 + +2008-08-13 21:58:08 +0000 Michael Smith + + sys/: Initialise COM with default flags. + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.c: + * sys/dshowdecwrapper/gstdshowaudiodec.h: + * sys/dshowdecwrapper/gstdshowvideodec.c: + * sys/dshowdecwrapper/gstdshowvideodec.h: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + Initialise COM with default flags. + Only deinitialise if the initialisation was successful. + +2008-08-13 14:31:02 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Reset rtp timestamp interpollation when we detect a gap when the clock_base changed. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), + (gst_rtp_bin_sync_chain), (new_ssrc_pad_found): + Reset rtp timestamp interpollation when we detect a gap when the + clock_base changed. + Don't try to adjust the ts-offset when it's too big (> 3seconds) + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_set_ssrc): + * gst/rtpmanager/gstrtpsession.h: + Add method to set session SSRC. + * gst/rtpmanager/rtpsession.c: (check_collision), + (rtp_session_set_internal_ssrc), (rtp_session_get_internal_ssrc), + (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Added debugging for the collision checks. + Add method to change the internal SSRC of the session. + * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp): + Reset the clock base when we detect large jumps in the seqnums. + +2008-08-12 16:13:15 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.*: Do not deal with duplicated input (timestamps). If needed, a generic element can do so. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_reset), + (gst_x264_enc_chain), (gst_x264_enc_encode_frame): + * ext/x264/gstx264enc.h: + Do not deal with duplicated input (timestamps). If needed, + a generic element can do so. + Do not manipulate input timestamps on the way out, + since that shifts the timeline and A/V sync. + +2008-08-12 15:41:48 +0000 Mark Nauwelaerts + + docs/plugins/gst-plugins-bad-plugins.args: Integrate new properties into documentation. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + Integrate new properties into documentation. + * ext/x264/gstx264enc.c: (gst_x264_enc_class_init), + (gst_x264_enc_init), (gst_x264_enc_init_encoder), + (gst_x264_enc_set_property), (gst_x264_enc_get_property): + Fix up API prior to eventual plugin move. + API: GstX264Enc:pass (provides more options, and changed to enum) + +2008-08-12 14:31:57 +0000 Mark Nauwelaerts + + Update and add documentation for mplex. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-mplex.xml: + * ext/mplex/gstmplex.cc: + Update and add documentation for mplex. + * ext/mpeg2enc/gstmpeg2enc.cc: + Documentation update. + +2008-08-12 13:08:39 +0000 Mark Nauwelaerts + + Add documentation and unit test for x264enc. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/x264/gstx264enc.c: + * tests/check/Makefile.am: + * tests/check/elements/x264enc.c: (setup_x264enc), + (cleanup_x264enc), (GST_START_TEST), (x264enc_suite), (main): + Add documentation and unit test for x264enc. + +2008-08-11 17:24:58 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.c: Allocate some buffers in more adaptive and economical fashion. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_init), + (gst_x264_enc_header_buf), (gst_x264_enc_encode_frame): + Allocate some buffers in more adaptive and economical fashion. + +2008-08-11 15:16:14 +0000 Mark Nauwelaerts + + configure.ac: Check for sufficiently up-to-date x264 API. + Original commit message from CVS: + * configure.ac: + Check for sufficiently up-to-date x264 API. + * ext/x264/gstx264enc.c: (gst_x264_enc_pass_get_type), + (gst_x264_enc_base_init), (gst_x264_enc_class_init), + (gst_x264_enc_init), (gst_x264_enc_init_encoder), + (gst_x264_enc_set_property), (gst_x264_enc_get_property): + * ext/x264/gstx264enc.h: + Expose some more parameters of the x264 encoder as properties. + +2008-08-11 07:20:15 +0000 Stefan Kost + + gst/rtpmanager/gstrtpbin.c: Print the pad-name in debug log. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: + Print the pad-name in debug log. + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: + * sys/dshowsrcwrapper/gstdshowvideosrc.c: + Use "-" instead of "_" in property names. Can we call them just + "device" like everywhere else? + +2008-08-08 15:07:12 +0000 Mark Nauwelaerts + + ext/x264/gstx264enc.c: Coding style and layout; re-order some functions in more typical and natural flow. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_log_callback), + (gst_x264_enc_finalize), (gst_x264_enc_header_buf), + (gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps), + (gst_x264_enc_flush_frames): + Coding style and layout; re-order some functions in more + typical and natural flow. + +2008-08-08 14:19:16 +0000 Mark Nauwelaerts + + ext/x264/: Use GQueue in stead of custom queue code. + Original commit message from CVS: + * ext/x264/Makefile.am: + * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps), + (gst_x264_enc_sink_set_caps), (gst_x264_enc_init), + (gst_x264_enc_reset), (gst_x264_enc_finalize), + (gst_x264_enc_flush_frames), (gst_x264_enc_sink_event), + (gst_x264_enc_chain), (gst_x264_enc_encode_frame), + (gst_x264_enc_change_state), (gst_x264_enc_set_property): + * ext/x264/gstx264enc.h: + Use GQueue in stead of custom queue code. + Factorize flushing out encoder delayed frames. + Factorize initialization and state change reset. + +2008-08-08 10:56:02 +0000 Mark Nauwelaerts + + Use configure-generated _stdint.h. + Original commit message from CVS: + * ext/x264/gstx264enc.h: + * sys/fbdev/gstfbdevsink.c: + Use configure-generated _stdint.h. + +2008-08-08 10:13:36 +0000 Mark Nauwelaerts + + ext/x264/: Use video format library and GST_WRITE_*_BE macros where applicable. + Original commit message from CVS: + * ext/x264/Makefile.am: + * ext/x264/gstx264enc.c: (gst_x264_enc_header_buf), + (gst_x264_enc_sink_set_caps), (gst_x264_enc_base_init), + (gst_x264_enc_class_init), (gst_x264_enc_log_callback), + (gst_x264_enc_init), (gst_x264_enc_init_encoder), + (gst_x264_enc_finalize), (gst_x264_enc_chain), + (gst_x264_enc_encode_frame), (plugin_init): + * ext/x264/gstx264enc.h: + Use video format library and GST_WRITE_*_BE macros where applicable. + Use finalize in stead of dispose. + Set up debug category and log callback. + +2008-08-07 16:20:30 +0000 Frederic Crozat + + Make sure gettext returns translations in UTF-8 encoding rather than in the current locale encoding (#546822). + Original commit message from CVS: + Patch by: Frederic Crozat + * ext/sndfile/gstsf.c: (plugin_init): + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_plugin_init): + * sys/oss4/oss4-audio.c: (plugin_init): + Make sure gettext returns translations in UTF-8 encoding rather + than in the current locale encoding (#546822). + +2008-08-07 14:34:03 +0000 Sebastian Dröge + + ext/twolame/gsttwolame.*: Allow raw float samples as input for encoding. + Original commit message from CVS: + * ext/twolame/gsttwolame.c: (gst_two_lame_sink_setcaps), + (gst_two_lame_chain): + * ext/twolame/gsttwolame.h: + Allow raw float samples as input for encoding. + +2008-08-07 13:15:21 +0000 Stefan Kost + + ext/jack/gstjackaudiosrc.c: Try committing this once again. Now properly renamed. + Original commit message from CVS: + * ext/jack/gstjackaudiosrc.c: + Try committing this once again. Now properly renamed. + +2008-08-07 09:09:44 +0000 Stefan Kost + + docs/plugins/: docs/plugins/inspect/plugin-jack.xml + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-jack.xml + Add new element to docs. + * ext/jack/gstjack.h + Add missing file. + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + Rename jackaudiosrc to jack_audio_src. + +2008-08-07 08:47:40 +0000 Tristan Matthews + + ext/jack/: Add a jackaudiosrc. Refactor sink slightly for better code reuse. + Original commit message from CVS: + patch by: Tristan Matthews + * ext/jack/Makefile.am: + * ext/jack/gstjack.c: + * ext/jack/gstjackaudioclient.c: + * ext/jack/gstjackaudiosink.c: + * ext/jack/gstjackaudiosink.h: + * ext/jack/gstjackaudiosrc.c: + * ext/jack/gstjackaudiosrc.h: + * ext/jack/gstjackringbuffer.h: + Add a jackaudiosrc. Refactor sink slightly for better code reuse. + Fixes #545197. + +2008-08-06 15:49:43 +0000 Sebastian Dröge + + docs/plugins/: Add twolame and celt plugins to the docs. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-celt.xml: + * docs/plugins/inspect/plugin-twolame.xml: + Add twolame and celt plugins to the docs. + +2008-08-05 09:42:53 +0000 Olivier Crete + + gst/rtpmanager/gstrtpjitterbuffer.c: Make the buffer metadata writable before inserting it in the jitterbuffer becaus... + Original commit message from CVS: + Based on patch by: Olivier Crete + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + Make the buffer metadata writable before inserting it in the + jitterbuffer because the jitterbuffer will modify the timestamps. + * gst/rtpmanager/rtpjitterbuffer.c: + Update method comment about requiring writable metadata on buffers. + * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr), + (rtp_session_process_rtcp): + Make the RTCP buffer metadata writable because we want to modify the + metadata. + Fixes #546312. + +2008-08-05 09:05:35 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Move the select-all logic into the activation of the currently selected pad. We want... + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_bufferalloc), + (gst_selector_pad_chain), (gst_input_selector_getcaps), + (gst_input_selector_activate_sinkpad): + Move the select-all logic into the activation of the currently selected + pad. We want to remember the last pad with activity in select-all mode. + Fix the getcaps function, we can produce the union of the upstream caps + in select-all mode, not the intersection like proxy_getcaps() does. + +2008-08-05 09:00:50 +0000 Håvard Graff + + gst/rtpmanager/gstrtpjitterbuffer.c: Fix debug by logging the right seqnum. + Original commit message from CVS: + Patch by: Håvard Graff + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain): + Fix debug by logging the right seqnum. + +2008-08-05 08:58:27 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Release lock before emitting the request-pt-map signal. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (get_pt_map): + Release lock before emitting the request-pt-map signal. + Fixes #543480. + +2008-08-02 18:48:17 +0000 Sebastian Dröge + + gst/deinterlace2/: Use oil_memcpy() instead of memcpy() as it's faster for the sizes that are usually used here. + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_simple_method_interpolate_scanline), + (gst_deinterlace_simple_method_copy_scanline), + (gst_deinterlace_simple_method_deinterlace_frame): + * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy): + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh): + * gst/deinterlace2/tvtime/scalerbob.c: + (deinterlace_scanline_scaler_bob): + * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy): + * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave), + (copy_scanline): + * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave), + (copy_scanline): + * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave), + (copy_scanline): + Use oil_memcpy() instead of memcpy() as it's faster for the sizes that + are usually used here. + +2008-08-02 18:36:11 +0000 Sebastian Dröge + + gst/deinterlace2/: Add the remaining tvtime deinterlacing methods and fix the deinterlace_frame() implementation of G... + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_simple_method_deinterlace_frame), + (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/linear.c: + (deinterlace_scanline_linear_c), (deinterlace_scanline_linear_mmx), + (deinterlace_scanline_linear_mmxext), + (gst_deinterlace_method_linear_class_init), + (gst_deinterlace_method_linear_init): + * gst/deinterlace2/tvtime/linearblend.c: + (deinterlace_scanline_linear_blend_c), + (deinterlace_scanline_linear_blend2_c), + (deinterlace_scanline_linear_blend_mmx), + (deinterlace_scanline_linear_blend2_mmx), + (gst_deinterlace_method_linear_blend_class_init), + (gst_deinterlace_method_linear_blend_init): + * gst/deinterlace2/tvtime/plugins.h: + * gst/deinterlace2/tvtime/scalerbob.c: + (deinterlace_scanline_scaler_bob), + (gst_deinterlace_method_scaler_bob_class_init), + (gst_deinterlace_method_scaler_bob_init): + * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave), + (copy_scanline), (gst_deinterlace_method_weave_class_init), + (gst_deinterlace_method_weave_init): + * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave), + (copy_scanline), (gst_deinterlace_method_weave_bff_class_init), + (gst_deinterlace_method_weave_bff_init): + * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave), + (copy_scanline), (gst_deinterlace_method_weave_tff_class_init), + (gst_deinterlace_method_weave_tff_init): + Add the remaining tvtime deinterlacing methods and fix the + deinterlace_frame() implementation of GstDeinterlaceSimpleMethod. + +2008-08-02 18:30:56 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/vfir.c: Implement the VFIR deinterlacing method as simple method. + Original commit message from CVS: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c), + (deinterlace_line_mmx), (gst_deinterlace_method_vfir_class_init): + Implement the VFIR deinterlacing method as simple method. + +2008-08-02 18:18:54 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.*: Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that can be use... + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_simple_method_interpolate_scanline), + (gst_deinterlace_simple_method_copy_scanline), + (gst_deinterlace_simple_method_deinterlace_frame), + (gst_deinterlace_simple_method_class_init), + (gst_deinterlace_simple_method_init): + * gst/deinterlace2/gstdeinterlace2.h: + Add a GstDeinterlaceSimpleMethod subclass of GstDeinterlaceMethod that + can be used by simple deinterlacing methods. They only have to provide + a function for interpolating a scanline or copying a scanline. + +2008-08-02 18:15:49 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.c: Respect the latency of the deinterlacing algorithm for the timestamps of every bu... + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_chain): + Respect the latency of the deinterlacing algorithm for the timestamps + of every buffer. + +2008-08-02 18:13:20 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/: Add the MMX registers to the clobbered registers only if __MMX__ is defined. + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + Add the MMX registers to the clobbered registers only if __MMX__ is + defined. + +2008-08-02 18:09:56 +0000 Sebastian Dröge + + gst/deinterlace2/: Enable tomsmocomp again as the C port will be ready for the next release. + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method), + (gst_deinterlace2_class_init): + Enable tomsmocomp again as the C port will be ready for the next + release. + +2008-08-02 18:02:44 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.c: Don't use proxy_getcaps() but implement our own getcaps() function that doubles/h... + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init), + (gst_greatest_common_divisor), (gst_fraction_double), + (gst_deinterlace2_getcaps), (gst_deinterlace2_setcaps): + Don't use proxy_getcaps() but implement our own getcaps() function + that doubles/halfs the framerate if all fields should be sent out. + +2008-08-02 17:39:13 +0000 Sebastian Dröge + + Add TwoLAME MP2 encoding element, based on the LAME element. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/twolame/Makefile.am: + * ext/twolame/gsttwolame.c: (gst_two_lame_mode_get_type), + (gst_two_lame_padding_get_type), (gst_two_lame_emphasis_get_type), + (gst_two_lame_release_memory), (gst_two_lame_finalize), + (gst_two_lame_base_init), (gst_two_lame_class_init), + (gst_two_lame_src_setcaps), (gst_two_lame_sink_setcaps), + (gst_two_lame_init), (gst_two_lame_set_property), + (gst_two_lame_get_property), (gst_two_lame_sink_event), + (gst_two_lame_chain), (gst_two_lame_setup), + (gst_two_lame_change_state), (gst_two_lame_get_default_settings), + (plugin_init): + * ext/twolame/gsttwolame.h: + Add TwoLAME MP2 encoding element, based on the LAME element. + +2008-08-02 17:29:44 +0000 Sebastian Dröge + + Add CELT encoder and decoder elements based on the Speex elements. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/celt/Makefile.am: + * ext/celt/gstcelt.c: (plugin_init): + * ext/celt/gstceltdec.c: (gst_celt_dec_base_init), + (gst_celt_dec_class_init), (gst_celt_dec_reset), + (gst_celt_dec_init), (celt_dec_convert), + (celt_get_sink_query_types), (celt_dec_sink_query), + (celt_get_src_query_types), (celt_dec_src_query), + (celt_dec_src_event), (celt_dec_sink_event), + (celt_dec_chain_parse_header), (celt_dec_chain_parse_comments), + (celt_dec_chain_parse_data), (celt_dec_chain), + (celt_dec_change_state): + * ext/celt/gstceltdec.h: + * ext/celt/gstceltenc.c: (gst_celt_enc_setup_interfaces), + (gst_celt_enc_base_init), (gst_celt_enc_class_init), + (gst_celt_enc_finalize), (gst_celt_enc_sink_setcaps), + (gst_celt_enc_sink_getcaps), (gst_celt_enc_convert_src), + (gst_celt_enc_convert_sink), (gst_celt_enc_get_latency), + (gst_celt_enc_get_query_types), (gst_celt_enc_src_query), + (gst_celt_enc_sink_query), (gst_celt_enc_init), + (gst_celt_enc_create_metadata_buffer), (gst_celt_enc_setup), + (gst_celt_enc_buffer_from_data), (gst_celt_enc_push_buffer), + (gst_celt_enc_set_header_on_caps), (gst_celt_enc_sinkevent), + (gst_celt_enc_chain), (gst_celt_enc_get_property), + (gst_celt_enc_set_property), (gst_celt_enc_change_state): + * ext/celt/gstceltenc.h: + Add CELT encoder and decoder elements based on the Speex elements. + +2008-08-02 17:16:39 +0000 Tal Shalif + + ext/sdl/sdlvideosink.c: Use g_setenv() and g_unsetenv() instead of setenv() to fix compilation with mingw. Fixes bug ... + Original commit message from CVS: + Patch by: Tal Shalif + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_initsdl): + Use g_setenv() and g_unsetenv() instead of setenv() to fix compilation + with mingw. Fixes bug #545247. + +2008-08-01 23:30:29 +0000 Jan Schmidt + + configure.ac: Back to development -> 0.10.8.1 + Original commit message from CVS: + * configure.ac: + Back to development -> 0.10.8.1 + +2008-08-01 15:39:44 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + remove moved plugins from spec file + Original commit message from CVS: + remove moved plugins from spec file + +=== release 0.10.8 === + +2008-07-31 22:15:17 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mythtv.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * win32/common/config.h: + Release 0.10.8 + Original commit message from CVS: + Release 0.10.8 + +2008-07-31 22:03:26 +0000 Jan Schmidt + + * common: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/it.po: + * po/ky.po: + * po/lt.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + Original commit message from CVS: + Update .po files + +2008-07-24 23:53:56 +0000 Jan Schmidt + + configure.ac: 0.10.7.3 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.7.3 pre-release + * po/LINGUAS: + * po/id.po: + Add Indonesian translation. + +2008-07-24 00:32:37 +0000 Michael Smith + + gst/festival/gstfestival.c: Guard unistd.h with HAVE_UNISTD_H + Original commit message from CVS: + * gst/festival/gstfestival.c: + Guard unistd.h with HAVE_UNISTD_H + * gst/modplug/libmodplug/load_it.cpp: + * gst/modplug/libmodplug/sndfile.cpp: + * gst/modplug/libmodplug/sndfile.h: + * gst/modplug/libmodplug/stdafx.h: + Support for compiling with MSVC: use _MSC_VER for detecting MSVC instead + of MSC_VER. Make CanPackSamples take the type it's passed. Change scope + of a variable in load_it.cpp to MSVC's scoping rules. + * gst/sdp/gstsdpdemux.c: + Guard unistd.h with HAVE_UNISTD_H + Fixes #544457. + +2008-07-22 06:27:44 +0000 Stefan Kost + + ext/timidity/gsttimidity.c: Fix compiler warning. Fixes #544050. + Original commit message from CVS: + * ext/timidity/gsttimidity.c: + Fix compiler warning. Fixes #544050. + +2008-07-21 21:12:25 +0000 Jan Schmidt + + configure.ac: Don't check for nav_print.h any more - it should be included in the libdvdnav development package if li... + Original commit message from CVS: + * configure.ac: + Don't check for nav_print.h any more - it should be included in + the libdvdnav development package if libdvdnav headers depend on it. + Fixes: #543846 + +2008-07-21 16:03:11 +0000 Sebastian Dröge + + Link the ladspa plugin with -ldl. It's needed for dlopen() and friends for loading the ladspa plugins and previously ... + Original commit message from CVS: + * configure.ac: + * ext/ladspa/Makefile.am: + Link the ladspa plugin with -ldl. It's needed for dlopen() and friends + for loading the ladspa plugins and previously was linked in by + gmodule. Fixes bug #543848. + +2008-07-21 10:16:51 +0000 Sebastian Dröge + + gst/modplug/libmodplug/Makefile.am: Use GST_CXXFLAGS instead of GST_CFLAGS for CXXFLAGS. GST_CFLAGS can contain compi... + Original commit message from CVS: + * gst/modplug/libmodplug/Makefile.am: + Use GST_CXXFLAGS instead of GST_CFLAGS for CXXFLAGS. GST_CFLAGS + can contain compiler parameters that are invalid for C++. + Fixes bug #543860. + +2008-07-21 10:15:18 +0000 Sebastian Dröge + + ext/resindvd/Makefile.am: Dist missing header files. Fixes bug #543861. + Original commit message from CVS: + * ext/resindvd/Makefile.am: + Dist missing header files. Fixes bug #543861. + +2008-07-19 14:12:59 +0000 Jan Schmidt + + configure.ac: 0.10.7.2 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.7.2 pre-release + +2008-07-19 14:02:50 +0000 Jan Schmidt + + ext/Makefile.am: Dist and recurse into resindvd subdir + Original commit message from CVS: + * ext/Makefile.am: + Dist and recurse into resindvd subdir + +2008-07-19 13:43:04 +0000 Jan Schmidt + + configure.ac: Remove interleave and replaygain configure.ac pieces too + Original commit message from CVS: + * configure.ac: + Remove interleave and replaygain configure.ac pieces too + +2008-07-19 13:29:22 +0000 Jan Schmidt + + po/: Add new lithunian translation, and add french to the LINGUAS file. + Original commit message from CVS: + * po/LINGUAS: + * po/lt.po: + Add new lithunian translation, and add french to the LINGUAS + file. + +2008-07-19 00:58:49 +0000 Jan Schmidt + + Remove interleave and replaygain plugins that have moved to -good + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * gst/interleave/Makefile.am: + * gst/interleave/deinterleave.c: + * gst/interleave/deinterleave.h: + * gst/interleave/interleave.c: + * gst/interleave/interleave.h: + * gst/interleave/plugin.c: + * gst/interleave/plugin.h: + * gst/replaygain/Makefile.am: + * gst/replaygain/gstrganalysis.c: + * gst/replaygain/gstrganalysis.h: + * gst/replaygain/gstrglimiter.c: + * gst/replaygain/gstrglimiter.h: + * gst/replaygain/gstrgvolume.c: + * gst/replaygain/gstrgvolume.h: + * gst/replaygain/replaygain.c: + * gst/replaygain/replaygain.h: + * gst/replaygain/rganalysis.c: + * gst/replaygain/rganalysis.h: + * tests/check/Makefile.am: + * tests/check/elements/deinterleave.c: + * tests/check/elements/interleave.c: + * tests/check/elements/rganalysis.c: + * tests/check/elements/rglimiter.c: + * tests/check/elements/rgvolume.c: + Remove interleave and replaygain plugins that have moved to -good + +2008-07-18 08:34:06 +0000 Sebastian Dröge + + Disable the tomsmocomp algorithm for this release as it's buggy and has no C implementation yet. + Original commit message from CVS: + * configure.ac: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_methods_get_type), (gst_deinterlace2_set_method), + (gst_deinterlace2_class_init), (gst_deinterlace2_init): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: + (gst_deinterlace_method_greedy_l_class_init): + * gst/deinterlace2/tvtime/greedyh.c: + (gst_deinterlace_method_greedy_h_class_init): + * gst/deinterlace2/tvtime/vfir.c: + (gst_deinterlace_method_vfir_class_init): + Disable the tomsmocomp algorithm for this release as it's buggy + and has no C implementation yet. + Build the deinterlace2 plugin on all architectures but still mark it + as experimental. + Build the x86 inline assembly only if GCC inline assembly is supported + and only on x86 or amd64. Fixes bug #543286. + +2008-07-16 14:15:39 +0000 Jan Schmidt + + gst/real/gstrealvideodec.c: Add some casts to fix the build on Forte + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (open_library): + Add some casts to fix the build on Forte + +2008-07-14 14:13:54 +0000 Edward Hervey + + gst/deinterlace2/tvtime/: Fix build on x86_64 + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (gst_deinterlace_method_greedy_l_class_init): + * gst/deinterlace2/tvtime/greedyh.c: + (gst_deinterlace_method_greedy_h_class_init): + * gst/deinterlace2/tvtime/vfir.c: + (gst_deinterlace_method_vfir_class_init): + Fix build on x86_64 + +2008-07-14 07:50:01 +0000 Jan Schmidt + + ext/resindvd/gstmpegdemux.c: Remove whitespace line. + Original commit message from CVS: + * ext/resindvd/gstmpegdemux.c: + Remove whitespace line. + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + Make it so that audio/video pads aren't added to the bin + until after data flow starts. + * ext/resindvd/resin-play: + Move video buffer queue outside resindvdbin + * ext/resindvd/resindvdsrc.c: + Check that the nav_clock_id didn't already get unscheduled. + * gst/dvdspu/gstdvdspu.c: + Remove assert that sometimes triggers erroneously. + +2008-07-13 10:56:45 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedyh.asm: Always use the C implementation if width is not a multiple of 4. The assembly op... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.asm: + Always use the C implementation if width is not a multiple of 4. The + assembly optimized version only handle this and calling the C + implementation for the remaining part doesn't work because it needs + previous calculations. + +2008-07-13 10:52:03 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/: Some cleanup, use 3DNOW instead of TDNOW in macros. + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: + * gst/deinterlace2/tvtime/greedyhmacros.h: + Some cleanup, use 3DNOW instead of TDNOW in macros. + * gst/deinterlace2/tvtime/tomsmocomp.c: + (gst_deinterlace_method_tomsmocomp_class_init): + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: + The SSE method in fact only needs MMXEXT, declare it as such. + +2008-07-11 14:06:08 +0000 Jan Schmidt + + docs/plugins/.cvsignore: Ignore *-undeclared.txt + Original commit message from CVS: + * docs/plugins/.cvsignore: + Ignore *-undeclared.txt + * ext/resindvd/rsnaudiomunge.c: + Turn g_print's into debug statements. + * ext/resindvd/resin-play: + * ext/resindvd/Makefile.am: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + * ext/resindvd/rsnparsetter.c: + * ext/resindvd/rsnparsetter.h: + * ext/resindvd/rsnwrappedbuffer.c: + * ext/resindvd/rsnwrappedbuffer.h: + Add a bloated implementation of a really simple idea: Replace the + pixel-aspect-ratio in the output video with a prescribed one when + necessary. There must be an easier way. + Split the dvdspu out of the resindvdbin and put out the subpicture + stream on the subpicture pad. + * ext/resindvd/gstmpegdemux.c: + Send video-aspect events down the pipe from the demuxer. + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + Handle timed-stills somewhat using g_cond_timed_wait, with a FIXME + to make it use clock-waiting later. + * ext/resindvd/rsnbasesrc.c: + Don't overwrite the last_stop in the basesrc segment after a seamless + seek. + +2008-07-11 13:54:52 +0000 Jan Schmidt + + * docs/plugins/.gitignore: + Commit file that moap seems to have missed: Ignore *-undeclared.txt + Original commit message from CVS: + Commit file that moap seems to have missed: Ignore *-undeclared.txt + +2008-07-10 21:06:03 +0000 Stefan Kost + + Cleanup Plugin docs. Link to signals and properties. Fix sub-section titles. Drop mentining that all our example pipe... + Original commit message from CVS: + * docs/plugins/gst-plugins-base-plugins-docs.sgml: + * docs/plugins/gst-plugins-base-plugins-overrides.txt: + * docs/plugins/gst-plugins-base-plugins-sections.txt: + * docs/plugins/gst-plugins-base-plugins.args: + * docs/plugins/gst-plugins-base-plugins.hierarchy: + * docs/plugins/gst-plugins-base-plugins.interfaces: + * docs/plugins/gst-plugins-base-plugins.prerequisites: + * docs/plugins/gst-plugins-base-plugins.signals: + * docs/plugins/inspect/plugin-adder.xml: + * docs/plugins/inspect/plugin-alsa.xml: + * docs/plugins/inspect/plugin-audioconvert.xml: + * docs/plugins/inspect/plugin-audiorate.xml: + * docs/plugins/inspect/plugin-audioresample.xml: + * docs/plugins/inspect/plugin-audiotestsrc.xml: + * docs/plugins/inspect/plugin-cdparanoia.xml: + * docs/plugins/inspect/plugin-decodebin.xml: + * docs/plugins/inspect/plugin-ffmpegcolorspace.xml: + * docs/plugins/inspect/plugin-gdp.xml: + * docs/plugins/inspect/plugin-gnomevfs.xml: + * docs/plugins/inspect/plugin-libvisual.xml: + * docs/plugins/inspect/plugin-ogg.xml: + * docs/plugins/inspect/plugin-pango.xml: + * docs/plugins/inspect/plugin-playback.xml: + * docs/plugins/inspect/plugin-queue2.xml: + * docs/plugins/inspect/plugin-subparse.xml: + * docs/plugins/inspect/plugin-tcp.xml: + * docs/plugins/inspect/plugin-theora.xml: + * docs/plugins/inspect/plugin-typefindfunctions.xml: + * docs/plugins/inspect/plugin-uridecodebin.xml: + * docs/plugins/inspect/plugin-video4linux.xml: + * docs/plugins/inspect/plugin-videorate.xml: + * docs/plugins/inspect/plugin-videoscale.xml: + * docs/plugins/inspect/plugin-videotestsrc.xml: + * docs/plugins/inspect/plugin-volume.xml: + * docs/plugins/inspect/plugin-vorbis.xml: + * docs/plugins/inspect/plugin-ximagesink.xml: + * docs/plugins/inspect/plugin-xvimagesink.xml: + * ext/alsa/gstalsamixer.c: + * ext/alsa/gstalsasink.c: + * ext/alsa/gstalsasrc.c: + * ext/gio/gstgiosink.c: + * ext/gio/gstgiosrc.c: + * ext/gio/gstgiostreamsink.c: + * ext/gio/gstgiostreamsrc.c: + * ext/gnomevfs/gstgnomevfssink.c: + * ext/gnomevfs/gstgnomevfssrc.c: + * ext/ogg/gstoggdemux.c: + * ext/ogg/gstoggmux.c: + * ext/pango/gstclockoverlay.c: + * ext/pango/gsttextoverlay.c: + * ext/pango/gsttextrender.c: + * ext/pango/gsttimeoverlay.c: + * ext/theora/theoradec.c: + * ext/theora/theoraenc.c: + * ext/theora/theoraparse.c: + * ext/vorbis/vorbisdec.c: + * ext/vorbis/vorbisenc.c: + * ext/vorbis/vorbisparse.c: + * ext/vorbis/vorbistag.c: + * gst/adder/gstadder.c: + * gst/audioconvert/gstaudioconvert.c: + * gst/audioresample/gstaudioresample.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + * gst/gdp/gstgdpdepay.c: + * gst/gdp/gstgdppay.c: + * gst/playback/gstdecodebin2.c: + * gst/playback/gstplaybin.c: + * gst/playback/gstplaybin2.c: + * gst/playback/gstqueue2.c: + * gst/playback/gsturidecodebin.c: + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gsttcpserversink.c: + * gst/videorate/gstvideorate.c: + * gst/videoscale/gstvideoscale.c: + * gst/videotestsrc/gstvideotestsrc.c: + * gst/volume/gstvolume.c: + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + Cleanup Plugin docs. Link to signals and properties. Fix sub-section + titles. Drop mentining that all our example pipelines are "simple" + pipelines. + +2008-07-10 20:23:09 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Convert extended event text to UTF-8. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Convert extended event text to UTF-8. + +2008-07-10 18:51:11 +0000 Stefan Kost + + Document one more. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-stereo.xml: + * gst/stereo/gststereo.c: + Document one more. + +2008-07-10 09:20:23 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/gstmpegdesc.h: Fix extended event descriptor parsing, out by 1 in position of text length. + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + Fix extended event descriptor parsing, out by 1 in position of + text length. + +2008-07-09 12:13:09 +0000 Stefan Kost + + gst/festival/gstfestival.c: Add a note to the docs, that festival need to be running. Also log an error it it is not.... + Original commit message from CVS: + * gst/festival/gstfestival.c: + Add a note to the docs, that festival need to be running. Also log an + error it it is not. Fixes #541327 + +2008-07-08 21:20:27 +0000 Ilja Pavkovic + + gst/librfb/gstrfbsrc.*: Add view-only property to ignore the navigation events + Original commit message from CVS: + patch by: Ilja Pavkovic + * gst/librfb/gstrfbsrc.c: + * gst/librfb/gstrfbsrc.h: + Add view-only property to ignore the navigation events + +2008-07-08 18:53:41 +0000 Michael Smith + + sys/dshowdecwrapper/gstdshowaudiodec.c: Revert previous patch apart from typo fixes; the patch was not independently ... + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.c: + Revert previous patch apart from typo fixes; the patch was not + independently useful. + +2008-07-08 17:41:55 +0000 Alessandro Decina + + sys/dshowdecwrapper/: Add AAC, AC3 to handled codecs. + Original commit message from CVS: + Based on patch by: Alessandro Decina + * sys/dshowdecwrapper/gstdshowaudiodec.c: + * sys/dshowdecwrapper/gstdshowdecwrapper.h: + * sys/dshowdecwrapper/gstdshowvideodec.c: + Add AAC, AC3 to handled codecs. + Fix handling of flush events. + Improve debug/error output. + Fix a number of typos in comments and variable names. + +2008-07-08 15:24:44 +0000 Ilja Pavkovic + + gst/librfb/rfbdecoder.c: Implement ServerCutText message + Original commit message from CVS: + patch by: Ilja Pavkovic + * gst/librfb/rfbdecoder.c: + Implement ServerCutText message + +2008-07-08 14:28:08 +0000 Ilja Pavkovic + + gst/librfb/: Add property for shared desktop + Original commit message from CVS: + patch by: Ilja Pavkovic + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + Add property for shared desktop + +2008-07-08 14:01:19 +0000 Sebastian Dröge + + configure.ac: Don't include ERROR_CFLAGS in GST_CXXFLAGS as it might include flags that are invalid for C++. + Original commit message from CVS: + * configure.ac: + Don't include ERROR_CFLAGS in GST_CXXFLAGS as it might include + flags that are invalid for C++. + +2008-07-08 13:31:37 +0000 Sebastian Dröge + + Don't use declarations after statements in the remaining code. + Original commit message from CVS: + * ext/spc/gstspc.c: (spc_setup): + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + Don't use declarations after statements in the remaining code. + +2008-07-08 13:28:51 +0000 Sebastian Dröge + + ext/: Don't use declarations after statements. + Original commit message from CVS: + Patch by: + Jonathan Rosser + * ext/metadata/metadataexif.c: (metadataparse_handle_unit_tags): + * ext/metadata/metadataxmp.c: + (metadataparse_xmp_iter_add_to_tag_list): + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start): + * ext/timidity/gstwildmidi.c: (gst_wildmidi_loop): + Don't use declarations after statements. + +2008-07-07 13:22:26 +0000 Alessandro Decina + + gst/mpegtsparse/mpegtsparse.c: Fix memory leak by unreffing structures when not needed. + Original commit message from CVS: + patch by: Alessandro Decina + * gst/mpegtsparse/mpegtsparse.c: + Fix memory leak by unreffing structures when not needed. + Fixes #539292. + +2008-07-07 10:43:45 +0000 Stefan Kost + + gst/sdp/gstsdpdemux.c: Use floating point math for latencies < 0 sec in log output. + Original commit message from CVS: + * gst/sdp/gstsdpdemux.c: + Use floating point math for latencies < 0 sec in log output. + +2008-07-06 20:43:58 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: Mark internal processing functions as static inline for quite ... + Original commit message from CVS: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + Mark internal processing functions as static inline for quite some + speedup as they're used only once and need to get many local variables + passed as parameter. + +2008-07-05 19:20:30 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.*: Call the current instance "self" instead of "object". + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_method_deinterlace_frame), + (gst_deinterlace2_set_method), (gst_deinterlace2_init), + (gst_deinterlace2_reset_history), (gst_deinterlace2_reset), + (gst_deinterlace2_set_property), (gst_deinterlace2_get_property), + (gst_deinterlace2_pop_history), (gst_deinterlace2_head_history), + (gst_deinterlace2_push_history), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event), + (gst_deinterlace2_change_state), (gst_deinterlace2_src_event), + (gst_deinterlace2_src_query): + * gst/deinterlace2/gstdeinterlace2.h: + Call the current instance "self" instead of "object". + +2008-07-05 19:11:56 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.*: Include latency of the method in the returned latency. + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_method_get_latency), + (gst_deinterlace2_set_method), (gst_deinterlace2_class_init), + (gst_deinterlace2_push_history), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps), (gst_deinterlace2_src_query): + * gst/deinterlace2/gstdeinterlace2.h: + Include latency of the method in the returned latency. + Fix outputting of all fields, i.e. doubling of the framerate. + +2008-07-05 16:47:32 +0000 Sebastian Dröge + + gst/deinterlace2/: Use a GstObject subtype for the deinterlacing methods and export the different settings for each d... + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_method_class_init), (gst_deinterlace_method_init), + (gst_deinterlace_method_deinterlace_frame), + (gst_deinterlace_method_get_fields_required), + (gst_deinterlace2_methods_get_type), (_do_init), + (gst_deinterlace2_set_method), (gst_deinterlace2_class_init), + (gst_deinterlace2_child_proxy_get_child_by_index), + (gst_deinterlace2_child_proxy_get_children_count), + (gst_deinterlace2_child_proxy_interface_init), + (gst_deinterlace2_init), (gst_deinterlace2_finalize), + (gst_deinterlace2_chain), (gst_deinterlace2_src_query): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_c), + (deinterlace_greedy_packed422_scanline_mmx), + (deinterlace_greedy_packed422_scanline_mmxext), + (deinterlace_frame_di_greedy), + (gst_deinterlace_method_greedy_l_set_property), + (gst_deinterlace_method_greedy_l_get_property), + (gst_deinterlace_method_greedy_l_class_init), + (gst_deinterlace_method_greedy_l_init): + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C), + (deinterlace_frame_di_greedyh), + (gst_deinterlace_method_greedy_h_set_property), + (gst_deinterlace_method_greedy_h_get_property), + (gst_deinterlace_method_greedy_h_class_init), + (gst_deinterlace_method_greedy_h_init): + * gst/deinterlace2/tvtime/greedyh.h: + * gst/deinterlace2/tvtime/plugins.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: + (gst_deinterlace_method_tomsmocomp_set_property), + (gst_deinterlace_method_tomsmocomp_get_property), + (gst_deinterlace_method_tomsmocomp_class_init), + (gst_deinterlace_method_tomsmocomp_init): + * gst/deinterlace2/tvtime/tomsmocomp.h: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir), + (gst_deinterlace_method_vfir_class_init), + (gst_deinterlace_method_vfir_init): + Use a GstObject subtype for the deinterlacing methods and export + the different settings for each deinterlacing method via GObject + properties. + Implement GstChildProxy interface to allow access to the used + deinterlacing method and to allow adjusting the different settings. + Move global variables of the tomsmocomp deinterlacing method into + function local variables to make it possible to use this deinterlacing + method from different instances. + +2008-07-05 12:22:37 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedyh.asm: Support widths that are not a multiply of 4 when using the assembly optimized gr... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.asm: + Support widths that are not a multiply of 4 when using the assembly + optimized greedyh implementations. + +2008-07-04 18:54:15 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedyh.c: Only build the assembly optimized implementations on x86. + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh): + Only build the assembly optimized implementations on x86. + +2008-07-04 18:52:37 +0000 Damien Lespiau + + configure.ac: Fix checking of headers for the OSS4 plugin to fail if a single header doesn't exist already. AC_CHECK_... + Original commit message from CVS: + Patch by: Damien Lespiau + * configure.ac: + Fix checking of headers for the OSS4 plugin to fail if a single + header doesn't exist already. AC_CHECK_HEADERS only fails if none + of the headers is found. Fixes bug #541543. + +2008-07-04 16:06:09 +0000 Damien Lespiau + + Fix built of the festival plugin with mingw32 by linking to ws2_32.dll and including winsock headers. Fixes bug #541522. + Original commit message from CVS: + Patch by: Damien Lespiau + * configure.ac: + * gst/festival/Makefile.am: + * gst/festival/gstfestival.c: + Fix built of the festival plugin with mingw32 by linking to ws2_32.dll + and including winsock headers. Fixes bug #541522. + +2008-07-03 14:44:51 +0000 Peter Kjellerstedt + + gst/rtpmanager/: Corrected a typo (interpollate -> interpolate). + Original commit message from CVS: + * ChangeLog: + * gst/rtpmanager/gstrtpjitterbuffer.c: (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/rtpsource.c: (rtp_source_get_new_sr): + Corrected a typo (interpollate -> interpolate). + +2008-07-03 14:31:10 +0000 Peter Kjellerstedt + + gst/rtpmanager/: Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a pipeline is running normally. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp), + (gst_rtp_session_send_rtp), (gst_rtp_session_send_rtcp), + (gst_rtp_session_sync_rtcp), (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_chain_recv_rtcp), (gst_rtp_session_chain_send_rtp): + * gst/rtpmanager/rtpsession.c: (source_push_rtp), + (rtp_session_send_rtp): + * gst/rtpmanager/rtpsource.c: (push_packet), (calculate_jitter), + (rtp_source_process_rtp), (rtp_source_send_rtp): + Changed some GST_DEBUG() to GST_LOG() to reduce the spam when a + pipeline is running normally. + +2008-07-03 13:47:19 +0000 Peter Kjellerstedt + + gst/rtpmanager/: Do not mix the use of g_get_current_time() with gst_clock_get_time(). + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init), + (gst_rtp_session_finalize), (rtcp_thread), + (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_recv_rtcp), + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_chain_send_rtp): + * gst/rtpmanager/rtpsession.c: (check_collision), + (update_arrival_stats), (rtp_session_process_rtp), + (rtp_session_process_rtcp), (rtp_session_send_rtp), + (rtp_session_send_bye_locked), (rtp_session_send_bye), + (rtp_session_next_timeout), (session_report_blocks), (session_cleanup), + (is_rtcp_time), (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Do not mix the use of g_get_current_time() with gst_clock_get_time(). + +2008-07-01 21:40:19 +0000 Jan Schmidt + + gst/mpegvideoparse/mpegvideoparse.*: Queue new-segment events and send them after caps have been determined and set, ... + Original commit message from CVS: + * gst/mpegvideoparse/mpegvideoparse.c: + * gst/mpegvideoparse/mpegvideoparse.h: + Queue new-segment events and send them after caps have been + determined and set, so that the decoder will have been auto-plugged. + +2008-07-01 11:28:17 +0000 Michael Smith + + sys/qtwrapper/: Make qtwrapper compile/work on win32. + Original commit message from CVS: + Patch by : Michael Smith + * sys/qtwrapper/audiodecoders.c: (qtwrapper_audio_decoder_init), + (clear_AudioStreamBasicDescription), (fill_indesc_mp3), + (fill_indesc_aac), (make_samr_magic_cookie), (write_len), + (make_aac_magic_cookie), (open_decoder), (process_buffer_cb), + (qtwrapper_audio_decoder_chain), + (qtwrapper_audio_decoder_sink_event), + (qtwrapper_audio_decoder_base_init), + (qtwrapper_audio_decoder_class_init), + (qtwrapper_audio_decoders_register): + * sys/qtwrapper/codecmapping.h: + * sys/qtwrapper/imagedescription.c: (image_description_for_avc1), + (image_description_for_mp4v), (image_description_from_stsd_buffer): + * sys/qtwrapper/imagedescription.h: + * sys/qtwrapper/qtutils.c: (get_name_info_from_component), + (dump_avcc_atom), (dump_image_description), + (AllocateAudioBufferList): + * sys/qtwrapper/qtutils.h: + * sys/qtwrapper/qtwrapper.c: (plugin_init): + * sys/qtwrapper/qtwrapper.h: + * sys/qtwrapper/videodecoders.c: + (qtwrapper_video_decoder_base_init), (open_decoder), + (decompressCb), (qtwrapper_video_decoder_chain), + (qtwrapper_video_decoders_register): + Make qtwrapper compile/work on win32. + Lots of fixes + Fixes #531840 + +2008-06-30 19:19:26 +0000 Jan Schmidt + + gst/rawparse/gstvideoparse.c: Fix size calculation for RGB buffers -> bpp is in bits, so divide by 8 + Original commit message from CVS: + * gst/rawparse/gstvideoparse.c: + Fix size calculation for RGB buffers -> bpp is in bits, so divide by 8 + +2008-06-30 07:51:07 +0000 Sebastian Dröge + + gst/deinterlace2/: Remove useless file and mark everything possible as static. + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/tvtime/tomsmocomp.c: (tomsmocomp_init), + (tomsmocomp_filter_mmx), (tomsmocomp_filter_3dnow), + (tomsmocomp_filter_sse), (deinterlace_frame_di_tomsmocomp): + * gst/deinterlace2/tvtime/tomsmocomp.h: + Remove useless file and mark everything possible as static. + * gst/deinterlace2/tvtime/greedy.c: + * gst/deinterlace2/tvtime/greedyh.c: + Use "_stdint.h" instead of . + +2008-06-29 10:56:47 +0000 Sebastian Dröge + + gst/deinterlace2/: Get rid of speedy.[ch] as we don't use most of it's code anyway and it doesn't seem to be relicens... + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_init): + * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy): + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh): + * gst/deinterlace2/tvtime/speedtools.h: + * gst/deinterlace2/tvtime/speedy.c: + * gst/deinterlace2/tvtime/speedy.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy): + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir): + Get rid of speedy.[ch] as we don't use most of it's code anyway + and it doesn't seem to be relicensed to LGPL. Use memcpy() instead + of the speedy memcpy everywhere instead. + * gst/deinterlace2/gstdeinterlace2.h: + Remove many unused declarations. + +2008-06-28 20:51:36 +0000 Mark Nauwelaerts + + ext/mpeg2enc/gstmpeg2encoptions.*: Expose the additional MPEG HDTV format profiles available in latest mjpegtools ver... + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * ext/mpeg2enc/gstmpeg2encoptions.hh: + Expose the additional MPEG HDTV format profiles available in latest + mjpegtools version. + +2008-06-28 18:13:08 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.c: Divide latency be 2 to convert from fields to frames. + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace2_src_query): + Divide latency be 2 to convert from fields to frames. + +2008-06-28 18:10:52 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Don't use scanlines function from gstdeinterlace2 as it's not appropiate for this m... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_c), + (deinterlace_greedy_packed422_scanline_mmx), + (deinterlace_greedy_packed422_scanline_mmxext), + (deinterlace_frame_di_greedy): + Don't use scanlines function from gstdeinterlace2 as it's + not appropiate for this method. Instead implement deinterlace_frame + function by taking the one from greedyh. + * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C): + Small fix for the C implementation. + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_frame_vfir): + Don't use the scanlines function from gstdeinterlace2 as it's only + used for this method and will be removed. Instead implement + deinterlace_frame function and make it a bit more efficient. + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_class_init), (gst_deinterlace2_set_method), + (gst_deinterlace2_push_history), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event), + (gst_deinterlace2_change_state), (gst_deinterlace2_src_event), + (gst_deinterlace2_src_query): + Fix coding style and remove scanlines function as it's unused now. + +2008-06-28 17:25:56 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/: Add a C implementation for the greedyh deinterlacing method, clean up the code a bit and ma... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: (greedyDScaler_C), + (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method): + * gst/deinterlace2/tvtime/greedyhmacros.h: + Add a C implementation for the greedyh deinterlacing method, clean + up the code a bit and mark the SSE version as MMXEXT as it doesn't + require any SSE instructions. + +2008-06-27 13:22:34 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.c: If we're outputting all fields the framerate has to be doubled. + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_set_property), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps): + If we're outputting all fields the framerate has to be doubled. + Set duration on the outgoing buffers. + +2008-06-26 15:52:40 +0000 Mark Nauwelaerts + + Add documentation for YUV4MPEG2 encoder element. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/y4m/gsty4mencode.c: + Add documentation for YUV4MPEG2 encoder element. + +2008-06-25 16:05:08 +0000 Edward Hervey + + gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Remove unneeded macros that break build on macosx. + Original commit message from CVS: + * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: + Remove unneeded macros that break build on macosx. + +2008-06-24 15:48:25 +0000 Tim-Philipp Müller + + configure.ac: Depend on released versions of core and -base. + Original commit message from CVS: + * configure.ac: + Depend on released versions of core and -base. + +2008-06-24 12:08:47 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Optimize MMX/MMXEXT implementations a bit by requiring two less memory accesses and... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_mmx), + (deinterlace_greedy_packed422_scanline_mmxext): + Optimize MMX/MMXEXT implementations a bit by requiring two less + memory accesses and fix the workaround for the missing right shift + on bytes to unset the highest bit of every byte. + +2008-06-24 10:15:41 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Remove sfence instruction as it's not needed and actually is an SSE instruction. + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_mmxext): + Remove sfence instruction as it's not needed and actually is an SSE + instruction. + +2008-06-24 10:12:08 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Add plain MMX implementation for the greedyl method. + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_mmx), + (deinterlace_greedy_packed422_scanline): + Add plain MMX implementation for the greedyl method. + +2008-06-24 09:40:03 +0000 Sebastian Dröge + + gst/deinterlace2/Makefile.am: Move the assembly includes to noinst_HEADERS where they belong. + Original commit message from CVS: + * gst/deinterlace2/Makefile.am: + Move the assembly includes to noinst_HEADERS where they belong. + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c), + (deinterlace_line_mmx): + Fix C and MMX implementations a bit more. + +2008-06-24 09:10:46 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Fix the C implementation to produce correct results and optimize the + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_c), + (deinterlace_greedy_packed422_scanline_mmxext), + (deinterlace_greedy_packed422_scanline): + Fix the C implementation to produce correct results and optimize the + MMXEXT implementation. + Handle odd widths and don't read over array boundaries in the MMXEXT + implementation. + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_c), + (deinterlace_line_mmx), (deinterlace_scanline_vfir): + Fix a small rounding bug in the MMX implementation, the MMX + implementation doesn't actually need MMXEXT instructions so don't mark + it as such. + Handle odd widths in both implementations. + +2008-06-21 21:20:24 +0000 Stefan Kost + + ext/resindvd/rsnbasesrc.c: Use the right i18n header. + Original commit message from CVS: + * ext/resindvd/rsnbasesrc.c: + Use the right i18n header. + +2008-06-21 09:05:00 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/greedy.c: Implement a C version of the greedy low motion algorithm and mark the assembly opti... + Original commit message from CVS: + * gst/deinterlace2/tvtime/greedy.c: + (deinterlace_greedy_packed422_scanline_sse), + (deinterlace_greedy_packed422_scanline_c), + (deinterlace_greedy_packed422_scanline): + Implement a C version of the greedy low motion algorithm and mark the + assembly optimized version as SSE as it uses SSE instructions + additional to MMX instructions. + +2008-06-20 16:54:28 +0000 Sebastian Pölsterl + + gst/mpegtsparse/mpegtspacketizer.c: Fix problem when empty string is provided. + Original commit message from CVS: + Patch by: Sebastian Pölsterl + * gst/mpegtsparse/mpegtspacketizer.c: + Fix problem when empty string is provided. + +2008-06-20 14:48:40 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/vfir.c: Make it possible to use the vfir method on X86 CPUs without MMXEXT too but use the MM... + Original commit message from CVS: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line_mmxext), + (deinterlace_line_c), (deinterlace_scanline_vfir): + Make it possible to use the vfir method on X86 CPUs without MMXEXT too + but use the MMXEXT optimized code whenever possible. + +2008-06-20 14:35:25 +0000 Sebastian Dröge + + gst/deinterlace2/gstdeinterlace2.*: Reset element state on PAUSED->READY properly, don't leak any buffers when finali... + Original commit message from CVS: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_class_init), (gst_deinterlace2_init), + (gst_deinterlace2_reset_history), (gst_deinterlace2_reset), + (gst_deinterlace2_finalize), (gst_deinterlace2_chain), + (gst_deinterlace2_sink_event), (gst_deinterlace2_change_state), + (gst_deinterlace2_src_query): + * gst/deinterlace2/gstdeinterlace2.h: + Reset element state on PAUSED->READY properly, don't leak any buffers + when finalizing, allocate buffers with gst_pad_alloc_buffer() and + properly return flow returns from gst_pad_push() instead of ignoring them. + +2008-06-20 13:45:08 +0000 Sebastian Dröge + + gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: Add missing header. + Original commit message from CVS: + * gst/deinterlace2/tvtime/tomsmocomp/tomsmocompmacros.h: + Add missing header. + +2008-06-20 13:24:29 +0000 Sebastian Dröge + + Fix compilation on generic x86/amd64 and include deinterlace2 in the build system. Because of several bugs it's still... + Original commit message from CVS: + * configure.ac: + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + Fix compilation on generic x86/amd64 and include deinterlace2 in the + build system. Because of several bugs it's still enabled only + by --enable-experimental. + +2008-06-20 13:07:56 +0000 Jan Schmidt + + ext/resindvd/resindvdsrc.*: Schedule NAV packets and activate them with an async clock callback at the right moment. ... + Original commit message from CVS: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + Schedule NAV packets and activate them with an async clock callback + at the right moment. This makes delayed menu highlights appear + at the correct time and fixes Back To The Future. + When outputting new segment in do_seek(), calculate our position + value properly, so we report the right time when popping in and + out of the menus. + * ext/resindvd/rsnbasesrc.c: + When handling a non-flushing seek, accumulate the segment, + rather than having every seek start from 0 and messing with sync + +2008-06-19 13:18:24 +0000 Stefan Kost + + Use BOILERPLATE macro and update test to the latest api changes. + Original commit message from CVS: + * gst/selector/gstoutputselector.c: + * tests/icles/output-selector-test.c: + Use BOILERPLATE macro and update test to the latest api changes. + +2008-06-19 11:25:37 +0000 Wim Taymans + + examples/app/appsink-src.c: Don't use a buffer after unreffing it. + Original commit message from CVS: + * examples/app/appsink-src.c: (on_new_buffer_from_source): + Don't use a buffer after unreffing it. + +2008-06-18 07:02:54 +0000 Stefan Kost + + ext/metadata/metadataexif.c: Add description tag mapping. + Original commit message from CVS: + * ext/metadata/metadataexif.c: + Add description tag mapping. + +2008-06-18 06:31:13 +0000 Stefan Kost + + Fix gtk-doc warnings. Also don't misuse api-doc comments for normal comments. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * examples/app/appsrc-ra.c: + * examples/app/appsrc-seekable.c: + * examples/app/appsrc-stream.c: + * examples/app/appsrc-stream2.c: + * ext/directfb/dfbvideosink.h: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/metadata.c: + * ext/metadata/metadataexif.c: + * ext/theora/theoradec.h: + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/speedy.c: + * gst/deinterlace2/tvtime/speedy.h: + * gst/deinterlace2/tvtime/vfir.c: + Fix gtk-doc warnings. Also don't misuse api-doc comments for normal + comments. + +2008-06-17 19:52:00 +0000 Jan Schmidt + + ext/resindvd/resindvdbin.c: Parse the URI argument into the device name so dvd:///path/to/image works. + Original commit message from CVS: + * ext/resindvd/resindvdbin.c: + Parse the URI argument into the device name so dvd:///path/to/image + works. + * ext/resindvd/resindvdsrc.c: + Implement a trivial duration query reporting the current PGC length. + * gst/dvdspu/gstdvdspu.c: + Rename typo in the function name. + +2008-06-17 11:01:58 +0000 Sebastian Dröge + + configure.ac: Disable deinterlace2 plugin again which was accidently enabled with last commit. + Original commit message from CVS: + * configure.ac: + Disable deinterlace2 plugin again which was accidently enabled + with last commit. + +2008-06-17 10:53:35 +0000 Sebastian Dröge + + Make resindvd work with libdvdnav >= 4.0.0. + Original commit message from CVS: + * configure.ac: + * ext/resindvd/resindvdsrc.h: + Make resindvd work with libdvdnav >= 4.0.0. + +2008-06-17 01:08:14 +0000 Jan Schmidt + + configure.ac: Check for libdvdnav to build resindvd. + Original commit message from CVS: + * configure.ac: + Check for libdvdnav to build resindvd. + * ext/Makefile.am: + * ext/resindvd/Makefile.am: + * ext/resindvd/gstmpegdefs.h: + * ext/resindvd/gstmpegdemux.c: + * ext/resindvd/gstmpegdemux.h: + * ext/resindvd/gstmpegdesc.c: + * ext/resindvd/gstmpegdesc.h: + * ext/resindvd/gstpesfilter.c: + * ext/resindvd/gstpesfilter.h: + * ext/resindvd/plugin.c: + * ext/resindvd/resin-play: + * ext/resindvd/resindvdbin.c: + * ext/resindvd/resindvdbin.h: + * ext/resindvd/resindvdsrc.c: + * ext/resindvd/resindvdsrc.h: + * ext/resindvd/rsnaudiomunge.c: + * ext/resindvd/rsnaudiomunge.h: + * ext/resindvd/rsnbasesrc.c: + * ext/resindvd/rsnbasesrc.h: + * ext/resindvd/rsnpushsrc.c: + * ext/resindvd/rsnpushsrc.h: + * ext/resindvd/rsnstreamselector.c: + * ext/resindvd/rsnstreamselector.h: + First commit of DVD-Video playback component 'rsndvdbin' + and helper elements. + Use --enable-experimental for now, but feel free to give it a + try using the resin-play script. + * gst/dvdspu/gstdvdspu.c: + Add some extra guards for malformed events. + +2008-06-17 00:37:49 +0000 David Schleef + + configure.ac: Bump dirac requirement to 0.10 due to api changes. + Original commit message from CVS: + * configure.ac: + Bump dirac requirement to 0.10 due to api changes. + +2008-06-16 14:11:36 +0000 Andy Wingo + + * ChangeLog: + * gst-libs/gst/app/gstappsrc.c: + gst-libs/gst/app/gstappsrc.c (gst_app_src_set_max_bytes) + Original commit message from CVS: + 2008-06-16 Andy Wingo + * gst-libs/gst/app/gstappsrc.c (gst_app_src_set_max_bytes) + (gst_app_src_get_max_bytes, gst_app_src_push_buffer): Use + G_GUINT64_FORMAT. Avoid overflow in get_max_bytes(). + +2008-06-16 12:37:34 +0000 Stefan Kost + + sys/dvb/gstdvbsrc.c: Move docblob upwards. Balance tags and restore blank line. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Move docblob upwards. Balance tags and restore blank line. + +2008-06-16 11:47:34 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Fix out of date docs. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Fix out of date docs. + +2008-06-16 11:29:46 +0000 Zaheer Abbas Merali + + Patch from: Vincent Genieux + Original commit message from CVS: + Patch from: Vincent Genieux + * gst/mpegtsparse/mpegtsparse.c: + Fix refcount issues, fixes #538560. + +2008-06-16 09:22:30 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Parse the extended event descriptor. + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + Parse the extended event descriptor. + +2008-06-16 07:30:34 +0000 Stefan Kost + + Final round of doc updates. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/speed/gstspeed.c: + * gst/speexresample/gstspeexresample.c: + * gst/videosignal/gstvideoanalyse.c: + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + * sys/dvb/gstdvbsrc.c: + * sys/oss4/oss4-mixer.c: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + * sys/wininet/gstwininetsrc.c: + Final round of doc updates. + +2008-06-16 07:03:58 +0000 Stefan Kost + + gst/: More doc updates. More xrefs. + Original commit message from CVS: + * gst/deinterlace/gstdeinterlace.c: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/sdp/gstsdpdemux.c: + More doc updates. More xrefs. + +2008-06-13 22:46:43 +0000 Julien Moutte + + gst/flv/: Introduce demuxing support for AAC and + Original commit message from CVS: + 2008-06-14 Julien Moutte + * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), + (gst_flv_demux_dispose): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (gst_flv_parse_audio_negotiate), + (gst_flv_parse_tag_audio), (gst_flv_parse_video_negotiate), + (gst_flv_parse_tag_video): Introduce demuxing support for AAC + and + H.264/AVC inside FLV. + * sys/dshowdecwrapper/gstdshowaudiodec.c: + (gst_dshowaudiodec_init), + (gst_dshowaudiodec_chain), (gst_dshowaudiodec_push_buffer), + (gst_dshowaudiodec_sink_event), (gst_dshowaudiodec_setup_graph): + * sys/dshowdecwrapper/gstdshowaudiodec.h: + * sys/dshowdecwrapper/gstdshowvideodec.c: + (gst_dshowvideodec_init), + (gst_dshowvideodec_sink_event), (gst_dshowvideodec_chain), + (gst_dshowvideodec_push_buffer), + (gst_dshowvideodec_src_getcaps): + * sys/dshowdecwrapper/gstdshowvideodec.h: Lot of random fixes + to improve stability (ref counting, safety checks...) + +2008-06-13 18:25:18 +0000 Wim Taymans + + gst/real/gstrealaudiodec.c: Disable sipro on 64bits, it crashes. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_probe_modules): + Disable sipro on 64bits, it crashes. + +2008-06-13 18:03:16 +0000 Wim Taymans + + gst/real/gstrealaudiodec.c: Add raversions we can support on the caps. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain), + (close_library), (open_library), + (gst_real_audio_dec_probe_modules), (gst_real_audio_dec_getcaps), + (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init), + (gst_real_audio_dec_change_state), (gst_real_audio_dec_finalize): + Add raversions we can support on the caps. + Refactor the loading of the real codecs like realvideo so that we can + implement probing. + Probe all supported formats by trying to load the .so files, only report + the versions on the caps that we can actually load. + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), + (gst_real_video_dec_getcaps), (gst_real_video_dec_setcaps), + (open_library), (close_library), + (gst_real_video_dec_probe_modules), + (gst_real_video_dec_change_state), (gst_real_video_dec_init), + (gst_real_video_dec_finalize), (gst_real_video_dec_class_init): + * gst/real/gstrealvideodec.h: + Change the loading of the library like the audio decoder. + Probe the supported formats by trying to load the .so files and only + report the versions on the caps that we can actually load. + +2008-06-13 15:46:03 +0000 Sebastian Pölsterl + + gst/mpegtsparse/mpegtspacketizer.c: Handle character sets in strings coming from DVB SI according to the DVB SI spec. + Original commit message from CVS: + patch by: Sebastian Pölsterl + * gst/mpegtsparse/mpegtspacketizer.c: + Handle character sets in strings coming from DVB SI according + to the DVB SI spec. + +2008-06-13 14:33:52 +0000 Stefan Kost + + gst/replaygain/: More doc updates. + Original commit message from CVS: + * gst/replaygain/gstrganalysis.c: + * gst/replaygain/gstrglimiter.c: + * gst/replaygain/gstrgvolume.c: + More doc updates. + +2008-06-13 11:59:23 +0000 Stefan Kost + + docs/plugins/: docs/plugins/inspect/plugin-mythtv.xml + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-mythtv.xml + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-oss4.xml + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-subenc.xml + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + * ext/dc1394/gstdc1394.c: + * ext/directfb/dfbvideosink.c: + * ext/ivorbis/vorbisdec.c: + * ext/jack/gstjackaudiosink.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mplex/gstmplex.cc: + * ext/musicbrainz/gsttrm.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/theora/theoradec.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * gst-libs/gst/app/gstappsink.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/dvdspu/gstdvdspu.c: + * gst/festival/gstfestival.c: + * gst/freeze/gstfreeze.c: + * gst/interleave/deinterleave.c: + * gst/interleave/interleave.c: + * gst/modplug/gstmodplug.cc: + * gst/nuvdemux/gstnuvdemux.c: + Add missing elements to docs. Fix doc-markup: use convinience syntax + for examples (produces valid docbook), add several refsec2 when we + have several titles. Fix some types. + +2008-06-12 15:47:03 +0000 Wim Taymans + + examples/app/: Add beefed up example app from bug #413418. It now also uses appsink instead of fakesink for more ulti... + Original commit message from CVS: + * examples/app/.cvsignore: + * examples/app/Makefile.am: + * examples/app/appsink-src.c: (on_new_buffer_from_source), + (on_source_message), (on_sink_message), (main): + Add beefed up example app from bug #413418. It now also uses appsink + instead of fakesink for more ultimate coolness. + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_init), (gst_app_src_set_property), + (gst_app_src_get_property), (gst_app_src_unlock), + (gst_app_src_unlock_stop), (gst_app_src_create), + (gst_app_src_set_max_bytes), (gst_app_src_push_buffer), + (gst_app_src_end_of_stream): + * gst-libs/gst/app/gstappsrc.h: + Add block property to allow push based implementation to block when we + fill up the appsrc queues. + Emit the enough-data signal while releasing our lock. + +2008-06-12 14:50:27 +0000 Stefan Kost + + examples/app/.cvsignore: Ignore more. + Original commit message from CVS: + * examples/app/.cvsignore: + Ignore more. + +2008-06-12 14:49:18 +0000 Stefan Kost + + Do not use short_description in section docs for elements. We extract them from element details and there will be war... + Original commit message from CVS: + * ext/dc1394/gstdc1394.c: + * ext/ivorbis/vorbisdec.c: + * ext/jack/gstjackaudiosink.c: + * ext/metadata/gstmetadatademux.c: + * ext/mythtv/gstmythtvsrc.c: + * ext/theora/theoradec.c: + * gst-libs/gst/app/gstappsink.c: + * gst/bayer/gstbayer2rgb.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/rawparse/gstaudioparse.c: + * gst/rawparse/gstvideoparse.c: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/selector/gstinputselector.c: + * gst/selector/gstoutputselector.c: + * gst/videosignal/gstvideoanalyse.c: + * gst/videosignal/gstvideodetect.c: + * gst/videosignal/gstvideomark.c: + * sys/oss4/oss4-mixer.c: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-source.c: + Do not use short_description in section docs for elements. We extract + them from element details and there will be warnings if they differ. + Also fixing up the ChangeLog order. + +2008-06-12 14:20:40 +0000 Sebastien Merle + + ext/amrwb/gstamrwbdec.c: Fix the sign of the data we pass to the decoder so that the decoder compiles with newer refe... + Original commit message from CVS: + Patch by: Sebastien Merle + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_chain): + Fix the sign of the data we pass to the decoder so that the decoder + compiles with newer reference code as well. Fixes #528618. + +2008-06-12 13:51:51 +0000 Sebastien Merle + + ext/amrwb/gstamrwbdec.c: Fix the sign of the data we pass to the decoder so that the decoder compiles with newer refe... + Original commit message from CVS: + Patch by: Sebastien Merle + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_chain): + Fix the sign of the data we pass to the decoder so that the decoder + compiles with newer reference code as well. Fixes #528618. + +2008-06-12 13:06:37 +0000 Stefan Kost + + tests/icles/test-oss4.c: Include stdlib.h. + Original commit message from CVS: + * tests/icles/test-oss4.c: + Include stdlib.h. + +2008-06-11 11:12:49 +0000 Martin Eikermann + + gst/deinterlace2/: Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, which was relicensed to LGPL f... + Original commit message from CVS: + Based on a patch by: Martin Eikermann + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_method_get_type), + (gst_deinterlace2_fields_get_type), + (gst_deinterlace2_field_layout_get_type), + (gst_deinterlace2_base_init), (gst_deinterlace2_class_init), + (gst_deinterlace2_init), (gst_deinterlace2_set_method), + (gst_deinterlace2_set_property), (gst_deinterlace2_get_property), + (gst_deinterlace2_finalize), (gst_deinterlace2_pop_history), + (gst_deinterlace2_head_history), (gst_deinterlace2_push_history), + (gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event), + (gst_deinterlace2_change_state), (gst_deinterlace2_src_event), + (gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types), + (plugin_init): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: (copy_scanline), + (deinterlace_greedy_packed422_scanline_mmxext), + (dscaler_greedyl_get_method): + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method), + (greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow), + (greedyh_filter_sse): + * gst/deinterlace2/tvtime/greedyh.h: + * gst/deinterlace2/tvtime/greedyhmacros.h: + * gst/deinterlace2/tvtime/mmx.h: + * gst/deinterlace2/tvtime/plugins.h: + * gst/deinterlace2/tvtime/speedtools.h: + * gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255), + (comb_factor_packed422_scanline_mmx), + (diff_factor_packed422_scanline_c), + (diff_factor_packed422_scanline_mmx), + (diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c), + (packed444_to_packed422_scanline_c), + (packed422_to_packed444_scanline_c), + (packed422_to_packed444_rec601_scanline_c), + (vfilter_chroma_121_packed422_scanline_mmx), + (vfilter_chroma_121_packed422_scanline_c), + (vfilter_chroma_332_packed422_scanline_mmx), + (vfilter_chroma_332_packed422_scanline_c), + (kill_chroma_packed422_inplace_scanline_mmx), + (kill_chroma_packed422_inplace_scanline_c), + (invert_colour_packed422_inplace_scanline_mmx), + (invert_colour_packed422_inplace_scanline_c), + (mirror_packed422_inplace_scanline_c), + (interpolate_packed422_scanline_c), + (convert_uyvy_to_yuyv_scanline_mmx), + (convert_uyvy_to_yuyv_scanline_c), + (interpolate_packed422_scanline_mmx), + (interpolate_packed422_scanline_mmxext), + (blit_colour_packed422_scanline_c), + (blit_colour_packed422_scanline_mmx), + (blit_colour_packed422_scanline_mmxext), + (blit_colour_packed4444_scanline_c), + (blit_colour_packed4444_scanline_mmx), + (blit_colour_packed4444_scanline_mmxext), (small_memcpy), + (speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext), + (blit_packed422_scanline_c), (blit_packed422_scanline_mmx), + (blit_packed422_scanline_mmxext), + (composite_colour4444_alpha_to_packed422_scanline_c), + (composite_colour4444_alpha_to_packed422_scanline_mmxext), + (composite_packed4444_alpha_to_packed422_scanline_c), + (composite_packed4444_alpha_to_packed422_scanline_mmxext), + (composite_packed4444_to_packed422_scanline_c), + (composite_packed4444_to_packed422_scanline_mmxext), + (composite_alphamask_to_packed4444_scanline_c), + (composite_alphamask_to_packed4444_scanline_mmxext), + (composite_alphamask_alpha_to_packed4444_scanline_c), + (premultiply_packed4444_scanline_c), + (premultiply_packed4444_scanline_mmxext), + (blend_packed422_scanline_c), (blend_packed422_scanline_mmxext), + (quarter_blit_vertical_packed422_scanline_mmxext), + (quarter_blit_vertical_packed422_scanline_c), + (subpix_blit_vertical_packed422_scanline_c), + (a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables), + (init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c), + (rgba32_to_packed4444_rec601_scanline_c), + (packed444_to_rgb24_rec601_scanline_c), + (packed444_to_nonpremultiplied_packed4444_scanline_c), + (aspect_adjust_packed4444_scanline_c), (setup_speedy_calls), + (speedy_get_accel): + * gst/deinterlace2/tvtime/speedy.h: + * gst/deinterlace2/tvtime/sse.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy), + (deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method), + (tomsmocomp_init), (tomsmocomp_filter_mmx), + (tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse): + * gst/deinterlace2/tvtime/tomsmocomp.h: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line), + (deinterlace_scanline_vfir), (copy_scanline), + (dscaler_vfir_get_method): + * gst/deinterlace2/tvtime/x86-64_macros.inc: + Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, + which was relicensed to LGPL for GStreamer and in theory provides + better and faster results than the simple deinterlace element. + Fixes bug #163578. + Ported to GStreamer 0.10 but still not enabled or included in the + build system by default because of bad artefacts caused by a bug + somewhere and as it can be only build on x86/amd64 ATM and requires + special CFLAGS. Will be fixed soon. + +2008-06-11 11:12:14 +0000 Martin Eikermann + + gst/deinterlace2/: Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, which was relicensed to LGPL f... + Original commit message from CVS: + Based on a patch by: Martin Eikermann + * gst/deinterlace2/Makefile.am: + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace2_method_get_type), + (gst_deinterlace2_fields_get_type), + (gst_deinterlace2_field_layout_get_type), + (gst_deinterlace2_base_init), (gst_deinterlace2_class_init), + (gst_deinterlace2_init), (gst_deinterlace2_set_method), + (gst_deinterlace2_set_property), (gst_deinterlace2_get_property), + (gst_deinterlace2_finalize), (gst_deinterlace2_pop_history), + (gst_deinterlace2_head_history), (gst_deinterlace2_push_history), + (gst_deinterlace2_deinterlace_scanlines), (gst_deinterlace2_chain), + (gst_deinterlace2_setcaps), (gst_deinterlace2_sink_event), + (gst_deinterlace2_change_state), (gst_deinterlace2_src_event), + (gst_deinterlace2_src_query), (gst_deinterlace2_src_query_types), + (plugin_init): + * gst/deinterlace2/gstdeinterlace2.h: + * gst/deinterlace2/tvtime/greedy.c: (copy_scanline), + (deinterlace_greedy_packed422_scanline_mmxext), + (dscaler_greedyl_get_method): + * gst/deinterlace2/tvtime/greedyh.asm: + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh), (dscaler_greedyh_get_method), + (greedyh_init), (greedyh_filter_mmx), (greedyh_filter_3dnow), + (greedyh_filter_sse): + * gst/deinterlace2/tvtime/greedyh.h: + * gst/deinterlace2/tvtime/greedyhmacros.h: + * gst/deinterlace2/tvtime/mmx.h: + * gst/deinterlace2/tvtime/plugins.h: + * gst/deinterlace2/tvtime/speedtools.h: + * gst/deinterlace2/tvtime/speedy.c: (multiply_alpha), (clip255), + (comb_factor_packed422_scanline_mmx), + (diff_factor_packed422_scanline_c), + (diff_factor_packed422_scanline_mmx), + (diff_packed422_block8x8_mmx), (diff_packed422_block8x8_c), + (packed444_to_packed422_scanline_c), + (packed422_to_packed444_scanline_c), + (packed422_to_packed444_rec601_scanline_c), + (vfilter_chroma_121_packed422_scanline_mmx), + (vfilter_chroma_121_packed422_scanline_c), + (vfilter_chroma_332_packed422_scanline_mmx), + (vfilter_chroma_332_packed422_scanline_c), + (kill_chroma_packed422_inplace_scanline_mmx), + (kill_chroma_packed422_inplace_scanline_c), + (invert_colour_packed422_inplace_scanline_mmx), + (invert_colour_packed422_inplace_scanline_c), + (mirror_packed422_inplace_scanline_c), + (interpolate_packed422_scanline_c), + (convert_uyvy_to_yuyv_scanline_mmx), + (convert_uyvy_to_yuyv_scanline_c), + (interpolate_packed422_scanline_mmx), + (interpolate_packed422_scanline_mmxext), + (blit_colour_packed422_scanline_c), + (blit_colour_packed422_scanline_mmx), + (blit_colour_packed422_scanline_mmxext), + (blit_colour_packed4444_scanline_c), + (blit_colour_packed4444_scanline_mmx), + (blit_colour_packed4444_scanline_mmxext), (small_memcpy), + (speedy_memcpy_c), (speedy_memcpy_mmx), (speedy_memcpy_mmxext), + (blit_packed422_scanline_c), (blit_packed422_scanline_mmx), + (blit_packed422_scanline_mmxext), + (composite_colour4444_alpha_to_packed422_scanline_c), + (composite_colour4444_alpha_to_packed422_scanline_mmxext), + (composite_packed4444_alpha_to_packed422_scanline_c), + (composite_packed4444_alpha_to_packed422_scanline_mmxext), + (composite_packed4444_to_packed422_scanline_c), + (composite_packed4444_to_packed422_scanline_mmxext), + (composite_alphamask_to_packed4444_scanline_c), + (composite_alphamask_to_packed4444_scanline_mmxext), + (composite_alphamask_alpha_to_packed4444_scanline_c), + (premultiply_packed4444_scanline_c), + (premultiply_packed4444_scanline_mmxext), + (blend_packed422_scanline_c), (blend_packed422_scanline_mmxext), + (quarter_blit_vertical_packed422_scanline_mmxext), + (quarter_blit_vertical_packed422_scanline_c), + (subpix_blit_vertical_packed422_scanline_c), + (a8_subpix_blit_scanline_c), (myround), (init_RGB_to_YCbCr_tables), + (init_YCbCr_to_RGB_tables), (rgb24_to_packed444_rec601_scanline_c), + (rgba32_to_packed4444_rec601_scanline_c), + (packed444_to_rgb24_rec601_scanline_c), + (packed444_to_nonpremultiplied_packed4444_scanline_c), + (aspect_adjust_packed4444_scanline_c), (setup_speedy_calls), + (speedy_get_accel): + * gst/deinterlace2/tvtime/speedy.h: + * gst/deinterlace2/tvtime/sse.h: + * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy), + (deinterlace_frame_di_tomsmocomp), (dscaler_tomsmocomp_get_method), + (tomsmocomp_init), (tomsmocomp_filter_mmx), + (tomsmocomp_filter_3dnow), (tomsmocomp_filter_sse): + * gst/deinterlace2/tvtime/tomsmocomp.h: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoop0A.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopBottom.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopEdgeA8.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddA6.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopOddAH2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopTop.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVA.inc: + * gst/deinterlace2/tvtime/tomsmocomp/SearchLoopVAH.inc: + * gst/deinterlace2/tvtime/tomsmocomp/StrangeBob.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll.inc: + * gst/deinterlace2/tvtime/tomsmocomp/TomsMoCompAll2.inc: + * gst/deinterlace2/tvtime/tomsmocomp/WierdBob.inc: + * gst/deinterlace2/tvtime/vfir.c: (deinterlace_line), + (deinterlace_scanline_vfir), (copy_scanline), + (dscaler_vfir_get_method): + * gst/deinterlace2/tvtime/x86-64_macros.inc: + Add a deinterlacer plugin based on the tvtime/DScaler deinterlacer, + which was relicensed to LGPL for GStreamer and in theory provides + better and faster results than the simple deinterlace element. + Fixes bug #163578. + Ported to GStreamer 0.10 but still not enabled or included in the + build system by default because of bad artefacts caused by a bug + somewhere and as it can be only build on x86/amd64 ATM and requires + special CFLAGS. Will be fixed soon. + +2008-06-11 07:58:44 +0000 Sebastian Dröge + + ext/timidity/gstwildmidi.*: Initialize wildmidi only once in the plugin init function instead of once for every insta... + Original commit message from CVS: + Based on a patch by: Sonicadvance1 at GMAIL dot COM + * ext/timidity/gstwildmidi.c: (gst_wildmidi_init), + (gst_wildmidi_change_state), (plugin_init): + * ext/timidity/gstwildmidi.h: + Initialize wildmidi only once in the plugin init function instead + of once for every instance. The second and following calls to the + wildmidi initialization function will fail. Fixes bug #525613. + Also don't register the element at all if wildmidi initialization + fails. + +2008-06-10 12:54:59 +0000 Sebastian Dröge + + ext/soundtouch/gstpitch.cc: Call gst_element_no_more_pads() after all pads are added. + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + Call gst_element_no_more_pads() after all pads are added. + +2008-06-09 17:57:08 +0000 Wim Taymans + + gst/rawparse/gstrawparse.c: Add simple reverse playback. + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer), + (gst_raw_parse_loop), (gst_raw_parse_handle_seek_push), + (gst_raw_parse_handle_seek_pull): + Add simple reverse playback. + +2008-06-09 12:05:00 +0000 Wim Taymans + + gst/rawparse/gstrawparse.*: Fix seeking, timestamps, duration and some more. Fixes #536309. + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_reset), + (gst_raw_parse_push_buffer), (gst_raw_parse_chain), + (gst_raw_parse_loop), (gst_raw_parse_sink_activatepull), + (gst_raw_parse_convert), (gst_raw_parse_sink_event), + (gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull), + (gst_raw_parse_src_query), (gst_raw_parse_get_fps): + * gst/rawparse/gstrawparse.h: + Fix seeking, timestamps, duration and some more. Fixes #536309. + +2008-06-06 16:50:51 +0000 Wim Taymans + + examples/app/: Added 3 more example application for using appsrc in random-access mode, pull-mode streaming and pull ... + Original commit message from CVS: + * examples/app/Makefile.am: + * examples/app/appsrc-ra.c: (feed_data), (seek_data), + (found_source), (bus_message), (main): + * examples/app/appsrc-seekable.c: (feed_data), (seek_data), + (found_source), (bus_message), (main): + * examples/app/appsrc-stream2.c: (feed_data), (found_source), + (bus_message), (main): + Added 3 more example application for using appsrc in random-access mode, + pull-mode streaming and pull mode seekable. + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_start), (gst_app_src_do_get_size), + (gst_app_src_create): + * gst-libs/gst/app/gstappsrc.h: + Make stream-type property writable. + Unset flushing when starting so that we reuse appsrc. + Inform basesrc about the configured size. + Emit seek-data signal when we are going to a different offset in + random-access mode. + +2008-06-06 14:19:54 +0000 Wim Taymans + + examples/app/appsrc-stream.c: Use deep-notify until we can depend on a playbin2 with support for the source property. + Original commit message from CVS: + * examples/app/appsrc-stream.c: (found_source), (main): + Use deep-notify until we can depend on a playbin2 with support for the + source property. + +2008-06-06 13:01:05 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Fix deadlock when shutting down, use a new lock instead to properly shutdown. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_init), + (gst_rtp_bin_finalize), (gst_rtp_bin_change_state): + Fix deadlock when shutting down, use a new lock instead to properly + shutdown. + +2008-06-05 16:38:50 +0000 Wim Taymans + + examples/app/: Added an example on how to use appsrc in playbin in streaming mode from an mmapped file. + Original commit message from CVS: + * examples/app/.cvsignore: + * examples/app/Makefile.am: + * examples/app/appsrc-stream.c: (read_data), (start_feed), + (stop_feed), (found_source), (bus_message), (main): + Added an example on how to use appsrc in playbin in streaming mode from + an mmapped file. + * examples/app/appsrc_ex.c: (main): + Set pipeline to NULL to free queued buffers. + * gst-libs/gst/app/gstapp-marshal.list: + * gst-libs/gst/app/gstappsrc.c: (stream_type_get_type), (_do_init), + (gst_app_src_class_init), (gst_app_src_init), + (gst_app_src_flush_queued), (gst_app_src_dispose), + (gst_app_src_set_property), (gst_app_src_get_property), + (gst_app_src_unlock), (gst_app_src_unlock_stop), + (gst_app_src_start), (gst_app_src_stop), (gst_app_src_is_seekable), + (gst_app_src_check_get_range), (gst_app_src_do_seek), + (gst_app_src_create), (gst_app_src_set_stream_type), + (gst_app_src_get_stream_type), (gst_app_src_set_max_bytes), + (gst_app_src_get_max_bytes), (gst_app_src_push_buffer), + (gst_app_src_end_of_stream), (gst_app_src_uri_get_type), + (gst_app_src_uri_get_protocols), (gst_app_src_uri_get_uri), + (gst_app_src_uri_set_uri), (gst_app_src_uri_handler_init): + * gst-libs/gst/app/gstappsrc.h: + Measure max queue size in bytes instead. + Add support for 3 modes of operation, streaming, seekable and + random-access, making basesrc handle the scheduling modes for each. + Add appsrc:// uri handler so that automatic plugging can be done from + playbin2 or uridecodebin, for example. + Added support for custom segment formats. + Add support for push and pull based operations from the application. + Expand the methods so that errors can be detected. + Flush the queued buffers on seeks and when shutting down. + Add signals to inform the app that a seek must happen. + +2008-06-05 11:07:17 +0000 Sebastian Dröge + + gst/interleave/: Properly implement duration and position queries in bytes format. We have to take the upstream reply... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads), + (gst_deinterleave_src_query): + * gst/interleave/interleave.c: (gst_interleave_src_query_duration), + (gst_interleave_src_query): + Properly implement duration and position queries in bytes format. We + have to take the upstream reply and divide/multiply it by the number + of channels to get the correct result. + +2008-06-04 21:18:53 +0000 Michael Smith + + sys/dshowvideosink/: Fix up copyright notice on new plugin. + Original commit message from CVS: + * sys/dshowvideosink/dshowvideofakesrc.cpp: + * sys/dshowvideosink/dshowvideofakesrc.h: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + Fix up copyright notice on new plugin. + +2008-06-04 17:02:38 +0000 Jon Trowbridge + + ext/dirac/gstdiracenc.cc: Update properties for recent dirac changes. Patch from Jonathan Rosser. + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: Update properties for recent + dirac changes. Patch from Jonathan Rosser. + +2008-06-04 11:33:21 +0000 Tim-Philipp Müller + + ext/x264/gstx264enc.c: Try harder not to crash when we get an EOS event but haven't set up the encoder yet (as may ha... + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_header_buf), + (gst_x264_enc_sink_event), (gst_x264_enc_chain), + (gst_x264_enc_encode_frame): + Try harder not to crash when we get an EOS event but haven't set + up the encoder yet (as may happen when upstream errors out with + not-negotiated, for example). Also, always push the EOS event + downstream. + +2008-06-04 06:48:46 +0000 Sebastian Dröge + + gst/interleave/interleave.*: Use an always increasing integer for the number in the name of the requested sink pads t... + Original commit message from CVS: + * gst/interleave/interleave.c: (gst_interleave_pad_get_type), + (gst_interleave_pad_get_property), (gst_interleave_pad_class_init), + (gst_interleave_request_new_pad), (gst_interleave_release_pad): + * gst/interleave/interleave.h: + Use an always increasing integer for the number in the name of the + requested sink pads to guarantuee a unique name. Add a "channel" + property to GstInterleavePad to make it possible for applications + to retrieve the channel number in the output for every pad. + Use g_type_register_static_simple() instead of + g_type_register_static() to save some relocations. + +2008-06-03 15:41:05 +0000 Christian Schaller + + * autogen.sh: + fix package name + Original commit message from CVS: + fix package name + +2008-06-03 14:35:59 +0000 Sebastian Dröge + + gst/interleave/interleave.c: Stop GstCollectPads before calling the parent's state change function when going from PA... + Original commit message from CVS: + * gst/interleave/interleave.c: (gst_interleave_pad_get_type), + (gst_interleave_change_state): + Stop GstCollectPads before calling the parent's state change function + when going from PAUSED to READY as we otherwise deadlock. + Fixes bug #536258. + +2008-06-03 11:10:32 +0000 Wim Taymans + + gst/h264parse/gsth264parse.*: Parse codec_data and use the nalu_size_length field to get the NALU length in packetize... + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: (gst_nal_bs_init), + (gst_h264_parse_sink_setcaps), (gst_h264_parse_chain_forward), + (gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse), + (gst_h264_parse_chain): + * gst/h264parse/gsth264parse.h: + Parse codec_data and use the nalu_size_length field to get the NALU + length in packetized h264. + When queueing a packetized buffer in reverse mode, don't unref the + buffer twice. + Avoid accessing the buffer TIMESTAMP field after we pushed it on + the adaptor. + +2008-06-03 09:03:19 +0000 Sebastian Dröge + + gst/interleave/interleave.c: Use new gst_audio_check_channel_positions() function and register the GstInterleavePad t... + Original commit message from CVS: + * gst/interleave/interleave.c: + (gst_interleave_check_channel_positions), + (gst_interleave_set_channel_positions), + (gst_interleave_class_init): + Use new gst_audio_check_channel_positions() function and register + the GstInterleavePad type from a threadsafe context. + +2008-06-02 21:51:52 +0000 Michael Smith + + configure.ac: Revert accidental addition in configure.ac. Sorry. + Original commit message from CVS: + * configure.ac: + Revert accidental addition in configure.ac. Sorry. + +2008-06-02 18:23:54 +0000 Michael Smith + + Add a new win32 videosink. Uses the DirectShow renderers for high-performance video rendering on win32. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/dshowvideosink/Makefile.am: + * sys/dshowvideosink/README: + * sys/dshowvideosink/dshowvideofakesrc.cpp: + * sys/dshowvideosink/dshowvideofakesrc.h: + * sys/dshowvideosink/dshowvideosink.cpp: + * sys/dshowvideosink/dshowvideosink.h: + Add a new win32 videosink. Uses the DirectShow renderers for + high-performance video rendering on win32. + Currently only supports some YUV formats. + Rank PRIMARY, since it's much more useful for the common cases that the + directdraw sink (which only does RGB). + +2008-06-02 18:06:37 +0000 Tim-Philipp Müller + + ext/spc/Makefile.am: Dist tag.h + Original commit message from CVS: + * ext/spc/Makefile.am: + Dist tag.h + +2008-06-02 17:06:34 +0000 Wim Taymans + + ext/faad/gstfaad.c: Always drain before activating the new segment. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_sink_event): + Always drain before activating the new segment. + +2008-06-02 12:42:14 +0000 Sebastian Dröge + + gst/interleave/interleave.*: Allow setting channel positions via a property and allow using the channel positions on ... + Original commit message from CVS: + * gst/interleave/interleave.c: (gst_interleave_pad_get_type), + (gst_interleave_finalize), (gst_audio_check_channel_positions), + (gst_interleave_set_channel_positions), + (gst_interleave_class_init), (gst_interleave_init), + (gst_interleave_set_property), (gst_interleave_get_property), + (gst_interleave_request_new_pad), (gst_interleave_release_pad), + (gst_interleave_sink_setcaps), (gst_interleave_src_query_duration), + (gst_interleave_src_query_latency), (gst_interleave_collected): + * gst/interleave/interleave.h: + Allow setting channel positions via a property and allow using the + channel positions on the input as the channel positions of the output. + Fix some broken logic and memory leaks. + * tests/check/Makefile.am: + * tests/check/elements/interleave.c: (src_handoff_float32), + (sink_handoff_float32), (GST_START_TEST), (interleave_suite): + Add unit tests for checking correct handling of channel positions. + +2008-06-02 10:18:25 +0000 Wim Taymans + + ext/faad/gstfaad.*: Add basic reverse playback support. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_dispose), (clear_queued), + (flush_queued), (gst_faad_drain), (gst_faad_do_raw_seek), + (gst_faad_src_event), (gst_faad_sink_event), (gst_faad_chain), + (gst_faad_change_state): + * ext/faad/gstfaad.h: + Add basic reverse playback support. + Clear decoder state after disconts. + Remove some unused code. + Mark output buffers with a discont after a decoding error. + +2008-06-02 07:37:31 +0000 Sjoerd Simons + + gst/mpeg4videoparse/mpeg4videoparse.c: Fix mpeg4videoparse on big endian architectures. Fixes bug #536042. + Original commit message from CVS: + Patch by: Sjoerd Simons + * gst/mpeg4videoparse/mpeg4videoparse.c: + (gst_mpeg4vparse_handle_vos): + Fix mpeg4videoparse on big endian architectures. Fixes bug #536042. + +2008-05-29 19:56:53 +0000 Sebastian Dröge + + tests/check/elements/mplex.c: Don't use the deprecated gst_element_get_pad(). + Original commit message from CVS: + * tests/check/elements/mplex.c: (setup_src_pad), + (teardown_src_pad): + Don't use the deprecated gst_element_get_pad(). + +2008-05-29 19:11:47 +0000 Sebastian Dröge + + examples/directfb/gstdfb.c: Don't use the deprecated gst_element_get_pad(). + Original commit message from CVS: + * examples/directfb/gstdfb.c: (main): + Don't use the deprecated gst_element_get_pad(). + +2008-05-28 08:53:00 +0000 Onkar Shinde + + sys/vcd/vcdsrc.c: Allow the track to be set by using the uri. Fixes #535043. + Original commit message from CVS: + Based on patch by: + * sys/vcd/vcdsrc.c: (gst_vcdsrc_uri_get_uri), + (gst_vcdsrc_uri_set_uri): + Allow the track to be set by using the uri. Fixes #535043. + +2008-05-28 08:14:16 +0000 Sebastian Dröge + + gst/interleave/interleave.c: Implement latency query. + Original commit message from CVS: + * gst/interleave/interleave.c: (gst_interleave_src_query_duration), + (gst_interleave_src_query_latency), (gst_interleave_src_query): + Implement latency query. + +2008-05-27 17:53:58 +0000 Thijs Vermeir + + gst/mpegvideoparse/mpegvideoparse.c: Add GST_BUFFER_FLAG_DELTA_UNIT to not I frame buffers + Original commit message from CVS: + * gst/mpegvideoparse/mpegvideoparse.c: + Add GST_BUFFER_FLAG_DELTA_UNIT to not I frame buffers + +2008-05-27 16:48:10 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Break out of callbacks when we are shutting down. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: + (gst_rtp_bin_propagate_property_to_jitterbuffer), + (gst_rtp_bin_change_state), (new_payload_found), + (new_ssrc_pad_found): + Break out of callbacks when we are shutting down. + Make sure no state changes can happen when we reconfigure. + +2008-05-27 16:32:18 +0000 Wim Taymans + + configure.ac: Require CVS core and base for new audio clock reset method. + Original commit message from CVS: + * configure.ac: + Require CVS core and base for new audio clock reset method. + * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_change_state): + Reset the audio clock. See #521761. + +2008-05-26 17:52:21 +0000 Wim Taymans + + ext/jack/gstjackaudiosink.c: Include the element name in the port name to avoid duplicate port names. + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: + (gst_jack_audio_sink_allocate_channels): + Include the element name in the port name to avoid duplicate port names. + +2008-05-26 10:28:47 +0000 Sebastian Dröge + + gst/interleave/deinterleave.c: Add another example launch line. + Original commit message from CVS: + * gst/interleave/deinterleave.c: + Add another example launch line. + * gst/interleave/interleave.c: (interleave_24), + (gst_interleave_finalize), (gst_interleave_base_init), + (gst_interleave_class_init), (gst_interleave_init), + (gst_interleave_request_new_pad), (gst_interleave_release_pad), + (gst_interleave_change_state), (__remove_channels), + (__set_channels), (gst_interleave_sink_getcaps), + (gst_interleave_set_process_function), + (gst_interleave_sink_setcaps), (gst_interleave_sink_event), + (gst_interleave_src_query_duration), (gst_interleave_src_query), + (forward_event_func), (forward_event), (gst_interleave_src_event), + (gst_interleave_collected): + * gst/interleave/interleave.h: + Major rewrite of interleave using GstCollectpads. This new version + also supports almost all raw audio formats and has better caps + negotiation. Fixes bug #506594. + Also update docs and add some more examples. + * tests/check/elements/interleave.c: (interleave_chain_func), + (GST_START_TEST), (src_handoff_float32), (sink_handoff_float32), + (interleave_suite): + Add some more extensive unit tests for interleave. + +2008-05-26 10:09:29 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: When checking the seqnum, reset the jitterbuffer if the gap is too big, we need ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + When checking the seqnum, reset the jitterbuffer if the gap is too big, + we need to do this so that we can better handle a restarted source. + Fix some comments. + * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew), + (rtp_jitter_buffer_insert): + Tweak the skew resync diff. + Use our working seqnum compare function in -base. + Rework the jitterbuffer insert code to make it clearer and more + performant by only retrieving the seqnum of the input buffer once and by + adding some G_LIKELY compiler hints. + Improve debugging for duplicate packets. + * gst/rtpmanager/rtpsource.c: (rtp_source_process_rtp): + Fix a comment, we don't do skew correction here.. + +2008-05-26 10:00:24 +0000 Håvard Graff + + gst/rtpmanager/gstrtpbin.c: Propagate the do-lost and latency properties to the jitterbuffers when they are changed o... + Original commit message from CVS: + Patch by: Håvard Graff + * gst/rtpmanager/gstrtpbin.c: + (gst_rtp_bin_propagate_property_to_jitterbuffer), + (gst_rtp_bin_set_property): + Propagate the do-lost and latency properties to the jitterbuffers when + they are changed on rtpbin. + +2008-05-26 09:57:40 +0000 Wim Taymans + + Don't use _gst_pad(). + Original commit message from CVS: + * examples/switch/switcher.c: (switch_timer): + * gst/replaygain/gstrgvolume.c: (gst_rg_volume_init): + * gst/rtpmanager/gstrtpclient.c: (create_stream): + * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_stream_configure_udp), + (gst_sdp_demux_stream_configure_udp_sink): + * tests/check/elements/deinterleave.c: (GST_START_TEST), + (pad_added_setup_data_check_float32_8ch_cb): + * tests/check/elements/rganalysis.c: (send_eos_event), + (send_tag_event): + Don't use _gst_pad(). + +2008-05-22 19:47:53 +0000 Sebastian Dröge + + docs/plugins/: Add interleave/deinterleave to the docs and while at that run make update in docs/plugins. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + Add interleave/deinterleave to the docs and while at that + run make update in docs/plugins. + * gst/interleave/deinterleave.c: + Add a parapraph about using a queue and audioconvert after the source + pads to the docs. + +2008-05-22 18:55:09 +0000 Sebastian Dröge + + gst/interleave/deinterleave.*: Don't set a getcaps() function on the src pads as it's not required and the default ge... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_base_init), + (gst_deinterleave_class_init), (gst_deinterleave_init), + (gst_deinterleave_add_new_pads), (gst_deinterleave_sink_getcaps): + * gst/interleave/deinterleave.h: + Don't set a getcaps() function on the src pads as it's not required + and the default getcaps() function returns the correct results for + our src pads. + Complete documentation and add myself to the authors of the element. + +2008-05-22 16:33:25 +0000 Tim-Philipp Müller + + tests/icles/: Small oss4 test that probes for available devices and retrieves their caps and mixer tracks and all tha... + Original commit message from CVS: + * tests/icles/.cvsignore: + * tests/icles/Makefile.am: + * tests/icles/test-oss4.c: (opt_show_mixer_messages), (WAIT_TIME), + (show_mixer_messages), (probe_mixer_tracks), (probe_pad), + (probe_details), (probe_element), (main): + Small oss4 test that probes for available devices and retrieves + their caps and mixer tracks and all that. Also allows testing of + mixer change messages on the bus. + +2008-05-22 15:14:26 +0000 Tim-Philipp Müller + + sys/oss4/: Make device-name probing in NULL state work better (e.g. for the gnome-control-center sound capplet). + Original commit message from CVS: + * sys/oss4/oss4-mixer.c: (gst_oss4_mixer_open): + * sys/oss4/oss4-property-probe.c: + (gst_oss4_property_probe_find_device_name), + (gst_oss4_property_probe_find_device_name_nofd): + * sys/oss4/oss4-property-probe.h: + * sys/oss4/oss4-sink.c: (gst_oss4_sink_get_property): + * sys/oss4/oss4-source.c: (gst_oss4_source_get_property): + Make device-name probing in NULL state work better (e.g. for the + gnome-control-center sound capplet). + +2008-05-22 14:03:05 +0000 Sjoerd Simons + + gst/mpeg4videoparse/mpeg4videoparse.c: Move some code around to integrate the startcode searching with the other bits... + Original commit message from CVS: + Patch by: Sjoerd Simons + * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_push), + (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain), + (gst_mpeg4vparse_change_state): + Move some code around to integrate the startcode searching with the + other bits of parsing, avoid a whole bunch of peeks. + Get rid of invalid data that should not happen according to the specs. + Fixes #533559. + +2008-05-20 09:36:56 +0000 Bastien Nocera + + ext/mythtv/gstmythtvsrc.c: Correctly set duration to get a more correct seek bar in totem. + Original commit message from CVS: + Patch by: Bastien Nocera + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_class_init), + (gst_mythtv_src_init), (gst_mythtv_src_clear), + (do_read_request_response), (gst_mythtv_src_create), + (gst_mythtv_src_start): + Correctly set duration to get a more correct seek bar in totem. + Disable query and event functions as they don't work and do some + smaller cleanup. + Fixes bug #533736. + +2008-05-20 09:04:48 +0000 Brian Koropoff + + ext/spc/: Add support for some essential features like seeking, reading song duration and extended tags. Fixes bug #4... + Original commit message from CVS: + Patch by: Brian Koropoff + * ext/spc/Makefile.am: + * ext/spc/gstspc.c: (gst_spc_dec_class_init), + (gst_spc_dec_src_query_type), (gst_spc_dec_init), + (gst_spc_dec_dispose), (gst_spc_dec_sink_event), + (gst_spc_duration), (gst_spc_fadeout), (gst_spc_dec_src_event), + (gst_spc_dec_src_query), (spc_play), (spc_setup): + * ext/spc/gstspc.h: + * ext/spc/tag.c: (spc_tag_is_extended), (spc_tag_is_text_format), + (spc_tag_is_present), (spc_tag_unpack_date), (spc_tag_clear), + (spc_tag_get_info), (spc_tag_free): + * ext/spc/tag.h: + Add support for some essential features like seeking, reading song + duration and extended tags. Fixes bug #454151. + +2008-05-19 12:32:06 +0000 Sebastian Dröge + + tests/check/elements/deinterleave.c: Set keep-positions property to TRUE for the 8 channel test to ensure that the or... + Original commit message from CVS: + * tests/check/elements/deinterleave.c: (GST_START_TEST): + Set keep-positions property to TRUE for the 8 channel test to ensure + that the original channel position is set on the output. + +2008-05-19 07:46:05 +0000 Sebastian Dröge + + gst/interleave/deinterleave.*: Add a property to select whether channel positions should be kept on the mono output b... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_class_init), + (gst_deinterleave_init), (gst_deinterleave_add_new_pads), + (gst_deinterleave_set_pads_caps), (gst_deinterleave_set_property), + (gst_deinterleave_get_property): + * gst/interleave/deinterleave.h: + Add a property to select whether channel positions should be kept on + the mono output buffers or should be dropped. + +2008-05-18 10:27:25 +0000 Jan Schmidt + + docs/Makefile.am: Oops - fix the spelling of the variable I added. + Original commit message from CVS: + * docs/Makefile.am: + Oops - fix the spelling of the variable I added. + +2008-05-17 19:39:53 +0000 Sebastian Dröge + + gst/interleave/deinterleave.*: Queue events until src pads were added and they can be sent. Otherwise downstream will... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_finalize), + (gst_deinterleave_init), (gst_deinterleave_sink_event), + (gst_deinterleave_process), (gst_deinterleave_sink_activate_push): + * gst/interleave/deinterleave.h: + Queue events until src pads were added and they can be sent. Otherwise + downstream will never get the first newsegment event. + +2008-05-17 14:05:03 +0000 Sebastian Dröge + + gst/interleave/deinterleave.c: Always set the channel positions when gst_audio_get_channel_positions() returns someth... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps), + (gst_deinterleave_getcaps): + Always set the channel positions when gst_audio_get_channel_positions() + returns something, even if they're not set in the caps. This makes + sure that the output channels can be interleaved again correctly + in the mono/stereo cases too. + Don't ask for the peercaps of the current pad in getcaps() as this + might call getcaps() again and deadlock. + +2008-05-16 22:00:49 +0000 Sebastian Dröge + + ext/timidity/gstwildmidi.c: Check some more common locations for a valid configuration file. + Original commit message from CVS: + * ext/timidity/gstwildmidi.c: (wildmidi_open_config): + Check some more common locations for a valid configuration file. + Fixes bug #533435. Packagers should still #define WILDMIDI_CFG + to the distributions default location. + +2008-05-16 21:56:24 +0000 Sebastian Dröge + + gst/interleave/: Add support for all raw audio formats and provide better negotiation if the caps are changing. + Original commit message from CVS: + * gst/interleave/Makefile.am: + * gst/interleave/deinterleave.c: (deinterleave_24), + (gst_deinterleave_finalize), (gst_deinterleave_base_init), + (gst_deinterleave_class_init), (gst_deinterleave_init), + (gst_deinterleave_add_new_pads), (gst_deinterleave_set_pads_caps), + (gst_deinterleave_set_process_function), + (gst_deinterleave_sink_setcaps), (__remove_channels), + (__set_channels), (gst_deinterleave_getcaps), + (gst_deinterleave_process), (gst_deinterleave_chain), + (gst_deinterleave_sink_activate_push): + * gst/interleave/deinterleave.h: + Add support for all raw audio formats and provide better negotiation + if the caps are changing. + Don't allow changes of the channel positions and set the position of + the corresponding channel on the src pad caps. + General cleanup and smaller bugfixes. + * tests/check/elements/deinterleave.c: (float_buffer_check_probe): + Check the channel positions on the output buffer caps. + +2008-05-16 19:56:30 +0000 Jan Schmidt + + docs/Makefile.am: Don't attempt to build plugin docs when they're disabled. + Original commit message from CVS: + * docs/Makefile.am: + Don't attempt to build plugin docs when they're disabled. + * gst/bayer/Makefile.am: + Add libgstvideo to the link. + * gst/rtpmanager/Makefile.am: + Fix link order, and move LIBS things to _LIBS + +2008-05-16 14:49:07 +0000 Jan Schmidt + + docs/plugins/gst-plugins-bad-plugins.types: Remove bogus attempt to pull 'metadata' plugin's base class into the docs. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.types: + Remove bogus attempt to pull 'metadata' plugin's base + class into the docs. + +2008-05-14 21:02:19 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Simply drop bad RTP packets with a warning instead of just posting an error and ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain): + Simply drop bad RTP packets with a warning instead of just posting an + error and stopping. This is a perfectly recoverable event and we don't + force people to use an rtpbin to filter out bad packets first. + +2008-05-14 20:57:31 +0000 Wim Taymans + + gst/mpeg4videoparse/mpeg4videoparse.c: Set fixed caps on the srcpad after we created the pad... + Original commit message from CVS: + * gst/mpeg4videoparse/mpeg4videoparse.c: (gst_mpeg4vparse_init): + Set fixed caps on the srcpad after we created the pad... + +2008-05-14 16:21:05 +0000 Tim-Philipp Müller + + tests/check/Makefile.am: Remove deinterleave test from VALGRIND_TO_FIX again now that there are suppressions in gst.s... + Original commit message from CVS: + * tests/check/Makefile.am: + Remove deinterleave test from VALGRIND_TO_FIX again now that + there are suppressions in gst.supp which make this work for me. + +2008-05-14 14:19:47 +0000 Tim-Philipp Müller + + tests/check/Makefile.am: Add deinterleave unit test to VALGRIND_TO_FIX, since it causes weird invalid free errors in ... + Original commit message from CVS: + * tests/check/Makefile.am: + Add deinterleave unit test to VALGRIND_TO_FIX, since it causes + weird invalid free errors in valgrind/libc after _exit for some + reason. + * tests/check/elements/deinterleave.c: (pads_created), + (set_channel_positions), (src_handoff_float32_8ch), + (float_buffer_check_probe), + (pad_added_setup_data_check_float32_8ch_cb), + (make_fake_src_8chans_float32), (GST_START_TEST), + (deinterleave_suite): + Add some more deinterleave unit test bits I had locally. + +2008-05-14 13:57:41 +0000 Tim-Philipp Müller + + gst/audioresample/gstaudioresample.c: Revert previous change which made basetransform handle buffer_alloc and which b... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init): + Revert previous change which made basetransform handle buffer_alloc + and which breaks things badly in the non-passthrough case since it + returned buffers with a different (ie. sometimes smaller) size than + the size requested. + +2008-05-14 07:32:44 +0000 Sebastian Dröge + + gst/interleave/: Split definitions into separate header files for better documentation generation. + Original commit message from CVS: + * gst/interleave/Makefile.am: + * gst/interleave/deinterleave.h: + * gst/interleave/interleave.h: + * gst/interleave/plugin.h: + Split definitions into separate header files for better documentation + generation. + * gst/interleave/deinterleave.c: (gst_deinterleave_base_init), + (gst_deinterleave_class_init), (gst_deinterleave_sink_setcaps), + (gst_deinterleave_process): + Don't use alloca, allow caps changes as long as the number of channels + does not change, don't use g_warning, return NOT_NEGOTIATED as early + as possible and some other cleanup. + * gst/interleave/interleave.c: (gst_interleave_base_init), + (gst_interleave_class_init): + Do some random cleanup. + * tests/check/Makefile.am: + * tests/check/elements/deinterleave.c: (GST_START_TEST), + (deinterleave_chain_func), (deinterleave_pad_added), + (deinterleave_suite): + Add unit tests for the deinterleave element. + +2008-05-13 17:21:07 +0000 Sjoerd Simons + + gst/mpeg4videoparse/mpeg4videoparse.*: Parse the config data (either outbound or in the stream) to set width/height, ... + Original commit message from CVS: + Patch by: Sjoerd Simons + * gst/mpeg4videoparse/mpeg4videoparse.c: + (gst_mpeg4vparse_set_new_caps), (gst_mpeg4vparse_align), + (get_bits), (next_start_code), (gst_mpeg4vparse_handle_vos), + (gst_mpeg4vparse_push), (gst_mpeg4vparse_drain), + (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps), + (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_src_query), + (gst_mpeg4vparse_set_property), (gst_mpeg4vparse_get_property), + (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init): + * gst/mpeg4videoparse/mpeg4videoparse.h: + Parse the config data (either outbound or in the stream) to set + width/height, apect ration, framerate in the caps if applicable. + Mark frames as GST_BUFFER_FLAG_DELTA_UNIT when they are not + intra frames + Set the timestamps of outgoing buffers to the buffer in + which the VOP header was found. + Drop incoming data untill configuration is found (by default, + configurable using a property). + Report a 1 frame latency. Fixes #532723. + +2008-05-13 16:16:35 +0000 Wim Taymans + + gst/real/gstrealvideodec.c: Add some debug for where we are searching for libraries. + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (open_library): + Add some debug for where we are searching for libraries. + +2008-05-13 10:59:49 +0000 Sjoerd Simons + + tests/check/elements/audioresample.c: Add unit test for the latest basetransform negotiation changes. + Original commit message from CVS: + Patch by: Sjoerd Simons + * tests/check/elements/audioresample.c: + (live_switch_alloc_only_48000), (live_switch_get_sink_caps), + (live_switch_push), (GST_START_TEST): + Add unit test for the latest basetransform negotiation changes. + See bug #526768. + +2008-05-13 09:06:51 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Actually add the do-lost property to the object. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init): + Actually add the do-lost property to the object. + +2008-05-12 18:43:41 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Avoid waiting for a negative (huge) duration when the last packet has a lower ti... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop): + Avoid waiting for a negative (huge) duration when the last packet has a + lower timestamp than the current packet. + +2008-05-12 14:28:09 +0000 Peter Kjellerstedt + + gst/rtpmanager/gstrtpsession.c: Make sure to unref the rtpsession returned by gst_pad_get_parent() to prevent a memor... + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_query_send_rtcp_src): + Make sure to unref the rtpsession returned by gst_pad_get_parent() to + prevent a memory leak. + +2008-05-12 14:17:06 +0000 Jan Schmidt + + docs/plugins/gst-plugins-bad-plugins-sections.txt: Quieten some docs output + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Quieten some docs output + +2008-05-12 14:12:08 +0000 Jan Schmidt + + gst/rtpmanager/gstrtpjitterbuffer.c: Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop): + Initialise with GST_CLOCK_TIME_NONE to avoid compiler warning. + +2008-05-11 17:23:20 +0000 Jan Schmidt + + Random doc of the day: the deinterlace element. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * gst/deinterlace/gstdeinterlace.c: + * gst/deinterlace/gstdeinterlace.h: + Random doc of the day: the deinterlace element. + +2008-05-09 10:21:07 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Make sure all schedule EIT and non-actual transport stream + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + Make sure all schedule EIT and non-actual transport stream + EITs are parsed. Also add present-following flag and + actual-transport-stream flag to eit bus message. + +2008-05-09 07:41:58 +0000 Peter Kjellerstedt + + gst/rtpmanager/rtpsource.c: Make sure to unref the caps used by RTPSource to prevent a memory leak. + Original commit message from CVS: + * gst/rtpmanager/rtpsource.c: (rtp_source_finalize): + Make sure to unref the caps used by RTPSource to prevent a memory leak. + +2008-05-08 19:16:17 +0000 Clive Wright + + sys/oss4/oss4-mixer-slider.c: Apparently mono sliders have the mono value repeated in the upper bits, so mask those o... + Original commit message from CVS: + Based on patch by: Clive Wright + * sys/oss4/oss4-mixer-slider.c: (gst_oss4_mixer_slider_unpack_volume): + Apparently mono sliders have the mono value repeated in the upper bits, + so mask those out when reading them. Probably makes the mixer applet + work properly in some more cases. + +2008-05-08 09:43:33 +0000 Olivier Crete + + gst/rtpmanager/rtpsession.c: Unlock the session lock when calling one of our callbacks. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/rtpsession.c: (source_clock_rate), + (rtp_session_process_bye), (rtp_session_send_bye_locked): + Unlock the session lock when calling one of our callbacks. + Fixes #532011. + +2008-05-08 06:23:39 +0000 Sjoerd Simons + + gst/rtpmanager/gstrtpsession.c: Send RTP BYE command on EOS. Fixes bug #531955. + Original commit message from CVS: + Patch by: Sjoerd Simons + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtp_sink): + Send RTP BYE command on EOS. Fixes bug #531955. + +2008-05-08 06:20:42 +0000 Sjoerd Simons + + gst/audioresample/gstaudioresample.c: Let audioresample use the buffer allocation of basetransform instead of it's ow... + Original commit message from CVS: + Patch by: Sjoerd Simons + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init): + Let audioresample use the buffer allocation of basetransform instead + of it's own stuff. + * tests/check/elements/audioresample.c: (alloc_only_48000), + (GST_START_TEST), (audioresample_suite): + Add unit test for the recent basetransform bugfix, where upstream + changes caps to something that can't be passed through anymore. + +2008-05-07 20:25:09 +0000 Ole André Vadla Ravnås + + win32/common/config.h.in: Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather use the real thing than h... + Original commit message from CVS: + * win32/common/config.h.in: + Don't define GST_FUNCTION, if GLib supports MSVC we'd much rather + use the real thing than having "???" unconditionally. + +2008-05-07 10:38:23 +0000 Wim Taymans + + gst-libs/gst/app/: Add marshal.list, make it compile and add to cvsignore. + Original commit message from CVS: + * gst-libs/gst/app/.cvsignore: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstapp-marshal.list: + Add marshal.list, make it compile and add to cvsignore. + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose), + (gst_app_sink_stop): + Small cleanups. + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_class_init), + (gst_app_src_init), (gst_app_src_set_property), + (gst_app_src_get_property), (gst_app_src_unlock), + (gst_app_src_unlock_stop), (gst_app_src_start), (gst_app_src_stop), + (gst_app_src_create), (gst_app_src_set_caps), + (gst_app_src_get_caps), (gst_app_src_set_size), + (gst_app_src_get_size), (gst_app_src_set_seekable), + (gst_app_src_get_seekable), (gst_app_src_set_max_buffers), + (gst_app_src_get_max_buffers), (gst_app_src_push_buffer), + (gst_app_src_end_of_stream): + * gst-libs/gst/app/gstappsrc.h: + Beat appsrc in shape, add signals and actions. + Add some docs. + Add properties for caps, size, seekability and max-buffers. + Fix unlock/stop code. + +2008-05-07 07:51:36 +0000 Tim-Philipp Müller + + configure.ac: Error out if we don't have the required versions of core/base. + Original commit message from CVS: + * configure.ac: + Error out if we don't have the required versions of core/base. + +2008-05-05 10:27:45 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.*: Start some docs. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init), + (gst_app_sink_init), (gst_app_sink_set_property), + (gst_app_sink_get_property), (gst_app_sink_unlock_start), + (gst_app_sink_unlock_stop), (gst_app_sink_flush_unlocked), + (gst_app_sink_start), (gst_app_sink_stop), (gst_app_sink_event), + (gst_app_sink_preroll), (gst_app_sink_render), + (gst_app_sink_set_caps), (gst_app_sink_set_drop), + (gst_app_sink_get_drop): + * gst-libs/gst/app/gstappsink.h: + Start some docs. + Add property to drop buffers when the queue is filled + Fix unlocking and flushing when the queues are filled. + +2008-05-02 14:40:08 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add wildmidi plugin + Original commit message from CVS: + add wildmidi plugin + +2008-04-29 19:11:56 +0000 Jens Granseuer + + gst/subenc/gstsrtenc.c: Declare variables at the beginning of blocks. Fixes compilation with gcc 2.x and other compil... + Original commit message from CVS: + Patch by: Jens Granseuer + * gst/subenc/gstsrtenc.c: (gst_srt_enc_timestamp_to_string): + Declare variables at the beginning of blocks. Fixes compilation with + gcc 2.x and other compilers. Fixes bug #530611. + +2008-04-29 09:02:35 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Detect SI pids (NIT, SDT, EIT etc.) based on table id and not by pid number. This allows for exampl... + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtspacketizer.h: + * gst/mpegtsparse/mpegtsparse.c: + Detect SI pids (NIT, SDT, EIT etc.) based on table id and not + by pid number. This allows for example the EPG data from UK's + freesat to be picked up. + +2008-04-25 23:22:56 +0000 Sebastian Dröge + + ext/: Cast NULL sentinels to void * as NULL is defined as an integer constant in most environments when using C++ and... + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/soundtouch/gstbpmdetect.cc: + Cast NULL sentinels to void * as NULL is defined as an integer + constant in most environments when using C++ and it's size might + be different from a pointer. + +2008-04-25 18:18:47 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.*: Add more docs. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init), + (gst_app_sink_init), (gst_app_sink_set_property), + (gst_app_sink_get_property), (gst_app_sink_event), + (gst_app_sink_preroll), (gst_app_sink_render), + (gst_app_sink_set_emit_signals), (gst_app_sink_get_emit_signals), + (gst_app_sink_set_max_buffers), (gst_app_sink_get_max_buffers), + (gst_app_sink_pull_buffer): + * gst-libs/gst/app/gstappsink.h: + Add more docs. + Add signals for when preroll and render buffers are available. + Add property to control signal emission. + Add property to control the max queue size. + +2008-04-25 18:13:07 +0000 Michael Smith + + gst-libs/gst/dshow/Makefile.am: Use CXXFLAGS rather than CFLAGS; these are C++ files. + Original commit message from CVS: + * gst-libs/gst/dshow/Makefile.am: + Use CXXFLAGS rather than CFLAGS; these are C++ files. + Define required constants appropriately. + * sys/dshowdecwrapper/Makefile.am: + Add required include dir, libraries. + Define required constants appropriately. + +2008-04-25 11:32:09 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Expose new jitterbuffer property in rtpbin too. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_stream), (gst_rtp_bin_init), + (gst_rtp_bin_set_property), (gst_rtp_bin_get_property): + * gst/rtpmanager/gstrtpbin.h: + Expose new jitterbuffer property in rtpbin too. + +2008-04-25 11:22:13 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Disable sending out rtp packet lost events by default and make a property to ena... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init), + (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property), + (gst_rtp_jitter_buffer_get_property): + Disable sending out rtp packet lost events by default and make a + property to enabe it. We will likely enable it by default when the base + depayloaders have a default handler for them so that we don't send these + events all through the pipeline for now. + +2008-04-25 09:35:43 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Remove private version of a function that is in -base now. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_src_event), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_loop): + Remove private version of a function that is in -base now. + Add src event handler. + Rework the jitterbuffer pushing loop so that it can quickly react to + lost packets and instruct the depayloader of them. This can then be used + to implement error concealment data. + +2008-04-25 08:21:06 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Set up some internal links functions for the RTCP and sync pads because the defaults ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_query_send_rtcp_src), (create_recv_rtcp_sink), + (create_send_rtcp_src): + Set up some internal links functions for the RTCP and sync pads because + the defaults are really not correct. + Implement a query handler for the RTCP src pad, mostly to correctly + report about the latency. + +2008-04-25 08:15:58 +0000 Wim Taymans + + gst/rtpmanager/: Also keep track of the first buffer timestamp together with the first + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), + (gst_rtp_bin_sync_chain): + * gst/rtpmanager/rtpsession.c: (update_arrival_stats), + (rtp_session_process_sr), (rtp_session_on_timeout): + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (calculate_jitter): + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.h: + Also keep track of the first buffer timestamp together with the first + RTP timestamp as they both are needed to construct the timing of + outgoing packets in the jitterbuffer and are therefore also needed to + manage lip-sync. This fixes lip-sync if the first RTP packets arrive + with a wildly different gap. + +2008-04-25 08:07:36 +0000 Wim Taymans + + gst/flv/gstflvdemux.c: Forward unknown queries upstream instead of returning FALSE on them. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_query): + Forward unknown queries upstream instead of returning FALSE on them. + +2008-04-24 22:19:48 +0000 Sebastian Dröge + + Add support for the new libmpcdec API which magically gets us support for SV8 files. Also do some random cleanup. Fix... + Original commit message from CVS: + * configure.ac: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init), + (gst_musepackdec_init), (gst_musepackdec_dispose), + (gst_musepackdec_handle_seek_event), (gst_musepack_stream_init), + (gst_musepackdec_loop), (plugin_init): + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: + * ext/musepack/gstmusepackreader.h: + Add support for the new libmpcdec API which magically gets us support + for SV8 files. Also do some random cleanup. Fixes bug #526905. + +2008-04-24 21:24:18 +0000 Jan Schmidt + + configure.ac: Back to development -> 0.10.7.1 + Original commit message from CVS: + * configure.ac: + Back to development -> 0.10.7.1 + === release 0.10.7 === + +=== release 0.10.7 === + +2008-04-24 00:18:30 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * po/LINGUAS: + * win32/common/config.h: + Release 0.10.7 + Original commit message from CVS: + Release 0.10.7 + +2008-04-24 00:15:27 +0000 Jan Schmidt + + * common: + * po/af.po: + * po/az.po: + * po/bg.po: + * po/cs.po: + * po/da.po: + * po/de.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/fr.po: + * po/hu.po: + * po/it.po: + * po/ky.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/ru.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + Original commit message from CVS: + Update .po files + +2008-04-22 15:07:35 +0000 Stefan Kost + + ext/faad/gstfaad.c: Don't leak GstAudioChannelPosition. Fixes #529378. + Original commit message from CVS: + * ext/faad/gstfaad.c: + Don't leak GstAudioChannelPosition. Fixes #529378. + +2008-04-22 08:18:05 +0000 Wim Taymans + + gst/sdp/gstsdpdemux.c: Ref caps, see #528245. + Original commit message from CVS: + * gst/sdp/gstsdpdemux.c: (request_pt_map): + Ref caps, see #528245. + +2008-04-22 00:21:56 +0000 Jan Schmidt + + configure.ac: 0.10.6.4 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.6.4 pre-release + +2008-04-21 21:54:11 +0000 Sebastian Dröge + + tests/check/elements/rganalysis.c: Don't leak a tag list. Fixes bug #529285. + Original commit message from CVS: + * tests/check/elements/rganalysis.c: (GST_START_TEST): + Don't leak a tag list. Fixes bug #529285. + +2008-04-21 21:52:30 +0000 Sebastian Dröge + + tests/check/elements/ofa.c: Don't leak the tags string and tag list. Fixes bug #529283. + Original commit message from CVS: + * tests/check/elements/ofa.c: (bus_handler): + Don't leak the tags string and tag list. Fixes bug #529283. + +2008-04-21 08:26:37 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Ref caps when inserting into the cache. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), + (new_ssrc_pad_found): + Ref caps when inserting into the cache. + Don't leak pads. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_get_clock_rate), + (gst_rtp_jitter_buffer_query): + Avoid a caps leak. + Don't leak refcount in query. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps), + (gst_rtp_pt_demux_chain): + Avoid caps leaks. + * gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure), + (gst_rtp_session_init), (return_true), + (gst_rtp_session_clear_pt_map), (gst_rtp_session_cache_caps), + (gst_rtp_session_clock_rate): + Ref caps when inserting into the cache. + Fix some more caps leaks. Fixes #528245. + +2008-04-18 18:51:08 +0000 Tim-Philipp Müller + + tests/icles/metadata_editor.c: Add cast to placate gcc 4.1.2. + Original commit message from CVS: + * tests/icles/metadata_editor.c: + Add cast to placate gcc 4.1.2. + +2008-04-17 23:01:11 +0000 Jan Schmidt + + configure.ac: 0.10.6.3 pre-release + Original commit message from CVS: + * configure.ac: + 0.10.6.3 pre-release + +2008-04-17 18:28:05 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Revert patch that added a loop timeout. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Revert patch that added a loop timeout. + Fixes #528614. + +2008-04-17 07:31:44 +0000 Wim Taymans + + gst/rtpmanager/: Unset GValues after g_signal_emitv so that we avoid a refcount leak. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (get_pt_map), (free_client), + (gst_rtp_bin_associate), (gst_rtp_bin_get_free_pad_name): + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_get_clock_rate): + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps): + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate): + Unset GValues after g_signal_emitv so that we avoid a refcount leak. + Don't leak a padname. + Don't leak client streams list. + Lock rtpbin when associating streams. Fixes #528245. + +2008-04-16 09:50:17 +0000 Sebastian Dröge + + tests/check/Makefile.am: Don't inlcude dc1394src in the generic/states test as it requires special hardware. Fixes bu... + Original commit message from CVS: + * tests/check/Makefile.am: + Don't inlcude dc1394src in the generic/states test as it requires + special hardware. Fixes bug #528011. + +2008-04-16 09:48:06 +0000 Sebastian Dröge + + tests/check/elements/ofa.c: Only check if the generated fingerprints are valid Base64. The fingerprints are different... + Original commit message from CVS: + * tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST): + Only check if the generated fingerprints are valid Base64. The + fingerprints are different when running on different architectures + which is a) no problem because the fingerprints are tolerant enough + and b) is caused by libofa. Fixes bug #528266. + +2008-04-16 09:45:30 +0000 Sebastian Dröge + + ext/timidity/Makefile.am: Dist all source files, no matter if only timidity or wildmidi or nothing is found by config... + Original commit message from CVS: + * ext/timidity/Makefile.am: + Dist all source files, no matter if only timidity or wildmidi or + nothing is found by configure. Fixes bug #528000. + +2008-04-14 20:09:24 +0000 Tim-Philipp Müller + + gst-plugins-bad.spec.in: Remove souphttpsrc plugin from spec files, it's moved to -good. + Original commit message from CVS: + * gst-plugins-bad.spec.in: + Remove souphttpsrc plugin from spec files, it's moved to -good. + +2008-04-13 23:11:09 +0000 Jan Schmidt + + tests/check/Makefile.am: Remove soup test certificates from the dist. + Original commit message from CVS: + * tests/check/Makefile.am: + Remove soup test certificates from the dist. + +2008-04-13 20:54:52 +0000 Jan Schmidt + + ext/dirac/gstdiracenc.cc: Fix compilation by casting string constants. + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: + Fix compilation by casting string constants. + * sys/Makefile.am: + Fix WININET_DIR variable reference. + +2008-04-12 23:32:14 +0000 Jan Schmidt + + Remove soup plugin that's moved to -good (#523124) + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-soup.xml: + * ext/Makefile.am: + * ext/soup/Makefile.am: + * ext/soup/gstsouphttpsrc.c: + * ext/soup/gstsouphttpsrc.h: + * tests/check/Makefile.am: + * tests/check/elements/souphttpsrc.c: + * tests/check/test-cert.pem: + * tests/check/test-key.pem: + Remove soup plugin that's moved to -good (#523124) + +2008-04-11 23:19:21 +0000 Tim-Philipp Müller + + gst/flv/gstflvparse.c: Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes crash caused by a strlen on a... + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), + (gst_flv_parse_tag_script): + Handle NULL returns from FLV_GET_STRING() more gracefully. Fixes + crash caused by a strlen on a NULL string (#527622). + +2008-04-11 19:33:53 +0000 Ole André Vadla Ravnås + + sys/dshowsrcwrapper/gstdshowvideosrc.*: Don't increase latency by queuing buffers in an async queue when the streamin... + Original commit message from CVS: + Patch by: Ole André Vadla Ravnås + * sys/dshowsrcwrapper/gstdshowvideosrc.c: (PROP_DEVICE_NAME), + (gst_dshowvideosrc_class_init), (gst_dshowvideosrc_init), + (gst_dshowvideosrc_dispose), (gst_dshowvideosrc_stop), + (gst_dshowvideosrc_unlock), (gst_dshowvideosrc_unlock_stop), + (gst_dshowvideosrc_create), (gst_dshowvideosrc_push_buffer): + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + Don't increase latency by queuing buffers in an async queue when + the streaming thread can't keep up or isn't scheduled often + enough for some other reason, but just drop the previous buffer + in that case. Also implement GstBaseSrc::unlock for faster + unlocking when shutting down. (#520892). + +2008-04-11 18:46:31 +0000 Tim-Philipp Müller + + tests/icles/metadata_editor.*: Remove GstXOverlay stuff and use gdkpixbufsink plus some rather crude drawing/scaling ... + Original commit message from CVS: + * tests/icles/metadata_editor.c: (ENC_UNKNOWN), (last_pixbuf), + (draw_pixbuf), (change_tag_list), (update_draw_pixbuf), + (ui_drawing_size_allocate_cb), (on_drawingMain_expose_event), + (on_buttonSaveFile_clicked), (ui_create), (me_gst_bus_callback_view), + (me_gst_setup_view_pipeline), (process_file): + * tests/icles/metadata_editor.glade: + Remove GstXOverlay stuff and use gdkpixbufsink plus some rather crude + drawing/scaling logic to make this compile and work on all platforms. + Fixes #518227. + +2008-04-11 13:57:03 +0000 Tim-Philipp Müller + + configure.ac: Bump core/base requirements to released versions to avoid confusion. + Original commit message from CVS: + * configure.ac: + Bump core/base requirements to released versions to avoid + confusion. + * gst/deinterlace/gstdeinterlace.c: (deinterlace_debug), + (GST_CAT_DEFAULT), (gst_deinterlace_base_init), + (gst_deinterlace_set_caps), (plugin_init): + Add debug category, use _set_element_details_simple and + remove special code path for Y42B to calculate offsets and + strides; libgstvideo knows how to handle this format now. + +2008-04-11 13:08:24 +0000 Tim-Philipp Müller + + gst/cdxaparse/: Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do anything the 0.8 version didn't do ... + Original commit message from CVS: + * gst/cdxaparse/Makefile.am: + * gst/cdxaparse/gstcdxaparse.c: + * gst/cdxaparse/gstcdxastrip.c: + * gst/cdxaparse/gstcdxastrip.h: + * gst/cdxaparse/gstvcdparse.c: + * gst/cdxaparse/gstvcdparse.h: + Port VCD parser (formerly cdxastrip) from 0.8 to 0.10. Doesn't do + anything the 0.8 version didn't do though. + +2008-04-11 08:13:22 +0000 Julien Moutte + + sys/oss4/: Fix arguments format in debug statements. + Original commit message from CVS: + 2008-04-11 Julien Moutte + * sys/oss4/oss4-mixer-enum.c: + (gst_oss4_mixer_enum_get_values_locked): + * sys/oss4/oss4-source.c: (gst_oss4_source_delay): Fix arguments + format in debug statements. + +2008-04-10 15:29:44 +0000 Ole André Vadla Ravnås + + Add wininetsrc for basic http/ftp support on windows (#520897). + Original commit message from CVS: + Patch by: Ole André Vadla Ravnås + * configure.ac: + * sys/Makefile.am: + * sys/wininet/Makefile.am: + * sys/wininet/gstwininetsrc.c: + * sys/wininet/gstwininetsrc.h: + Add wininetsrc for basic http/ftp support on windows (#520897). + +2008-04-10 10:01:48 +0000 Tim-Philipp Müller + + gst/nsf/nsf.h: Change prototype of process function here too to avoid 'incompatible assignment' warnings. + Original commit message from CVS: + * gst/nsf/nsf.h: + Change prototype of process function here too to avoid + 'incompatible assignment' warnings. + +2008-04-10 07:11:51 +0000 Sebastian Dröge + + tests/check/elements/souphttpsrc.c: Increase the timeout for the internet tests to 250 seconds and check for NULL cap... + Original commit message from CVS: + * tests/check/elements/souphttpsrc.c: (got_buffer), + (souphttpsrc_suite): + Increase the timeout for the internet tests to 250 seconds + and check for NULL caps instead of just crashing. + The real fix would be to implement an shoutcast server for the unit test + instead of relying on a working internet connection. + Fixes bug #521749. + +2008-04-09 22:27:50 +0000 Peter Kjellerstedt + + gst/rtpmanager/: Avoid leaking pads in the RTP manager. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (free_session): + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize): + Avoid leaking pads in the RTP manager. + +2008-04-09 13:43:51 +0000 Jan Schmidt + + gst/nsf/nes_apu.*: Don't do void pointer arithmetic - it's a gcc extension. + Original commit message from CVS: + * gst/nsf/nes_apu.c: (apu_process): + * gst/nsf/nes_apu.h: + Don't do void pointer arithmetic - it's a gcc extension. + +2008-04-06 20:18:16 +0000 Tim-Philipp Müller + + ext/jack/gstjackaudiosink.c: Work around missing bits of thread-safety on older GLibs some more to avoid assertions w... + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: (gst_jack_audio_sink_class_init): + Work around missing bits of thread-safety on older GLibs some + more to avoid assertions when starting up multiple playbin + objects concurrently (see #512382). + +2008-04-06 09:01:42 +0000 Sjoerd Simons + + ext/soup/gstsouphttpsrc.c: Only ignore actual redirects not all responses when in state + Original commit message from CVS: + Patch by: Sjoerd Simons + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_response_cb): + Only ignore actual redirects not all responses when in state + GST_SOUP_HTTP_SRC_SESSION_IO_STATUS_RUNNING. Fixes bug #526337. + +2008-04-06 08:58:39 +0000 Damien Lespiau + + configure.ac: Actually build dlls when cross-compiling with mingw32. + Original commit message from CVS: + Patch by: Damien Lespiau + * configure.ac: + Actually build dlls when cross-compiling with mingw32. + Fixes bug #526247. + +2008-04-05 11:03:13 +0000 Sebastian Dröge + + tests/check/elements/ofa.c: Also check that we have processed at least 135 seconds of audio until we stop and calcula... + Original commit message from CVS: + * tests/check/elements/ofa.c: (GST_START_TEST): + Also check that we have processed at least 135 seconds of audio + until we stop and calculated a fingerprint. + +2008-04-04 20:43:18 +0000 Tim-Philipp Müller + + gst/subenc/gstsrtenc.*: GstSrtenc => GstSrtEnc and gst_srtenc_ => gst_srt_enc_. + Original commit message from CVS: + * gst/subenc/gstsrtenc.c: + * gst/subenc/gstsrtenc.h: + GstSrtenc => GstSrtEnc and gst_srtenc_ => gst_srt_enc_. + +2008-04-04 19:18:36 +0000 Sebastian Dröge + + tests/check/: Add simple unit tests for the OFA plugin. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/ofa.c: (bus_handler), (GST_START_TEST), + (ofa_suite), (main): + Add simple unit tests for the OFA plugin. + +2008-04-03 14:23:47 +0000 Christian Schaller + + * common: + * gst-plugins-bad.spec.in: + update spec file with new ossv4 plugin + Original commit message from CVS: + update spec file with new ossv4 plugin + +2008-04-02 20:18:58 +0000 Tim-Philipp Müller + + Add initial support for OSSv4. Mixer still needs a bit more love, but even magic has its limits. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/oss4/Makefile.am: + * sys/oss4/oss4-audio.c: + * sys/oss4/oss4-audio.h: + * sys/oss4/oss4-mixer-enum.c: + * sys/oss4/oss4-mixer-enum.h: + * sys/oss4/oss4-mixer-slider.c: + * sys/oss4/oss4-mixer-slider.h: + * sys/oss4/oss4-mixer-switch.c: + * sys/oss4/oss4-mixer-switch.h: + * sys/oss4/oss4-mixer.c: + * sys/oss4/oss4-mixer.h: + * sys/oss4/oss4-property-probe.c: + * sys/oss4/oss4-property-probe.h: + * sys/oss4/oss4-sink.c: + * sys/oss4/oss4-sink.h: + * sys/oss4/oss4-soundcard.h: + * sys/oss4/oss4-source.c: + * sys/oss4/oss4-source.h: + Add initial support for OSSv4. Mixer still needs a bit more love, + but even magic has its limits. + +2008-04-01 22:40:49 +0000 Tim-Philipp Müller + + Rename new srtenc plugin to subenc. + Original commit message from CVS: + * configure.ac: + * gst-plugins-bad.spec.in: + * gst/srtenc/Makefile.am: + * gst/srtenc/gstsrtenc.c: + * gst/srtenc/gstsrtenc.h: + * gst/subenc/Makefile.am: + * gst/subenc/gstsrtenc.c: (plugin_init): + Rename new srtenc plugin to subenc. + +2008-04-01 20:33:19 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fix spec'a'lec + Original commit message from CVS: + fix spec'a'lec + +2008-04-01 19:53:53 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Cable delivery subsystem descriptors' frequency's bcd is measured in 100Hz units ... + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Cable delivery subsystem descriptors' frequency's bcd + is measured in 100Hz units so adjust multiplier accordingly. + +2008-04-01 13:42:55 +0000 Thijs Vermeir + + Add srt subtitle encoder + Original commit message from CVS: + * configure.ac: + * gst/srtenc/Makefile.am: + * gst/srtenc/gstsrtenc.c: + * gst/srtenc/gstsrtenc.h: + Add srt subtitle encoder + +2008-03-31 16:24:42 +0000 kapil + + ext/gsm/gstgsmdec.*: Increase the allowed samplerates for the ms-gsm format. + Original commit message from CVS: + Patch by: kapil + * ext/gsm/gstgsmdec.c: (gst_gsmdec_sink_setcaps), + (gst_gsmdec_chain): + * ext/gsm/gstgsmdec.h: + Increase the allowed samplerates for the ms-gsm format. + Fixes #481354. + +2008-03-30 21:06:58 +0000 Jan de Groot + + configure.ac: Fix build with --disable-external (#525100). + Original commit message from CVS: + Patch by: Jan de Groot + * configure.ac: + Fix build with --disable-external (#525100). + +2008-03-28 09:48:27 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Repeat diseqc call to allow for some diseqc switches. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Repeat diseqc call to allow for some diseqc switches. + +2008-03-27 16:32:27 +0000 Zaheer Abbas Merali + + ext/Makefile.am: Dist ofa correctly! Fixes non-uninstalled build. + Original commit message from CVS: + * ext/Makefile.am: + Dist ofa correctly! Fixes non-uninstalled build. + +2008-03-27 15:57:14 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Make diseqc work more reliably. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Make diseqc work more reliably. + +2008-03-26 07:40:58 +0000 Sebastian Dröge + + gst/nsf/: Remove memguard again and apply hopefully all previously dropped local patches. Should be really better tha... + Original commit message from CVS: + * gst/nsf/Makefile.am: + * gst/nsf/fds_snd.c: + * gst/nsf/mmc5_snd.c: + * gst/nsf/nsf.c: + * gst/nsf/types.h: + * gst/nsf/vrc7_snd.c: + * gst/nsf/vrcvisnd.c: + * gst/nsf/memguard.c: + * gst/nsf/memguard.h: + Remove memguard again and apply hopefully all previously dropped + local patches. Should be really better than the old version now. + +2008-03-25 16:58:53 +0000 Wim Taymans + + gst/nsf/: Unbreak compilation by disabling memguard and doing some dirty hack fixes to make it compile on 64bits. + Original commit message from CVS: + * gst/nsf/memguard.c: (_my_free): + * gst/nsf/types.h: + Unbreak compilation by disabling memguard and doing some dirty hack + fixes to make it compile on 64bits. + +2008-03-25 15:56:13 +0000 Andreas Henriksson + + gst/nsf/: Update our internal nosefart to nosefart-2.7-mls to fix segfaults on some files. Fixes bug #498237. + Original commit message from CVS: + Patch by: Andreas Henriksson + * gst/nsf/Makefile.am: + * gst/nsf/dis6502.h: + * gst/nsf/fds_snd.c: + * gst/nsf/fds_snd.h: + * gst/nsf/fmopl.c: + * gst/nsf/fmopl.h: + * gst/nsf/gstnsf.c: + * gst/nsf/log.c: + * gst/nsf/log.h: + * gst/nsf/memguard.c: + * gst/nsf/memguard.h: + * gst/nsf/mmc5_snd.c: + * gst/nsf/mmc5_snd.h: + * gst/nsf/nes6502.c: + * gst/nsf/nes6502.h: + * gst/nsf/nes_apu.c: + * gst/nsf/nes_apu.h: + * gst/nsf/nsf.c: + * gst/nsf/nsf.h: + * gst/nsf/osd.h: + * gst/nsf/types.h: + * gst/nsf/vrc7_snd.c: + * gst/nsf/vrc7_snd.h: + * gst/nsf/vrcvisnd.c: + * gst/nsf/vrcvisnd.h: + Update our internal nosefart to nosefart-2.7-mls to fix segfaults + on some files. Fixes bug #498237. + Remove some // comments, fix some compiler warnings and use pow() + instead of a slow, selfmade implementation. + +2008-03-25 15:17:58 +0000 Ed Catmur + + configure.ac: Add support for neon 0.28, which didn't change API. Fixes bug #524035. + Original commit message from CVS: + Patch by: Ed Catmur + * configure.ac: + Add support for neon 0.28, which didn't change API. Fixes bug #524035. + +2008-03-24 12:32:59 +0000 Rene Stadler + + Make rganalysis and rglimiter elements GAP-flag aware. + Original commit message from CVS: + * gst/replaygain/gstrganalysis.c (gst_rg_analysis_init), + (gst_rg_analysis_transform_ip): + * gst/replaygain/gstrglimiter.c (gst_rg_limiter_init), + (gst_rg_limiter_transform_ip): + Make rganalysis and rglimiter elements GAP-flag aware. + * tests/check/elements/rganalysis.c: (test_gap_buffers), + (rganalysis_suite): + * tests/check/elements/rglimiter.c (test_gap), (rglimiter_suite): + Add tests to verify gap-awareness. + +2008-03-22 19:26:04 +0000 Sebastian Dröge + + ext/soup/gstsouphttpsrc.c: Don't autoplug souphttpsrc for dav/davs. This is better handled by + Original commit message from CVS: + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_headers_cb), + (gst_soup_http_src_chunk_allocator), + (gst_soup_http_src_got_chunk_cb), + (gst_soup_http_src_uri_get_protocols): + Don't autoplug souphttpsrc for dav/davs. This is better handled by + GIO and GnomeVFS as they provide authentication. + Don't leak the icy caps if we already set them and get a new + icy-metaint header. + Try harder to set the icy caps on the output buffer to have correct + caps for the first buffer already. + * tests/check/elements/souphttpsrc.c: (got_buffer), + (GST_START_TEST): + Check that we get a buffer with application/x-icy caps if iradio-mode + is enabled and we have an icecast URL. + +2008-03-22 18:18:46 +0000 Sebastian Dröge + + ext/soup/gstsouphttpsrc.c: Actually set the icy caps on our src pad if we have icecast data. + Original commit message from CVS: + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_chunk_allocator): + Actually set the icy caps on our src pad if we have icecast data. + Fixes bug #523854. + +2008-03-22 15:00:47 +0000 Sebastian Dröge + + Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use static strings (i.e. all). This gives us less memory u... + Original commit message from CVS: + * configure.ac: + * ext/alsa/gstalsamixerelement.c: + (gst_alsa_mixer_element_class_init): + * ext/alsa/gstalsasink.c: (gst_alsasink_class_init): + * ext/alsa/gstalsasrc.c: (gst_alsasrc_class_init): + * ext/cdparanoia/gstcdparanoiasrc.c: + (gst_cd_paranoia_src_class_init): + * ext/gio/gstgiosink.c: (gst_gio_sink_class_init): + * ext/gio/gstgiosrc.c: (gst_gio_src_class_init): + * ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_class_init): + * ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_class_init): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnome_vfs_sink_class_init): + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnome_vfs_src_class_init): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init): + * ext/pango/gsttextoverlay.c: (gst_text_overlay_class_init): + * ext/pango/gsttextrender.c: (gst_text_render_class_init): + * ext/theora/theoradec.c: (gst_theora_dec_class_init): + * ext/theora/theoraenc.c: (gst_theora_enc_class_init): + * ext/theora/theoraparse.c: (gst_theora_parse_class_init): + * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_class_init): + * gst-libs/gst/audio/gstaudiofiltertemplate.c: + (gst_audio_filter_template_class_init): + * gst-libs/gst/audio/gstbaseaudiosink.c: + (gst_base_audio_sink_class_init): + * gst-libs/gst/audio/gstbaseaudiosrc.c: + (gst_base_audio_src_class_init): + * gst-libs/gst/cdda/gstcddabasesrc.c: + (gst_cdda_base_src_class_init): + * gst-libs/gst/interfaces/mixertrack.c: + (gst_mixer_track_class_init): + * gst-libs/gst/rtp/gstbasertpdepayload.c: + (gst_base_rtp_depayload_class_init): + * gst-libs/gst/rtp/gstbasertppayload.c: + (gst_basertppayload_class_init): + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_class_init): + * gst/audiorate/gstaudiorate.c: (gst_audio_rate_class_init): + * gst/audioresample/gstaudioresample.c: + (gst_audioresample_class_init): + * gst/audiotestsrc/gstaudiotestsrc.c: + (gst_audio_test_src_class_init): + * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init): + * gst/playback/gstdecodebin2.c: (gst_decode_bin_class_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (preroll_unlinked): + * gst/playback/gstplaybin.c: (gst_play_bin_class_init): + * gst/playback/gstplaybin2.c: (gst_play_bin_class_init): + * gst/playback/gstplaysink.c: (gst_play_sink_class_init): + * gst/playback/gstqueue2.c: (gst_queue_class_init): + * gst/playback/gststreaminfo.c: (gst_stream_info_class_init): + * gst/playback/gststreamselector.c: (gst_selector_pad_class_init), + (gst_stream_selector_class_init): + * gst/playback/gsturidecodebin.c: (gst_uri_decode_bin_class_init): + * gst/subparse/gstsubparse.c: (gst_sub_parse_class_init): + * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init): + * gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init): + * gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init): + * gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init): + * gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init): + * gst/videorate/gstvideorate.c: (gst_video_rate_class_init): + * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init): + * gst/videotestsrc/gstvideotestsrc.c: + (gst_video_test_src_class_init): + * gst/volume/gstvolume.c: (gst_volume_class_init): + * sys/v4l/gstv4lelement.c: (gst_v4lelement_class_init): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init): + * sys/ximage/ximagesink.c: (gst_ximagesink_class_init): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_class_init): + Use G_PARAM_STATIC_STRINGS everywhere for GParamSpecs that use + static strings (i.e. all). This gives us less memory usage, + fewer allocations and thus less memory defragmentation. Depend + on core CVS for this. Fixes bug #523806. + +2008-03-21 14:50:41 +0000 Sebastian Dröge + + configure.ac: Check if the compiler supports do { } while (0) macros. This fixes a warning when compiling with g++ 4.... + Original commit message from CVS: + * configure.ac: + Check if the compiler supports do { } while (0) macros. This fixes + a warning when compiling with g++ 4.3, resulting in a build failure + because of -Werror. + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mplex/gstmplex.cc: + Include for memcpy and friends to fix the build with + gcc 4.3. + * tests/check/Makefile.am: + Remove trailing backslash. + +2008-03-20 18:10:29 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Do g_object_notify() only when not holding the lock to get the property because othe... + Original commit message from CVS: + * gst/selector/gstinputselector.c: + (gst_input_selector_set_active_pad), (gst_input_selector_switch): + Do g_object_notify() only when not holding the lock to get the property + because otherwise we run into a deadlock with the deep-notify handlers + that are possibly installed. + +2008-03-20 17:48:49 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Release the selector lock when pad alloc happens on a non selected pad. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), + (gst_selector_pad_event), (gst_selector_pad_bufferalloc), + (gst_selector_pad_chain), (gst_input_selector_set_active_pad): + Release the selector lock when pad alloc happens on a non selected pad. + +2008-03-20 17:07:07 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Add pad property to configure behaviour of the unselected pad, it can return OK or N... + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), + (gst_selector_pad_init), (gst_selector_pad_set_property), + (gst_selector_pad_get_property), (gst_selector_pad_event), + (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), + (gst_input_selector_set_active_pad): + Add pad property to configure behaviour of the unselected pad, it can + return OK or NOT_LINKED, based on the use case. + +2008-03-20 16:48:46 +0000 Wim Taymans + + gst/selector/gstinputselector.*: Figure out the locking a bit more. + Original commit message from CVS: + * gst/selector/gstinputselector.c: + (gst_selector_pad_get_running_time), (gst_selector_pad_reset), + (gst_selector_pad_event), (gst_selector_pad_bufferalloc), + (gst_input_selector_wait), (gst_selector_pad_chain), + (gst_input_selector_class_init), (gst_input_selector_init), + (gst_input_selector_dispose), (gst_segment_set_start), + (gst_input_selector_set_active_pad), + (gst_input_selector_set_property), + (gst_input_selector_get_property), + (gst_input_selector_get_linked_pad), + (gst_input_selector_is_active_sinkpad), + (gst_input_selector_activate_sinkpad), + (gst_input_selector_request_new_pad), + (gst_input_selector_release_pad), + (gst_input_selector_change_state), (gst_input_selector_block), + (gst_input_selector_switch): + * gst/selector/gstinputselector.h: + Figure out the locking a bit more. + Mark buffers with discont after switching. + Fix initial segment forwarding, make sure to only forward one segment + regardless of what the sequence of buffers/segments is. See #522203. + Improve flushing when blocked. + Return NOT_LINKED when a stream is not selected. + Not API change for the switch signal in the docs. + Fix start/time/accum values of the new segment. + Correctly unlock and flush a blocking selector when going to READY. + +2008-03-20 15:54:23 +0000 Stefan Kost + + ext/ladspa/: Add some thoughts and FIXME's. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: + * ext/ladspa/gstsignalprocessor.c: + Add some thoughts and FIXME's. + +2008-03-20 15:49:22 +0000 Stefan Kost + + gst/bayer/gstbayer2rgb.c: Include stdlib.h for abs. + Original commit message from CVS: + * gst/bayer/gstbayer2rgb.c: + Include stdlib.h for abs. + +2008-03-19 19:56:59 +0000 Stefan Kost + + gst/freeze/: Add example to source code documentation blob and remove the 3 line + Original commit message from CVS: + * gst/freeze/FAQ: + * gst/freeze/Makefile.am: + * gst/freeze/gstfreeze.c: + Add example to source code documentation blob and remove the 3 line + FAQ. + * gst/interleave/interleave.c: + Add a source code documentation blob. + +2008-03-19 18:44:51 +0000 Sebastian Dröge + + ext/ofa/gstofa.c: Improve debugging, clean up a bit and really generate the fingerprint after 135 seconds. + Original commit message from CVS: + * ext/ofa/gstofa.c: (create_fingerprint), (gst_ofa_event), + (gst_ofa_transform_ip), (plugin_init): + Improve debugging, clean up a bit and really generate the fingerprint + after 135 seconds. + +2008-03-19 18:19:12 +0000 Sebastian Dröge + + ext/ofa/gstofa.c: Use GPL as license, the plugin itself is LGPL but libofa is GPL. + Original commit message from CVS: + * ext/ofa/gstofa.c: + Use GPL as license, the plugin itself is LGPL but libofa is GPL. + +2008-03-19 18:14:17 +0000 Eric Buehl + + Add an OFA element, the successor of MusicBrainz TRM fingerprinting. + Original commit message from CVS: + Based on a patch by: Eric Buehl + * configure.ac: + * ext/ofa/Makefile.am: + * ext/ofa/gstofa.c: (gst_ofa_base_init), (gst_ofa_finalize), + (gst_ofa_class_init), (create_fingerprint), (gst_ofa_event), + (gst_ofa_init), (gst_ofa_transform_ip), (gst_ofa_get_property), + (plugin_init): + * ext/ofa/gstofa.h: + Add an OFA element, the successor of MusicBrainz TRM fingerprinting. + Fixes bug #351309. + +2008-03-18 10:12:40 +0000 Andy Wingo + + ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument, and a potential int overflow. + Original commit message from CVS: + 2008-03-18 Andy Wingo + * ext/faad/gstfaad.c (gst_faad_chain): Fix a bad format argument, + and a potential int overflow. + * ext/faad/gstfaad.h: Include if faad is neaac. + Avoids a #warning about an ignored #pragma. + +2008-03-17 15:51:08 +0000 Zaheer Abbas Merali + + examples/switch/switcher.c: Update switch example to use input selector. + Original commit message from CVS: + * examples/switch/switcher.c: + Update switch example to use input selector. + +2008-03-17 09:02:43 +0000 Sebastian Dröge + + ext/neon/gstneonhttpsrc.c: Handle HTTP status code 303 (See Other) the same way as 302 (Found). Not sure what to do a... + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_send_request_and_redirect): + Handle HTTP status code 303 (See Other) the same way + as 302 (Found). Not sure what to do about all the other 3xx + redirect status codes. Fixes bug #522884. + +2008-03-14 21:48:37 +0000 Edward Hervey + + gst-libs/gst/dshow/Makefile.am: Make sure the dshow helper library headers get distributed in the next release. + Original commit message from CVS: + * gst-libs/gst/dshow/Makefile.am: + Make sure the dshow helper library headers get distributed in the next + release. + +2008-03-14 17:38:10 +0000 William M. Brack + + gst/bayer/gstbayer2rgb.c: Significant improvements. Fixes #521392. + Original commit message from CVS: + Patch by: William M. Brack + * gst/bayer/gstbayer2rgb.c: Significant improvements. Fixes #521392. + +2008-03-14 17:22:21 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Add lots of debugging. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_event), + (gst_selector_pad_bufferalloc), (gst_selector_pad_chain), + (gst_input_selector_class_init), + (gst_input_selector_set_active_pad), + (gst_input_selector_set_property), + (gst_input_selector_push_pending_stop): + Add lots of debugging. + Fix time member in the newsegment event. + +2008-03-13 16:46:04 +0000 Wim Taymans + + gst/selector/gstinputselector.*: Various cleanups. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_class_init), + (gst_selector_pad_finalize), (gst_selector_pad_get_property), + (gst_selector_pad_event), (gst_input_selector_class_init), + (gst_input_selector_init), (gst_input_selector_set_active_pad), + (gst_input_selector_set_property), + (gst_input_selector_get_property), + (gst_input_selector_request_new_pad), + (gst_input_selector_release_pad), + (gst_input_selector_push_pending_stop), + (gst_input_selector_switch): + * gst/selector/gstinputselector.h: + Various cleanups. + Added tags to the pads. + Select active pad based on the pad object instead of its name. + Fix refcount in set_active_pad. + Add property to get the number of pads. + * gst/selector/gstoutputselector.c: + (gst_output_selector_class_init), + (gst_output_selector_set_property), + (gst_output_selector_get_property): + Various cleanups. + Select the active pad based on the pad object instead of its name. + Fix locking when setting the active pad. + * gst/selector/gstselector-marshal.list: + * tests/check/elements/selector.c: (cleanup_pad), + (selector_set_active_pad), (run_input_selector_buffer_count): + Fixes for pad instead of padname for pad selection. + +2008-03-13 14:25:20 +0000 Sebastian Dröge + + Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead of hardcoding values where possible. Fixes bug #522212. + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: + * ext/gsm/gstgsm.c: + * ext/jack/gstjack.c: + * ext/libmms/gstmms.c: + * ext/neon/gstneonhttpsrc.c: + * ext/shout/gstshout.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * gst/nuvdemux/gstnuvdemux.c: + * gst/tta/gsttta.c: + Use GST_LICENSE, GST_PACKAGE_NAME and GST_PACKAGE_ORIGIN instead + of hardcoding values where possible. Fixes bug #522212. + +2008-03-13 09:45:09 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.*: Try to resume on server disconnect. Fixes bug #522134. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_init), + (gst_soup_http_src_finished_cb), (gst_soup_http_src_response_cb), + (gst_soup_http_src_build_message), (gst_soup_http_src_create): + * ext/soup/gstsouphttpsrc.h: + Try to resume on server disconnect. Fixes bug #522134. + +2008-03-12 18:44:58 +0000 Wim Taymans + + ext/xvid/gstxvidenc.c: Set correct pixel aspect ratio for the encoder. + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_chain): + Set correct pixel aspect ratio for the encoder. + +2008-03-11 12:40:58 +0000 Olivier Crete + + gst/rtpmanager/rtpsession.*: Implement collision and loop detection in rtpmanager. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/rtpsession.c: (find_add_conflicting_addresses), + (check_collision), (obtain_source), (rtp_session_create_new_ssrc), + (rtp_session_create_source), (rtp_session_process_rtp), + (rtp_session_process_sr), (rtp_session_process_rr), + (rtp_session_process_sdes), (rtp_session_process_bye), + (rtp_session_send_bye_locked), (rtp_session_send_bye), + (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Implement collision and loop detection in rtpmanager. + Fixes #520626. + * gst/rtpmanager/rtpsource.c: (rtp_source_reset), + (rtp_source_init): + * gst/rtpmanager/rtpsource.h: + Add method to reset stats. + +2008-03-11 11:36:03 +0000 Ole André Vadla Ravnås + + gst/rtpmanager/gstrtpsession.c: Avoid a deadlock when joining the RTCP thread in PAUSED because it might be blocked d... + Original commit message from CVS: + Based on patch by: Ole André Vadla Ravnås + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_init), + (rtcp_thread), (start_rtcp_thread), (stop_rtcp_thread), + (join_rtcp_thread), (gst_rtp_session_change_state): + Avoid a deadlock when joining the RTCP thread in PAUSED because it might + be blocked downstream. Also avoid spawning multiple rtcp threads. + Fixes #520894. + +2008-03-11 10:43:32 +0000 Stefan Kost + + gst/rtpmanager/rtpjitterbuffer.c: Don't try to reset the clock skew when we have no timestamps. + Original commit message from CVS: + Patch by: Stefan Kost + * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): + Don't try to reset the clock skew when we have no timestamps. + Fixes #519005. + +2008-03-08 04:27:03 +0000 Sjoerd Simons + + ext/faad/gstfaad.c: Improve the header checking to look for what faad2 looks for too. Fixes playback of same apple tr... + Original commit message from CVS: + Patch by: Sjoerd Simons + * ext/faad/gstfaad.c: (looks_like_valid_header): + Improve the header checking to look for what faad2 looks + for too. Fixes playback of same apple trailers. + Fixes bug #469979. + +2008-03-07 13:28:06 +0000 Sebastian Dröge + + configure.ac: Really check for libdc1394 >= 2.0.0, pkg-config thinks that 2.0.0-rcX is newer than 2.0.0 so we check f... + Original commit message from CVS: + * configure.ac: + Really check for libdc1394 >= 2.0.0, pkg-config thinks that + 2.0.0-rcX is newer than 2.0.0 so we check for this too. + +2008-03-06 07:03:09 +0000 David Schleef + + ext/dirac/gstdiracenc.cc: Add a bunch of properties cribbed from the encoder program in dirac. + Original commit message from CVS: + * ext/dirac/gstdiracenc.cc: Add a bunch of properties cribbed + from the encoder program in dirac. + +2008-03-06 03:16:13 +0000 David Schleef + + Rewrite Dirac encoder plugin based on Schroedinger gstreamer elements. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/dirac/Makefile.am: + * ext/dirac/gstdirac.cc: + * ext/dirac/gstdiracenc.cc: + Rewrite Dirac encoder plugin based on Schroedinger gstreamer + elements. + +2008-03-05 06:03:03 +0000 Mark Nauwelaerts + + Port mplex element to 0.10. Fixes bug #520329. + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * configure.ac: + * ext/Makefile.am: + * ext/mplex/Makefile.am: + * ext/mplex/gstmplex.cc: + * ext/mplex/gstmplex.hh: + * ext/mplex/gstmplexibitstream.cc: + * ext/mplex/gstmplexibitstream.hh: + * ext/mplex/gstmplexjob.cc: + * ext/mplex/gstmplexjob.hh: + * ext/mplex/gstmplexoutputstream.cc: + * ext/mplex/gstmplexoutputstream.hh: + Port mplex element to 0.10. Fixes bug #520329. + * tests/check/Makefile.am: + * tests/check/elements/mplex.c: (test_sink_event), (setup_src_pad), + (teardown_src_pad), (setup_mplex), (cleanup_mplex), + (GST_START_TEST), (mplex_suite), (main): + Add unit test for the mplex element. + +2008-03-05 05:38:06 +0000 Mark Nauwelaerts + + configure.ac: Clean up detection of different mjpegtoolsAPI versions. + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * configure.ac: + Clean up detection of different mjpegtoolsAPI versions. + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mpeg2enc/gstmpeg2enc.hh: + * ext/mpeg2enc/gstmpeg2encoder.cc: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.hh: + * ext/mpeg2enc/gstmpeg2encstreamwriter.cc: + * ext/mpeg2enc/gstmpeg2encstreamwriter.hh: + Streamline conditional code for evolving mjpegtools API, + optimize and fix/prevent crash in log handling, use + names/nicks for enums in the usual way andm inor updates + in code and properties/settings. Partially fixes bug #520329. + +2008-03-04 17:49:15 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Add parsing of cable delivery system descriptor. + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + Add parsing of cable delivery system descriptor. + +2008-03-03 12:48:56 +0000 Peter Kjellerstedt + + configure.ac: Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which plug-ins are included/excluded. (#4... + Original commit message from CVS: + * configure.ac: + Use AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to simplify which + plug-ins are included/excluded. (#498222) + +2008-03-03 06:04:02 +0000 Sebastian Dröge + + Correct all relevant warnings found by the sparse semantic code analyzer. This include marking several symbols static... + Original commit message from CVS: + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_get_type): + * ext/alsa/gstalsasink.c: (set_hwparams): + * ext/alsa/gstalsasrc.c: (set_hwparams): + * ext/gio/gstgio.c: (gst_gio_uri_handler_get_uri): + * ext/ogg/gstoggmux.h: + * ext/ogg/gstogmparse.c: + * gst-libs/gst/audio/audio.c: + * gst-libs/gst/fft/kiss_fft_f64.c: (kiss_fft_f64_alloc): + * gst-libs/gst/pbutils/missing-plugins.c: + (gst_missing_uri_sink_message_new), + (gst_missing_element_message_new), + (gst_missing_decoder_message_new), + (gst_missing_encoder_message_new): + * gst-libs/gst/rtp/gstbasertppayload.c: + * gst-libs/gst/rtp/gstrtcpbuffer.c: + (gst_rtcp_packet_bye_get_reason): + * gst/audioconvert/gstaudioconvert.c: + * gst/audioresample/gstaudioresample.c: + * gst/ffmpegcolorspace/imgconvert.c: + * gst/playback/test.c: (gen_video_element), (gen_audio_element): + * gst/typefind/gsttypefindfunctions.c: + * gst/videoscale/vs_4tap.c: + * gst/videoscale/vs_4tap.h: + * sys/v4l/gstv4lelement.c: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_any_caps): + * sys/v4l/v4l_calls.c: + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init), + (gst_v4lsrc_try_capture): + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), + (gst_ximagesink_ximage_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new): + * tests/check/elements/audioconvert.c: + * tests/check/elements/audioresample.c: + (fail_unless_perfect_stream): + * tests/check/elements/audiotestsrc.c: (setup_audiotestsrc): + * tests/check/elements/decodebin.c: + * tests/check/elements/gdpdepay.c: (setup_gdpdepay), + (setup_gdpdepay_streamheader): + * tests/check/elements/gdppay.c: (setup_gdppay), (GST_START_TEST), + (setup_gdppay_streamheader): + * tests/check/elements/gnomevfssink.c: (setup_gnomevfssink): + * tests/check/elements/multifdsink.c: (setup_multifdsink): + * tests/check/elements/textoverlay.c: + * tests/check/elements/videorate.c: (setup_videorate): + * tests/check/elements/videotestsrc.c: (setup_videotestsrc): + * tests/check/elements/volume.c: (setup_volume): + * tests/check/elements/vorbisdec.c: (setup_vorbisdec): + * tests/check/elements/vorbistag.c: + * tests/check/generic/clock-selection.c: + * tests/check/generic/states.c: (setup), (teardown): + * tests/check/libs/cddabasesrc.c: + * tests/check/libs/video.c: + * tests/check/pipelines/gio.c: + * tests/check/pipelines/oggmux.c: + * tests/check/pipelines/simple-launch-lines.c: + (simple_launch_lines_suite): + * tests/check/pipelines/streamheader.c: + * tests/check/pipelines/theoraenc.c: + * tests/check/pipelines/vorbisdec.c: + * tests/check/pipelines/vorbisenc.c: + * tests/examples/seek/scrubby.c: + * tests/examples/seek/seek.c: (query_positions_elems), + (query_positions_pads): + * tests/icles/stress-xoverlay.c: (myclock): + Correct all relevant warnings found by the sparse semantic code + analyzer. This include marking several symbols static, using + NULL instead of 0 for pointers and using "foo (void)" instead + of "foo ()" for declarations. + * win32/common/libgstrtp.def: + Add gst_rtp_buffer_set_extension_data to the symbol definition file. + +2008-03-03 04:39:48 +0000 Jens Granseuer + + gst/mve/gstmvedemux.c: Fix audio discontinuity that happens when silent chunks are followed by real data again. Fixes... + Original commit message from CVS: + Patch by: Jens Granseuer + * gst/mve/gstmvedemux.c: (gst_mve_audio_data), + (gst_mve_demux_get_type): + Fix audio discontinuity that happens when silent chunks are + followed by real data again. Fixes bug #519905. + +2008-03-01 12:49:13 +0000 Zaheer Abbas Merali + + sys/dvb/: Add DVB-C support. Special thanks to Christian Schaller for a testing ground. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + * sys/dvb/parsechannels.c: + Add DVB-C support. Special thanks to Christian Schaller + for a testing ground. + +2008-02-28 13:22:24 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: Only send PMTs to program pads that the PMT is for even if on same pid. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Only send PMTs to program pads that the PMT is for even if + on same pid. + As a by-product, we now no longer hardcode any psi pid numbers. + Also remove pcr stream from old pmt when we apply a new pmt. + +2008-02-28 10:41:56 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * tests/icles/metadata_editor.c: + Map Date-Time and GPS tags and Convert from EXIF to XMP Datatime as local time (those changes has been done in previo... + Original commit message from CVS: + Map Date-Time and GPS tags and Convert from EXIF to XMP Datatime as local time (those changes has been done in previous comit but had to be revert in 2008-02-10 due to frozen) + +2008-02-27 23:29:44 +0000 Zaheer Abbas Merali + + sys/dvb/camutils.c: Remove the G_VALUE_HOLDS_BOXED checks. They were only added to help debug the data corruption. + Original commit message from CVS: + * sys/dvb/camutils.c: + Remove the G_VALUE_HOLDS_BOXED checks. They were + only added to help debug the data corruption. + +2008-02-27 19:41:13 +0000 Zaheer Abbas Merali + + sys/dvb/camutils.c: Don't free the program descriptors, this structure containing them is stills tored after. + Original commit message from CVS: + * sys/dvb/camutils.c: + Don't free the program descriptors, this structure + containing them is stills tored after. + Fixes data corruption. + +2008-02-27 12:34:00 +0000 Zaheer Abbas Merali + + sys/dvb/camutils.c: Extra checks to prevent data corruption/segfaults. + Original commit message from CVS: + * sys/dvb/camutils.c: + Extra checks to prevent data corruption/segfaults. + +2008-02-26 15:13:54 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file + Original commit message from CVS: + update spec file + +2008-02-26 12:04:21 +0000 Stefan Kost + + ext/nas/nassink.c: Fix build warning by using portable API. + Original commit message from CVS: + * ext/nas/nassink.c: + Fix build warning by using portable API. + +2008-02-26 12:01:37 +0000 Stefan Kost + + gst/selector/gstoutputselector.c: Fix changing to same pad twice before a chain call. + Original commit message from CVS: + * gst/selector/gstoutputselector.c: + Fix changing to same pad twice before a chain call. + +2008-02-26 05:54:26 +0000 Daniel Fischer + + Add support for libdc1394 2.0.0 and above and require this version now. Fixes bug #514964. + Original commit message from CVS: + Patch by: Daniel Fischer + * configure.ac: + * ext/dc1394/gstdc1394.c: (gst_dc1394_change_state), + (gst_dc1394_get_cam_caps), (gst_dc1394_open_cam_with_best_caps): + * ext/dc1394/gstdc1394.h: + Add support for libdc1394 2.0.0 and above and require this version + now. Fixes bug #514964. + +2008-02-26 05:36:17 +0000 Wouter Cloetens + + Add support for specifying a list of cookies to be passed in the HTTP request. Fixes bug #518722. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_class_init), + (gst_soup_http_src_init), (gst_soup_http_src_dispose), + (gst_soup_http_src_set_property), (gst_soup_http_src_get_property), + (gst_soup_http_src_create): + * ext/soup/gstsouphttpsrc.h: + * tests/check/elements/souphttpsrc.c: (run_test), (GST_START_TEST), + (souphttpsrc_suite): + Add support for specifying a list of cookies to be passed in + the HTTP request. Fixes bug #518722. + +2008-02-25 08:53:51 +0000 Stefan Kost + + gst/selector/gstinputselector.*: Added "select-all" property to make it work like aggregator in 0.8. + Original commit message from CVS: + * gst/selector/gstinputselector.c: + * gst/selector/gstinputselector.h: + Added "select-all" property to make it work like aggregator in 0.8. + * gst/selector/gstoutputselector.c: + Fix resend-latest behavoiur. + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/selector.c: + Add unit tests for selector. + +2008-02-25 06:29:12 +0000 Sebastian Dröge + + Remove midi typefinders and require base CVS as they moved there. + Original commit message from CVS: + * configure.ac: + * ext/timidity/gsttimidity.c: (plugin_init): + * ext/timidity/gstwildmidi.c: (plugin_init): + Remove midi typefinders and require base CVS as they moved there. + +2008-02-24 09:57:42 +0000 Sebastian Dröge + + ext/Makefile.am: Only disable the ext/timidity directory if both, wildmidi _and_ timidity are not available. + Original commit message from CVS: + * ext/Makefile.am: + Only disable the ext/timidity directory if both, wildmidi + _and_ timidity are not available. + +2008-02-24 04:24:20 +0000 Emilio Pozuelo Monfort + + ext/Makefile.am: Build the wildmidi plugin if it's enabled and not only when both, the timidity and wildmidi plugin, ... + Original commit message from CVS: + Patch by: Emilio Pozuelo Monfort + * ext/Makefile.am: + Build the wildmidi plugin if it's enabled and not only when + both, the timidity and wildmidi plugin, are enabled. + +2008-02-23 15:01:32 +0000 Tim-Philipp Müller + + Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them when building C++ code. + Original commit message from CVS: + * configure.ac: + * ext/mpeg2enc/Makefile.am: + * ext/soundtouch/Makefile.am: + * gst/modplug/Makefile.am: + Check for and define ERROR_CXXFLAGS and GST_CXXFLAGS and use them + when building C++ code. + +2008-02-23 11:56:41 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Add initial support for multiproto driver (not yet merged into v4l-dvb mainline yet). + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Add initial support for multiproto driver (not yet merged into + v4l-dvb mainline yet). + Only works for DVB-S not DVB-S2, DVB-T, DVB-C or other. + +2008-02-22 10:18:27 +0000 Tim-Philipp Müller + + docs/plugins/inspect/: Update to version 0.10.6.1. + Original commit message from CVS: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-tremor.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + Update to version 0.10.6.1. + +2008-02-22 09:56:49 +0000 Tim-Philipp Müller + + docs/plugins/: Remove docs for elements that have moved to other modules or been renamed. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-gdp.xml: + * docs/plugins/inspect/plugin-quicktime.xml: + * docs/plugins/inspect/plugin-switch.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + Remove docs for elements that have moved to other modules + or been renamed. + +2008-02-22 07:20:03 +0000 Wouter Cloetens + + Implement zero-copy and make the buffer size configurable. + Original commit message from CVS: + Patch by: Wouter Cloetens + * configure.ac: + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_cancel_message), + (gst_soup_http_src_finished_cb), (gst_soup_http_src_chunk_free), + (gst_soup_http_src_chunk_allocator), + (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_create), + (gst_soup_http_src_start), (gst_soup_http_src_set_proxy): + * ext/soup/gstsouphttpsrc.h: + Implement zero-copy and make the buffer size configurable. + Prefix proxy URIs with "http://" if they don't start with it + already and catch errors earlier, fixes hanging in some situations. + Fixes bug #514948. + +2008-02-22 06:42:28 +0000 Sebastian Dröge + + tests/check/gst-plugins-bad.supp: Add suppressions for SoundTouch valgrind warnings and a valgrind warning caused by ... + Original commit message from CVS: + * tests/check/gst-plugins-bad.supp: + Add suppressions for SoundTouch valgrind warnings and + a valgrind warning caused by the LADSPA sine plugin and + happening on every exit(). + Remove GIO suppressions as it's now in -base. + +2008-02-22 06:33:49 +0000 Sebastian Dröge + + ext/mythtv/gstmythtvsrc.c: Don't allocate and copy the data to a new place but instead put the data from gmyth (which... + Original commit message from CVS: + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_create): + Don't allocate and copy the data to a new place but instead + put the data from gmyth (which we own) into the buffers that + are passed downstream. + +2008-02-22 06:31:44 +0000 Sebastian Dröge + + ext/timidity/gstwildmidi.c: If WILDMIDI_CFG is not defined, define it to the default timidity configure file. + Original commit message from CVS: + * ext/timidity/gstwildmidi.c: + If WILDMIDI_CFG is not defined, define it to the default + timidity configure file. + +2008-02-22 06:12:07 +0000 Sebastian Dröge + + Remove hack to work with mjpegtools 1.9.0rc3 and above and instead use mjpeg_loglev_t() for getting the log levels. C... + Original commit message from CVS: + Based on a patch by: + Hans de Goede + * configure.ac: + * ext/mpeg2enc/gstmpeg2enc.cc: + Remove hack to work with mjpegtools 1.9.0rc3 and above and instead + use mjpeg_loglev_t() for getting the log levels. Check for this + function in configure.ac as the pkg-config file doesn't tell us + which release candidate we have. Fixes bug #517896. + +2008-02-22 05:48:33 +0000 Sebastian Dröge + + configure.ac: Check for X for the nas plugin to make it possible to build it again. Fixes bug #517895. + Original commit message from CVS: + * configure.ac: + Check for X for the nas plugin to make it possible to build it + again. Fixes bug #517895. + +2008-02-22 05:42:16 +0000 Sebastian Dröge + + tests/check/Makefile.am: Ignore some more elements for the states unit test, like dfbvideosink which produces a segfa... + Original commit message from CVS: + * tests/check/Makefile.am: + Ignore some more elements for the states unit test, like + dfbvideosink which produces a segfault. Fixes bug #517854. + +2008-02-22 05:33:59 +0000 Jens Granseuer + + Some C89 fixes, moving variable declarations to the beginning of a block. Fixes bug #517937. + Original commit message from CVS: + Patch by: Jens Granseuer + * gst/librfb/gstrfbsrc.c: (gst_rfb_property_set_version): + * gst/librfb/rfbdecoder.c: (rfb_decoder_message_set_encodings), + (rfb_decoder_state_set_encodings): + * gst/mpegtsparse/mpegtspacketizer.c: + (mpegts_packetizer_parse_nit), (mpegts_packetizer_parse_sdt), + (mpegts_packetizer_parse_eit): + * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_getcaps), + (gst_fbdevsink_setcaps), (gst_fbdevsink_render): + Some C89 fixes, moving variable declarations to the beginning + of a block. Fixes bug #517937. + +2008-02-21 23:50:31 +0000 Jan Schmidt + + configure.ac: Back to development... + Original commit message from CVS: + * configure.ac: + Back to development... + +=== release 0.10.6 === + +2008-02-21 00:13:31 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-tremor.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + * gst-plugins-bad.doap: + * po/LINGUAS: + * win32/common/config.h: + Release 0.10.6 - A Big Deep Breath + Original commit message from CVS: + Release 0.10.6 - A Big Deep Breath + +2008-02-20 23:35:19 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/bg.po: + * po/cs.po: + * po/da.po: + * po/en_GB.po: + * po/es.po: + * po/fi.po: + * po/hu.po: + * po/it.po: + * po/ky.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/pl.po: + * po/pt_BR.po: + * po/sk.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * po/zh_CN.po: + Update .po files + Original commit message from CVS: + Update .po files + +2008-02-20 16:04:32 +0000 Bastien Nocera + + ext/mythtv/gstmythtvsrc.c: Using the wrong GstFormat for the filesize, and fail seek properly on anything but _BYTES ... + Original commit message from CVS: + 2008-02-20 Bastien Nocera + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_do_seek), + (gst_mythtv_src_start): Using the wrong GstFormat for the filesize, + and fail seek properly on anything but _BYTES format + Fixes bug #517684 + +2008-02-20 09:33:25 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Fix small memory leak, leaking caps. Fixes #bug 517571. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found): + Fix small memory leak, leaking caps. Fixes #bug 517571. + +2008-02-19 11:50:45 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + change gmyth-1.0 to gmyth + Original commit message from CVS: + change gmyth-1.0 to gmyth + +2008-02-19 10:51:34 +0000 Sebastian Dröge + + gst/tta/Makefile.am: Link tta plugin with libm. Fixes bug #517391. + Original commit message from CVS: + * gst/tta/Makefile.am: + Link tta plugin with libm. Fixes bug #517391. + +2008-02-14 17:09:38 +0000 Zaheer Abbas Merali + + sys/dvb/camutils.c: Do not assume "descriptors" property in the pmt structure is present. + Original commit message from CVS: + * sys/dvb/camutils.c: + Do not assume "descriptors" property in the pmt structure + is present. + Fixes #516499. + +2008-02-14 16:25:51 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Ignore streams that did not receive an SR packet when doing synchronisation. Fixes #516160. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate): + Ignore streams that did not receive an SR packet when doing + synchronisation. Fixes #516160. + +2008-02-14 14:33:27 +0000 Sebastian Dröge + + gst/dvdspu/gstdvdspu.c: Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based on an idea by Jan Schmidt, f... + Original commit message from CVS: + * gst/dvdspu/gstdvdspu.c: (gst_dvd_spu_handle_new_spu_buf): + Set n_line_ctrl_i to 0 whenever we free line_ctrl_i. Patch based + on an idea by Jan Schmidt, fixes bug #516436. + +2008-02-14 14:22:57 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Make sure the gstmpegdesc debug lines do not critical when GST_DEBUG is enabled and also actually o... + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.c: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtsparse.c: + Make sure the gstmpegdesc debug lines do not critical + when GST_DEBUG is enabled and also actually output. + Thanks to Alessandro Decina for spotting. + Fixes #516448 + +2008-02-13 23:52:42 +0000 Jan Schmidt + + Also add dshow pieces to the disted subdirs to fix distcheck. + Original commit message from CVS: + * gst-libs/gst/Makefile.am: + * sys/Makefile.am: + Also add dshow pieces to the disted subdirs to fix distcheck. + +2008-02-13 14:40:33 +0000 Josep Torra Valles + + gst/h264parse/gsth264parse.c: Fix potential buffer leak in reverse mode. Re-Fixes #516061. + Original commit message from CVS: + Patch by: Josep Torra Valles + * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse): + Fix potential buffer leak in reverse mode. Re-Fixes #516061. + +2008-02-13 11:22:06 +0000 Sebastian Dröge + + configure.ac: Allow gmyth versions from 0.4 up to 0.7.99, the API didn't change until 0.7 fortunately. + Original commit message from CVS: + * configure.ac: + Allow gmyth versions from 0.4 up to 0.7.99, the API didn't change + until 0.7 fortunately. + +2008-02-12 23:16:21 +0000 Jan Schmidt + + configure.ac: Generate the directshow Makefiles so that the directories get disted. Still needs some configure time d... + Original commit message from CVS: + * configure.ac: + Generate the directshow Makefiles so that the directories + get disted. Still needs some configure time detection to enable + building them under MingW. + +2008-02-12 23:13:55 +0000 Jan Schmidt + + ext/metadata/Makefile.am: Don't install a header file. We will have to merge these tags into libgsttag after the rele... + Original commit message from CVS: + * ext/metadata/Makefile.am: + Don't install a header file. We will have to merge these + tags into libgsttag after the release and use them from there. + Fixes: #515860 + +2008-02-12 22:10:39 +0000 Sébastien Moutte + + Add Makefiles to win32 plugins and lib. + Original commit message from CVS: + * gst-libs/gst/dshow/Makefile.am: + * sys/dshowdecwrapper/Makefile.am: + * sys/dshowsrcwrapper/Makefile.am: + Add Makefiles to win32 plugins and lib. + They will need to be tested and probably fixed by developers + working with mingw. This is a first step to include source files + with releases. + +2008-02-12 21:31:57 +0000 Zaheer Abbas Merali + + sys/dvb/dvbbasebin.c: Fix leak of location string returned from gst_uri_get_location. + Original commit message from CVS: + * sys/dvb/dvbbasebin.c: + Fix leak of location string returned from gst_uri_get_location. + Fixes bug #516114 + +2008-02-12 21:01:17 +0000 David Schleef + + Remove glimagesink, as it's been moved to gst-plugins-gl. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * sys/Makefile.am: + * sys/glsink/BUGS: + * sys/glsink/Makefile.am: + * sys/glsink/color_matrix.c: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/gltestsrc.c: + * sys/glsink/gltestsrc.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstglconvert.c: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldisplay.h: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglfilter.h: + * sys/glsink/gstglfilterexample.c: + * sys/glsink/gstgltestsrc.c: + * sys/glsink/gstgltestsrc.h: + * sys/glsink/gstglupload.c: + * sys/glsink/gstopengl.c: + Remove glimagesink, as it's been moved to gst-plugins-gl. + Fixes #516094. + +2008-02-12 18:29:29 +0000 Josep Torra Valles + + gst/h264parse/gsth264parse.c: Fix potential buffer leak in reverse mode. Fixes #516061. + Original commit message from CVS: + Patch by: Josep Torra Valles + * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_reverse): + Fix potential buffer leak in reverse mode. Fixes #516061. + +2008-02-12 11:08:27 +0000 Sebastian Dröge + + sys/dshowdecwrapper/: Chain up dispose methods properly. Fixes bug #515970. + Original commit message from CVS: + * sys/dshowdecwrapper/gstdshowaudiodec.c: + (gst_dshowaudiodec_dispose): + * sys/dshowdecwrapper/gstdshowvideodec.c: + (gst_dshowvideodec_dispose): + Chain up dispose methods properly. Fixes bug #515970. + +2008-02-12 11:02:37 +0000 Jan Schmidt + + * ChangeLog: + Changelog surgery: mention bug 515919 fixed in my previous commit + Original commit message from CVS: + Changelog surgery: mention bug 515919 fixed in my previous commit + +2008-02-12 10:57:27 +0000 Wim Taymans + + gst/mpegvideoparse/mpegvideoparse.c: Fix leaking caps. + Original commit message from CVS: + * gst/mpegvideoparse/mpegvideoparse.c: + (mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail), + (gst_mpegvideoparse_change_state): + Fix leaking caps. + Fix potential buffer leak in forward mode. + Cleanup queues when going to READY. Fixes #515815. + +2008-02-12 10:24:03 +0000 Sebastian Dröge + + docs/plugins/: Remove documentation for the GIO plugin as it was moved to gst-plugins-base. Fixes bug #515964. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-gio.xml: + Remove documentation for the GIO plugin as it was moved to + gst-plugins-base. Fixes bug #515964. + +2008-02-12 10:22:42 +0000 Jan Schmidt + + Fix some finalize leaks by chaining up to the parent method. + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: + * gst/vmnc/vmncdec.c: + * sys/glsink/glimagesink.c: + * sys/glsink/gstgldisplay.c: + Fix some finalize leaks by chaining up to the parent method. + +2008-02-12 05:21:46 +0000 Sebastian Dröge + + tests/check/elements/souphttpsrc.c: Include glib/gprintf.h for g_vasprintf(). Fixes bug #515564. + Original commit message from CVS: + * tests/check/elements/souphttpsrc.c: + Include glib/gprintf.h for g_vasprintf(). Fixes bug #515564. + +2008-02-12 05:19:05 +0000 Sebastian Dröge + + gst/librfb/gstrfbsrc.c: Free the rfb decoder on finalize. Fixes bug #515721. + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: (gst_rfb_src_dispose): + Free the rfb decoder on finalize. Fixes bug #515721. + +2008-02-11 13:34:47 +0000 Sebastian Dröge + + sys/fbdev/gstfbdevsink.c: Free the device string in finalize. Fixes bug #515722. + Original commit message from CVS: + * sys/fbdev/gstfbdevsink.c: (gst_fbdevsink_class_init), + (gst_fbdevsink_finalize): + Free the device string in finalize. Fixes bug #515722. + +2008-02-11 13:33:10 +0000 Sebastian Dröge + + ext/xvid/gstxvidenc.c: Unset GValues after using them. Fixes bug #515720. + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_init): + Unset GValues after using them. Fixes bug #515720. + +2008-02-11 05:11:27 +0000 Sebastian Dröge + + tests/check/Makefile.am: Disable the dvb plugin for the states test. Fixes bug #515567. + Original commit message from CVS: + * tests/check/Makefile.am: + Disable the dvb plugin for the states test. Fixes bug #515567. + +2008-02-10 21:03:54 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * tests/icles/metadata_editor.c: + Revert changes to 2008-02-09 due to frozen. + Original commit message from CVS: + Revert changes to 2008-02-09 due to frozen. + +2008-02-10 19:44:50 +0000 Jan Schmidt + + * ChangeLog: + Fix Josep's surname in the previous few commits + Original commit message from CVS: + Fix Josep's surname in the previous few commits + +2008-02-10 19:01:43 +0000 Josep Torre Valles + + ext/ivorbis/vorbisfile.c: Trivial fix for build warning. + Original commit message from CVS: + * ext/ivorbis/vorbisfile.c: + Trivial fix for build warning. + Patch by: Josep Torre Valles + Fixes: #515588 + +2008-02-10 18:36:46 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/metadataexif.c: + Convert from EXIF to XMP DataTime as local time. + Original commit message from CVS: + Convert from EXIF to XMP DataTime as local time. + +2008-02-10 04:36:12 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * tests/icles/metadata_editor.c: + Map Date-Time and GPS tags. + Original commit message from CVS: + Map Date-Time and GPS tags. + +2008-02-09 03:37:40 +0000 Jan Schmidt + + gst/selector/Makefile.am: Listing the marshal.h in the nodist_HEADERS breaks distcheck, so let's not do that + Original commit message from CVS: + * gst/selector/Makefile.am: + Listing the marshal.h in the nodist_HEADERS breaks distcheck, so + let's not do that + * tests/check/Makefile.am: + Disable the crashing cdaudio plugin from the states test so I can make + pre-releases. + +2008-02-09 02:33:06 +0000 Jan Schmidt + + win32/vs6/: Convert to DOS line endings, and set -kb + Original commit message from CVS: + * win32/vs6/libgstdshowdecwrapper.dsp: + * win32/vs6/libgstflv.dsp: + Convert to DOS line endings, and set -kb + +2008-02-08 18:22:08 +0000 Zaheer Abbas Merali + + sys/dvb/: Add URI Handler for dvb. + Original commit message from CVS: + * sys/dvb/Makefile.am: + * sys/dvb/dvbbasebin.c: + Add URI Handler for dvb. + Re-order pad templates to workaround a bug in playbasebin. + * sys/dvb/parsechannels.c: + * sys/dvb/parsechannels.h: + Add code to parse channels from zap-style channels.conf files. + +2008-02-08 04:22:06 +0000 Jan Schmidt + + Remove multifile plugin, which has moved to -good + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-multifile.xml: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + * gst/multifile/multifile.vproj: + * tests/check/Makefile.am: + * tests/check/elements/multifile.c: + Remove multifile plugin, which has moved to -good + +2008-02-08 03:44:12 +0000 David Schleef + + gst/multifile/: Use g_file_[sg]et_contents() instead of using stdio functions. + Original commit message from CVS: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesrc.c: + Use g_file_[sg]et_contents() instead of using stdio functions. + Should be less error prone. + * tests/check/elements/multifile.c: + Create a temporary directory using standard functions instead of + creating a directory in the current dir. + +2008-02-08 03:27:14 +0000 Jan Schmidt + + Remove spectrum plugin, which has moved to -good + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-spectrum.xml: + * gst/spectrum/.cvsignore: + * gst/spectrum/Makefile.am: + * gst/spectrum/README: + * gst/spectrum/demo-audiotest.c: + * gst/spectrum/demo-osssrc.c: + * gst/spectrum/gstspectrum.c: + * gst/spectrum/gstspectrum.h: + * gst/spectrum/spectrum.vcproj: + * tests/check/Makefile.am: + * tests/check/elements/spectrum.c: + Remove spectrum plugin, which has moved to -good + +2008-02-08 02:48:54 +0000 Jan Schmidt + + docs/plugins/gst-plugins-bad-plugins.*: Remove equalizer plugin docs + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + Remove equalizer plugin docs + * tests/check/Makefile.am: + Add GST_OPTION_CFLAGS, to get -Werror -Wall into the tests as for + other modules. + * tests/check/elements/multifile.c: + * tests/check/elements/rganalysis.c: + * tests/check/elements/rglimiter.c: + Fix compiler warnings from -Wall -Werror + +2008-02-08 02:00:49 +0000 Jan Schmidt + + Remove the equalizer plugin, which has moved to -good + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-equalizer.xml: + * gst/equalizer/.cvsignore: + * gst/equalizer/Makefile.am: + * gst/equalizer/demo.c: + * gst/equalizer/gstiirequalizer.c: + * gst/equalizer/gstiirequalizer.h: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer10bands.h: + * gst/equalizer/gstiirequalizer3bands.c: + * gst/equalizer/gstiirequalizer3bands.h: + * gst/equalizer/gstiirequalizernbands.c: + * gst/equalizer/gstiirequalizernbands.h: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/equalizer.c: + Remove the equalizer plugin, which has moved to -good + +2008-02-08 01:12:09 +0000 Jan Schmidt + + configure.ac: Make DISABLE_DEPRECATED defined *only* during CVS, not during pre-releases or releases. + Original commit message from CVS: + * configure.ac: + Make DISABLE_DEPRECATED defined *only* during CVS, not during + pre-releases or releases. + +2008-02-08 00:48:30 +0000 Jan Schmidt + + docs/plugins/Makefile.am: Don't scan deleted xingmux header. + Original commit message from CVS: + * docs/plugins/Makefile.am: + Don't scan deleted xingmux header. + +2008-02-08 00:40:34 +0000 Jan Schmidt + + Remove the xingmux plugin, as the element has moved into mpegaudioparse in -ugly. + Original commit message from CVS: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-xingheader.xml: + * gst/xingheader/Makefile.am: + * gst/xingheader/gstxingmux.c: + * gst/xingheader/gstxingmux.h: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/xingmux.c: + * tests/check/elements/xingmux_testdata.h: + Remove the xingmux plugin, as the element has moved into + mpegaudioparse in -ugly. + +2008-02-07 23:37:32 +0000 Jan Schmidt + + docs/plugins/Makefile.am: Remove mention of non-existent headers to fix the build. + Original commit message from CVS: + * docs/plugins/Makefile.am: + Remove mention of non-existent headers to fix the build. + +2008-02-07 23:30:45 +0000 Jan Schmidt + + Remove GIO plugin which has now moved to -base. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/gio/Makefile.am: + * ext/gio/gstgio.c: + * ext/gio/gstgio.h: + * ext/gio/gstgiobasesink.c: + * ext/gio/gstgiobasesink.h: + * ext/gio/gstgiobasesrc.c: + * ext/gio/gstgiobasesrc.h: + * ext/gio/gstgiosink.c: + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.c: + * ext/gio/gstgiosrc.h: + * ext/gio/gstgiostreamsink.c: + * ext/gio/gstgiostreamsink.h: + * ext/gio/gstgiostreamsrc.c: + * ext/gio/gstgiostreamsrc.h: + * tests/check/Makefile.am: + * tests/check/pipelines/.cvsignore: + * tests/check/pipelines/gio.c: + Remove GIO plugin which has now moved to -base. + +2008-02-07 21:53:39 +0000 Jan Schmidt + + Remove lpwsinc and bpwsinc elements - they've become audiowsinclimit and audiowsincband respectively, in the gst-plug... + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * gst/filter/Makefile.am: + * gst/filter/filter.vcproj: + * gst/filter/gstbpwsinc.c: + * gst/filter/gstbpwsinc.h: + * gst/filter/gstfilter.c: + * gst/filter/gstfilter.h: + * gst/filter/gstlpwsinc.c: + * gst/filter/gstlpwsinc.h: + * tests/check/Makefile.am: + * tests/check/elements/bpwsinc.c: + * tests/check/elements/lpwsinc.c: + Remove lpwsinc and bpwsinc elements - they've become + audiowsinclimit and audiowsincband respectively, in the + gst-plugins-good audiofx plugin. + +2008-02-07 21:02:19 +0000 Sébastien Moutte + + ext\neon\gstneonhttpsrc.c: Include unistd.h only if _HAVE_UNISTD_H is defined + Original commit message from CVS: + * ext\neon\gstneonhttpsrc.c: + Include unistd.h only if _HAVE_UNISTD_H is defined + * gst\mpegvideoparse\mpegvideoparse.c: + Use G_GUINT64_CONSTANT GLIB macro for constant + * sys\dshowsrcwrapper\gstdshowaudiosrc.c: + * sys\dshowsrcwrapper\gstdshowvideosrc.c: + * sys\dshowdecwrapper\gstdshowaudiodec.c: + * sys\dshowdecwrapper\gstdshowaudiodec.h: + * sys\dshowdecwrapper\gstdshowdecwrapper.c: + * sys\dshowdecwrapper\gstdshowdecwrapper.h: + * sys\dshowdecwrapper\gstdshowvideodec.c + * sys\dshowdecwrapper\gstdshowvideodec.h: + Add a DirectShow decoder wrapper. + * win32\MANIFEST: + Add new win32 files to MANIFEST + * win32\vs6\gst_plugins_bad.dsw: + * win32\vs6\libgstdshow.dsp: + * win32\vs6\libgstdshowdecwrapper.dsp: + * win32\vs6\libgstflv.dsp: + Add new projects to bad workspace + +2008-02-07 14:45:06 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Parse component descriptor. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Parse component descriptor. + * gst/mpegtsparse/mpegtsparse.c: + Add SI pids to every program (but hardcoded currently). + +2008-02-07 13:59:41 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * tests/icles/metadata_editor.c: + * tests/icles/metadata_editor.glade: + Add more tags. Improve test app. + Original commit message from CVS: + Add more tags. Improve test app. + +2008-02-07 13:48:20 +0000 Stefan Kost + + gst/multifile/gstmultifilesink.c: Add a fixme comment. + Original commit message from CVS: + * gst/multifile/gstmultifilesink.c: + Add a fixme comment. + * gst/selector/gstoutputselector.c: + Fix same leak as in input-selector. + * tests/icles/output-selector-test.c: + Improve the test. + +2008-02-07 13:41:11 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Improve the docs. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: + Improve the docs. + +2008-02-07 12:05:44 +0000 Tim-Philipp Müller + + configure.ac: The dc1394 plugin seems to use API that was removed or changed before the final 2.0.0 release, so only ... + Original commit message from CVS: + * configure.ac: + The dc1394 plugin seems to use API that was removed or changed + before the final 2.0.0 release, so only build it if 2.0.0-rc5 + is available. Someone needs to port it to the final API. + * ext/dc1394/gstdc1394.c: (gst_dc1394_change_camera_transmission): + Include string.h for memcpy and use g_usleep instead of usleep. + +2008-02-07 10:04:01 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.c: Fix typo in the long description of the element. + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: + Fix typo in the long description of the element. + +2008-02-07 02:06:19 +0000 Jan Schmidt + + gst/xingheader/Makefile.am: Put CFLAGS and LIBS in the right order + Original commit message from CVS: + * gst/xingheader/Makefile.am: + Put CFLAGS and LIBS in the right order + +2008-02-06 18:56:40 +0000 Tim-Philipp Müller + + configure.ac: ximagesrc has moved to -good, so no need to check for the required X libs here any more. + Original commit message from CVS: + * configure.ac: + ximagesrc has moved to -good, so no need to check for + the required X libs here any more. + +2008-02-06 11:07:47 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.c: Fix memory leak and improve debugging a bit. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (gst_soup_http_src_got_chunk_cb), + (gst_soup_http_src_create): + Fix memory leak and improve debugging a bit. + +2008-02-05 17:10:11 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + Add more tags mapping. + Original commit message from CVS: + Add more tags mapping. + +2008-02-05 12:19:46 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: Handle latency queries in src pads. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Handle latency queries in src pads. + +2008-02-05 11:40:43 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Add flag to both sdt and nit structures to say whether the table is for the actua... + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Add flag to both sdt and nit structures to say + whether the table is for the actual network/ts + or not. + +2008-02-05 11:30:49 +0000 Josep Torre Valles + + gst/mpegvideoparse/mpegvideoparse.c: Flush packetizer too. + Original commit message from CVS: + Patch by: Josep Torre Valles + * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush): + Flush packetizer too. + +2008-02-04 19:15:39 +0000 Sebastian Dröge + + ext/ladspa/gstladspa.c: Don't use GST_BOILERPLATE as the stuff generated from it is not used anyway and can't be used. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: (gst_ladspa_base_init), + (gst_ladspa_class_init), (ladspa_describe_plugin), (plugin_init): + Don't use GST_BOILERPLATE as the stuff generated from it is not used + anyway and can't be used. + Store the class struct of the correct type in parent_class. + Pass the LADSPA_Descriptor as class_data to the class_init function + as preparation for the time, when we can add pad templates and friends + in class_init and add a FIXME for that. + Don't use a custom hash table for passing the LADSPA_Descriptors to + base_init but use g_type_set_qdata and g_type_get_qdata. + +2008-02-04 16:22:11 +0000 Edward Hervey + + ext/mpeg2enc/gstmpeg2encpicturereader.cc: Really fix the build. + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + Really fix the build. + TODO : Apply spankOmatic2000 on thaytan's rear end. + +2008-02-04 13:12:09 +0000 Tim-Philipp Müller + + ext/mpeg2enc/gstmpeg2encpicturereader.cc: Fix compilation with libmjpegtools 1.8.x. + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + (GstMpeg2EncPictureReader.StreamPictureParams): + Fix compilation with libmjpegtools 1.8.x. + +2008-02-04 11:48:50 +0000 Sebastian Dröge + + ext/ladspa/gstsignalprocessor.c: Don't unref the pad template after adding it. gst_element_class_add_pad_template tak... + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: + (gst_signal_processor_class_add_pad_template): + Don't unref the pad template after adding it. + gst_element_class_add_pad_template takes ownership of it. + +2008-02-03 18:22:18 +0000 Jan Schmidt + + ext/mpeg2enc/gstmpeg2encpicturereader.cc: Use the incoming pixel-aspect-ratio if provided to infer a default aspect r... + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + Use the incoming pixel-aspect-ratio if provided to infer a + default aspect ratio, which can be overridden using the 'aspect' + property. + Fixes: #499008 + +2008-02-03 17:47:25 +0000 Andrzej Mendel + + configure.ac: Fix variable naming to make it possible to build the glimagesink plugin. Fixes bug #514093. + Original commit message from CVS: + Patch by: Andrzej Mendel + * configure.ac: + Fix variable naming to make it possible to build the glimagesink + plugin. Fixes bug #514093. + +2008-02-02 23:25:10 +0000 Tim-Philipp Müller + + ext/metadata/gstmetadatademux.c: Demote metadatademux to GST_RANK_NONE for the release, it's not ready to be autoplug... + Original commit message from CVS: + * ext/metadata/gstmetadatademux.c: + Demote metadatademux to GST_RANK_NONE for the release, it's not + ready to be autoplugged yet. + * tests/icles/metadata_editor.c: + Fix printf format warning for GType on ppc32 by removing it, + since it doesn't make sense to print the GType value anyway. + +2008-02-02 20:22:19 +0000 Edgard Lima + + * ChangeLog: + * common: + * ext/metadata/TODO: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + Map more Exif tags. + Original commit message from CVS: + Map more Exif tags. + +2008-02-01 17:08:18 +0000 Wim Taymans + + gst/selector/gstinputselector.c: Don't leak event on pads that are not linked. Fixes #512826. + Original commit message from CVS: + * gst/selector/gstinputselector.c: (gst_selector_pad_event): + Don't leak event on pads that are not linked. Fixes #512826. + +2008-02-01 13:02:53 +0000 Tim-Philipp Müller + + configure.ac: Bump core/base requirements to released versions, to avoid confusion. + Original commit message from CVS: + * configure.ac: + Bump core/base requirements to released versions, to avoid confusion. + * gst/deinterlace/Makefile.am: + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_set_caps): + Use the new GstVideoFormat API to get strides, plane offsets etc.. + For Y42B we still need to calculate these ourselves, since the lib + in -base doesn't know about this format yet and we can't bump the + requirement to CVS right now. Fix the Y42B stride, offset and size + calculations for odd widths and heights while we're at it though + (to match those in videotestsrc). + +2008-01-31 21:55:44 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadata_mapping.htm: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + Add documentation. + Original commit message from CVS: + Add documentation. + +2008-01-31 17:20:41 +0000 Wim Taymans + + ext/metadata/metadataparsejpeg.c: Fix compilation. + Original commit message from CVS: + * ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading): + Fix compilation. + +2008-01-31 17:18:46 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.c: Really clean up the queue instead of just unreffing all buffers in it. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_dispose): + Really clean up the queue instead of just unreffing all buffers + in it. + * gst-libs/gst/app/gstappsrc.c: (gst_app_src_base_init), + (gst_app_src_class_init), (gst_app_src_init), + (gst_app_src_dispose), (gst_app_src_finalize): + Fix dispose/finalize. + +2008-01-31 15:52:18 +0000 Jan Schmidt + + ext/faad/gstfaad.c: Fix compiler warning by making the function signature match what everyone is passing in... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst): + Fix compiler warning by making the function signature match what + everyone is passing in... + * tests/icles/Makefile.am: + Fix the build on Solaris by removing GNU ld specific flags that + look unnecessary. + +2008-01-31 10:16:46 +0000 Sebastian Dröge + + ext/metadata/Makefile.am: Add some relevant variables to CFLAGS and LIBADD, for example our compiler warnings paramters. + Original commit message from CVS: + * ext/metadata/Makefile.am: + Add some relevant variables to CFLAGS and LIBADD, for example our + compiler warnings paramters. + * ext/metadata/gstbasemetadata.c: + (gst_base_metadata_strip_push_buffer), + (gst_base_metadata_calculate_offsets), + (gst_base_metadata_src_event), (gst_base_metadata_sink_activate): + * ext/metadata/gstmetadatademux.c: (gst_metadata_demux_init), + (gst_metadata_demux_set_property), (gst_metadata_demux_dispose): + * ext/metadata/gstmetadatamux.c: (gst_metadata_mux_init), + (gst_metadata_mux_set_property), (gst_metadata_mux_get_property), + (gst_metadata_mux_dispose), + (gst_metadata_mux_create_chunks_from_tags): + * ext/metadata/metadata.c: (metadata_dispose): + * ext/metadata/metadataexif.c: + (metadataparse_exif_content_foreach_entry_func), + (metadatamux_exif_for_each_tag_in_list): + * ext/metadata/metadataiptc.c: + (metadatamux_iptc_for_each_tag_in_list): + * ext/metadata/metadatamuxjpeg.c: (metadatamux_jpeg_lazy_update), + (metadatamux_jpeg_reading): + * ext/metadata/metadatamuxpng.c: (metadatamux_png_reading): + * ext/metadata/metadataparsejpeg.c: (metadataparse_jpeg_reading): + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadataxmp.c: (metadataparse_xmp_tag_list_add), + (metadatamux_xmp_create_chunk_from_tag_list): + Fix a million warnings that showed up after the above change. + +2008-01-31 09:50:31 +0000 Sebastian Dröge + + ext/soup/gstsouphttpsrc.c: Add changes to gstsouphttpsrc.c that were missing from last commit. + Original commit message from CVS: + * ext/soup/gstsouphttpsrc.c: (_do_init), + (gst_soup_http_src_base_init), (gst_soup_http_src_class_init), + (gst_soup_http_src_init), (gst_soup_http_src_dispose), + (gst_soup_http_src_set_property), (gst_soup_http_src_get_property), + (gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message), + (gst_soup_http_src_queue_message), + (gst_soup_http_src_add_range_header), + (gst_soup_http_src_session_unpause_message), + (gst_soup_http_src_session_pause_message), + (gst_soup_http_src_session_close), + (gst_soup_http_src_got_headers_cb), + (gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb), + (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb), + (gst_soup_http_src_parse_status), (gst_soup_http_src_create), + (gst_soup_http_src_start), (gst_soup_http_src_stop), + (gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop), + (gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable), + (gst_soup_http_src_do_seek), (gst_soup_http_src_set_location), + (gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type), + (gst_soup_http_src_uri_get_protocols), + (gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri), + (gst_soup_http_src_uri_handler_init), (plugin_init): + Add changes to gstsouphttpsrc.c that were missing from last commit. + +2008-01-31 08:57:16 +0000 Wouter Cloetens + + Make coding style more consistent, including class renaming. + Original commit message from CVS: + Patch by: Wouter Cloetens + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/inspect/plugin-soup.xml: + (gst_soup_http_src_base_init), (gst_soup_http_src_class_init), + (gst_soup_http_src_init), (gst_soup_http_src_dispose), + (gst_soup_http_src_set_property), (gst_soup_http_src_get_property), + (gst_soup_http_src_unicodify), (gst_soup_http_src_cancel_message), + (gst_soup_http_src_queue_message), + (gst_soup_http_src_add_range_header), + (gst_soup_http_src_session_unpause_message), + (gst_soup_http_src_session_pause_message), + (gst_soup_http_src_session_close), + (gst_soup_http_src_got_headers_cb), + (gst_soup_http_src_got_body_cb), (gst_soup_http_src_finished_cb), + (gst_soup_http_src_got_chunk_cb), (gst_soup_http_src_response_cb), + (gst_soup_http_src_parse_status), (gst_soup_http_src_create), + (gst_soup_http_src_start), (gst_soup_http_src_stop), + (gst_soup_http_src_unlock), (gst_soup_http_src_unlock_stop), + (gst_soup_http_src_get_size), (gst_soup_http_src_is_seekable), + (gst_soup_http_src_do_seek), (gst_soup_http_src_set_location), + (gst_soup_http_src_set_proxy), (gst_soup_http_src_uri_get_type), + (gst_soup_http_src_uri_get_protocols), + (gst_soup_http_src_uri_get_uri), (gst_soup_http_src_uri_set_uri), + (gst_soup_http_src_uri_handler_init), (plugin_init): + * ext/soup/gstsouphttpsrc.h: + Make coding style more consistent, including class renaming. + +2008-01-30 20:55:58 +0000 Sebastian Dröge + + configure.ac: Fix configure check for soundtouch to not produce syntax errors. + Original commit message from CVS: + * configure.ac: + Fix configure check for soundtouch to not produce syntax errors. + +2008-01-30 19:19:33 +0000 Sebastian Dröge + + Fix build with exempi >= 1.99.5 and fix the include path for exempi. + Original commit message from CVS: + * configure.ac: + * ext/metadata/metadataxmp.c: + (metadatamux_xmp_for_each_tag_in_list): + Fix build with exempi >= 1.99.5 and fix the include + path for exempi. + +2008-01-30 16:53:40 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + Just uptade the ToDo list. + Original commit message from CVS: + Just uptade the ToDo list. + +2008-01-30 16:05:24 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadatatypes.h: + * ext/metadata/metadataxmp.c: + Add documentation. Speed up a bit png muxer. Fix xmp muxer. + Original commit message from CVS: + Add documentation. Speed up a bit png muxer. Fix xmp muxer. + +2008-01-30 15:40:44 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.c: Update documentation a bit. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: + Update documentation a bit. + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-quicktime.xml: + * docs/plugins/inspect/plugin-rawparse.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-switch.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + Regenerate everything for the documentation changes we had. + +2008-01-30 15:34:25 +0000 Sebastian Dröge + + ext/gio/: Use async variants of the close stream functions to prevent blocking for a long time there and add some mor... + Original commit message from CVS: + * ext/gio/gstgiobasesink.c: (close_stream_cb), + (gst_gio_base_sink_stop), (gst_gio_base_sink_event), + (gst_gio_base_sink_render), (gst_gio_base_sink_set_stream): + * ext/gio/gstgiobasesrc.c: (close_stream_cb), + (gst_gio_base_src_stop), (gst_gio_base_src_create), + (gst_gio_base_src_set_stream): + Use async variants of the close stream functions to prevent blocking + for a long time there and add some more sanity checks for a correct + stream. + +2008-01-30 13:38:58 +0000 Sebastian Dröge + + tests/icles/Makefile.am: Move -Wl parameter from _LDADD to _LDFLAGS to fix autogen.sh. + Original commit message from CVS: + * tests/icles/Makefile.am: + Move -Wl parameter from _LDADD to _LDFLAGS to fix autogen.sh. + +2008-01-30 13:29:15 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.c: Let the proxy property default to the content of the $http_proxy environment variable. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_init): + Let the proxy property default to the content of the $http_proxy + environment variable. + +2008-01-30 13:08:45 +0000 Wouter Cloetens + + tests/check/: Add missing files for the unit test. + Original commit message from CVS: + Patch by: Wouter Cloetens + * tests/check/test-cert.pem: + * tests/check/test-key.pem: + Add missing files for the unit test. + +2008-01-30 13:06:01 +0000 Wouter Cloetens + + docs/plugins/: Add souphttpsrc to the docs. + Original commit message from CVS: + Patch by: Wouter Cloetens + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Add souphttpsrc to the docs. + * configure.ac: + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init), + (gst_souphttp_src_init), (gst_souphttp_src_dispose), + (gst_souphttp_src_set_property), (gst_souphttp_src_get_property), + (gst_souphttp_src_cancel_message), + (gst_souphttp_src_queue_message), + (gst_souphttp_src_add_range_header), + (gst_souphttp_src_session_unpause_message), + (gst_souphttp_src_session_pause_message), + (gst_souphttp_src_session_close), + (gst_souphttp_src_got_headers_cb), (gst_souphttp_src_got_body_cb), + (gst_souphttp_src_finished_cb), (gst_souphttp_src_got_chunk_cb), + (gst_souphttp_src_response_cb), (gst_souphttp_src_parse_status), + (gst_souphttp_src_create), (gst_souphttp_src_start), + (gst_souphttp_src_stop), (gst_souphttp_src_unlock), + (gst_souphttp_src_unlock_stop), (gst_souphttp_src_get_size), + (gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek), + (gst_souphttp_src_set_location), (gst_souphttp_src_set_proxy), + (plugin_init): + * ext/soup/gstsouphttpsrc.h: + Add support for libsoup2.4 and require it. Also implement redirection + and manual proxy specification. Fixes bug #510708. + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/souphttpsrc.c: + Add unit test for souphttpsrc. + +2008-01-30 12:56:51 +0000 Edgard Lima + + * ChangeLog: + * ext/Makefile.am: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxjpeg.h: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadatamuxpng.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsepng.c: + * tests/icles/Makefile.am: + Add documentation. Fix test app compilation. Fix pull mode. + Original commit message from CVS: + Add documentation. Fix test app compilation. Fix pull mode. + +2008-01-29 18:57:27 +0000 Thijs Vermeir + + gst/rtpmanager/gstrtpjitterbuffer.c: Try to get the new clock-rate from the buffer caps when we receive a new payload... + Original commit message from CVS: + Patch by: Thijs Vermeir + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain): + Try to get the new clock-rate from the buffer caps when we receive a new + payload type instead of always firing the signal. Fixes #512774. + +2008-01-29 18:05:01 +0000 Sebastian Dröge + + ext/mpeg2enc/gstmpeg2enc.cc: Define LOG_NONE and friends if they're not defined yet. mjpegtools 1.9.0rc3 removed thei... + Original commit message from CVS: + * ext/mpeg2enc/gstmpeg2enc.cc: + Define LOG_NONE and friends if they're not defined yet. mjpegtools + 1.9.0rc3 removed their definitions but without it doesn't make much + sense to write a log handler. + +2008-01-29 11:32:27 +0000 Stefan Kost + + docs/plugins/: Add base classes for metadata and equalizer (no introspection yet). + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.types: + Add base classes for metadata and equalizer (no introspection yet). + +2008-01-29 07:43:28 +0000 Stefan Kost + + ext/metadata/README: Formatting. + Original commit message from CVS: + * ext/metadata/README: + Formatting. + * tests/icles/metadata_editor.c: + Include stdlib.h. + +2008-01-29 07:38:31 +0000 Stefan Kost + + Replace the switch plugin with the selector plugin. Add output- selector as the opposite of input-selectoo (was switc... + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-selector.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-switch.xml: + * gst/selector/.cvsignore: + * gst/selector/Makefile.am: + * gst/selector/gstinputselector.c: + * gst/selector/gstinputselector.h: + * gst/selector/gstoutputselector.c: + * gst/selector/gstoutputselector.h: + * gst/selector/gstselector-marshal.list: + * gst/selector/gstselector.c: + * gst/selector/selector.vcproj: + * gst/switch/.cvsignore: + * gst/switch/Makefile.am: + * gst/switch/gstswitch-marshal.list: + * gst/switch/gstswitch.c: + * gst/switch/gstswitch.h: + * gst/switch/switch.vcproj: + * tests/icles/.cvsignore: + * tests/icles/Makefile.am: + * tests/icles/output-selector-test.c: + Replace the switch plugin with the selector plugin. Add output- + selector as the opposite of input-selectoo (was switch). Add a test + for output-selector. Add docs for the elements. The vcproj needs + update. Fixes #500142. + +2008-01-28 23:18:44 +0000 Tim-Philipp Müller + + gst/h264parse/gsth264parse.c: Try to avoid 'unused variable' compiler warning if debugging is disabled (not bullet pr... + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward): + Try to avoid 'unused variable' compiler warning if debugging is + disabled (not bullet proof, but seems to do for now). (#512654) + +2008-01-28 11:47:18 +0000 Sebastian Dröge + + ext/soundtouch/gstbpmdetect.cc: Clean up a bit and only allocate a temporary buffer for the data if processing stereo... + Original commit message from CVS: + * ext/soundtouch/gstbpmdetect.cc: + Clean up a bit and only allocate a temporary buffer for the data + if processing stereo data as BPMDetect downmixes from stereo to + mono and stores the result in the input data. Thanks to + Stefan Kost for the suggestions. + +2008-01-27 17:02:24 +0000 Sebastian Dröge + + ext/soundtouch/gstpitch.cc: Cast a double to a GstClockTimeDiff to fix a compiler warning. + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + Cast a double to a GstClockTimeDiff to fix a compiler warning. + +2008-01-27 16:12:45 +0000 Stefan Kost + + tests/icles/metadata_editor.c: Printf format fix. + Original commit message from CVS: + * tests/icles/metadata_editor.c: + Printf format fix. + +2008-01-27 07:51:06 +0000 Sebastian Dröge + + ext/soundtouch/gstpitch.cc: Don't send a LATENCY event for now until we get the usage right. + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + Don't send a LATENCY event for now until we get the usage right. + +2008-01-27 07:37:40 +0000 Sebastian Dröge + + ext/soundtouch/gstpitch.*: Implement LATENCY query and notify about latency changes. + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + * ext/soundtouch/gstpitch.hh: + Implement LATENCY query and notify about latency changes. + Unfortunately we don't have a fixed latency but it changes + a bit with each buffer so we only send an LATENCY event with + the maximum latency if it changes. + Always calculate the timestamp, duration, etc from the sample + rate instead of using a pre-calculated duration for one sample + to prevent large rounding errors. + +2008-01-27 07:32:19 +0000 Sebastian Dröge + + Add support for building against mjpegtools 1.9 while keeping compatiblity with older versions. + Original commit message from CVS: + Based on a patch by: + Hans de Goede + * configure.ac: + * ext/mpeg2enc/gstmpeg2encoder.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.hh: + Add support for building against mjpegtools 1.9 while keeping + compatiblity with older versions. + +2008-01-27 06:31:52 +0000 Sebastian Dröge + + ext/soundtouch/gstbpmdetect.cc: Only consider a BPM value above 1.0 as valid. + Original commit message from CVS: + * ext/soundtouch/gstbpmdetect.cc: + Only consider a BPM value above 1.0 as valid. + +2008-01-27 05:56:04 +0000 Sebastian Dröge + + ext/soundtouch/: Add BPM detection plugin based on SoundTouch's libBPM. + Original commit message from CVS: + * ext/soundtouch/Makefile.am: + * ext/soundtouch/gstbpmdetect.cc: + * ext/soundtouch/gstbpmdetect.hh: + * ext/soundtouch/plugin.c: (plugin_init): + Add BPM detection plugin based on SoundTouch's libBPM. + * ext/soundtouch/gstpitch.cc: + Allow sample rates until MAX instead of only 48kHz and remove the + buffer-frames field from that caps. + Clear the remaining samples completely when necessary to get into + a clean state again. + +2008-01-26 16:19:26 +0000 Sebastian Dröge + + gst/filter/: Don't implement get_unit_size() ourselves, the GstAudioFilter base class already does this for us. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init): + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init): + Don't implement get_unit_size() ourselves, the GstAudioFilter base + class already does this for us. + +2008-01-26 15:12:50 +0000 Sebastian Dröge + + ext/soundtouch/gstpitch.cc: Allow seeking only in TIME and DEFAULT format, other formats will not work as expected. A... + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + Allow seeking only in TIME and DEFAULT format, other formats will + not work as expected. Also handle a stop position of -1 correctly + for seeks, newsegment events and the queries. This fixes playback + with the pitch element if upstream doesn't know the duration or has + -1 as stop position in NEWSEGMENT events for other reasons. Before + simply nothing was played as the segment was going from 0 to 0. + Send a GST_MESSAGE_DURATION whenever the rate or tempo is changed + so applications can update their cached duration. Fixes bug #503308. + Some random cleanup and memory leak closing. + +2008-01-26 14:35:22 +0000 Sebastian Dröge + + ext/musepack/: First include the libmpcdec headers before everything else as they #define TRUE and FALSE unconditiona... + Original commit message from CVS: + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: + First include the libmpcdec headers before everything else as they + #define TRUE and FALSE unconditionally and we otherwise get conflicts + with the ones that GLib defines. + +2008-01-26 13:24:17 +0000 Sebastian Dröge + + Add support for libsoundtouch 1.3.1 and add an ugly workaround for the header definined PACKAGE and other variables f... + Original commit message from CVS: + * configure.ac: + * ext/soundtouch/gstpitch.cc: + Add support for libsoundtouch 1.3.1 and add an ugly workaround for + the header definined PACKAGE and other variables for which we need + our own values from config.h. + +2008-01-26 12:11:47 +0000 Tim-Philipp Müller + + configure.ac: Check for libglade-2.0, for the metadata-editor example. + Original commit message from CVS: + * configure.ac: + Check for libglade-2.0, for the metadata-editor example. + * tests/icles/Makefile.am: + Only try to build the metadata-editor example if we have gtk and + glade (otherwise the build would just fail ...); fix build in + uninstalled setup. + * tests/icles/metadata_editor.c: (on_cell_edited), (ui_add_columns): + Fix compiler warnings (use GLib macros to cast pointer <-> int). + +2008-01-25 17:45:28 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadatatypes.h: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + * ext/metadata/test/Makefile: + * ext/metadata/test/MetadataEditorMain.glade: + * ext/metadata/test/metadata_editor.c: + * tests/icles/Makefile.am: + * tests/icles/metadata_editor.c: + * tests/icles/metadata_editor.glade: + Add lot of documentation. + Original commit message from CVS: + Add lot of documentation. + +2008-01-25 17:35:46 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Open frontend in NULL->READY so caps about dvb adapter can be seen by the app. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Open frontend in NULL->READY so caps about dvb adapter can be + seen by the app. + +2008-01-25 16:58:00 +0000 Olivier Crete + + gst/rtpmanager/gstrtpbin.c: Also handle lip-sync when the clock-rate is not provided with caps but with a signal. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_associate), + (create_stream), (payload_type_change), (new_ssrc_pad_found): + Also handle lip-sync when the clock-rate is not provided with caps but + with a signal. + +2008-01-25 16:00:52 +0000 Olivier Crete + + gst/rtpmanager/: Remove the fixed clock-rate from the jitterbuffer and extend it so that a clock-rate can be provided... + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain): + * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew), + (rtp_jitter_buffer_insert): + * gst/rtpmanager/rtpjitterbuffer.h: + Remove the fixed clock-rate from the jitterbuffer and extend it so that + a clock-rate can be provided with each buffer instead. Fixes #511686. + +2008-01-25 15:49:55 +0000 Olivier Crete + + gst/rtpmanager/gstrtpjitterbuffer.c: Remove old unused variable. + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_change_state), + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + Remove old unused variable. + Track pt on input buffers and get the clock-rate when it changes. + Ignore packets with unknown clock-rate. See #511686. + +2008-01-25 12:48:40 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Post bus message about adapter type and it's capabilities, when opening the frontend. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Post bus message about adapter type and it's capabilities, + when opening the frontend. + After failing to read from the dvr, post a bus message to + inform the app. + +2008-01-25 09:50:07 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: The logic for the guard interval calculation was totally wrong. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + The logic for the guard interval calculation was totally wrong. + Fixed. + +2008-01-25 01:44:27 +0000 Olivier Crete + + gst/rtpmanager/rtpsource.c: Fix unref of buffer using the wrong function. Fixes #511920 + Original commit message from CVS: + Patch by: Olivier Crete + * gst/rtpmanager/rtpsource.c: Fix unref of buffer using the + wrong function. Fixes #511920 + +2008-01-24 13:23:03 +0000 Stefan Kost + + docs/plugins/: Now we have full hierarchy. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + Now we have full hierarchy. + * docs/plugins/inspect/plugin-metadata.xml: + Regenerate. + * ext/amrwb/gstamrwbdec.h: + Add doc blob for object instance. + +2008-01-24 10:15:34 +0000 Tim-Philipp Müller + + docs/plugins/: Update this too, hopefully fixes the docs build (does at least for me, after make clean in docs/plugins). + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-metadata.xml: + Update this too, hopefully fixes the docs build (does at least + for me, after make clean in docs/plugins). + +2008-01-24 08:12:29 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Fix network name descriptor, the length is actually the descriptor length not stored in the byte af... + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + Fix network name descriptor, the length is actually the + descriptor length not stored in the byte after. + Fix bounds checking to be more correct. + +2008-01-24 00:22:17 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Parse and add to relevant bus messages the terrestrial delivery system descriptor and the logical c... + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + Parse and add to relevant bus messages the terrestrial delivery + system descriptor and the logical channel descriptor. + Do bounds checking on data stored in descriptor before use. + +2008-01-23 16:35:34 +0000 Edgard Lima + + * ChangeLog: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatademux.h: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/metadatatags.c: + Add some documentation. + Original commit message from CVS: + Add some documentation. + +2008-01-23 15:51:20 +0000 Sebastian Dröge + + Add support for building against libdca (with the libdts compat header). Fixes bug #511530. + Original commit message from CVS: + * configure.ac: + * ext/dts/gstdtsdec.c: + Add support for building against libdca (with the libdts compat + header). Fixes bug #511530. + Should probably be ported to libdca as some points as it's the + successor of libdts. + +2008-01-23 14:59:47 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Do not go on forever if problem with reading from dvr, rather return NULL. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Do not go on forever if problem with reading from dvr, rather + return NULL. + Handle some cleanup issues of closing filedescriptors when + failing to tune or similar. + +2008-01-23 13:18:24 +0000 Christian Schaller + + * ChangeLog: + * gst-plugins-bad.spec.in: + * gst/rawparse/Makefile.am: + Add missing no_inst header files to Makefile.am so disting still works + Original commit message from CVS: + Add missing no_inst header files to Makefile.am so disting still works + Update spec file with latest changes + +2008-01-23 10:34:40 +0000 Sebastian Dröge + + Add documentation for the xingheader plugin. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/xingheader/gstxingmux.c: + * gst/xingheader/gstxingmux.h: + Add documentation for the xingheader plugin. + * tests/check/elements/xingmux.c: (GST_START_TEST): + Set element state to PLAYING before doing something else. + +2008-01-23 10:11:44 +0000 Sebastian Dröge + + tests/check/: Add simple unit test for the xingmux element. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/xingmux.c: (setup_xingmux), + (cleanup_xingmux), (GST_START_TEST), (xingmux_suite), (main): + * tests/check/elements/xingmux_testdata.h: + Add simple unit test for the xingmux element. + * gst/xingheader/gstxingmux.c: (generate_xing_header), + (gst_xing_mux_finalize), (xing_reset): + Fix a memleak and invalid seek tables with less than 100 MP3 frames. + +2008-01-23 09:49:27 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Parsed the satellite delivery system descriptor and added into nit's transport structure for delive... + Original commit message from CVS: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + Parsed the satellite delivery system descriptor and + added into nit's transport structure for delivery + over the bus. + +2008-01-22 20:27:28 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Parsed and added network name to the nit structure sent in the bus message. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Parsed and added network name to the nit structure sent + in the bus message. + +2008-01-22 19:59:39 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Remove leaks introduced by not freeing g_strndup'd strings. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Remove leaks introduced by not freeing g_strndup'd strings. + Fix start_time and duration parsing in EIT. + +2008-01-22 18:40:16 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.c: Add event name and description to the eit structure sent in the bus message. + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + Add event name and description to the eit structure + sent in the bus message. + +2008-01-22 18:08:01 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: Revert const removal from previous commit. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Revert const removal from previous commit. + +2008-01-22 18:04:04 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Added descriptor searching infrastructure from Fluendo TS demuxer. + Original commit message from CVS: + * gst/mpegtsparse/Makefile.am: + * gst/mpegtsparse/gstmpegdesc.c: + * gst/mpegtsparse/gstmpegdesc.h: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + Added descriptor searching infrastructure from Fluendo TS demuxer. + Add channel name and provider to the sdt structure sent in the + bus message. + +2008-01-22 17:43:35 +0000 Julien Moutte + + gst/h264parse/gsth264parse.c: Parse NAL units in forward mode to mark delta units flags. + Original commit message from CVS: + 2008-01-22 Julien Moutte + * gst/h264parse/gsth264parse.c: (gst_h264_parse_chain_forward): + Parse NAL units in forward mode to mark delta units flags. + +2008-01-22 12:06:19 +0000 Stefan Kost + + docs/plugins/: Regenerate. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-musepack.xml: + Regenerate. + * docs/plugins/inspect/plugin-tremor.xml: + Add vorbisidec aka trmor. + * ext/dc1394/gstdc1394.c: + Add short description. + +2008-01-22 09:55:23 +0000 Stefan Kost + + docs/plugins/Makefile.am: Add missing eol \ + Original commit message from CVS: + * docs/plugins/Makefile.am: + Add missing eol \ + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Place object names to standard sectionas plugin dont document those. + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + regenerate. + * ext/ivorbis/vorbisdec.c: + * ext/ivorbis/vorbisdec.h: + Mark private vars and add short desc. + * ext/mythtv/gstmythtvsrc.c: + * ext/theora/theoradec.c: + Add short desc. + +2008-01-21 14:33:11 +0000 Stefan Kost + + One less to do. Its 'nuv' not 'nvu'. As an extra bonus I mention what it actually is. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/nuvdemux/gstnuvdemux.c: + One less to do. Its 'nuv' not 'nvu'. As an extra bonus I mention what + it actually is. + +2008-01-21 14:19:32 +0000 Stefan Kost + + docs/plugins/: Update lists again. Those whole can build ivorbisdec, mythtvsrc, nvudemux and theoradecexp, please com... + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Update lists again. Those whole can build ivorbisdec, mythtvsrc, + nvudemux and theoradecexp, please commit the inspect/plugin-xxx.xml. + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-rawparse.xml + * docs/plugins/inspect/plugin-videoparse.xml: + Replace videoparse with rawparse. + * gst/dvdspu/gstdvdspu.h: + Help gtk-doc to recognize the object struct. + +2008-01-21 12:42:09 +0000 Stefan Kost + + gst/librfb/rfbdecoder.*: Don't use gtk-doc comment style for non gtk-doc comments. + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Don't use gtk-doc comment style for non gtk-doc comments. + Make one static function static. + +2008-01-21 12:19:13 +0000 Gabriel Bouvigne + + gst/deinterlace/gstdeinterlace.*: Provide 4:2:2 support + Original commit message from CVS: + Patch by: Gabriel Bouvigne + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init), + (gst_deinterlace_init), (gst_deinterlace_set_caps), + (gst_deinterlace_transform_ip), (gst_deinterlace_set_property), + (gst_deinterlace_get_property): + * gst/deinterlace/gstdeinterlace.h: + Provide 4:2:2 support + Also deinterlace chroma planes + Allow to turn on/off deinterlacing + Change of default thresholds, in order to provide acceptable results + with default params. Fixes #511001. + +2008-01-21 11:04:00 +0000 Tim-Philipp Müller + + docs/plugins/gst-plugins-bad-plugins-sections.txt: Update docs file too. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Update docs file too. + +2008-01-21 11:01:30 +0000 Tim-Philipp Müller + + gst/dvdspu/: Fix up dvdspu element again after previous namespace mangling: rename debug category variable to old nam... + Original commit message from CVS: + * gst/dvdspu/gstdvdspu-render.c: (gst_dvd_spu_render_spu): + * gst/dvdspu/gstdvdspu.c: (dvdspu_debug), (GST_CAT_DEFAULT), + (subpic_sink_factory), (gst_dvd_spu_base_init), + (gst_dvd_spu_class_init), (gst_dvd_spu_init), (gst_dvd_spu_clear), + (gst_dvd_spu_dispose), (gst_dvd_spu_finalize), + (gst_dvd_spu_flush_spu_info), (gst_dvd_spu_buffer_alloc), + (gst_dvd_spu_src_event), (gst_dvd_spu_video_set_caps), + (gst_dvd_spu_video_proxy_getcaps), (gst_dvd_spu_video_event), + (gst_dvd_spu_video_chain), (dvspu_handle_vid_buffer), + (gst_dvd_spu_redraw_still), (gst_dvd_spu_parse_chg_colcon), + (gst_dvd_spu_exec_cmd_blk), (gst_dvd_spu_finish_spu_buf), + (gst_dvd_spu_setup_cmd_blk), (gst_dvd_spu_handle_new_spu_buf), + (gst_dvd_spu_handle_dvd_event), (gst_dvd_spu_advance_spu), + (gst_dvd_spu_check_still_updates), (gst_dvd_spu_subpic_chain), + (gst_dvd_spu_subpic_event), (gst_dvd_spu_change_state), + (gst_dvd_spu_plugin_init): + * gst/dvdspu/gstdvdspu.h: (GST_TYPE_DVD_SPU): + Fix up dvdspu element again after previous namespace mangling: + rename debug category variable to old name, matching that in + dvdspu-render.c, to avoid undefined symbol error when loading + the module; same for the _render function in dvdspu-render.c: + we must use the same name in both .c files; change functions + now called gstgst_* back to gst_* again; and while we're at it, + we may as well canonicalise the namespace properly, namely to + gst_dvd_spu_*. + +2008-01-21 10:06:08 +0000 Stefan Kost + + Coherent namespace usage and adding symbold from unused to sections. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/theora/theoradec.c: + * ext/theora/theoradec.h: + Coherent namespace usage and adding symbold from unused to sections. + +2008-01-21 09:57:07 +0000 Stefan Kost + + docs/plugins/: Add symbols from -unused.txt to the right place. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Add symbols from -unused.txt to the right place. + * gst/dvdspu/gstdvdspu.c: + * gst/dvdspu/gstdvdspu.h: + Coherent namespace usage. + * gst/spectrum/gstspectrum.c: + Fix broken XML fragment in doc snippet even more. + +2008-01-21 07:54:02 +0000 Stefan Kost + + docs/plugins/Makefile.am: Update include list. + Original commit message from CVS: + * docs/plugins/Makefile.am: + Update include list. + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + Update xml includes. + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-dvbsrc.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-fbdevsink.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-metadata.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-quicktime.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-switch.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videoparse.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + Regenerate files. + * gst/spectrum/gstspectrum.c: + Fix broken XML fragment in doc snippet. + * tests/check/elements/.cvsignore: + Add test binary to ignores. + +2008-01-21 07:22:47 +0000 Stefan Kost + + gst/h264parse/gsth264parse.c: Fix the build. GST_TIME_ARGS takes a timestamp not a buffer. + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: + Fix the build. GST_TIME_ARGS takes a timestamp not a buffer. + +2008-01-20 05:07:52 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.c: Report the size of the stream as the total size instead of the remaining Content-Length, w... + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (soup_got_headers): + Report the size of the stream as the total size instead of + the remaining Content-Length, which is wrong after a seek. + +2008-01-19 16:13:31 +0000 Sebastian Dröge + + gst/rawparse/gstrawparse.c: Handle framesizes > 4096 with multiple frames per buffer correctly in pull mode and handl... + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_push_buffer), + (gst_raw_parse_loop): + Handle framesizes > 4096 with multiple frames per buffer correctly + in pull mode and handle short reads better. + Also put offset and offset_end on outgoing buffers. + +2008-01-19 15:53:38 +0000 Sebastian Dröge + + gst/rawparse/gstrawparse.c: Improve handling of unknown or too small upstream sizes in pull mode. + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_loop): + Improve handling of unknown or too small upstream sizes in + pull mode. + +2008-01-19 15:39:45 +0000 Sebastian Dröge + + gst/rawparse/gstrawparse.c: Improve debugging a bit and for handling multiple frames per buffer in pull mode choose t... + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_loop), + (gst_raw_parse_handle_seek_push): + Improve debugging a bit and for handling multiple frames per buffer + in pull mode choose the next smallest multiply of framesize below + 4096 instead of always handling 1024 frames. + +2008-01-19 14:34:50 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.c: Correctly set duration on the GstBaseSrc segment when we know it to fix failing the durati... + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (soup_got_headers): + Correctly set duration on the GstBaseSrc segment when we know it + to fix failing the duration query. + +2008-01-18 17:37:03 +0000 Wim Taymans + + gst/h264parse/gsth264parse.c: Set timestamps more correctly. + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: (gst_h264_parse_flush_decode), + (gst_h264_parse_queue_buffer), (gst_h264_parse_chain_reverse): + Set timestamps more correctly. + +2008-01-18 16:56:19 +0000 Sebastian Dröge + + gst/rawparse/gstrawparse.*: Implement pull mode. + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_class_init), + (gst_raw_parse_init), (gst_raw_parse_reset), + (gst_raw_parse_set_src_caps), (gst_raw_parse_push_buffer), + (gst_raw_parse_chain), (gst_raw_parse_loop), + (gst_raw_parse_sink_activate), (gst_raw_parse_sink_activatepull), + (gst_raw_parse_change_state), (gst_raw_parse_sink_event), + (gst_raw_parse_handle_seek_push), (gst_raw_parse_handle_seek_pull), + (gst_raw_parse_src_event), (gst_raw_parse_src_query): + * gst/rawparse/gstrawparse.h: + Implement pull mode. + +2008-01-18 10:05:53 +0000 Sebastian Dröge + + gst/multifile/gstmultifilesrc.c: Fix memory leak spotted by the unit test. + Original commit message from CVS: + * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create): + Fix memory leak spotted by the unit test. + +2008-01-18 09:54:59 +0000 Sebastian Dröge + + tests/check/Makefile.am: Enable spectrum test again. + Original commit message from CVS: + * tests/check/Makefile.am: + Enable spectrum test again. + * tests/check/gst-plugins-bad.supp: + Add suppressions for a singleton in GIO that can't be freed. + +2008-01-18 08:49:59 +0000 Sebastian Dröge + + tests/check/: Add some minimal tests for the equalizer plugin. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/equalizer.c: (setup_equalizer), + (cleanup_equalizer), (GST_START_TEST), (equalizer_suite), (main): + Add some minimal tests for the equalizer plugin. + +2008-01-18 07:03:23 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.c: Unparent all bands from the equalizer when finalizing to stop leaking them. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_finalize): + Unparent all bands from the equalizer when finalizing to stop + leaking them. + +2008-01-18 05:32:26 +0000 Sebastian Dröge + + ext/soup/gstsouphttpsrc.c: Add support for WebDAV. + Original commit message from CVS: + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_uri_get_protocols): + Add support for WebDAV. + +2008-01-18 05:24:39 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.*: Add support for seeking to souphttpsrc. Fixes bug #502335. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init), + (gst_souphttp_src_init), (gst_souphttp_src_create), + (gst_souphttp_src_is_seekable), (gst_souphttp_src_do_seek), + (soup_add_range_header), (soup_got_headers), (soup_got_chunk): + * ext/soup/gstsouphttpsrc.h: + Add support for seeking to souphttpsrc. Fixes bug #502335. + +2008-01-17 18:39:24 +0000 Wim Taymans + + gst/h264parse/gsth264parse.*: Improve debugging. + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: (gst_h264_parse_clear_queues), + (gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer), + (gst_h264_parse_find_start_reverse), + (gst_h264_parse_chain_reverse), (gst_h264_parse_chain): + * gst/h264parse/gsth264parse.h: + Improve debugging. + Fix buffer splitting at sync codes and leftover buffer after + scanning. + +2008-01-17 16:10:48 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataxmp.c: + Fixed adding EXIF tags to correct IFD. Mapped some XMP tags. + Original commit message from CVS: + Fixed adding EXIF tags to correct IFD. Mapped some XMP tags. + +2008-01-16 18:28:00 +0000 Wim Taymans + + gst/h264parse/gsth264parse.*: Add reverse playback support for containers that don't know how to properly send data b... + Original commit message from CVS: + * gst/h264parse/gsth264parse.c: (gst_nal_list_new), + (gst_nal_list_prepend_link), (gst_nal_list_delete_head), + (gst_nal_bs_init), (gst_nal_bs_read), (gst_nal_bs_eos), + (gst_nal_bs_read_ue), (gst_h264_parse_class_init), + (gst_h264_parse_init), (gst_h264_parse_set_property), + (gst_h264_parse_get_property), (gst_h264_parse_sink_setcaps), + (gst_h264_parse_clear_queues), (gst_h264_parse_chain_forward), + (gst_h264_parse_flush_decode), (gst_h264_parse_queue_buffer), + (gst_h264_parse_find_start_reverse), + (gst_h264_parse_chain_reverse), (gst_h264_parse_chain), + (gst_h264_parse_sink_event), (gst_h264_parse_change_state): + * gst/h264parse/gsth264parse.h: + Add reverse playback support for containers that don't know how to + properly send data between I-frames. + +2008-01-16 05:40:48 +0000 Sebastian Dröge + + Update for API changes in GIO and require GIO 2.15.2 for this. + Original commit message from CVS: + * configure.ac: + * tests/check/pipelines/gio.c: (GST_START_TEST): + Update for API changes in GIO and require GIO 2.15.2 for this. + +2008-01-14 10:52:20 +0000 Sebastian Dröge + + gst/xingheader/gstxingmux.c: Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead of 0xfe. + Original commit message from CVS: + * gst/xingheader/gstxingmux.c: (generate_xing_header): + Bitrate is 4 bits, not 8 so check for 0xe as maximum value instead + of 0xfe. + +2008-01-14 09:09:49 +0000 Sebastian Dröge + + gst/xingheader/gstxingmux.c: Remove accidentially leftover debug printf. + Original commit message from CVS: + * gst/xingheader/gstxingmux.c: (generate_xing_header): + Remove accidentially leftover debug printf. + +2008-01-14 08:56:31 +0000 Sebastian Dröge + + gst/xingheader/gstxingmux.c: Choose smallest possible frame size for the Xing header, properly set the timestamp, dur... + Original commit message from CVS: + * gst/xingheader/gstxingmux.c: (has_xing_header), + (generate_xing_header), (gst_xing_mux_chain), + (gst_xing_mux_sink_event): + Choose smallest possible frame size for the Xing header, properly + set the timestamp, duration and offset on the outgoing buffers, + only send NEWSEGMENT events in BYTE format downstream and also + drop VBRI headers if already existing. + +2008-01-12 09:22:06 +0000 Sebastian Dröge + + gst/xingheader/: Major cleanup and rewrite of xingmux with less bugs and new features: + Original commit message from CVS: + * gst/xingheader/Makefile.am: + * gst/xingheader/gstxingmux.c: (parse_header), (get_xing_offset), + (has_xing_header), (generate_xing_header), + (gst_xing_mux_base_init), (gst_xing_mux_finalize), (xing_reset), + (gst_xing_mux_init), (gst_xing_mux_chain), + (gst_xing_mux_sink_event), (gst_xing_mux_change_state): + * gst/xingheader/gstxingmux.h: + Major cleanup and rewrite of xingmux with less bugs and new features: + - Handles other layers as 3 + - Write TOC + +2008-01-11 19:16:53 +0000 Tim-Philipp Müller + + tests/check/elements/: It's "endianness", not "endianess". Fixes unit tests. + Original commit message from CVS: + * tests/check/elements/rganalysis.c: (test_buffer_const_float_mono), + (test_buffer_const_float_stereo), (test_buffer_const_int16_mono), + (test_buffer_const_int16_stereo), (test_buffer_square_float_mono), + (test_buffer_square_float_stereo), (test_buffer_square_int16_mono), + (test_buffer_square_int16_stereo): + * tests/check/elements/rglimiter.c: (create_test_buffer): + * tests/check/elements/rgvolume.c: (test_buffer_new): + It's "endianness", not "endianess". Fixes unit tests. + +2008-01-11 17:02:30 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: If we find the caps in the cache, use it to parse the clock-rate instead of returning... + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate): + If we find the caps in the cache, use it to parse the clock-rate instead + of returning an error. Fixes a TODO as found by Youness Alaoui. + +2008-01-11 16:45:57 +0000 Youness Alaoui + + gst/rtpmanager/: Make it possible to use different user_data for each of the callbacks. + Original commit message from CVS: + Patch by: Youness Alaoui + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_clock_rate): + * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks), + (rtp_session_set_process_rtp_callback), + (rtp_session_set_send_rtp_callback), + (rtp_session_set_send_rtcp_callback), + (rtp_session_set_sync_rtcp_callback), + (rtp_session_set_clock_rate_callback), + (rtp_session_set_reconsider_callback), (source_push_rtp), + (source_clock_rate), (rtp_session_process_bye), + (rtp_session_process_rtcp), (rtp_session_send_bye), + (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Make it possible to use different user_data for each of the callbacks. + Fixes #508587. + +2008-01-11 15:58:15 +0000 Wim Taymans + + gst/mpegvideoparse/mpegpacketiser.c: Small meaningless cleanup. + Original commit message from CVS: + * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code): + Small meaningless cleanup. + * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_flush), + (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain_forward), + (scan_keyframe), (gst_mpegvideoparse_flush_decode), + (gst_mpegvideoparse_chain_reverse), (gst_mpegvideoparse_chain), + (mpv_parse_sink_event), (gst_mpegvideoparse_change_state): + * gst/mpegvideoparse/mpegvideoparse.h: + Track segment events. + Do the first part of reverse playback by sending data between two + I-frames to the decoder. + +2008-01-10 20:57:17 +0000 Thijs Vermeir + + gst/rtpmanager/gstrtpbin.c: Fix documentation for latest patch + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: + Fix documentation for latest patch + +2008-01-10 14:34:30 +0000 Thijs Vermeir + + gst/rtpmanager/gstrtpbin.c: Allow request_new_pad with name NULL (bug #508515) + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: + Allow request_new_pad with name NULL (bug #508515) + +2008-01-10 12:36:46 +0000 Sebastian Dröge + + autogen.sh: Add -Wno-portability to the automake parameters to stop warnings about GNU make extensions being used. We... + Original commit message from CVS: + * autogen.sh: + Add -Wno-portability to the automake parameters to stop warnings + about GNU make extensions being used. We require GNU make in almost + every Makefile anyway. + * configure.ac: + Use AM_PROG_CC_C_O as a compiler that accepts both -c and -o + at the same time is required for per target flags. + +2008-01-09 14:39:44 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Don't set fixed caps, we can basically do everything the upsteam peer pad can renegot... + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (create_send_rtp_sink): + Don't set fixed caps, we can basically do everything the upsteam peer + pad can renegotiate to. Fixes #507940. + +2008-01-09 13:53:21 +0000 Stefan Kost + + Makefile.am: Include lcov.mak to allow building coverage reports. Add top-level check targets similar to other gst pa... + Original commit message from CVS: + * Makefile.am: + Include lcov.mak to allow building coverage reports. Add top-level + check targets similar to other gst packages. + +2008-01-06 22:35:31 +0000 David Schleef + + ext/directfb/Makefile.am: Add GST_CFLAGS. Otherwise we don't get -Wall -Werror. + Original commit message from CVS: + * ext/directfb/Makefile.am: + Add GST_CFLAGS. Otherwise we don't get -Wall -Werror. + * ext/directfb/dfbvideosink.c: + Getting tired of directfb's chatter. Quiet it. + +2008-01-06 22:00:32 +0000 Sean D'Epagnier + + Add fbdev-based video sink. Linux-only. See bug #506549. + Original commit message from CVS: + Patch by: Sean D'Epagnier + * configure.ac: + * sys/Makefile.am: + * sys/fbdev/Makefile.am: + * sys/fbdev/gstfbdevsink.c: + * sys/fbdev/gstfbdevsink.h: + Add fbdev-based video sink. Linux-only. See bug #506549. + +2008-01-06 16:36:32 +0000 Sebastian Dröge + + Update to GMemoryInputStream API changes in GLib SVN and require gio-2.0 >= 2.15.1 for this. Fixes bug #507584. + Original commit message from CVS: + * configure.ac: + * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size): + * tests/check/pipelines/gio.c: (free_input), (GST_START_TEST): + Update to GMemoryInputStream API changes in GLib SVN and require + gio-2.0 >= 2.15.1 for this. Fixes bug #507584. + We can also report the duration for every GSeekable, not only + GFileInputStream and GMemoryInputStream. + +2008-01-06 03:01:39 +0000 David Schleef + + sys/glsink/: Handle xoverlay exposes correctly. This means glimagesink works correctly most of the time in totem (fu... + Original commit message from CVS: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldisplay.h: + * sys/glsink/gstglupload.c: + Handle xoverlay exposes correctly. This means glimagesink works + correctly most of the time in totem (fullscreening being an + execption). Doesn't handle expose events directly to the GL + window. + +2008-01-06 01:19:48 +0000 David Schleef + + sys/glsink/: Reenable video/x-raw-rgb and x-raw-yuv for glimagesink. Enable vblank synchronization. Remove unused c... + Original commit message from CVS: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldisplay.h: + * sys/glsink/gstopengl.c: + Reenable video/x-raw-rgb and x-raw-yuv for glimagesink. Enable + vblank synchronization. Remove unused code. + +2008-01-04 18:47:57 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Don't unref the popped buffer when we don't have ownership. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop): + Don't unref the popped buffer when we don't have ownership. + Fixes #507020. + +2008-01-03 23:35:52 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Remove no longer needed files. + Original commit message from CVS: + * gst/mpegtsparse/Makefile.am: + * gst/mpegtsparse/flutspatinfo.c: + * gst/mpegtsparse/flutspatinfo.h: + * gst/mpegtsparse/flutspmtinfo.c: + * gst/mpegtsparse/flutspmtinfo.h: + * gst/mpegtsparse/flutspmtstreaminfo.c: + * gst/mpegtsparse/flutspmtstreaminfo.h: + Remove no longer needed files. + +2008-01-02 20:49:12 +0000 David Schleef + + tests/check/Makefile.am: Disable vcdsrc in states test because it takes too much time to get to PLAYING if it can fin... + Original commit message from CVS: + * tests/check/Makefile.am: + Disable vcdsrc in states test because it takes too much time + to get to PLAYING if it can find a device. + +2008-01-01 01:18:19 +0000 David Schleef + + ext/musicbrainz/gsttrm.c: Don't emit signiture when going to READY, because it might not be ready. + Original commit message from CVS: + * ext/musicbrainz/gsttrm.c: + Don't emit signiture when going to READY, because it might + not be ready. + * ext/nas/nassink.c: + Remove useless call that sleeps for 5 seconds. Yup, it calls + sleep(1) 5 times. Go NAS. + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + Initialize our debug categories properly. + * gst/rawparse/gstrawparse.c: + Don't register element details for a non-element. Be much more + rude when subclass doesn't set a pad template (assert!). Don't + unref the pad template; we don't own it. + * gst/videosignal/gstvideoanalyse.c: + Initialize debug category. + * tests/check/Makefile.am: + Ignore nassink element in tests because it has unavoidable + long timeouts. + +2007-12-31 13:12:06 +0000 Wim Taymans + + gst/rtpmanager/gstrtpssrcdemux.c: Don't clean up pads when going to PAUSED. + Original commit message from CVS: + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_change_state): + Don't clean up pads when going to PAUSED. + +2007-12-31 07:55:23 +0000 David Schleef + + Switch to using pkgconfig to detect libGL. Since we use recent features added to Mesa, there's no point in adding a ... + Original commit message from CVS: + * configure.ac: + * sys/glsink/Makefile.am: + Switch to using pkgconfig to detect libGL. Since we use + recent features added to Mesa, there's no point in adding + a check for pre-pkgconfig versions. + +2007-12-29 17:31:49 +0000 Sebastian Dröge + + Fix 'xyz may be used uninitialized' compiler warnings caused by broken g_assert_not_reached() macro in GLib-2.15.x an... + Original commit message from CVS: + * ext/ladspa/gstladspa.c: (gst_ladspa_get_property): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_show_frame): + * gst/mve/gstmvemux.c: (gst_mve_mux_request_new_pad): + * sys/dvb/dvbbasebin.c: (dvb_base_bin_class_init): + Fix 'xyz may be used uninitialized' compiler warnings caused + by broken g_assert_not_reached() macro in GLib-2.15.x and don't + abort() in any case but properly report the error. + +2007-12-29 17:29:17 +0000 Sebastian Dröge + + Update to latest API changes in GLib/GIO and require at least gio-2.0 2.15.0 for this. + Original commit message from CVS: + * configure.ac: + * ext/gio/gstgio.c: + * ext/gio/gstgio.h: + * ext/gio/gstgiobasesink.h: + * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_get_size): + * ext/gio/gstgiobasesrc.h: + * ext/gio/gstgiosink.c: (gst_gio_sink_start): + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.h: + * ext/gio/gstgiostreamsink.h: + * ext/gio/gstgiostreamsrc.h: + * tests/check/pipelines/gio.c: + Update to latest API changes in GLib/GIO and require at least + gio-2.0 2.15.0 for this. + * ext/gio/Makefile.am: + Add GST_PLUGIN_LDFLAGS to LDFLAGS. + +2007-12-29 00:37:41 +0000 David Schleef + + Major cleanup of code. Convert glupload to BaseTransform. + Original commit message from CVS: + * configure.ac: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstglconvert.c: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldisplay.h: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglfilter.h: + * sys/glsink/gstglfilterexample.c: + * sys/glsink/gstgltestsrc.c: + * sys/glsink/gstglupload.c: + Major cleanup of code. Convert glupload to BaseTransform. + Handle caps negotiation mostly correctly. Reenable in build. + +2007-12-28 11:44:28 +0000 Tim-Philipp Müller + + ext/soup/: Use gst_tag_freeform_string_to_utf8() and post radio station info as tags on the bus. + Original commit message from CVS: + * ext/soup/Makefile.am: + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_get_property), + (gst_souphttp_src_unicodify), (soup_got_headers): + Use gst_tag_freeform_string_to_utf8() and post radio station + info as tags on the bus. + +2007-12-27 05:26:05 +0000 David Schleef + + sys/glsink/: Change glimagesink over to using GL buffers. This breaks glimagesink for normal operation, but should b... + Original commit message from CVS: + * sys/glsink/glimagesink.c: + * sys/glsink/gstglupload.c: + Change glimagesink over to using GL buffers. This breaks + glimagesink for normal operation, but should be fixed soon. + +2007-12-27 04:15:26 +0000 David Schleef + + sys/glsink/: Convert gldownload to BaseTransform. Make glfilterexample visually interesting. Add support for variou... + Original commit message from CVS: + * sys/glsink/gltestsrc.c: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglfilterexample.c: + * sys/glsink/gstgltestsrc.c: + * sys/glsink/gstglupload.c: + Convert gldownload to BaseTransform. Make glfilterexample + visually interesting. Add support for various formats to + downloading. Fix a few places where we leak GL state to + other elements (bad, but hard to prevent). + +2007-12-27 00:52:23 +0000 David Schleef + + sys/glsink/: Remove code that handles non-texture buffers. Add a + Original commit message from CVS: + * sys/glsink/BUGS: + * sys/glsink/Makefile.am: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstglconvert.c: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglfilter.h: + * sys/glsink/gstglfilterexample.c: + * sys/glsink/gstgltestsrc.c: + * sys/glsink/gstglupload.c: + * sys/glsink/gstopengl.c: + Remove code that handles non-texture buffers. Add a + GstGLBufferFormat type that corresponds to how to use the + texture, not the original video format. Convert gstflfilter.c + into a base class, add glfilterexample and glconvert elements. + * sys/glsink/color_matrix.c: + Minor ramblings about color conversion matrices. + +2007-12-25 00:34:14 +0000 David Schleef + + sys/glsink/: Add gltestsrc element, a duplicate of videotestsrc that uses + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/gltestsrc.c: + * sys/glsink/gltestsrc.h: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstgltestsrc.c: + * sys/glsink/gstgltestsrc.h: + * sys/glsink/gstglupload.c: + * sys/glsink/gstopengl.c: + Add gltestsrc element, a duplicate of videotestsrc that uses + GL rendering to create images. More cleanup. + +2007-12-24 21:26:40 +0000 David Schleef + + sys/glsink/: Clean up code. Fix a few leaks. + Original commit message from CVS: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + Clean up code. Fix a few leaks. + +2007-12-24 21:04:46 +0000 David Schleef + + sys/glsink/: Rename glvideo.[ch] to gstgldisplay.[ch]. + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstgldisplay.c: + * sys/glsink/gstgldisplay.h: + Rename glvideo.[ch] to gstgldisplay.[ch]. + +2007-12-24 20:53:56 +0000 David Schleef + + sys/glsink/: Rewrite a bunch of code to use textures as the intermediate instead of renderbuffers. upload, download,... + Original commit message from CVS: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglupload.c: + Rewrite a bunch of code to use textures as the intermediate + instead of renderbuffers. upload, download, filtering all + work. + +2007-12-23 22:04:00 +0000 David Schleef + + gst/videoparse/: Remove videoparse element, because it was moved to gst/rawparse/ + Original commit message from CVS: + * gst/videoparse/Makefile.am: + * gst/videoparse/README: + * gst/videoparse/gstvideoparse.c: + Remove videoparse element, because it was moved to gst/rawparse/ + +2007-12-23 10:34:39 +0000 Sebastian Dröge + + gst/rawparse/gstrawparse.c: Always seek on frame boundaries, will produce nothing useful otherwise. + Original commit message from CVS: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_src_event): + Always seek on frame boundaries, will produce nothing useful + otherwise. + +2007-12-23 06:22:32 +0000 Sebastian Dröge + + Add new plugin rawparse that contains a base class for raw data parsers and the two elements audioparse and videopars... + Original commit message from CVS: + * configure.ac: + * gst/rawparse/Makefile.am: + * gst/rawparse/README: + * gst/rawparse/gstaudioparse.c: (gst_audio_parse_format_get_type), + (gst_audio_parse_endianness_get_type), (gst_audio_parse_base_init), + (gst_audio_parse_class_init), (gst_audio_parse_init), + (gst_audio_parse_set_property), (gst_audio_parse_get_property), + (gst_audio_parse_update_frame_size), (gst_audio_parse_get_caps): + * gst/rawparse/gstaudioparse.h: + * gst/rawparse/gstrawparse.c: (gst_raw_parse_base_init), + (gst_raw_parse_class_init), (gst_raw_parse_init), + (gst_raw_parse_dispose), + (gst_raw_parse_class_set_src_pad_template), + (gst_raw_parse_class_set_multiple_frames_per_buffer), + (gst_raw_parse_reset), (gst_raw_parse_chain), + (gst_raw_parse_convert), (gst_raw_parse_sink_event), + (gst_raw_parse_src_event), (gst_raw_parse_src_query_type), + (gst_raw_parse_src_query), (gst_raw_parse_set_framesize), + (gst_raw_parse_set_fps), (gst_raw_parse_get_fps), + (gst_raw_parse_is_negotiated): + * gst/rawparse/gstrawparse.h: + * gst/rawparse/gstvideoparse.c: (gst_video_parse_format_get_type), + (gst_video_parse_endianness_get_type), (gst_video_parse_base_init), + (gst_video_parse_class_init), (gst_video_parse_init), + (gst_video_parse_set_property), (gst_video_parse_get_property), + (gst_video_parse_format_to_fourcc), + (gst_video_parse_update_frame_size), (gst_video_parse_get_caps): + * gst/rawparse/gstvideoparse.h: + * gst/rawparse/plugin.c: (plugin_init): + Add new plugin rawparse that contains a base class for raw data + parsers and the two elements audioparse and videoparse that can + be used to parse raw audio and video. These are inspired by the + old videoparse element which the new rawparse plugin deprecates. + +2007-12-22 05:01:58 +0000 David Schleef + + sys/glsink/: A careful read of the documentation reveals that I can't use renderbuffers as textures. Duh. Checkpoin... + Original commit message from CVS: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglupload.c: + A careful read of the documentation reveals that I can't use + renderbuffers as textures. Duh. Checkpoint because I'm about + to rewrite a bunch of code. + +2007-12-21 19:01:00 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/metadata.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparseutil.c: + Some IPTC tags mapped. + Original commit message from CVS: + Some IPTC tags mapped. + +2007-12-21 09:45:56 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/gstmetadatacommon.c: + * ext/metadata/gstmetadatacommon.h: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + Removed gstmetadatacommon. + Original commit message from CVS: + Removed gstmetadatacommon. + +2007-12-21 00:03:11 +0000 David Schleef + + sys/glsink/: Switch to using framebuffer_objects instead of GLXPixmaps, because that's what my driver supports. Remo... + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstglbuffer.c: + * sys/glsink/gstglbuffer.h: + * sys/glsink/gstgldownload.c: + * sys/glsink/gstglfilter.c: + * sys/glsink/gstglupload.c: + * sys/glsink/gstopengl.c: + Switch to using framebuffer_objects instead of GLXPixmaps, + because that's what my driver supports. Remove GLDrawable, + since GstGLDisplay now has a default drawable and context. + +2007-12-20 17:07:22 +0000 Tim-Philipp Müller + + gst/: Ignore more. + Original commit message from CVS: + * gst/equalizer/.cvsignore: + * gst/switch/.cvsignore: + Ignore more. + +2007-12-19 09:50:47 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/TODO: + * ext/metadata/gstbasemetadata.c: + * ext/metadata/gstbasemetadata.h: + * ext/metadata/gstmetadatacommon.c: + * ext/metadata/gstmetadatacommon.h: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatademux.h: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadatatags.h: + * ext/metadata/test/metadata_editor.c: + New base class for metadata elements. + Original commit message from CVS: + New base class for metadata elements. + +2007-12-18 16:08:13 +0000 Andy Wingo + + gst/switch/: gst/switch/gstswitch.c (enum, gst_selector_pad_class_init) (gst_selector_pad_get_property) (gst_selector... + Original commit message from CVS: + 2007-12-18 Andy Wingo + * gst/switch/gstswitch-marshal.list: + * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): + * gst/switch/gstswitch.c (enum, gst_selector_pad_class_init) + (gst_selector_pad_get_property) + (gst_selector_pad_get_running_time) + (gst_stream_selector_class_init, gst_segment_get_timestamp) + (gst_segment_set_stop, gst_segment_set_start) + (gst_stream_selector_set_active_pad, gst_stream_selector_block) + (gst_stream_selector_push_pending_stop) + (gst_stream_selector_switch): Change so that the signals and + properties deal in running time, not buffer time. Document the + signals more. Change uint64 in API to int64, to reflect what's in + GstSegment. + +2007-12-18 09:26:42 +0000 Tim-Philipp Müller + + Makefile.am: Include common/win32.mak for CRLF check of win32 project files (see #393626). + Original commit message from CVS: + * Makefile.am: + Include common/win32.mak for CRLF check of win32 project + files (see #393626). + * configure.ac: + Bump requirements to -base CVS for libgstvideo additions in + glimagesink. Disable glimagesink until the missing files get + checked in. + +2007-12-18 01:25:58 +0000 David Schleef + + sys/glsink/: Use new GstVideoFormat checked into -base. Add new glupload element to upload raw video into a GLXPixbu... + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstopengl.c: + * sys/glsink/gstglupload.c: + Use new GstVideoFormat checked into -base. Add new glupload + element to upload raw video into a GLXPixbuf. Untested. Will + likely crash your motorcycle if you try it. + * sys/glsink/gstvideo-common.c: + * sys/glsink/gstvideo-common.h: + Remove. + +2007-12-17 21:12:28 +0000 David Schleef + + gst/multifile/gstmultifilesrc.*: When subsequent files are read, if the file doesn't exist, send an EOS instead of ca... + Original commit message from CVS: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + When subsequent files are read, if the file doesn't exist, send + an EOS instead of causing an error. + +2007-12-17 15:09:17 +0000 Andy Wingo + + gst/switch/gstswitch.c (gst_selector_pad_chain): Return OK when a buffer is ignored, not NOT_LINKED. No sense in maki... + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.c (gst_selector_pad_chain): Return OK when + a buffer is ignored, not NOT_LINKED. No sense in making a source + element error out; at least fdsrc considers NOT_LINKED to be a + fatal error. Patch 11/12. There is no patch 12/12. Foo. + +2007-12-17 15:06:48 +0000 Andy Wingo + + gst/switch/: gst/switch/gstswitch.c (gst_stream_selector_class_init) (gst_stream_selector_block): Make the block() si... + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch-marshal.list: + * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): + * gst/switch/gstswitch.c (gst_stream_selector_class_init) + (gst_stream_selector_block): Make the block() signal return the + last stop time of the active pad. Patch 10/12. + +2007-12-17 15:04:51 +0000 Andy Wingo + + * ChangeLog: + * gst/switch/gstswitch.c: + gst/switch/gstswitch.c (gst_selector_pad_get_property) (gst_selector_pad_class_init, gst_stream_selector_class_init) + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.c (gst_selector_pad_get_property) + (gst_selector_pad_class_init, gst_stream_selector_class_init) + (gst_stream_selector_get_property): Expose 'last-stop-time' as a + pad property, not an element property. + (gst_selector_pad_chain): Mark the last_stop time as timestamp + + duration, not timestamp. Patch 9/12. + +2007-12-17 15:01:55 +0000 Andy Wingo + + * ChangeLog: + * gst/switch/gstswitch.c: + gst/switch/gstswitch.c (gst_stream_selector_change_state) + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.c (gst_stream_selector_change_state) + (gst_stream_selector_block, gst_stream_selector_switch): Use the + cond mechanism instead of blocked pads. Patch 8/12. + +2007-12-17 15:00:15 +0000 Andy Wingo + + gst/switch/gstswitch.h (struct _GstStreamSelector): gst/switch/gstswitch.c (gst_stream_selector_wait) (gst_selector_p... + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.h (struct _GstStreamSelector): + * gst/switch/gstswitch.c (gst_stream_selector_wait) + (gst_selector_pad_chain, gst_stream_selector_init) + (gst_stream_selector_dispose): Add infrastructure for new blocking + mechanism that does not use gst_pad_set_blocked, which does not + work on sink pads. Patch 7/12. + +2007-12-17 14:58:18 +0000 Andy Wingo + + * ChangeLog: + * gst/switch/gstswitch.c: + gst/switch/gstswitch.c (gst_stream_selector_class_init) + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.c (gst_stream_selector_class_init) + (gst_stream_selector_get_property): Add last-stop-time readable + property. Patch 6/12. + +2007-12-17 14:55:54 +0000 Andy Wingo + + gst/switch/gstswitch.h (struct _GstStreamSelector): Add some state variables. + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.h (struct _GstStreamSelector): Add some + state variables. + * gst/switch/gstswitch.c (gst_stream_selector_push_pending_stop) + (gst_selector_pad_chain): Push any pending stop event. + (gst_stream_selector_set_active_pad) + (gst_stream_selector_set_property): Factor out setting the active + pad to a function. Close the segment of the previous active pad if + told to do so via a stop_time != GST_CLOCK_TIME_NONE. + (gst_stream_selector_switch): Implement switch vmethod. Patch 5/12. + +2007-12-17 14:52:14 +0000 Andy Wingo + + gst/switch/gstswitch.c (gst_stream_selector_block): Implement the block() signal. This implementation will be replace... + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.c (gst_stream_selector_block): Implement + the block() signal. This implementation will be replaced in future + patches, however. Patch 4/12. + +2007-12-17 14:48:26 +0000 Andy Wingo + + gst/switch/gstswitch.h (struct _GstStreamSelectorClass): Fix vmethod prototypes. + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): Fix + vmethod prototypes. + * gst/switch/gstswitch.c (gst_stream_selector_class_init) + (gst_stream_selector_block, gst_stream_selector_switch): Add empty + vmethod definitions. Patch 3/12. + +2007-12-17 14:46:26 +0000 Andy Wingo + + gst/switch/gstswitch.*: Add `block' and `switch' signals. + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.h (struct _GstStreamSelectorClass): + * gst/switch/gstswitch.c (gst_stream_selector_class_init): Add + `block' and `switch' signals. + * gst/switch/Makefile.am: + * gst/switch/gstswitch-marshal.list: Add foo to generate a + marshaller for the `switch' signal. Patch 2/12. + +2007-12-17 14:43:04 +0000 Andy Wingo + + gst/switch/gstswitch.*: Replace with files from gststreamselector.[ch], registered as the "switch" plugin, with "GstS... + Original commit message from CVS: + 2007-12-17 Andy Wingo + * gst/switch/gstswitch.h: + * gst/switch/gstswitch.c: Replace with files from + gststreamselector.[ch], registered as the "switch" plugin, with + "GstSwitch" types. Patch 1/12. + +2007-12-17 14:37:39 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add libsoup plugin to spec + Original commit message from CVS: + add libsoup plugin to spec + +2007-12-17 12:37:36 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/test/MetadataEditorMain.glade: + * ext/metadata/test/metadata_editor.c: + Added "parse-only" property to metadatademux. + Original commit message from CVS: + Added "parse-only" property to metadatademux. + +2007-12-16 22:57:22 +0000 David Schleef + + sys/glsink/: Rename GLVideo* to GstGL*. + Original commit message from CVS: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + Rename GLVideo* to GstGL*. + +2007-12-16 00:16:46 +0000 David Schleef + + sys/glsink/: Add vblank synchronization. Isn't really working on my driver. :( + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glextensions.c: + * sys/glsink/glextensions.h: + * sys/glsink/glvideo.c: + Add vblank synchronization. Isn't really working on my + driver. :( + +2007-12-15 19:31:23 +0000 David Schleef + + sys/glsink/: Add support for xRGB, xBGR, and AYUV. Re-add support for power-of-2 textures. + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstvideo-common.c: + * sys/glsink/gstvideo-common.h: + Add support for xRGB, xBGR, and AYUV. Re-add support for + power-of-2 textures. + +2007-12-15 17:52:46 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Free the adapter on dispose and correctly reset on newsegment events. + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_dispose), + (gst_video_parse_sink_event): + Free the adapter on dispose and correctly reset on newsegment events. + +2007-12-15 13:10:00 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Improve duration query by first asking upstream and if it can't handle the query try ... + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event), + (gst_video_parse_src_event), (gst_video_parse_src_query): + Improve duration query by first asking upstream and if it can't handle + the query try to get the duration in bytes from upstream and convert. + For seeks, try if upstream handles this already first and do our + conversion to byte format only if it doesn't and if we get a + newsegment event in time format keep it and only do our conversions + if the event has another format. + +2007-12-15 07:37:20 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Add support for video/x-raw-rgb and video/x-raw-gray. Also send downstream elements d... + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: + (gst_video_parse_format_get_type), + (gst_video_parse_endianness_get_type), + (gst_video_parse_class_init), (gst_video_parse_init), + (gst_video_parse_set_property), (gst_video_parse_get_property), + (gst_video_parse_format_to_fourcc), + (gst_video_parse_update_block_size), (gst_video_parse_chain), + (gst_video_parse_sink_event): + Add support for video/x-raw-rgb and video/x-raw-gray. Also send + downstream elements downstream, not upstream. + +2007-12-15 06:33:37 +0000 David Schleef + + sys/glsink/gstvideo-common.*: Pull together some common raw video functions into one location. + Original commit message from CVS: + * sys/glsink/gstvideo-common.c: + * sys/glsink/gstvideo-common.h: + Pull together some common raw video functions into one location. + This should eventually move to -base. + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + * sys/glsink/gstopengl.c: + Use the new video-common.h stuff. Readd support for RGB video. + +2007-12-14 18:18:37 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/TODO: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadatacommon.c: + * ext/metadata/gstmetadatacommon.h: + * ext/metadata/gstmetadatademux.c: + * ext/metadata/gstmetadatademux.h: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/test/metadata_editor.c: + Added new module for common functions. Using GST_TYPE_FRACTION for Exif (S)Rational types. + Original commit message from CVS: + Added new module for common functions. Using GST_TYPE_FRACTION for Exif (S)Rational types. + +2007-12-14 17:51:49 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtspacketizer.*: Hash streams by pid again. Add a linked list inside each stream with a list of su... + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtspacketizer.h: + Hash streams by pid again. Add a linked list inside each + stream with a list of sub_tables. Fix multiple sections + as it was borked with my last commit. + +2007-12-14 16:23:06 +0000 Christian Schaller + + * ChangeLog: + * gst-plugins-bad.spec.in: + * gst/speexresample/Makefile.am: + * sys/glsink/Makefile.am: + update spec file and add two missing files for disting + Original commit message from CVS: + update spec file and add two missing files for disting + +2007-12-13 17:19:54 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/TODO: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxjpeg.h: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadatamuxpng.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadatatypes.h: + * ext/metadata/metadataxmp.c: + Code documentation. + Original commit message from CVS: + Code documentation. + +2007-12-13 12:45:06 +0000 Edgard Lima + + * ChangeLog: + * common: + * configure.ac: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/metadataexif.c: + * ext/metadata/metadatatags.c: + * ext/metadata/test/Makefile: + * ext/metadata/test/MetadataEditorMain.glade: + * ext/metadata/test/metadata_editor.c: + Added a test application. Added some EXIF tags. Fixed a muxer bug. + Original commit message from CVS: + Added a test application. Added some EXIF tags. Fixed a muxer bug. + +2007-12-13 11:25:06 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Implement a query type function for the src pad, implement seeking and use ANY caps f... + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_init), + (gst_video_parse_src_event), (gst_video_parse_src_query_type): + Implement a query type function for the src pad, implement seeking + and use ANY caps for the sink pad as the element doesn't care what + caps the input has and everything is handled via properties. + +2007-12-13 10:38:23 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Handle -1 values for the CONVERT query too. + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_convert), + (gst_video_parse_sink_event): + Handle -1 values for the CONVERT query too. + +2007-12-13 10:16:48 +0000 Sebastian Dröge + + gst/videoparse/gstvideoparse.c: Add YV12 to the pad templates as it is supported too and allow + Original commit message from CVS: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_sink_event): + Add YV12 to the pad templates as it is supported too and allow + -1 as stop position for NEWSEGMENT events. + +2007-12-13 08:54:08 +0000 Sebastian Dröge + + gst/videoparse/Makefile.am: Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS to fix the build. + Original commit message from CVS: + * gst/videoparse/Makefile.am: + Add $(GST_PLUGINS_BASE_CFLAGS) to CFLAGS to fix the build. + * gst/videoparse/gstvideoparse.c: (gst_video_parse_init), + (gst_video_parse_set_property), (gst_video_parse_get_property): + Use g_value_[sg]et_enum() for enum properties, g_value_[sg]et_int() + gives a g_critical(). + +2007-12-13 04:43:58 +0000 David Schleef + + gst/videoparse/: Add a bunch of features: handle format specification, handle queries and conversion. Works much lik... + Original commit message from CVS: + * gst/videoparse/README: + * gst/videoparse/gstvideoparse.c: + Add a bunch of features: handle format specification, handle + queries and conversion. Works much like a normal parser now. + +2007-12-12 16:59:03 +0000 Wim Taymans + + gst/rtpmanager/: Clean up the dynamic pads when going to READY. + Original commit message from CVS: + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_finalize), + (gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release), + (gst_rtp_pt_demux_change_state): + * gst/rtpmanager/gstrtpssrcdemux.c: (gst_rtp_ssrc_demux_reset), + (gst_rtp_ssrc_demux_dispose), (gst_rtp_ssrc_demux_src_query), + (gst_rtp_ssrc_demux_change_state): + Clean up the dynamic pads when going to READY. + +2007-12-12 12:11:53 +0000 Wim Taymans + + gst/rtpmanager/: Fix some leaks. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_finalize), + (gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string), + (gst_rtp_bin_handle_message): + * gst/rtpmanager/rtpsession.c: (rtp_session_finalize), + (rtp_session_send_bye): + * gst/rtpmanager/rtpsource.c: (rtp_source_finalize): + Fix some leaks. + +2007-12-12 04:11:15 +0000 Sebastian Dröge + + ext/dts/gstdtsdec.*: Add support for "audio/x-private1-dts" as used by flupsparse. Most changes adapted from a52dec. + Original commit message from CVS: + * ext/dts/gstdtsdec.c: (gst_dtsdec_init), + (gst_dtsdec_sink_setcaps), (gst_dtsdec_chain_raw), + (gst_dtsdec_chain): + * ext/dts/gstdtsdec.h: + Add support for "audio/x-private1-dts" as used by flupsparse. Most + changes adapted from a52dec. + +2007-12-12 02:33:12 +0000 David Schleef + + sys/glsink/: Split out gl-related code into a separate file with a sensible API. Major cleanup. Still crashes occas... + Original commit message from CVS: + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: + * sys/glsink/glvideo.c: + * sys/glsink/glvideo.h: + Split out gl-related code into a separate file with a + sensible API. Major cleanup. Still crashes occasionally + due to different threads touching bits at the same time. + +2007-12-11 16:39:39 +0000 Wouter Cloetens + + ext/soup/gstsouphttpsrc.*: Do not try to unpause I/O in the "queued" state. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/soup/gstsouphttpsrc.c: (_do_init), + (gst_souphttp_src_class_init), (gst_souphttp_src_init), + (gst_souphttp_src_dispose), (gst_souphttp_src_set_property), + (gst_souphttp_src_get_property), (unicodify), + (gst_souphttp_src_unicodify), (gst_souphttp_src_create), + (gst_souphttp_src_start), (gst_souphttp_src_stop), + (gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop), + (gst_souphttp_src_get_size), (gst_souphttp_src_is_seekable), + (soup_got_headers), (soup_got_body), (soup_finished), + (soup_got_chunk), (soup_response), (soup_parse_status), + (gst_souphttp_src_uri_get_type), + (gst_souphttp_src_uri_get_protocols), + (gst_souphttp_src_uri_get_uri), (gst_souphttp_src_uri_set_uri), + (gst_souphttp_src_uri_handler_init): + * ext/soup/gstsouphttpsrc.h: + Do not try to unpause I/O in the "queued" state. + Reorganise a bunch of things and cleanups. + Uses G_GUINT64_FORMAT instead of hard-coding %llu. + See #502335. + +2007-12-11 16:26:07 +0000 Wim Taymans + + ext/x264/gstx264enc.c: Fix caps memleak. + Original commit message from CVS: + * ext/x264/gstx264enc.c: (gst_x264_enc_set_src_caps): + Fix caps memleak. + +2007-12-11 11:54:43 +0000 Tim-Philipp Müller + + gst/flv/gstflvparse.c: Don't strdup (and thus leak) codec name strings when passing them to gst_tag_list_add(). + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Don't strdup (and thus leak) codec name strings when passing + them to gst_tag_list_add(). + +2007-12-10 18:36:04 +0000 Wim Taymans + + gst/rtpmanager/: Post a message when the SDES infor changes for a source. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init), + (gst_rtp_bin_handle_message): + * gst/rtpmanager/gstrtpsession.c: (source_get_sdes_structure), + (on_ssrc_sdes): + Post a message when the SDES infor changes for a source. + * gst/rtpmanager/rtpsession.c: + * gst/rtpmanager/rtpsource.c: + Update some comments. + +2007-12-10 17:18:35 +0000 mutex at runbox dot com + + gst/videoparse/gstvideoparse.c: Forward the query upstream, the default element event handler does something differen... + Original commit message from CVS: + Based on patch by: + * gst/videoparse/gstvideoparse.c: (gst_video_parse_src_query): + Forward the query upstream, the default element event handler does + something different. Fixes #502879. + +2007-12-10 15:34:19 +0000 Wim Taymans + + gst/rtpmanager/: Add signal to notify of an SDES change. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (on_ssrc_sdes), (create_session), + (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpclient.h: + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpmanager.c: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: (on_ssrc_sdes), + (gst_rtp_session_class_init), (gst_rtp_session_init): + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + * gst/rtpmanager/rtpjitterbuffer.c: + * gst/rtpmanager/rtpjitterbuffer.h: + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (on_ssrc_sdes), (rtp_session_process_sdes): + * gst/rtpmanager/rtpsession.h: + * gst/rtpmanager/rtpsource.c: + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.c: + * gst/rtpmanager/rtpstats.h: + Add signal to notify of an SDES change. + Fix object type in the signal callbacks. + +2007-12-10 14:03:32 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Expose SDES items as properties and configure the session managers with them. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session), + (gst_rtp_bin_class_init), (gst_rtp_bin_init), (sdes_type_to_name), + (gst_rtp_bin_set_sdes_string), (gst_rtp_bin_get_sdes_string), + (gst_rtp_bin_set_property), (gst_rtp_bin_get_property): + * gst/rtpmanager/gstrtpbin.h: + Expose SDES items as properties and configure the session managers with + them. + * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), + (rtp_source_set_property): + Fix SSRC property. + +2007-12-10 11:08:11 +0000 Wim Taymans + + gst/rtpmanager/: Update comment. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session): + * gst/rtpmanager/rtpjitterbuffer.c: + Update comment. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_set_property), (gst_rtp_session_get_property): + Define some GObject properties to set SDES and other configuration. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_init), (rtp_session_finalize), + (rtp_session_set_property), (rtp_session_get_property), + (on_ssrc_sdes), (rtp_session_set_bandwidth), + (rtp_session_get_bandwidth), (rtp_session_set_rtcp_fraction), + (rtp_session_get_rtcp_fraction), (rtp_session_set_sdes_string), + (rtp_session_get_sdes_string), (obtain_source), + (rtp_session_get_internal_source), (rtp_session_process_sdes), + (rtp_session_send_rtp), (rtp_session_next_timeout), (session_sdes), + (is_rtcp_time): + * gst/rtpmanager/rtpsession.h: + Add signal when new SDES infor has been found for a source. + Create properties for SDES and other info. + Simplify the SDES API. + Add method for getting the internal source object of the session. + * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), + (rtp_source_finalize), (rtp_source_set_property), + (rtp_source_get_property), (rtp_source_set_callbacks), + (rtp_source_get_ssrc), (rtp_source_set_as_csrc), + (rtp_source_is_as_csrc), (rtp_source_is_active), + (rtp_source_is_validated), (rtp_source_is_sender), + (rtp_source_received_bye), (rtp_source_get_bye_reason), + (rtp_source_set_sdes), (rtp_source_set_sdes_string), + (rtp_source_get_sdes), (rtp_source_get_sdes_string), + (rtp_source_get_new_sr), (rtp_source_get_new_rb): + * gst/rtpmanager/rtpsource.h: + Add GObject properties for various things. + Don't leak the bye reason. + +2007-12-09 19:37:53 +0000 Edward Hervey + + gst/flv/gstflvparse.c: Fix list of supported and known codecs. + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Fix list of supported and known codecs. + Emit tag with the codec name so it gets properly reported in totem and + other applications. + +2007-12-09 04:30:06 +0000 Sebastian Dröge + + configure.ac: Don't define GST_DISABLE_DEPRECATED for releases. Fixes #498181. + Original commit message from CVS: + * configure.ac: + Don't define GST_DISABLE_DEPRECATED for releases. Fixes #498181. + +2007-12-06 12:45:50 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.c: Fix compilation. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_transform_ip): + Fix compilation. + +2007-12-06 12:42:11 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.c: Don't process buffers in passthrough mode. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_transform_ip): + Don't process buffers in passthrough mode. + +2007-12-06 12:37:43 +0000 Sebastian Dröge + + gst/filter/: The transform() methods are not called in passthrough mode so there's no need for checking if the elemen... + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (bpwsinc_transform): + * gst/filter/gstlpwsinc.c: (lpwsinc_transform): + The transform() methods are not called in passthrough mode so + there's no need for checking if the element is in passthrough mode. + +2007-12-06 12:29:26 +0000 Sebastian Dröge + + gst/filter/: Sync the GObject properties with the controller even in passthrough mode to get consistent property values. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (bpwsinc_transform): + * gst/filter/gstlpwsinc.c: (lpwsinc_transform): + Sync the GObject properties with the controller even in passthrough + mode to get consistent property values. + +2007-12-06 10:48:19 +0000 Tim-Philipp Müller + + gst/mpegtsparse/mpegtsparse.c: Mark crc values table as constant. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: (crc_tab): + Mark crc values table as constant. + +2007-12-05 17:00:59 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + Added some tags to exif parser. + Original commit message from CVS: + Added some tags to exif parser. + +2007-12-05 12:40:05 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: A sub table is identified by the pair table_id and sub_table_identifier, not by pid. So hash with t... + Original commit message from CVS: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + A sub table is identified by the pair table_id and + sub_table_identifier, not by pid. So hash with that. + * sys/dvb/dvbbasebin.c: + Make sure initial pids are added properly to filter, + +2007-12-05 11:25:58 +0000 Andy Wingo + + gst/switch/gstswitch.c (gst_switch_set_property): Don't push buffers from app thread when unsetting `queue-buffers', ... + Original commit message from CVS: + 2007-12-05 Andy Wingo + * gst/switch/gstswitch.c (gst_switch_set_property): Don't push + buffers from app thread when unsetting `queue-buffers', it's + dangerous and the chain function will do it for us anyway. + +2007-12-04 17:20:25 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadataparsejpeg.c: + Now compiles even when libiptc is missing. + Original commit message from CVS: + Now compiles even when libiptc is missing. + +2007-12-04 16:42:25 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxjpeg.h: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadatamuxpng.h: + Fixed element properties and now muxer writes to png also. + Original commit message from CVS: + Fixed element properties and now muxer writes to png also. + +2007-12-03 18:28:32 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Remove signals for pat, pmt, nit, eit, sdt. Replace with bus messages. + Original commit message from CVS: + * gst/mpegtsparse/Makefile.am: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + Remove signals for pat, pmt, nit, eit, sdt. Replace with bus + messages. + * sys/dvb/dvbbasebin.c: + Instead of attaching to signals, use the bus messages. + Also fix up so the dvbsrc starts only outputting the info tables + like PAT, CAT, NIT, SDT, EIT instead of the whole ts. + +2007-12-03 16:14:01 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + Muxer writes (in jpeg only) whole IPTC chunk sent as tag. Muxer implemets GstTagSetter interface. + Original commit message from CVS: + Muxer writes (in jpeg only) whole IPTC chunk sent as tag. Muxer implemets GstTagSetter interface. + +2007-12-03 13:08:26 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.c: Should fix the 64-bit build + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + Should fix the 64-bit build + +2007-11-30 18:30:12 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + Muxer writes (in jpeg only) whole EXIF and XMP chunks sent as tags. + Original commit message from CVS: + Muxer writes (in jpeg only) whole EXIF and XMP chunks sent as tags. + +2007-11-30 14:08:15 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.*: Add CoRRE encoding + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Add CoRRE encoding + +2007-11-30 13:18:36 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/mpegtsparse.c: CRC check the psi pids. CRC checking code relicenced from MPL. + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + CRC check the psi pids. CRC checking code relicenced from MPL. + Thanks Fluendo. + +2007-11-30 12:53:13 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadatamuxjpeg.c: + * ext/metadata/metadatamuxjpeg.h: + * ext/metadata/metadatamuxpng.c: + * ext/metadata/metadatamuxpng.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadatatypes.h: + Fixed get_range bug when injecting and stripping. And mux is almost done now. + Original commit message from CVS: + Fixed get_range bug when injecting and stripping. And mux is almost done now. + +2007-11-30 10:46:23 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.c: Use glib macro for swapping + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + Use glib macro for swapping + +2007-11-29 13:32:11 +0000 Thijs Vermeir + + gst/librfb/: Disable CopyRect encoding by default + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Disable CopyRect encoding by default + Add RRE encoding + +2007-11-29 10:49:18 +0000 Wouter Cloetens + + configure.ac: Bump libsoup requirement as libsoup does not support async client operation prior to version 2.2.104 an... + Original commit message from CVS: + Patch by: Wouter Cloetens + * configure.ac: + Bump libsoup requirement as libsoup does not support async client + operation prior to version 2.2.104 and it has some leaks. + * ext/soup/gstsouphttpsrc.c: (gst_souphttp_src_class_init), + (gst_souphttp_src_init), (gst_souphttp_src_dispose), + (gst_souphttp_src_set_property), (gst_souphttp_src_create), + (gst_souphttp_src_start), (gst_souphttp_src_stop), + (gst_souphttp_src_unlock), (gst_souphttp_src_unlock_stop), + (gst_souphttp_src_get_size), (soup_got_headers), (soup_got_body), + (soup_finished), (soup_got_chunk), (soup_response), + (soup_session_close): + * ext/soup/gstsouphttpsrc.h: + Implement unlock(). + Picks up the size from the Content-Length header and emit a duration + message. + Don't leak the GMainContext object. + Fixes #500099. + +2007-11-29 10:44:54 +0000 Wim Taymans + + ext/alsaspdif/alsaspdifsink.c: Don't free uninitialized data when we are in error. + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps), + (alsaspdifsink_get_time), (alsaspdifsink_set_params), + (alsaspdifsink_find_pcm_device): + Don't free uninitialized data when we are in error. + +2007-11-28 14:03:35 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + Sending make and model individual tags and muxer now links fine. + Original commit message from CVS: + Sending make and model individual tags and muxer now links fine. + +2007-11-28 08:13:52 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadata.c: + * ext/metadata/metadata.h: + * ext/metadata/metadataexif.c: + * ext/metadata/metadataexif.h: + * ext/metadata/metadataiptc.c: + * ext/metadata/metadataiptc.h: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + * ext/metadata/metadataparseexif.c: + * ext/metadata/metadataparseexif.h: + * ext/metadata/metadataparseiptc.c: + * ext/metadata/metadataparseiptc.h: + * ext/metadata/metadataparsexmp.c: + * ext/metadata/metadataparsexmp.h: + * ext/metadata/metadatatags.c: + * ext/metadata/metadatatags.h: + * ext/metadata/metadataxmp.c: + * ext/metadata/metadataxmp.h: + Small fixes in get_range and better structure for generic muxer and demuxer. + Original commit message from CVS: + Small fixes in get_range and better structure for generic muxer and demuxer. + +2007-11-26 13:19:48 +0000 Julien Moutte + + configure.ac: Add QuickTime Wrapper plug-in. + Original commit message from CVS: + 2007-11-26 Julien Moutte + * configure.ac: Add QuickTime Wrapper plug-in. + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_push_drain), (gst_speex_resample_process): Fix + build on Mac OS X Leopard. Incorrect printf format arguments. + * sys/Makefile.am: + * sys/qtwrapper/Makefile.am: + * sys/qtwrapper/audiodecoders.c: + (qtwrapper_audio_decoder_base_init), + (qtwrapper_audio_decoder_class_init), + (qtwrapper_audio_decoder_init), + (clear_AudioStreamBasicDescription), (fill_indesc_mp3), + (fill_indesc_aac), (fill_indesc_samr), (fill_indesc_generic), + (make_samr_magic_cookie), (open_decoder), + (qtwrapper_audio_decoder_sink_setcaps), (process_buffer_cb), + (qtwrapper_audio_decoder_chain), + (qtwrapper_audio_decoder_sink_event), + (qtwrapper_audio_decoders_register): + * sys/qtwrapper/codecmapping.c: (audio_caps_from_string), + (fourcc_to_caps): + * sys/qtwrapper/codecmapping.h: + * sys/qtwrapper/imagedescription.c: (image_description_for_avc1), + (image_description_for_mp4v), (image_description_from_stsd_buffer), + (image_description_from_codec_data): + * sys/qtwrapper/imagedescription.h: + * sys/qtwrapper/qtutils.c: (get_name_info_from_component), + (get_output_info_from_component), (dump_avcc_atom), + (dump_image_description), (dump_codec_decompress_params), + (addSInt32ToDictionary), (dump_cvpixel_buffer), + (DestroyAudioBufferList), (AllocateAudioBufferList): + * sys/qtwrapper/qtutils.h: + * sys/qtwrapper/qtwrapper.c: (plugin_init): + * sys/qtwrapper/qtwrapper.h: + * sys/qtwrapper/videodecoders.c: + (qtwrapper_video_decoder_base_init), + (qtwrapper_video_decoder_class_init), + (qtwrapper_video_decoder_init), (qtwrapper_video_decoder_finalize), + (fill_image_description), (new_image_description), (close_decoder), + (open_decoder), (qtwrapper_video_decoder_sink_setcaps), + (decompressCb), (qtwrapper_video_decoder_chain), + (qtwrapper_video_decoder_sink_event), + (qtwrapper_video_decoders_register): Initial import of QuickTime + wrapper jointly developped by Songbird authors (Pioneers of the + Inevitable) and Fluendo. + +2007-11-26 10:08:20 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Use dispose and finalize. Dispose can be called multiple times. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: + Use dispose and finalize. Dispose can be called multiple times. + +2007-11-26 09:38:24 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + Now works when get_range is not available upstream. + Original commit message from CVS: + Now works when get_range is not available upstream. + +2007-11-26 08:43:25 +0000 Sebastian Dröge + + gst/speexresample/: Update speex resampler to latest SVN. We're now down to only the changes noted in README again. + Original commit message from CVS: + * gst/speexresample/README: + * gst/speexresample/arch.h: + * gst/speexresample/resample.c: (resampler_basic_direct_single), + (resampler_basic_direct_double), + (resampler_basic_interpolate_single), + (resampler_basic_interpolate_double), + (speex_resampler_process_native), (speex_resampler_process_float), + (speex_resampler_process_int), + (speex_resampler_process_interleaved_float), + (speex_resampler_process_interleaved_int), + (speex_resampler_get_input_latency), + (speex_resampler_get_output_latency): + * gst/speexresample/speex_resampler.h: + Update speex resampler to latest SVN. We're now down to only the + changes noted in README again. + * gst/speexresample/speex_resampler_wrapper.h: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_push_drain), (gst_speex_resample_query): + Adjust to API changes. + +2007-11-25 10:45:09 +0000 Edward Hervey + + gst/flv/gstflvparse.c: Output segment with proper 'stop' value, makes flvdemux 100% compatible with gnonlin. + Original commit message from CVS: + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): + Output segment with proper 'stop' value, makes flvdemux 100% compatible + with gnonlin. + +2007-11-25 10:12:09 +0000 Stefan Kost + + ext/dc1394/gstdc1394.c: Set initial structure name to fix assertion, due to recent caps name constraints. + Original commit message from CVS: + * ext/dc1394/gstdc1394.c: + Set initial structure name to fix assertion, due to recent caps name + constraints. + +2007-11-23 17:53:37 +0000 Alessandro Decina + + gst/mpegtsparse/: pat-info is now a signal not a GObject property that gets notified. + Original commit message from CVS: + patch by: Alessandro Decina + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtspacketizer.h: + * gst/mpegtsparse/mpegtsparse.c: + * gst/mpegtsparse/mpegtsparse.h: + pat-info is now a signal not a GObject property that + gets notified. + pat-info, pmt-info now instead of passing a GObject as + a parameter, pass a GstStructure. + New signals: nit-info, sdt-info, eit-info for DVB SI information + * sys/dvb/camconditionalaccess.c: + * sys/dvb/camconditionalaccess.h: + * sys/dvb/camdevice.c: + * sys/dvb/camdevice.h: + * sys/dvb/camswclient.c: + * sys/dvb/camswclient.h: + * sys/dvb/camutils.c: + * sys/dvb/camutils.h: + Cam code now uses the pmt GstStructure passed from mpegtsparse + signals rather than the GObject. + * sys/dvb/dvbbasebin.c: + Use new signals in mpegtsparse and use GstStructures as per + mpegtsparse's modified API. + +2007-11-23 17:35:21 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadatamux.c: + * ext/metadata/gstmetadatamux.h: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparsetypes.h: + * ext/metadata/metadatatypes.c: + * ext/metadata/metadatatypes.h: + Now parser is generic (just add/remove a list of chunks). And a template of muxer has been created. + Original commit message from CVS: + Now parser is generic (just add/remove a list of chunks). And a template of muxer has been created. + +2007-11-23 10:21:31 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Only post the latency message if we have a resampler state already. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_update_state): + Only post the latency message if we have a resampler state already. + +2007-11-23 10:21:11 +0000 Sebastian Dröge + + gst/audioresample/gstaudioresample.c: Implement latency query. + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init), + (audioresample_query), (audioresample_query_type), + (gst_audioresample_set_property): + Implement latency query. + +2007-11-23 10:01:33 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Also post GST_MESSAGE_LATENCY if the latency changes. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_update_state): + Also post GST_MESSAGE_LATENCY if the latency changes. + +2007-11-23 08:48:50 +0000 Sebastian Dröge + + gst/speexresample/: Add functions to push the remaining samples and to get the latency of the resampler. These will g... + Original commit message from CVS: + * gst/speexresample/resample.c: (speex_resampler_get_latency), + (speex_resampler_drain_float), (speex_resampler_drain_int), + (speex_resampler_drain_interleaved_float), + (speex_resampler_drain_interleaved_int): + * gst/speexresample/speex_resampler.h: + * gst/speexresample/speex_resampler_wrapper.h: + Add functions to push the remaining samples and to get the latency + of the resampler. These will get added to Speex SVN in this or a + slightly changed form at some point too and should get merged then + again. + * gst/speexresample/gstspeexresample.c: (gst_speex_resample_init), + (gst_speex_resample_init_state), + (gst_speex_resample_transform_size), + (gst_speex_resample_push_drain), (gst_speex_resample_event), + (gst_speex_fix_output_buffer), (gst_speex_resample_process), + (gst_speex_resample_query), (gst_speex_resample_query_type): + Drop the prepending zeroes and output the remaining samples on EOS. + Also properly implement the latency query for this. speexresample + should be completely ready for production use now. + +2007-11-22 09:08:27 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: jitterbuffer can buffer an unlimited amount of time and thus has no max_latency ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_query): + jitterbuffer can buffer an unlimited amount of time and thus has no + max_latency requirements. + +2007-11-21 10:18:56 +0000 Sebastian Dröge + + gst/speexresample/README: Add README explaining where the resampling code was taken from and which changes were done. + Original commit message from CVS: + * gst/speexresample/README: + Add README explaining where the resampling code was taken from + and which changes were done. + * gst/speexresample/resample.c: (speex_alloc), (speex_realloc), + (speex_free): + Use g_malloc() and friends instead of malloc() to achieve higher + portability and define the functions inline. + * gst/speexresample/speex_resampler.h: + Add back some useless preprocessor stuff to keep the diff between + our version and the one from the Speex SVN repository lower. + +2007-11-21 09:56:54 +0000 Sebastian Dröge + + gst/filter/: Post a GST_MESSAGE_LATENCY if the latency changes. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (bpwsinc_set_property): + * gst/filter/gstlpwsinc.c: (lpwsinc_set_property): + Post a GST_MESSAGE_LATENCY if the latency changes. + +2007-11-21 09:45:41 +0000 Wim Taymans + + ext/faac/gstfaac.c: Don't try to flush the decoder on EOS when it was not initialized. + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_sink_event): + Don't try to flush the decoder on EOS when it was not initialized. + Fixes #498667 + +2007-11-21 09:40:08 +0000 Julien Moutte + + ext/sdl/sdlaudiosink.c: Fix build on Mac OS X. (missing format parameter) + Original commit message from CVS: + 2007-11-21 Julien Moutte + * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_write): Fix build + on Mac OS X. (missing format parameter) + +2007-11-21 08:21:10 +0000 Stefan Kost + + gst/equalizer/: Remove preset iface again. We'll re-add this after its been released in -good. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer3bands.c: + Remove preset iface again. We'll re-add this after its been released + in -good. + +2007-11-20 20:23:25 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: Some small cleanup and addition of a TODO item. + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_fix_output_buffer), (gst_speex_resample_transform): + Some small cleanup and addition of a TODO item. + +2007-11-20 12:56:00 +0000 Sebastian Dröge + + gst/speexresample/Makefile.am: Add missing file. + Original commit message from CVS: + * gst/speexresample/Makefile.am: + Add missing file. + +2007-11-20 07:52:13 +0000 Sebastian Dröge + + docs/plugins/inspect/: Add missing inspection files to CVS. + Original commit message from CVS: + * docs/plugins/inspect/plugin-app.xml: + * docs/plugins/inspect/plugin-bayer.xml: + * docs/plugins/inspect/plugin-cdaudio.xml: + * docs/plugins/inspect/plugin-dvb.xml: + * docs/plugins/inspect/plugin-dvbsrc.xml: + * docs/plugins/inspect/plugin-dvdspu.xml: + * docs/plugins/inspect/plugin-festival.xml: + * docs/plugins/inspect/plugin-flvdemux.xml: + * docs/plugins/inspect/plugin-gstinterlace.xml: + * docs/plugins/inspect/plugin-interleave.xml: + * docs/plugins/inspect/plugin-ladspa.xml: + * docs/plugins/inspect/plugin-mpeg4videoparse.xml: + * docs/plugins/inspect/plugin-mpegtsparse.xml: + * docs/plugins/inspect/plugin-mpegvideoparse.xml: + * docs/plugins/inspect/plugin-mve.xml: + * docs/plugins/inspect/plugin-nas.xml: + * docs/plugins/inspect/plugin-nuvdemux.xml: + * docs/plugins/inspect/plugin-quicktime.xml: + * docs/plugins/inspect/plugin-real.xml: + * docs/plugins/inspect/plugin-rfbsrc.xml: + * docs/plugins/inspect/plugin-sdp.xml: + * docs/plugins/inspect/plugin-sndfile.xml: + * docs/plugins/inspect/plugin-soup.xml: + * docs/plugins/inspect/plugin-speexresample.xml: + * docs/plugins/inspect/plugin-stereo.xml: + * docs/plugins/inspect/plugin-switch.xml: + * docs/plugins/inspect/plugin-vcdsrc.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-videoparse.xml: + * docs/plugins/inspect/plugin-vmnc.xml: + * docs/plugins/inspect/plugin-x264.xml: + * docs/plugins/inspect/plugin-y4menc.xml: + Add missing inspection files to CVS. + +2007-11-20 07:47:27 +0000 Sebastian Dröge + + Add speexresample to the docs and while at that do a make update. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gio.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst/speexresample/gstspeexresample.h: + Add speexresample to the docs and while at that do a make update. + +2007-11-20 07:30:30 +0000 Sebastian Dröge + + gst/speexresample/gstspeexresample.c: If the resampler gives less output samples than expected adjust the output buff... + Original commit message from CVS: + * gst/speexresample/gstspeexresample.c: + (gst_speex_fix_output_buffer), (gst_speex_resample_process): + If the resampler gives less output samples than expected + adjust the output buffer and print a warning. + +2007-11-20 07:02:45 +0000 Sebastian Dröge + + Add resample element based on the Speex resampling algorithm. + Original commit message from CVS: + * configure.ac: + * gst/speexresample/arch.h: + * gst/speexresample/fixed_generic.h: + * gst/speexresample/gstspeexresample.c: + (gst_speex_resample_base_init), (gst_speex_resample_class_init), + (gst_speex_resample_init), (gst_speex_resample_start), + (gst_speex_resample_stop), (gst_speex_resample_get_unit_size), + (gst_speex_resample_transform_caps), + (gst_speex_resample_init_state), (gst_speex_resample_update_state), + (gst_speex_resample_reset_state), (gst_speex_resample_parse_caps), + (gst_speex_resample_transform_size), (gst_speex_resample_set_caps), + (gst_speex_resample_event), (gst_speex_resample_check_discont), + (gst_speex_resample_process), (gst_speex_resample_transform), + (gst_speex_resample_set_property), + (gst_speex_resample_get_property), (plugin_init): + * gst/speexresample/gstspeexresample.h: + * gst/speexresample/resample.c: (speex_alloc), (speex_realloc), + (speex_free), (compute_func), (main), (sinc), (cubic_coef), + (resampler_basic_direct_single), (resampler_basic_direct_double), + (resampler_basic_interpolate_single), + (resampler_basic_interpolate_double), (update_filter), + (speex_resampler_init), (speex_resampler_init_frac), + (speex_resampler_destroy), (speex_resampler_process_native), + (speex_resampler_process_float), (speex_resampler_process_int), + (speex_resampler_process_interleaved_float), + (speex_resampler_process_interleaved_int), + (speex_resampler_set_rate), (speex_resampler_get_rate), + (speex_resampler_set_rate_frac), (speex_resampler_get_ratio), + (speex_resampler_set_quality), (speex_resampler_get_quality), + (speex_resampler_set_input_stride), + (speex_resampler_get_input_stride), + (speex_resampler_set_output_stride), + (speex_resampler_get_output_stride), (speex_resampler_skip_zeros), + (speex_resampler_reset_mem), (speex_resampler_strerror): + * gst/speexresample/speex_resampler.h: + * gst/speexresample/speex_resampler_float.c: + * gst/speexresample/speex_resampler_int.c: + * gst/speexresample/speex_resampler_wrapper.h: + Add resample element based on the Speex resampling algorithm. + +2007-11-19 22:09:36 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + Fixed buffer strip (safer wil pull and after seek). + Original commit message from CVS: + Fixed buffer strip (safer wil pull and after seek). + +2007-11-19 20:30:19 +0000 Stefan Kost + + gst/equalizer/: Activate preset iface and upload two presets here. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer3bands.c: + Activate preset iface and upload two presets here. + +2007-11-19 13:05:23 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + Strip out in pull mode also. Seek and Query functions added. + Original commit message from CVS: + Strip out in pull mode also. Seek and Query functions added. + +2007-11-18 21:06:51 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparsetypes.h: + Strip out metadata chunks. + Original commit message from CVS: + Strip out metadata chunks. + +2007-11-16 11:11:06 +0000 Stefan Kost + + configure.ac: Als use AG_GST_PLUGIN_DOCS (see #344039). + Original commit message from CVS: + * configure.ac: + Als use AG_GST_PLUGIN_DOCS (see #344039). + +2007-11-15 19:03:33 +0000 Wai-Ming Ho + + gst/mpegtsparse/mpegtspacketizer.c: Ensure that the plugin does not crash when the property pat-info is queried befor... + Original commit message from CVS: + Patch by: Wai-Ming Ho + * gst/mpegtsparse/mpegtspacketizer.c: (foreach_stream_clear), + (remove_all), (mpegts_packetizer_clear): + Ensure that the plugin does not crash when the property pat-info is + queried before a PAT is available. It also ensures that the PAT info is + cleared when the changing from PLAYING to READY. + Fixes #487892. + +2007-11-15 18:53:56 +0000 Wouter Paesen + + ext/soundtouch/gstpitch.cc: Handle seeking correctly. Fixes #461068. + Original commit message from CVS: + Patch by: Wouter Paesen + * ext/soundtouch/gstpitch.cc: + Handle seeking correctly. Fixes #461068. + +2007-11-15 18:41:31 +0000 Michael Kötter + + ext/alsaspdif/alsaspdifsink.c: Fix sample rate and clocking. + Original commit message from CVS: + Patch by: Michael Kötter + * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_set_caps), + (alsaspdifsink_get_time), (alsaspdifsink_open), + (alsaspdifsink_set_params), (alsaspdifsink_delay), (plugin_init): + Fix sample rate and clocking. + Remove buffer_time and period_time as this seems to break on some + hardware. Fixes #485462. + +2007-11-15 17:26:25 +0000 Wouter Cloetens + + Added HTTP source based on libsoup. Fixes #497020. + Original commit message from CVS: + Patch by: Wouter Cloetens + * configure.ac: + * ext/Makefile.am: + * ext/soup/Makefile.am: + * ext/soup/gstsouphttpsrc.c: (_do_init), + (gst_souphttp_src_base_init), (gst_souphttp_src_class_init), + (gst_souphttp_src_init), (gst_souphttp_src_dispose), + (gst_souphttp_src_set_property), (gst_souphttp_src_get_property), + (gst_souphttp_src_create), (gst_souphttp_src_start), + (gst_souphttp_src_stop), (gst_souphttp_src_unlock), + (gst_souphttp_src_set_location), (soup_got_chunk), (soup_response), + (soup_session_close), (plugin_init): + * ext/soup/gstsouphttpsrc.h: + Added HTTP source based on libsoup. Fixes #497020. + +2007-11-15 15:32:47 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: don't forget to handle the offset's + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + don't forget to handle the offset's + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + precalculate some many used values + +2007-11-15 08:28:29 +0000 Armando Taffarel Neto + + gst/librfb/gstrfbsrc.c: Set the timestamp for the output buffers + Original commit message from CVS: + patch by: Armando Taffarel Neto + * gst/librfb/gstrfbsrc.c: + Set the timestamp for the output buffers + +2007-11-14 17:03:18 +0000 Sebastian Dröge + + tests/check/elements/spectrum.c: Fix spectrum unit test for the latest spectrum changes. + Original commit message from CVS: + * tests/check/elements/spectrum.c: (GST_START_TEST): + Fix spectrum unit test for the latest spectrum changes. + +2007-11-12 21:07:31 +0000 René Stadler + + gst/replaygain/rganalysis.c: Avoid slowdown from denormals when processing near-silence input data. + Original commit message from CVS: + Patch by: René Stadler + * gst/replaygain/rganalysis.c: (yule_filter): + Avoid slowdown from denormals when processing near-silence input data. + Spotted by Gabriel Bouvigne. Fixes #494499. + +2007-11-12 19:22:24 +0000 Edward Hervey + + gst/flv/gstflvparse.c: Add mapping for Nellymoser ASAO audio codec. + Original commit message from CVS: + * gst/flv/gstflvparse.c: + Add mapping for Nellymoser ASAO audio codec. + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Make sure we + actually have data to read at the end of the tag. This avoids trying + to allocate negative buffers. + +2007-11-12 17:27:03 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/README: + Added a design proposal from metadata parse and mux. + Original commit message from CVS: + Added a design proposal from metadata parse and mux. + +2007-11-11 21:12:10 +0000 Sebastian Dröge + + gst/: Change the meaning of the magnitude values given in the + Original commit message from CVS: + * gst/equalizer/demo.c: (draw_spectrum): + * gst/spectrum/demo-audiotest.c: (draw_spectrum): + * gst/spectrum/demo-osssrc.c: (draw_spectrum): + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init): + Change the meaning of the magnitude values given in the + GstMessages by spectrum to decibel instead of + decibel+threshold. + +2007-11-11 13:55:27 +0000 Sebastian Dröge + + gst/equalizer/: And continue to update docs. Also include some sample code for the n-band equalizer in the docs. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer3bands.c: + * gst/equalizer/gstiirequalizernbands.c: + And continue to update docs. Also include some sample code + for the n-band equalizer in the docs. + +2007-11-11 12:54:31 +0000 Sebastian Dröge + + gst/equalizer/: Update docs and property ranges to the real values. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer10bands.c: + (gst_iir_equalizer_10bands_class_init): + * gst/equalizer/gstiirequalizer3bands.c: + (gst_iir_equalizer_3bands_class_init): + * gst/equalizer/gstiirequalizernbands.c: + Update docs and property ranges to the real values. + +2007-11-09 17:27:00 +0000 Sebastian Dröge + + gst/spectrum/gstspectrum.c: Now do the scaling right for real. Also initialize a previously uninitialized variable. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: + Now do the scaling right for real. Also initialize a previously + uninitialized variable. + +2007-11-09 15:53:13 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/metadataparsexmp.c: + Extracting more detailed info from XMP. + Original commit message from CVS: + Extracting more detailed info from XMP. + +2007-11-08 15:56:46 +0000 Stefan Kost + + gst/equalizer/demo.c: Make default volume a bit less. Improve layout by giving more space to the slider with big-numb... + Original commit message from CVS: + * gst/equalizer/demo.c: + Make default volume a bit less. Improve layout by giving more space to + the slider with big-numbers and enable fill. + +2007-11-07 16:47:32 +0000 Sebastian Dröge + + Require GIO >= 0.1.2 and adjust unit test for an API change. + Original commit message from CVS: + * configure.ac: + * tests/check/pipelines/gio.c: (GST_START_TEST): + Require GIO >= 0.1.2 and adjust unit test for an API change. + +2007-11-07 15:36:59 +0000 Sebastian Dröge + + tests/icles/equalizer-test.c: Fix gain ranges for the latest equalizer changes. + Original commit message from CVS: + * tests/icles/equalizer-test.c: (do_slider_fiddling): + Fix gain ranges for the latest equalizer changes. + +2007-11-07 15:18:54 +0000 Sebastian Dröge + + ext/gio/gstgio.h: Add macro to check if a stream supports seeking. + Original commit message from CVS: + * ext/gio/gstgio.h: + Add macro to check if a stream supports seeking. + * ext/gio/Makefile.am: + * ext/gio/gstgiobasesink.c: (gst_gio_base_sink_base_init), + (gst_gio_base_sink_class_init), (gst_gio_base_sink_init), + (gst_gio_base_sink_finalize), (gst_gio_base_sink_start), + (gst_gio_base_sink_stop), (gst_gio_base_sink_unlock), + (gst_gio_base_sink_unlock_stop), (gst_gio_base_sink_event), + (gst_gio_base_sink_render), (gst_gio_base_sink_query), + (gst_gio_base_sink_set_stream): + * ext/gio/gstgiobasesink.h: + * ext/gio/gstgiobasesrc.c: (gst_gio_base_src_base_init), + (gst_gio_base_src_class_init), (gst_gio_base_src_init), + (gst_gio_base_src_finalize), (gst_gio_base_src_start), + (gst_gio_base_src_stop), (gst_gio_base_src_get_size), + (gst_gio_base_src_is_seekable), (gst_gio_base_src_unlock), + (gst_gio_base_src_unlock_stop), (gst_gio_base_src_check_get_range), + (gst_gio_base_src_create), (gst_gio_base_src_set_stream): + * ext/gio/gstgiobasesrc.h: + Refactor common GIO functions to GstGioBaseSink and GstGioBaseSrc + base classes that only require a GInputStream or GOutputStream to + work. + * ext/gio/gstgiosink.c: (gst_gio_sink_base_init), + (gst_gio_sink_class_init), (gst_gio_sink_init), + (gst_gio_sink_finalize), (gst_gio_sink_start): + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.c: (gst_gio_src_base_init), + (gst_gio_src_class_init), (gst_gio_src_init), + (gst_gio_src_finalize), (gst_gio_src_start): + * ext/gio/gstgiosrc.h: + Use the newly created base classes here. + * ext/gio/gstgio.c: (plugin_init): + * ext/gio/gstgiostreamsink.c: (gst_gio_stream_sink_base_init), + (gst_gio_stream_sink_class_init), (gst_gio_stream_sink_init), + (gst_gio_stream_sink_finalize), (gst_gio_stream_sink_set_property), + (gst_gio_stream_sink_get_property): + * ext/gio/gstgiostreamsink.h: + * ext/gio/gstgiostreamsrc.c: (gst_gio_stream_src_base_init), + (gst_gio_stream_src_class_init), (gst_gio_stream_src_init), + (gst_gio_stream_src_finalize), (gst_gio_stream_src_set_property), + (gst_gio_stream_src_get_property): + * ext/gio/gstgiostreamsrc.h: + Implement GstGioStreamSink and GstGioStreamSrc that have a property + to set the GInputStream/GOutputStream that should be used. + * tests/check/Makefile.am: + * tests/check/pipelines/.cvsignore: + * tests/check/pipelines/gio.c: (message_handler), (GST_START_TEST), + (gio_testsuite), (main): + Add unit test for giostreamsrc and giostreamsink. + +2007-11-07 11:48:09 +0000 Sebastian Dröge + + ext/gio/gstgio.c: Remove nowadays unnecessary workaround for a crash. + Original commit message from CVS: + * ext/gio/gstgio.c: (plugin_init): + Remove nowadays unnecessary workaround for a crash. + * ext/gio/gstgiosink.c: (gst_gio_sink_finalize), + (gst_gio_sink_start), (gst_gio_sink_stop), + (gst_gio_sink_unlock_stop): + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.c: (gst_gio_src_finalize), (gst_gio_src_start), + (gst_gio_src_stop), (gst_gio_src_unlock_stop): + * ext/gio/gstgiosrc.h: + Make the finalize function safer, clean up everything that could stay + around. + Reset the cancellable instead of creating a new one after cancelling + some operation. + Don't store the GFile in the element, it's only necessary for creating + the streams. + +2007-11-06 12:23:35 +0000 Sebastian Dröge + + gst/spectrum/demo-audiotest.c: Use autoaudiosink instead of alsasink and use a sine wave. + Original commit message from CVS: + * gst/spectrum/demo-audiotest.c: (main): + Use autoaudiosink instead of alsasink and use a sine wave. + * gst/spectrum/gstspectrum.c: + Fix the magnitude calculation. + +2007-11-04 11:04:28 +0000 Ole André Vadla Ravnås + + gst-libs/gst/dshow/gstdshowfakesink.*: Fix crasher in constructor due to the base class's constructor not necessarily... + Original commit message from CVS: + Patch by: Ole André Vadla Ravnås + * gst-libs/gst/dshow/gstdshowfakesink.cpp: + (CDshowFakeSink.CDshowFakeSink): + * gst-libs/gst/dshow/gstdshowfakesink.h: (CDshowFakeSink.m_hres): + Fix crasher in constructor due to the base class's constructor + not necessarily being NULL-safe (depends on the SDK version used + apparently; #492406). + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: (gst_dshowaudiosrc_prepare): + * sys/dshowsrcwrapper/gstdshowvideosrc.c: (gst_dshowvideosrc_set_caps): + Fix a couple of MSVC compiler warnings (#492406). + +2007-11-03 19:50:11 +0000 Sebastian Dröge + + gst/equalizer/: Allow setting 0 as bandwidth and handle this correctly. + Original commit message from CVS: + * gst/equalizer/demo.c: (main): + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_band_class_init), (setup_filter): + Allow setting 0 as bandwidth and handle this correctly. + Also handle a bandwidth of rate/2 properly. + * gst/equalizer/gstiirequalizernbands.c: + (gst_iir_equalizer_nbands_class_init): + Make it possible to generate a N-band equalizer with 1 bands. The + previous limit of 2 was caused by a nowadays replaced calculation + doing a division by zero if number of bands was 1. + +2007-11-02 21:45:38 +0000 Ole André Vadla Ravnås + + gst/rtpmanager/gstrtpsession.c: Fix bad function signatures (#492798). + Original commit message from CVS: + Patch by: Ole André Vadla Ravnås + * gst/rtpmanager/gstrtpsession.c: + Fix bad function signatures (#492798). + +2007-11-02 16:50:42 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + * ext/metadata/metadataparseexif.c: + * ext/metadata/metadataparseexif.h: + * ext/metadata/metadataparseiptc.c: + * ext/metadata/metadataparseiptc.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsepng.c: + * ext/metadata/metadataparsepng.h: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadataparsexmp.c: + * ext/metadata/metadataparsexmp.h: + Added support for PNG/XMP. Indentation. And fixed pull mode to parse the file. + Original commit message from CVS: + Added support for PNG/XMP. Indentation. And fixed pull mode to parse the file. + +2007-11-02 12:03:04 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + Now metadataparse works in push or pull mode. + Original commit message from CVS: + Now metadataparse works in push or pull mode. + +2007-11-01 16:04:29 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/metadata/Makefile.am: + * ext/metadata/metadataparseexif.c: + * ext/metadata/metadataparseiptc.c: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparseutil.c: + * ext/metadata/metadataparseutil.h: + * ext/metadata/metadataparsexmp.c: + * ext/metadata/metadataparsexmp.h: + Some XMP stuff added. + Original commit message from CVS: + Some XMP stuff added. + +2007-10-31 16:21:02 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataparseexif.c: + * ext/metadata/metadataparseexif.h: + * ext/metadata/metadataparseiptc.c: + * ext/metadata/metadataparseiptc.h: + * ext/metadata/metadataparsexmp.c: + * ext/metadata/metadataparsexmp.h: + Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the same way (look at bug #486659). + Original commit message from CVS: + Now sending iptc tag in whole chunk. Ready to also send exif and xmp in the same way (look at bug #486659). + +2007-10-31 14:44:55 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.c: Some refactoring in RAW encoding + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + Some refactoring in RAW encoding + +2007-10-31 14:09:25 +0000 Thijs Vermeir + + gst/librfb/: Added copyrect encoding + Original commit message from CVS: + * gst/librfb/d3des.h: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/gstrfbsrc.h: + * gst/librfb/rfbbuffer.h: + * gst/librfb/rfbcontext.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + * gst/librfb/rfbutil.h: + * gst/librfb/vncauth.h: + Added copyrect encoding + +2007-10-31 13:31:08 +0000 Zaheer Abbas Merali + + sys/dvb/camswclient.c: Warn on failed write. + Original commit message from CVS: + * sys/dvb/camswclient.c: + Warn on failed write. + +2007-10-30 21:37:49 +0000 Sebastian Dröge + + gst/equalizer/: Add small demo application based on the spectrum demo applications that gets white noise as input, pu... + Original commit message from CVS: + * gst/equalizer/Makefile.am: + * gst/equalizer/demo.c: (on_window_destroy), (on_configure_event), + (on_gain_changed), (on_bandwidth_changed), (on_freq_changed), + (draw_spectrum), (message_handler), (main): + Add small demo application based on the spectrum demo applications + that gets white noise as input, pushes it through an equalizer and + paints the spectrum. For every equalizer band it's possible to set + gain, bandwidth and frequency. + * gst/equalizer/gstiirequalizer.c: (setup_filter): + Add some guarding against too large or too small frequencies and + bandwidths. Also improve debugging a bit. + +2007-10-30 21:18:45 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.c: Replace filters with a bit better filters for which we can actually find documentati... + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_band_set_property), + (gst_iir_equalizer_band_get_property), + (gst_iir_equalizer_band_class_init), (arg_to_scale), + (setup_filter), (gst_iir_equalizer_compute_frequencies): + Replace filters with a bit better filters for which we can actually + find documentation, which don't change anything on zero gain, etc. + Make the frequency property of the bands writable, rename the + band-width property to bandwidth and change the meaning to the + frequency difference between bandedges, change the meaning of the + gain property to dB instead of a weird scale between -1 and 1 that + has no real meaning. + +2007-10-30 20:55:27 +0000 Stefan Kost + + sys/dvb/dvbbasebin.c: Fix the build. + Original commit message from CVS: + * sys/dvb/dvbbasebin.c: + Fix the build. + +2007-10-30 18:21:22 +0000 Edgard Lima + + * ChangeLog: + * ext/metadata/.gitignore: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, tags-extract=true/false" and changed prio... + Original commit message from CVS: + Changed kclass to "Parser/Extracter/Metadata", changed caps to "image/jpeg, tags-extract=true/false" and changed priority to GST_RANK_PRIMARY+1. Also, srcpad can only work in push mode until fixed to also work in pull mode. + +2007-10-30 12:49:04 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/metadata/Makefile.am: + * ext/metadata/gstmetadata.c: + * ext/metadata/gstmetadataparse.c: + * ext/metadata/gstmetadataparse.h: + * ext/metadata/metadataparse.c: + * ext/metadata/metadataparse.h: + * ext/metadata/metadataparseexif.c: + * ext/metadata/metadataparseexif.h: + * ext/metadata/metadataparseiptc.c: + * ext/metadata/metadataparseiptc.h: + * ext/metadata/metadataparsejpeg.c: + * ext/metadata/metadataparsejpeg.h: + * ext/metadata/metadataparsexmp.c: + * ext/metadata/metadataparsexmp.h: + Created new plugin ('medadata') and element ('metadataparse') that extract metadata from images (look at bug #486659). + Original commit message from CVS: + Created new plugin ('medadata') and element ('metadataparse') that extract metadata from images (look at bug #486659). + +2007-10-29 15:54:04 +0000 Zaheer Abbas Merali + + sys/dvb/dvbbasebin.c: Uncomment the line that sets the pid filter. Wrong way to work-around driver issues. + Original commit message from CVS: + * sys/dvb/dvbbasebin.c: + Uncomment the line that sets the pid filter. Wrong way to + work-around driver issues. + +2007-10-28 15:22:06 +0000 Tim-Philipp Müller + + ext/faac/gstfaac.c: Fix bitrate ranges and change enum nick for low complexity profile from LOW to LC for consistency... + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_profile_get_type), + (gst_faac_class_init), (gst_faac_init): + Fix bitrate ranges and change enum nick for low complexity + profile from LOW to LC for consistency (#490060). + +2007-10-27 16:04:48 +0000 Tim-Philipp Müller + + gst/interleave/interleave.c: Let's not call every request pad we create "sink%d", that'll create problems if there's ... + Original commit message from CVS: + * gst/interleave/interleave.c: (gst_interleave_request_new_pad): + Let's not call every request pad we create "sink%d", that'll + create problems if there's to be more than one pad. Fixes #490682. + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/interleave.c: + Add unit test for the above. + +2007-10-27 08:20:59 +0000 Julien Moutte + + gst/mpeg4videoparse/mpeg4videoparse.*: Improved version not damaging headers using a simple state machine. + Original commit message from CVS: + 2007-10-27 Julien MOUTTE + * gst/mpeg4videoparse/mpeg4videoparse.c: + (gst_mpeg4vparse_align), + (gst_mpeg4vparse_drain), (gst_mpeg4vparse_chain), + (gst_mpeg4vparse_sink_setcaps), (gst_mpeg4vparse_sink_event), + (gst_mpeg4vparse_cleanup), (gst_mpeg4vparse_change_state), + (gst_mpeg4vparse_dispose), (gst_mpeg4vparse_base_init), + (gst_mpeg4vparse_class_init), (gst_mpeg4vparse_init), + (plugin_init): + * gst/mpeg4videoparse/mpeg4videoparse.h: Improved version not + damaging headers using a simple state machine. + +2007-10-26 17:18:41 +0000 Tim-Philipp Müller + + ext/x264/gstx264enc.c: Fix build against the libx264 version that ships with debian stable. + Original commit message from CVS: + * ext/x264/gstx264enc.c: + Fix build against the libx264 version that ships with debian stable. + +2007-10-26 16:08:04 +0000 Julien Moutte + + Add a simple MPEG4 ES parser. + Original commit message from CVS: + 2007-10-26 Julien MOUTTE + * configure.ac: + * gst/mpeg4videoparse/Makefile.am: + * gst/mpeg4videoparse/mpeg4videoparse.c: + (gst_mpeg4vparse_drain), + (gst_mpeg4vparse_chain), (gst_mpeg4vparse_sink_setcaps), + (gst_mpeg4vparse_sink_event), (gst_mpeg4vparse_cleanup), + (gst_mpeg4vparse_change_state), (gst_mpeg4vparse_dispose), + (gst_mpeg4vparse_base_init), (gst_mpeg4vparse_class_init), + (gst_mpeg4vparse_init), (plugin_init): + * gst/mpeg4videoparse/mpeg4videoparse.h: Add a simple MPEG4 ES + parser. + +2007-10-25 23:42:52 +0000 David Schleef + + Improve documentation, write some tests for multifilesrc/sink for upcoming ->good review. + Original commit message from CVS: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesrc.c: + * tests/check/Makefile.am: + * tests/check/elements/multifile.c: + Improve documentation, write some tests for multifilesrc/sink + for upcoming ->good review. + +2007-10-23 13:08:26 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Actually use the code-rate-hp parameter for DVB-S. + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: + Actually use the code-rate-hp parameter for DVB-S. + It turns out setting to AUTO does not always work ( + especially in diseq situations). Set by default to + FEC_AUTO. + +2007-10-22 15:45:49 +0000 Julien Moutte + + gst/flv/gstflvparse.c: Don't emit no-more-pads for single pad scenarios as the header is definitely not reliable. We ... + Original commit message from CVS: + 2007-10-22 Julien MOUTTE + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video), (gst_flv_parse_tag_type): Don't + emit no-more-pads for single pad scenarios as the header + is definitely not reliable. We emit them for 2 pads scenarios + though to speed up media discovery. + +2007-10-19 16:20:53 +0000 Zaheer Abbas Merali + + sys/dvb/dvbbasebin.c: Added proxy property of diseqc-source + Original commit message from CVS: + * sys/dvb/dvbbasebin.c: + Added proxy property of diseqc-source + +2007-10-18 06:20:21 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.c: Add a missing break. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_band_set_property): + Add a missing break. + +2007-10-18 06:14:42 +0000 Sebastian Dröge + + gst/equalizer/gstiirequalizer.*: Move bandwidth property to the separate bands and add float64 support. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_band_set_property), + (gst_iir_equalizer_band_get_property), + (gst_iir_equalizer_band_class_init), (gst_iir_equalizer_band_init), + (gst_iir_equalizer_band_get_type), (gst_iir_equalizer_class_init), + (setup_filter), (gst_iir_equalizer_setup): + * gst/equalizer/gstiirequalizer.h: + Move bandwidth property to the separate bands and add float64 support. + +2007-10-17 14:43:25 +0000 Tim-Philipp Müller + + ext/cdaudio/Makefile.am: Add another missing GST_LIBS. + Original commit message from CVS: + * ext/cdaudio/Makefile.am: + Add another missing GST_LIBS. + +2007-10-17 14:33:03 +0000 Richard Hult + + gst/dvdspu/Makefile.am: Fix LIBS - we need to link against libgstreamer. + Original commit message from CVS: + Patch by: Richard Hult + * gst/dvdspu/Makefile.am: + Fix LIBS - we need to link against libgstreamer. + +2007-10-17 10:33:43 +0000 Tim-Philipp Müller + + sys/dvb/: Fix some warnings. + Original commit message from CVS: + * sys/dvb/camapplication.c: + * sys/dvb/camresourcemanager.c: + Fix some warnings. + +2007-10-16 19:24:31 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.c: Add the set encodings client message + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + Add the set encodings client message + +2007-10-16 18:33:44 +0000 Thijs Vermeir + + gst/librfb/: remove the rfbbytestream dead code + Original commit message from CVS: + * gst/librfb/Makefile.am: + * gst/librfb/rfb.h: + * gst/librfb/rfbbytestream.c: + * gst/librfb/rfbbytestream.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + remove the rfbbytestream dead code + +2007-10-16 17:38:05 +0000 Alessandro Decina + + sys/dvb/: Integrate SoC work done by Alessandro for the Freevo project. + Original commit message from CVS: + patch by: Alessandro Decina + * sys/dvb/Makefile.am: + * sys/dvb/cam.c: + * sys/dvb/cam.h: + * sys/dvb/camapplication.c: + * sys/dvb/camapplication.h: + * sys/dvb/camapplicationinfo.c: + * sys/dvb/camapplicationinfo.h: + * sys/dvb/camconditionalaccess.c: + * sys/dvb/camconditionalaccess.h: + * sys/dvb/camdevice.c: + * sys/dvb/camdevice.h: + * sys/dvb/camresourcemanager.c: + * sys/dvb/camresourcemanager.h: + * sys/dvb/camsession.c: + * sys/dvb/camsession.h: + * sys/dvb/camswclient.c: + * sys/dvb/camswclient.h: + * sys/dvb/camtransport.c: + * sys/dvb/camtransport.h: + * sys/dvb/camutils.c: + * sys/dvb/camutils.h: + * sys/dvb/dvbbasebin.c: + * sys/dvb/dvbbasebin.h: + * sys/dvb/gstdvb.c: + * sys/dvb/gstdvbsrc.c: + * sys/dvb/gstdvbsrc.h: + Integrate SoC work done by Alessandro for the Freevo project. + Adds cam support to the dvb stack in GStreamer and a new + element (actually a bin) called dvbbasebin that integrates + dvbsrc and mpegtsparse to a) handle decryption and b) allow + acquiring multiple channels on same transponder without + knowing pid numbers. + +2007-10-16 16:51:23 +0000 Alessandro Decina + + gst/mpegtsparse/: Add request pad for getting the full transport stream coming in. + Original commit message from CVS: + patch by: Alessandro Decina + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + * gst/mpegtsparse/mpegtsparse.h: + Add request pad for getting the full transport stream coming in. + +2007-10-14 17:22:18 +0000 Sebastian Dröge + + configure.ac: Update the highest allowed neon version from 0.26.99 to 0.27.99. + Original commit message from CVS: + * configure.ac: + Update the highest allowed neon version from 0.26.99 to 0.27.99. + No code changes are required to work with the newest neon version. + +2007-10-10 11:44:01 +0000 Tim-Philipp Müller + + configure.ac: Require core CVS. This is implicit in the -base CVS requirement already, so we might just well spell i... + Original commit message from CVS: + * configure.ac: + Require core CVS. This is implicit in the -base CVS + requirement already, so we might just well spell it + out. Also, we do need at least 0.10.14 for + gst_element_class_set_details_simple(). Make check + for gmyth a bit more restrictive so things don't break + if the next version changes API. + * ext/alsaspdif/alsaspdifsink.c: + Work around alsa alloca macros triggering 'always evaluates to + true' warnings with gcc-4.2 and fix compilation with gcc-4.2. + Also don't leak the device string. + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/soundtouch/gstpitch.cc: + * gst/modplug/gstmodplug.cc: + Fix compilation with g++4.2 and -Wall -Werror (also needs plugin + define fix from core CVS). Fixes #462737. + +2007-10-09 10:01:39 +0000 Laurent Glayal + + gst/rtpmanager/gstrtpbin.c: Fix memleak. Fixes #484990. + Original commit message from CVS: + Patch by: Laurent Glayal + * gst/rtpmanager/gstrtpbin.c: (create_stream), + (gst_rtp_bin_class_init): + Fix memleak. Fixes #484990. + +2007-10-08 17:46:45 +0000 Jan Schmidt + + gst/: Fix compiler warnings shown by Forte. + Original commit message from CVS: + * gst/librfb/rfbbuffer.c: (rfb_buffer_new_and_alloc): + * gst/librfb/rfbbuffer.h: + * gst/librfb/rfbdecoder.c: (rfb_socket_get_buffer): + * gst/mpegvideoparse/mpegvideoparse.c: (gst_mpegvideoparse_chain): + * gst/nsf/nes6502.c: (nes6502_execute): + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps): + * gst/real/gstrealvideodec.c: (open_library): + * gst/real/gstrealvideodec.h: + * gst/rtpmanager/gstrtpsession.c: (create_recv_rtp_sink), + (create_recv_rtcp_sink), (create_send_rtp_sink): + Fix compiler warnings shown by Forte. + +2007-10-08 10:39:35 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Fix caps refcounting for payload maps. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (get_pt_map), + (gst_rtp_bin_clear_pt_map), (gst_rtp_bin_class_init): + Fix caps refcounting for payload maps. + When clearing payload maps, also clear sessions and streams payload + maps. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_get_caps), + (gst_rtp_pt_demux_clear_pt_map), (gst_rtp_pt_demux_chain), + (find_pad_for_pt): + Implement clearing the payload map. + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_send_rtp_sink): + Forward flush events instead of leaking them. + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_rtcp_sink_event): + Correctly refcount events before pushing them. + +2007-10-08 06:07:22 +0000 Sebastian Dröge + + ext/gio/gstgio.c: Use GIO function to get a list of supported URI schemes instead of hard coding something. + Original commit message from CVS: + * ext/gio/gstgio.c: (gst_gio_get_supported_protocols): + Use GIO function to get a list of supported URI schemes instead of + hard coding something. + +2007-10-05 17:26:14 +0000 Wim Taymans + + gst/rtpmanager/rtpsession.c: When reconsidering RTCP timeouts, set the next timeout against the last report time inst... + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (rtp_session_next_timeout), + When reconsidering RTCP timeouts, set the next timeout against the last + report time instead of the current clock time so that we don't end up + reconsidering forever. + +2007-10-05 12:07:37 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Only peek at the tail element instead of popping it off, which allows us to grea... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + Only peek at the tail element instead of popping it off, which allows + us to greatly simplify things when the tail element changes. + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_event_recv_rtp_sink): + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_sink_event): + Forward FLUSH events instead of leaking them. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_reset_skew), + (calculate_skew), (rtp_jitter_buffer_insert): + * gst/rtpmanager/rtpjitterbuffer.h: + Remove the tail-changed callback in favour of a simple boolean when we + insert a buffer in the queue. + Add method to peek the tail of the buffer. + +2007-10-05 08:51:44 +0000 Gautier Portet + + gst/xingheader/gstxingmux.c: The size of the Xing header is actually 417 as it's rounded to the next smaller integer.... + Original commit message from CVS: + Patch by: Gautier Portet + * gst/xingheader/gstxingmux.c: + The size of the Xing header is actually 417 as it's rounded to the + next smaller integer. Fixes #397759. + * gst/xingheader/gstxingmux.c: (xing_generate_header), + (xing_push_header): + Some random cleanup, add FIXMEs and TODOs and check if the newsegment + event to the beginning was successful before pushing the header again. + +2007-10-05 08:05:14 +0000 Wai-Ming Ho + + gst/mpegtsparse/mpegtspacketizer.c: Don't skip PAT with version number 0. Fixes #483400. + Original commit message from CVS: + Patch by: Wai-Ming Ho + * gst/mpegtsparse/mpegtspacketizer.c: + (mpegts_packetizer_stream_new): + Don't skip PAT with version number 0. Fixes #483400. + * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_apply_pat): + Make all values above 0 mark a referenced program as they can be + incremented and only 1 had marked a referenced program before, causing + actually referenced programs to be unreferenced. + +2007-10-02 10:29:46 +0000 Wim Taymans + + gst/sdp/gstsdpdemux.h: Change signature of pt to fix compilation on some platforms. + Original commit message from CVS: + * gst/sdp/gstsdpdemux.h: + Change signature of pt to fix compilation on some platforms. + +2007-10-02 10:27:45 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Remove some old unused variables. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_flush_start), + (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_change_state), (apply_offset), + (gst_rtp_jitter_buffer_loop): + Remove some old unused variables. + Don't add the latency to the skew corrected timestamp, latency is only + used to sync against the clock. + Improve debugging. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), + (rtp_jitter_buffer_reset_skew), (calculate_skew): + * gst/rtpmanager/rtpjitterbuffer.h: + Handle case where server timestamp goes backwards or wildly jumps by + temporarily pausing the skew correction. + Improve debugging. + +2007-10-02 10:12:40 +0000 Wim Taymans + + gst/sdp/Makefile.am: Forgot to commit makefile. + Original commit message from CVS: + * gst/sdp/Makefile.am: + Forgot to commit makefile. + +2007-10-02 07:43:57 +0000 Sebastian Dröge + + ext/gio/gstgiosink.c: Update to API changes in GIO. + Original commit message from CVS: + * ext/gio/gstgiosink.c: (gst_gio_sink_start): + Update to API changes in GIO. + +2007-10-01 14:01:40 +0000 Wim Taymans + + gst/sdp/gstsdpdemux.c: Use new function in -base to get the default clock-rate. + Original commit message from CVS: + * gst/sdp/gstsdpdemux.c: (gst_sdp_demux_media_to_caps): + Use new function in -base to get the default clock-rate. + +2007-10-01 11:43:09 +0000 Wim Taymans + + Added SDP demuxer element. Fixes #426657. + Original commit message from CVS: + * configure.ac: + * gst/sdp/gstsdpdemux.c: (_do_init), (gst_sdp_demux_base_init), + (gst_sdp_demux_class_init), (gst_sdp_demux_init), + (gst_sdp_demux_finalize), (gst_sdp_demux_set_property), + (gst_sdp_demux_get_property), (find_stream_by_id), + (find_stream_by_pt), (find_stream_by_udpsrc), (find_stream), + (gst_sdp_demux_stream_free), (gst_sdp_demux_create_stream), + (gst_sdp_demux_cleanup), (get_default_rate_for_pt), + (gst_sdp_demux_parse_rtpmap), (gst_sdp_demux_media_to_caps), + (new_session_pad), (request_pt_map), (gst_sdp_demux_do_stream_eos), + (on_bye_ssrc), (on_timeout), (gst_sdp_demux_configure_manager), + (gst_sdp_demux_stream_configure_udp), + (gst_sdp_demux_stream_configure_udp_sink), + (gst_sdp_demux_combine_flows), (gst_sdp_demux_stream_push_event), + (gst_sdp_demux_handle_message), (gst_sdp_demux_start), + (gst_sdp_demux_sink_event), (gst_sdp_demux_sink_chain), + (gst_sdp_demux_change_state): + * gst/sdp/gstsdpdemux.h: + * gst/sdp/gstsdpelem.c: (plugin_init): + Added SDP demuxer element. Fixes #426657. + +2007-10-01 09:21:19 +0000 mutex at runbox dot com + + gst/mpegtsparse/: Remove useless src pad that only results in not linked errors, fix a broken pointer dereference and... + Original commit message from CVS: + Patch by: mutex at runbox dot com + * gst/mpegtsparse/mpegtspacketizer.c: + (mpegts_packetizer_parse_adaptation_field_control): + * gst/mpegtsparse/mpegtsparse.c: (mpegts_parse_base_init), + (mpegts_parse_init), (mpegts_parse_push): + * gst/mpegtsparse/mpegtsparse.h: + Remove useless src pad that only results in not linked errors, + fix a broken pointer dereference and make MAX_CONTINUITY constant + conform to the standard to stop outputting corrupted data. + Fixes #481276, #481279. + +2007-09-29 19:36:34 +0000 Tim-Philipp Müller + + ext/mythtv/gstmythtvsrc.c: Re-apply docs patch from #468039; fix tab. + Original commit message from CVS: + * ext/mythtv/gstmythtvsrc.c: + Re-apply docs patch from #468039; fix tab. + * gst/mpegtsparse/.cvsignore: + Ignore marshaller files generated at build time. + +2007-09-29 07:01:55 +0000 Sebastian Dröge + + ext/gio/: Some minor cleanup and allow setting the location only when the element is not playing or paused. + Original commit message from CVS: + * ext/gio/gstgiosink.c: (gst_gio_sink_base_init), + (gst_gio_sink_set_property), (gst_gio_sink_render): + * ext/gio/gstgiosrc.c: (gst_gio_src_base_init), + (gst_gio_src_set_property): + Some minor cleanup and allow setting the location only when the + element is not playing or paused. + +2007-09-29 05:26:54 +0000 Sebastian Dröge + + configure.ac: Update gio's pkg-config file name as currently in SVN. + Original commit message from CVS: + * configure.ac: + Update gio's pkg-config file name as currently in SVN. + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_location): + Remove special casing for a NULL query string. g_strjoin won't add + the separator if there's only one string. + +2007-09-28 14:51:58 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Fix crasher in dispose. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (free_client): + Fix crasher in dispose. + * gst/rtpmanager/rtpjitterbuffer.c: (calculate_skew): + Handle cases where input buffers have no timestamps so that no clock + skew can be calculated, in this case interpollate timestamps based on + rtp timestamp and assume a 0 clock skew. + +2007-09-28 11:17:35 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Remove jitter correction code, it's now in the lower level object. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: (apply_latency), + (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query): + Remove jitter correction code, it's now in the lower level object. + Use new -core method for doing a peer query. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), + (calculate_skew), (rtp_jitter_buffer_insert): + * gst/rtpmanager/rtpjitterbuffer.h: + Move jitter correction to the lowlevel jitterbuffer. + Increase the max window size. + When filling the window, already start estimating the skew using a + parabolic weighting factor so that we have a much better startup + behaviour that gets more accurate with the more samples we have. + Increase the default weighting factor for the steady state to get + smoother timestamps. + +2007-09-28 11:07:34 +0000 Sebastian Dröge + + ext/neon/gstneonhttpsrc.c: Now that we require libneon >= 0.26 remove the neon 0.25 backward compatibility stuff. Als... + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_set_proxy), + (gst_neonhttp_src_send_request_and_redirect): + Now that we require libneon >= 0.26 remove the neon 0.25 backward + compatibility stuff. Also fix the default location. + +2007-09-28 10:51:13 +0000 Wim Taymans + + configure.ac: We require libneon >= 26 now for the query field in ne_uri. + Original commit message from CVS: + * configure.ac: + We require libneon >= 26 now for the query field in ne_uri. + +2007-09-28 09:29:09 +0000 Wouter Cloetens + + ext/neon/gstneonhttpsrc.*: Don't discard GET parameters from URL if existing. + Original commit message from CVS: + Patch by: Wouter Cloetens + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_dispose), + (gst_neonhttp_src_set_location), + (gst_neonhttp_src_send_request_and_redirect): + * ext/neon/gstneonhttpsrc.h: + Don't discard GET parameters from URL if existing. + Fixes #481200. + +2007-09-27 14:52:58 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.*: Added a property for incremental screen updates + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/gstrfbsrc.h: + Added a property for incremental screen updates + +2007-09-27 13:02:58 +0000 Tim-Philipp Müller + + ext/xvid/gstxvidenc.*: Remove superfluous 'frame-encoded' signal (people can use an upstream identity's 'handoff' sig... + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: + * ext/xvid/gstxvidenc.h: + Remove superfluous 'frame-encoded' signal (people can + use an upstream identity's 'handoff' signal or a pad + probe for this if they must know). + +2007-09-27 10:06:23 +0000 Julien Moutte + + gst/flv/gstflvparse.c: I got it wrong again, audio rate was not detected correctly in all cases. + Original commit message from CVS: + 2007-09-27 Julien MOUTTE + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): I got it wrong again, audio rate + was not detected correctly in all cases. + +2007-09-26 20:08:28 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Fix cleanup crasher. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_dispose), + (gst_rtp_bin_finalize): + Fix cleanup crasher. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), + (calculate_skew): + * gst/rtpmanager/rtpjitterbuffer.h: + Dynamically adjust the skew calculation window so that we calculate it + over a period of around 2 seconds. + +2007-09-26 16:44:42 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: fix bug from generic/states.gdb + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + fix bug from generic/states.gdb + +2007-09-26 16:30:50 +0000 Julien Moutte + + gst/flv/gstflvparse.c: codec_data is needed for every tag not just the first one. (Fix a stupid bug i introduced with... + Original commit message from CVS: + 2007-09-26 Julien MOUTTE + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): codec_data is needed for every tag + not just the first one. (Fix a stupid bug i introduced without + testing) + +2007-09-26 11:17:08 +0000 Julien Moutte + + gst/flv/gstflvparse.c: Fix bit masks operations to be sure we detect the codec_tags and sample rates correctly. + Original commit message from CVS: + 2007-09-26 Julien MOUTTE + * gst/flv/gstflvparse.c: (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): Fix bit masks operations to be + sure we detect the codec_tags and sample rates correctly. + Fix raw audio caps generation. + +2007-09-24 10:53:37 +0000 Stefan Kost + + Massive leak fixing, plus code cleanups. + Original commit message from CVS: + * ext/audioresample/gstaudioresample.c: + * ext/x264/gstx264enc.c: + * gst/dvdspu/gstdvdspu.c: + * gst/dvdspu/gstdvdspu.h: + * gst/festival/gstfestival.c: + * gst/h264parse/gsth264parse.c: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtsparse.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesrc.c: + * gst/nuvdemux/gstnuvdemux.c: + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: + * sys/dshowsrcwrapper/gstdshowvideosrc.c: + * sys/vcd/vcdsrc.c: + Massive leak fixing, plus code cleanups. + +2007-09-22 18:31:17 +0000 Thomas Vander Stichele + + po/LINGUAS: Added translations. + Original commit message from CVS: + * po/LINGUAS: + Added translations. + +2007-09-22 18:29:49 +0000 Thomas Vander Stichele + + po/pl.po: Added Polish translation. + Original commit message from CVS: + translated by: Jakub Bogusz + * po/pl.po: + Added Polish translation. + +2007-09-22 18:29:13 +0000 Thomas Vander Stichele + + po/fi.po: Added Finnish translation. + Original commit message from CVS: + translated by: Ilkka Tuohela + * po/fi.po: + Added Finnish translation. + +2007-09-22 18:28:30 +0000 Thomas Vander Stichele + + po/es.po: Added Spanish translation. + Original commit message from CVS: + translated by: Jorge González González + * po/es.po: + Added Spanish translation. + +2007-09-22 18:27:45 +0000 Thomas Vander Stichele + + po/bg.po: Added Bulgarian translation. + Original commit message from CVS: + translated by: Alexander Shopov + * po/bg.po: + Added Bulgarian translation. + +2007-09-21 18:00:24 +0000 Sebastian Dröge + + docs/plugins/gst-plugins-bad-plugins.hierarchy: Update hierarchy. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + Update hierarchy. + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.h: + Mark private fields of the instance structs private. + +2007-09-21 17:31:05 +0000 Sebastian Dröge + + docs/plugins/: Add the GIO plugin to the docs and do a make update while doing that. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gio.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Add the GIO plugin to the docs and do a make update + while doing that. + * ext/gio/gstgiosrc.c: (gst_gio_src_start): + Fix a small memleak. + +2007-09-21 17:07:56 +0000 René Stadler + + Add a GIO/GVFS plugin with source and sink elements. This will only be enabled when --enable-experimental is given to... + Original commit message from CVS: + Patch by: René Stadler + * configure.ac: + * ext/Makefile.am: + * ext/gio/Makefile.am: + * ext/gio/gstgio.c: (gst_gio_error), (gst_gio_seek), + (gst_gio_get_supported_protocols), + (gst_gio_uri_handler_get_type_sink), + (gst_gio_uri_handler_get_type_src), + (gst_gio_uri_handler_get_protocols), (gst_gio_uri_handler_get_uri), + (gst_gio_uri_handler_set_uri), (gst_gio_uri_handler_init), + (gst_gio_uri_handler_do_init), (plugin_init): + * ext/gio/gstgio.h: + * ext/gio/gstgiosink.c: (gst_gio_sink_base_init), + (gst_gio_sink_class_init), (gst_gio_sink_init), + (gst_gio_sink_finalize), (gst_gio_sink_set_property), + (gst_gio_sink_get_property), (gst_gio_sink_start), + (gst_gio_sink_stop), (gst_gio_sink_unlock), + (gst_gio_sink_unlock_stop), (gst_gio_sink_event), + (gst_gio_sink_render), (gst_gio_sink_query): + * ext/gio/gstgiosink.h: + * ext/gio/gstgiosrc.c: (gst_gio_src_base_init), + (gst_gio_src_class_init), (gst_gio_src_init), + (gst_gio_src_finalize), (gst_gio_src_set_property), + (gst_gio_src_get_property), (gst_gio_src_start), + (gst_gio_src_stop), (gst_gio_src_get_size), + (gst_gio_src_is_seekable), (gst_gio_src_unlock), + (gst_gio_src_unlock_stop), (gst_gio_src_check_get_range), + (gst_gio_src_create): + * ext/gio/gstgiosrc.h: + Add a GIO/GVFS plugin with source and sink elements. This will + only be enabled when --enable-experimental is given to configure + for now as the GIO API is not stable yet. Fixes #476916. + +2007-09-21 15:49:24 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file with various new plug-ins + Original commit message from CVS: + update spec file with various new plug-ins + +2007-09-21 14:55:19 +0000 Thijs Vermeir + + gst/librfb/: Added offset-x, offset-y, width and height property for selecting a region from the screen + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Added offset-x, offset-y, width and height property + for selecting a region from the screen + +2007-09-21 10:27:02 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: Minimum raw encoding is working now + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + Minimum raw encoding is working now + * gst/librfb/rfbdecoder.c: + fix address while reading from stream + +2007-09-20 20:40:05 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: raw encoding is working, but it looks like the ffmpegcolorspace plugin can't handle high reso... + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + raw encoding is working, but it looks like the + ffmpegcolorspace plugin can't handle high resolutions + +2007-09-20 18:30:35 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: bpp, depth and endianness are now set from the stream. + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + bpp, depth and endianness are now set from the + stream. + +2007-09-20 17:38:10 +0000 Wim Taymans + + examples/app/appsrc_ex.c: Fix compilation after changing the name of a method. + Original commit message from CVS: + * examples/app/appsrc_ex.c: (main): + Fix compilation after changing the name of a method. + +2007-09-20 15:06:23 +0000 Stefan Kost + + Fix memory leaks. More to come. + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * gst/mpegvideoparse/mpegvideoparse.c: + Fix memory leaks. More to come. + * tests/check/Makefile.am: + * tests/check/generic/states.c: + Improved state change unit test. + +2007-09-20 14:34:57 +0000 Wim Taymans + + gst/rtpmanager/: Add notification of active SSRCs to various RTP elements. Fixes #478566. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (on_ssrc_active), (create_session), + (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpsession.c: (on_ssrc_active), + (gst_rtp_session_class_init), (gst_rtp_session_init), + (gst_rtp_session_event_send_rtp_sink): + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (on_ssrc_active), (rtp_session_process_rb): + * gst/rtpmanager/rtpsession.h: + Add notification of active SSRCs to various RTP elements. Fixes #478566. + +2007-09-20 13:59:50 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.*: Add properties, signals and actions to access the element even without linking to the ... + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_marshal_OBJECT__VOID), + (gst_app_sink_class_init), (gst_app_sink_init), + (gst_app_sink_dispose), (gst_app_sink_finalize), + (gst_app_sink_set_property), (gst_app_sink_get_property), + (gst_app_sink_flush_unlocked), (gst_app_sink_start), + (gst_app_sink_event), (gst_app_sink_getcaps), + (gst_app_sink_set_caps), (gst_app_sink_get_caps), + (gst_app_sink_is_eos), (gst_app_sink_pull_preroll), + (gst_app_sink_pull_buffer): + * gst-libs/gst/app/gstappsink.h: + Add properties, signals and actions to access the element even without + linking to the library. + Fix some method names and signatures. + +2007-09-19 21:18:27 +0000 Jonathan Matthew + + ext/faad/gstfaad.c: Don't set channel positions on regular mono and stereo cases. + Original commit message from CVS: + Patch by: Jonathan Matthew + * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst), + (gst_faad_srcgetcaps), (gst_faad_update_caps): + Don't set channel positions on regular mono and stereo cases. + Fixes #476370. + +2007-09-19 20:55:43 +0000 Thijs Vermeir + + gst/librfb/: It is now possible to connect to a vncserver. there are still some issues with the ouput of the screen. ... + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + It is now possible to connect to a vncserver. + there are still some issues with the ouput of + the screen. Looks like some lines are confused + +2007-09-19 18:22:23 +0000 Stefan Kost + + Ignore registries in any format. + Original commit message from CVS: + * docs/plugins/.cvsignore: + * tests/check/.cvsignore: + Ignore registries in any format. + +2007-09-19 13:50:44 +0000 Wim Taymans + + gst/real/gstrealvideodec.*: Don't generate an error for occasional decoding errors. + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), + (open_library), (gst_real_video_dec_init), + (gst_real_video_dec_set_property), + (gst_real_video_dec_get_property), (gst_real_video_dec_class_init): + * gst/real/gstrealvideodec.h: + Don't generate an error for occasional decoding errors. + Add max-errors property. + Error out when we receive max-errors in a row. Fixes #478159. + +2007-09-19 13:06:17 +0000 Thijs Vermeir + + gst/librfb/gstrfbsrc.c: Add password property (write only) + Original commit message from CVS: + * gst/librfb/gstrfbsrc.c: + Add password property (write only) + * gst/librfb/rfbdecoder.c: + Read the reason on failure + Use the password property for authentication + * gst/librfb/rfbdecoder.h: + Add defines for version checking + +2007-09-19 12:50:27 +0000 Sebastian Dröge + + ext/directfb/dfbvideosink.c: When finalizing GstDfbSurface, a subclass of GstBuffer, correctly chain up to the parent... + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy), + (gst_dfbsurface_class_init): + When finalizing GstDfbSurface, a subclass of GstBuffer, correctly + chain up to the parent class to free everything, including caps. + +2007-09-19 12:50:05 +0000 Sebastian Dröge + + ext/directfb/dfbvideosink.c: When finalizing GstDfbSurface, a subclass of GstBuffer, correctly chain up to the parent... + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_surface_destroy), + (gst_dfbsurface_class_init): + When finalizing GstDfbSurface, a subclass of GstBuffer, correctly + chain up to the parent class to free everything, including caps. + +2007-09-19 08:35:13 +0000 Thijs Vermeir + + gst/librfb/: VNC Authentication should be working now temperaly with fake password 'testtest' + Original commit message from CVS: + * gst/librfb/Makefile.am: + * gst/librfb/d3des.c: + * gst/librfb/d3des.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/vncauth.c: + * gst/librfb/vncauth.h: + VNC Authentication should be working now + temperaly with fake password 'testtest' + +2007-09-18 16:32:19 +0000 Thijs Vermeir + + gst/librfb/rfbdecoder.*: Added some documentation about security handling start implementing security handling for rf... + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Added some documentation about security handling + start implementing security handling for rfb 3.3 + +2007-09-18 13:55:06 +0000 Stefan Kost + + gst/spectrum/: Handling window resize. + Original commit message from CVS: + * gst/spectrum/demo-audiotest.c: + * gst/spectrum/demo-osssrc.c: + Handling window resize. + +2007-09-18 11:45:06 +0000 Stefan Kost + + ChangeLog: Add missing newline. + Original commit message from CVS: + * ChangeLog: + Add missing newline. + * gst/librfb/rfbdecoder.c: + Fix the build (missing stdlib.h). + * gst/spectrum/gstspectrum.c: + * gst/spectrum/gstspectrum.h: + Use basetransform segment so that it is correctly managed on flushes + and start/stop. Report message timestamp as stream time, which is what + an application can understand. (Yes these are adapted from wim recent + level element changes) + +2007-09-17 21:12:17 +0000 Thijs Vermeir + + * gst/librfb/gstrfbsrc.c: + * gst/librfb/gstrfbsrc.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + Added a new property for the rfb version + Original commit message from CVS: + Added a new property for the rfb version + +2007-09-17 02:01:41 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Link to the right pads regardless of which one was created first in the ssrc demuxer. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (new_ssrc_pad_found): + Link to the right pads regardless of which one was created first in the + ssrc demuxer. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp), + (gst_rtp_session_chain_recv_rtp), (gst_rtp_session_chain_send_rtp): + * gst/rtpmanager/rtpsource.c: (calculate_jitter): + Improve debugging. + * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc), + (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_finalize), + (gst_rtp_ssrc_demux_sink_event), + (gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain), + (gst_rtp_ssrc_demux_rtcp_chain), + (gst_rtp_ssrc_demux_internal_links): + * gst/rtpmanager/gstrtpssrcdemux.h: + Fix race in creating the RTP and RTCP pads when a new SSRC is detected. + +2007-09-16 19:40:31 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Use lock to protect variable. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_set_property), + (gst_rtp_bin_get_property): + Use lock to protect variable. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_chain), + (convert_rtptime_to_gsttime), (gst_rtp_jitter_buffer_loop): + Reconstruct GST timestamp from RTP timestamps based on measured clock + skew and sync offset. + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_init), + (rtp_jitter_buffer_set_tail_changed), + (rtp_jitter_buffer_set_clock_rate), + (rtp_jitter_buffer_get_clock_rate), (calculate_skew), + (rtp_jitter_buffer_insert), (rtp_jitter_buffer_peek): + * gst/rtpmanager/rtpjitterbuffer.h: + Measure clock skew. + Add callback to be notfied when a new packet was inserted at the tail. + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (calculate_jitter), (rtp_source_send_rtp): + * gst/rtpmanager/rtpsource.h: + Remove clock skew detection, it's move to the jitterbuffer now. + +2007-09-16 07:28:18 +0000 Daniel Charles + + ext/amrwb/gstamrwbenc.*: Add property to control bandmode. Fixes #477306. + Original commit message from CVS: + Patch by: Daniel Charles + * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_bandmode_get_type), + (gst_amrwbenc_set_property), (gst_amrwbenc_get_property), + (gst_amrwbenc_class_init), (gst_amrwbenc_chain): + * ext/amrwb/gstamrwbenc.h: + Add property to control bandmode. Fixes #477306. + +2007-09-15 18:48:03 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Also set NTP base time on new sessions. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session): + Also set NTP base time on new sessions. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_query), + (gst_rtp_jitter_buffer_set_property), + (gst_rtp_jitter_buffer_get_property): + Use the right lock to protect our variables. + Fix some comment. + * gst/rtpmanager/gstrtpsession.c: + (gst_rtp_session_getcaps_send_rtp), + (gst_rtp_session_chain_send_rtp), (create_send_rtp_sink): + Implement getcaps on the sender sinkpad so that payloaders can negotiate + the right SSRC. + +2007-09-12 21:23:47 +0000 Wim Taymans + + gst/rtpmanager/: Various leak fixes. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session), (free_session), + (get_client), (free_client), (gst_rtp_bin_associate), + (free_stream), (gst_rtp_bin_class_init), (gst_rtp_bin_dispose), + (gst_rtp_bin_finalize): + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_rtp_jitter_buffer_finalize): + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_release): + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_finalize), + (gst_rtp_session_set_property), (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_chain_send_rtp): + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_dispose): + * gst/rtpmanager/rtpsession.c: (rtp_session_finalize): + * gst/rtpmanager/rtpsession.h: + Various leak fixes. + +2007-09-12 18:04:32 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Calculate and configure the NTP base time so that we can generate better + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (calc_ntp_ns_base), + (gst_rtp_bin_change_state), (new_payload_found), (create_send_rtp): + Calculate and configure the NTP base time so that we can generate better + NTP times in SR packets. + Set caps on new ghostpad. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop): + Clean debug statement. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_init), (gst_rtp_session_set_property), + (gst_rtp_session_get_property), (get_current_ntp_ns_time), + (rtcp_thread), (gst_rtp_session_event_recv_rtp_sink), + (gst_rtp_session_internal_links), (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink), + (create_send_rtp_sink): + * gst/rtpmanager/gstrtpsession.h: + Add ntp-ns-base property to convert running_time to NTP time. + Handle NEWSEGMENT events on send and recv RTP pads so that we can + calculate the running time and thus NTP time of the packets. + Simplify getting the current NTP time using the pipeline clock. + Implement internal links functions. + Use the buffer timestamp to calculate the NTP time instead of the clock. + * gst/rtpmanager/gstrtpssrcdemux.c: (create_demux_pad_for_ssrc), + (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event), + (gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_rtcp_chain), + (gst_rtp_ssrc_demux_internal_links), + (gst_rtp_ssrc_demux_src_query): + * gst/rtpmanager/gstrtpssrcdemux.h: + Implement internal links function. + Calculate the diff between different streams, this might be used later + to get the inter stream latency. + * gst/rtpmanager/rtpsession.c: (rtp_session_send_rtp): + Simple cleanup. + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (calculate_jitter), (rtp_source_send_rtp), (rtp_source_get_new_sr): + Make the clock skew window a little bigger. + Apply the clock skew to all buffers, not just one with a new timestamp. + Calculate and debug sender clock drift. + Use extended last timestamp to interpollate for SR reports. + +2007-09-12 08:38:22 +0000 Peter Kjellerstedt + + gst/: Printf format fixes (#476128). + Original commit message from CVS: + Patch by: Peter Kjellerstedt + * gst-libs/gst/app/gstappsink.c: + * gst/flv/gstflvdemux.c: + * gst/flv/gstflvparse.c: + * gst/interleave/deinterleave.c: + * gst/switch/gstswitch.c: + Printf format fixes (#476128). + +2007-09-09 19:05:19 +0000 Thomas Green + + ext/neon/gstneonhttpsrc.c: With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO flag if we want ICY streams to b... + Original commit message from CVS: + Patch by: Thomas Green + * ext/neon/gstneonhttpsrc.c: + With libneon 2.6, we need to set the NE_SESSFLAG_ICYPROTO + flag if we want ICY streams to be handled too, otherwise + libneon will error out with a 'can't parse reponse' error. + Fixes #474696. + * tests/check/elements/neonhttpsrc.c: + Unit test for the above by Yours Truly. + +2007-09-09 18:22:53 +0000 Tim-Philipp Müller + + configure.ac: Use AC_TRY_COMPILE instead of AC_TRY_RUN for the faad and the xvid configure checks, so they still work... + Original commit message from CVS: + * configure.ac: + Use AC_TRY_COMPILE instead of AC_TRY_RUN for the faad and the + xvid configure checks, so they still work when cross-compiling. + Fixes #452009. + +2007-09-07 15:54:38 +0000 Sebastian Dröge + + gst/spectrum/gstspectrum.c: Use the correct parameter order for the memset calls. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_start), + (gst_spectrum_transform_ip): + Use the correct parameter order for the memset calls. + Thanks to Christian Schaller for noticing. + +2007-09-06 20:37:56 +0000 Stefan Kost + + gst/mpegtsparse/mpegtsparse.c: Fix the build (missing stdlib.h). + Original commit message from CVS: + * gst/mpegtsparse/mpegtsparse.c: + Fix the build (missing stdlib.h). + +2007-09-06 07:26:45 +0000 Sebastian Dröge + + gst/spectrum/fix_fft.c: Remove fixed point FFT as it's not used anymore. + Original commit message from CVS: + * gst/spectrum/fix_fft.c: + Remove fixed point FFT as it's not used anymore. + +2007-09-06 07:21:22 +0000 Sebastian Dröge + + Port GstSpectrum to GstAudioFilter and libgstfft, add support for int32, float and double, use floats for the message... + Original commit message from CVS: + * configure.ac: + * gst/spectrum/Makefile.am: + * gst/spectrum/demo-audiotest.c: (draw_spectrum), + (message_handler), (main): + * gst/spectrum/demo-osssrc.c: (draw_spectrum), (message_handler): + * gst/spectrum/gstspectrum.c: (gst_spectrum_base_init), + (gst_spectrum_class_init), (gst_spectrum_init), + (gst_spectrum_dispose), (gst_spectrum_set_property), + (gst_spectrum_get_property), (gst_spectrum_start), + (gst_spectrum_setup), (gst_spectrum_message_new), + (gst_spectrum_transform_ip): + * gst/spectrum/gstspectrum.h: + Port GstSpectrum to GstAudioFilter and libgstfft, add support + for int32, float and double, use floats for the message contents, + average all FFTs done in one interval for better results, use + a better windowing function, allow posting the phase in the message + and actually do an FFT with the requested number of bands instead + of interpolating. + * tests/check/elements/spectrum.c: (GST_START_TEST), + (spectrum_suite): + Improve the units tests by checking for a 11025Hz sine wave + and add unit tests for all 4 supported sample types. + +2007-09-05 21:09:08 +0000 Wim Taymans + + gst/real/gstrealvideodec.c: Add some more debugging. + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), + (gst_real_video_dec_setcaps): + Add some more debugging. + Don't set LONG for width/height in caps. + Set correct output buffer size when caps changed. + The custom message sent to the decoder should not include the format and + subformat. Fixes #471554. + +2007-09-04 15:23:34 +0000 Tim-Philipp Müller + + gst/rtpmanager/gstrtpsession.c: Make compiler happy: fix compilation with -Wall -Werror (#473562). + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: + Make compiler happy: fix compilation with -Wall -Werror + (#473562). + +2007-09-04 02:22:20 +0000 Johan Dahlin + + * gst/nsf/gstnsf.c: + Nosefart -> NES Sound Format + Original commit message from CVS: + Nosefart -> NES Sound Format + +2007-09-04 02:16:53 +0000 Johan Dahlin + + gst/nsf/gstnsf.*: Add support for (very) basic tagging. + Original commit message from CVS: + 2007-09-03 Johan Dahlin + * gst/nsf/gstnsf.c: (gst_nsfdec_finalize), (start_play_tune): + * gst/nsf/gstnsf.h: + Add support for (very) basic tagging. + +2007-09-03 21:19:34 +0000 Wim Taymans + + gst/rtpmanager/: Updated example pipelines in docs. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin-marshal.list: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_get_client), + (gst_rtp_bin_associate), (gst_rtp_bin_sync_chain), (create_stream), + (gst_rtp_bin_init), (caps_changed), (new_ssrc_pad_found), + (create_recv_rtp), (create_recv_rtcp), (create_send_rtp): + * gst/rtpmanager/gstrtpbin.h: + Updated example pipelines in docs. + Handle sync_rtcp buffers from the SSRC demuxer to perform lip-sync. + Set the default latency correctly. + Add some more points where we can get caps. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop), + (gst_rtp_jitter_buffer_query), + (gst_rtp_jitter_buffer_set_property), + (gst_rtp_jitter_buffer_get_property): + Add ts-offset property to control timestamping. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_init), (gst_rtp_session_set_property), + (gst_rtp_session_get_property), (get_current_ntp_ns_time), + (rtcp_thread), (stop_rtcp_thread), (gst_rtp_session_change_state), + (gst_rtp_session_send_rtcp), (gst_rtp_session_sync_rtcp), + (gst_rtp_session_cache_caps), (gst_rtp_session_clock_rate), + (gst_rtp_session_sink_setcaps), (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink), + (create_recv_rtcp_sink), (create_send_rtp_sink), + (create_send_rtcp_src): + Various cleanups. + Feed rtpsession manager with NTP time based on pipeline clock when + handling RTP packets and RTCP timeouts. + Perform all RTCP with the system clock. + Set caps on RTCP outgoing buffers. + * gst/rtpmanager/gstrtpssrcdemux.c: (find_demux_pad_for_ssrc), + (create_demux_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init), + (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_sink_event), + (gst_rtp_ssrc_demux_rtcp_sink_event), (gst_rtp_ssrc_demux_chain), + (gst_rtp_ssrc_demux_rtcp_chain): + * gst/rtpmanager/gstrtpssrcdemux.h: + Also demux RTCP messages. + * gst/rtpmanager/rtpsession.c: (rtp_session_set_callbacks), + (update_arrival_stats), (rtp_session_process_rtp), + (rtp_session_process_rb), (rtp_session_process_sr), + (rtp_session_process_rr), (rtp_session_process_rtcp), + (rtp_session_send_rtp), (rtp_session_send_bye), + (session_start_rtcp), (session_report_blocks), (session_cleanup), + (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Remove the get_time callback, the GStreamer part will feed us with + enough timing information. + Split sync timing and RTCP timing information. + Factor out common RB handling for SR and RR. + Send out SR RTCP packets for lip-sync. + Move SR and RR packet info generation to the source. + * gst/rtpmanager/rtpsource.c: (rtp_source_init), + (rtp_source_update_caps), (get_clock_rate), (calculate_jitter), + (rtp_source_process_rtp), (rtp_source_send_rtp), + (rtp_source_process_sr), (rtp_source_process_rb), + (rtp_source_get_new_sr), (rtp_source_get_new_rb), + (rtp_source_get_last_sr): + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.h: + Use caps on incomming buffers to get timing information when they are + there. + Calculate clock scew of the receiver compared to the sender and adjust + the rtp timestamps. + Calculate the round trip in sources. + Do SR and RR calculations in the source. + +2007-09-03 20:07:17 +0000 Renato Filho + + * ChangeLog: + * configure.ac: + * ext/mythtv/gstmythtvsrc.c: + * ext/mythtv/gstmythtvsrc.h: + gmythsrc code rewrite; + Original commit message from CVS: + gmythsrc code rewrite; + +2007-08-31 15:26:14 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Use extended timestamp to release buffers from the jitterbuffer so that we can h... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop): + Use extended timestamp to release buffers from the jitterbuffer so that + we can handle the rtp wraparound correctly. + +2007-08-29 16:56:27 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Improve Comments. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_loop): + Improve Comments. + * gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread), + (gst_rtp_session_change_state), (gst_rtp_session_parse_caps), + (gst_rtp_session_clock_rate), (gst_rtp_session_sink_setcaps), + (gst_rtp_session_event_send_rtp_sink), (create_recv_rtp_sink), + (create_send_rtp_sink): + Also parse the sink caps for clock-rate instead of only relying on the + result of the signal. + * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp): + Make sure we fetch the clock rate for payloads we are sending out so + that we can use it for SR reports. + +2007-08-29 16:20:28 +0000 Zaheer Abbas Merali + + gst/switch/gstswitch.c (gst_switch_chain, gst_switch_set_property): If all information is known at time of setting st... + Original commit message from CVS: + * gst/switch/gstswitch.c (gst_switch_chain, gst_switch_set_property): + If all information is known at time of setting start-time + property, send new segments then. + +2007-08-29 01:22:43 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.*: Distribute synchronisation parameters to the session manager so that it can generate ... + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (stop_rtcp_thread), + (gst_rtp_session_change_state), + (gst_rtp_session_event_send_rtp_sink): + * gst/rtpmanager/gstrtpsession.h: + Distribute synchronisation parameters to the session manager so that it + can generate correct SR packets for lip-sync. + * gst/rtpmanager/rtpsession.c: (rtp_session_set_base_time), + (rtp_session_set_timestamp_sync), (session_start_rtcp): + * gst/rtpmanager/rtpsession.h: + Add methods for setting sync parameters. + Set correct RTP time in SR packets using the sync params. + * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp): + * gst/rtpmanager/rtpsource.h: + Record last RTP <-> GST timestamp so that we can use them to convert NTP + to RTP timestamps in SR packets. + +2007-08-28 20:30:16 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Add some more advanced example pipelines. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map): + Add some more advanced example pipelines. + * gst/rtpmanager/gstrtpsession.c: (rtcp_thread), + (stop_rtcp_thread), (gst_rtp_session_send_rtcp): + Add some debug and FIXME. + Release LOCK when performing session cleanup. + * gst/rtpmanager/rtpsession.c: (session_report_blocks): + Add some debug. + * gst/rtpmanager/rtpsource.c: (calculate_jitter), + (rtp_source_send_rtp): + Make sure we always send RTP packets with the session SSRC. + +2007-08-28 08:10:05 +0000 Tim-Philipp Müller + + gst/dvdspu/gstdvdspu.c: Don't need this include (fixes compilation in uninstalled setup). + Original commit message from CVS: + * gst/dvdspu/gstdvdspu.c: + Don't need this include (fixes compilation in uninstalled setup). + +2007-08-27 21:17:21 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: When synchronizing buffers, take peer latency into account. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_change_state), (gst_rtp_jitter_buffer_loop), + (gst_rtp_jitter_buffer_query): + When synchronizing buffers, take peer latency into account. + Don't try to add our latency to invalid peer max latency values. + +2007-08-27 14:56:05 +0000 Julien Moutte + + gst/flv/gstflvdemux.c: Make sure we initialize the seek result. + Original commit message from CVS: + 2007-08-27 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_handle_seek_pull): + Make sure we initialize the seek result. + +2007-08-27 14:41:01 +0000 Jan Schmidt + + gst/dvdspu/Makefile.am: Commit the makefile too. + Original commit message from CVS: + * gst/dvdspu/Makefile.am: + Commit the makefile too. + +2007-08-27 14:33:59 +0000 Jan Schmidt + + dvdspu element donated by Fluendo. It implements a DVD Sub-Picture + Original commit message from CVS: + * configure.ac: + * gst/dvdspu/.cvsignore: + * gst/dvdspu/Notes.txt: + * gst/dvdspu/gstdvdspu-render.c: (dvdspu_recalc_palette), + (dvdspu_update_palettes), (dvdspu_clear_comp_buffers), + (dvdspu_get_nibble), (dvdspu_get_rle_code), (dvdspu_draw_rle_run), + (rle_end_x), (dvdspu_render_line), (dvdspu_update_chgcol), + (dvdspu_render_line_with_chgcol), (dvdspu_blend_comp_buffers), + (gstdvdspu_render_spu): + * gst/dvdspu/gstdvdspu.c: (dvdspu_base_init), (dvdspu_class_init), + (dvdspu_init), (dvdspu_clear), (dvdspu_dispose), (dvdspu_finalize), + (dvdspu_flush_spu_info), (dvdspu_buffer_alloc), (dvdspu_src_event), + (dvdspu_video_set_caps), (dvdspu_video_proxy_getcaps), + (dvdspu_video_event), (dvdspu_video_chain), + (dvspu_handle_vid_buffer), (dvdspu_redraw_still), + (gstdvdspu_parse_chg_colcon), (dvdspu_exec_cmd_blk), + (dvdspu_finish_spu_buf), (dvdspu_setup_cmd_blk), + (dvdspu_handle_new_spu_buf), (dvdspu_handle_dvd_event), + (dvdspu_dump_dcsq), (dvdspu_advance_spu), + (dvdspu_check_still_updates), (dvdspu_subpic_chain), + (dvdspu_subpic_event), (dvdspu_change_state), + (gstdvdspu_plugin_init): + * gst/dvdspu/gstdvdspu.h: + dvdspu element donated by Fluendo. It implements a DVD Sub-Picture + Unit, decoding and overlaying DVD subtitles and menu graphics. + * gst/mpeg2sub/.cvsignore: + * gst/mpeg2sub/Makefile.am: + * gst/mpeg2sub/Notes.txt: + * gst/mpeg2sub/gstmpeg2subt.c: + * gst/mpeg2sub/gstmpeg2subt.h: + * gst/mpeg2sub/mpeg2subt.vcproj: + Delete old and broken mpeg2subt element that was never ported from 0.8 + +2007-08-24 17:03:15 +0000 Julien Moutte + + gst/flv/gstflvdemux.c: Remove some useless ifdef. + Original commit message from CVS: + 2007-08-24 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), + (gst_flv_demux_chain), (gst_flv_demux_pull_tag), + (gst_flv_demux_find_offset), (gst_flv_demux_handle_seek_push), + (gst_flv_demux_handle_seek_pull), (gst_flv_demux_sink_event), + (gst_flv_demux_src_event): Remove some useless ifdef. + +2007-08-24 15:56:52 +0000 Zaheer Abbas Merali + + Make switch more reliable and also not lock up when sink pad caps change. + Original commit message from CVS: + * examples/switch/switcher.c (main): + * gst/switch/gstswitch.c (gst_switch_chain): + Make switch more reliable and also not lock up when + sink pad caps change. + +2007-08-24 15:31:26 +0000 Julien Moutte + + gst/flv/gstflvdemux.c: Implement seeking in push mode. + Original commit message from CVS: + 2007-08-24 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), + (gst_flv_demux_cleanup), (gst_flv_demux_chain), + (gst_flv_demux_pull_tag), (gst_flv_demux_find_offset), + (gst_flv_demux_handle_seek_push), + (gst_flv_demux_handle_seek_pull), + (gst_flv_demux_sink_event), (gst_flv_demux_src_event): Implement + seeking in push mode. + * gst/flv/gstflvdemux.h: + +2007-08-24 11:23:28 +0000 Zaheer Abbas Merali + + gst/mpegtsparse/: Update licences to reflect LGPL-ness of these files also. + Original commit message from CVS: + * gst/mpegtsparse/flutspatinfo.c: + * gst/mpegtsparse/flutspatinfo.h: + * gst/mpegtsparse/flutspmtinfo.c: + * gst/mpegtsparse/flutspmtinfo.h: + Update licences to reflect LGPL-ness of these files also. + +2007-08-23 21:39:58 +0000 Tim-Philipp Müller + + Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE registers a GType that's different than the GstRTPF... + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.signals: + * gst/rtpmanager/gstrtpbin.c: + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpclient.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/gstrtpssrcdemux.c: + * gst/rtpmanager/gstrtpssrcdemux.h: + Rename all GstRTPFoo structs to GstRtpFoo so that GST_BOILERPLATE + registers a GType that's different than the GstRTPFoo types that + farsight registers (luckily GType names are case sensitive). Should + finally fix #430664. + +2007-08-23 17:21:23 +0000 Tim-Philipp Müller + + Automatically generate win32/common/config.h via configure (this ensures the win32 version of config.h is up-to-date ... + Original commit message from CVS: + * configure.ac: + * win32/common/config.h: + * win32/common/config.h.in: + Automatically generate win32/common/config.h via configure (this + ensures the win32 version of config.h is up-to-date when a release + is made, #433373). config.h.in file might need some more work. + +2007-08-23 13:24:33 +0000 Jonathan Matthew + + Port festival plugin to GStreamer-0.10 (#461377). + Original commit message from CVS: + Patch by: Jonathan Matthew + * configure.ac: + * gst/festival/Makefile.am: + * gst/festival/gstfestival.c: + Port festival plugin to GStreamer-0.10 (#461377). + +2007-08-22 15:32:04 +0000 Wim Taymans + + ext/faad/gstfaad.c: Don't unref the buffer when it was clipped. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_chain): + Don't unref the buffer when it was clipped. + +2007-08-22 14:50:51 +0000 Julien Moutte + + gst/flv/: Handle pixel aspect ratio through metadata tags like ASF does. Fluendo muxer supports this and + Original commit message from CVS: + 2007-08-22 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), + (gst_flv_demux_pull_tag): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), + (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): Handle pixel aspect ratio through + metadata tags like ASF does. Fluendo muxer supports this and + Flash players can support it as well this way. + +2007-08-22 14:03:42 +0000 Julien Moutte + + gst/flv/: Make sure we don't try filling up the index if no times object was parsed. Fix the way we decide to push ta... + Original commit message from CVS: + 2007-08-22 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_pull_tag): + * gst/flv/gstflvparse.c: (gst_flv_parse_metadata_item), + (gst_flv_parse_tag_script), (gst_flv_parse_tag_audio), + (gst_flv_parse_tag_video): Make sure we don't try filling up the + index if no times object was parsed. Fix the way we decide to + push + tags and emit no-more-pads. Fix some printf typing in debugging. + +2007-08-21 17:18:29 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: When drop-on-latency is set but we have no latency configured, just push the buf... + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_set_property): + When drop-on-latency is set but we have no latency configured, just push + the buffer as fast as possible. + Fix typo in comment. + +2007-08-21 16:04:47 +0000 Wim Taymans + + gst/rtpmanager/rtpjitterbuffer.*: Fix undefined overflow prone ts_diff handling. + Original commit message from CVS: + * gst/rtpmanager/rtpjitterbuffer.c: + (rtp_jitter_buffer_get_ts_diff): + * gst/rtpmanager/rtpjitterbuffer.h: + Fix undefined overflow prone ts_diff handling. + +2007-08-21 15:59:39 +0000 Wim Taymans + + gst/modplug/gstmodplug.cc: Fix compiler warning. + Original commit message from CVS: + * gst/modplug/gstmodplug.cc: + Fix compiler warning. + +2007-08-21 12:59:00 +0000 Stefan Kost + + gst/modplug/gstmodplug.cc: Don't use NULL caps for srcpad is not yet connected. + Original commit message from CVS: + * gst/modplug/gstmodplug.cc: + Don't use NULL caps for srcpad is not yet connected. + +2007-08-20 14:23:45 +0000 Zaheer Abbas Merali + + Add mpeg transport stream parser written by: + Original commit message from CVS: + * configure.ac: + * gst/mpegtsparse/Makefile.am: + * gst/mpegtsparse/flutspatinfo.c: + * gst/mpegtsparse/flutspatinfo.h: + * gst/mpegtsparse/flutspmtinfo.c: + * gst/mpegtsparse/flutspmtinfo.h: + * gst/mpegtsparse/flutspmtstreaminfo.c: + * gst/mpegtsparse/flutspmtstreaminfo.h: + * gst/mpegtsparse/mpegtspacketizer.c: + * gst/mpegtsparse/mpegtspacketizer.h: + * gst/mpegtsparse/mpegtsparse.c: + * gst/mpegtsparse/mpegtsparse.h: + * gst/mpegtsparse/mpegtsparsemarshal.list: + Add mpeg transport stream parser written by: + Alessandro Decina. Includes a couple of files from the + Fluendo transport stream demuxer that Fluendo have + kindly allowed to be licenced under LGPL also. + +2007-08-20 09:13:47 +0000 Bastien Nocera + + ext/mythtv/gstmythtvsrc.c: Add examples for live mythtv:// URIs to docs (#468039). + Original commit message from CVS: + Patch by: Bastien Nocera + * ext/mythtv/gstmythtvsrc.c: + Add examples for live mythtv:// URIs to docs (#468039). + Also convert some tabs into spaces. + +2007-08-19 19:16:33 +0000 Sebastian Dröge + + gst/filter/: Add small comparision with the chebyshev filters in the docs. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: + * gst/filter/gstlpwsinc.c: + Add small comparision with the chebyshev filters in the docs. + +2007-08-19 19:01:45 +0000 Sebastian Dröge + + tests/check/elements/: Also test everything in 32 bit float mode. + Original commit message from CVS: + * tests/check/elements/bpwsinc.c: (GST_START_TEST), + (bpwsinc_suite): + * tests/check/elements/lpwsinc.c: (GST_START_TEST), + (lpwsinc_suite): + Also test everything in 32 bit float mode. + +2007-08-17 15:05:17 +0000 Sebastian Dröge + + Use generator macros for the process functions for the different sample types, add lower upper boundaries for the GOb... + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), + (bpwsinc_set_property), (bpwsinc_get_property): + * gst/filter/gstbpwsinc.h: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (lpwsinc_build_kernel), (lpwsinc_set_property), + (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + * tests/check/elements/lpwsinc.c: (GST_START_TEST): + Use generator macros for the process functions for the different + sample types, add lower upper boundaries for the GObject properties + so automatically generated UIs can use sliders and change frequency + properties to floats to save a bit of memory, even ints would in + theory be enough. Also rename frequency to cutoff for consistency + reasons. + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + Regenerated for the above changes. + +2007-08-17 06:55:37 +0000 Stefan Kost + + ext/amrwb/gstamrwbparse.c: Don't leak the adapter. + Original commit message from CVS: + * ext/amrwb/gstamrwbparse.c: + Don't leak the adapter. + +2007-08-16 19:22:48 +0000 Sebastian Dröge + + gst/filter/gstbpwsinc.*: Implement latency query and only forward those samples downstream that actually contain the ... + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), + (gst_bpwsinc_init), (process_32), (process_64), + (bpwsinc_build_kernel), (bpwsinc_push_residue), + (bpwsinc_transform), (bpwsinc_start), (bpwsinc_query), + (bpwsinc_query_type), (bpwsinc_event), (bpwsinc_set_property): + * gst/filter/gstbpwsinc.h: + Implement latency query and only forward those samples downstream + that actually contain the data we want, i.e. drop kernel_length/2 + in the beginning and append kernel_length/2 (created by convolving + the filter kernel with zeroes) to the end. + * tests/check/elements/bpwsinc.c: (GST_START_TEST): + Adjust the unit test for this slightly changed behaviour. + * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel): + Reset residue length only when actually creating a residue. + +2007-08-16 17:11:48 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.c: Override the preroll vmethod instead of overriding the render method twice. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_class_init): + Override the preroll vmethod instead of overriding the render method + twice. + +2007-08-16 11:40:16 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Fix EOS handling. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_loop): + Fix EOS handling. + Convert some DEBUG into WARNINGs. + Pause task when flushing. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (rtcp_thread), (gst_rtp_session_event_recv_rtcp_sink): + Use system clock for RTCP session management timeouts. + * gst/rtpmanager/rtpsession.c: (on_new_ssrc), (on_ssrc_collision), + (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout): + Release the session lock when emiting signals. + +2007-08-16 11:34:54 +0000 Wim Taymans + + ext/faad/gstfaad.c: Add some debug info. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), + (gst_faad_chanpos_to_gst): + Add some debug info. + +2007-08-16 09:48:27 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.*: Implement latency query and only forward those samples downstream that actually contain the ... + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (process_32), (process_64), + (lpwsinc_build_kernel), (lpwsinc_push_residue), + (lpwsinc_transform), (lpwsinc_start), (lpwsinc_query), + (lpwsinc_query_type), (lpwsinc_event), (lpwsinc_set_property): + * gst/filter/gstlpwsinc.h: + Implement latency query and only forward those samples downstream + that actually contain the data we want, i.e. drop kernel_length/2 + in the beginning and append kernel_length/2 (created by convolving + the filter kernel with zeroes) to the end. + * tests/check/elements/lpwsinc.c: (GST_START_TEST): + Adjust the unit test for this slightly changed behaviour. + +2007-08-16 07:07:41 +0000 Stefan Kost + + ext/ladspa/gstladspa.c: Don't leak like hell. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: + Don't leak like hell. + +2007-08-16 06:49:39 +0000 Stefan Kost + + tests/check/: Add generic state-change test suite to help to fi leaks. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/generic/.cvsignore: + * tests/check/generic/states.c: + Add generic state-change test suite to help to fi leaks. + +2007-08-15 13:28:39 +0000 Stefan Kost + + * ChangeLog: + ChangeLog surgery + Original commit message from CVS: + ChangeLog surgery + +2007-08-15 13:26:57 +0000 Stefan Kost + + ext/timidity/gstwildmidi.*: + Original commit message from CVS: + reviewed by: + patch by: + * ext/timidity/gstwildmidi.c: + * ext/timidity/gstwildmidi.h: + +2007-08-14 17:47:34 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.c: Don't use new API. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_flush_unlocked): + Don't use new API. + +2007-08-14 17:38:05 +0000 Wim Taymans + + gst-libs/gst/app/gstappsink.*: Make love to appsink. + Original commit message from CVS: + * gst-libs/gst/app/gstappsink.c: (gst_app_sink_base_init), + (gst_app_sink_class_init), (gst_app_sink_dispose), + (gst_app_sink_flush_unlocked), (gst_app_sink_start), + (gst_app_sink_stop), (gst_app_sink_event), (gst_app_sink_preroll), + (gst_app_sink_render), (gst_app_sink_get_caps), + (gst_app_sink_set_caps), (gst_app_sink_end_of_stream), + (gst_app_sink_pull_preroll), (gst_app_sink_pull_buffer): + * gst-libs/gst/app/gstappsink.h: + Make love to appsink. + Make it support pulling of the preroll buffer. + Add docs and debug statements. + Fix some races wrt to EOS handling and stopping. + Implement getcaps. + Implement FLUSHING. + API: gst_app_sink_pull_preroll() + +2007-08-14 14:56:20 +0000 Wim Taymans + + gst/flv/gstflvdemux.c: Fix locking and refcounting on the index. + Original commit message from CVS: + * gst/flv/gstflvdemux.c: (gst_flv_demux_set_index), + (gst_flv_demux_get_index): + Fix locking and refcounting on the index. + +2007-08-14 14:22:09 +0000 Julien Moutte + + gst/flv/gstflvdemux.c: First method for seeking in pull mode using the index built step by step or coming from metadata. + Original commit message from CVS: + 2007-08-14 Julien MOUTTE + * gst/flv/gstflvdemux.c: (gst_flv_demux_cleanup), + (gst_flv_demux_adapter_flush), (gst_flv_demux_chain), + (gst_flv_demux_pull_tag), (gst_flv_demux_do_seek), + (gst_flv_demux_handle_seek), (gst_flv_demux_sink_event), + (gst_flv_demux_src_event), (gst_flv_demux_query), + (gst_flv_demux_change_state), (gst_flv_demux_set_index), + (gst_flv_demux_get_index), (gst_flv_demux_dispose), + (gst_flv_demux_class_init): First method for seeking in pull + mode using the index built step by step or coming from metadata. + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (FLV_GET_STRING), + (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video): Parse + more metadata types and keyframes index. + +2007-08-13 13:50:39 +0000 Sebastian Dröge + + Add docs for lpwsinc and bpwsinc and integrate them into the build system. While doing that also update all other doc... + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + * gst/filter/gstbpwsinc.c: + * gst/filter/gstbpwsinc.h: + * gst/filter/gstlpwsinc.c: + * gst/filter/gstlpwsinc.h: + Add docs for lpwsinc and bpwsinc and integrate them + into the build system. While doing that also update + all other docs via make update in docs/plugins. + +2007-08-13 06:16:40 +0000 Stefan Kost + + gst/rtpmanager/rtpjitterbuffer.c: Include stdlib. + Original commit message from CVS: + * gst/rtpmanager/rtpjitterbuffer.c: + Include stdlib. + +2007-08-12 20:55:01 +0000 Sebastian Dröge + + tests/check/elements/bpwsinc.c: Make one test constraint a bit stricter. + Original commit message from CVS: + * tests/check/elements/bpwsinc.c: (GST_START_TEST): + Make one test constraint a bit stricter. + +2007-08-12 20:53:11 +0000 Sebastian Dröge + + tests/check/: Add unit tests for bpwsinc, testing fundamental functionality again. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/bpwsinc.c: (setup_bpwsinc), + (cleanup_bpwsinc), (GST_START_TEST), (bpwsinc_suite), (main): + Add unit tests for bpwsinc, testing fundamental functionality again. + +2007-08-12 20:19:37 +0000 Sebastian Dröge + + tests/check/: Add unit tests for lpwsinc, testing fundamental functionality. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/lpwsinc.c: (setup_lpwsinc), + (cleanup_lpwsinc), (GST_START_TEST), (lpwsinc_suite), (main): + Add unit tests for lpwsinc, testing fundamental functionality. + +2007-08-12 15:41:57 +0000 Sebastian Dröge + + gst/filter/: Improve debugging a bit. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel): + * gst/filter/gstlpwsinc.c: (lpwsinc_build_kernel): + Improve debugging a bit. + +2007-08-12 12:46:20 +0000 Sebastian Dröge + + gst/filter/: Reset the residue in BaseTransform::start to get a clean residue on stream changes. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), + (bpwsinc_start): + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), + (lpwsinc_start): + Reset the residue in BaseTransform::start to get a clean residue + on stream changes. + +2007-08-11 21:30:03 +0000 Sebastian Dröge + + * ChangeLog: + Changelog surgery + Original commit message from CVS: + Changelog surgery + +2007-08-11 15:58:30 +0000 Sebastian Dröge + + gst/filter/: Fix processing with buffer sizes that are larger than the filter kernel size. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (process_32), (process_64): + * gst/filter/gstlpwsinc.c: (process_32), (process_64): + Fix processing with buffer sizes that are larger than the filter + kernel size. + +2007-08-10 17:16:53 +0000 Wim Taymans + + gst/rtpmanager/: Remove complicated async queue and replace with more simple jitterbuffer code while also fixing some... + Original commit message from CVS: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/async_jitter_queue.c: + * gst/rtpmanager/async_jitter_queue.h: + * gst/rtpmanager/rtpjitterbuffer.c: (rtp_jitter_buffer_class_init), + (rtp_jitter_buffer_init), (rtp_jitter_buffer_finalize), + (rtp_jitter_buffer_new), (compare_seqnum), + (rtp_jitter_buffer_insert), (rtp_jitter_buffer_pop), + (rtp_jitter_buffer_flush), (rtp_jitter_buffer_num_packets), + (rtp_jitter_buffer_get_ts_diff): + * gst/rtpmanager/rtpjitterbuffer.h: + Remove complicated async queue and replace with more simple jitterbuffer + code while also fixing some bugs. + * gst/rtpmanager/gstrtpbin-marshal.list: + * gst/rtpmanager/gstrtpbin.c: (on_new_ssrc), (on_ssrc_collision), + (on_ssrc_validated), (on_bye_ssrc), (on_bye_timeout), (on_timeout), + (create_session), (gst_rtp_bin_class_init), (create_recv_rtp), + (create_send_rtp): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_init), (gst_rtp_jitter_buffer_dispose), + (gst_jitter_buffer_sink_parse_caps), + (gst_rtp_jitter_buffer_flush_start), + (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_change_state), + (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_loop), (gst_rtp_jitter_buffer_set_property): + * gst/rtpmanager/gstrtpsession.c: (on_new_ssrc), + (on_ssrc_collision), (on_ssrc_validated), (on_bye_ssrc), + (on_bye_timeout), (on_timeout), (gst_rtp_session_class_init), + (gst_rtp_session_init): + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/rtpsession.c: (on_bye_ssrc), (session_cleanup): + Use new jitterbuffer code. + Expose some new signals in preparation for handling EOS. + +2007-08-10 05:51:40 +0000 Sebastian Dröge + + gst/filter/gstbpwsinc.c: Fix a segfault with more than one channel and don't rebuild the kernel & residue with every ... + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (bpwsinc_build_kernel): + Fix a segfault with more than one channel and don't rebuild + the kernel & residue with every buffer. + +2007-08-10 05:35:25 +0000 Sebastian Dröge + + gst/filter/gstbpwsinc.*: Add support for a bandreject mode and allow specifying the window function that should be used. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_mode_get_type), + (gst_bpwsinc_window_get_type), (gst_bpwsinc_class_init), + (gst_bpwsinc_init), (bpwsinc_build_kernel), (bpwsinc_set_property), + (bpwsinc_get_property): + * gst/filter/gstbpwsinc.h: + Add support for a bandreject mode and allow specifying the window + function that should be used. + * gst/filter/gstlpwsinc.c: + And another small formatting fix. + +2007-08-10 05:20:06 +0000 Sebastian Dröge + + gst/filter/gstbpwsinc.*: Apply the same changes to the bandpass filter: + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init), + (gst_bpwsinc_init), (process_32), (process_64), + (bpwsinc_build_kernel), (bpwsinc_setup), (bpwsinc_get_unit_size), + (bpwsinc_transform), (bpwsinc_set_property), + (bpwsinc_get_property): + * gst/filter/gstbpwsinc.h: + Apply the same changes to the bandpass filter: + - Support double input + - Fix processing for input with >1 channels + - Specify frequency in Hz + - Specify actual filter kernel length + - Use transform instead of transform_ip as we're working + out of place anyway + - Factor out filter kernel generation and update the filter + kernel when the properties are set + Fix bandpass filter kernel generation to actually generate + a bandpass filter by creating a highpass instead of a second + lowpass. + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init): + Small formatting fix. + +2007-08-10 04:44:43 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.*: Specify the actual filter length instead of a weird 2N+1. Setting the property will round to... + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (process_32), (process_64), + (lpwsinc_build_kernel), (lpwsinc_set_property), + (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + Specify the actual filter length instead of a weird + 2N+1. Setting the property will round to the next odd number. + Also remove now obsolete FIXMEs. + +2007-08-10 04:32:47 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.*: Allow choosing between hamming and blackman window. The blackman window provides a better st... + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_window_get_type), + (gst_lpwsinc_class_init), (gst_lpwsinc_init), + (lpwsinc_build_kernel), (lpwsinc_set_property), + (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + Allow choosing between hamming and blackman window. The blackman + window provides a better stopband attenuation but a bit slower + rolloff. + +2007-08-10 04:21:39 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.*: Add a highpass mode. + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_mode_get_type), + (gst_lpwsinc_class_init), (process_32), (process_64), + (lpwsinc_build_kernel), (lpwsinc_set_property), + (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + Add a highpass mode. + +2007-08-10 04:06:53 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.c: Fix processing if the input has more than one channel. + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (process_32), (process_64), + (lpwsinc_build_kernel): + Fix processing if the input has more than one channel. + +2007-08-09 19:23:33 +0000 Sebastian Dröge + + gst/filter/gstbpwsinc.c: "this" is a C++ keyword, use "self" instead. + Original commit message from CVS: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose), + (gst_bpwsinc_init), (bpwsinc_setup), (bpwsinc_transform_ip), + (bpwsinc_set_property), (bpwsinc_get_property): + "this" is a C++ keyword, use "self" instead. + Add TODOs and FIXMEs and remove two wrong FIXMEs. + * gst/filter/gstlpwsinc.c: + Add FIXMEs and a new TODO. + +2007-08-09 18:08:05 +0000 Sebastian Dröge + + gst/filter/gstlpwsinc.*: Add double support, replace "this" with "self" as the former is a C++ keyword. + Original commit message from CVS: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose), + (gst_lpwsinc_class_init), (gst_lpwsinc_init), (process_32), + (process_64), (lpwsinc_build_kernel), (lpwsinc_setup), + (lpwsinc_get_unit_size), (lpwsinc_transform), + (lpwsinc_set_property), (lpwsinc_get_property): + * gst/filter/gstlpwsinc.h: + Add double support, replace "this" with "self" as the former + is a C++ keyword. + Implement the frequency property in Hz instead of fraction + of sampling frequency. + Remove some unecessary FIXMEs and add some TODOs, add some + required locking and refactor the kernel generation into a + separate function that is also called when the properties + change now. + And use BaseTransform::transform instead of transform_ip + as the convolution is done out of place anyway. Should + be done in place later. + +2007-08-09 17:39:47 +0000 Sebastian Dröge + + Port the stereo element to GStreamer 0.10. + Original commit message from CVS: + * configure.ac: + * gst/stereo/Makefile.am: + * gst/stereo/gststereo.c: (gst_stereo_base_init), + (gst_stereo_class_init), (gst_stereo_init), + (gst_stereo_transform_ip), (gst_stereo_set_property), + (gst_stereo_get_property): + * gst/stereo/gststereo.h: + Port the stereo element to GStreamer 0.10. + +2007-08-09 11:01:14 +0000 Thomas Vander Stichele + + po/: Added Portuguese (Brazilian) translation. + Original commit message from CVS: + submitted by: Raphael Higino + * po/LINGUAS: + * po/pt_BR.po: + Added Portuguese (Brazilian) translation. + +2007-08-09 11:00:03 +0000 Thomas Vander Stichele + + po/: Updated translations. + Original commit message from CVS: + * po/uk.po: + * po/vi.po: + Updated translations. + +2007-08-08 20:47:33 +0000 Sebastian Dröge + + gst/filter/: Use GstAudioFilter as base class and don't leak the memory of the filter kernel and residue. + Original commit message from CVS: + * gst/filter/Makefile.am: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose), + (gst_bpwsinc_base_init), (gst_bpwsinc_class_init), + (gst_bpwsinc_init), (bpwsinc_setup): + * gst/filter/gstbpwsinc.h: + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose), + (gst_lpwsinc_base_init), (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (lpwsinc_setup): + * gst/filter/gstlpwsinc.h: + Use GstAudioFilter as base class and don't leak the memory + of the filter kernel and residue. + +2007-08-08 15:15:56 +0000 Josep Torre Valles + + Add connection speed property to libmms. Fixes #464678. + Original commit message from CVS: + Patch by: Josep Torre Valles + * docs/plugins/gst-plugins-bad-plugins.args: + * ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_init), + (gst_mms_start), (gst_mms_set_property), (gst_mms_get_property): + * ext/libmms/gstmms.h: + Add connection speed property to libmms. Fixes #464678. + +2007-08-07 15:21:17 +0000 Wim Taymans + + gst/real/gstrealvideodec.*: Remove some old unused vars. + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), + (gst_real_video_dec_activate_push), (open_library), + (gst_real_video_dec_init), (gst_real_video_dec_finalize): + * gst/real/gstrealvideodec.h: + Remove some old unused vars. + +2007-08-07 10:51:59 +0000 Wim Taymans + + gst/real/gstrealaudiodec.c: Small cleanups. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps): + Small cleanups. + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain), + (open_library): + Remove fragment and timestamp correction code from the decoder to make + the caps and buffer contents compatible with matroska/ffdec_rvx0/... + +2007-07-30 12:43:12 +0000 Tim-Philipp Müller + + po/POTFILES.skip: Add POTFILES.skip with list of source files that aren't disted at the moment but contain translatab... + Original commit message from CVS: + * po/POTFILES.skip: + Add POTFILES.skip with list of source files that aren't disted at the + moment but contain translatable strings. Should hopefully pacify + broken tools and make it clearer that these files are left out + intentionally (#461601 and others). + +2007-07-30 09:52:36 +0000 Ian Munro + + gst/bayer/gstbayer2rgb.c: Include our own "_stdint.h" instead of (which may not be available). + Original commit message from CVS: + Patch by: Ian Munro + * gst/bayer/gstbayer2rgb.c: + Include our own "_stdint.h" instead of (which may not + be available). + * gst/speed/gstspeed.h: + Native HP-UX compiler dosn't seem to like enum typedefs before the + actual enum was defined. + * gst/vmnc/vmncdec.c: + Fix wrong usage of GST_ELEMENT_ERROR macro (#461373). + +2007-07-26 16:16:01 +0000 Edward Hervey + + gst/real/gstrealaudiodec.c: Use the proper context variable when setting the password ! + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps): + Use the proper context variable when setting the password ! + LOG => WARNING for errors. + Give proper path when opening the codec (needs a '/' at the end). + +2007-07-25 18:10:04 +0000 Tim-Philipp Müller + + gst/real/Makefile.am: And dist the new header file too. + Original commit message from CVS: + * gst/real/Makefile.am: + And dist the new header file too. + +2007-07-25 14:36:25 +0000 Tim-Philipp Müller + + gst/real/gstreal.h: Add missing header file. + Original commit message from CVS: + * gst/real/gstreal.h: + Add missing header file. + +2007-07-25 13:29:04 +0000 Julien Moutte + + gst/flv/: Handle not linked pads, try to make it reusable, more safety checks. + Original commit message from CVS: + 2007-07-25 Julien MOUTTE + (gst_flv_demux_chain), (gst_flv_demux_pull_tag), + (gst_flv_demux_change_state), (gst_flv_demux_dispose), + (gst_flv_demux_init): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (FLV_GET_STRING), + (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_header): + * gst/flv/gstflvparse.h: Handle not linked pads, try to make it + reusable, more safety checks. + +2007-07-25 05:55:00 +0000 Stefan Kost + + ext/timidity/gsttimidity.*: Don't initialize timidity in plugin_init for similar reason as below. + Original commit message from CVS: + * ext/timidity/gsttimidity.c: (gst_timidity_init), + (gst_timidity_change_state), (plugin_init): + * ext/timidity/gsttimidity.h: + Don't initialize timidity in plugin_init for similar reason as below. + +2007-07-24 15:13:44 +0000 Stefan Kost + + ext/timidity/gstwildmidi.*: Don't initialize wildmidi in plugin_init as it also setups audio filters which is slow. + Original commit message from CVS: + * ext/timidity/gstwildmidi.c: (wildmidi_open_config), + (gst_wildmidi_init), (gst_wildmidi_change_state), (plugin_init): + * ext/timidity/gstwildmidi.h: + Don't initialize wildmidi in plugin_init as it also setups audio + filters which is slow. + +2007-07-24 14:36:54 +0000 Edward Hervey + + gst/real/: Improved search algorithm for location of real .so files. + Original commit message from CVS: + reviewed by: Edward Hervey + * gst/real/gstreal.c: (plugin_init): + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps), + (gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property), + (gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init): + * gst/real/gstrealvideodec.c: (open_library), + (gst_real_video_dec_finalize), (gst_real_video_dec_set_property), + (gst_real_video_dec_get_property), (gst_real_video_dec_class_init): + * gst/real/gstrealvideodec.h: + Improved search algorithm for location of real .so files. + Fixes #393461 + +2007-07-24 05:15:41 +0000 Sebastian Dröge + + Use the new buffer clipping function from gstaudio here and require gst-plugins-base CVS. + Original commit message from CVS: + * configure.ac: + * ext/faad/gstfaad.c: (gst_faad_chain), (gst_faad_change_state): + Use the new buffer clipping function from gstaudio here and + require gst-plugins-base CVS. + +2007-07-23 09:13:42 +0000 Stefan Kost + + configure.ac: Sync liboil check with plugins-base. + Original commit message from CVS: + * configure.ac: + Sync liboil check with plugins-base. + +2007-07-20 11:37:37 +0000 Stefan Kost + + gst/equalizer/: Better algorith for the center frequencies. Subtract band filters from input for negative gains. Rewo... + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + (gst_iir_equalizer_band_set_property), + (gst_iir_equalizer_child_proxy_get_child_by_index), + (gst_iir_equalizer_child_proxy_get_children_count), + (gst_iir_equalizer_child_proxy_interface_init), + (gst_iir_equalizer_class_init), (arg_to_scale), (setup_filter), + (gst_iir_equalizer_compute_frequencies): + * gst/equalizer/gstiirequalizer10bands.c: + (gst_iir_equalizer_10bands_class_init): + * gst/equalizer/gstiirequalizer3bands.c: + (gst_iir_equalizer_3bands_class_init): + * gst/equalizer/gstiirequalizernbands.c: + Better algorith for the center frequencies. Subtract band filters from + input for negative gains. Rework the gain mapping. + +2007-07-20 11:03:39 +0000 Stefan Kost + + ext/dirac/Makefile.am: Also include stdlib here. + Original commit message from CVS: + * ext/dirac/Makefile.am: + Also include stdlib here. + +2007-07-19 15:29:52 +0000 Jan Schmidt + + tests/check/elements/.cvsignore: Fix the buildbot with the cvsignore it wants. + Original commit message from CVS: + * tests/check/elements/.cvsignore: + Fix the buildbot with the cvsignore it wants. + +2007-07-19 15:05:30 +0000 Julien Moutte + + Adds a first draft of an FLV demuxer. + Original commit message from CVS: + 2007-07-19 Julien MOUTTE + * configure.ac: + * gst/flv/Makefile.am: + * gst/flv/gstflvdemux.c: (gst_flv_demux_flush), + (gst_flv_demux_cleanup), (gst_flv_demux_chain), + (gst_flv_demux_pull_tag), (gst_flv_demux_pull_header), + (gst_flv_demux_seek_to_prev_keyframe), (gst_flv_demux_loop), + (gst_flv_demux_sink_activate), + (gst_flv_demux_sink_activate_push), + (gst_flv_demux_sink_activate_pull), (gst_flv_demux_sink_event), + (gst_flv_demux_change_state), (gst_flv_demux_dispose), + (gst_flv_demux_base_init), (gst_flv_demux_class_init), + (gst_flv_demux_init), (plugin_init): + * gst/flv/gstflvdemux.h: + * gst/flv/gstflvparse.c: (FLV_GET_BEUI24), (FLV_GET_STRING), + (gst_flv_demux_query_types), (gst_flv_demux_query), + (gst_flv_parse_metadata_item), (gst_flv_parse_tag_script), + (gst_flv_parse_tag_audio), (gst_flv_parse_tag_video), + (gst_flv_parse_tag_type), (gst_flv_parse_header): + * gst/flv/gstflvparse.h: Adds a first draft of an FLV demuxer. + It does not do seeking yet, it supports pull and push mode so + YES + you can use it to play youtube videos directly from an HTTP uri. + Not so much testing done yet but it parses metadata, reply to + duration queries, etc... + +2007-07-19 09:08:30 +0000 Stefan Kost + + tests/check/Makefile.am: tests/check/elements/timidity.c (GST_START_TEST, timidity_suite, main): + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/timidity.c (GST_START_TEST, timidity_suite, + main): + Add typefind test for midi. + +2007-07-18 20:56:22 +0000 Michael Smith + + ext/soundtouch/gstpitch.cc: If we receive a new segment event, don't try to push buffers out in response (without fir... + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + If we receive a new segment event, don't try to push buffers out + in response (without first sending it on!). + Instead, flush internal buffers on receiving flush events. + Fixes playback after seeking. + +2007-07-18 08:00:06 +0000 Stefan Kost + + gst/bayer/gstbayer2rgb.c: Add basic docs. Use glibs mem routines. + Original commit message from CVS: + * gst/bayer/gstbayer2rgb.c: (gst_bayer2rgb_set_caps), + (gst_bayer2rgb_reset): + Add basic docs. Use glibs mem routines. + +2007-07-18 07:51:11 +0000 Stefan Kost + + gst/multifile/gstmultifilesrc.c: Add example to the docs. Fix buffer-offset-end and add some debug. + Original commit message from CVS: + * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_create): + Add example to the docs. Fix buffer-offset-end and add some debug. + +2007-07-18 07:42:47 +0000 Stefan Kost + + ext/jack/gstjackaudiosink.c: Add stdlib include here too. + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device), + (gst_jack_ring_buffer_acquire): + Add stdlib include here too. + +2007-07-18 07:35:32 +0000 Stefan Kost + + Add stdlib include (free, atoi, exit). + Original commit message from CVS: + * examples/app/appsrc_ex.c: + * examples/switch/switcher.c: + * ext/neon/gstneonhttpsrc.c: + * ext/timidity/gstwildmidi.c: + * ext/x264/gstx264enc.c: + * gst/mve/mveaudioenc.c: (mve_compress_audio): + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + * gst/spectrum/demo-audiotest.c: + * gst/spectrum/demo-osssrc.c: + * sys/dvb/gstdvbsrc.c: + Add stdlib include (free, atoi, exit). + +2007-07-16 09:19:14 +0000 Sebastian Dröge + + ext/faad/gstfaad.c: Fix buffer clipping to correctly clip to the segment stop. + Original commit message from CVS: + * ext/faad/gstfaad.c: (clip_outgoing_buffer): + Fix buffer clipping to correctly clip to the segment stop. + +2007-07-14 18:48:25 +0000 Hans de Goede + + gst/modplug/gstmodplug.cc: add several missing supported mime-types to the modplug plugin. + Original commit message from CVS: + Patch by: Hans de Goede + * gst/modplug/gstmodplug.cc: + add several missing supported mime-types to the modplug plugin. + Fixes #456901. + +2007-07-13 16:46:00 +0000 Jan Schmidt + + Remove bogus check for libcheck, since we check for gstreamer-check and it pulls in the required info from there, and... + Original commit message from CVS: + * configure.ac: + * tests/Makefile.am: + Remove bogus check for libcheck, since we check for + gstreamer-check and it pulls in the required info from there, and we + weren't actually _using_ the information for libcheck ourselves + anyway. + +2007-07-12 11:55:10 +0000 Stefan Kost + + configure.ac: Use pkg-config to locate check. + Original commit message from CVS: + * configure.ac: + Use pkg-config to locate check. + +2007-07-11 23:43:25 +0000 Tim-Philipp Müller + + gst/: Fix build against core CVS. + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_process): + * gst/vmnc/vmncdec.c: (vmnc_make_buffer): + Fix build against core CVS. + +2007-07-09 06:05:45 +0000 Stefan Kost + + REQUIREMENTS: Sync with changes in -ugly. + Original commit message from CVS: + * REQUIREMENTS: + Sync with changes in -ugly. + +2007-07-08 19:06:48 +0000 Tim-Philipp Müller + + REQUIREMENTS: Add download location of libamrwb. + Original commit message from CVS: + * REQUIREMENTS: + Add download location of libamrwb. + +2007-07-06 21:07:21 +0000 Tim-Philipp Müller + + docs/plugins/inspect/: Add missing inspect files. Fixes build (#454313). + Original commit message from CVS: + * docs/plugins/inspect/plugin-amrwb.xml: + * docs/plugins/inspect/plugin-equalizer.xml: + * docs/plugins/inspect/plugin-multifile.xml: + * docs/plugins/inspect/plugin-timidity.xml: + * docs/plugins/inspect/plugin-wildmidi.xml: + Add missing inspect files. Fixes build (#454313). + * ext/timidity/gstwildmidi.c: (wildmidi_open_config): + Scream a bit louder when initialisation fails. + * gst-libs/README: + * gst-libs/ext/.cvsignore: + Remove some cruft. + +2007-07-05 22:28:04 +0000 Tim-Philipp Müller + + ext/ivorbis/Makefile.am: Dist header files. Fixes #454078. + Original commit message from CVS: + * ext/ivorbis/Makefile.am: + Dist header files. Fixes #454078. + +2007-07-05 08:45:32 +0000 Stefan Kost + + docs/plugins/Makefile.am: Simplify --extra-dir as gtkdoc scans recursively. + Original commit message from CVS: + * docs/plugins/Makefile.am: + Simplify --extra-dir as gtkdoc scans recursively. + * ext/amrwb/gstamrwbenc.c: + Fix comment start. + +2007-07-04 11:56:55 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c (dvbsrc_details, ARG_DVBSRC_ADAPTER, + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c (dvbsrc_details, ARG_DVBSRC_ADAPTER, + ARG_DVBSRC_FRONTEND, ARG_DVBSRC_DISEQC_SRC, ARG_DVBSRC_FREQUENCY, + ARG_DVBSRC_POLARITY, gst_dvbsrc_class_init, gst_dvbsrc_init, + gst_dvbsrc_set_property, gst_dvbsrc_get_property, + gst_dvbsrc_open_frontend, gst_dvbsrc_open_dvr, read_device, + gst_dvbsrc_create, gst_dvbsrc_set_pes_filters): + * sys/dvb/gstdvbsrc.h (adapter_number, frontend_number): + Removed property "device". Added properties "adapter" and "frontend". + Fixes #453636. + Rename freq property to frequency. + +2007-07-03 17:09:24 +0000 Wim Taymans + + gst/videosignal/gstvideodetect.c: Fix property descriptions. + Original commit message from CVS: + * gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init): + Fix property descriptions. + +2007-07-03 09:18:22 +0000 Stefan Kost + + Also document AMR-WB elements. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + Also document AMR-WB elements. + +2007-07-03 08:16:15 +0000 Stefan Kost + + docs/plugins/: Cleanup the section file so that -unused is empty again (and useful to spot new docs). Add not yet add... + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + Cleanup the section file so that -unused is empty again (and useful to + spot new docs). Add not yet added docs to sgml file. Add more header + to Makefile.am to make them introspectable. + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gdp.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Update the doc blobs. + +2007-07-03 08:01:18 +0000 Stefan Kost + + gst/multifile/: Add .h files to be able to add it to the docs. + Original commit message from CVS: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesink.h: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/gstmultifilesrc.h: + Add .h files to be able to add it to the docs. + +2007-07-03 07:52:52 +0000 Stefan Kost + + gst/modplug/gstmodplug.cc: Activate doc section. + Original commit message from CVS: + * gst/modplug/gstmodplug.cc: + Activate doc section. + +2007-07-03 07:41:34 +0000 Stefan Kost + + ext/timidity/: Fix licence (both are GPL). Add element docs. + Original commit message from CVS: + * ext/timidity/gsttimidity.c: + * ext/timidity/gstwildmidi.c: + * ext/timidity/gstwildmidi.h: + Fix licence (both are GPL). Add element docs. + +2007-07-03 07:30:47 +0000 Stefan Kost + + ext/musicbrainz/gsttrm.h: Fix _get_type signature. + Original commit message from CVS: + * ext/musicbrainz/gsttrm.h: + Fix _get_type signature. + +2007-07-03 07:16:26 +0000 Stefan Kost + + gst/replaygain/gstrgvolume.h: Fix GObject macros. + Original commit message from CVS: + * gst/replaygain/gstrgvolume.h: + Fix GObject macros. + +2007-06-29 15:23:34 +0000 Jan Schmidt + + ext/dc1394/gstdc1394.c: Make a bunch of functions static, and move variable declarations to the start of blocks to av... + Original commit message from CVS: + * ext/dc1394/gstdc1394.c: (gst_dc1394_src_fixate), + (gst_dc1394_create), (gst_dc1394_caps_set_format_vmode_caps), + (gst_dc1394_set_caps_framesize_range), + (gst_dc1394_caps_set_framerate_list), (gst_dc1394_get_cam_caps), + (gst_dc1394_framerate_frac_to_const), + (gst_dc1394_open_cam_with_best_caps): + Make a bunch of functions static, and move variable declarations + to the start of blocks to avoid problems on older gcc. + Make sure to unset value types. + +2007-06-29 14:48:59 +0000 Jan Schmidt + + ext/dc1394/gstdc1394.c: The correct fourcc for the 4:1:1 packed format is 'IYU1'. + Original commit message from CVS: + * ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color): + The correct fourcc for the 4:1:1 packed format is 'IYU1'. + With CVS of ffmpegcolorspace from plugins-base, I can now + get 30 fps from the iSight. + +2007-06-29 14:11:24 +0000 Jan Schmidt + + ext/dc1394/gstdc1394.c: Change a g_print to a GST_DEBUG message. + Original commit message from CVS: + * ext/dc1394/gstdc1394.c: (gst_dc1394_set_caps_color): + Change a g_print to a GST_DEBUG message. + +2007-06-29 13:09:19 +0000 Jan Schmidt + + * ChangeLog: + Oops, add an attribution for Antoine Tremblay too - the original patch author. + Original commit message from CVS: + Oops, add an attribution for Antoine Tremblay too - the original patch author. + +2007-06-29 13:03:27 +0000 Eric Jonas + + Commit new dc1394src element. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/dc1394/Makefile.am: + * ext/dc1394/gstdc1394.c: (gst_dc1394_base_init), + (gst_dc1394_class_init), (gst_dc1394_init), + (gst_dc1394_src_fixate), (gst_dc1394_set_property), + (gst_dc1394_get_property), (gst_dc1394_getcaps), + (gst_dc1394_setcaps), (gst_dc1394_get_times), (gst_dc1394_create), + (gst_dc1394_parse_caps), (gst_dc1394_change_state), + (gst_dc1394_caps_set_format_vmode_caps), + (gst_dc1394_set_caps_color), (gst_dc1394_set_caps_framesize), + (gst_dc1394_set_caps_framesize_range), + (gst_dc1394_caps_set_framerate_list), + (gst_dc1394_framerate_const_to_frac), + (gst_dc1394_get_all_dc1394_caps), (gst_dc1394_get_cam_caps), + (gst_dc1394_framerate_frac_to_const), + (gst_dc1394_open_cam_with_best_caps), + (gst_dc1394_change_camera_transmission), (plugin_init): + * ext/dc1394/gstdc1394.h: + Commit new dc1394src element. + Patch By: Eric Jonas < jonas at mit dot edu > + Close: #387251 + +2007-06-28 10:40:16 +0000 Wim Taymans + + gst/videosignal/gstvideodetect.c: Register new property as well. + Original commit message from CVS: + * gst/videosignal/gstvideodetect.c: (gst_video_detect_class_init): + Register new property as well. + +2007-06-28 09:36:20 +0000 Wim Taymans + + gst/videosignal/gstvideodetect.*: Add property to adjust the center, sensitivity is now the distance from this center. + Original commit message from CVS: + * gst/videosignal/gstvideodetect.c: (gst_video_detect_420), + (gst_video_detect_set_property), (gst_video_detect_get_property): + * gst/videosignal/gstvideodetect.h: + Add property to adjust the center, sensitivity is now the distance from + this center. + +2007-06-27 15:33:26 +0000 Wim Taymans + + gst/videosignal/: Add left and bottom offset properties to control the position of the pattern. + Original commit message from CVS: + * gst/videosignal/gstvideodetect.c: (gst_video_detect_420), + (gst_video_detect_set_property), (gst_video_detect_get_property), + (gst_video_detect_class_init): + * gst/videosignal/gstvideodetect.h: + * gst/videosignal/gstvideomark.c: (gst_video_mark_draw_box), + (gst_video_mark_420), (gst_video_mark_set_property), + (gst_video_mark_get_property), (gst_video_mark_class_init): + * gst/videosignal/gstvideomark.h: + Add left and bottom offset properties to control the position of the + pattern. + +2007-06-25 12:47:43 +0000 Stefan Kost + + docs/plugins/: Update docs with caps info. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-gdp.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Update docs with caps info. + +2007-06-25 11:02:21 +0000 Tim-Philipp Müller + + gconf/: Remove dysfunctional directory (this stuff is in -good). + Original commit message from CVS: + * gconf/.cvsignore: + * gconf/Makefile.am: + * gconf/gstreamer.schemas.in: + Remove dysfunctional directory (this stuff is in -good). + * ext/sndfile/gstsf.c: (plugin_init): + * sys/dvb/gstdvbsrc.c: (plugin_init): + Add i18n bindtextdomain stuff. + * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_class_init), + (plugin_init): + Post an error message when returning GST_FLOW_ERROR; minor cleanups. + * po/POTFILES.in: + Add more source files with translatable strings (fixes #450605). + +2007-06-23 11:24:44 +0000 Thomas Vander Stichele + + po/: Added Chinese (simplified) translation. + Original commit message from CVS: + Contributed by: Wenzheng Hu + * po/LINGUAS: + * po/zh_CN.po: + Added Chinese (simplified) translation. + +2007-06-22 20:23:18 +0000 Jens Granseuer + + gst/: Build fixes for gcc-2.9x (no mid-block variable declarations etc.). + Original commit message from CVS: + Patch by: Jens Granseuer + * gst/equalizer/gstiirequalizer.c: + * gst/equalizer/gstiirequalizer10bands.c: + * gst/equalizer/gstiirequalizer3bands.c: + * gst/equalizer/gstiirequalizernbands.c: + * gst/rtpmanager/async_jitter_queue.c: + (async_jitter_queue_push_sorted): + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_chain): + * gst/switch/gstswitch.c: (gst_switch_chain): + Build fixes for gcc-2.9x (no mid-block variable declarations etc.). + Fixes #450185. + +2007-06-22 15:30:00 +0000 Zaheer Abbas Merali + + * ChangeLog: + * examples/switch/switcher.c: + * gst/switch/gstswitch.c: + * gst/switch/gstswitch.h: + examples/switch/switcher.c (my_bus_callback, switch_timer, last_message_received, main): gst/switch/gstswitch.c (gst_... + Original commit message from CVS: + * examples/switch/switcher.c (my_bus_callback, switch_timer, + last_message_received, main): + * gst/switch/gstswitch.c (gst_switch_release_pad, + gst_switch_request_new_pad, gst_switch_chain, gst_switch_event, + gst_switch_set_property, gst_switch_get_property, + gst_switch_get_linked_pad, gst_switch_getcaps, + gst_switch_bufferalloc, gst_switch_dispose, gst_switch_init): + * gst/switch/gstswitch.h (switch_mutex, GST_SWITCH_LOCK, + GST_SWITCH_UNLOCK): + Add an extra lock to protect against certain variables instead of + using the object lock. Fix case where caps are different in the + sink pads causes deadlock. Update example to use different caps + on each sink pad. + +2007-06-22 14:27:40 +0000 Jan Schmidt + + MAINTAINERS: Updating all the maintainers files + Original commit message from CVS: + * MAINTAINERS: + Updating all the maintainers files + +2007-06-22 10:46:33 +0000 Edward Hervey + + Fix leaks. + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_init): + * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_init): + * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_init): + * ext/audioresample/gstaudioresample.c: + * ext/bz2/gstbz2dec.c: (gst_bz2dec_init): + * ext/bz2/gstbz2enc.c: (gst_bz2enc_init): + * ext/divx/gstdivxdec.c: (gst_divxdec_init): + * ext/divx/gstdivxenc.c: (gst_divxenc_init): + * ext/faac/gstfaac.c: (gst_faac_init): + * ext/gsm/gstgsmdec.c: (gst_gsmdec_init): + * ext/gsm/gstgsmenc.c: (gst_gsmenc_init): + * ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_init): + * ext/lcs/gstcolorspace.c: (gst_colorspace_init): + * ext/libfame/gstlibfame.c: (gst_fameenc_init): + * ext/snapshot/gstsnapshot.c: (gst_snapshot_init): + * ext/spc/gstspc.c: (gst_spc_dec_init): + * ext/swfdec/gstswfdec.c: (gst_swfdec_init): + * ext/xvid/gstxvidenc.c: (gst_xvidenc_init): + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init): + * gst/chart/gstchart.c: (gst_chart_init): + * gst/colorspace/gstcolorspace.c: (gst_colorspace_init): + * gst/festival/gstfestival.c: (gst_festival_init): + * gst/freeze/gstfreeze.c: (gst_freeze_init): + * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_request_new_pad): + * gst/mpeg1sys/gstmpeg1systemencode.c: (gst_system_encode_init): + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init): + * gst/nsf/gstnsf.c: (gst_nsfdec_init): + * gst/overlay/gstoverlay.c: (gst_overlay_init): + * gst/passthrough/gstpassthrough.c: (passthrough_init): + * gst/playondemand/gstplayondemand.c: (play_on_demand_init): + * gst/smooth/gstsmooth.c: (gst_smooth_init): + * gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_init): + * gst/speed/gstspeed.c: (speed_init): + * gst/vbidec/gstvbidec.c: (gst_vbidec_init): + * gst/videodrop/gstvideodrop.c: (gst_videodrop_init): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_init): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_init): + * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_init): + Fix leaks. + +2007-06-21 18:41:17 +0000 Tim-Philipp Müller + + Re-enable VCD source and fix up release notes. + Original commit message from CVS: + * RELEASE: + * sys/Makefile.am: + Re-enable VCD source and fix up release notes. + +2007-06-20 10:15:00 +0000 Stefan Kost + + gst/equalizer/gstiirequalizer.c: Document parameter mapping. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: + Document parameter mapping. + +2007-06-20 08:56:17 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Fix leaking buffers. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_event), + (gst_spectrum_transform_ip): + Fix leaking buffers. + * tests/check/Makefile.am: + * tests/check/elements/spectrum.c: (setup_spectrum), + (cleanup_spectrum), (GST_START_TEST), (spectrum_suite), (main): + Add simple test for spectrum element. + +2007-06-20 08:42:17 +0000 Stefan Kost + + ext/amrwb/: Add newsegment and discont handling. Some code cleanups. Don't leak the adapter, unref it in a new finali... + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init), + (gst_amrwbdec_class_init), (gst_amrwbdec_finalize), + (gst_amrwbdec_event), (gst_amrwbdec_chain), + (gst_amrwbdec_state_change): + * ext/amrwb/gstamrwbdec.h: + * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init), + (gst_amrwbparse_pull_header), (gst_amrwbparse_loop): + Add newsegment and discont handling. Some code cleanups. Don't leak + the adapter, unref it in a new finalize method instead. Sync the + parser with the amr-nb changes. + +2007-06-19 10:45:29 +0000 Jan Schmidt + + configure.ac: Back to CVS. + Original commit message from CVS: + * configure.ac: + Back to CVS. + * gst-plugins-bad.doap: + Add 0.10.5 to the doap file. + +=== release 0.10.5 === + +2007-06-19 10:32:38 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-swfdec.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videosignal.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Release 0.10.5 + Original commit message from CVS: + Release 0.10.5 + +2007-06-19 09:37:46 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/cs.po: + * po/da.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + Update .po files + Original commit message from CVS: + Update .po files + +2007-06-15 09:27:52 +0000 Jan Schmidt + + win32/vs6/: Convert line endings to CRLF and mark as binary files. + Original commit message from CVS: + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libdshowsrcwrapper.dsp: + * win32/vs6/libgstdshow.dsp: + * win32/vs6/libgstmpegvideoparse.dsp: + * win32/vs6/libgstneon.dsp: + Convert line endings to CRLF and mark as binary files. + +2007-06-13 11:48:07 +0000 Wim Taymans + + sys/Makefile.am: Disable VCD build because we're frozen.. + Original commit message from CVS: + * sys/Makefile.am: + Disable VCD build because we're frozen.. + +2007-06-13 11:37:36 +0000 Wim Taymans + + Port VCD element. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/vcd/Makefile.am: + * sys/vcd/vcdsrc.c: (gst_vcdsrc_setup_interfaces), + (gst_vcdsrc_base_init), (gst_vcdsrc_class_init), (gst_vcdsrc_init), + (gst_vcdsrc_msf), (gst_vcdsrc_recalculate), + (gst_vcdsrc_set_property), (gst_vcdsrc_get_property), + (gst_vcdsrc_create), (gst_vcdsrc_start), (gst_vcdsrc_stop), + (gst_vcdsrc_uri_set_uri): + * sys/vcd/vcdsrc.h: + Port VCD element. + +2007-06-12 21:28:12 +0000 Sébastien Moutte + + win32/MANIFEST: Add megvideoparse, libdshow and dshowsrcwrapper to win32 + Original commit message from CVS: + * win32/MANIFEST: + Add megvideoparse, libdshow and dshowsrcwrapper to win32 + MANIFEST. + * win32/vs6/gst_plugins_bad.dsw: + Remove qtdemux, directdraw, directsound and waveform project files + from the workspace as they have been moved to -good. + +2007-06-12 20:22:23 +0000 Jan Schmidt + + po/POTFILES.in: Remove qtdemux from the translation list. + Original commit message from CVS: + * po/POTFILES.in: + Remove qtdemux from the translation list. + +2007-06-12 20:15:14 +0000 Jan Schmidt + + Move videocrop and osxvideo to -good. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-osxvideo.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * gst-plugins-bad.spec.in: + * gst/videocrop/Makefile.am: + * gst/videocrop/gstvideocrop.c: + * gst/videocrop/gstvideocrop.h: + * gst/videocrop/videocrop.vcproj: + * sys/Makefile.am: + * sys/osxvideo/Makefile.am: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + * tests/check/Makefile.am: + * tests/check/elements/videocrop.c: + * tests/icles/Makefile.am: + * tests/icles/videocrop-test.c: + Move videocrop and osxvideo to -good. + +2007-06-12 19:36:11 +0000 Jan Schmidt + + Move qtdemux to -good. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/qtdemux/Makefile.am: + * gst/qtdemux/gstrtpxqtdepay.c: + * gst/qtdemux/gstrtpxqtdepay.h: + * gst/qtdemux/qtdemux.c: + * gst/qtdemux/qtdemux.h: + * gst/qtdemux/qtdemux.vcproj: + * gst/qtdemux/qtdemux_dump.c: + * gst/qtdemux/qtdemux_dump.h: + * gst/qtdemux/qtdemux_fourcc.h: + * gst/qtdemux/qtdemux_types.c: + * gst/qtdemux/qtdemux_types.h: + * gst/qtdemux/qtpalette.h: + * gst/qtdemux/quicktime.c: + * win32/MANIFEST: + * win32/vs6/libgstqtdemux.dsp: + Move qtdemux to -good. + * gst-plugins-bad.spec.in: + Update spec file to reflect wavpack & qtdemux moving to -good. + +2007-06-12 18:53:03 +0000 Jan Schmidt + + Remove the waveform plugin now that it is in -good. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-waveform.xml: + * sys/waveform/gstwaveformplugin.c: + * sys/waveform/gstwaveformsink.c: + * sys/waveform/gstwaveformsink.h: + * win32/MANIFEST: + * win32/vs6/libgstwaveform.dsp: + Remove the waveform plugin now that it is in -good. + +2007-06-08 20:20:34 +0000 Thomas Vander Stichele + + Move wavpack to good. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-wavpack.xml: + * ext/Makefile.am: + * ext/wavpack/Makefile.am: + * ext/wavpack/gstwavpack.c: + * ext/wavpack/gstwavpackcommon.c: + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackdec.c: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackenc.c: + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackparse.c: + * ext/wavpack/gstwavpackparse.h: + * ext/wavpack/gstwavpackstreamreader.c: + * ext/wavpack/gstwavpackstreamreader.h: + * ext/wavpack/md5.c: + * ext/wavpack/md5.h: + * tests/check/Makefile.am: + * tests/check/elements/wavpackdec.c: + * tests/check/elements/wavpackenc.c: + * tests/check/elements/wavpackparse.c: + Move wavpack to good. + +2007-06-08 17:36:46 +0000 Jan Schmidt + + Remove DirectDraw & DirectSound plugins, as they've moved to Good + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-directdraw.xml: + * docs/plugins/inspect/plugin-directsound.xml: + * sys/Makefile.am: + * sys/directdraw/Makefile.am: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/Makefile.am: + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + * win32/MANIFEST: + * win32/gst.sln: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + * win32/vs7/libgstdirectdraw.vcproj: + * win32/vs7/libgstdirectsound.vcproj: + * win32/vs8/libgstdirectdraw.vcproj: + * win32/vs8/libgstdirectsound.vcproj: + Remove DirectDraw & DirectSound plugins, as they've moved to Good + +2007-06-08 16:49:41 +0000 Tim-Philipp Müller + + When driving the pipeline, also post an error when we get a not-linked flow return from downstream. + Original commit message from CVS: + * ext/timidity/gsttimidity.c: (gst_timidity_loop): + * ext/timidity/gstwildmidi.c: (gst_wildmidi_loop): + * gst/tta/gstttaparse.c: (gst_tta_parse_loop): + When driving the pipeline, also post an error when we get a + not-linked flow return from downstream. + +2007-06-08 16:31:15 +0000 Jan Schmidt + + Rename the keep-aspect-ratio property to force-aspect-ratio to make it consistent with xvimagesink and ximagesink. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_class_init): + Rename the keep-aspect-ratio property to force-aspect-ratio to make + it consistent with xvimagesink and ximagesink. + +2007-06-08 08:12:43 +0000 Tim-Philipp Müller + + tests/icles/videocrop-test.c: Default to xvimagesink instead of autovideosink while autovideosink/ghostpads/whatever ... + Original commit message from CVS: + * tests/icles/videocrop-test.c: (main): + Default to xvimagesink instead of autovideosink while + autovideosink/ghostpads/whatever don't handle the way we use it in + the way we expect it to. + +2007-06-06 18:30:22 +0000 Tim-Philipp Müller + + configure.ac: Bump requirements to released versions of core and -base, and remove special-casing for equalizer and r... + Original commit message from CVS: + * configure.ac: + Bump requirements to released versions of core and -base, and remove + special-casing for equalizer and rtpmanager as it's not needed any + longer. + +2007-06-06 15:58:31 +0000 Jan Schmidt + + sys/glsink/glimagesink.c: Sprinkle in some XSync calls to avoid raciness with broken drivers (ATI) when re-using a si... + Original commit message from CVS: + * sys/glsink/glimagesink.c: (gst_glimage_sink_stop), + (gst_glimage_sink_create_window), (gst_glimage_sink_init_display): + Sprinkle in some XSync calls to avoid raciness with broken + drivers (ATI) when re-using a single glimagesink. + +2007-06-06 11:03:24 +0000 Jan Schmidt + + gst/mpegvideoparse/: Fix some silly bugs with calculating the guard sizes. + Original commit message from CVS: + * gst/mpegvideoparse/mpegpacketiser.c: + (mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr), + (mpeg_util_parse_picture_hdr): + * gst/mpegvideoparse/mpegvideoparse.c: + (mpegvideoparse_handle_sequence), (mpegvideoparse_drain_avail): + Fix some silly bugs with calculating the guard sizes. + Properly compare the old sequence header structure with the new one. + Don't error out on an invalid sequence - just ignore it. + +2007-06-06 09:11:31 +0000 Tim-Philipp Müller + + gst/real/gstrealvideodec.c: Printf fix in debug statement; also print the right number there. + Original commit message from CVS: + * gst/real/gstrealvideodec.c: (gst_real_video_dec_decode): + Printf fix in debug statement; also print the right number there. + +2007-06-06 08:06:44 +0000 Tim-Philipp Müller + + ext/sdl/: Add GST_CFLAGS, which apparently somehow fixes the build somewhere (#444499); initialise variable to avoid ... + Original commit message from CVS: + * ext/sdl/Makefile.am: + * ext/sdl/sdlvideosink.c: (gst_sdlv_process_events): + Add GST_CFLAGS, which apparently somehow fixes the build somewhere + (#444499); initialise variable to avoid false compiler warning. + +2007-06-05 14:17:36 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fix up spec file + Original commit message from CVS: + fix up spec file + +2007-06-01 14:36:04 +0000 Wim Taymans + + Add plugin to generate a pattern detectable by videodetect. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-videosignal.xml: + * gst/videosignal/Makefile.am: + * gst/videosignal/gstvideomark.c: (gst_video_mark_set_caps), + (gst_video_mark_draw_box), (gst_video_mark_420), + (gst_video_mark_transform_ip), (gst_video_mark_set_property), + (gst_video_mark_get_property), (gst_video_mark_base_init), + (gst_video_mark_class_init), (gst_video_mark_init), + (gst_video_mark_get_type): + * gst/videosignal/gstvideomark.h: + * gst/videosignal/gstvideosignal.c: (plugin_init): + Add plugin to generate a pattern detectable by videodetect. + +2007-06-01 11:59:52 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Don't leak buffer when returning an error. + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create): + Don't leak buffer when returning an error. + +2007-06-01 09:58:01 +0000 René Stadler + + ext/neon/gstneonhttpsrc.*: Deprecated "uri" property. Clean up property descriptions. + Original commit message from CVS: + Patch by René Stadler : + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_init), (gst_neonhttp_src_dispose), + (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property), + (gst_neonhttp_src_start), (gst_neonhttp_src_do_seek), + (gst_neonhttp_src_set_location), + (gst_neonhttp_src_send_request_and_redirect), + (gst_neonhttp_src_uri_get_uri), (gst_neonhttp_src_uri_set_uri): + * ext/neon/gstneonhttpsrc.h: + Deprecated "uri" property. Clean up property descriptions. + Change default User-Agent to the slightly more descriptive + "GStreamer neonhttpsrc". + Various other small cleanups, mostly property related. + +2007-05-31 19:12:37 +0000 Tim-Philipp Müller + + ext/libmms/gstmms.h: No reason to use gpointers instead of typed pointes here as far as I can see. + Original commit message from CVS: + * ext/libmms/gstmms.h: + No reason to use gpointers instead of typed pointes here as far as I + can see. + * ext/mythtv/gstmythtvsrc.c: + * ext/neon/gstneonhttpsrc.c: + * gst/switch/gstswitch.c: + Don't use gtk-doc magic markers for things that aren't meant to be + parsed by gtk-doc. Makes gtk-doc complain a bit less. + +2007-05-30 14:52:07 +0000 Wim Taymans + + Added videosignal plugin with two plugins to analyse video frames. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-videosignal.xml: + * gst/videosignal/Makefile.am: + * gst/videosignal/gstvideoanalyse.c: (gst_video_analyse_set_caps), + (gst_video_analyse_post_message), (gst_video_analyse_420), + (gst_video_analyse_transform_ip), (gst_video_analyse_set_property), + (gst_video_analyse_get_property), (gst_video_analyse_base_init), + (gst_video_analyse_class_init), (gst_video_analyse_init), + (gst_video_analyse_get_type): + * gst/videosignal/gstvideoanalyse.h: + * gst/videosignal/gstvideodetect.c: (gst_video_detect_set_caps), + (gst_video_detect_post_message), + (gst_video_detect_calc_brightness), (gst_video_detect_420), + (gst_video_detect_transform_ip), (gst_video_detect_set_property), + (gst_video_detect_get_property), (gst_video_detect_base_init), + (gst_video_detect_class_init), (gst_video_detect_init), + (gst_video_detect_get_type): + * gst/videosignal/gstvideodetect.h: + * gst/videosignal/gstvideosignal.c: (plugin_init): + * gst/videosignal/gstvideosignal.h: + Added videosignal plugin with two plugins to analyse video frames. + Added videoanalyse to report about brightness and variance in video + frames. + Added videodetect to detect predefined patterns in a video signal. + +2007-05-30 09:30:52 +0000 Tim-Philipp Müller + + docs/plugins/gst-plugins-bad-plugins.*: More updates. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + More updates. + +2007-05-30 09:08:24 +0000 Tim-Philipp Müller + + docs/plugins/: Updates; update inspect info for rtpmanager => gstrtpmanager rename, hopefully that makes the build bo... + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-gstrtpmanager.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-rtpmanager.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-swfdec.xml: + Updates; update inspect info for rtpmanager => gstrtpmanager rename, + hopefully that makes the build bots happy again. + +2007-05-28 16:37:47 +0000 Wim Taymans + + Rename elements to avoid conflict with farsight elements with the same name. Fixes #430664. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/rtpmanager/gstrtpbin.c: (create_session), (create_stream), + (gst_rtp_bin_class_init), (create_recv_rtp), (create_recv_rtcp), + (create_send_rtp), (create_rtcp), (gst_rtp_bin_request_new_pad): + * gst/rtpmanager/gstrtpclient.c: (create_stream), + (gst_rtp_client_request_new_pad): + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/gstrtpmanager.c: (plugin_init): + * gst/rtpmanager/gstrtpptdemux.c: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_request_new_pad): + * gst/rtpmanager/gstrtpssrcdemux.c: + Rename elements to avoid conflict with farsight elements with the same + name. Fixes #430664. + +2007-05-24 08:35:23 +0000 Vincent Torri + + sys/directdraw/gstdirectdrawsink.*: Fix more warnings when compiling with MingW (#439914). + Original commit message from CVS: + Patch by: Vincent Torri + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdraw_sink_buffer_alloc), + (gst_directdraw_sink_show_frame), + (gst_directdraw_sink_check_primary_surface), + (gst_directdraw_sink_check_offscreen_surface), + (EnumModesCallback2), (gst_directdraw_sink_get_ddrawcaps), + (gst_directdraw_sink_surface_create): + * sys/directdraw/gstdirectdrawsink.h: + Fix more warnings when compiling with MingW (#439914). + +2007-05-23 22:44:12 +0000 Sébastien Moutte + + docs/plugins/gst-plugins-bad-plugins.args: Remove directsoundsink property doc as this sink use the mixer interface now. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + Remove directsoundsink property doc as this sink use the mixer + interface now. + * docs/plugins/gst-plugins-bad-plugins.interfaces: + Add interfaces implemented by Windows sinks. + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + Remove directsoundsink property and implement the mixer interface. + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libgstdirectsound.dsp: + Update project files. + * gst-libs/gst/dshow/gstdshow.cpp: + * gst-libs/gst/dshow/gstdshow.h: + * gst-libs/gst/dshow/gstdshowfakesink.cpp: + * gst-libs/gst/dshow/gstdshowfakesink.h: + * gst-libs/gst/dshow/gstdshowfakesrc.cpp: + * gst-libs/gst/dshow/gstdshowfakesrc.h: + * gst-libs/gst/dshow/gstdshowinterface.cpp: + * gst-libs/gst/dshow/gstdshowinterface.h: + * win32/common/libgstdshow.def: + * win32/vs6/libgstdshow.dsp: + Add a new gst library which allow to create internal Direct Show + graph (pipelines) to wrap Windows sources, decoders or encoders. + It includes a DirectShow fake source and sink and utility functions. + * sys/dshowsrcwrapper/gstdshowaudiosrc.c: + * sys/dshowsrcwrapper/gstdshowaudiosrc.h: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.c: + * sys/dshowsrcwrapper/gstdshowsrcwrapper.h: + * sys/dshowsrcwrapper/gstdshowvideosrc.c: + * sys/dshowsrcwrapper/gstdshowvideosrc.h: + * win32/vs6/libdshowsrcwrapper.dsp: + Add a new plugin to wrap DirectShow sources on Windows. + It gets data from any webcam, dv cam, micro. We could add + tv tunner card later. + +2007-05-23 18:00:15 +0000 René Stadler + + ext/sdl/sdlvideosink.c: Separate the authors by newlines instead of nothing. Fixes #440774. + Original commit message from CVS: + Patch by René Stadler : + * ext/sdl/sdlvideosink.c: + Separate the authors by newlines instead of nothing. Fixes #440774. + +2007-05-23 16:14:13 +0000 Wim Taymans + + docs/plugins/inspect/plugin-rtpmanager.xml: Add doc xml file. + Original commit message from CVS: + * docs/plugins/inspect/plugin-rtpmanager.xml: + Add doc xml file. + +2007-05-23 13:08:52 +0000 Wim Taymans + + Document stuff. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_rtp_jitter_buffer_clear_pt_map), (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init), + (gst_rtp_pt_demux_clear_pt_map): + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (rtcp_thread), (gst_rtp_session_clear_pt_map): + * gst/rtpmanager/gstrtpsession.h: + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_class_init): + Document stuff. + Add clear-pt-map action signal where needed. + +2007-05-22 11:14:13 +0000 Stefan Kost + + configure.ac: Depend on gstreamer-0.10.12.1. gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _Gs... + Original commit message from CVS: + * configure.ac: + Depend on gstreamer-0.10.12.1. + * gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, + _GstIirEqualizerBand, object, _GstIirEqualizerBandClass, + parent_class, gst_iir_equalizer_band_set_property, + gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type, + gst_iir_equalizer_child_proxy_get_child_by_index, + gst_iir_equalizer_child_proxy_get_children_count, + gst_iir_equalizer_child_proxy_interface_init, setup_filter, + gst_iir_equalizer_compute_frequencies, + gst_iir_equalizer_set_property, gst_iir_equalizer_get_property, + plugin_init): + * gst/equalizer/gstiirequalizer.h (audiofilter): + * gst/equalizer/gstiirequalizernbands.c (ARG_NUM_BANDS, + gst_iir_equalizer_nbands_base_init, gst_iir_equalizer_nbands_init, + gst_iir_equalizer_nbands_set_property): + Use new locking macros. + * gst/filter/gstbpwsinc.c (bpwsinc_set_caps): + Add fixme. + * gst/spectrum/gstspectrum.c (SPECTRUM_WINDOW_BASE, + SPECTRUM_WINDOW_LEN, gst_spectrum_init, gst_spectrum_set_property, + gst_spectrum_event, gst_spectrum_transform_ip): + Use new locking macros. Turn two fixed values into #defines. + +2007-05-22 11:03:30 +0000 Edward Hervey + + docs/plugins/Makefile.am: Also look for .m (objectivec) files. + Original commit message from CVS: + * docs/plugins/Makefile.am: + Also look for .m (objectivec) files. + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * sys/osxvideo/osxvideosink.m: + Add documentation for element and properties. + +2007-05-21 14:01:16 +0000 Stefan Kost + + ChangeLog: ChangeLog surgery. gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, _GstIirEqualizerBa... + Original commit message from CVS: + * ChangeLog: + ChangeLog surgery. + * gst/equalizer/gstiirequalizer.c (ARG_BAND_WIDTH, _do_init, ARG_GAIN, + _GstIirEqualizerBand, object, _GstIirEqualizerBandClass, + parent_class, gst_iir_equalizer_band_set_property, + gst_iir_equalizer_band_class_init, gst_iir_equalizer_band_get_type, + gst_iir_equalizer_child_proxy_get_child_by_index, + gst_iir_equalizer_child_proxy_get_children_count, + gst_iir_equalizer_child_proxy_interface_init, setup_filter, + gst_iir_equalizer_compute_frequencies, plugin_init): + * tests/icles/equalizer-test.c: + Add fixme and comment for example. + +2007-05-21 12:43:37 +0000 Stefan Kost + + * ChangeLog: + * gst/spectrum/gstspectrum.c: + gst/spectrum/gstspectrum.c (gst_spectrum_set_property, gst_spectrum_event, gst_spectrum_transform_ip): + Original commit message from CVS: + * gst/spectrum/gstspectrum.c (gst_spectrum_set_property, + gst_spectrum_event, gst_spectrum_transform_ip): + Use lock to protect from concurrent access. + +2007-05-21 11:37:16 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.c: Specify and use properties as unsigned int that are an unsigned int. + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init), + (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property): + Specify and use properties as unsigned int that are an unsigned int. + +2007-05-21 11:17:21 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.*: Fixup docs, make the bitrate property an int as it should be and allow to set the differ... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init), + (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config), + (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property): + * ext/wavpack/gstwavpackenc.h: + Fixup docs, make the bitrate property an int as it should be and + allow to set the different extra processing modes instead of only + allowing none and the default one. + +2007-05-20 21:31:58 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.c: Add missing audioconverts in the example pipelines of wavpackenc. As the wavpack stuff n... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: + Add missing audioconverts in the example pipelines of wavpackenc. As + the wavpack stuff now needs input with 32 bit width (and random depth) + this is needed now. The example pipelines for the parser and decoder + are still fine. + +2007-05-20 15:12:31 +0000 Thomas Vander Stichele + + docs/plugins/: Fix docs build and hierarchy. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + Fix docs build and hierarchy. + +2007-05-20 14:59:46 +0000 Tim-Philipp Müller + + sys/directdraw/gstdirectdrawsink.c: Bunch of small fixes: remove static function that doesn't exist; declare another ... + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: (gst_ddrawsurface_finalize), + (gst_directdraw_sink_buffer_alloc), + (gst_directdraw_sink_get_ddrawcaps), + (gst_directdraw_sink_surface_create): + Bunch of small fixes: remove static function that doesn't exist; + declare another one that does; printf format fix; use right macro + when specifying debug category; remove a bunch of unused variables; + #if 0 out an unused chunk of code (partially fixes #439914). + +2007-05-20 14:14:49 +0000 Tim-Philipp Müller + + gst/: Printf format fixes (#439910, #439911). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample): + * gst/switch/gstswitch.c: (gst_switch_chain): + Printf format fixes (#439910, #439911). + +2007-05-19 10:06:02 +0000 Tim-Philipp Müller + + tests/check/Makefile.am: Remove bits for deinterleave check which isn't in CVS yet. + Original commit message from CVS: + * tests/check/Makefile.am: + Remove bits for deinterleave check which isn't in CVS yet. + +2007-05-19 10:01:45 +0000 René Stadler + + Add replaygain playback elements (#412710). + Original commit message from CVS: + Patch by: René Stadler + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-replaygain.xml: + * gst/replaygain/Makefile.am: + * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_class_init), + (gst_rg_analysis_start), (gst_rg_analysis_set_caps), + (gst_rg_analysis_transform_ip), (gst_rg_analysis_event), + (gst_rg_analysis_stop), (gst_rg_analysis_handle_tags), + (gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result), + (gst_rg_analysis_album_result): + * gst/replaygain/gstrganalysis.h: + * gst/replaygain/gstrglimiter.c: (gst_rg_limiter_base_init), + (gst_rg_limiter_class_init), (gst_rg_limiter_init), + (gst_rg_limiter_set_property), (gst_rg_limiter_get_property), + (gst_rg_limiter_transform_ip): + * gst/replaygain/gstrglimiter.h: + * gst/replaygain/gstrgvolume.c: (gst_rg_volume_base_init), + (gst_rg_volume_class_init), (gst_rg_volume_init), + (gst_rg_volume_set_property), (gst_rg_volume_get_property), + (gst_rg_volume_dispose), (gst_rg_volume_change_state), + (gst_rg_volume_sink_event), (gst_rg_volume_tag_event), + (gst_rg_volume_reset), (gst_rg_volume_update_gain), + (gst_rg_volume_determine_gain): + * gst/replaygain/gstrgvolume.h: + * gst/replaygain/replaygain.c: (plugin_init): + * gst/replaygain/replaygain.h: + * gst/replaygain/rganalysis.h: + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/rganalysis.c: (send_eos_event), + (GST_START_TEST): + * tests/check/elements/rglimiter.c: (setup_rglimiter), + (cleanup_rglimiter), (set_playing_state), (create_test_buffer), + (verify_test_buffer), (GST_START_TEST), (rglimiter_suite), (main): + * tests/check/elements/rgvolume.c: (event_func), (setup_rgvolume), + (cleanup_rgvolume), (set_playing_state), (set_null_state), + (send_eos_event), (send_tag_event), (test_buffer_new), + (fail_unless_target_gain), (fail_unless_result_gain), + (fail_unless_gain), (GST_START_TEST), (rgvolume_suite), (main): + Add replaygain playback elements (#412710). + +2007-05-18 16:45:54 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update + Original commit message from CVS: + update + +2007-05-18 12:39:49 +0000 Jan Schmidt + + sys/glsink/glimagesink.c: Update the cached caps after opening the display so that we report only the supported caps ... + Original commit message from CVS: + * sys/glsink/glimagesink.c: (gst_glimage_sink_init_display): + Update the cached caps after opening the display so that we report + only the supported caps formats, not just the template caps. + Fixes: #439405 + +2007-05-18 09:35:28 +0000 Stefan Kost + + * ChangeLog: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + ext/amrwb/gstamrwbdec.c (gst_amrwbdec_debug, GST_CAT_DEFAULT, _do_init, gst_amrwbdec_base_init, gst_amrwbdec_class_in... + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c (gst_amrwbdec_debug, GST_CAT_DEFAULT, + _do_init, gst_amrwbdec_base_init, gst_amrwbdec_class_init): + * ext/amrwb/gstamrwbenc.c (gst_amrwbenc_debug, GST_CAT_DEFAULT, + _do_init, gst_amrwbenc_base_init, gst_amrwbenc_class_init): + * ext/amrwb/gstamrwbparse.c (gst_amrwbparse_debug, GST_CAT_DEFAULT, + _do_init, gst_amrwbparse_base_init, gst_amrwbparse_class_init): + First round of cleanups, that use GST_BOILERPLATE, GST_ELEMENT_DETAILS, + GST_DEBUG_FUNCPTR and add log-category. + +2007-05-17 10:59:00 +0000 Edward Hervey + + sys/osxvideo/osxvideosink.*: Remove the event-loop-in-separate-thread modifications, because MacOSX is $#@(*%$# ! For... + Original commit message from CVS: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + Remove the event-loop-in-separate-thread modifications, because MacOSX + is $#@(*%$# ! For those wondering, the event handling needs to be done + in the main thread after all.. + +2007-05-17 10:08:24 +0000 Zaheer Abbas Merali + + * ChangeLog: + * gst/switch/gstswitch.c: + * gst/switch/gstswitch.h: + gst/switch/gstswitch.c (ARG_0, ARG_NB_SOURCES, ARG_ACTIVE_SOURCE, + Original commit message from CVS: + * gst/switch/gstswitch.c (ARG_0, ARG_NB_SOURCES, ARG_ACTIVE_SOURCE, + ARG_START_VALUE, ARG_STOP_VALUE, ARG_LAST_TS, ARG_QUEUE_BUFFERS, + parent_class, gst_switch_release_pad, gst_switch_request_new_pad, + gst_switch_chain, gst_switch_event, gst_switch_set_property, + gst_switch_get_property, gst_switch_getcaps, gst_switch_dispose, + unref_buffer, unref_buffers_and_destroy_list, gst_switch_init, + gst_switch_base_init, gst_switch_class_init): + * gst/switch/gstswitch.h (need_to_send_newsegment, queue_buffers, + stop_value, start_value, current_start, last_ts, stored_buffers): + Add handling of application provided stop and start values, allowing + A/V sync across 2 switch elements. + +2007-05-17 09:41:48 +0000 Edward Hervey + + sys/osxvideo/osxvideosink.*: Fix a stupid #if vs #ifdef bug. Should use the proper colorspace now. + Original commit message from CVS: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + Fix a stupid #if vs #ifdef bug. Should use the proper colorspace now. + Use a separate thread/task for the cocoa event_loop, else it wouldn't + stop. + +2007-05-16 17:14:43 +0000 Tim-Philipp Müller + + gst/real/: Don't crash when we get a buffer and our input caps haven't been set yet; also, don't leak all the input b... + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain), + (gst_real_audio_dec_setcaps): + * gst/real/gstrealvideodec.c: (gst_real_video_dec_chain): + Don't crash when we get a buffer and our input caps haven't been set + yet; also, don't leak all the input buffers (realaudiodec only). + +2007-05-16 13:50:51 +0000 Stanislav Brabec + + Use external shared libamrwb. Fixes #423741 (with lots of cleanup). + Original commit message from CVS: + patch by: Stanislav Brabec + * configure.ac: + * ext/amrwb/Makefile.am: + * ext/amrwb/amrwb-code/Makefile.am: + * ext/amrwb/amrwb-code/amrwb/Makefile.am: + * ext/amrwb/amrwb-code/amrwb/README: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbdec.h (__GST_AMRWBDEC_H__): + * ext/amrwb/gstamrwbenc.h (__GST_AMRWBENC_H__): + * ext/amrwb/gstamrwbparse.c: + * ext/amrwb/gstamrwbparse.h (__GST_AMRWBPARSE_H__): + * gst-libs/Makefile.am: + * gst-libs/ext/Makefile.am: + * gst-libs/ext/amrwb/Makefile.am: + * gst-libs/ext/amrwb/README: + Use external shared libamrwb. Fixes #423741 (with lots of cleanup). + +2007-05-15 21:23:53 +0000 Stefan Kost + + ext/x264/gstx264enc.c (gst_x264_enc_init_encoder): This needs a version check. + Original commit message from CVS: + * ext/x264/gstx264enc.c (gst_x264_enc_init_encoder): + This needs a version check. + * gst/bayer/Makefile.am: + Fix the build. + +2007-05-15 17:22:58 +0000 Tim-Philipp Müller + + Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save and restore the various flags in the directdraw/dir... + Original commit message from CVS: + * configure.ac: + * sys/directdraw/Makefile.am: + * sys/directsound/Makefile.am: + Add DIRECTDRAW_CFLAGS and DIRECTSOUND_CFLAGS to Makefile.am; save + and restore the various flags in the directdraw/directsound + detection section. Apparently improves cross-compiling for win32 + with mingw32 under some circumstances (#437539). + +2007-05-15 13:29:53 +0000 Wim Taymans + + gst/rtpmanager/gstrtpptdemux.c: We always use fixed caps. + Original commit message from CVS: + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): + We always use fixed caps. + +2007-05-15 03:45:45 +0000 David Schleef + + gst/rtpmanager/gstrtpbin.c: g_hash_table_remove_all() only exists in 2.12. Work around. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: + g_hash_table_remove_all() only exists in 2.12. Work around. + +2007-05-15 02:54:52 +0000 David Schleef + + Add a Bayer-to-RGB converter. You know you want one, uh-huh. + Original commit message from CVS: + * configure.ac: + * gst/bayer/Makefile.am: + * gst/bayer/gstbayer.c: + * gst/bayer/gstbayer2rgb.c: + Add a Bayer-to-RGB converter. You know you want one, uh-huh. + Partial fix for #314160. + +2007-05-14 18:03:58 +0000 Zaheer Abbas Merali + + * ChangeLog: + * gst/switch/gstswitch.c: + * gst/switch/gstswitch.h: + gst/switch/gstswitch.c (ARG_ACTIVE_SOURCE, ARG_STOP_VALUE, + Original commit message from CVS: + * gst/switch/gstswitch.c (ARG_ACTIVE_SOURCE, ARG_STOP_VALUE, + ARG_LAST_TS, parent_class, gst_switch_release_pad, + gst_switch_request_new_pad, gst_switch_chain, gst_switch_event, + gst_switch_set_property, gst_switch_get_property, gst_switch_getcaps, + gst_switch_dispose, gst_switch_init, gst_switch_class_init): + * gst/switch/gstswitch.h (previous_sinkpad, nb_sinkpads, stop_value, + current_start, last_ts): + Allow application to provide a stop timestamp, so a new segment + update can be sent before switching. + +2007-05-14 15:28:36 +0000 Wim Taymans + + gst/rtpmanager/async_jitter_queue.c: Fix leak when flushing. + Original commit message from CVS: + * gst/rtpmanager/async_jitter_queue.c: + (async_jitter_queue_set_flushing_unlocked): + Fix leak when flushing. + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_clear_pt_map), + (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + Add clear-pt-map signal. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_sink_event), (gst_rtp_jitter_buffer_loop): + Init clock-rate to -1 to mark unknow clock rate. + Fix flushing. + +2007-05-13 19:57:45 +0000 David Schleef + + gst/replaygain/rganalysis.c: Fix wrong ifdef for visual C++. Fixes: #437403. + Original commit message from CVS: + * gst/replaygain/rganalysis.c: + Fix wrong ifdef for visual C++. Fixes: #437403. + By Ali Sabil . + +2007-05-13 07:08:06 +0000 David Schleef + + ext/neon/gstneonhttpsrc.c: Make redirection the default behavior. Fixes #413818. + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: + Make redirection the default behavior. Fixes #413818. + +2007-05-11 11:20:33 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add latest plugin + Original commit message from CVS: + add latest plugin + +2007-05-10 14:02:07 +0000 Stefan Kost + + gst/qtdemux/qtdemux.c (gst_qtdemux_move_stream, gst_qtdemux_loop_state_header, gst_qtdemux_activate_segment, gst_qtde... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c (gst_qtdemux_move_stream, + gst_qtdemux_loop_state_header, gst_qtdemux_activate_segment, + gst_qtdemux_prepare_current_sample, gst_qtdemux_combine_flows, + gst_qtdemux_loop_state_movie, gst_qtdemux_loop, + qtdemux_parse_segments, qtdemux_parse_trak): + * gst/rtpmanager/rtpsession.c (rtp_session_get_bandwidth, + rtp_session_get_rtcp_bandwidth, rtp_session_get_cname, + rtp_session_get_name, rtp_session_get_email, rtp_session_get_phone, + rtp_session_get_location, rtp_session_get_tool, + rtp_session_process_bye, session_report_blocks): + * gst/rtpmanager/rtpsource.c (rtp_source_process_rtp, + rtp_source_send_rtp, rtp_source_process_sr, rtp_source_process_rb): + More format arg fixing (spotted by Ali Sabil ). + * gst/switch/Makefile.am: + Add require libraries(spotted by Ali Sabil ). + +2007-05-10 12:38:49 +0000 Stefan Kost + + * ChangeLog: + * common: + * gst/rtpmanager/async_jitter_queue.c: + gst/rtpmanager/async_jitter_queue.c (tail_buffer_duration, async_jitter_queue_ref, async_jitter_queue_ref_unlocked, a... + Original commit message from CVS: + * gst/rtpmanager/async_jitter_queue.c (tail_buffer_duration, + async_jitter_queue_ref, async_jitter_queue_ref_unlocked, + async_jitter_queue_set_low_threshold, + async_jitter_queue_length_ts_units_unlocked, + async_jitter_queue_unref_and_unlock, async_jitter_queue_unref, + async_jitter_queue_lock, async_jitter_queue_push, + async_jitter_queue_push_unlocked, async_jitter_queue_push_sorted, + async_jitter_queue_pop_intern_unlocked, async_jitter_queue_pop, + async_jitter_queue_pop_unlocked, async_jitter_queue_length_unlocked, + async_jitter_queue_set_flushing_unlocked, + async_jitter_queue_unset_flushing_unlocked): + Format arg fix (spotted by Ali Sabil ) + +2007-05-10 07:41:47 +0000 Stefan Kost + + common/m4/gst-x11.m4: Restore CFLAGS and LIBS. + Original commit message from CVS: + * common/m4/gst-x11.m4: + Restore CFLAGS and LIBS. + * configure.ac: + Revert previous patch. + +2007-05-10 06:35:31 +0000 Ali Sabil + + configure.ac: Save and restore CFLAGS for OpenGL check. Fixes #437260. + Original commit message from CVS: + Patch by: Ali Sabil + * configure.ac: + Save and restore CFLAGS for OpenGL check. Fixes #437260. + +2007-05-09 20:01:21 +0000 Sébastien Moutte + + docs/plugins/gst-plugins-bad-plugins.args: Add directraw and directsound sinks properties. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + Add directraw and directsound sinks properties. + +2007-05-09 17:58:07 +0000 Tim-Philipp Müller + + configure.ac: Fix --disable-external (hopefully). + Original commit message from CVS: + * configure.ac: + Fix --disable-external (hopefully). + +2007-05-09 11:24:22 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Pass queries upstream. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_query): + Pass queries upstream. + +2007-05-06 15:25:05 +0000 Tim-Philipp Müller + + gst/real/: Use GModule instead of using dlsym() directly. Fixes #430598. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps), + (gst_real_audio_dec_finalize): + * gst/real/gstrealaudiodec.h: + * gst/real/gstrealvideodec.c: (open_library), (close_library): + * gst/real/gstrealvideodec.h: + Use GModule instead of using dlsym() directly. Fixes #430598. + +2007-05-04 21:02:58 +0000 Sébastien Moutte + + docs/plugins/: Add docs for Windows sinks. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + Add docs for Windows sinks. + +2007-05-04 17:20:31 +0000 Tim-Philipp Müller + + gst/speed/gstspeed.c: Fix event handling a bit by replacing completely dubious code written by someone else with comp... + Original commit message from CVS: + * gst/speed/gstspeed.c: (speed_src_event), (speed_sink_event), + (speed_chain), (speed_change_state): + Fix event handling a bit by replacing completely dubious code + written by someone else with completely dubious code written + by me. Should at least fix #412077 though. + +2007-05-04 16:11:46 +0000 Tim-Philipp Müller + + gst/speed/gstspeed.c: Add debug category; use gst_pad_query_peer_*() utility functions; use gst_util_scale*(); add gt... + Original commit message from CVS: + * gst/speed/gstspeed.c: (speed_src_query), (speed_chain), + (plugin_init): + Add debug category; use gst_pad_query_peer_*() utility functions; + use gst_util_scale*(); add gtk-doc blurb. + +2007-05-04 12:32:27 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug info. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_query): + Add some debug info. + * gst/rtpmanager/rtpsession.c: (rtp_session_init), + (rtp_session_send_rtp): + Store real user name in the session. + +2007-05-03 16:49:05 +0000 Zaheer Abbas Merali + + examples/switch/switcher.c (loop, my_bus_callback, switch_timer, last_message_received, main): gst/switch/gstswitch.c... + Original commit message from CVS: + * configure.ac: + * examples/Makefile.am: + * examples/switch/switcher.c (loop, my_bus_callback, switch_timer, + last_message_received, main): + * gst/switch/gstswitch.c (GST_CAT_DEFAULT, gst_switch_details, + gst_switch_src_factory, parent_class, gst_switch_release_pad, + gst_switch_request_new_pad, gst_switch_chain, gst_switch_event, + gst_switch_set_property, gst_switch_get_property, + gst_switch_get_linked_pad, gst_switch_getcaps, + gst_switch_bufferalloc, gst_switch_get_linked_pads, + gst_switch_dispose, gst_switch_init, gst_switch_base_init, + gst_switch_class_init): + * gst/switch/gstswitch.h (GstSwitch, GstSwitchClass, _GstSwitch, + element, active_sinkpad, srcpad, nb_sinkpads, newsegment_events, + need_to_send_newsegment): + Port switch element and example program to 0.10. + +2007-05-02 18:31:16 +0000 Sebastian Dröge + + ext/wavpack/gstwavpack.c: Call bindtextdomain() to get localized strings. + Original commit message from CVS: + * ext/wavpack/gstwavpack.c: (plugin_init): + Call bindtextdomain() to get localized strings. + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset), + (gst_wavpack_parse_handle_seek_event), + (gst_wavpack_parse_push_buffer), (gst_wavpack_parse_chain): + * ext/wavpack/gstwavpackparse.h: + Handle DISCONT buffers by correctly setting the DISCONT flag + on outgoing buffers when necessary. + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_handle_seek_event) + Send newsegment from the streaming thread. + +2007-05-02 16:58:06 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Remove old workaround that was needed when seeking after the last sample. With the fix... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: + (gst_wavpack_parse_handle_seek_event): + Remove old workaround that was needed when seeking after the last + sample. With the fixed error handling this works now as expected + without pushing the last sample although it wasn't requested. + +2007-05-02 16:45:43 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Handle segment seeks in the seek event handler, correctly work with stop position == -... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: + (gst_wavpack_parse_handle_seek_event): + Handle segment seeks in the seek event handler, correctly work with + stop position == -1 and instead of stopping the task on seek just + pause it. + +2007-05-02 16:19:58 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Add handling for segment seeks. + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_loop): + Add handling for segment seeks. + +2007-05-02 15:13:04 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Correctly handle errors, especially in the loop function. Before it was easy to get th... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_pull_buffer), + (gst_wavpack_parse_create_src_pad), + (gst_wavpack_parse_resync_loop), (gst_wavpack_parse_loop), + (gst_wavpack_parse_chain): + Correctly handle errors, especially in the loop function. Before it + was easy to get the task paused but no error being posted on the bus. + +2007-04-30 15:39:09 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec + Original commit message from CVS: + update spec + +2007-04-30 13:41:30 +0000 Wim Taymans + + gst/rtpmanager/async_jitter_queue.c: Fix the case where the buffer underruns and does not block. + Original commit message from CVS: + * gst/rtpmanager/async_jitter_queue.c: (signal_waiting_threads), + (async_jitter_queue_pop_intern_unlocked): + Fix the case where the buffer underruns and does not block. + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init), + (create_recv_rtcp), (create_send_rtp), (create_rtcp), + (gst_rtp_bin_request_new_pad): + Rename RTCP send pad, like in the session manager. + Allow getting an RTCP pad for receiving even if we don't receive RTP. + fix handling of send_rtp_src pad. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): + When no pt map could be found, fall back to the sinkpad caps. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_process_rtp), + (gst_rtp_session_send_rtp), (create_recv_rtp_sink), + (create_recv_rtcp_sink), (create_send_rtp_sink), + (create_send_rtcp_src): + Fix pad names. + * gst/rtpmanager/rtpsession.c: (source_push_rtp), + (rtp_session_create_source), (rtp_session_process_sr), + (rtp_session_send_rtp), (session_start_rtcp): + * gst/rtpmanager/rtpsession.h: + Unlock session when performing a callback. + Add callbacks for the internal session object. + Fix sending of RTP packets. + first attempt at adding NTP times in the SR packets. + Small debug and doc improvements. + * gst/rtpmanager/rtpsource.c: (rtp_source_send_rtp): + Update stats for SR reports. + +2007-04-29 14:46:27 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Remove debug. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_send_rtcp): + Remove debug. + * gst/rtpmanager/rtpsession.c: (rtp_session_process_sr), + (rtp_session_process_sdes), (calculate_rtcp_interval), + (rtp_session_next_timeout), (session_report_blocks): + * gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval): + Improve debugging + Fix interval for BYE/RTCP packets. + +2007-04-29 14:01:05 +0000 Thomas Vander Stichele + + docs/plugins/gst-plugins-bad-plugins.*: Commit result of running scanobj-update + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + Commit result of running scanobj-update + +2007-04-29 13:56:18 +0000 Thomas Vander Stichele + + * sys/directdraw/gstdirectdrawsink.c: + * sys/osxvideo/osxvideosink.m: + 80 char police + Original commit message from CVS: + 80 char police + +2007-04-29 13:53:17 +0000 Thomas Vander Stichele + + autogen.sh: Require automake 1.7 + Original commit message from CVS: + * autogen.sh: + Require automake 1.7 + * ext/alsaspdif/Makefile.am: + * ext/divx/Makefile.am: + * ext/ivorbis/Makefile.am: + * ext/musicbrainz/Makefile.am: + * ext/neon/Makefile.am: + * ext/sdl/Makefile.am: + * ext/swfdec/Makefile.am: + * ext/theora/Makefile.am: + * ext/wavpack/Makefile.am: + * ext/xvid/Makefile.am: + * gst/modplug/Makefile.am: + Fix up Makefile.am accordingly. + +2007-04-29 13:49:02 +0000 Thomas Vander Stichele + + docs/plugins/inspect/: Add jack and update. + Original commit message from CVS: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-jack.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Add jack and update. + +2007-04-28 12:46:47 +0000 Tim-Philipp Müller + + configure.ac: Don't build equalizer unless we have core from CVS (it won't work with earlier versions due to GstChild... + Original commit message from CVS: + * configure.ac: + Don't build equalizer unless we have core from CVS (it won't + work with earlier versions due to GstChildProxy brokeness). + Also up requirements to last released core/base. + +2007-04-27 15:33:46 +0000 Julien Moutte + + ext/theora/theoradec.c: Calculate buffer duration correctly to generate a perfect stream (#433888). + Original commit message from CVS: + 2007-04-27 Julien MOUTTE + * ext/theora/theoradec.c: (_theora_granule_time), + (theora_dec_push_forward), (theora_handle_data_packet), + (theora_dec_decode_buffer): Calculate buffer duration correctly + to generate a perfect stream (#433888). + * gst/audioresample/gstaudioresample.c: + (audioresample_check_discont): Glib provides ABS. + +2007-04-27 15:09:12 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Move reconsideration code to the rtpsession object. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (rtcp_thread), + (gst_rtp_session_send_rtcp), (gst_rtp_session_reconsider): + Move reconsideration code to the rtpsession object. + Simplify timout handling and add reconsideration. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_init), (rtp_session_finalize), (on_bye_ssrc), + (on_bye_timeout), (on_timeout), (rtp_session_set_callbacks), + (obtain_source), (rtp_session_create_source), + (update_arrival_stats), (rtp_session_process_rtp), + (rtp_session_process_sr), (rtp_session_process_rr), + (rtp_session_process_bye), (rtp_session_process_rtcp), + (calculate_rtcp_interval), (rtp_session_send_bye), + (rtp_session_next_timeout), (session_start_rtcp), + (session_report_blocks), (session_cleanup), (session_sdes), + (session_bye), (is_rtcp_time), (rtp_session_on_timeout): + * gst/rtpmanager/rtpsession.h: + Handle timeout of inactive sources and senders. + Implement BYE scheduling. + * gst/rtpmanager/rtpsource.c: (calculate_jitter), + (rtp_source_process_sr), (rtp_source_get_last_sr), + (rtp_source_get_last_rb): + * gst/rtpmanager/rtpsource.h: + Add members to check for timeouts. + * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults), + (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter), + (rtp_stats_calculate_bye_interval): + * gst/rtpmanager/rtpstats.h: + Use RFC algorithm for calculating the reporting interval. + +2007-04-26 14:31:32 +0000 Edward Hervey + + docs/plugins/: Add documentation for osxvideo + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-osxvideo.xml: + Add documentation for osxvideo + +2007-04-25 16:38:03 +0000 Wim Taymans + + gst/rtpmanager/gstrtpsession.c: Implement forward and reverse reconsideration. + Original commit message from CVS: + * gst/rtpmanager/gstrtpsession.c: (rtcp_thread): + Implement forward and reverse reconsideration. + * gst/rtpmanager/rtpsession.c: (rtp_session_get_num_sources), + (rtp_session_get_num_active_sources), (rtp_session_process_sr), + (session_report_blocks): + * gst/rtpmanager/rtpsession.h: + Small cleanups. + +2007-04-25 15:48:46 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Make default jitterbuffer latency configurable. + Original commit message from CVS: + reviewed by: + * gst/rtpmanager/gstrtpbin.c: (create_stream), + (gst_rtp_bin_class_init), (gst_rtp_bin_set_property), + (gst_rtp_bin_get_property): + * gst/rtpmanager/gstrtpbin.h: + Make default jitterbuffer latency configurable. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_jitter_buffer_sink_parse_caps), (gst_rtp_jitter_buffer_loop), + (gst_rtp_jitter_buffer_set_property), + (gst_rtp_jitter_buffer_get_property): + Debuging cleanups. + +2007-04-25 13:19:36 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Report NO_PREROLL when going to PAUSED. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_change_state): + Report NO_PREROLL when going to PAUSED. + * gst/rtpmanager/gstrtpsession.c: (rtcp_thread): + Don't send RTCP right before we are shutting down. + * gst/rtpmanager/rtpsession.c: (rtp_session_process_rtp), + (rtp_session_process_sr), (session_report_blocks), + (rtp_session_perform_reporting): + Improve report blocks. + * gst/rtpmanager/rtpsource.c: (calculate_jitter), (init_seq), + (rtp_source_process_rtp), (rtp_source_process_sr), + (rtp_source_process_rb), (rtp_source_get_last_sr), + (rtp_source_get_last_rb): + * gst/rtpmanager/rtpsource.h: + * gst/rtpmanager/rtpstats.h: + Cleanups, add methods to access stats. + +2007-04-25 08:30:48 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: fix for pad name change + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_rtcp): + fix for pad name change + * gst/rtpmanager/gstrtpsession.c: (rtcp_thread), + (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate): + Fix for renamed methods. + * gst/rtpmanager/rtpsession.c: (rtp_session_init), + (rtp_session_finalize), (rtp_session_set_cname), + (rtp_session_get_cname), (rtp_session_set_name), + (rtp_session_get_name), (rtp_session_set_email), + (rtp_session_get_email), (rtp_session_set_phone), + (rtp_session_get_phone), (rtp_session_set_location), + (rtp_session_get_location), (rtp_session_set_tool), + (rtp_session_get_tool), (rtp_session_set_note), + (rtp_session_get_note), (source_push_rtp), (obtain_source), + (rtp_session_add_source), (rtp_session_get_source_by_ssrc), + (rtp_session_create_source), (rtp_session_process_rtp), + (rtp_session_process_sr), (rtp_session_process_sdes), + (rtp_session_process_rtcp), (rtp_session_send_rtp), + (rtp_session_get_reporting_interval), (session_report_blocks), + (session_sdes), (rtp_session_perform_reporting): + * gst/rtpmanager/rtpsession.h: + Prepare for implementing SSRC sampling. + Create SSRC for the session. + Add methods to set the SDES entries. + fix accounting of senders/receivers. + Implement SR/RR/SDES RTCP reporting. + * gst/rtpmanager/rtpsource.c: (rtp_source_init), (init_seq), + (rtp_source_process_rtp), (rtp_source_process_sr): + * gst/rtpmanager/rtpsource.h: + Implement extended sequence number. + * gst/rtpmanager/rtpstats.c: (rtp_stats_calculate_rtcp_interval): + * gst/rtpmanager/rtpstats.h: + Rename some fields. + +2007-04-24 15:49:18 +0000 Tim-Philipp Müller + + Plug some leaks; try to make build bot happy again. + Original commit message from CVS: + * gst/y4m/gsty4mencode.c: (gst_y4m_encode_init), + (gst_y4m_encode_setcaps): + * tests/check/elements/y4menc.c: (GST_START_TEST): + Plug some leaks; try to make build bot happy again. + +2007-04-21 19:39:03 +0000 Tim-Philipp Müller + + gst/Makefile.am: Fix distcheck, hopefully (rtpmanager is already in GST_PLUGINS_ALL). + Original commit message from CVS: + * gst/Makefile.am: + Fix distcheck, hopefully (rtpmanager is already in GST_PLUGINS_ALL). + +2007-04-21 19:21:49 +0000 Tim-Philipp Müller + + gst/rtpmanager/rtpsession.c: Don't use GLib-2.10 API, we only require GLib 2.8 at the moment. + Original commit message from CVS: + * gst/rtpmanager/rtpsession.c: (rtp_session_finalize): + Don't use GLib-2.10 API, we only require GLib 2.8 at the moment. + +2007-04-21 14:14:24 +0000 Tim-Philipp Müller + + gst/audioresample/gstaudioresample.c: Make more functions static, just because we can. + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + Make more functions static, just because we can. + +2007-04-21 13:54:39 +0000 Tim-Philipp Müller + + tests/check/elements/audioresample.c: Add unit test for audioresample shutdown crasher (#420106). + Original commit message from CVS: + * tests/check/elements/audioresample.c: + Add unit test for audioresample shutdown crasher (#420106). + +2007-04-20 15:31:32 +0000 Michael Smith + + ext/faad/gstfaad.c: FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in quicktime because of sample rate mi... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_open_decoder): + FAAD fails to decode low (e.g. 8 kHz) sample rate AAC data in + quicktime because of sample rate mismatches. + Reenable overriding the implicit SBR behaviour (accidently changed?) + to allow playback of these files. + +2007-04-19 15:43:26 +0000 David Schleef + + configure.ac: Change rtpmanager disabling to keep -bad releasable. + Original commit message from CVS: + * configure.ac: + Change rtpmanager disabling to keep -bad releasable. + +2007-04-18 19:45:32 +0000 David Schleef + + Fix wtay's hack. rtpmanager is disabled in configure.ac on line 268. + Original commit message from CVS: + * configure.ac: + * gst/Makefile.am: + Fix wtay's hack. rtpmanager is disabled in configure.ac on + line 268. + +2007-04-18 19:26:52 +0000 Wim Taymans + + gst/Makefile.am: Add rtpmanager dir to dist. + Original commit message from CVS: + * gst/Makefile.am: + Add rtpmanager dir to dist. + +2007-04-18 18:58:53 +0000 Wim Taymans + + configure.ac: Disable rtpmanager for now because it depends on CVS -base. + Original commit message from CVS: + * configure.ac: + Disable rtpmanager for now because it depends on CVS -base. + * gst/rtpmanager/Makefile.am: + Added new files for session manager. + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), + (create_stream), (pt_map_requested), (new_ssrc_pad_found): + Some cleanups. + the session manager can now also request a pt-map. + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init), + (gst_rtp_session_class_init), (gst_rtp_session_init), + (gst_rtp_session_finalize), (rtcp_thread), (start_rtcp_thread), + (stop_rtcp_thread), (gst_rtp_session_change_state), + (gst_rtp_session_process_rtp), (gst_rtp_session_send_rtp), + (gst_rtp_session_send_rtcp), (gst_rtp_session_clock_rate), + (gst_rtp_session_get_time), (gst_rtp_session_event_recv_rtp_sink), + (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_event_recv_rtcp_sink), + (gst_rtp_session_chain_recv_rtcp), + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_chain_send_rtp), (create_send_rtcp_src), + (gst_rtp_session_request_new_pad): + * gst/rtpmanager/gstrtpsession.h: + We can ask for pt-map now too when the session manager needs it. + Hook up to the new session manager, implement the needed callbacks for + pushing data, getting clock time and requesting clock-rates. + Rename rtcp_src to send_rtcp_src to make it clear that this RTCP is to + be send to clients. + Add code to start and stop the thread that will schedule RTCP through + the session manager. + * gst/rtpmanager/rtpsession.c: (rtp_session_class_init), + (rtp_session_init), (rtp_session_finalize), + (rtp_session_set_property), (rtp_session_get_property), + (on_new_ssrc), (on_ssrc_collision), (on_ssrc_validated), + (on_bye_ssrc), (rtp_session_new), (rtp_session_set_callbacks), + (rtp_session_set_bandwidth), (rtp_session_get_bandwidth), + (rtp_session_set_rtcp_bandwidth), (rtp_session_get_rtcp_bandwidth), + (source_push_rtp), (source_clock_rate), (check_collision), + (obtain_source), (rtp_session_add_source), + (rtp_session_get_num_sources), + (rtp_session_get_num_active_sources), + (rtp_session_get_source_by_ssrc), + (rtp_session_get_source_by_cname), (rtp_session_create_source), + (update_arrival_stats), (rtp_session_process_rtp), + (rtp_session_process_sr), (rtp_session_process_rr), + (rtp_session_process_sdes), (rtp_session_process_bye), + (rtp_session_process_app), (rtp_session_process_rtcp), + (rtp_session_send_rtp), (rtp_session_get_rtcp_interval), + (rtp_session_produce_rtcp): + * gst/rtpmanager/rtpsession.h: + The advanced beginnings of the main session manager that handles the + participant database of RTPSources, SSRC probation, SSRC collisions, + parse RTCP to update source stats. etc.. + * gst/rtpmanager/rtpsource.c: (rtp_source_class_init), + (rtp_source_init), (rtp_source_finalize), (rtp_source_new), + (rtp_source_set_callbacks), (rtp_source_set_as_csrc), + (rtp_source_set_rtp_from), (rtp_source_set_rtcp_from), + (push_packet), (get_clock_rate), (calculate_jitter), + (rtp_source_process_rtp), (rtp_source_process_bye), + (rtp_source_send_rtp), (rtp_source_process_sr), + (rtp_source_process_rb): + * gst/rtpmanager/rtpsource.h: + Object that encapsulates an SSRC and its state in the database. + Calculates the jitter and transit times of data packets. + * gst/rtpmanager/rtpstats.c: (rtp_stats_init_defaults), + (rtp_stats_calculate_rtcp_interval), (rtp_stats_add_rtcp_jitter): + * gst/rtpmanager/rtpstats.h: + Various stats regarding the session and sources. + Used to calculate the RTCP interval. + +2007-04-17 10:56:37 +0000 Tim-Philipp Müller + + gst/app/Makefile.am: Fix CFLAGS and hopefully #430594. + Original commit message from CVS: + * gst/app/Makefile.am: + Fix CFLAGS and hopefully #430594. + +2007-04-17 08:48:34 +0000 Tim-Philipp Müller + + gst/nsf/types.h: Rename #ifndef header guard symbol to something less generic, so types.h doesn't get skipped over wh... + Original commit message from CVS: + * gst/nsf/types.h: + Rename #ifndef header guard symbol to something less generic, so + types.h doesn't get skipped over when compiling on MingW. Include + GLib headers and use those to set the endianness and the basic + types so that this isn't entirely broken for non-x86 architectures. + +2007-04-17 08:04:43 +0000 Tim-Philipp Müller + + gst/mve/gstmvedemux.c: Use G_LITTLE_ENDIAN instead of LITTLE_ENDIAN, so stuff compiles on + Original commit message from CVS: + * gst/mve/gstmvedemux.c: (gst_mve_audio_init): + Use G_LITTLE_ENDIAN instead of LITTLE_ENDIAN, so stuff compiles on + MingW (no idea though why we add a BYTE_ORDER endianness field if + the audio is compressed). + +2007-04-16 22:20:03 +0000 Vincent Torri + + ext/pango/gstclockoverlay.c: Fix unused variable warning if HAVE_LOCALTIME_R is undefinied + Original commit message from CVS: + Patch by: Vincent Torri + * ext/pango/gstclockoverlay.c: (gst_clock_overlay_render_time): + Fix unused variable warning if HAVE_LOCALTIME_R is undefinied + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps): + * gst/audioresample/gstaudioresample.c: (audioresample_do_output): + Use the correct format strings for integer formats. + +2007-04-14 17:18:14 +0000 Sébastien Moutte + + docs/plugins/inspect/: Add xml doc files for Windows sinks + Original commit message from CVS: + * docs/plugins/inspect/plugin-directdraw.xml: + * docs/plugins/inspect/plugin-directsound.xml: + * docs/plugins/inspect/plugin-waveform.xml: + Add xml doc files for Windows sinks + * win32/vs6/libgstqtdemux.dsp: + * win32/vs6/libgstmpegvideoparse.dsp: + * win32/vs6/gst_plugins_bad.dsw: + Update projects files. + +2007-04-13 09:20:55 +0000 Wim Taymans + + gst/rtpmanager/: Protect lists and structures with locks. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), + (gst_rtp_bin_init), (gst_rtp_bin_finalize), (new_ssrc_pad_found), + (create_recv_rtp), (gst_rtp_bin_request_new_pad): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_init), (gst_rtp_session_finalize), + (gst_rtp_session_event_recv_rtp_sink), + (gst_rtp_session_event_recv_rtcp_sink), + (gst_rtp_session_chain_recv_rtcp), + (gst_rtp_session_request_new_pad): + Protect lists and structures with locks. + Return FLOW_OK from RTCP messages for now. + +2007-04-12 10:52:02 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Make timescale 32 bits again so we don't screw up the pts_offset calculations. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: + Make timescale 32 bits again so we don't screw up the pts_offset + calculations. + +2007-04-12 08:18:32 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Emit pt map requests and cache results. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), + (create_stream), (gst_rtp_bin_class_init), (pt_map_requested): + Emit pt map requests and cache results. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_jitter_buffer_sink_parse_caps), + (gst_jitter_buffer_sink_setcaps), + (gst_rtp_jitter_buffer_get_clock_rate), + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): + Emit request-pt-map signals. + +2007-04-11 13:49:54 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin-marshal.list: Some more custom marshallers. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin-marshal.list: + Some more custom marshallers. + * gst/rtpmanager/gstrtpbin.c: (create_session), (get_pt_map), + (clock_rate_request), (create_stream), (gst_rtp_bin_class_init), + (pt_map_requested), (new_ssrc_pad_found), (create_recv_rtp): + * gst/rtpmanager/gstrtpbin.h: + Prepare for caching pt maps. + Connect to signals to collect pt maps. + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_class_init), + (gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_loop): + * gst/rtpmanager/gstrtpjitterbuffer.h: + Add request_clock_rate signal. + Use scale insteat of scale_int because the later does not deal with + negative numbers. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init), + (gst_rtp_pt_demux_chain): + * gst/rtpmanager/gstrtpptdemux.h: + Implement request-pt-map signal. + +2007-04-11 09:53:38 +0000 Wim Taymans + + gst/qtdemux/: Handle version 1 mdhd atoms to get extended precision durations. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (qtdemux_parse_samples), (qtdemux_parse_segments), + (qtdemux_parse_trak), (qtdemux_parse_tree): + * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mdhd): + Handle version 1 mdhd atoms to get extended precision durations. + Fixes #426972. + +2007-04-10 09:14:07 +0000 Wim Taymans + + gst/rtpmanager/: Added custom marshallers for signals. + Original commit message from CVS: + * gst/rtpmanager/.cvsignore: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpbin-marshal.list: + Added custom marshallers for signals. + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init): + * gst/rtpmanager/gstrtpbin.h: + Prepare for emiting pt map signals. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_class_init): + * gst/rtpmanager/gstrtpssrcdemux.c: + (gst_rtp_ssrc_demux_class_init): + Fix signals. + +2007-04-06 12:28:29 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Provide a clock. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_class_init), + (gst_rtp_bin_init), (gst_rtp_bin_provide_clock): + * gst/rtpmanager/gstrtpbin.h: + Provide a clock. + +2007-04-06 12:07:30 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.c: Fix pad template name parsing. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (create_rtcp): + Fix pad template name parsing. + +2007-04-05 16:10:24 +0000 Wim Taymans + + gst/rtpmanager/gstrtpjitterbuffer.c: Add some debug and comments. + Original commit message from CVS: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_jitter_buffer_sink_setcaps), (gst_rtp_jitter_buffer_chain), + (gst_rtp_jitter_buffer_loop): + Add some debug and comments. + Fix double unref() in error cases. + +2007-04-05 15:05:24 +0000 Wim Taymans + + gst/qtdemux/gstrtpxqtdepay.*: Try to recover from packet loss a little better. + Original commit message from CVS: + * gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_process), + (gst_rtp_xqt_depay_change_state): + * gst/qtdemux/gstrtpxqtdepay.h: + Try to recover from packet loss a little better. + +2007-04-05 13:54:23 +0000 Wim Taymans + + gst/rtpmanager/gstrtpbin.*: Add debugging category. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (find_session_by_id), + (create_session), (find_stream_by_ssrc), (create_stream), + (gst_rtp_bin_class_init), (new_payload_found), + (new_ssrc_pad_found), (create_recv_rtp), (create_recv_rtcp), + (create_send_rtp), (create_rtcp): + * gst/rtpmanager/gstrtpbin.h: + Add debugging category. + Added RTPStream to manage stream per SSRC, each with its own + jitterbuffer and ptdemux. + Added SSRCDemux. + Connect to various SSRC and PT signals and create ghostpads, link stuff. + * gst/rtpmanager/gstrtpmanager.c: (plugin_init): + Added rtpbin to elements. + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_chain): + Fix caps and forward GstFlowReturn + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_class_init), + (gst_rtp_session_event_recv_rtp_sink), + (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_event_recv_rtcp_sink), + (gst_rtp_session_chain_recv_rtcp), + (gst_rtp_session_event_send_rtp_sink), + (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink), + (create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src), + (gst_rtp_session_request_new_pad): + Add debug category. + Add event handling + * gst/rtpmanager/gstrtpssrcdemux.c: (find_rtp_pad_for_ssrc), + (create_rtp_pad_for_ssrc), (gst_rtp_ssrc_demux_class_init), + (gst_rtp_ssrc_demux_init), (gst_rtp_ssrc_demux_chain), + (gst_rtp_ssrc_demux_change_state): + * gst/rtpmanager/gstrtpssrcdemux.h: + Add debug category. + Add new-pt-pad signal. + +2007-04-05 13:49:21 +0000 Thomas Vander Stichele + + * po/nl.po: + update dutch + Original commit message from CVS: + update dutch + +2007-04-05 13:45:15 +0000 Thomas Vander Stichele + + po/: Added Danish translation. + Original commit message from CVS: + submitted by: Mogens Jaeger + * po/LINGUAS: + * po/da.po: + Added Danish translation. + +2007-04-04 10:23:15 +0000 Wim Taymans + + gst/rtpmanager/: Added simple SSRC demuxer. + Original commit message from CVS: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/gstrtpmanager.c: (plugin_init): + * gst/rtpmanager/gstrtpssrcdemux.c: (find_pad_for_ssrc), + (create_pad_for_ssrc), (gst_rtp_ssrc_demux_base_init), + (gst_rtp_ssrc_demux_class_init), (gst_rtp_ssrc_demux_init), + (gst_rtp_ssrc_demux_finalize), (gst_rtp_ssrc_demux_sink_event), + (gst_rtp_ssrc_demux_chain), (gst_rtp_ssrc_demux_src_event), + (gst_rtp_ssrc_demux_change_state): + * gst/rtpmanager/gstrtpssrcdemux.h: + Added simple SSRC demuxer. + +2007-04-04 07:36:28 +0000 Stefan Kost + + ext/jack/gstjackaudiosink.c: Try t better name clients. properly handle return codes when re- establishing links. + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_open_device), + (gst_jack_ring_buffer_acquire): + Try t better name clients. properly handle return codes when re- + establishing links. + +2007-04-03 22:36:47 +0000 David Schleef + + sys/glsink/glimagesink.c: Fix handling of video/x-raw-yuv. Add overlay handling. + Original commit message from CVS: + * sys/glsink/glimagesink.c: + Fix handling of video/x-raw-yuv. Add overlay handling. + +2007-04-03 13:27:21 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update with rtp plugin + Original commit message from CVS: + update with rtp plugin + +2007-04-03 11:35:39 +0000 Wim Taymans + + gst/rtpmanager/: Some more ghostpad magic. + Original commit message from CVS: + * gst/rtpmanager/gstrtpbin.c: (find_session_by_id), + (create_session), (gst_rtp_bin_base_init), (create_recv_rtp), + (create_recv_rtcp), (create_send_rtp), (create_rtcp), + (gst_rtp_bin_request_new_pad): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: + Some more ghostpad magic. + +2007-04-03 09:51:13 +0000 Wim Taymans + + gst/rtpmanager/Makefile.am: Add .h file so it can be disted properly. + Original commit message from CVS: + * gst/rtpmanager/Makefile.am: + Add .h file so it can be disted properly. + +2007-04-03 09:13:17 +0000 Wim Taymans + + Add RTP session management elements. Still in progress. + Original commit message from CVS: + * configure.ac: + * gst/rtpmanager/Makefile.am: + * gst/rtpmanager/async_jitter_queue.c: (async_jitter_queue_new), + (signal_waiting_threads), (async_jitter_queue_ref), + (async_jitter_queue_ref_unlocked), + (async_jitter_queue_set_low_threshold), + (async_jitter_queue_set_high_threshold), + (async_jitter_queue_set_max_queue_length), + (async_jitter_queue_get_g_queue), (calculate_ts_diff), + (async_jitter_queue_length_ts_units_unlocked), + (async_jitter_queue_unref_and_unlock), (async_jitter_queue_unref), + (async_jitter_queue_lock), (async_jitter_queue_unlock), + (async_jitter_queue_push), (async_jitter_queue_push_unlocked), + (async_jitter_queue_push_sorted), + (async_jitter_queue_push_sorted_unlocked), + (async_jitter_queue_insert_after_unlocked), + (async_jitter_queue_pop_intern_unlocked), (async_jitter_queue_pop), + (async_jitter_queue_pop_unlocked), (async_jitter_queue_length), + (async_jitter_queue_length_unlocked), + (async_jitter_queue_set_flushing_unlocked), + (async_jitter_queue_unset_flushing_unlocked), + (async_jitter_queue_set_blocking_unlocked): + * gst/rtpmanager/async_jitter_queue.h: + * gst/rtpmanager/gstrtpbin.c: (gst_rtp_bin_base_init), + (gst_rtp_bin_class_init), (gst_rtp_bin_init), + (gst_rtp_bin_finalize), (gst_rtp_bin_set_property), + (gst_rtp_bin_get_property), (gst_rtp_bin_change_state), + (gst_rtp_bin_request_new_pad), (gst_rtp_bin_release_pad): + * gst/rtpmanager/gstrtpbin.h: + * gst/rtpmanager/gstrtpclient.c: (new_pad), (create_stream), + (free_stream), (find_stream_by_ssrc), (gst_rtp_client_base_init), + (gst_rtp_client_class_init), (gst_rtp_client_init), + (gst_rtp_client_finalize), (gst_rtp_client_set_property), + (gst_rtp_client_get_property), (gst_rtp_client_change_state), + (gst_rtp_client_request_new_pad), (gst_rtp_client_release_pad): + * gst/rtpmanager/gstrtpclient.h: + * gst/rtpmanager/gstrtpjitterbuffer.c: + (gst_rtp_jitter_buffer_base_init), + (gst_rtp_jitter_buffer_class_init), (gst_rtp_jitter_buffer_init), + (gst_rtp_jitter_buffer_dispose), (gst_rtp_jitter_buffer_getcaps), + (gst_jitter_buffer_sink_setcaps), (free_func), + (gst_rtp_jitter_buffer_flush_start), + (gst_rtp_jitter_buffer_flush_stop), + (gst_rtp_jitter_buffer_src_activate_push), + (gst_rtp_jitter_buffer_change_state), (priv_compare_rtp_seq_lt), + (compare_rtp_buffers_seq_num), (gst_rtp_jitter_buffer_sink_event), + (gst_rtp_jitter_buffer_chain), (gst_rtp_jitter_buffer_loop), + (gst_rtp_jitter_buffer_query), + (gst_rtp_jitter_buffer_set_property), + (gst_rtp_jitter_buffer_get_property): + * gst/rtpmanager/gstrtpjitterbuffer.h: + * gst/rtpmanager/gstrtpmanager.c: (plugin_init): + * gst/rtpmanager/gstrtpptdemux.c: (gst_rtp_pt_demux_base_init), + (gst_rtp_pt_demux_class_init), (gst_rtp_pt_demux_init), + (gst_rtp_pt_demux_finalize), (gst_rtp_pt_demux_chain), + (gst_rtp_pt_demux_getcaps), (find_pad_for_pt), + (gst_rtp_pt_demux_setup), (gst_rtp_pt_demux_release), + (gst_rtp_pt_demux_change_state): + * gst/rtpmanager/gstrtpptdemux.h: + * gst/rtpmanager/gstrtpsession.c: (gst_rtp_session_base_init), + (gst_rtp_session_class_init), (gst_rtp_session_init), + (gst_rtp_session_finalize), (gst_rtp_session_set_property), + (gst_rtp_session_get_property), (gst_rtp_session_change_state), + (gst_rtp_session_chain_recv_rtp), + (gst_rtp_session_chain_recv_rtcp), + (gst_rtp_session_chain_send_rtp), (create_recv_rtp_sink), + (create_recv_rtcp_sink), (create_send_rtp_sink), (create_rtcp_src), + (gst_rtp_session_request_new_pad), (gst_rtp_session_release_pad): + * gst/rtpmanager/gstrtpsession.h: + Add RTP session management elements. Still in progress. + +2007-03-30 04:50:11 +0000 Sebastian Dröge + + ext/wavpack/: Don't play audioconvert. As wavpack wants/outputs all samples with width==32 and depth=[1,32] accept th... + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset), + (gst_wavpack_dec_init), (gst_wavpack_dec_sink_set_caps), + (gst_wavpack_dec_clip_outgoing_buffer), + (gst_wavpack_dec_post_tags), (gst_wavpack_dec_chain): + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_reset), + (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config), + (gst_wavpack_enc_chain): + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackparse.c: + Don't play audioconvert. As wavpack wants/outputs all samples with + width==32 and depth=[1,32] accept this and let audioconvert convert + to accepted formats instead of doing it in the element for n*8 depths. + This also adds support for non-n*8 depths and prevents some useless + memory allocations. Fixes #421598 + Also add a workaround for bug #421542 in wavpackenc for now... + * tests/check/elements/wavpackdec.c: (GST_START_TEST): + * tests/check/elements/wavpackenc.c: (GST_START_TEST): + * tests/check/elements/wavpackparse.c: (GST_START_TEST): + Consider the change above in the unit tests and test if the correct + caps are accepted and set. Also check for GST_BUFFER_OFFSET_END in + the wavpackparse unit test. + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init), + (gst_wavpack_dec_sink_set_caps): + Set caps on the src pad as soon as possible. + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackparse.h: + Fix indention. gst-indent is now called by cicl. + +2007-03-28 15:17:27 +0000 Edward Hervey + + gst/qtdemux/: Process 'ctts' atoms, which are present in AVC ISO files (.mov files with h264 video). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample), + (gst_qtdemux_chain), (qtdemux_parse_samples): + * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_ctts): + * gst/qtdemux/qtdemux_dump.h: + * gst/qtdemux/qtdemux_fourcc.h: + * gst/qtdemux/qtdemux_types.c: + Process 'ctts' atoms, which are present in AVC ISO files (.mov files + with h264 video). + Use the offset present in 'ctts' to calculate the PTS for each packet + and set the PTS on outgoing buffers. + Fixes #423283 + +2007-03-27 18:00:56 +0000 Julien Moutte + + ext/xvid/gstxviddec.c: Add some debug log and fix a stupid output buffer duration bug. + Original commit message from CVS: + 2007-03-27 Julien MOUTTE + * ext/xvid/gstxviddec.c: (gst_xviddec_chain): Add some + debug log and fix a stupid output buffer duration bug. + +2007-03-26 14:49:47 +0000 Christian Schaller + + * common: + * gst-plugins-bad.spec.in: + update spec file for x264 encoder + Original commit message from CVS: + update spec file for x264 encoder + +2007-03-25 13:06:26 +0000 Michal Benes + + Add libx264-based h264 encoder plugin (#421110). Probably doesn't handle 'odd' widths and heights correctly yet. + Original commit message from CVS: + Patch by: Michal Benes + Patch by: Josef Zlomek + * configure.ac: + * ext/Makefile.am: + * ext/x264/Makefile.am: + * ext/x264/gstx264enc.c: (gst_x264_enc_me_get_type), + (gst_x264_enc_analyse_get_type), + (gst_x264_enc_timestamp_queue_init), + (gst_x264_enc_timestamp_queue_free), + (gst_x264_enc_timestamp_queue_put), + (gst_x264_enc_timestamp_queue_get), (gst_x264_enc_header_buf), + (gst_x264_enc_set_src_caps), (gst_x264_enc_sink_set_caps), + (gst_x264_enc_base_init), (gst_x264_enc_class_init), + (gst_x264_enc_init), (gst_x264_enc_init_encoder), + (gst_x264_enc_close_encoder), (gst_x264_enc_dispose), + (gst_x264_enc_sink_event), (gst_x264_enc_chain), + (gst_x264_enc_encode_frame), (gst_x264_enc_change_state), + (gst_x264_enc_set_property), (gst_x264_enc_get_property), + (plugin_init): + * ext/x264/gstx264enc.h: + Add libx264-based h264 encoder plugin (#421110). Probably doesn't + handle 'odd' widths and heights correctly yet. + +2007-03-24 19:46:59 +0000 Tim-Philipp Müller + + gst/interleave/deinterleave.c: Remove 'channel-positions' field when munging input caps into 1-channel output caps (I... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_sink_setcaps): + Remove 'channel-positions' field when munging input caps into + 1-channel output caps (I guess technically we should set the + position for each channel on the output caps if it's non-NONE, + but I'll save that as a task for another day). + +2007-03-23 18:41:52 +0000 Michael Smith + + gst/vmnc/vmncdec.c: Redesign to include a parser for raw files (no timestamps in that mode yet, though). + Original commit message from CVS: + * gst/vmnc/vmncdec.c: (gst_vmnc_dec_class_init), + (gst_vmnc_dec_init), (vmnc_dec_finalize), (gst_vmnc_dec_reset), + (vmnc_handle_wmvi_rectangle), (render_colour_cursor), + (render_cursor), (vmnc_make_buffer), (vmnc_handle_wmvd_rectangle), + (vmnc_handle_wmve_rectangle), (vmnc_handle_wmvf_rectangle), + (vmnc_handle_wmvg_rectangle), (vmnc_handle_wmvh_rectangle), + (vmnc_handle_wmvj_rectangle), (render_raw_tile), (render_subrect), + (vmnc_handle_raw_rectangle), (vmnc_handle_copy_rectangle), + (vmnc_handle_hextile_rectangle), (vmnc_handle_packet), + (vmnc_dec_setcaps), (vmnc_dec_chain_frame), (vmnc_dec_chain), + (vmnc_dec_set_property), (vmnc_dec_get_property): + Redesign to include a parser for raw files (no timestamps in that + mode yet, though). + +2007-03-22 22:14:29 +0000 Tim-Philipp Müller + + gst/interleave/deinterleave.c: Don't leak input buffer in chain function; maintain our own list of source pads - ther... + Original commit message from CVS: + * gst/interleave/deinterleave.c: (gst_deinterleave_add_new_pads), + (gst_deinterleave_remove_pads), (gst_deinterleave_process), + (gst_deinterleave_chain): + Don't leak input buffer in chain function; maintain our own list of + source pads - there are no guarantees about the order of the list + in the GstElement struct, and we want a very specific order; lastly, + some more debugging. + +2007-03-22 21:07:02 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Alloc user agent string only once. + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_init): + Alloc user agent string only once. + +2007-03-22 16:25:56 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Revert last commit, preventing infinite plugging loops with ranks is no clean solution... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init): + Revert last commit, preventing infinite plugging loops with ranks + is no clean solution and in general there's no reason why one wants + to parse framed wavpack data again. + +2007-03-22 15:52:51 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.c: Send the new segment event in time format instead of bytes. This allows "wavpackenc ! wa... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block): + Send the new segment event in time format instead of bytes. This + allows "wavpackenc ! wavpackdec ! someaudiosink" pipelines. + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init): + Accept framed and non-framed input, wavpackparse doesn't care. To + prevent "wavpackparse ! wavpackparse ! ..." pipelines lower the + rank of wavpackparse by one. This allows "wavpackenc ! wavpackparse ! + ..." pipelines. + +2007-03-22 14:37:08 +0000 Thomas Vander Stichele + + gst-libs/gst/app/Makefile.am: Use GST_ALL_LDFLAGS, which actually exists, but maybe David can confirm that was what h... + Original commit message from CVS: + * gst-libs/gst/app/Makefile.am: + Use GST_ALL_LDFLAGS, which actually exists, but maybe David + can confirm that was what he wanted. + +2007-03-22 11:08:03 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackdec.c: Revert to use gst_pad_alloc_buffer() here. We can and should use it. + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain): + Revert to use gst_pad_alloc_buffer() here. We can and should use it. + Thanks to Jan and Mike for noticing my mistake. + +2007-03-22 00:17:41 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.*: Put the write helpers into the GstWavpackEnc struct directly and not as a pointer to sav... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init), + (gst_wavpack_enc_init), (gst_wavpack_enc_chain), + (gst_wavpack_enc_rewrite_first_block): + * ext/wavpack/gstwavpackenc.h: + Put the write helpers into the GstWavpackEnc struct directly and not + as a pointer to save two small, but useless mallocs. This also makes + it possible to drop the finalize method. + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_push_buffer): + For consistency reasons also set GST_BUFFER_OFFSET_END on the outgoing + buffers the same way wavpackenc does it. + +2007-03-21 23:50:09 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackdec.c: Don't use gst_pad_alloc_buffer() as we might clip the buffer later and + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain): + Don't use gst_pad_alloc_buffer() as we might clip the buffer later and + BaseTransform-based elements will likely break because of wrong + unit-size. Also plug a possible memleak that happens when decoding + fails for some reason. + +2007-03-18 17:57:48 +0000 Paul Davis + + ext/jack/gstjackaudioclient.c: Don't need to take the connection lock, it will not be used and could cause deadlocks. + Original commit message from CVS: + Based on patch by: Paul Davis + * ext/jack/gstjackaudioclient.c: (gst_jack_audio_unref_connection): + Don't need to take the connection lock, it will not be used and could + cause deadlocks. + +2007-03-16 18:38:18 +0000 Edward Hervey + + sys/osxvideo/osxvideosink.m: Fix previous commit, we want to pass the NSView in the message. + Original commit message from CVS: + * sys/osxvideo/osxvideosink.m: + Fix previous commit, we want to pass the NSView in the message. + +2007-03-16 16:27:20 +0000 Edward Hervey + + sys/osxvideo/osxvideosink.m: Emit 'have-ns-view' message when working in embedded mode. The message will contain a po... + Original commit message from CVS: + * sys/osxvideo/osxvideosink.m: + Emit 'have-ns-view' message when working in embedded mode. The message + will contain a pointer to the newly created NSView. + +2007-03-16 11:22:47 +0000 Jan Schmidt + + gst/mpegvideoparse/: Move the MPEG specific byte parsing into the mpegpacketiser code. + Original commit message from CVS: + * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_util_find_start_code), + (collect_packets), (set_par_from_dar), (set_fps_from_code), + (mpeg_util_parse_extension_packet), (mpeg_util_parse_sequence_hdr), + (mpeg_util_parse_picture_hdr): + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: + (mpegvideoparse_handle_sequence), (mpegvideoparse_handle_picture), + (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain), + (mpv_parse_sink_event), (plugin_init): + * gst/mpegvideoparse/mpegvideoparse.h: + Move the MPEG specific byte parsing into the mpegpacketiser code. + Add parsing of picture types, that just feeds into a debug message + for now. + Fix some 64-bit format strings. + +2007-03-16 10:15:48 +0000 Stefan Kost + + * ChangeLog: + Changelog surgery + Original commit message from CVS: + Changelog surgery + +2007-03-16 09:57:40 +0000 Stefan Kost + + gst/equalizer/gstiirequalizer10bands.c: A 10 band EQ should be initialized to 1 bands and not to 3. + Original commit message from CVS: + * gst/equalizer/gstiirequalizer10bands.c: + (gst_iir_equalizer_10bands_init): + A 10 band EQ should be initialized to 1 bands and not to 3. + +2007-03-15 20:48:08 +0000 Jan Schmidt + + Port mpeg1videoparse to 0.10 and give it rank SECONDARY-1, so that it's below existing decoders. + Original commit message from CVS: + * configure.ac: + * gst/mpeg1videoparse/Makefile.am: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpeg1videoparse/gstmp1videoparse.h: + * gst/mpeg1videoparse/mp1videoparse.vcproj: + * gst/mpegvideoparse/Makefile.am: + * gst/mpegvideoparse/mpegpacketiser.c: (mpeg_packetiser_init), + (mpeg_packetiser_free), (mpeg_packetiser_add_buf), + (mpeg_packetiser_flush), (mpeg_find_start_code), + (get_next_free_block), (complete_current_block), + (append_to_current_block), (start_new_block), (handle_packet), + (collect_packets), (mpeg_packetiser_handle_eos), + (mpeg_packetiser_get_block), (mpeg_packetiser_next_block): + * gst/mpegvideoparse/mpegpacketiser.h: + * gst/mpegvideoparse/mpegvideoparse.c: (mpegvideoparse_get_type), + (gst_mpegvideoparse_base_init), (gst_mpegvideoparse_class_init), + (mpv_parse_reset), (gst_mpegvideoparse_init), + (gst_mpegvideoparse_dispose), (set_par_from_dar), + (set_fps_from_code), (mpegvideoparse_parse_seq), + (gst_mpegvideoparse_time_code), (gst_mpegvideoparse_flush), + (mpegvideoparse_drain_avail), (gst_mpegvideoparse_chain), + (mpv_parse_sink_event), (gst_mpegvideoparse_change_state), + (plugin_init): + * gst/mpegvideoparse/mpegvideoparse.h: + * gst/mpegvideoparse/mpegvideoparse.vcproj: + Port mpeg1videoparse to 0.10 and give it rank SECONDARY-1, so + that it's below existing decoders. + Rename it to mpegvideoparse to reflect that it handles MPEG-1 and + MPEG-2 now. + Re-write the parsing code so that it collects packets differently + and timestamps Picture packets correctly. + Add a list of FIXME's at the top. + +2007-03-15 10:52:21 +0000 Michael Smith + + gst/audioresample/gstaudioresample.c: Don't trigger discontinuities for very small imperfections; a filter flush will... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + (audioresample_check_discont), (audioresample_transform): + Don't trigger discontinuities for very small imperfections; a filter + flush will sound bad, and many plugins have rounding errors leading + to these. + +2007-03-14 17:16:30 +0000 Julien Moutte + + gst/audioresample/gstaudioresample.c: Handle discontinuous streams. + Original commit message from CVS: + 2007-03-14 Julien MOUTTE + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init), + (audioresample_transform_size), (audioresample_do_output), + (audioresample_transform), (audioresample_pushthrough): Handle + discontinuous streams. + * gst/audioresample/gstaudioresample.h: + * tests/check/elements/audioresample.c: + (test_discont_stream_instance), (GST_START_TEST), + (audioresample_suite): Add a test for discontinuous streams. + * win32/common/config.h: Updated. + +2007-03-14 16:33:03 +0000 Stefan Kost + + tests/icles/equalizer-test.c: Port the example to new equalizer api. + Original commit message from CVS: + * tests/icles/equalizer-test.c: (equalizer_set_band_value), + (equalizer_set_all_band_values), + (equalizer_set_band_value_and_wait), + (equalizer_set_all_band_values_and_wait), (do_slider_fiddling), + (main): + Port the example to new equalizer api. + +2007-03-14 16:30:19 +0000 Edward Hervey + + sys/osxvideo/: Fix leaks when running a NSApp. + Original commit message from CVS: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + Fix leaks when running a NSApp. + Accept any kind of resolutions. + Works in fullscreen. Can maximize. + Only thing left before being able to move this to -good is documentation + and embedded window support. + +2007-03-14 15:33:25 +0000 Thomas Vander Stichele + + po/: Updated translations. + Original commit message from CVS: + * po/hu.po: + * po/it.po: + * po/sv.po: + Updated translations. + +2007-03-14 14:48:12 +0000 Thomas Vander Stichele + + gst/audioresample/: Since I really am not interested in a debug line for each sample being processed, move the librar... + Original commit message from CVS: + * gst/audioresample/debug.h: + * gst/audioresample/resample.c: (resample_init): + Since I really am not interested in a debug line for each sample + being processed, move the library's debugging to its own category, + libaudioresample + +2007-03-14 14:48:08 +0000 Stefan Kost + + gst/equalizer/: Add 3 and 10 band version and add missing gst_object_sync_values. + Original commit message from CVS: + * gst/equalizer/Makefile.am: + * gst/equalizer/gstiirequalizer.c: (_do_init), + (gst_iir_equalizer_band_set_property), + (gst_iir_equalizer_band_class_init), + (gst_iir_equalizer_band_get_type), + (gst_iir_equalizer_child_proxy_get_child_by_index), + (gst_iir_equalizer_child_proxy_get_children_count), + (gst_iir_equalizer_child_proxy_interface_init), (setup_filter), + (gst_iir_equalizer_compute_frequencies), + (gst_iir_equalizer_transform_ip), (plugin_init): + * gst/equalizer/gstiirequalizer10bands.c: + (gst_iir_equalizer_10bands_base_init), + (gst_iir_equalizer_10bands_class_init), + (gst_iir_equalizer_10bands_init), + (gst_iir_equalizer_10bands_set_property), + (gst_iir_equalizer_10bands_get_property): + * gst/equalizer/gstiirequalizer10bands.h: + * gst/equalizer/gstiirequalizer3bands.c: + (gst_iir_equalizer_3bands_base_init), + (gst_iir_equalizer_3bands_class_init), + (gst_iir_equalizer_3bands_init), + (gst_iir_equalizer_3bands_set_property), + (gst_iir_equalizer_3bands_get_property): + * gst/equalizer/gstiirequalizer3bands.h: + * gst/equalizer/gstiirequalizernbands.c: + (gst_iir_equalizer_nbands_base_init), + (gst_iir_equalizer_nbands_init): + Add 3 and 10 band version and add missing gst_object_sync_values. + * gst/spectrum/gstspectrum.c: (gst_spectrum_event), + (gst_spectrum_transform_ip): + Add some comments about float support. + +2007-03-14 14:09:21 +0000 Thomas Vander Stichele + + * gst/audioresample/gstaudioresample.c: + add debugging and reformat docs + Original commit message from CVS: + add debugging and reformat docs + +2007-03-13 18:01:47 +0000 Jan Schmidt + + gst/mpegaudioparse/: Remove bogus 2nd copy of mp3parse - it's actually in -ugly. + Original commit message from CVS: + * gst/mpegaudioparse/Makefile.am: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/mpegaudioparse/gstmpegaudioparse.h: + * gst/mpegaudioparse/mpegaudioparse.vcproj: + Remove bogus 2nd copy of mp3parse - it's actually + in -ugly. + +2007-03-12 11:47:42 +0000 Jan Schmidt + + examples/app/.cvsignore: The buildbot demands .cvsignore files, and I comply. + Original commit message from CVS: + * examples/app/.cvsignore: + The buildbot demands .cvsignore files, and I comply. + +2007-03-11 22:23:04 +0000 Sébastien Moutte + + sys/directdraw/gstdirectdrawsink.*: Handle display mode changes during playback. + Original commit message from CVS: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Handle display mode changes during playback. + +2007-03-11 00:48:26 +0000 David Schleef + + Add appsrc/appsink example. + Original commit message from CVS: + * configure.ac: + * examples/Makefile.am: + * examples/app/Makefile.am: + * examples/app/appsrc_ex.c: + Add appsrc/appsink example. + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstapp.c: + * gst-libs/gst/app/gstappsink.c: + * gst-libs/gst/app/gstappsink.h: + * gst/app/gstapp.c: + Add appsink. + +2007-03-10 20:10:09 +0000 Tim-Philipp Müller + + ext/: Printf format string fixes. + Original commit message from CVS: + * ext/nas/nassink.c: (NAS_createFlow): + * ext/sndfile/gstsfsrc.c: (gst_sf_src_create): + Printf format string fixes. + +2007-03-09 08:58:26 +0000 Stefan Kost + + gst/equalizer/: Refactor plugin into a base class and a first subclass (nband eq). The nband eq uses GstChildProxy an... + Original commit message from CVS: + * gst/equalizer/Makefile.am: + * gst/equalizer/gstiirequalizer.c: (_do_init), + (gst_iir_equalizer_band_set_property), + (gst_iir_equalizer_band_get_property), + (gst_iir_equalizer_band_class_init), + (gst_iir_equalizer_band_get_type), + (gst_iir_equalizer_child_proxy_get_child_by_index), + (gst_iir_equalizer_child_proxy_get_children_count), + (gst_iir_equalizer_child_proxy_interface_init), + (gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init), + (gst_iir_equalizer_finalize), (setup_filter), + (gst_iir_equalizer_compute_frequencies), + (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property), + (gst_iir_equalizer_setup), (plugin_init): + * gst/equalizer/gstiirequalizer.h: + * gst/equalizer/gstiirequalizernbands.c: + (gst_iir_equalizer_nbands_base_init), + (gst_iir_equalizer_nbands_class_init), + (gst_iir_equalizer_nbands_init), + (gst_iir_equalizer_nbands_set_property), + (gst_iir_equalizer_nbands_get_property): + * gst/equalizer/gstiirequalizernbands.h: + Refactor plugin into a base class and a first subclass (nband eq). The + nband eq uses GstChildProxy and is controlable. More subclasses will + follow. + +2007-03-08 15:24:52 +0000 Paul Davis + + ext/jack/: Make an object to manage client connections to the jack server which we will use in the future to run sele... + Original commit message from CVS: + Includes patch by: Paul Davis + * ext/jack/Makefile.am: + * ext/jack/gstjackaudioclient.c: (gst_jack_audio_client_init), + (jack_process_cb), (jack_sample_rate_cb), (jack_buffer_size_cb), + (jack_shutdown_cb), (connection_find), + (gst_jack_audio_make_connection), (gst_jack_audio_get_connection), + (gst_jack_audio_unref_connection), + (gst_jack_audio_connection_add_client), + (gst_jack_audio_connection_remove_client), + (gst_jack_audio_client_new), (gst_jack_audio_client_free), + (gst_jack_audio_client_get_client), + (gst_jack_audio_client_set_active): + * ext/jack/gstjackaudioclient.h: + Make an object to manage client connections to the jack server which we + will use in the future to run selected jack elements with the same jack + connection. + Make some stuff a bit more threadsafe. + Activate the jack client ASAP. + * ext/jack/gstjackaudiosink.c: + (gst_jack_audio_sink_allocate_channels), + (gst_jack_audio_sink_free_channels), (jack_process_cb), + (gst_jack_ring_buffer_open_device), + (gst_jack_ring_buffer_close_device), + (gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release), + (gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init), + (gst_jack_audio_sink_getcaps): + * ext/jack/gstjackaudiosink.h: + Use new client object to manage connections. + Don't remove and recreate all ports, try to reuse them. + +2007-03-07 12:07:07 +0000 Sebastian Dröge + + ext/wavpack/: Use a general wavpack debug category for common code. + Original commit message from CVS: + * ext/wavpack/gstwavpack.c: (plugin_init): + * ext/wavpack/gstwavpackcommon.c: + Use a general wavpack debug category for common code. + * ext/wavpack/gstwavpackstreamreader.c: + (gst_wavpack_stream_reader_set_pos_abs), + (gst_wavpack_stream_reader_set_pos_rel), + (gst_wavpack_stream_reader_write_bytes): + Use the general wavpack debug category here too and add debug + output to the functions that should not be called at all by + the wavpack library. + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_plugin_init): + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_plugin_init): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_plugin_init): + Change debugging category names to conform to the conventions. + +2007-03-07 11:37:23 +0000 Edward Hervey + + gst/qtdemux/qtdemux.*: Share qtdemux debug category across all files, otherwise all debugging in files other than qtd... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: + * gst/qtdemux/qtdemux.h: + Share qtdemux debug category across all files, otherwise all debugging + in files other than qtdemux.c would end up in the default category. + +2007-03-07 11:23:20 +0000 Stefan Kost + + gst/spectrum/gstspectrum.*: One FIXME less, by resolving message timestamps against the playback segment. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_start), + (gst_spectrum_event), (gst_spectrum_transform_ip): + * gst/spectrum/gstspectrum.h: + One FIXME less, by resolving message timestamps against the playback + segment. + +2007-03-06 13:57:55 +0000 Wim Taymans + + gst/spectrum/gstspectrum.c: Fix and cleanup default property values. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init), + (gst_spectrum_init), (gst_spectrum_set_property), + (gst_spectrum_transform_ip): + Fix and cleanup default property values. + Add FIXMEs for stuff that looks rather wrong. + +2007-03-05 08:30:52 +0000 Stefan Kost + + gst/spectrum/: Remove two obsolete and confusing comments. + Original commit message from CVS: + * gst/spectrum/demo-audiotest.c: (message_handler): + * gst/spectrum/demo-osssrc.c: (message_handler): + Remove two obsolete and confusing comments. + +2007-03-04 21:36:50 +0000 Tim-Philipp Müller + + ext/nas/nassink.c: Some more cleanups/changes; use boilerplate macro. + Original commit message from CVS: + * ext/nas/nassink.c: (gst_nas_sink_class_init), + (gst_nas_sink_init), (gst_nas_sink_getcaps), + (gst_nas_sink_unprepare): + Some more cleanups/changes; use boilerplate macro. + +2007-03-04 20:35:26 +0000 Tim-Philipp Müller + + ext/nas/: Bunch of nassink clean-ups: make build by adding the right CFLAGS and LIBS to Makefile.am; rename structure... + Original commit message from CVS: + * ext/nas/Makefile.am: + * ext/nas/README: + * ext/nas/nassink.c: (gst_nas_sink_get_type), + (gst_nas_sink_base_init), (gst_nas_sink_class_init), + (gst_nas_sink_init), (gst_nas_sink_finalize), + (gst_nas_sink_getcaps), (gst_nas_sink_prepare), + (gst_nas_sink_unprepare), (gst_nas_sink_delay), + (gst_nas_sink_reset), (gst_nas_sink_write), + (gst_nas_sink_set_property), (gst_nas_sink_get_property), + (gst_nas_sink_open), (gst_nas_sink_close), (NAS_flush), + (NAS_sendData), (NAS_EventHandler), (gst_nas_sink_sink_get_format), + (NAS_createFlow), (plugin_init): + * ext/nas/nassink.h: + Bunch of nassink clean-ups: make build by adding the right CFLAGS + and LIBS to Makefile.am; rename structure, macros and functions + according to canonical naming scheme; move some things around a bit; + use GST_CAT_DEFAULT instead of GST_CAT_* everywhere; remove README + file that didn't really contain any useful information anyway (the + useful bits have been moved into the 'host' property description). + +2007-03-04 16:38:39 +0000 Jan Schmidt + + ext/directfb/dfbvideosink.c: Chain up in finalize. + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_finalize): + Chain up in finalize. + +2007-03-03 22:28:03 +0000 Michael Smith + + Fix up dist. + Original commit message from CVS: + * configure.ac: + * gst/vmnc/Makefile.am: + Fix up dist. + +2007-03-03 22:13:22 +0000 Michael Smith + + Add VMnc decoder. + Original commit message from CVS: + * configure.ac: + * gst/vmnc/Makefile.am: + * gst/vmnc/vmncdec.c: (gst_vmnc_dec_base_init), + (gst_vmnc_dec_class_init), (gst_vmnc_dec_init), + (gst_vmnc_dec_reset), (vmnc_handle_wmvi_rectangle), + (render_colour_cursor), (render_cursor), (vmnc_make_buffer), + (vmnc_handle_wmvd_rectangle), (vmnc_handle_wmve_rectangle), + (vmnc_handle_wmvf_rectangle), (vmnc_handle_wmvg_rectangle), + (vmnc_handle_wmvh_rectangle), (vmnc_handle_wmvj_rectangle), + (render_raw_tile), (render_subrect), (vmnc_handle_raw_rectangle), + (vmnc_handle_hextile_rectangle), (vmnc_handle_packet), + (vmnc_dec_setcaps), (vmnc_dec_chain), (vmnc_dec_change_state), + (vmnc_dec_set_property), (vmnc_dec_get_property), (plugin_init): + Add VMnc decoder. + Still missing support for: + - rectangle types I didn't find in my samples (e.g. copy, RRE, + ZRLE) + - alpha-composited cursors + +2007-03-03 10:23:03 +0000 David Schleef + + gst-libs/gst/app/Makefile.am: Install the headers. + Original commit message from CVS: + * gst-libs/gst/app/Makefile.am: + Install the headers. + +2007-03-03 10:10:30 +0000 David Schleef + + gst-libs/gst/app/: Add GstAppBuffer that includes a callback and closure for proper handling of data chunks. + Original commit message from CVS: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstappbuffer.c: + * gst-libs/gst/app/gstappbuffer.h: + * gst-libs/gst/app/gstappsrc.c: + Add GstAppBuffer that includes a callback and closure for + proper handling of data chunks. + +2007-03-03 09:06:06 +0000 David Schleef + + gst-libs/gst/app/gstappsrc.*: Hacking to address issues in 413418. + Original commit message from CVS: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/app/gstappsrc.h: + Hacking to address issues in 413418. + +2007-03-03 08:16:57 +0000 David Schleef + + Move the app library to gst-libs/gst/app (duh!) + Original commit message from CVS: + * Makefile.am: + * configure.ac: + * ext/Makefile.am: + * gst-libs/gst/Makefile.am: + * gst-libs/gst/app/Makefile.am: + * gst-libs/gst/app/gstapp.c: + * gst-libs/gst/app/gstappsrc.c: + * gst-libs/gst/app/gstappsrc.h: + * gst/app/Makefile.am: + * gst/app/gstapp.c: + * gst/app/gstappsrc.c: + * gst/app/gstappsrc.h: + Move the app library to gst-libs/gst/app (duh!) + +2007-03-02 19:43:48 +0000 Christian Schaller + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/nas/nassink.c: + * ext/nas/nassink.h: + Commit NAS Sink, closed bugzilla 345633 + Original commit message from CVS: + Commit NAS Sink, closed bugzilla 345633 + +2007-03-02 18:24:14 +0000 Tim-Philipp Müller + + ext/dts/gstdtsdec.c: A few small clean-ups. + Original commit message from CVS: + * ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_sink_event): + A few small clean-ups. + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_setcaps): + More debug output for failure cases. + +2007-03-02 18:10:06 +0000 Young-Ho Cha + + ext/dts/gstdtsdec.c: Don't do forced downmixing to stereo, but check what downstream can do and let libdts do the dow... + Original commit message from CVS: + Patch by: Young-Ho Cha + * ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame), + (gst_dtsdec_change_state): + Don't do forced downmixing to stereo, but check what downstream + can do and let libdts do the downmixing based on that (#400555). + +2007-03-02 13:33:39 +0000 Jan Schmidt + + * ChangeLog: + Remove spurious conflict marker + Original commit message from CVS: + Remove spurious conflict marker + +2007-03-02 12:04:02 +0000 Lutz Mueller + + ext/neon/gstneonhttpsrc.*: Simplify _set_uri() and _set_proxy() and remove the unused ishttp member (#388050). + Original commit message from CVS: + Patch by: Lutz Mueller + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_init), (gst_neonhttp_src_set_property), + (gst_neonhttp_src_set_uri), (gst_neonhttp_src_set_proxy), + (gst_neonhttp_src_send_request_and_redirect), + (gst_neonhttp_src_uri_set_uri): + * ext/neon/gstneonhttpsrc.h: + Simplify _set_uri() and _set_proxy() and remove the unused ishttp + member (#388050). + * tests/check/elements/neonhttpsrc.c: (GST_START_TEST): + Fix bogus URI to something that actually exists, otherwise we just + bypass the test (and also to something that doesn't redirect, since + neonhttpsrc doesn't seem to handle this very gracefully yet) + +2007-03-02 11:14:33 +0000 Christian Schaller + + * ChangeLog: + * configure.ac: + * ext/ivorbis/Makefile.am: + * ext/ivorbis/vorbis.c: + * ext/ivorbis/vorbisdec.c: + * ext/ivorbis/vorbisdec.h: + Add patch from Bug 357055 from Chris Lord, adding support for Vorbis streams + Original commit message from CVS: + Add patch from Bug 357055 from Chris Lord, adding support for Vorbis streams + +2007-03-01 17:27:34 +0000 Jan Schmidt + + tests/check/Makefile.am: Draw plugins in from the build tree sys/ dir, rather than picking up the already installed v... + Original commit message from CVS: + * tests/check/Makefile.am: + Draw plugins in from the build tree sys/ dir, rather than + picking up the already installed versions. + +2007-02-28 19:31:12 +0000 Thomas Vander Stichele + + configure.ac: Convert to new AG_GST style. + Original commit message from CVS: + * configure.ac: + Convert to new AG_GST style. + +2007-02-27 12:02:03 +0000 Christian Schaller + + * ChangeLog: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + update copyright statements + Original commit message from CVS: + update copyright statements + +2007-02-27 11:30:19 +0000 Edward Hervey + + sys/osxvideo/: Disable the cocoa event loop since it's a huge memory leak. Should only matter if the sink isn't used ... + Original commit message from CVS: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + Disable the cocoa event loop since it's a huge memory leak. Should only + matter if the sink isn't used within an NSApp (which has already got + a coca event loop). + Remove all unused code. + +2007-02-26 21:01:03 +0000 David Schleef + + Add a new plugin/library to make it easy for apps to shove data into a pipeline. + Original commit message from CVS: + * configure.ac: + * gst/app/Makefile.am: + * gst/app/gstapp.c: + * gst/app/gstappsrc.c: + * gst/app/gstappsrc.h: + Add a new plugin/library to make it easy for apps to shove + data into a pipeline. + +2007-02-26 10:32:30 +0000 Tim-Philipp Müller + + gst/real/: Use gst_pad_use_fixed_caps() on source pads, to avoid negotiation errors in certain situations (e.g. dec !... + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_init): + * gst/real/gstrealvideodec.c: (gst_real_video_dec_init): + Use gst_pad_use_fixed_caps() on source pads, to avoid negotiation + errors in certain situations (e.g. dec ! cs ! ximagesink and the + imagesink window is resized); also, some minor clean-ups. + +2007-02-24 22:52:48 +0000 Tim-Philipp Müller + + Fix build with LDFLAGS='-Wl,-z,defs'. + Original commit message from CVS: + * configure.ac: + * ext/gsm/Makefile.am: + * ext/ladspa/Makefile.am: + * ext/wavpack/Makefile.am: + * gst/equalizer/Makefile.am: + * gst/filter/Makefile.am: + * gst/mve/Makefile.am: + * gst/nsf/Makefile.am: + * gst/replaygain/Makefile.am: + * gst/speed/Makefile.am: + Fix build with LDFLAGS='-Wl,-z,defs'. + +2007-02-20 21:34:00 +0000 Sébastien Moutte + + sys/directsound/gstdirectsoundsink.*: Remove include of unused headers. + Original commit message from CVS: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + Remove include of unused headers. + * sys/waveform/gstwaveformplugin.c: + * sys/waveform/gstwaveformsink.c: + * sys/waveform/gstwaveformsink.h: + * win32/vs6/libgstwaveform.dsp: + Add a new waveform plugin which includes an audio sink + element using the WaveForm win32 API. + * win32/MANIFEST: + Add the new project file form waveform plugin. + +2007-02-18 18:00:51 +0000 Sébastien Moutte + + sys/directdraw/: Prepare the plugin to move to good: + Original commit message from CVS: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Prepare the plugin to move to good: + Remove unused/untested code (rendering to an extern surface, + yuv format rendering).Use GST_(DEBUG/*)_OBJECT macros + Rename all functions from gst_directdrawsink to gst_directdraw_sink. + Add gtk doc section + Fix a bug in gst_directdraw_sink_show_frame, memcpy line by line + respecting destination surface stride. + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + Prepare the plugin to move to good: + Rename all functions from gst_directsoundsink to gst_directsound_sink. + Add gtk doc section + * win32/common/config.h.in: + * win32/MANIFEST: + Add config.h.in + +2007-02-16 16:26:31 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add equalizer plugin + Original commit message from CVS: + add equalizer plugin + +2007-02-13 14:22:53 +0000 Christian Schaller + + * ext/Makefile.am: + add missing \ in Makefile.am + Original commit message from CVS: + add missing \ in Makefile.am + +2007-02-13 09:44:20 +0000 Stefan Kost + + Add crossreferences to glib/gobject/gstream docs. Also fix typo in timidity.cfg check. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + Add crossreferences to glib/gobject/gstream docs. Also fix typo in + timidity.cfg check. + * ext/timidity/gsttimidity.c: (plugin_init): + Also build if no config was detected at configure time. + +2007-02-11 15:46:24 +0000 Stefan Kost + + Add second midi renderer. Fix some double frees and leaks. Clean up logging. + Original commit message from CVS: + * configure.ac: + * ext/timidity/Makefile.am: + * ext/timidity/gsttimidity.c: (plugin_init): + * ext/timidity/gstwildmidi.c: (gst_wildmidi_base_init), + (gst_wildmidi_class_init), (gst_wildmidi_init), + (gst_wildmidi_src_convert), (gst_wildmidi_src_query), + (gst_wildmidi_get_upstream_size), (gst_wildmidi_get_segment), + (gst_wildmidi_get_new_segment_event), (gst_wildmidi_src_event), + (gst_wildmidi_activate), (gst_wildmidi_activatepull), + (gst_wildmidi_allocate_buffer), (gst_wildmidi_clip_buffer), + (gst_wildmidi_fill_buffer), (gst_wildmidi_get_buffer), + (gst_wildmidi_loop), (gst_wildmidi_change_state), + (gst_wildmidi_set_property), (gst_wildmidi_get_property), + (gst_wildmidi_typefind), (wildmidi_open_config), (plugin_init): + * ext/timidity/gstwildmidi.h: + Add second midi renderer. Fix some double frees and leaks. Clean up + logging. + +2007-02-11 15:26:49 +0000 Sébastien Moutte + + Makefile.am: Add win32 MANIFEST + Original commit message from CVS: + * Makefile.am: + Add win32 MANIFEST + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + Clear unused code and add comments. + Remove yuv from template caps, it only supports RGB + actually. + Implement XOverlay interface and remove window and fullscreen + properties. + Add debug logs. + Test for blit capabilities to return only the current colorspace if + the hardware can't blit for one colorspace to another. + * sys/directsound/gstdirectsoundsink.c: + Add some debugs. + * win32/MANIFEST: + Add VS7 project files and solution. + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + * win32/vs6/libgstqtdemux.dsp: + Update project files. + +2007-02-11 11:59:49 +0000 Stefan Kost + + ext/faad/gstfaad.c: Also update the comment that describes the hack. + Original commit message from CVS: + * ext/faad/gstfaad.c: + Also update the comment that describes the hack. + +2007-02-11 11:35:47 +0000 Stefan Kost + + configure.ac: Tell the code which faad it is, so that we can adjust the hacks needed. + Original commit message from CVS: + * configure.ac: + Tell the code which faad it is, so that we can adjust the hacks + needed. + * ext/faad/gstfaad.c: + Make our hacks dependent on the fadd lib in use. + +2007-02-11 10:58:14 +0000 Stefan Kost + + configure.ac: Fix faad detection to support also fadd with new symbol prefix. + Original commit message from CVS: + * configure.ac: + Fix faad detection to support also fadd with new symbol prefix. + ChangeLog surgery. + +2007-02-08 15:00:00 +0000 Wouter Paesen + + Add timitity midi render plugin (#403992) + Original commit message from CVS: + Patch by: Wouter Paesen + * configure.ac: + * ext/Makefile.am: + * ext/timidity/Makefile.am: + * ext/timidity/gsttimidity.c: (gst_timidity_base_init), + (gst_timidity_class_init), (gst_timidity_init), + (gst_timidity_set_song_options), (gst_timidity_src_convert), + (gst_timidity_src_query), (gst_timidity_get_upstream_size), + (gst_timidity_get_segment), (gst_timidity_get_new_segment_event), + (gst_timidity_src_event), (gst_timidity_activate), + (gst_timidity_activatepull), (gst_timidity_allocate_buffer), + (gst_timidity_clip_buffer), (gst_timidity_fill_buffer), + (gst_timidity_get_buffer), (gst_timidity_loop), + (gst_timidity_change_state), (gst_timidity_typefind), + (plugin_init): + * ext/timidity/gsttimidity.h: + Add timitity midi render plugin (#403992) + +2007-02-07 12:29:03 +0000 Edward Hervey + + ext/amrwb/gstamrwbparse.c: GST_PAD_PARENT doesn't return a GstObject with an incremented refcount. + Original commit message from CVS: + * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_query): + GST_PAD_PARENT doesn't return a GstObject with an incremented refcount. + Switched to using gst_pad_get_parent(). + +2007-02-06 16:00:37 +0000 Tim-Philipp Müller + + gst/modplug/gstmodplug.cc: Remove superfluous gst_caps_get_structure() call. + Original commit message from CVS: + * gst/modplug/gstmodplug.cc: + Remove superfluous gst_caps_get_structure() call. + +2007-02-06 10:16:52 +0000 Tim-Philipp Müller + + configure.ac: Increase required libsndfile version to a version that's known to have the function sf_write_sync() to ... + Original commit message from CVS: + * configure.ac: + Increase required libsndfile version to a version that's known to + have the function sf_write_sync() to make the build bots happy. + +2007-02-06 09:39:16 +0000 Tim-Philipp Müller + + ext/sndfile/gstsfsrc.c: Fix build (installed setup). + Original commit message from CVS: + * ext/sndfile/gstsfsrc.c: + Fix build (installed setup). + +2007-02-05 18:42:45 +0000 Andy Wingo + + ext/sndfile/: Port sfsrc to 0.10, pull or push, with random access woo. + Original commit message from CVS: + 2007-02-05 Andy Wingo + * ext/sndfile/Makefile.am: + * ext/sndfile/gstsfsrc.h: + * ext/sndfile/gstsfsrc.c: Port sfsrc to 0.10, pull or push, with + random access woo. + +2007-02-03 23:35:26 +0000 Tim-Philipp Müller + + Fix up to use the newly ported (actually working) GstAudioFilter. + Original commit message from CVS: + * configure.ac: + * gst/equalizer/Makefile.am: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init), + (gst_iir_equalizer_class_init), (gst_iir_equalizer_init), + (setup_filter), (gst_iir_equalizer_compute_frequencies), + (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property), + (gst_iir_equalizer_transform_ip), (gst_iir_equalizer_setup), + (plugin_init): + * gst/equalizer/gstiirequalizer.h: + Fix up to use the newly ported (actually working) GstAudioFilter. + Bump core/base requirements to CVS for this. + * tests/icles/.cvsignore: + * tests/icles/Makefile.am: + * tests/icles/equalizer-test.c: (check_bus), + (equalizer_set_band_value), (equalizer_set_all_band_values), + (equalizer_set_band_value_and_wait), + (equalizer_set_all_band_values_and_wait), (do_slider_fiddling), + (main): + Add brain-dead interactive test for equalizer. + +2007-02-02 18:36:28 +0000 Tim-Philipp Müller + + gst/equalizer/gstiirequalizer.c: Rename "values" property to "band-values" and change type into a + Original commit message from CVS: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_class_init), + (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property), + (gst_iir_equalizer_filter_inplace): + Rename "values" property to "band-values" and change type into a + GValueArray, so it's more easily bindable and the range of the + values passed in is defined and checked etc.; also do some + locking. + +2007-02-02 17:39:21 +0000 James Doc Livingston + + Port equalizer plugin to 0.10 (#403572). + Original commit message from CVS: + Patch by: James "Doc" Livingston + * configure.ac: + * gst/equalizer/Makefile.am: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_get_type), + (gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init), + (gst_iir_equalizer_compute_frequencies), + (gst_iir_equalizer_set_property), + (gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup), + (plugin_init): + Port equalizer plugin to 0.10 (#403572). + +2007-02-02 13:28:05 +0000 Andy Wingo + + configure.ac: ext/Makefile.am + Original commit message from CVS: + 2007-02-02 Andy Wingo + * configure.ac: + * ext/Makefile.am + * ext/sndfile/Makefile.am: + * ext/sndfile/gstsf.c: + * ext/sndfile/gstsf.h: + * ext/sndfile/gstsfsink.c: + * ext/sndfile/gstsfsink.h: Port sfsink to 0.10. Works in pull or + push mode with interleaved float or int data. + +2007-02-02 11:09:50 +0000 Tim-Philipp Müller + + ext/alsaspdif/alsaspdifsink.c: Set rank to NONE so that it doesn't get autoplugged by autoaudiosink (which didn't hap... + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: (plugin_init): + Set rank to NONE so that it doesn't get autoplugged by autoaudiosink + (which didn't happen previously because the klass string didn't + contain anything autoaudiosink was looking for). + +2007-01-31 10:02:05 +0000 Stefan Kost + + gst/real/: Fix classification in GstElementDetails. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: + * gst/real/gstrealvideodec.c: + Fix classification in GstElementDetails. + +2007-01-31 08:32:59 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Fix a off by one that leads to the duration reported as one sample less than it is + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query), + (gst_wavpack_parse_handle_seek_event), + (gst_wavpack_parse_create_src_pad): + Fix a off by one that leads to the duration reported as one + sample less than it is + +2007-01-31 08:16:59 +0000 Stefan Kost + + Fix classification in GstElementDetails. + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: + * gst/nsf/gstnsf.c: + Fix classification in GstElementDetails. + * ext/ladspa/gstladspa.c: (gst_ladspa_base_init), + (gst_ladspa_class_init): + Improve Klassification and reduce code slighly. + +2007-01-30 17:19:33 +0000 Edward Hervey + + configure.ac: Check for an Objective C compiler + Original commit message from CVS: + * configure.ac: + Check for an Objective C compiler + * sys/Makefile.am: + * sys/osxvideo/Makefile.am: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + Port of osxvideo plugin to 0.10. Do NOT consider 100% stable ! + Fixes #402470 + +2007-01-29 20:51:02 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file + Original commit message from CVS: + update spec file + +2007-01-28 18:28:33 +0000 Tim-Philipp Müller + + gst/videocrop/gstvideocrop.c: Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY. + Original commit message from CVS: + * gst/videocrop/gstvideocrop.c: + (gst_video_crop_get_image_details_from_caps), + (gst_video_crop_transform_packed_complex): + Fix cropping for packed 4:2:2 formats YUYV/YUY2 and UYVY. + * tests/icles/videocrop-test.c: (check_bus_for_errors), + (test_with_caps), (main): + Block streaming thread before changing filter caps while the + pipeline is running so that we don't get random not-negotiated + errors just because GStreamer can't handle that yet. + +2007-01-28 17:35:13 +0000 Stefan Kost + + ext/ladspa/: add GstController support to ladspa + Original commit message from CVS: + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.c: (gst_ladspa_class_get_param_spec): + add GstController support to ladspa + +2007-01-28 13:01:02 +0000 Rosfran Borges + + ext/mythtv/gstmythtvsrc.c: Remove sleep calls, they've been moved into the library now ... (#354451). + Original commit message from CVS: + Patch by: Rosfran Borges + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_start), + (gst_mythtv_src_next_program_chain): + Remove sleep calls, they've been moved into the library now ... + (#354451). + +2007-01-27 16:08:15 +0000 Tim-Philipp Müller + + tests/icles/videocrop-test.c: Catch errors while the test is running. + Original commit message from CVS: + * tests/icles/videocrop-test.c: (test_with_caps): + Catch errors while the test is running. + +2007-01-25 23:27:59 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Fix the SEEKING query. We can seek if we are in pull mode, not the other way around. A... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query): + Fix the SEEKING query. We can seek if we are in pull mode, not the + other way around. Also set the correct format in the seeking query and + handle the case where the headers are not read yet and we can't say + anything about our seeking capabilities. + +2007-01-25 21:55:49 +0000 Sebastian Dröge + + ext/wavpack/: Fix spelling in 2 places: It's called Wavpack, not WavePack. + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): + Fix spelling in 2 places: It's called Wavpack, not WavePack. + +2007-01-25 12:05:11 +0000 Edward Hervey + + gst/: Use proper print statements. + Original commit message from CVS: + * gst/multifile/gstmultifilesink.c: + (gst_multi_file_sink_class_init): + * gst/multifile/gstmultifilesrc.c: (gst_multi_file_src_class_init): + * gst/mve/gstmvedemux.c: (gst_mve_video_create_buffer), + (gst_mve_video_palette), (gst_mve_video_code_map), + (gst_mve_audio_init), (gst_mve_audio_data), (gst_mve_timer_create), + (gst_mve_demux_chain): + * gst/mve/gstmvemux.c: (gst_mve_mux_push_chunk): + * gst/mve/mveaudioenc.c: (mve_compress_audio): + * gst/mve/mvevideodec16.c: (ipvideo_copy_block): + * gst/mve/mvevideodec8.c: (ipvideo_copy_block): + * gst/mve/mvevideoenc16.c: (mve_encode_frame16): + * gst/mve/mvevideoenc8.c: (mve_encode_frame8): + Use proper print statements. + Fixes build on mac os x. + oo look at me my name is edward i'm hacking on macos wooo + +2007-01-24 11:29:00 +0000 Wim Taymans + + gst/qtdemux/gstrtpxqtdepay.c: Fix caps on the depayloader. + Original commit message from CVS: + * gst/qtdemux/gstrtpxqtdepay.c: + Fix caps on the depayloader. + +2007-01-23 14:54:01 +0000 Thomas Vander Stichele + + * gst-libs/ext/amrwb/Makefile.am: + work if it's already there too + Original commit message from CVS: + work if it's already there too + +2007-01-17 17:29:04 +0000 Tim-Philipp Müller + + ext/mythtv/gstmythtvsrc.c: Use break here instead of goto. + Original commit message from CVS: + * ext/mythtv/gstmythtvsrc.c: (gst_mythtv_src_set_property): + Use break here instead of goto. + +2007-01-13 19:12:32 +0000 Andy Wingo + + gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads): Use fixed caps on src pads. + Original commit message from CVS: + 2007-01-13 Andy Wingo + * gst/interleave/deinterleave.c (gst_deinterleave_add_new_pads): + Use fixed caps on src pads. + (gst_deinterleave_remove_pads): Remove src pads, not sink pads. I + seem to have reverse midas disease! + (gst_deinterleave_process): Proxy timestamps, offsets, durations, + and set caps on outgoing buffers. Fixes #395597, I think. + +2007-01-13 18:01:41 +0000 Andy Wingo + + gst/interleave/interleave.c (gst_interleave_init): Init the activation mode properly. + Original commit message from CVS: + 2007-01-13 Andy Wingo + * gst/interleave/interleave.c (gst_interleave_init): Init the + activation mode properly. + (gst_interleave_src_setcaps, gst_interleave_src_getcaps) + (gst_interleave_init): Set a setcaps and getcaps function on the + src pad, so that we can implement pull-mode negotiation. + (gst_interleave_sink_setcaps): Renamed from + gst_interleave_setcaps, as it only does the sink logic now. + Implement both for pull-mode and push-mode. + (gst_interleave_process): Set caps on our outgoing buffer. + (gst_interleave_src_activate_pull): Fix some more bogus casts. + What is up with this. + +2007-01-13 12:37:55 +0000 Tim-Philipp Müller + + ext/mythtv/gstmythtvsrc.c: Clean up a bit, mostly the debug statements; fix deadlock in _set_property() in the error ... + Original commit message from CVS: + * ext/mythtv/gstmythtvsrc.c: (do_read_request_response), + (gst_mythtv_src_create), (gst_mythtv_src_get_position), + (gst_mythtv_src_do_seek), (gst_mythtv_src_start), + (gst_mythtv_src_next_program_chain), (gst_mythtv_src_get_size), + (gst_mythtv_src_handle_event), (gst_mythtv_src_handle_query), + (gst_mythtv_src_change_state), (gst_mythtv_src_set_property), + (gst_mythtv_src_uri_get_type): + Clean up a bit, mostly the debug statements; fix deadlock in + _set_property() in the error cases; fix up query function. + +2007-01-12 21:58:43 +0000 Andy Wingo + + * ChangeLog: + * ext/ladspa/gstsignalprocessor.c: + ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate) + Original commit message from CVS: + 2007-01-12 Andy Wingo + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_fixate) + (gst_signal_processor_ouija_caps, gst_signal_processor_prepare): + Remove fixate/ouija stuff, thankfully, due to the new + part-negotiation.txt pull-mode negotiation scheme. + (gst_signal_processor_setcaps_pull) + (gst_signal_processor_setcaps): Implement upstream set_caps pull + proxying for pull mode. Now this works: ladspa-sine-fcac ! + audioconvert ! alsasink. + +2007-01-12 19:02:37 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/mythtv/Makefile.am: + * ext/mythtv/gstmythtvsrc.c: + * ext/mythtv/gstmythtvsrc.h: + * gst-plugins-bad.spec.in: + MythTV client source plugin created. + Original commit message from CVS: + MythTV client source plugin created. + +2007-01-12 17:16:51 +0000 Wim Taymans + + gst/qtdemux/: Add X-QT depayloader that will eventually share code with the demuxer. + Original commit message from CVS: + * gst/qtdemux/Makefile.am: + * gst/qtdemux/gstrtpxqtdepay.c: (gst_rtp_xqt_depay_base_init), + (gst_rtp_xqt_depay_class_init), (gst_rtp_xqt_depay_init), + (gst_rtp_xqt_depay_finalize), (gst_rtp_quicktime_parse_sd), + (gst_rtp_xqt_depay_setcaps), (gst_rtp_xqt_depay_process), + (gst_rtp_xqt_depay_set_property), (gst_rtp_xqt_depay_get_property), + (gst_rtp_xqt_depay_change_state), (gst_rtp_xqt_depay_plugin_init): + * gst/qtdemux/gstrtpxqtdepay.h: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_base_init), + (gst_qtdemux_loop_state_header), (gst_qtdemux_loop), + (qtdemux_parse_moov), (qtdemux_parse_container), + (qtdemux_parse_node), (gst_qtdemux_add_stream), + (qtdemux_parse_trak), (qtdemux_audio_caps): + * gst/qtdemux/qtdemux.h: + * gst/qtdemux/quicktime.c: (plugin_init): + Add X-QT depayloader that will eventually share code with the demuxer. + Make new plugin entry point with quicktime releated stuff. + +2007-01-12 12:10:19 +0000 Tim-Philipp Müller + + gst/qtdemux/Makefile.am: Dist all new files. + Original commit message from CVS: + * gst/qtdemux/Makefile.am: + Dist all new files. + +2007-01-12 10:27:25 +0000 Wim Taymans + + docs/plugins/: Activate docs for jack, sdl and qtdemux. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-qtdemux.xml: + Activate docs for jack, sdl and qtdemux. + +2007-01-12 10:25:40 +0000 Wim Taymans + + ext/jack/gstjackaudiosink.*: Improve docs. + Original commit message from CVS: + * ext/jack/gstjackaudiosink.c: (jack_sample_rate_cb), + (jack_buffer_size_cb), (jack_shutdown_cb), + (gst_jack_ring_buffer_acquire): + * ext/jack/gstjackaudiosink.h: + Improve docs. + +2007-01-12 10:24:29 +0000 Wim Taymans + + ext/gsm/gstgsmenc.c: Fix typo in docs. + Original commit message from CVS: + * ext/gsm/gstgsmenc.c: (gst_gsmenc_init): + Fix typo in docs. + +2007-01-12 10:22:16 +0000 Wim Taymans + + gst/qtdemux/: Cleanup and refactor to make the code more readable. + Original commit message from CVS: + * gst/qtdemux/Makefile.am: + * gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc), + (gst_qtdemux_loop_state_header), (gst_qtdemux_combine_flows), + (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), + (gst_qtdemux_chain), (qtdemux_sink_activate_pull), + (qtdemux_inflate), (qtdemux_parse_moov), (qtdemux_parse_container), + (qtdemux_parse_node), (qtdemux_tree_get_child_by_type), + (qtdemux_tree_get_sibling_by_type), (gst_qtdemux_add_stream), + (qtdemux_parse_samples), (qtdemux_parse_segments), + (qtdemux_parse_trak), (qtdemux_tag_add_str), (qtdemux_tag_add_num), + (qtdemux_tag_add_date), (qtdemux_tag_add_gnre), + (qtdemux_parse_udta), (qtdemux_redirects_sort_func), + (qtdemux_process_redirects), (qtdemux_parse_redirects), + (qtdemux_parse_tree), (gst_qtdemux_handle_esds), + (qtdemux_video_caps), (qtdemux_audio_caps): + * gst/qtdemux/qtdemux.h: + * gst/qtdemux/qtdemux_dump.c: (qtdemux_dump_mvhd), + (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd), + (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref), + (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss), + (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco), + (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd), + (qtdemux_dump_unknown), (qtdemux_node_dump_foreach), + (qtdemux_node_dump): + * gst/qtdemux/qtdemux_dump.h: + * gst/qtdemux/qtdemux_fourcc.h: + * gst/qtdemux/qtdemux_types.c: (qtdemux_type_get): + * gst/qtdemux/qtdemux_types.h: + * gst/qtdemux/qtpalette.h: + Cleanup and refactor to make the code more readable. + Move debugging/tables into separate files. + Add 2/4/16 color palletee support. + Fix raw 15 bit RGB handling. + Use more FOURCC constants. + Add some docs. + +2007-01-11 19:51:04 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.c: Minor clean-up: use enum values instead of hardcoded constants (#395536). + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type), + (gst_wavpack_enc_correction_mode_get_type), + (gst_wavpack_enc_joint_stereo_mode_get_type): + Minor clean-up: use enum values instead of hardcoded constants (#395536). + +2007-01-11 12:28:56 +0000 Tim-Philipp Müller + + gst/mve/gstmvedemux.c: Support SEEKING query (bad news now delivered properly!); add event function to source pads to... + Original commit message from CVS: + * gst/mve/gstmvedemux.c: (gst_mve_demux_get_src_query_types), + (gst_mve_demux_handle_src_query), (gst_mve_demux_handle_src_event), + (gst_mve_add_stream): + Support SEEKING query (bad news now delivered properly!); add event + function to source pads to make sure seeks aren't propagated + upstream, even if they aren't handled. + +2007-01-11 11:39:56 +0000 Jens Granseuer + + Add Interplay MVE format demuxer/decoder and muxer/encoder. Demuxer doesn't support seeking yet, but seems to work fi... + Original commit message from CVS: + Patch by: Jens Granseuer + * configure.ac: + * gst/mve/Makefile.am: + * gst/mve/TODO: + * gst/mve/gstmve.c: + * gst/mve/gstmvedemux.c: + * gst/mve/gstmvedemux.h: + * gst/mve/gstmvemux.c: + * gst/mve/gstmvemux.h: + * gst/mve/mve.h: + * gst/mve/mveaudiodec.c: + * gst/mve/mveaudioenc.c: + * gst/mve/mvevideodec16.c: + * gst/mve/mvevideodec8.c: + * gst/mve/mvevideoenc16.c: + * gst/mve/mvevideoenc8.c: + Add Interplay MVE format demuxer/decoder and muxer/encoder. Demuxer + doesn't support seeking yet, but seems to work fine otherwise. + Closes #348973. + +2007-01-09 10:06:28 +0000 Tim-Philipp Müller + + gst/real/Makefile.am: Fix build (add LIBS and CFLAGS for gst-plugins-base stuff). + Original commit message from CVS: + * gst/real/Makefile.am: + Fix build (add LIBS and CFLAGS for gst-plugins-base stuff). + +2007-01-07 22:03:54 +0000 Andy Wingo + + New elements interleave and deinterleave, implement channel interleaving and deinterleaving. + Original commit message from CVS: + 2007-01-07 Andy Wingo + * configure.ac: + * gst/interleave/Makefile.am: + * gst/interleave/plugin.h: + * gst/interleave/plugin.c: + * gst/interleave/interleave.c: + * gst/interleave/deinterleave.c: New elements interleave and + deinterleave, implement channel interleaving and deinterleaving. + The interleaver can operate in pull or push mode but the + deinterleaver is more like a demuxer and can only operate in push + mode. + +2007-01-06 19:23:40 +0000 Edward Hervey + + configure.ac: Properly detect the two architectures on which the real plugin can be built. + Original commit message from CVS: + * configure.ac: + Properly detect the two architectures on which the real plugin can be + built. + Fixes #393622 + +2007-01-06 17:22:12 +0000 Andy Wingo + + * ChangeLog: + * ext/ladspa/gstsignalprocessor.c: + ext/ladspa/gstsignalprocessor.c + Original commit message from CVS: + 2007-01-06 Andy Wingo + * ext/ladspa/gstsignalprocessor.c + (gst_signal_processor_ouija_caps): Move around in the source + file... + (gst_signal_processor_prepare, gst_signal_processor_do_pulls): + Call ouija_caps in prepare() instead of do_pulls(), a bit earlier. + This allows us to have caps when we do the pad_alloc_buffer(). + (gst_pad_alloc_buffer_and_set_caps): Use self->caps instead of the + pad caps, which might not be set yet. + +2007-01-06 15:56:55 +0000 Andy Wingo + + ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_add_pad_from_template) + Original commit message from CVS: + 2007-01-06 Andy Wingo + * ext/ladspa/gstsignalprocessor.c: + (gst_signal_processor_add_pad_from_template) + (gst_signal_processor_fixate): Add a fixate function, to assist in + pathological ladspa-sine-fcac ! fakesink can-activate-pull=true + cases. + (gst_signal_processor_prepare, gst_signal_processor_process): Add + nframes args so that getrange can tell ladspa how many frames to + process. + (gst_signal_processor_ouija_caps): setcaps needs to be called + before processing, which normally happens when chaining a buffer + to a pad. However in getrange mode with no sinks we need to check + explicitly for this condition, guess some caps to use, and use + those to setcaps(). Hence this mystical function. + (gst_signal_processor_do_pulls): Pull in bytes, not samples. + Divine the caps if necessary. + (gst_signal_processor_getrange): Interpret the length as bytes, + not samples. + (gst_signal_processor_chain): nframes=G_MAXUINT, will be limited + by incoming buffer sizes. + +2007-01-06 14:08:26 +0000 Edward Hervey + + gst/real/gstrealaudiodec.c: Don't call the RAFreeDecoder since it randomly causes segfaults. + Original commit message from CVS: + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_finalize): + Don't call the RAFreeDecoder since it randomly causes segfaults. + * gst/real/gstrealaudiodec.h: + indent properly. + +2007-01-06 10:58:13 +0000 Lutz Mueller + + gst/real/gstrealvideodec.*: Implement error recovery on setcaps failure. + Original commit message from CVS: + Patch by: Lutz Mueller + * gst/real/gstrealvideodec.c: (gst_real_video_dec_decode), + (gst_real_video_dec_setcaps), (open_library), (close_library), + (gst_real_video_dec_finalize): + * gst/real/gstrealvideodec.h: + Implement error recovery on setcaps failure. + +2007-01-06 10:41:46 +0000 Lutz Mueller + + gst/real/: Added RealAudio wrapper elementfactory. + Original commit message from CVS: + Patch by: Lutz Mueller + * gst/real/Makefile.am: + * gst/real/gstreal.c: (plugin_init): + * gst/real/gstrealaudiodec.c: (gst_real_audio_dec_chain), + (gst_real_audio_dec_setcaps), (gst_real_audio_dec_init), + (gst_real_audio_dec_base_init), (gst_real_audio_dec_change_state), + (gst_real_audio_dec_finalize), (gst_real_audio_dec_set_property), + (gst_real_audio_dec_get_property), (gst_real_audio_dec_class_init): + * gst/real/gstrealaudiodec.h: + Added RealAudio wrapper elementfactory. + Modified structures so it can also work on x86_64 using the + adequate .so . + +2007-01-05 18:32:03 +0000 Tim-Philipp Müller + + Check for zlib and if available pass it explicitly to the linker when linking qtdemux. If not available (or --disable... + Original commit message from CVS: + * configure.ac: + * gst/qtdemux/Makefile.am: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_moov): + Check for zlib and if available pass it explicitly to the linker + when linking qtdemux. If not available (or --disable-external has + been specified!), disable the bits in qtdemux that use it. Fixes + build on MingW (#392856). + +2007-01-05 18:15:52 +0000 Edward Hervey + + configure.ac: Real video .so are now also available for x86_64, so we can build the + Original commit message from CVS: + * configure.ac: + Real video .so are now also available for x86_64, so we can build the + Real plugin on i386 AND x86_64. + * gst/real/Makefile.am: + * gst/real/gstreal.c: (plugin_init): + New plugin file for real .so wrapper plugins. + * gst/real/gstrealvideodec.c: (gst_real_video_dec_alloc_buffer), + (gst_real_video_dec_decode), (gst_real_video_dec_chain), + (gst_real_video_dec_activate_push), (gst_real_video_dec_setcaps), + (open_library), (close_library), (gst_real_video_dec_init), + (gst_real_video_dec_base_init), (gst_real_video_dec_finalize), + (gst_real_video_dec_set_property), + (gst_real_video_dec_get_property), (gst_real_video_dec_class_init): + * gst/real/gstrealvideodec.h: + Moved RealVideo element to separate file + Cleaned up code some more. + Make it work on x86_64. + Try several possible locations for .so + Separate opening/closing libraries in separate functions. + +2007-01-05 16:07:12 +0000 Tim-Philipp Müller + + tests/icles/videocrop-test.c: Call g_thread_init() right at the beginning. Remove superfluous gst_init() - we've alre... + Original commit message from CVS: + * tests/icles/videocrop-test.c: (main): + Call g_thread_init() right at the beginning. Remove superfluous + gst_init() - we've already been inited via the GOption stuff. + +2007-01-05 14:02:33 +0000 Tim-Philipp Müller + + configure.ac: Don't compile rfbsource if we don't have sys/socket.h. + Original commit message from CVS: + * configure.ac: + Don't compile rfbsource if we don't have sys/socket.h. + Should fix compilation on MingW. + +2007-01-04 16:39:38 +0000 Thomas Vander Stichele + + * gst-libs/ext/Makefile.am: + * gst-libs/ext/amrwb/Makefile.am: + * gst-libs/ext/amrwb/README: + add directories in the right place + Original commit message from CVS: + add directories in the right place + +2007-01-04 16:32:43 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + * ext/amrwb/Makefile.am: + * ext/amrwb/amrwb-code/Makefile.am: + * ext/amrwb/amrwb-code/amrwb/Makefile.am: + * ext/amrwb/amrwb-code/amrwb/README: + * ext/amrwb/amrwb-code/run.sh: + * gst-libs/Makefile.am: + move amrwb code + Original commit message from CVS: + move amrwb code + +2007-01-04 16:32:43 +0000 Thomas Vander Stichele + + * ext/amrwb/amrwb-code/Makefile.am: + move amrwb code + Original commit message from CVS: + move amrwb code + +2007-01-04 12:49:47 +0000 Thomas Vander Stichele + + configure.ac: split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS so that GST_BASE_CFLAGS can go inbetwe... + Original commit message from CVS: + * configure.ac: + split out GST_CFLAGS into GST_PLUGINS_BASE_CFLAGS and GST_CFLAGS + so that GST_BASE_CFLAGS can go inbetween them, making sure + we use uninstalled gst-libs headers + * docs/libs/Makefile.am: + * ext/alsa/Makefile.am: + * ext/cdparanoia/Makefile.am: + * ext/gnomevfs/Makefile.am: + * ext/libvisual/Makefile.am: + * ext/ogg/Makefile.am: + * ext/theora/Makefile.am: + * ext/vorbis/Makefile.am: + * gst-libs/gst/audio/Makefile.am: + * gst-libs/gst/cdda/Makefile.am: + * gst-libs/gst/interfaces/Makefile.am: + * gst-libs/gst/riff/Makefile.am: + * gst-libs/gst/rtp/Makefile.am: + * gst-libs/gst/tag/Makefile.am: + * gst/adder/Makefile.am: + * gst/audioconvert/Makefile.am: + * gst/audiorate/Makefile.am: + * gst/audioresample/Makefile.am: + * gst/playback/Makefile.am: + * gst/tcp/Makefile.am: + * gst/videoscale/Makefile.am: + * gst/volume/Makefile.am: + * sys/ximage/Makefile.am: + * sys/xvimage/Makefile.am: + * tests/icles/Makefile.am: + adapt + +2007-01-04 09:51:56 +0000 Julien Moutte + + ext/: Fix various compiler warnings that reveal potential bugs. + Original commit message from CVS: + 2007-01-04 Julien MOUTTE + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_get_type): + * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_open): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_setcaps), + (gst_sdlvideosink_show_frame), + (gst_sdlvideosink_navigation_send_event): + * ext/sdl/sdlvideosink.h: Fix various compiler warnings that + reveal potential bugs. + +2007-01-04 09:44:57 +0000 Vincent Torri + + Add directsoundsink to build and dist it, so it gets built when compiling with MingW on win32 and the required header... + Original commit message from CVS: + Patch by: Vincent Torri + * configure.ac: + * sys/Makefile.am: + * sys/directsound/Makefile.am: + * sys/directsound/gstdirectsoundsink.c: + (gst_directsoundsink_reset): + Add directsoundsink to build and dist it, so it gets built when + compiling with MingW on win32 and the required headers and libraries + are available (fixes: #392638). Also simplify DirectDraw check a bit. + * tests/check/elements/.cvsignore: + Fix CVS ignore for neonhttpsrc test binary. + +2007-01-03 19:54:33 +0000 Vincent Torri + + Add directdrawsink to build and dist it, so it gets built when compiling with MingW on win32 and the required headers... + Original commit message from CVS: + Patch by: Vincent Torri + * configure.ac: + * sys/Makefile.am: + * sys/directdraw/Makefile.am: + Add directdrawsink to build and dist it, so it gets built when + compiling with MingW on win32 and the required headers and libraries + are available (fixes: #392313). + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdrawsink_center_rect), (gst_directdrawsink_show_frame), + (gst_directdrawsink_setup_ddraw), + (gst_directdrawsink_surface_create): + Comment out some unused things and fix some printf format issues in + order to avoid warnings when buildling with MingW (#392313). + +2007-01-03 16:41:10 +0000 Jens Granseuer + + Fix build with gcc-2.x (declare variables at the beginning of a block etc.). Fixes #391971. + Original commit message from CVS: + Patch by: Jens Granseuer + * ext/xvid/gstxvidenc.c: (gst_xvidenc_encode), + (gst_xvidenc_get_property): + * gst/filter/gstbpwsinc.c: (bpwsinc_transform_ip): + * gst/filter/gstfilter.c: (plugin_init): + * gst/filter/gstiir.c: (iir_transform_ip): + * gst/filter/gstlpwsinc.c: (lpwsinc_transform_ip): + * gst/modplug/gstmodplug.cc: + * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_header_load), + (gst_nuv_demux_stream_extend_header): + Fix build with gcc-2.x (declare variables at the beginning of a + block etc.). Fixes #391971. + +2007-01-02 11:06:48 +0000 Edward Hervey + + gst/real/gstreal.c: Use codec_data supplied in caps. + Original commit message from CVS: + reviewed by: Edward Hervey + * gst/real/gstreal.c: + (gst_realdec_setcaps): Use codec_data supplied in caps. + (gst_realdec_get_property): Correctly return default path. + (gst_realdec_class_init): Remove unused state_change method. + +2007-01-01 18:06:01 +0000 Edward Hervey + + configure.ac: Only build the plugin on 32bit x86 architectures. + Original commit message from CVS: + * configure.ac: + Only build the plugin on 32bit x86 architectures. + +2007-01-01 17:47:53 +0000 Edward Hervey + + New plugin for decoding RealVideo Streams using the x86 32bit shared libraries. + Original commit message from CVS: + reviewed by: Edward Hervey + * configure.ac: + * gst/real/Makefile.am: + * gst/real/gstreal.c: (gst_realdec_alloc_buffer), + (gst_realdec_decode), (gst_realdec_chain), + (gst_realdec_activate_push), (gst_realdec_setcaps), + (gst_realdec_init), (gst_realdec_base_init), + (gst_realdec_change_state), (gst_realdec_finalize), + (gst_realdec_set_property), (gst_realdec_get_property), + (gst_realdec_class_init), (plugin_init): + New plugin for decoding RealVideo Streams using the x86 32bit + shared libraries. + Closes #354174 + +2006-12-30 12:44:01 +0000 Tim-Philipp Müller + + tests/check/elements/videocrop.c: When we can't create an element needed for the test, print a message detailing whic... + Original commit message from CVS: + * tests/check/elements/videocrop.c: (GST_START_TEST), + (videocrop_test_cropping_init_context): + When we can't create an element needed for the test, print a message + detailing which element it actually is that's missing (#390673). + +2006-12-22 16:23:32 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Added seek support. + Original commit message from CVS: + Added seek support. + +2006-12-22 10:15:24 +0000 Stefan Kost + + tests/check/elements/: reapply consistent pad (de)activation + Original commit message from CVS: + * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc), + (cleanup_mpeg2enc): + * tests/check/elements/rganalysis.c: (cleanup_rganalysis): + * tests/check/elements/wavpackdec.c: (setup_wavpackdec), + (cleanup_wavpackdec): + * tests/check/elements/wavpackenc.c: (setup_wavpackenc), + (cleanup_wavpackenc): + * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc): + reapply consistent pad (de)activation + +2006-12-21 17:05:44 +0000 Jan Schmidt + + configure.ac: Back to CVS + Original commit message from CVS: + * configure.ac: + Back to CVS + * gst-plugins-bad.doap: + Add release section for 0.10.4 + +=== release 0.10.4 === + +2006-12-21 15:45:02 +0000 Jan Schmidt + + configure.ac: releasing 0.10.4, "Black Bugs" + Original commit message from CVS: + === release 0.10.4 === + 2006-12-21 Jan Schmidt + * configure.ac: + releasing 0.10.4, "Black Bugs" + +2006-12-21 15:40:31 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + Update .po files + Original commit message from CVS: + Update .po files + +2006-12-21 14:07:02 +0000 Jan Schmidt + + * ChangeLog: + Remove duplicate changelog entry about reverting a previous commit + Original commit message from CVS: + Remove duplicate changelog entry about reverting a previous commit + +2006-12-21 14:03:42 +0000 Stefan Kost + + tests/check/elements/mpeg2enc.c: (setup_mpeg2enc) + Original commit message from CVS: + * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc) + (cleanup_mpeg2enc): + * tests/check/elements/rganalysis.c: (cleanup_rganalysis): + * tests/check/elements/wavpackdec.c: (setup_wavpackdec), + (cleanup_wavpackdec): + * tests/check/elements/wavpackenc.c: (setup_wavpackenc), + (cleanup_wavpackenc): + * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc): + revert my freeze breakage + +2006-12-21 12:58:41 +0000 Stefan Kost + + tests/check/elements/: revert my freeze breakage + Original commit message from CVS: + * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc), + (cleanup_mpeg2enc): + * tests/check/elements/rganalysis.c: (cleanup_rganalysis): + * tests/check/elements/wavpackdec.c: (setup_wavpackdec), + (cleanup_wavpackdec): + * tests/check/elements/wavpackenc.c: (setup_wavpackenc), + (cleanup_wavpackenc): + * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc): + revert my freeze breakage + +2006-12-21 08:20:10 +0000 Stefan Kost + + tests/check/elements/: consistent pad (de)activation + Original commit message from CVS: + * tests/check/elements/mpeg2enc.c: (setup_mpeg2enc), + (cleanup_mpeg2enc): + * tests/check/elements/rganalysis.c: (cleanup_rganalysis): + * tests/check/elements/wavpackdec.c: (setup_wavpackdec), + (cleanup_wavpackdec): + * tests/check/elements/wavpackenc.c: (setup_wavpackenc), + (cleanup_wavpackenc): + * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc): + consistent pad (de)activation + +2006-12-21 08:12:26 +0000 Stefan Kost + + tests/check/elements/: consistent pad (de)activation + Original commit message from CVS: + * tests/check/elements/audioresample.c: (cleanup_audioresample): + * tests/check/elements/audiotestsrc.c: (cleanup_audiotestsrc): + * tests/check/elements/gdpdepay.c: (setup_gdpdepay), + (cleanup_gdpdepay): + * tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay): + * tests/check/elements/subparse.c: (teardown_subparse): + * tests/check/elements/textoverlay.c: (cleanup_textoverlay): + * tests/check/elements/videorate.c: (cleanup_videorate): + * tests/check/elements/videotestsrc.c: (cleanup_videotestsrc): + * tests/check/elements/volume.c: (cleanup_volume): + * tests/check/elements/vorbisdec.c: (setup_vorbisdec), + (cleanup_vorbisdec): + * tests/check/elements/vorbistag.c: (setup_vorbistag), + (cleanup_vorbistag): + consistent pad (de)activation + +2006-12-18 17:11:49 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Don't post BUFFERING messages in streaming mode if the stream headers are behind the movie dat... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_post_progress), + (gst_qtdemux_chain): + Don't post BUFFERING messages in streaming mode if the stream + headers are behind the movie data; instead, post "progress" element + messages as a temporary solution. Apps might get confused and do + silly things to the pipeline state if they see buffering messages + from different sources and don't realize they come from different + sources (#387160). + +2006-12-18 16:47:23 +0000 Jan Schmidt + + Move LADPSA plugin from -good for the release, as it's not quite ready to be enabled by default in the -good module yet. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/ladspa/*: + Move LADPSA plugin from -good for the release, as it's not quite + ready to be enabled by default in the -good module yet. + +2006-12-18 15:51:54 +0000 Wim Taymans + + ext/ladspa/gstsignalprocessor.c: Reset flow_state back to _OK after a flush stop so that we exit our error state afte... + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps), + (gst_signal_processor_event): + Reset flow_state back to _OK after a flush stop so that we exit our + error state after the flush. Fixes #374213 + +2006-12-18 13:40:34 +0000 Jan Schmidt + + gst/qtdemux/qtdemux.c: Don't output g_warning for an unsupported format, just send a + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain), + (gst_qtdemux_add_stream): + Don't output g_warning for an unsupported format, just send a + GST_ELEMENT_WARNING and don't add the pad. + Fix the case where it doesn't check for a NULL pad in streaming mode. + Fixes #387137 + +2006-12-18 12:27:32 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix crash dereferencing NULL pointer if there's no stco atom. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Fix crash dereferencing NULL pointer if there's no stco atom. + Fixes #387122. + +2006-12-18 10:02:56 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.h: Use local copy of md5.h, as it disappeared in recent wavpack installs. + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.h: + Use local copy of md5.h, as it disappeared in recent wavpack + installs. + Patch by: Sebastian Dröge + Fixes: #387076 + +2006-12-17 20:19:43 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + Update .po files + Original commit message from CVS: + Update .po files + +2006-12-17 20:19:34 +0000 Jan Schmidt + + * ChangeLog: + Replace some email addresses with names+email addresses + Original commit message from CVS: + Replace some email addresses with names+email addresses + +2006-12-16 15:25:23 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: We don't support seeking in streaming mode, so don't even try. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types), + (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event): + We don't support seeking in streaming mode, so don't even try. + Implement seeking query so apps can query seekability properly + (see #365414). Fix duration query. + +2006-12-15 12:18:21 +0000 Thomas Vander Stichele + + add doap file + Original commit message from CVS: + * Makefile.am: + * gst-plugins-bad.doap: + * gst-plugins-bad.spec.in: + add doap file + +2006-12-15 09:34:31 +0000 Tim-Philipp Müller + + ext/libmms/gstmms.c: These debug statements should be using LOG level. + Original commit message from CVS: + * ext/libmms/gstmms.c: (gst_mms_create): + These debug statements should be using LOG level. + +2006-12-14 15:45:56 +0000 Tim-Philipp Müller + + gst/modplug/libmodplug/sndfile.cpp: Fix potential buffer overflow (CVE-2006-4192) (#385788). + Original commit message from CVS: + * gst/modplug/libmodplug/sndfile.cpp: + Fix potential buffer overflow (CVE-2006-4192) (#385788). + +2006-12-13 17:12:22 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Add AMR-WB to the list of supported formats. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_trak), + (qtdemux_audio_caps): + Add AMR-WB to the list of supported formats. + +2006-12-12 16:10:21 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Fix minor mem leak in redirect code. + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create), + (send_request_and_redirect): + Fix minor mem leak in redirect code. + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/neonhttpsrc.c: (handoff_cb), + (GST_START_TEST), (neonhttpsrc_suite): + * tests/check/gst-plugins-bad.supp: + Add super-basic unit test for #384140. + +2006-12-12 12:46:23 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Set offset on buffers pushed out (id3demux gets confused if the first buffer does not have... + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_create), + (send_request_and_redirect): + Set offset on buffers pushed out (id3demux gets confused if the + first buffer does not have an offset of 0). Fixes #384140. + +2006-12-12 11:46:05 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Minor clean-ups; remove newlines at end of debug statements. + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_create), (send_request_and_redirect), + (gst_neonhttp_src_start), (oom_callback): + Minor clean-ups; remove newlines at end of debug statements. + +2006-12-11 17:33:26 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix non-working redirects from inetfilm.com (handle 'alis' reference data type as well). Fixes... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_tree): + Fix non-working redirects from inetfilm.com (handle 'alis' reference + data type as well). Fixes #378613. + +2006-12-11 09:51:17 +0000 Jonathan Matthew + + gst/modplug/gstmodplug.cc: Fix modplug duration query. Fixes #384294. + Original commit message from CVS: + Patch by: Jonathan Matthew ). + * gst/modplug/gstmodplug.cc: + Fix modplug duration query. Fixes #384294. + +2006-12-08 17:06:43 +0000 René Stadler + + gst/qtdemux/qtdemux.c: Fix caps for 24 bit raw PCM audio (2). + Original commit message from CVS: + Patch by: René Stadler + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_trak), + (qtdemux_audio_caps): + Fix caps for 24 bit raw PCM audio (2). + Fixes #383471. + +2006-12-07 11:35:41 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Handle more H263 variants. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_trak), + (qtdemux_video_caps): + Handle more H263 variants. + +2006-12-06 16:57:17 +0000 Jan Schmidt + + ext/jack/.cvsignore: Ignore old files as requested by the build slave. + Original commit message from CVS: + * ext/jack/.cvsignore: + Ignore old files as requested by the build slave. + +2006-12-06 16:14:35 +0000 Jan Schmidt + + configure.ac: Update the Jack requirement to the version where I think options_t appeared + Original commit message from CVS: + * configure.ac: + Update the Jack requirement to the version where I think options_t + appeared + +2006-12-01 10:35:39 +0000 Sergey Scobich + + win32/MANIFEST: Fix compilation on win32 under VS8 + Original commit message from CVS: + * win32/MANIFEST: + Fix compilation on win32 under VS8 + Patch by: Sergey Scobich + Partially fixes #381175 + +2006-11-30 15:08:08 +0000 René Stadler + + gst/replaygain/gstrganalysis.c: Call the base class handler. Fixes #380610. + Original commit message from CVS: + Patch by: René Stadler + * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_event): + Call the base class handler. Fixes #380610. + +2006-11-30 11:59:04 +0000 Wim Taymans + + ext/Makefile.am: Fix build. + Original commit message from CVS: + * ext/Makefile.am: + Fix build. + * ext/jack/gstjackaudiosink.c: (jack_process_cb), + (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), + (gst_jack_ring_buffer_acquire): + Small cleanups. + +2006-11-30 11:49:36 +0000 Wim Taymans + + Added fully functional jackaudiosink. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/jack/Makefile.am: + * ext/jack/gstjack.c: (plugin_init): + * ext/jack/gstjack.h: + * ext/jack/gstjackaudiosink.c: (gst_jack_ring_buffer_get_type), + (gst_jack_ring_buffer_class_init), (jack_process_cb), + (jack_sample_rate_cb), (jack_buffer_size_cb), (jack_shutdown_cb), + (gst_jack_ring_buffer_init), (gst_jack_ring_buffer_dispose), + (gst_jack_ring_buffer_finalize), + (gst_jack_ring_buffer_open_device), + (gst_jack_ring_buffer_close_device), + (gst_jack_ring_buffer_acquire), (gst_jack_ring_buffer_release), + (gst_jack_ring_buffer_start), (gst_jack_ring_buffer_pause), + (gst_jack_ring_buffer_stop), (gst_jack_ring_buffer_delay), + (gst_jack_connect_get_type), (gst_jack_audio_sink_base_init), + (gst_jack_audio_sink_class_init), (gst_jack_audio_sink_init), + (gst_jack_audio_sink_set_property), + (gst_jack_audio_sink_get_property), (gst_jack_audio_sink_getcaps), + (gst_jack_audio_sink_create_ringbuffer): + * ext/jack/gstjackaudiosink.h: + Added fully functional jackaudiosink. + +2006-11-27 17:16:26 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Remove some asserts and replace them with a proper error message. Fixes #379261. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_trak): + Remove some asserts and replace them with a proper error + message. Fixes #379261. + +2006-11-26 17:23:14 +0000 Michael Smith + + ext/theora/theoradec.c: Send events on the right pads, since they don't work very well if you send them in the wrong ... + Original commit message from CVS: + * ext/theora/theoradec.c: (theora_dec_src_query), + (theora_dec_src_event), (theora_handle_data_packet), + (theora_dec_chain): + Send events on the right pads, since they don't work very well if + you send them in the wrong direction. + +2006-11-24 09:05:39 +0000 Stefan Kost + + remove obsolete _factory_init protos and functions + Original commit message from CVS: + * ext/audiofile/gstafsink.c: + * ext/polyp/plugin.c: (plugin_init): + * ext/polyp/polypsink.c: + * ext/polyp/polypsink.h: + * sys/dxr3/dxr3audiosink.h: + * sys/dxr3/dxr3spusink.h: + * sys/dxr3/dxr3videosink.h: + remove obsolete _factory_init protos and functions + +2006-11-21 13:00:08 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add rfbsrc plugin + Original commit message from CVS: + add rfbsrc plugin + +2006-11-19 12:02:13 +0000 Michael Smith + + gst/librfb/Makefile.am: Compile with appropriate cflags. Fixes build. + Original commit message from CVS: + * gst/librfb/Makefile.am: + Compile with appropriate cflags. Fixes build. + +2006-11-17 18:51:58 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Actually set the TONE parameter for DVB-S when we should. + Original commit message from CVS: + 2006-11-17 Zaheer Abbas Merali + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_tune): + Actually set the TONE parameter for DVB-S when we should. + +2006-11-17 03:51:04 +0000 David Schleef + + gst/librfb/rfbdecoder.c: Fixes for 64-bit architectures. + Original commit message from CVS: + * gst/librfb/rfbdecoder.c: Fixes for 64-bit architectures. + +2006-11-17 03:29:32 +0000 David Schleef + + gst/librfb/gstrfbsrc.h: Oops, add this file. + Original commit message from CVS: + * gst/librfb/gstrfbsrc.h: Oops, add this file. + +2006-11-17 03:15:40 +0000 Andre Moreira Magalhaes + + Port librfb to 0.10 (#376106). + Original commit message from CVS: + Patch by: Andre Moreira Magalhaes + * configure.ac: + * gst/librfb/Makefile.am: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfb.c: + * gst/librfb/rfb.h: + * gst/librfb/rfbbuffer.c: + * gst/librfb/rfbbuffer.h: + * gst/librfb/rfbbytestream.c: + * gst/librfb/rfbbytestream.h: + * gst/librfb/rfbcontext.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + * gst/librfb/rfbutil.h: + Port librfb to 0.10 (#376106). + +2006-11-16 18:22:37 +0000 Tim-Philipp Müller + + ext/spc/gstspc.c: Fix build with disabled gst-debug. + Original commit message from CVS: + * ext/spc/gstspc.c: (spc_play): + Fix build with disabled gst-debug. + +2006-11-15 16:19:56 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file with latest changes + Original commit message from CVS: + update spec file with latest changes + +2006-11-15 12:35:46 +0000 Sebastian Dröge + + ext/wavpack/: Some small clean-ups: use enums instead of hard-coded numbers, const-ify element details, re-factor som... + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_reset), + (gst_wavpack_dec_init), (gst_wavpack_dec_change_state): + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init), + (gst_wavpack_enc_class_init), (gst_wavpack_enc_reset), + (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config), + (gst_wavpack_enc_change_state): + * ext/wavpack/gstwavpackparse.c: + Some small clean-ups: use enums instead of hard-coded numbers, + const-ify element details, re-factor some code into _reset() + functions (#352605). + +2006-11-14 15:04:52 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add missing files from SPEC + Original commit message from CVS: + add missing files from SPEC + +2006-11-14 12:33:33 +0000 Tim-Philipp Müller + + sys/dvb/gstdvbsrc.*: Fix minor printf format issue; remove overly paranoid checks in create function; fix GObject boi... + Original commit message from CVS: + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_create): + * sys/dvb/gstdvbsrc.h: + Fix minor printf format issue; remove overly paranoid checks in + create function; fix GObject boilerplate macros. + +2006-11-14 11:43:40 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't parse extra sample params for raw pcm. Fixes #374914. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_trak): + Don't parse extra sample params for raw pcm. Fixes #374914. + +2006-11-14 11:39:39 +0000 Wim Taymans + + tests/check/elements/.cvsignore: Add cdaudio to ignore. + Original commit message from CVS: + * tests/check/elements/.cvsignore: + Add cdaudio to ignore. + +2006-11-14 10:52:52 +0000 Wim Taymans + + ext/Makefile.am: dist cdaudio dir. + Original commit message from CVS: + * ext/Makefile.am: + dist cdaudio dir. + +2006-11-14 10:42:19 +0000 Wim Taymans + + Fix cdaudio build. + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + Fix cdaudio build. + +2006-11-14 10:31:29 +0000 Wim Taymans + + * ChangeLog: + give credit + Original commit message from CVS: + give credit + +2006-11-14 10:25:16 +0000 Wim Taymans + + tests/check/: Added y4m test. Fixes #372243. + Original commit message from CVS: + * tests/check/Makefile.am: + * tests/check/elements/y4menc.c: (setup_y4menc), (cleanup_y4menc), + (GST_START_TEST), (y4menc_suite), (main): + Added y4m test. Fixes #372243. + +2006-11-13 18:55:57 +0000 Mark Nauwelaerts + + configure.ac: Enable cdaudio and y4m. + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * configure.ac: + Enable cdaudio and y4m. + * gst/y4m/Makefile.am: + * gst/y4m/gsty4mencode.c: (gst_y4m_encode_base_init), + (gst_y4m_encode_class_init), (gst_y4m_encode_init), + (gst_y4m_encode_reset), (gst_y4m_encode_setcaps), + (gst_y4m_encode_get_stream_header), + (gst_y4m_encode_get_frame_header), (gst_y4m_encode_chain), + (gst_y4m_encode_set_property), (gst_y4m_encode_get_property), + (gst_y4m_encode_change_state), (plugin_init): + * gst/y4m/gsty4mencode.h: + Port of y4mencode to 0.10. + +2006-11-11 00:22:24 +0000 David Schleef + + A little pluggy to make sense out of the random chunks we get from multifilesrc. + Original commit message from CVS: + * configure.ac: + * gst/videoparse/Makefile.am: + * gst/videoparse/gstvideoparse.c: + A little pluggy to make sense out of the random chunks we get + from multifilesrc. + +2006-11-10 19:18:33 +0000 David Schleef + + gst/multifile/Makefile.am: Let's not depend on a file that doesn't exist. + Original commit message from CVS: + * gst/multifile/Makefile.am: + Let's not depend on a file that doesn't exist. + +2006-11-10 19:07:43 +0000 David Schleef + + gst/multifilesink/: Remove the old one. + Original commit message from CVS: + * gst/multifilesink/Makefile.am: + * gst/multifilesink/gstmultifilesink.c: + * gst/multifilesink/gstmultifilesink.h: + * gst/multifilesink/multifilesink.vcproj: + Remove the old one. + +2006-11-10 18:51:10 +0000 David Schleef + + Revive multifile[src|sink]. + Original commit message from CVS: + * configure.ac: + * gst/multifile/Makefile.am: + * gst/multifile/gstmultifile.c: + * gst/multifile/gstmultifilesink.c: + * gst/multifile/gstmultifilesrc.c: + * gst/multifile/multifile.vproj: + Revive multifile[src|sink]. + +2006-11-09 14:00:34 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property) + Original commit message from CVS: + 2006-11-09 Zaheer Abbas Merali + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property) + (gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats), + (gst_dvbsrc_tune), (gst_dvbsrc_set_pes_filters): + Rename set_pes_filter to set_pes_filters for consistency. + Do run-time pid filtering. + +2006-11-08 11:27:16 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.c: Do not call output_frontend_stats from a method that does not have the gstdvbsrc object. + Original commit message from CVS: + 2006-11-08 Zaheer Abbas Merali + * sys/dvb/gstdvbsrc.c: (read_device): + Do not call output_frontend_stats from a method that does not + have the gstdvbsrc object. + This fixes the build, sorry guys! + +2006-11-07 14:46:56 +0000 Zaheer Abbas Merali + + sys/dvb/gstdvbsrc.*: Force PAT to always be in the filter. + Original commit message from CVS: + 2006-11-07 Zaheer Abbas Merali + * sys/dvb/gstdvbsrc.c: (read_device), (gst_dvbsrc_create), + (gst_dvbsrc_output_frontend_stats), (gst_dvbsrc_tune), + (gst_dvbsrc_set_pes_filter): + * sys/dvb/gstdvbsrc.h: + Force PAT to always be in the filter. + Try to continue reading after failing 10 times. + +2006-11-04 13:26:41 +0000 Thomas Vander Stichele + + po/POTFILES.in: add dvbsrc + Original commit message from CVS: + * po/POTFILES.in: + add dvbsrc + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_class_init), (gst_dvbsrc_init), + (gst_dvbsrc_set_property), (gst_dvbsrc_get_property), + (gst_dvbsrc_open_frontend), (gst_dvbsrc_open_dvr), + (gst_dvbsrc_finalize), (read_device), (gst_dvbsrc_create), + (gst_dvbsrc_start), (gst_dvbsrc_frontend_status), + (gst_dvbsrc_tune), (gst_dvbsrc_unset_pes_filters), + (gst_dvbsrc_set_pes_filter): + * sys/dvb/gstdvbsrc.h: + adapter-prefix is a terrible name for a device, so replace it. + strerror should be used immediately after the syscall related to it. + Actually throw a reasonable GST_ELEMENT_ERROR if we fail to open + (pretty easy to trigger by opening the same device twice). + Use _OBJECT macros where it makes sense. + This element is going to need some work before it moves. + +2006-11-02 20:13:26 +0000 Sebastian Dröge + + Fix enum nicks; only emit no-more-pads once; add support for very fast encoding mode in upcoming 4.40.0 release (#369... + Original commit message from CVS: + Patch by: Sebastian Dröge + * configure.ac: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type), + (gst_wavpack_enc_correction_mode_get_type), + (gst_wavpack_enc_joint_stereo_mode_get_type), + (gst_wavpack_enc_init), (gst_wavpack_enc_set_wp_config): + Fix enum nicks; only emit no-more-pads once; add support for very + fast encoding mode in upcoming 4.40.0 release (#369539). + +2006-11-01 10:19:18 +0000 Sergey Scobich + + sys/: Wait until the window is created before using it; guard unistd.h includes with HAVE_UNISTD_H. (#366523) + Original commit message from CVS: + Patch by: Sergey Scobich + * sys/directdraw/gstdirectdrawsink.c: + (gst_directdrawsink_window_thread), + (gst_directdrawsink_create_default_window): + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundsink.c: + Wait until the window is created before using it; guard unistd.h + includes with HAVE_UNISTD_H. (#366523) + * win32/vs8/libgstdirectdraw.vcproj: + * win32/vs8/libgstdirectsound.vcproj: + Update project files. + +2006-10-31 10:31:18 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Handle unbounded length streams a bit better. Fixes #367696. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_duration), + (gst_qtdemux_handle_src_query), (qtdemux_parse_tree), + (qtdemux_parse_trak): + Handle unbounded length streams a bit better. Fixes #367696. + +2006-10-29 19:08:01 +0000 Tim-Philipp Müller + + ext/dts/gstdtsdec.c: Fix flow handling and buffer refcounting (gst_pad_push() takes ownership of the buffer passed to... + Original commit message from CVS: + * ext/dts/gstdtsdec.c: (gst_dtsdec_handle_frame): + Fix flow handling and buffer refcounting (gst_pad_push() takes + ownership of the buffer passed to it, the buffer does not have + to be unreffed no matter what flow value gst_pad_push() returns). + +2006-10-28 16:00:51 +0000 Tim-Philipp Müller + + gst/audioresample/gstaudioresample.c: Another typo fix (#366212). + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init): + Another typo fix (#366212). + +2006-10-26 14:07:08 +0000 Edgard Lima + + * ChangeLog: + * gst/nuvdemux/gstnuvdemux.c: + * gst/nuvdemux/gstnuvdemux.h: + Fixed bug for files with timestamps less than 0. + Original commit message from CVS: + Fixed bug for files with timestamps less than 0. + +2006-10-21 22:56:03 +0000 David Schleef + + I copied over filesink a while ago and modified it to work as multifilesink. Might as well check it in. This could ... + Original commit message from CVS: + * configure.ac: + * gst/multifilesink/Makefile.am: + * gst/multifilesink/gstmultifilesink.c: + * gst/multifilesink/gstmultifilesink.h: + I copied over filesink a while ago and modified it to work + as multifilesink. Might as well check it in. This could + use some work before being declared useful. + +2006-10-17 15:16:47 +0000 Tim-Philipp Müller + + Activate pads before adding them to running element. + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_set_wp_config): + * ext/wavpack/gstwavpackparse.c: + (gst_wavpack_parse_create_src_pad): + * gst/nuvdemux/gstnuvdemux.c: (gst_nuv_demux_create_pads): + * tests/check/elements/wavpackparse.c: (wavpackparse_found_pad): + Activate pads before adding them to running element. + +2006-10-17 14:57:17 +0000 Josep Torra Valles + + gst/qtdemux/qtdemux.c: Make compile with Forte compiler, mostly don't do pointer arithmetic with void pointers (#3626... + Original commit message from CVS: + Patch by: Josep Torra Valles + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), + (next_entry_size), (qtdemux_inflate), (qtdemux_parse_moov), + (qtdemux_parse_tree), (qtdemux_parse_trak), (qtdemux_tag_add_str), + (qtdemux_tag_add_num), (qtdemux_tag_add_date), + (qtdemux_tag_add_gnre): + Make compile with Forte compiler, mostly don't do pointer arithmetic + with void pointers (#362626). + +2006-10-17 14:40:20 +0000 Edgard Lima + + * ChangeLog: + * gst/nuvdemux/gstnuvdemux.c: + Just a cast to make it compile oos big_endian systems. + Original commit message from CVS: + Just a cast to make it compile oos big_endian systems. + +2006-10-17 14:24:18 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * gst/nuvdemux/Makefile.am: + * gst/nuvdemux/gstnuvdemux.c: + * gst/nuvdemux/gstnuvdemux.h: + Created new element nuvdemux. + Original commit message from CVS: + Created new element nuvdemux. + +2006-10-17 11:04:14 +0000 Josep Torra Valles + + gst/nsf/: Fix some things the Forte compiler warns about (#362626). + Original commit message from CVS: + Patch by: Josep Torra Valles + * gst/nsf/fds_snd.c: + * gst/nsf/mmc5_snd.c: + * gst/nsf/nsf.c: + * gst/nsf/vrc7_snd.c: + * gst/nsf/vrcvisnd.c: + Fix some things the Forte compiler warns about (#362626). + +2006-10-17 10:59:55 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.*: Avoid void pointer usage, better use guint8 * instead. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_moov), (qtdemux_parse), + (qtdemux_node_dump_foreach), (qtdemux_dump_mvhd), + (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd), + (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref), + (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss), + (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco), + (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd), + (qtdemux_dump_unknown), (qtdemux_tree_get_child_by_type), + (qtdemux_tree_get_sibling_by_type): + * gst/qtdemux/qtdemux.h: + Avoid void pointer usage, better use guint8 * instead. + +2006-10-11 20:33:48 +0000 Tim-Philipp Müller + + Port simple deinterlacer from 0.8. Use at your own risk, don't blame me for anything it does or does not do to your p... + Original commit message from CVS: + * configure.ac: + * gst/deinterlace/Makefile.am: + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_base_init), + (gst_deinterlace_class_init), (gst_deinterlace_init), + (gst_deinterlace_stop), (gst_deinterlace_transform_caps), + (gst_deinterlace_set_caps), (gst_deinterlace_transform_ip), + (gst_deinterlace_set_property), (gst_deinterlace_get_property): + * gst/deinterlace/gstdeinterlace.h: + Port simple deinterlacer from 0.8. Use at your own risk, don't blame + me for anything it does or does not do to your precious pictures. + +2006-10-11 13:49:26 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Add some fourcc for DV format. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add some fourcc for DV format. + +2006-10-10 18:54:05 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Printf format fixes. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (extract_initial_length_and_fourcc), + (gst_qtdemux_loop_state_header): + Printf format fixes. + * sys/dvb/gstdvbsrc.c: + Use "_stdint.h". + +2006-10-10 16:09:58 +0000 Zaheer Abbas Merali + + sys/dvb/: Remove these files, not needed use system files. + Original commit message from CVS: + 2006-10-10 Zaheer Abbas Merali + * sys/dvb/Makefile.am: + * sys/dvb/dvb-api/Makefile.am: + * sys/dvb/dvb-api/audio.h: + * sys/dvb/dvb-api/ca.h: + * sys/dvb/dvb-api/dmx.h: + * sys/dvb/dvb-api/frontend.h: + * sys/dvb/dvb-api/net.h: + * sys/dvb/dvb-api/osd.h: + * sys/dvb/dvb-api/version.h: + * sys/dvb/dvb-api/video.h: + Remove these files, not needed use system files. + * sys/dvb/gstdvbsrc.c: (gst_dvbsrc_set_property), + (gst_dvbsrc_create), (gst_dvbsrc_output_frontend_stats), + (gst_dvbsrc_tune): + Fix warnings, uint16_t etc. is in stdint.h. + Use system includes not our local ones. + +2006-10-10 15:55:25 +0000 Zaheer Abbas Merali + + * po/.gitignore: + Buildbot, I do as you command. http://build.fluendo.com:8080/gen64-bad-full/builds/475/cvs%20ignore/1 + Original commit message from CVS: + Buildbot, I do as you command. + http://build.fluendo.com:8080/gen64-bad-full/builds/475/cvs%20ignore/1 + +2006-10-10 15:47:49 +0000 Zaheer Abbas Merali + + Add dvb detection and allow dvbsrc to be built. + Original commit message from CVS: + 2006-10-10 Zaheer Abbas Merali + * configure.ac: + * sys/Makefile.am: + Add dvb detection and allow dvbsrc to be built. + +2006-10-10 15:05:32 +0000 Zaheer Abbas Merali + + Initial import of dvbsrc. + Original commit message from CVS: + 2006-10-10 Zaheer Abbas Merali + * configure.ac: + * sys/Makefile.am: + * sys/dvb/AUTHORS: + * sys/dvb/Makefile.am: + * sys/dvb/README: + * sys/dvb/dvb-api/Makefile.am: + * sys/dvb/dvb-api/audio.h: + * sys/dvb/dvb-api/ca.h: + * sys/dvb/dvb-api/dmx.h: + * sys/dvb/dvb-api/frontend.h: + * sys/dvb/dvb-api/net.h: + * sys/dvb/dvb-api/osd.h: + * sys/dvb/dvb-api/version.h: + * sys/dvb/dvb-api/video.h: + * sys/dvb/gstdvbsrc.c: + * sys/dvb/gstdvbsrc.h: + Initial import of dvbsrc. + Currently won't be built. + +2006-10-10 12:49:02 +0000 Josep Torre Valles + + ext/gnomevfs/: Fix URI interface implementation return type. + Original commit message from CVS: + 2006-10-10 Zaheer Abbas Merali + Patch by: Josep Torre Valles + * ext/gnomevfs/gstgnomevfssink.c: + * ext/gnomevfs/gstgnomevfssrc.c: + Fix URI interface implementation return type. + * ext/pango/gsttextoverlay.c: (gst_text_overlay_set_property): + Fix what looks like a copy/paste issue when assigning values. + * gst-libs/gst/audio/gstaudiofiltertemplate.c: + (gst_audio_filter_template_get_type): + Cast to prevent Forte warnings. + * gst-libs/gst/cdda/gstcddabasesrc.c: (gst_cdda_base_src_create): + Fix URI interface implementation return type. + gst_pad_query_position requires a signed integer pointer as + 3rd parameter, GstClockTime is unsigned. + * gst/audioconvert/audioconvert.c: + Fix integer overflow when treated as signed. + * gst/audioresample/resample.c: (resample_add_input_data): + Cast to prevent warnings on Forte. + * gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette): + Fix integer overflow when treated as signed. + * gst/ffmpegcolorspace/imgconvert_template.h: + Fix integer overflow when treated as signed. RGBA_OUT shifts bits. + * gst/playback/gstdecodebin.c: (queue_filled_cb), + (cleanup_decodebin): + Who initialises a guint to -1! + Cast function pointers to prevent warnings on Forte. + * gst/playback/gstplaybasebin.c: (queue_deadlock_check), + (queue_threshold_reached): + Cast function pointers correctly to prevent warnings on Forte. + * gst/playback/gststreaminfo.c: (gst_stream_info_dispose): + Cast function pointers correctly to prevent warnings on Forte. + * gst/subparse/gstssaparse.c: (gst_ssa_parse_setcaps): + Obvious change to unsigned, 0xEF > max signed char. + * gst/tcp/gstmultifdsink.c: (get_buffers_max), (count_burst_unit): + GstClockTime is unsigned, initialise correctly. + * gst/tcp/gsttcp.c: (gst_tcp_socket_write): + Cast so pointer arithemetic doesn't cause warnings on Forte. + * gst/videorate/gstvideorate.c: + Use correct return value. + * tests/examples/seek/scrubby.c: + GstClockTime is unsigned, initialise correctly. + +2006-10-10 09:57:19 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Reorganise some stuff. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_push_event), (gst_qtdemux_do_seek), + (gst_qtdemux_change_state), (extract_initial_length_and_fourcc), + (gst_qtdemux_loop_state_header), (gst_qtdemux_activate_segment), + (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), + (gst_qtdemux_post_buffering), (gst_qtdemux_chain), + (gst_qtdemux_add_stream), (qtdemux_process_redirects), + (qtdemux_parse_tree), (qtdemux_parse_trak): + Reorganise some stuff. + Parse RTSP redirection URLS. + +2006-10-07 11:37:59 +0000 Tim-Philipp Müller + + docs/plugins/: Add/update docs stuff. + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/inspect/plugin-dtsdec.xml: + * docs/plugins/inspect/plugin-mms.xml: + * docs/plugins/inspect/plugin-mpeg2enc.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-replaygain.xml: + * docs/plugins/inspect/plugin-soundtouch.xml: + * docs/plugins/inspect/plugin-spcdec.xml: + * docs/plugins/inspect/plugin-swfdec.xml: + * docs/plugins/inspect/plugin-videocrop.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + Add/update docs stuff. + +2006-10-06 15:56:01 +0000 René Stadler + + Add ReplayGain analysis element (#357069). + Original commit message from CVS: + Patch by: René Stadler + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/replaygain/Makefile.am: + * gst/replaygain/gstrganalysis.c: (gst_rg_analysis_base_init), + (gst_rg_analysis_class_init), (gst_rg_analysis_init), + (gst_rg_analysis_set_property), (gst_rg_analysis_get_property), + (gst_rg_analysis_start), (gst_rg_analysis_set_caps), + (gst_rg_analysis_transform_ip), (gst_rg_analysis_event), + (gst_rg_analysis_stop), (gst_rg_analysis_handle_tags), + (gst_rg_analysis_handle_eos), (gst_rg_analysis_track_result), + (gst_rg_analysis_album_result), (plugin_init): + * gst/replaygain/gstrganalysis.h: + * gst/replaygain/rganalysis.c: (yule_filter), (butter_filter), + (apply_filters), (reset_filters), (accumulator_add), + (accumulator_clear), (accumulator_result), (rg_analysis_new), + (rg_analysis_set_sample_rate), (rg_analysis_destroy), + (rg_analysis_analyze_mono_float), + (rg_analysis_analyze_stereo_float), + (rg_analysis_analyze_mono_int16), + (rg_analysis_analyze_stereo_int16), (rg_analysis_analyze), + (rg_analysis_track_result), (rg_analysis_album_result), + (rg_analysis_reset_album), (rg_analysis_reset): + * gst/replaygain/rganalysis.h: + Add ReplayGain analysis element (#357069). + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/rganalysis.c: (get_expected_gain), + (setup_rganalysis), (cleanup_rganalysis), (set_playing_state), + (send_eos_event), (send_tag_event), (poll_eos), (poll_tags), + (fail_unless_track_gain), (fail_unless_track_peak), + (fail_unless_album_gain), (fail_unless_album_peak), + (fail_if_track_tags), (fail_if_album_tags), + (fail_unless_num_tracks), (test_buffer_const_float_mono), + (test_buffer_const_float_stereo), (test_buffer_const_int16_mono), + (test_buffer_const_int16_stereo), (test_buffer_square_float_mono), + (test_buffer_square_float_stereo), (test_buffer_square_int16_mono), + (test_buffer_square_int16_stereo), (push_buffer), (GST_START_TEST), + (rganalysis_suite), (main): + Unit tests for the new replaygain element. + +2006-10-06 15:49:39 +0000 Wim Taymans + + ext/faad/gstfaad.c: Some cleanups. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain), + (gst_faad_close_decoder): + Some cleanups. + Added some more debugging. + Don't ever ignore unlinked, we're not a demuxer. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream): + Activate pad before adding it to the element. + +2006-10-06 12:02:09 +0000 Michael Smith + + ext/theora/theoradec.*: Port lots of changes from theoradec to theoraexpdec. + Original commit message from CVS: + * ext/theora/theoradec.c: (gst_theoradec_reset), + (theora_get_query_types), (theora_dec_src_query), + (theora_dec_src_event), (theora_dec_sink_event), + (theora_handle_comment_packet), (theora_handle_type_packet), + (theora_handle_header_packet), (clip_buffer), (theora_dec_push), + (theora_handle_422_image), (theora_handle_420_image), + (theora_handle_data_packet), (theora_dec_chain), + (theora_dec_change_state): + * ext/theora/theoradec.h: + Port lots of changes from theoradec to theoraexpdec. + This catches this plugin up to theoradec. Note that duplicate frames + are broken in theoradec at the moment. + +2006-10-06 11:31:11 +0000 Tim-Philipp Müller + + gst/spectrum/gstspectrum.c: Fix mem leak, avoid unnecessary memcpy. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip): + Fix mem leak, avoid unnecessary memcpy. + +2006-10-06 02:29:35 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Removed cruft code that was just commented out. Removed some obsolete debug logs statements. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_init), + (gst_spectrum_transform_ip): + Removed cruft code that was just commented out. Removed some obsolete + debug logs statements. + +2006-10-05 18:14:46 +0000 Tim-Philipp Müller + + Another batch of printf format fixes. + Original commit message from CVS: + * ext/dts/gstdtsdec.c: (gst_dtsdec_chain): + * ext/musicbrainz/gsttrm.c: (gst_trm_setcaps): + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_sink_set_caps): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain), (qtdemux_parse), + (qtdemux_parse_trak): + * gst/spectrum/gstspectrum.c: (gst_spectrum_transform_ip): + Another batch of printf format fixes. + +2006-10-05 15:55:20 +0000 Tim-Philipp Müller + + Printf format fixes. + Original commit message from CVS: + * ext/alsa/gstalsadeviceprobe.c: + (gst_alsa_device_property_probe_get_values): + * ext/alsa/gstalsasink.c: (set_hwparams): + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain_elem_pad), + (gst_ogg_chain_new_stream), (gst_ogg_demux_read_chain): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_send_headers), + (gst_ogg_mux_process_best_pad): + * ext/ogg/gstoggparse.c: (gst_ogg_parse_new_stream), + (gst_ogg_parse_chain): + * ext/ogg/gstogmparse.c: (gst_ogm_parse_stream_header): + * ext/vorbis/vorbisdec.c: (vorbis_handle_data_packet): + * ext/vorbis/vorbisenc.c: (gst_vorbis_enc_setup), + (gst_vorbis_enc_buffer_check_discontinuous): + * ext/vorbis/vorbisparse.c: (vorbis_parse_src_query): + * gst-libs/gst/audio/gstbaseaudiosink.c: + (gst_base_audio_sink_render): + * gst-libs/gst/cdda/gstcddabasesrc.c: + (gst_cdda_base_src_handle_track_seek): + * gst-libs/gst/rtp/gstbasertpdepayload.c: + (gst_base_rtp_depayload_push_full): + * gst-libs/gst/rtp/gstbasertppayload.c: (gst_basertppayload_push): + * gst/audioresample/resample.c: (resample_input_pushthrough): + * gst/playback/gstplaybasebin.c: (queue_out_of_data): + * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_handle_clients): + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find_at_offset), + (wavpack_type_find): + * gst/videotestsrc/gstvideotestsrc.c: (gst_video_test_src_create): + * sys/xvimage/xvimagesink.c: (gst_xvimage_buffer_destroy), + (gst_xvimagesink_check_xshm_calls), (gst_xvimagesink_xvimage_new): + * tests/check/elements/volume.c: (GST_START_TEST): + Printf format fixes. + +2006-10-04 22:37:07 +0000 Tim-Philipp Müller + + gst/videocrop/gstvideocrop.*: Handle packed YUV formats (UYVY, YUY2, YUYV) separately; also, fix passthrough mode; la... + Original commit message from CVS: + * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init), + (gst_video_crop_init), + (gst_video_crop_get_image_details_from_caps), + (gst_video_crop_transform_packed_complex), + (gst_video_crop_transform_packed_simple), + (gst_video_crop_transform), (gst_video_crop_transform_caps), + (gst_video_crop_set_caps), + (gst_videocrop_clear_negotiated_caps_locked), + (gst_video_crop_set_property): + * gst/videocrop/gstvideocrop.h: + Handle packed YUV formats (UYVY, YUY2, YUYV) separately; also, fix + passthrough mode; lastly, clear negotiated basetransform caps when + the cropping changes in order to force renegotiation. + +2006-10-04 20:05:07 +0000 Tim-Philipp Müller + + tests/icles/: Visual test for videocrop, shows that packed yuv doesn't work right yet. --with-ffmpegcolorspace option... + Original commit message from CVS: + * tests/icles/.cvsignore: + * tests/icles/Makefile.am: + * tests/icles/videocrop-test.c: (quit_mainloop), (tick_cb), + (test_with_caps), (video_crop_get_test_caps), (main): + Visual test for videocrop, shows that packed yuv doesn't work right + yet. --with-ffmpegcolorspace option doesn't work yet for unknown + reasons (another basetransform issue?) + +2006-10-04 10:55:21 +0000 Tim-Philipp Müller + + Remove more v4l2 stuff, hopefully fixing 'make distcheck' again. + Original commit message from CVS: + * po/POTFILES.in: + * sys/v4l2/.cvsignore: + Remove more v4l2 stuff, hopefully fixing 'make distcheck' again. + +2006-10-04 10:29:22 +0000 Thomas Vander Stichele + + removed v4l2 + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-video4linux2.xml: + * gst-plugins-bad.spec.in: + removed v4l2 + +2006-10-03 18:32:31 +0000 Thomas Vander Stichele + + * tests/icles/Makefile.am: + * tests/icles/v4l2src-test.c: + removing icle for v4l2 + Original commit message from CVS: + removing icle for v4l2 + +2006-10-03 18:27:57 +0000 Thomas Vander Stichele + + * configure.ac: + remove last cond + Original commit message from CVS: + remove last cond + +2006-10-03 18:23:21 +0000 Thomas Vander Stichele + + moved to gst-plugins-good + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/v4l2/Makefile.am: + * sys/v4l2/README: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2vidorient.c: + * sys/v4l2/gstv4l2vidorient.h: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + moved to gst-plugins-good + +2006-10-03 13:47:10 +0000 Thomas Vander Stichele + + * sys/v4l2/gstv4l2object.c: + comment out the notifies for removed properties + Original commit message from CVS: + comment out the notifies for removed properties + +2006-10-03 13:30:48 +0000 Thomas Vander Stichele + + sys/v4l2/gstv4l2object.c: comment out the properties that are already part of the tuner interface. + Original commit message from CVS: + * sys/v4l2/gstv4l2object.c: + (gst_v4l2_object_install_properties_helper): + comment out the properties that are already part of the tuner + interface. + +2006-10-03 13:18:59 +0000 Zaheer Abbas Merali + + sys/v4l2/gstv4l2src.c: Improve docs. + Original commit message from CVS: + 2006-10-03 Zaheer Abbas Merali + * sys/v4l2/gstv4l2src.c: + Improve docs. + +2006-10-02 13:28:49 +0000 Tim-Philipp Müller + + ext/xvid/gstxvid.c: Set rank of xviddec to NONE until someone fixes it (too many crasher bug reports against totem, p... + Original commit message from CVS: + * ext/xvid/gstxvid.c: (plugin_init): + Set rank of xviddec to NONE until someone fixes it (too many crasher + bug reports against totem, people should use gst-ffmpeg). + +2006-09-28 17:08:47 +0000 Wim Taymans + + sys/v4l2/: Framerate can be 0/1 too. + Original commit message from CVS: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_all_caps), + (gst_v4l2src_get_caps): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): + Framerate can be 0/1 too. + Init framerate to 0/1 before querying it so that we can detect + devices that don't know about a framerate. + Add some more debugging info. + +2006-09-28 14:31:41 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Add support for 'yv12' fourcc. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add support for 'yv12' fourcc. + +2006-09-27 17:47:57 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * tests/icles/v4l2src-test.c: + Removed set-undef-fps. + Original commit message from CVS: + Removed set-undef-fps. + +2006-09-27 17:04:22 +0000 Wim Taymans + + sys/v4l2/: Renamed some properties to match the tuner interface naming. + Original commit message from CVS: + * sys/v4l2/gstv4l2object.c: + (gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new), + (gst_v4l2_object_set_property_helper), + (gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults): + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init), + (gst_v4l2src_create): + * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_contains_channel), + (gst_v4l2_tuner_list_channels), + (gst_v4l2_tuner_set_channel_and_notify), + (gst_v4l2_tuner_get_channel), (gst_v4l2_tuner_contains_norm), + (gst_v4l2_tuner_list_norms), (gst_v4l2_tuner_set_norm_and_notify), + (gst_v4l2_tuner_get_norm): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_fill_lists), (gst_v4l2_empty_lists): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_get_fps): + Renamed some properties to match the tuner interface naming. + +2006-09-27 16:14:18 +0000 Wim Taymans + + Small cleanups. + Original commit message from CVS: + * sys/v4l2/gstv4l2object.c: (gst_v4l2_object_set_property_helper), + (gst_v4l2_set_defaults): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read), + (gst_v4l2src_create): + * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_set_norm), + (gst_v4l2_get_frequency), (gst_v4l2_set_frequency), + (gst_v4l2_signal_strength), (gst_v4l2_get_attribute), + (gst_v4l2_set_attribute), (gst_v4l2_get_input), + (gst_v4l2_set_input): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), + (gst_v4l2src_grab_frame), (gst_v4l2src_get_capture), + (gst_v4l2src_set_capture), (gst_v4l2src_capture_init), + (gst_v4l2src_capture_start), (gst_v4l2src_capture_stop), + (gst_v4l2src_buffer_new): + * tests/icles/v4l2src-test.c: (my_bus_callback), (main): + Small cleanups. + Fix error messages. + Use locks when getting timestamps. + Fix leaks in test. + Add licensing header to tests. + +2006-09-27 15:14:07 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2src_calls.c: + * tests/icles/v4l2src-test.c: + Some cleanups and comments. + Original commit message from CVS: + Some cleanups and comments. + +2006-09-26 14:17:54 +0000 Wim Taymans + + docs/plugins/: Add v4l2 plugin to the docs. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + Add v4l2 plugin to the docs. + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read), + (gst_v4l2src_get_mmap), (gst_v4l2src_create): + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2vidorient.c: + Fix docs. + Remove some more externs. + +2006-09-26 13:18:06 +0000 Wim Taymans + + sys/v4l2/Makefile.am: Fix makefile, list libs in stack order. + Original commit message from CVS: + * sys/v4l2/Makefile.am: + Fix makefile, list libs in stack order. + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2object.c: (gst_v4l2_device_get_type), + (gst_v4l2_object_install_properties_helper): + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get_read), + (gst_v4l2src_get_mmap), (gst_v4l2src_create): + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2vidorient.h: + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.h: + Fix coding style: + - Remove extern from functions. + - Fix header indentation. + Fix Flags, add defaults for properties. + Remove unused enums. + Fix TOO_LAZY in error messages. + +2006-09-26 11:06:17 +0000 Wim Taymans + + sys/v4l2/: Fix pass at code cleanups, move errors cases out of the normal flow for additional code clarity. + Original commit message from CVS: + * sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices), + (gst_v4l2_probe_needs_probe), + (gst_v4l2_object_install_properties_helper), (gst_v4l2_object_new), + (gst_v4l2_object_destroy), (gst_v4l2_object_set_property_helper), + (gst_v4l2_object_get_property_helper), (gst_v4l2_set_defaults), + (gst_v4l2_object_start), (gst_v4l2_object_stop): + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init), + (gst_v4l2src_init), (gst_v4l2src_dispose), + (gst_v4l2src_set_property), (gst_v4l2src_get_property), + (gst_v4l2src_fixate), (gst_v4l2src_get_caps), + (gst_v4l2src_set_caps), (gst_v4l2src_get_read), + (gst_v4l2src_get_mmap), (gst_v4l2src_create): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_open), (gst_v4l2_close), (gst_v4l2_get_norm), + (gst_v4l2_set_norm), (gst_v4l2_get_frequency), + (gst_v4l2_set_frequency), (gst_v4l2_signal_strength), + (gst_v4l2_get_attribute), (gst_v4l2_set_attribute), + (gst_v4l2_get_input), (gst_v4l2_set_input): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), + (gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame), + (gst_v4l2src_get_capture), (gst_v4l2src_set_capture), + (gst_v4l2src_capture_init), (gst_v4l2src_capture_start), + (gst_v4l2src_capture_stop), (gst_v4l2src_capture_deinit), + (gst_v4l2src_get_size_limits), (gst_v4l2src_set_fps), + (gst_v4l2src_get_fps), (gst_v4l2src_buffer_finalize), + (gst_v4l2src_buffer_new): + Fix pass at code cleanups, move errors cases out of the normal + flow for additional code clarity. + +2006-09-23 13:21:43 +0000 Wim Taymans + + ext/cdaudio/gstcdaudio.c: Port to 0.10. + Original commit message from CVS: + * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init), + (gst_cdaudio_init), (gst_cdaudio_set_property), + (gst_cdaudio_get_property), (gst_cdaudio_change_state), + (gst_cdaudio_send_event), (gst_cdaudio_get_query_types), + (gst_cdaudio_query), (cdaudio_uri_set_uri): + Port to 0.10. + +2006-09-23 00:28:35 +0000 David Schleef + + sys/glsink/glimagesink.c: Fix problems when the element cannot open the display. (fixes #357212) + Original commit message from CVS: + * sys/glsink/glimagesink.c: + Fix problems when the element cannot open the display. + (fixes #357212) + +2006-09-22 16:08:38 +0000 Tim-Philipp Müller + + configure.ac: Up requirements to -base CVS and core CVS (the format for the video orientation interface used by v4l2s... + Original commit message from CVS: + * configure.ac: + Up requirements to -base CVS and core CVS (the format for the + video orientation interface used by v4l2src and the latter + since that's what -base CVS requires). + +2006-09-22 15:59:59 +0000 Tim-Philipp Müller + + ext/directfb/dfbvideosink.c: Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might be autoplugged shouldn... + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: (plugin_init): + Lower rank from SECONDARY to MARGINAL. Plugins in -bad that might + be autoplugged shouldn't trump plugins in -base, -good or -ugly + (in this case ximagesink). + * sys/glsink/glimagesink.c: (plugin_init): + Set rank to NONE to prevent it from being autoplugged until + errors are handled properly (see #357212). + +2006-09-21 14:01:18 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/Makefile.am: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). As dicussed on #gstreamer it should be don... + Original commit message from CVS: + Reverted previous commit (2006-09-19 - Allow internal codes from last.fm). As dicussed on #gstreamer it should be done in separete element. + +2006-09-21 13:41:42 +0000 Wim Taymans + + ext/faac/gstfaac.c: Add decoder specific info on the caps. + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_configure_source_pad), + (gst_faac_chain): + Add decoder specific info on the caps. + Some cleanups here and there. + +2006-09-19 21:49:52 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/Makefile.am: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Allow internal codes from last.fm + Original commit message from CVS: + Allow internal codes from last.fm + +2006-09-19 16:24:10 +0000 Edgard Lima + + * ChangeLog: + * tests/icles/v4l2src-test.c: + Just a small fix to the app options. + Original commit message from CVS: + Just a small fix to the app options. + +2006-09-19 13:08:35 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2vidorient.c: + * sys/v4l2/gstv4l2vidorient.h: + * tests/icles/v4l2src-test.c: + Add Video Orientation interface support to v4l2src. + Original commit message from CVS: + Add Video Orientation interface support to v4l2src. + +2006-09-19 10:10:12 +0000 Wim Taymans + + ext/gsm/gstgsmdec.*: Handle WAV49 variant (GSM in WAV). + Original commit message from CVS: + * ext/gsm/gstgsmdec.c: (gst_gsmdec_init), + (gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event), + (gst_gsmdec_chain): + * ext/gsm/gstgsmdec.h: + Handle WAV49 variant (GSM in WAV). + Some small cleanups. + +2006-09-18 15:36:14 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/v4l2src_calls.c: + Fix GST_BUFFER_DURATION. + Original commit message from CVS: + Fix GST_BUFFER_DURATION. + +2006-09-16 22:30:50 +0000 Stefan Kost + + tests/check/: Fix big batch of compiler warnings. + Original commit message from CVS: + * tests/check/elements/audioresample.c: (GST_START_TEST): + * tests/check/elements/videotestsrc.c: (check_rgb_buf): + * tests/check/elements/volume.c: (GST_START_TEST): + * tests/check/elements/vorbisdec.c: (GST_START_TEST): + * tests/check/pipelines/oggmux.c: (validate_ogg_page), (eos_watch), + (test_pipeline), (GST_START_TEST): + * tests/check/pipelines/theoraenc.c: (GST_START_TEST): + * tests/check/pipelines/vorbisenc.c: (GST_START_TEST): + Fix big batch of compiler warnings. + +2006-09-16 22:14:36 +0000 Stefan Kost + + More G_OBJECT macro fixing. + Original commit message from CVS: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbisfile.c: + * ext/lcs/gstcolorspace.c: + * ext/wavpack/gstwavpackenc.h: + * ext/xine/xineaudiodec.c: + * ext/xine/xineaudiosink.c: + * ext/xine/xineinput.c: + * gst/chart/gstchart.c: + * gst/equalizer/gstiirequalizer.c: + * gst/games/gstpuzzle.c: + * gst/librfb/gstrfbsrc.c: + * gst/mixmatrix/mixmatrix.c: + * gst/nsf/gstnsf.h: + * gst/vbidec/gstvbidec.c: + * gst/virtualdub/gstxsharpen.c: + More G_OBJECT macro fixing. + +2006-09-15 19:11:00 +0000 Edgard Lima + + * ChangeLog: + * common: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2src_calls.c: + * tests/icles/v4l2src-test.c: + The test application and the plgind error messages has been improved. + Original commit message from CVS: + The test application and the plgind error messages has been improved. + +2006-09-12 20:18:55 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Implements stop() to clear the adapter and event() to clear the adapter on FLUSH_STOP and... + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init), + (gst_spectrum_start), (gst_spectrum_stop), (gst_spectrum_event): + Implements stop() to clear the adapter and event() to clear the + adapter on FLUSH_STOP and EOS. + +2006-09-11 18:23:59 +0000 Stefan Kost + + gst/spectrum/gstspectrum.*: Fix type mixup in spectrum->interval (gdouble<->guint64). Spotted by + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_init), + (gst_spectrum_set_property): + * gst/spectrum/gstspectrum.h: + Fix type mixup in spectrum->interval (gdouble<->guint64). Spotted by + René Stadler + +2006-09-11 18:02:39 +0000 Stefan Kost + + gst/spectrum/demo-osssrc.c: Use more defines + Original commit message from CVS: + * gst/spectrum/demo-osssrc.c: (draw_spectrum), (main): + Use more defines + * gst/spectrum/gstspectrum.c: (gst_spectrum_init), + (gst_spectrum_dispose), (gst_spectrum_set_caps), + (gst_spectrum_transform_ip): + * gst/spectrum/gstspectrum.h: + Apply some of the spectrum cleanup changes suggested in #348085. + +2006-09-08 16:47:46 +0000 Tim-Philipp Müller + + configure.ac: Bump requirements of -base (videocrop test case needs this). + Original commit message from CVS: + * configure.ac: + Bump requirements of -base (videocrop test case needs this). + * gst/videocrop/gstvideocrop.c: + Document sloppy handling of subsampled chroma planes if + left/top cropping is an odd number. + * tests/check/elements/videocrop.c: (handoff_cb), + (videocrop_test_cropping_init_context), + (videocrop_test_cropping_deinit_context), + (videocrop_test_cropping), (check_1x1_buffer), (GST_START_TEST), + (videocrop_suite), (main): + Add another unit test that crops the input to 1x1 (and checks + that that pixel has the expected values in a number of formats). + +2006-09-08 11:04:24 +0000 Tim-Philipp Müller + + gst/videocrop/: Some quick tests indicate that it doesn't make a great deal of sense to use liboil here, at least not... + Original commit message from CVS: + * gst/videocrop/Makefile.am: + * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init), + (gst_video_crop_transform_packed), + (gst_video_crop_transform_planar): + Some quick tests indicate that it doesn't make a great deal + of sense to use liboil here, at least not for the memcpy()s + we do, so remove liboil usage until there is clear evidence + it actually makes a positive difference somewhere. + +2006-09-03 21:12:36 +0000 Thomas Vander Stichele + + * ext/soundtouch/Makefile.am: + higher up first + Original commit message from CVS: + higher up first + +2006-09-03 10:46:17 +0000 Tim-Philipp Müller + + tests/check/elements/videocrop.c: More tests: check passthrough mode and caps transform in both directions with fixed... + Original commit message from CVS: + * tests/check/elements/videocrop.c: (handoff_cb), + (buffer_probe_cb), (test_caps_transform), (test_passthrough), + (notgst_value_list_get_nth_int), (videocrop_suite): + More tests: check passthrough mode and caps transform in + both directions with fixed values, ranges and lists. + +2006-09-02 18:49:01 +0000 Tim-Philipp Müller + + docs/plugins/: Add videocrop to docs. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + Add videocrop to docs. + * gst/videocrop/Makefile.am: + * gst/videocrop/gstvideocrop.c: + * gst/videocrop/gstvideocrop.h: + Move boilerplate stuff and structures into a header file. + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/videocrop.c: (video_crop_get_test_caps), + (test_unit_sizes), (videocrop_test_cropping_init_context), + (videocrop_test_cropping_deinit_context), + (videocrop_test_cropping), (test_cropping), (videocrop_suite): + Add unit tests for videocrop. + +2006-09-02 15:30:45 +0000 Tim-Philipp Müller + + Port/rewrite videocrop from scratch for GStreamer-0.10, and make it support all formats videoscale supports (#345653). + Original commit message from CVS: + * configure.ac: + * gst/videocrop/Makefile.am: + * gst/videocrop/gstvideocrop.c: (gst_video_crop_base_init), + (gst_video_crop_class_init), (gst_video_crop_init), + (gst_video_crop_get_image_details_from_caps), + (gst_video_crop_get_unit_size), (gst_video_crop_transform_packed), + (gst_video_crop_transform_planar), (gst_video_crop_transform), + (gst_video_crop_transform_dimension), + (gst_video_crop_transform_dimension_value), + (gst_video_crop_transform_caps), (gst_video_crop_set_caps), + (gst_video_crop_set_property), (gst_video_crop_get_property), + (plugin_init): + Port/rewrite videocrop from scratch for GStreamer-0.10, and make + it support all formats videoscale supports (#345653). + +2006-09-02 14:45:04 +0000 Stefan Kost + + sys/v4l2/: Whitespace cleanups, dashify property-names. + Original commit message from CVS: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2object.c: + (gst_v4l2_object_install_properties_helper): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init): + * sys/v4l2/gstv4l2src.h: + Whitespace cleanups, dashify property-names. + +2006-09-02 14:28:55 +0000 Stefan Kost + + sys/v4l2/: Cleanup error messages and unify header comments + Original commit message from CVS: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open): + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_open): + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_queue_frame), + (gst_v4l2src_capture_init): + * sys/v4l2/v4l2src_calls.h: + Cleanup error messages and unify header comments + +2006-08-31 13:01:15 +0000 Jan Schmidt + + gst/nsf/Makefile.am: Add missing GST_LIBS + Original commit message from CVS: + * gst/nsf/Makefile.am: + Add missing GST_LIBS + +2006-08-30 18:01:52 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Another small fix to set_caps function. + Original commit message from CVS: + Another small fix to set_caps function. + +2006-08-30 13:30:13 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Send new_segment in GST_FORMAT_TIME instead of in GST_FORMAT_BYTES. + Original commit message from CVS: + Send new_segment in GST_FORMAT_TIME instead of in GST_FORMAT_BYTES. + +2006-08-30 11:36:06 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + A small fix to set_caps function. + Original commit message from CVS: + A small fix to set_caps function. + +2006-08-30 11:27:40 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Reset each streams last_flow to GST_FLOW_OK. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: + (gst_qtdemux_do_seek): + Reset each streams last_flow to GST_FLOW_OK. + (gst_qtdemux_activate_segment): + Removing mystic modifications for good. + +2006-08-30 11:07:37 +0000 Stefan Kost + + gst/qtdemux/qtdemux.c: put back 'segment start<=stop' change that was mystically reverted by the last commit + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment), + (qtdemux_parse_tree): + put back 'segment start<=stop' change that was mystically reverted by + the last commit + +2006-08-30 10:43:53 +0000 Stefan Kost + + gst/qtdemux/qtdemux.c: Fix the build for disabled debug + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment), + (qtdemux_parse_tree): + Fix the build for disabled debug + +2006-08-29 20:59:47 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + Fixed framerate negotiation. + Original commit message from CVS: + Fixed framerate negotiation. + +2006-08-29 12:07:38 +0000 Andrew Andkjar + + ext/sdl/: Only de-init the subsystem we previously initialised. Avoids borkage when both sdlvideosink and sdlaudiosin... + Original commit message from CVS: + Patch by: Andrew Andkjar + * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_close): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported), + (gst_sdlvideosink_deinitsdl): + Only de-init the subsystem we previously initialised. Avoids + borkage when both sdlvideosink and sdlaudiosink are used + at the same time and one is shut down. + +2006-08-28 17:47:29 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Make sure segment start<=stop in weird quicktime files. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment), + (gst_qtdemux_add_stream), (qtdemux_parse_trak), + (qtdemux_video_caps): + Make sure segment start<=stop in weird quicktime files. + +2006-08-28 14:59:05 +0000 Stefan Kost + + sys/v4l2/v4l2_calls.c: add comments and more debug logging + Original commit message from CVS: + * sys/v4l2/v4l2_calls.c: (gst_v4l2_fill_lists): + add comments and more debug logging + +2006-08-24 09:24:11 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackdec.c: Post audio codec and average bitrate tags on bus (#344472). + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_post_tags), + (gst_wavpack_dec_chain): + Post audio codec and average bitrate tags on bus (#344472). + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init), + (gst_wavpack_parse_src_query): + Forward queries in other formats (BYTE format in particular) + upstream; add Sebastian to authors. + +2006-08-24 00:40:07 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + Fix set_caps to set width and height to the values the driver is really working with. + Original commit message from CVS: + Fix set_caps to set width and height to the values the driver is really working with. + +2006-08-23 10:30:31 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackenc.c: Fix mem leak, send newsegment event on correction pad as well (#352476). + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_push_block): + Fix mem leak, send newsegment event on correction pad + as well (#352476). + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): + Restore original author (on Sebastian's request). + * tests/check/Makefile.am: + * tests/check/gst-plugins-bad.supp: + Add (so far empty) suppression file for -bad. Remove + wavpackenc test from VALGRIND_TO_FIX now that the leak + is fixed. + +2006-08-23 09:22:07 +0000 Sebastian Dröge + + tests/check/: Add unit tests for wavpack elements (#352476). + Original commit message from CVS: + Patch by: Sebastian Dröge + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/wavpackdec.c: (setup_wavpackdec), + (cleanup_wavpackdec), (GST_START_TEST), (wavpackdec_suite), (main): + * tests/check/elements/wavpackenc.c: (setup_wavpackenc), + (cleanup_wavpackenc), (GST_START_TEST), (wavpackenc_suite), (main): + * tests/check/elements/wavpackparse.c: (wavpackparse_found_pad), + (setup_wavpackparse), (cleanup_wavpackparse), (GST_START_TEST), + (wavpackparse_suite), (main): + Add unit tests for wavpack elements (#352476). + +2006-08-23 08:52:50 +0000 Sebastian Dröge + + Add docs for wavpack elements (#352476). + Original commit message from CVS: + Patch by: Sebastian Dröge + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-wavpack.xml: + * ext/wavpack/gstwavpackdec.c: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackenc.c: + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackparse.c: + * ext/wavpack/gstwavpackparse.h: + Add docs for wavpack elements (#352476). + +2006-08-22 20:39:26 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/v4l2src_calls.c: + Fixed query size to work with drivers that uses intermediate step like "width * height" to find closest size. + Original commit message from CVS: + Fixed query size to work with drivers that uses intermediate step like "width * height" to find closest size. + +2006-08-21 19:02:13 +0000 Thomas Vander Stichele + + move gdp plugin to good. + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * gst/gdp/Makefile.am: + * gst/gdp/gstgdp.c: + * gst/gdp/gstgdpdepay.c: + * gst/gdp/gstgdpdepay.h: + * gst/gdp/gstgdppay.c: + * gst/gdp/gstgdppay.h: + * tests/check/Makefile.am: + * tests/check/elements/gdpdepay.c: + * tests/check/elements/gdppay.c: + move gdp plugin to good. + +2006-08-21 16:24:28 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Some more constification. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse), + (qtdemux_node_dump_foreach), (qtdemux_parse_trak), + (qtdemux_video_caps), (qtdemux_audio_caps): + Some more constification. + Fix some paletted data formats again. + Fix ulaw/alaw in qt. + Set correct caps for raw RGB. + Add support for yuv2, which is like Yuv2. + Add support for raw audio with the NONE fourcc, which is like raw. + +2006-08-21 16:21:03 +0000 Wim Taymans + + ext/gsm/gstgsm.c: Make rank PRIMARY now that GSM seems to work fine. + Original commit message from CVS: + * ext/gsm/gstgsm.c: (plugin_init): + Make rank PRIMARY now that GSM seems to work fine. + +2006-08-21 13:59:52 +0000 Tim-Philipp Müller + + ext/wavpack/: More clean-ups: use shorter variable names to make code easier to read; prefix structures we define wit... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init), + (gst_wavpack_enc_finalize), (gst_wavpack_enc_sink_set_caps), + (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_format_samples), + (gst_wavpack_enc_push_block), (gst_wavpack_enc_chain), + (gst_wavpack_enc_rewrite_first_block), + (gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state), + (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property): + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset), + (gst_wavpack_parse_src_query), (gst_wavpack_parse_src_event), + (gst_wavpack_parse_init), (gst_wavpack_parse_get_upstream_length), + (gst_wavpack_parse_loop): + More clean-ups: use shorter variable names to make code easier to + read; prefix structures we define with 'Gst' to make it clearer + where they come from. + +2006-08-21 13:26:37 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackenc.c: Fix caps set on buffers and template caps (output is framed) and make them match (#35166... + Original commit message from CVS: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_init), + (gst_wavpack_enc_set_wp_config), (gst_wavpack_enc_push_block), + (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block), + (gst_wavpack_enc_sink_event): + Fix caps set on buffers and template caps (output is framed) + and make them match (#351663); use GST_WARNING_OBJECT instead of + GST_ELEMENT_WARNING; simplify push_block(); do some small + clean-ups here and there; fix memleak (#351663). + +2006-08-20 13:05:43 +0000 Stefan Kost + + gst/audioconvert/gstaudioconvert.c: Lower debug, use g_assert in _get_unit_size + Original commit message from CVS: + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_get_unit_size), (set_structure_widths): + Lower debug, use g_assert in _get_unit_size + * gst/audioresample/gstaudioresample.c: + (audioresample_get_unit_size): + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_get_unit_size): + * gst/videoscale/gstvideoscale.c: (gst_video_scale_get_unit_size): + use g_assert in _get_unit_size + +2006-08-18 21:39:00 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.c: Fix resyncing in push mode not stopping re-syncing at embedded zeroes; skip garbage be... + Original commit message from CVS: + Based on patch by: Sebastian Dröge + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_sink_event), + (gst_wavpack_parse_get_upstream_length), + (gst_wavpack_parse_find_marker), (gst_wavpack_parse_resync_loop), + (gst_wavpack_parse_loop), (gst_wavpack_parse_resync_adapter): + Fix resyncing in push mode not stopping re-syncing at embedded + zeroes; skip garbage between frames in pull mode as well if + necessary; use gst_pad_query_peer_duration(); push EOS and + NEWSEGMENT event in right direction (#351659). + +2006-08-16 16:50:00 +0000 Andy Wingo + + ext/ladspa/gstsignalprocessor.c: Make ladspa elements reusable. Fixes #350006. + Original commit message from CVS: + Patch by: Andy Wingo + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setup), + (gst_signal_processor_start), (gst_signal_processor_stop), + (gst_signal_processor_cleanup), (gst_signal_processor_setcaps), + (gst_signal_processor_pen_buffer), (gst_signal_processor_flush), + (gst_signal_processor_do_pulls), (gst_signal_processor_do_pushes), + (gst_signal_processor_change_state): + Make ladspa elements reusable. Fixes #350006. + +2006-08-16 15:33:12 +0000 Wim Taymans + + ext/ladspa/gstladspa.c: Convert ' ' into '_'. Try to keep as many characters in the padtemplate names as possible. + Original commit message from CVS: + * ext/ladspa/gstladspa.c: (gst_ladspa_base_init): + Convert ' ' into '_'. Try to keep as many characters in the padtemplate + names as possible. + +2006-08-16 14:47:50 +0000 Wim Taymans + + ext/ladspa/gstsignalprocessor.c: A push() gives away our refcount so we should not use the buffer on the pen anymore. + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_flush), + (gst_signal_processor_do_pushes): + A push() gives away our refcount so we should not use the buffer on the + pen anymore. + +2006-08-16 10:40:04 +0000 Sebastian Dröge + + ext/wavpack/: In push mode, re-sync to next wavpack header if sync is lost (#351557). Also use hyphens instead of und... + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init): + * ext/wavpack/gstwavpackparse.c: + (gst_wavpack_parse_resync_adapter), (gst_wavpack_parse_chain): + In push mode, re-sync to next wavpack header if sync is lost + (#351557). Also use hyphens instead of underscores in + GObject property names. + +2006-08-15 20:29:45 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackparse.*: Make wavpackparse also work in push-mode (not seekable yet though); some small clean-u... + Original commit message from CVS: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_class_init), + (gst_wavpack_parse_reset), (gst_wavpack_parse_get_src_query_types), + (gst_wavpack_parse_src_query), + (gst_wavpack_parse_handle_seek_event), + (gst_wavpack_parse_sink_event), (gst_wavpack_parse_init), + (gst_wavpack_parse_create_src_pad), + (gst_wavpack_parse_push_buffer), (gst_wavpack_parse_loop), + (gst_wavpack_parse_chain), (gst_wavpack_parse_sink_activate), + (gst_wavpack_parse_sink_activate_pull): + * ext/wavpack/gstwavpackparse.h: + Patch by: Sebastian Dröge + Make wavpackparse also work in push-mode (not seekable yet though); + some small clean-ups along the way; add support for SEEKING query + and query types function. (#351495). + +2006-08-15 19:29:58 +0000 Tim-Philipp Müller + + Fix leaks (#351502). + Original commit message from CVS: + * ext/libfame/gstlibfame.c: (gst_fameenc_get_property): + * sys/glsink/glimagesink.c: (gst_glimage_sink_get_property): + Fix leaks (#351502). + +2006-08-14 10:06:55 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Extract all references/redirections if there is more than one and sort them; also extract mini... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_redirects_sort_func), + (qtdemux_process_redirects), (qtdemux_parse_tree): + Extract all references/redirections if there is more + than one and sort them; also extract minimum required + bitrate information if available. (#350399) + +2006-08-10 17:09:10 +0000 Michal Benes + + ext/faac/gstfaac.c: Bitrate in the faac structure is per output channel, not total bitrate (#350741). + Original commit message from CVS: + Patch by: Michal Benes + * ext/faac/gstfaac.c: (gst_faac_configure_source_pad): + Bitrate in the faac structure is per output channel, + not total bitrate (#350741). + +2006-08-09 17:41:26 +0000 Tim-Philipp Müller + + ext/xvid/gstxvidenc.c: Fix GST_ELEMENT_ERROR usage. + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_chain): + Fix GST_ELEMENT_ERROR usage. + +2006-08-09 10:45:32 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fixed up and cleaned up the -bad spec file to have proper tests for whats installed and items put in correct categories. + Original commit message from CVS: + fixed up and cleaned up the -bad spec file to have proper tests for whats installed and items put in correct categories. + +2006-08-08 14:55:53 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix silly typo. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_tree): + Fix silly typo. + +2006-08-08 13:57:29 +0000 Edward Hervey + + tests/check/elements/gdpdepay.c: I forgot to include the file containing the #define :) + Original commit message from CVS: + * tests/check/elements/gdpdepay.c: (gdpdepay_suite): + I forgot to include the file containing the #define :) + Now includes "config.h" + +2006-08-08 13:45:44 +0000 Edward Hervey + + tests/check/elements/gdpdepay.c: Ignore test known to fail on PPC64. See #348114. + Original commit message from CVS: + * tests/check/elements/gdpdepay.c: (gdpdepay_suite): + Ignore test known to fail on PPC64. See #348114. + +2006-08-04 21:04:55 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Allow HTTP redirect (HTTP status code 302). + Original commit message from CVS: + Allow HTTP redirect (HTTP status code 302). + +2006-08-04 13:20:23 +0000 Zaheer Abbas Merali + + gst/gdp/gstgdpdepay.c: Fix event parsing by gdpdepay. Fixes #349916. + Original commit message from CVS: + 2006-08-04 Zaheer Abbas Merali + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain): + Fix event parsing by gdpdepay. Fixes #349916. + +2006-08-04 11:38:54 +0000 Andy Wingo + + ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing whether a processor can work in place or not, and for... + Original commit message from CVS: + 2006-08-04 Andy Wingo + * ext/ladspa/gstsignalprocessor.h: Add infrastructure for storing + whether a processor can work in place or not, and for keeping + track of its state. Change the FlowReturn instance variable from + "state" to "flow_state", all callers changed. + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setup) + (gst_signal_processor_start, gst_signal_processor_stop) + (gst_signal_processor_cleanup): New functions to manage the + processor's state. + (gst_signal_processor_setcaps): start() as well as setup() here. + (gst_signal_processor_prepare): Respect CAN_PROCESS_IN_PLACE. + (gst_signal_processor_change_state): Stop and cleanup the + processor as we go to NULL. + * ext/ladspa/gstladspa.c (gst_ladspa_base_init): Reuse buffers if + INPLACE_BROKEN is not set. + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_prepare): + Do the alloc_buffer in bytes, not frames. + +2006-08-04 09:20:26 +0000 Andy Wingo + + * ext/ladspa/gstsignalprocessor.c: + BPB + Original commit message from CVS: + (gst_signal_processor_src_activate_pull): BPB + +2006-08-04 09:05:53 +0000 Andy Wingo + + * ext/ladspa/gstsignalprocessor.c: + ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps) (gst_signal_processor_prepare) (gst_signal_processor_u... + Original commit message from CVS: + 2006-08-04 Andy Wingo + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_setcaps) + (gst_signal_processor_prepare) + (gst_signal_processor_update_inputs) + (gst_signal_processor_process, gst_signal_processor_pen_buffer) + (gst_signal_processor_flush) + (gst_signal_processor_sink_activate_push) + (gst_signal_processor_src_activate_pull) + (gst_signal_processor_change_state): Remove the last of the code + that assumes that we process whole buffers at a time. Fix some + debugging. Seems to work now in some cases. + +2006-08-03 14:48:22 +0000 cascardo at holoscopio dot com + + ext/Makefile.am: Use right variables when USE_SPC is defined. + Original commit message from CVS: + Patch by: cascardo at holoscopio dot com + * ext/Makefile.am: + Use right variables when USE_SPC is defined. + +2006-08-02 16:56:19 +0000 Wim Taymans + + gst/gdp/gstgdpdepay.c: Disable seeking. + Original commit message from CVS: + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init), + (gst_gdp_depay_finalize), (gst_gdp_depay_sink_event), + (gst_gdp_depay_src_event), (gst_gdp_depay_chain), + (gst_gdp_depay_change_state): + Disable seeking. + Small cleanups. + Clear adapter on disconts. + Clear caps when going to READY instead of NULL + * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init), + (gst_gdp_pay_init), (gst_gdp_pay_finalize), (gst_gdp_pay_reset), + (gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer), + (gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader), + (gst_gdp_queue_buffer), (gst_gdp_pay_chain), + (gst_gdp_pay_sink_event), (gst_gdp_pay_src_event), + (gst_gdp_pay_change_state): + * gst/gdp/gstgdppay.h: + Reset payloader when going to READY. + Fix leaked buffers in ->queue on push errors. + Disable seeking. + Code cleanups. + Create packetizer in _init, free in _finalize. + +2006-07-31 22:27:22 +0000 Andy Wingo + + ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): Fix nframes-choosing. + Original commit message from CVS: + 2006-08-01 Andy Wingo + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_process): + Fix nframes-choosing. + (gst_signal_processor_init): Init pending_in and pending_out. + +2006-07-31 22:03:09 +0000 Andy Wingo + + ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No more default sample rate, although we never check tha... + Original commit message from CVS: + 2006-08-01 Andy Wingo + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): No + more default sample rate, although we never check that the sample + rate actually gets set. Something for the future. + (gst_signal_processor_setcaps): Some refcount fixes, flow fixes. + (gst_signal_processor_event): Refcount fixen. + (gst_signal_processor_process): Pull the number of frames to + process from the sizes of the buffers in the input pens. + (gst_signal_processor_pen_buffer): Remove an incorrect FIXME :) + (gst_signal_processor_do_pulls): Add an nframes argument, and use + it instead of buffer_frames. + (gst_signal_processor_getrange): Refcount fixen, pass nframes on + to do_pulls. + (gst_signal_processor_chain) + (gst_signal_processor_sink_activate_push) + (gst_signal_processor_src_activate_pull): Refcount fixen. + * ext/ladspa/gstsignalprocessor.h: No more buffer_frames, yay. + +2006-07-31 19:44:18 +0000 Stefan Kost + + ext/ladspa/gstsignalprocessor.c: don't query buffer-frames from caps, add lots of debug-log, try fix for assert (#349... + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_setcaps), + (gst_signal_processor_process): + don't query buffer-frames from caps, add lots of debug-log, + try fix for assert (#349189) + +2006-07-31 17:29:22 +0000 Julien Moutte + + ext/directfb/dfbvideosink.c: Post an error message. + Original commit message from CVS: + 2006-07-31 Julien MOUTTE + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state), + (gst_dfbvideosink_buffer_alloc): Post an error message. + +2006-07-31 16:50:27 +0000 Julien Moutte + + ext/directfb/dfbvideosink.c: Don't try allocating if we are not setup yet. Fail changing state if setup fails. + Original commit message from CVS: + 2006-07-31 Julien MOUTTE + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_change_state), + (gst_dfbvideosink_buffer_alloc): Don't try allocating if we are + not + setup yet. Fail changing state if setup fails. + +2006-07-31 08:48:36 +0000 Wim Taymans + + gst/gdp/gstgdpdepay.c: Consume all events except EOS because we generate events from the gdp payload instead. Fixes #... + Original commit message from CVS: + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init), + (gst_gdp_depay_sink_event), (gst_gdp_depay_chain): + Consume all events except EOS because we generate events from + the gdp payload instead. Fixes #349204 + +2006-07-29 16:32:26 +0000 Stefan Kost + + ext/ladspa/gstsignalprocessor.c: Add debugs logs here and there, add more error handling, add some + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: + (gst_signal_processor_add_pad_from_template), + (gst_signal_processor_init), (gst_signal_processor_setcaps), + (gst_signal_processor_process), (gst_signal_processor_pen_buffer), + (gst_signal_processor_do_pulls), (gst_signal_processor_getrange), + (gst_signal_processor_sink_activate_push), + (gst_signal_processor_src_activate_pull), + (gst_signal_processor_change_state): + Add debugs logs here and there, add more error handling, add some + FIXME comments, filed #349189 + +2006-07-28 17:17:24 +0000 Jan Schmidt + + gst/audioresample/gstaudioresample.c: Don't leak references to the incoming caps. Clean them up when stopping. + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: (audioresample_stop), + (audioresample_set_caps): + Don't leak references to the incoming caps. Clean them up when + stopping. + * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init), + (gst_video_scale_finalize): + Don't leak our temporary pixel buffer. + * tests/check/Makefile.am: + * tests/check/pipelines/simple-launch-lines.c: (run_pipeline), + (GST_START_TEST), (simple_launch_lines_suite): + Fix leaks and re-enable the test for valgrind checking. + +2006-07-28 12:14:06 +0000 Tim-Philipp Müller + + ext/xvid/gstxviddec.*: Clean-ups and code reflows. Pass return value from gst_pad_alloc_buffer() upstream among other... + Original commit message from CVS: + * ext/xvid/gstxviddec.c: (gst_xviddec_init), (gst_xviddec_reset), + (gst_xviddec_unset), (gst_xviddec_handle_sink_event), + (gst_xviddec_setup), (gst_xviddec_negotiate), (gst_xviddec_chain), + (gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps), + (gst_xviddec_setcaps), (gst_xviddec_change_state): + * ext/xvid/gstxviddec.h: + Clean-ups and code reflows. Pass return value from + gst_pad_alloc_buffer() upstream among other things. Also check + for NULL GValue before using GST_VALUE_TYPE macro (#348976). + Mass rename of xviddec -> dec variable for better + code readability. + +2006-07-28 10:19:02 +0000 Tim-Philipp Müller + + ext/xvid/gstxvid.c: Fix size calculation for I420/YV12. Fixes #348976. + Original commit message from CVS: + * ext/xvid/gstxvid.c: (gst_xvid_image_fill): + Fix size calculation for I420/YV12. Fixes #348976. + +2006-07-27 10:50:39 +0000 Wim Taymans + + ext/gsm/: Fix negotiation. + Original commit message from CVS: + * ext/gsm/gstgsmdec.c: (gst_gsmdec_init), + (gst_gsmdec_sink_setcaps), (gst_gsmdec_sink_event): + * ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_setcaps): + Fix negotiation. + +2006-07-26 10:52:05 +0000 Thomas Vander Stichele + + gst/gdp/gstgdpdepay.c: proxying get/set caps is the wrong thing to do, since we really do change caps quite fundament... + Original commit message from CVS: + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_init): + proxying get/set caps is the wrong thing to do, since we really + do change caps quite fundamentally + * tests/check/elements/gdpdepay.c: + * tests/check/elements/gdppay.c: + remove declaration of buffers, it's already done in gstcheck.h + +2006-07-24 21:43:06 +0000 Sébastien Moutte + + sys/directsound/gstdirectsoundsink.*: Add an attenuation property that will directly attenuate the directsound buffer. + Original commit message from CVS: + * sys/directsound/gstdirectsoundsink.h: + * sys/directsound/gstdirectsoundsink.c: + Add an attenuation property that will directly attenuate the + directsound buffer. + Change the size of the directsound secondary buffer to a half second. + Add more debug logs. + Add a lock to protect dsound buffer write access. + Fix a bad implementation of reset. + * sys/directsound/gstdirectdrawsink.c: + * sys/directsound/gstdirectdrawsink.h: + Add a keep_aspect_ratio property. + Do not use overlay if not supported. + Add more debug logs. + Remove overwrite of WM_ERASEBKGND message handling. It was not + redrawing border when keep_aspect_ratio was enabled. + * win32/common/config.h: + update version waiting an auto-generated config.h + +2006-07-23 11:52:34 +0000 Chris Lee + + Add libopenspc-based SPC decoder element (#348220). + Original commit message from CVS: + Patch by: Chris Lee + * configure.ac: + * ext/Makefile.am: + * ext/spc/Makefile.am: + * ext/spc/gstspc.c: (spc_negotiate), (gst_spc_dec_base_init), + (gst_spc_dec_class_init), (gst_spc_dec_init), (gst_spc_dec_chain), + (gst_spc_dec_sink_event), (gst_spc_dec_src_event), + (gst_spc_dec_src_query), (spc_play), (spc_setup), + (gst_spc_dec_change_state), (plugin_init): + * ext/spc/gstspc.h: + Add libopenspc-based SPC decoder element (#348220). + +2006-07-19 14:36:00 +0000 Martin Szulecki + + sys/v4l2/gstv4l2object.c: If "device-name" is requested and the device is not open, try to temporarily open it to obt... + Original commit message from CVS: + Patch by: Martin Szulecki + * sys/v4l2/gstv4l2object.c: (gst_v4l2_object_get_property_helper): + If "device-name" is requested and the device is not + open, try to temporarily open it to obtain this + information (#342494). + +2006-07-19 11:47:20 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file + Original commit message from CVS: + update spec file + +2006-07-19 11:43:50 +0000 Tim-Philipp Müller + + gst/nsf/nsf.c: Really fix compilation. Apparently it's not enough to just check the return value for errors, but we n... + Original commit message from CVS: + * gst/nsf/nsf.c: (nsf_load): + Really fix compilation. Apparently it's not enough to + just check the return value for errors, but we need to + check for short reads as well (now if only we handled + them too ...). Fixes #347935. + +2006-07-18 18:05:15 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackdec.c: Fix caps after previous change to byte order endianness. + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_chain): + Fix caps after previous change to byte order endianness. + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_reset), + (gst_wavpack_parse_sink_event), (gst_wavpack_parse_init), + (gst_wavpack_parse_loop): + * ext/wavpack/gstwavpackparse.h: + Queue incoming events if there's no source pad yet and + send them downstream later when the pad is there. + +2006-07-18 16:47:25 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackdec.*: Output audio in native byte order (which is also how we get samples from wavpack); outpu... + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_init), + (gst_wavpack_dec_format_samples), + (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain), + (gst_wavpack_dec_change_state): + * ext/wavpack/gstwavpackdec.h: + Output audio in native byte order (which is also how we get + samples from wavpack); output samples with 21-24 bit depth + with 32 bit width (makes things easier for us). + +2006-07-18 15:53:35 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackdec.*: More clean-ups: remove most of the disfunctional correction pad stuff for now, if it eve... + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init), + (gst_wavpack_dec_class_init), (gst_wavpack_dec_init), + (gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples), + (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain), + (gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state): + * ext/wavpack/gstwavpackdec.h: + More clean-ups: remove most of the disfunctional correction + pad stuff for now, if it ever gets implemented a lot of stuff + will have to be rewritten anyway; redo chain function, move + errors to end, error out instead of g_assert()ing. Also rename + overly long variable 'wavpackdec' to just 'dec'; miscellaneous + other small stuff. + +2006-07-18 14:08:06 +0000 Sebastian Dröge + + configure.ac: Check for wavpack version and define WAVPACK_OLD_API if necessary. + Original commit message from CVS: + Patch by: Sebastian Dröge + * configure.ac: + Check for wavpack version and define WAVPACK_OLD_API if + necessary. + * ext/wavpack/Makefile.am: + * ext/wavpack/gstwavpackcommon.c: (gst_wavpack_read_header), + (gst_wavpack_read_metadata): + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init), + (gst_wavpack_dec_class_init), (gst_wavpack_dec_init), + (gst_wavpack_dec_finalize), (gst_wavpack_dec_format_samples), + (gst_wavpack_dec_clip_outgoing_buffer), (gst_wavpack_dec_chain), + (gst_wavpack_dec_sink_event), (gst_wavpack_dec_change_state), + (gst_wavpack_dec_request_new_pad), (gst_wavpack_dec_plugin_init): + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_class_init), + (gst_wavpack_enc_init), (gst_wavpack_enc_finalize), + (gst_wavpack_enc_set_wp_config): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init), + (gst_wavpack_parse_finalize), (gst_wavpack_parse_class_init), + (gst_wavpack_parse_index_get_entry_from_sample), + (gst_wavpack_parse_scan_to_find_sample), + (gst_wavpack_parse_handle_seek_event), + (gst_wavpack_parse_create_src_pad): + * ext/wavpack/gstwavpackstreamreader.c: + * ext/wavpack/gstwavpackstreamreader.h: + Port to new/official wavpack API, don't use API that was exported + in wavpack header files and in the lib but meant to be private, at + least not for recent wavpack versions; misc. 'cleanups' (#347443). + +2006-07-18 09:36:46 +0000 Wim Taymans + + gst/nsf/nsf.c: Fix compilation by not ignoring return values of fread. + Original commit message from CVS: + * gst/nsf/nsf.c: (nsf_load): + Fix compilation by not ignoring return values of fread. + +2006-07-17 15:09:31 +0000 Thomas Vander Stichele + + docs/plugins/inspect/: adding more inspect docs + Original commit message from CVS: + * docs/plugins/inspect/plugin-alsaspdif.xml: + * docs/plugins/inspect/plugin-filter.xml: + * docs/plugins/inspect/plugin-h264parse.xml: + * docs/plugins/inspect/plugin-musepack.xml: + * docs/plugins/inspect/plugin-nsfdec.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-spectrum.xml: + adding more inspect docs + +2006-07-17 14:43:55 +0000 Thomas Vander Stichele + + docs/plugins/inspect/plugin-gdp.xml: actually commit inspectation of gdp element + Original commit message from CVS: + * docs/plugins/inspect/plugin-gdp.xml: + actually commit inspectation of gdp element + +2006-07-17 14:17:45 +0000 Thomas Vander Stichele + + gst/gdp/: remove parent_class setting, BOILERPLATE does this fix typo in comment + Original commit message from CVS: + 2006-07-17 Thomas Vander Stichele + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_class_init): + * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init), + remove parent_class setting, BOILERPLATE does this + (gst_gdp_pay_reset_streamheader): + fix typo in comment + +2006-07-17 10:25:57 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Store duration in uint64 too instead of clipping. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek), + (gst_qtdemux_prepare_current_sample), + (gst_qtdemux_loop_state_movie): + Store duration in uint64 too instead of clipping. + When we do a keyframe seek and the requested time is at the + keyframe, don't seek back to the beginning of the keyframe. + Fixes #347439. + +2006-07-16 14:46:02 +0000 Wim Taymans + + ext/faad/gstfaad.c: Don't crash on small buffers. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_sync): + Don't crash on small buffers. + +2006-07-15 11:57:00 +0000 Stefan Kost + + ext/ivorbis/vorbisfile.c: Reset adapter. + Original commit message from CVS: + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_sink_activate): + Reset adapter. + +2006-07-15 11:50:25 +0000 Stefan Kost + + gst/spectrum/: Do not use deprecated gtk functions. + Original commit message from CVS: + * gst/spectrum/demo-audiotest.c: (main): + * gst/spectrum/demo-osssrc.c: (main): + Do not use deprecated gtk functions. + +2006-07-14 10:34:36 +0000 Thomas Vander Stichele + + * gst/gdp/Makefile.am: + build as a plugin, not a lib + Original commit message from CVS: + build as a plugin, not a lib + +2006-07-14 09:11:11 +0000 Wim Taymans + + gst/nsf/: Remove crack malloc/free replacement. + Original commit message from CVS: + * gst/nsf/Makefile.am: + * gst/nsf/memguard.c: + * gst/nsf/memguard.h: + * gst/nsf/types.h: + Remove crack malloc/free replacement. + +2006-07-13 15:25:58 +0000 Thomas Vander Stichele + + docs/plugins/: add more plugins and elements to docs + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + add more plugins and elements to docs + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain): + fix segfaults due to wrong g_free + add example + * gst/gdp/gstgdppay.c: + add example + +2006-07-13 15:22:36 +0000 Wim Taymans + + gst/nsf/Makefile.am: Fix build. + Original commit message from CVS: + * gst/nsf/Makefile.am: + Fix build. + +2006-07-13 15:22:20 +0000 Thomas Vander Stichele + + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-sdlvideosink.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + remove sdlvideosink plugin and update the rest + Original commit message from CVS: + remove sdlvideosink plugin and update the rest + +2006-07-13 15:07:28 +0000 Wim Taymans + + Added NSF decoder plugin. Fixes 151192. + Original commit message from CVS: + Based on patches by: Johan Dahlin + Ronald Bultje + * configure.ac: + * gst/nsf/Makefile.am: + * gst/nsf/dis6502.h: + * gst/nsf/fds_snd.c: + * gst/nsf/fds_snd.h: + * gst/nsf/fmopl.c: + * gst/nsf/fmopl.h: + * gst/nsf/gstnsf.c: + * gst/nsf/gstnsf.h: + * gst/nsf/log.c: + * gst/nsf/log.h: + * gst/nsf/memguard.c: + * gst/nsf/memguard.h: + * gst/nsf/mmc5_snd.c: + * gst/nsf/mmc5_snd.h: + * gst/nsf/nes6502.c: + * gst/nsf/nes6502.h: + * gst/nsf/nes_apu.c: + * gst/nsf/nes_apu.h: + * gst/nsf/nsf.c: + * gst/nsf/nsf.h: + * gst/nsf/osd.h: + * gst/nsf/types.h: + * gst/nsf/vrc7_snd.c: + * gst/nsf/vrc7_snd.h: + * gst/nsf/vrcvisnd.c: + * gst/nsf/vrcvisnd.h: + Added NSF decoder plugin. Fixes 151192. + +2006-07-13 12:42:29 +0000 Tim-Philipp Müller + + tests/check/Makefile.am: Only run mpeg2enc unit test if we built the mpeg2enc plugin. + Original commit message from CVS: + * tests/check/Makefile.am: + Only run mpeg2enc unit test if we built the mpeg2enc plugin. + +2006-07-13 12:24:58 +0000 Tim-Philipp Müller + + configure.ac: Don't error out in configure if mjpegtools dev is not there. + Original commit message from CVS: + * configure.ac: + Don't error out in configure if mjpegtools dev is not there. + +2006-07-13 11:06:45 +0000 Mark Nauwelaerts + + Port mpeg2enc to 0.10 (#343184). + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * configure.ac: + * ext/Makefile.am: + * ext/mpeg2enc/Makefile.am: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mpeg2enc/gstmpeg2enc.hh: + * ext/mpeg2enc/gstmpeg2encoder.cc: + * ext/mpeg2enc/gstmpeg2encoder.hh: + * ext/mpeg2enc/gstmpeg2encoptions.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.hh: + * ext/mpeg2enc/gstmpeg2encstreamwriter.cc: + * ext/mpeg2enc/gstmpeg2encstreamwriter.hh: + Port mpeg2enc to 0.10 (#343184). + * tests/check/Makefile.am: + * tests/check/elements/.cvsignore: + * tests/check/elements/mpeg2enc.c: + Add unit test for mpeg2enc. + * tests/icles/.cvsignore: + Ignore pitch-test. + +2006-07-12 09:28:46 +0000 Tim-Philipp Müller + + gst/spectrum/gstspectrum.c: Fix typo in property nick. + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init): + Fix typo in property nick. + +2006-07-10 14:49:46 +0000 Wim Taymans + + gst/filter/: Don't forget new files. + Original commit message from CVS: + * gst/filter/gstbpwsinc.h: + * gst/filter/gstiir.h: + * gst/filter/gstlpwsinc.h: + Don't forget new files. + +2006-07-10 14:43:35 +0000 Wim Taymans + + * ChangeLog: + I'm too lazy to comment this + Original commit message from CVS: + *** empty log message *** + +2006-07-10 14:42:15 +0000 Mathis Hofer + + Ported the gstfilter plugin to GStreamer 0.10. + Original commit message from CVS: + Patch by: Mathis Hofer + * configure.ac: + * gst/filter/Makefile.am: + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_dispose), + (gst_bpwsinc_base_init), (gst_bpwsinc_class_init), + (gst_bpwsinc_init), (bpwsinc_set_caps), (bpwsinc_transform_ip), + (bpwsinc_set_property), (bpwsinc_get_property): + * gst/filter/gstfilter.c: (plugin_init): + * gst/filter/gstfilter.h: + * gst/filter/gstiir.c: (gst_iir_dispose), (gst_iir_base_init), + (gst_iir_class_init), (gst_iir_init), (iir_set_caps), + (iir_transform_ip), (iir_set_property), (iir_get_property): + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_dispose), + (gst_lpwsinc_base_init), (gst_lpwsinc_class_init), + (gst_lpwsinc_init), (lpwsinc_set_caps), (lpwsinc_transform_ip), + (lpwsinc_set_property), (lpwsinc_get_property): + Ported the gstfilter plugin to GStreamer 0.10. + +2006-07-10 09:57:26 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Extract comment information!! + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta): + Extract comment information!! + +2006-07-10 09:46:25 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Extract year/date information (fixes #347079). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta), + (qtdemux_tag_add_date): + Extract year/date information (fixes #347079). + +2006-07-07 14:30:26 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't crash on twos/sowt/raw audio. #345830. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Don't crash on twos/sowt/raw audio. #345830. + +2006-07-07 11:44:05 +0000 Lutz Mueller + + ext/neon/gstneonhttpsrc.*: Remove unlock function. start/stop will do everything needed + Original commit message from CVS: + Patch by: Lutz Mueller + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_init), (gst_neonhttp_src_finalize), + (request_dispatch), (gst_neonhttp_src_create), + (gst_neonhttp_src_start), (gst_neonhttp_src_get_size), + (gst_neonhttp_src_stop), (set_proxy), (set_uri), + (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property), + (gst_neonhttp_src_uri_set_uri), (size_header_handler): + * ext/neon/gstneonhttpsrc.h: + Remove unlock function. start/stop will do everything needed + Removed code that was never called. + Use gst_pad_alloc_buffer. Don't send EOS - parent class does that for us. + Do not escape path. Fixes #346723. + Additional code cleanups. + +2006-07-03 20:02:56 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix silly crasher in state change function; add + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_loop_state_header), (qtdemux_video_caps): + Fix silly crasher in state change function; add + IV41 fourcc (see bug #171111); don't output confusing + debug message when skipping atoms. + +2006-06-23 09:09:44 +0000 Tim-Philipp Müller + + Use GST_DEBUG_CATEGORY_STATIC where possible (#342503) and fix one GObject boilerplate macro. + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/libmms/gstmms.c: + * ext/neon/gstneonhttpsrc.c: + * ext/theora/theoradec.c: + * gst/freeze/gstfreeze.c: + * gst/gdp/gstgdpdepay.c: + * gst/gdp/gstgdppay.c: + * sys/glsink/glimagesink.c: + Use GST_DEBUG_CATEGORY_STATIC where possible (#342503) + and fix one GObject boilerplate macro. + +2006-06-22 10:10:51 +0000 Cody Russell + + gst/: Avoid unnecessary class cast check in class_init functions (#337747). + Original commit message from CVS: + Patch by: Cody Russell + * gst/audioresample/gstaudioresample.c: + (gst_audioresample_class_init): + * gst/playback/gststreamselector.c: + (gst_stream_selector_class_init): + * gst/subparse/gstsubparse.c: (gst_sub_parse_class_init): + * gst/tcp/gstmultifdsink.c: (gst_multi_fd_sink_class_init): + * gst/tcp/gsttcpclientsink.c: (gst_tcp_client_sink_class_init): + * gst/tcp/gsttcpclientsrc.c: (gst_tcp_client_src_class_init): + * gst/tcp/gsttcpserversink.c: (gst_tcp_server_sink_class_init): + * gst/tcp/gsttcpserversrc.c: (gst_tcp_server_src_class_init): + * gst/videoscale/gstvideoscale.c: (gst_video_scale_class_init): + * gst/videotestsrc/gstvideotestsrc.c: + (gst_video_test_src_class_init): + * gst/volume/gstvolume.c: (gst_volume_class_init): + Avoid unnecessary class cast check in class_init + functions (#337747). + +2006-06-20 11:07:02 +0000 Wim Taymans + + gst/modplug/libmodplug/stdafx.h: Fix modplug on AMD64. Fixes #345336. + Original commit message from CVS: + * gst/modplug/libmodplug/stdafx.h: + Fix modplug on AMD64. Fixes #345336. + +2006-06-19 14:07:24 +0000 Tim-Philipp Müller + + configure.ac: Fix check so that future libneon API changes won't break the build. + Original commit message from CVS: + * configure.ac: + Fix check so that future libneon API changes won't break the build. + * ext/neon/gstneonhttpsrc.c: + Fix build with libneon-0.26.x (#345182). + +2006-06-19 13:17:57 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add latest plugins + Original commit message from CVS: + add latest plugins + +2006-06-17 15:09:39 +0000 Tim-Philipp Müller + + configure.ac: Fix --disable-external (can't set conditionals conditionally, #343602). + Original commit message from CVS: + * configure.ac: + Fix --disable-external (can't set conditionals conditionally, + #343602). + +2006-06-16 15:43:23 +0000 Tim-Philipp Müller + + tests/check/elements/audioresample.c: Add test case for bug #342789 fixed below. + Original commit message from CVS: + * tests/check/elements/audioresample.c: (test_reuse), + (audioresample_suite): + Add test case for bug #342789 fixed below. + +2006-06-16 15:17:44 +0000 Tim-Philipp Müller + + gst/audioresample/gstaudioresample.c: Implement GstBaseTransform::start and ::stop so that audioresample can clear it... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + (gst_audioresample_class_init), (gst_audioresample_init), + (audioresample_start), (audioresample_stop), + (gst_audioresample_set_property), (gst_audioresample_get_property): + Implement GstBaseTransform::start and ::stop so that audioresample + can clear its internal state properly and be reused insted of + causing non-negotiated errors with playbin under some circumstances + (#342789). + * tests/check/elements/audioresample.c: (setup_audioresample), + (cleanup_audioresample): + Need to set element state here so that ::start and ::stop are + called. + +2006-06-16 12:35:08 +0000 Zaheer Abbas Merali + + gst/spectrum/Makefile.am: Fix build. + Original commit message from CVS: + 2006-06-16 Zaheer Abbas Merali + * gst/spectrum/Makefile.am: + Fix build. + +2006-06-16 09:49:07 +0000 Stefan Kost + + gst/spectrum/: port to use message to get results, cleanly exit when closing the window + Original commit message from CVS: + * gst/spectrum/demo-audiotest.c: (on_window_destroy), + (draw_spectrum), (message_handler), (main): + * gst/spectrum/demo-osssrc.c: (on_window_destroy), (draw_spectrum), + (message_handler), (main): + port to use message to get results, cleanly exit when closing the window + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init), + (gst_spectrum_init), (gst_spectrum_dispose), + (gst_spectrum_set_property), (gst_spectrum_get_property), + (gst_spectrum_set_caps), (gst_spectrum_start), + (gst_spectrum_message_new), (gst_spectrum_transform_ip): + * gst/spectrum/gstspectrum.h: + port to derive from basetransform and send results via messages + (like level element) + +2006-06-15 15:58:09 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Combine return values from src pad pushes. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek), + (gst_qtdemux_combine_flows), (gst_qtdemux_loop_state_movie), + (gst_qtdemux_loop), (gst_qtdemux_chain), (qtdemux_parse_trak): + Combine return values from src pad pushes. + +2006-06-15 08:50:09 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't crash on files with 0 samples, EOS immediatly instead. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header), + (gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample), + (gst_qtdemux_add_stream): + Don't crash on files with 0 samples, EOS immediatly instead. + Fixes #344944. + +2006-06-14 18:07:51 +0000 Wouter Paesen + + ext/soundtouch/: Make pitch element controllable via GstController interface (#344821). + Original commit message from CVS: + Patch by: Wouter Paesen + * ext/soundtouch/Makefile.am: + * ext/soundtouch/gstpitch.cc: + Make pitch element controllable via GstController interface + (#344821). + * configure.ac: + Up core requirements to 0.10.8.1/CVS because earlier + GstControllers can't handle float properties correctly. + Check for GstController CFLAGS and LIBS. + * tests/icles/Makefile.am: + * tests/icles/pitch-test.c: (main): + Add small test program for the above (welcome to the 80s!). + +2006-06-14 09:32:27 +0000 Sebastian Dröge + + ext/wavpack/gstwavpackenc.*: Use bitrate property solely for bitrates and add new bits-per-sample property for the ot... + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_base_init), + (gst_wavpack_enc_class_init), (gst_wavpack_enc_set_wp_config), + (gst_wavpack_enc_chain), (gst_wavpack_enc_sink_event), + (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property): + * ext/wavpack/gstwavpackenc.h: + Use bitrate property solely for bitrates and add new + bits-per-sample property for the other stuff. Set duration + to 'unknown' in initial header and resend header with proper + duration on EOS; update Sebastian's e-mail address. + +2006-06-12 11:30:08 +0000 Tim-Philipp Müller + + ex/: #define red green + Original commit message from CVS: + * examples/directfb/.cvsignore: + * ext/directfb/.cvsignore: + #define red green + +2006-06-12 11:04:59 +0000 Tim-Philipp Müller + + gst/spectrum/.cvsignore: Ignore more. + Original commit message from CVS: + * gst/spectrum/.cvsignore: + Ignore more. + +2006-06-12 10:53:26 +0000 Tim-Philipp Müller + + ext/libmms/gstmms.c: Set caps on outgoing buffers. + Original commit message from CVS: + * ext/libmms/gstmms.c: (gst_mms_create): + Set caps on outgoing buffers. + * sys/directdraw/gstdirectdrawsink.c: (gst_directdrawsink_init): + Comment out unused global instance variable. + +2006-06-11 22:37:07 +0000 Thomas Vander Stichele + + * .gitignore: + * tests/check/elements/.gitignore: + moap ignore + Original commit message from CVS: + moap ignore + +2006-06-11 13:57:19 +0000 Thomas Vander Stichele + + autogen.sh: require am17 + Original commit message from CVS: + * autogen.sh: + require am17 + * configure.ac: + * ext/annodex/Makefile.am: + * ext/cdio/Makefile.am: + * ext/dv/Makefile.am: + * ext/esd/Makefile.am: + * ext/flac/Makefile.am: + * ext/gdk_pixbuf/Makefile.am: + * ext/ladspa/Makefile.am: + * ext/libcaca/Makefile.am: + * ext/speex/Makefile.am: + * ext/taglib/Makefile.am: + * sys/oss/Makefile.am: + * sys/sunaudio/Makefile.am: + * sys/ximage/Makefile.am: + clean up build further + +2006-06-10 15:33:18 +0000 Sebastian Dröge + + ext/wavpack/: Add wavpack encoder element (#343131). + Original commit message from CVS: + Patch by: Sebastian Dröge + * ext/wavpack/Makefile.am: + * ext/wavpack/gstwavpack.c: (plugin_init): + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackenc.c: (gst_wavpack_enc_mode_get_type), + (gst_wavpack_enc_correction_mode_get_type), + (gst_wavpack_enc_joint_stereo_mode_get_type), + (gst_wavpack_enc_base_init), (gst_wavpack_enc_class_init), + (gst_wavpack_enc_init), (gst_wavpack_enc_dispose), + (gst_wavpack_enc_sink_set_caps), (gst_wavpack_enc_set_wp_config), + (gst_wavpack_enc_format_samples), (gst_wavpack_enc_push_block), + (gst_wavpack_enc_chain), (gst_wavpack_enc_rewrite_first_block), + (gst_wavpack_enc_sink_event), (gst_wavpack_enc_change_state), + (gst_wavpack_enc_set_property), (gst_wavpack_enc_get_property), + (gst_wavpack_enc_plugin_init): + * ext/wavpack/gstwavpackenc.h: + * ext/wavpack/md5.c: + * ext/wavpack/md5.h: + Add wavpack encoder element (#343131). + +2006-06-09 17:38:20 +0000 Tim-Philipp Müller + + configure.ac: Check for X before using X_CFLAGS in the check for opengl (#343866). + Original commit message from CVS: + * configure.ac: + Check for X before using X_CFLAGS in the check for opengl (#343866). + * ext/musepack/Makefile.am: + * ext/wavpack/Makefile.am: + * gst/speed/Makefile.am: + Add missing GST_LIBS, fixes build on cygwin (#343866). + +2006-06-06 16:26:59 +0000 Thomas Vander Stichele + + * gst/gdp/gstgdppay.c: + adapt to new api + Original commit message from CVS: + adapt to new api + +2006-06-06 16:14:52 +0000 Thomas Vander Stichele + + * configure.ac: + * gst/Makefile.am: + build gdp plugins + Original commit message from CVS: + build gdp plugins + +2006-06-06 15:16:15 +0000 Thomas Vander Stichele + + * tests/icles/.gitignore: + ignore more + Original commit message from CVS: + ignore more + +2006-06-06 14:39:15 +0000 Thomas Vander Stichele + + configure.ac: enable building of GDP elements + Original commit message from CVS: + * configure.ac: + enable building of GDP elements + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain): + * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init), + (gst_gdp_pay_init), (gst_gdp_buffer_from_caps), + (gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event), + (gst_gdp_pay_reset_streamheader), (gst_gdp_pay_sink_event), + (gst_gdp_pay_set_property), (gst_gdp_pay_get_property), + (gst_gdp_pay_change_state): + * gst/gdp/gstgdppay.h: + add version 1.0 + +2006-06-02 17:01:01 +0000 Michael Smith + + tests/check/: Don't busy-wait in tests; this was causing test timeouts very frequently when running under valgrind. + Original commit message from CVS: + * tests/check/elements/audioconvert.c: (set_channel_positions), + (get_float_mc_caps), (get_int_mc_caps): + * tests/check/elements/audioresample.c: + * tests/check/elements/audiotestsrc.c: (GST_START_TEST): + * tests/check/elements/videorate.c: + * tests/check/elements/videotestsrc.c: (GST_START_TEST): + * tests/check/elements/volume.c: + * tests/check/elements/vorbisdec.c: + * tests/check/pipelines/vorbisenc.c: (GST_START_TEST): + Don't busy-wait in tests; this was causing test timeouts very + frequently when running under valgrind. + +2006-06-02 16:45:59 +0000 Thomas Vander Stichele + + * gst/gdp/gstgdpdepay.c: + * gst/gdp/gstgdppay.h: + small fixes + Original commit message from CVS: + small fixes + +2006-06-02 13:43:24 +0000 Michael Smith + + ext/theora/theoradec.c: Theora 4:4:4 pixel format support. + Original commit message from CVS: + * ext/theora/theoradec.c: (theora_dec_src_convert), + (theora_handle_type_packet), (theora_handle_422_image), + (theora_handle_444_image), (theora_handle_420_image), + (theora_handle_data_packet): + Theora 4:4:4 pixel format support. + +2006-06-02 10:28:32 +0000 Thomas Vander Stichele + + gst/gdp/gstgdppay.c: add crc-header and crc-payload properties don't error out on some things that are recoverable + Original commit message from CVS: + * gst/gdp/gstgdppay.c: (gst_gdp_pay_class_init), + (gst_gdp_pay_init), (gst_gdp_buffer_from_caps), + (gst_gdp_pay_buffer_from_buffer), (gst_gdp_buffer_from_event), + (gst_gdp_pay_reset_streamheader), (gst_gdp_pay_chain), + (gst_gdp_pay_sink_event), (gst_gdp_pay_set_property), + (gst_gdp_pay_get_property): + add crc-header and crc-payload properties + don't error out on some things that are recoverable + * tests/check/elements/gdppay.c: (GST_START_TEST), (gdppay_suite): + add test for crc + +2006-06-01 22:00:26 +0000 Stefan Kost + + Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.h: + * ext/amrwb/gstamrwbdec.h: + * ext/amrwb/gstamrwbenc.h: + * ext/amrwb/gstamrwbparse.h: + * ext/arts/gst_arts.h: + * ext/artsd/gstartsdsink.h: + * ext/audiofile/gstafparse.h: + * ext/audiofile/gstafsink.h: + * ext/audiofile/gstafsrc.h: + * ext/audioresample/gstaudioresample.h: + * ext/bz2/gstbz2dec.h: + * ext/bz2/gstbz2enc.h: + * ext/dirac/gstdiracdec.h: + * ext/directfb/dfbvideosink.h: + * ext/divx/gstdivxdec.h: + * ext/divx/gstdivxenc.h: + * ext/dts/gstdtsdec.h: + * ext/faac/gstfaac.h: + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.h: + * ext/ivorbis/vorbisenc.h: + * ext/libfame/gstlibfame.h: + * ext/nas/nassink.h: + * ext/neon/gstneonhttpsrc.h: + * ext/polyp/polypsink.h: + * ext/sdl/sdlaudiosink.h: + * ext/sdl/sdlvideosink.h: + * ext/shout/gstshout.h: + * ext/snapshot/gstsnapshot.h: + * ext/sndfile/gstsf.h: + * ext/swfdec/gstswfdec.h: + * ext/tarkin/gsttarkindec.h: + * ext/tarkin/gsttarkinenc.h: + * ext/theora/theoradec.h: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackparse.h: + * ext/xine/gstxine.h: + * ext/xvid/gstxviddec.h: + * ext/xvid/gstxvidenc.h: + * gst/cdxaparse/gstcdxaparse.h: + * gst/cdxaparse/gstcdxastrip.h: + * gst/colorspace/gstcolorspace.h: + * gst/festival/gstfestival.h: + * gst/freeze/gstfreeze.h: + * gst/gdp/gstgdpdepay.h: + * gst/gdp/gstgdppay.h: + * gst/modplug/gstmodplug.h: + * gst/mpeg1sys/gstmpeg1systemencode.h: + * gst/mpeg1videoparse/gstmp1videoparse.h: + * gst/mpeg2sub/gstmpeg2subt.h: + * gst/mpegaudioparse/gstmpegaudioparse.h: + * gst/multifilesink/gstmultifilesink.h: + * gst/overlay/gstoverlay.h: + * gst/playondemand/gstplayondemand.h: + * gst/qtdemux/qtdemux.h: + * gst/rtjpeg/gstrtjpegdec.h: + * gst/rtjpeg/gstrtjpegenc.h: + * gst/smooth/gstsmooth.h: + * gst/smoothwave/gstsmoothwave.h: + * gst/spectrum/gstspectrum.h: + * gst/speed/gstspeed.h: + * gst/stereo/gststereo.h: + * gst/switch/gstswitch.h: + * gst/tta/gstttadec.h: + * gst/tta/gstttaparse.h: + * gst/videodrop/gstvideodrop.h: + * gst/xingheader/gstxingmux.h: + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundsink.h: + * sys/dxr3/dxr3audiosink.h: + * sys/dxr3/dxr3spusink.h: + * sys/dxr3/dxr3videosink.h: + * sys/qcam/gstqcamsrc.h: + * sys/vcd/vcdsrc.h: + Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + +2006-06-01 19:19:50 +0000 Stefan Kost + + Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + Original commit message from CVS: + * ext/alsa/gstalsamixerelement.h: + * ext/alsa/gstalsamixeroptions.h: + * ext/alsa/gstalsamixertrack.h: + * ext/gnomevfs/gstgnomevfssink.h: + * ext/gnomevfs/gstgnomevfssrc.h: + * ext/theora/gsttheoradec.h: + * ext/theora/gsttheoraenc.h: + * ext/theora/gsttheoraparse.h: + * ext/vorbis/vorbisparse.h: + * gst-libs/gst/audio/gstaudioclock.h: + * gst-libs/gst/audio/gstaudiofilter.h: + * gst-libs/gst/rtp/gstbasertpaudiopayload.h: + * gst/audioconvert/gstaudioconvert.h: + * gst/audioresample/gstaudioresample.h: + * gst/audiotestsrc/gstaudiotestsrc.h: + * gst/ffmpegcolorspace/gstffmpegcolorspace.h: + * gst/playback/gststreamselector.h: + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcpclientsink.h: + * gst/tcp/gsttcpclientsrc.h: + * gst/tcp/gsttcpserversink.h: + * gst/tcp/gsttcpserversrc.h: + * gst/videorate/gstvideorate.h: + * gst/videoscale/gstvideoscale.h: + * gst/videotestsrc/gstvideotestsrc.h: + * gst/volume/gstvolume.h: + * sys/v4l/gstv4ljpegsrc.h: + * sys/v4l/gstv4lmjpegsink.h: + * sys/v4l/gstv4lmjpegsrc.h: + * sys/v4l/gstv4lsrc.h: + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.h: + * tests/old/testsuite/alsa/sinesrc.h: + Fix more gobject macros: obj<->klass, GstXXX<->GstXXXClass + +2006-05-31 19:26:24 +0000 Edward Hervey + + ext/faad/gstfaad.h: Forgot to commit the header file too. + Original commit message from CVS: + * ext/faad/gstfaad.h: + Forgot to commit the header file too. + +2006-05-31 13:37:27 +0000 Edward Hervey + + ext/faad/gstfaad.c: Added GstSegment to control segments. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_init), + (gst_faad_dispose), (gst_faad_sink_event), (clip_outgoing_buffer), + (gst_faad_chain), (gst_faad_change_state): + Added GstSegment to control segments. + Added clipping/dropping of outgoing buffers in order to have accurate + seeking working properly. + +2006-05-28 17:08:17 +0000 Lutz Müller + + ext/bz2/: Use gst_type_find_helper_* functions for typefinding; use correct caps with gst_pad_alloc_buffer(); add sta... + Original commit message from CVS: + Patch by: Lutz Müller + * ext/bz2/Makefile.am: + * ext/bz2/gstbz2dec.c: (gst_bz2dec_chain), (gst_bz2dec_init), + (gst_bz2dec_change_state), (gst_bz2dec_class_init): + Use gst_type_find_helper_* functions for typefinding; use + correct caps with gst_pad_alloc_buffer(); add state change + function and reset decoder in it; don't unref buffer if + pad_push fails; use fixed caps on source pad. (#341524). + +2006-05-26 22:35:00 +0000 Stefan Kost + + gst/spectrum/: added another example + Original commit message from CVS: + * gst/spectrum/Makefile.am: + * gst/spectrum/demo-audiotest.c: (on_frequency_changed), + (spectrum_chain), (main): + * gst/spectrum/demo-osssrc.c: + added another example + * sys/v4l2/gstv4l2src.c: + fix typo + +2006-05-26 13:16:54 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Clip the outputed NEWSEGMENT stop time to the configured segment stop time. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_activate_segment): + Clip the outputed NEWSEGMENT stop time to the configured segment stop + time. + +2006-05-26 11:48:44 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't clear the running variable in the seek code. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_do_seek): + Don't clear the running variable in the seek code. + +2006-05-24 11:56:43 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Detect QCELP in mp4a descriptors. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_esds): + Detect QCELP in mp4a descriptors. + +2006-05-22 18:00:52 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: po/POTFILES.in: + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), (plugin_init): + po/POTFILES.in: + Throw an error when the file is encrypted. Move plugin_init stuff + to the end of the file, add stuff for i18n, make debug category + static. + +2006-05-22 16:24:12 +0000 Thomas Vander Stichele + + * tests/check/Makefile.am: + sigh, really don't build these + Original commit message from CVS: + sigh, really don't build these + +2006-05-22 16:08:34 +0000 Michal Benes + + New plugin: h264parse (#340638) + Original commit message from CVS: + Patch by: Michal Benes + * configure.ac: + * gst/h264parse/Makefile.am: + * gst/h264parse/gsth264parse.c: (gst_h264_parse_base_init), + (gst_h264_parse_finalize), (gst_h264_parse_class_init), + (gst_h264_parse_init), (gst_h264_parse_chain), + (gst_h264_parse_handle_event), (plugin_init): + * gst/h264parse/gsth264parse.h: + New plugin: h264parse (#340638) + +2006-05-22 15:53:07 +0000 Thomas Vander Stichele + + gst/gdp/: Handle error cases when calling functions do downwards state change after parent's change_state + Original commit message from CVS: + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_chain), + (gst_gdp_depay_change_state): + * gst/gdp/gstgdpdepay.h: + * gst/gdp/gstgdppay.c: (gst_gdp_pay_reset_streamheader), + (gst_gdp_pay_chain), (gst_gdp_pay_sink_event), + (gst_gdp_pay_change_state): + * gst/gdp/gstgdppay.h: + Handle error cases when calling functions + do downwards state change after parent's change_state + * tests/check/elements/gdpdepay.c: (GST_START_TEST): + * tests/check/elements/gdppay.c: (GST_START_TEST): + clean up more + +2006-05-22 14:37:41 +0000 Thomas Vander Stichele + + * tests/check/Makefile.am: + don't build these yet + Original commit message from CVS: + don't build these yet + +2006-05-22 13:40:28 +0000 Thomas Vander Stichele + + * tests/check/Makefile.am: + don't build these yet + Original commit message from CVS: + don't build these yet + +2006-05-22 13:25:52 +0000 Thomas Vander Stichele + + adding GDP payloader and depayloader. Build integration will follow later when the GDP issues for core are sorted out. + Original commit message from CVS: + * gst/gdp/Makefile.am: + * gst/gdp/gstgdp.c: (plugin_init): + * gst/gdp/gstgdpdepay.c: (gst_gdp_depay_base_init), + (gst_gdp_depay_class_init), (gst_gdp_depay_init), + (gst_gdp_depay_finalize), (gst_gdp_depay_chain), + (gst_gdp_depay_change_state), (gst_gdp_depay_plugin_init): + * gst/gdp/gstgdpdepay.h: + * gst/gdp/gstgdppay.c: (gst_gdp_pay_base_init), + (gst_gdp_pay_class_init), (gst_gdp_pay_init), + (gst_gdp_pay_dispose), (gst_gdp_stamp_buffer), + (gst_gdp_buffer_from_caps), (gst_gdp_pay_buffer_from_buffer), + (gst_gdp_buffer_from_event), (gst_gdp_pay_reset_streamheader), + (gst_gdp_queue_buffer), (gst_gdp_pay_chain), + (gst_gdp_pay_sink_event), (gst_gdp_pay_change_state), + (gst_gdp_pay_plugin_init): + * gst/gdp/gstgdppay.h: + * tests/check/Makefile.am: + * tests/check/elements/gdpdepay.c: (setup_gdpdepay), + (cleanup_gdpdepay), (gdpdepay_push_per_byte), (GST_START_TEST), + (setup_gdpdepay_streamheader), (gdpdepay_suite), (main): + * tests/check/elements/gdppay.c: (setup_gdppay), (cleanup_gdppay), + (GST_START_TEST), (setup_gdppay_streamheader), (gdppay_suite), + (main): + adding GDP payloader and depayloader. Build integration will + follow later when the GDP issues for core are sorted out. + +2006-05-21 16:41:44 +0000 Stefan Kost + + gst/spectrum/gstspectrum.c: Use boilerplate macro, fix strings to match plugin-moval-requirements + Original commit message from CVS: + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init), + (gst_spectrum_init), (gst_spectrum_set_sink_caps), + (gst_spectrum_get_sink_caps), (gst_spectrum_chain): + Use boilerplate macro, fix strings to match plugin-moval-requirements + +2006-05-21 16:23:23 +0000 Stefan Kost + + gst/spectrum/Makefile.am: Link to base libraries + Original commit message from CVS: + * gst/spectrum/Makefile.am: + Link to base libraries + * gst/spectrum/demo-osssrc.c: (main): + use new threshhold property + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init), + (gst_spectrum_init), (gst_spectrum_dispose), + (gst_spectrum_set_property), (gst_spectrum_set_sink_caps), + (gst_spectrum_get_sink_caps), (gst_spectrum_chain), + (gst_spectrum_change_state): + * gst/spectrum/gstspectrum.h: + Use gst_adapter, support multiple-channels, add threshold property for + result, add docs, fix resulting spectrum range (was including mirrored + results) + +2006-05-20 22:42:15 +0000 Stefan Kost + + Initial port of the spectrum element + Original commit message from CVS: + * configure.ac: + * gst/spectrum/demo-osssrc.c: (spectrum_chain), (main): + * gst/spectrum/fix_fft.c: (gst_spectrum_fix_dot): + * gst/spectrum/gstspectrum.c: (gst_spectrum_get_type), + (gst_spectrum_base_init), (gst_spectrum_class_init), + (gst_spectrum_init), (gst_spectrum_dispose), + (gst_spectrum_set_property), (gst_spectrum_chain): + * gst/spectrum/gstspectrum.h: + Initial port of the spectrum element + +2006-05-19 18:58:05 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2xoverlay.c: + I forget to add sys/v4l2/gstv4l2xoverlay.c in las commit + Original commit message from CVS: + I forget to add sys/v4l2/gstv4l2xoverlay.c in las commit + +2006-05-19 18:31:25 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + Some clean-ups requested by wingo in bug #338818. + Original commit message from CVS: + Some clean-ups requested by wingo in bug #338818. + +2006-05-19 14:17:04 +0000 Michael Smith + + ext/alsaspdif/alsaspdifsink.*: Use sampling rate from set_caps. Comment out some more unused code. + Original commit message from CVS: + * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init), + (alsaspdifsink_class_init), (alsaspdifsink_init), + (alsaspdifsink_dispose), (alsaspdifsink_set_property), + (alsaspdifsink_get_property), (alsaspdifsink_set_caps), + (alsaspdifsink_get_time), (alsaspdifsink_open), + (alsaspdifsink_close), (alsaspdifsink_find_pcm_device), + (alsaspdifsink_write_frame), (alsaspdifsink_event), + (alsaspdifsink_get_times), (alsaspdifsink_current_delay), + (generate_iec958_zero_frame), (alsaspdifsink_render), + (ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init): + * ext/alsaspdif/alsaspdifsink.h: + Use sampling rate from set_caps. Comment out some more unused code. + +2006-05-18 19:34:47 +0000 Stefan Kost + + configure.ac: Check for X11 + Original commit message from CVS: + * configure.ac: + Check for X11 + * sys/v4l2/gstv4l2object.c: (gst_v4l2_class_probe_devices): + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_iface_supported): + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open): + * sys/v4l2/gstv4l2xoverlay.h: + Code cleanups, fix debug macros + +2006-05-18 13:12:19 +0000 Michael Smith + + ext/Makefile.am: Fix distcheck? + Original commit message from CVS: + * ext/Makefile.am: + Fix distcheck? + +2006-05-18 12:51:01 +0000 Michael Smith + + Add an alsa plugin to output IEC958 frames over S/PDIF + Original commit message from CVS: + * configure.ac: + * ext/Makefile.am: + * ext/alsaspdif/Makefile.am: + * ext/alsaspdif/alsaspdifsink.c: (alsaspdifsink_base_init), + (alsaspdifsink_class_init), (alsaspdifsink_init), + (alsaspdifsink_dispose), (alsaspdifsink_set_property), + (alsaspdifsink_get_property), (alsaspdifsink_provide_clock), + (alsaspdifsink_get_time), (alsaspdifsink_open), + (alsaspdifsink_close), (alsaspdifsink_find_pcm_device), + (alsaspdifsink_write_frame), (alsaspdifsink_event), + (alsaspdifsink_get_times), (alsaspdifsink_current_delay), + (generate_iec958_zero_frame), (alsaspdifsink_render), + (ignore_alsa_err), (alsaspdifsink_change_state), (plugin_init): + * ext/alsaspdif/alsaspdifsink.h: + Add an alsa plugin to output IEC958 frames over S/PDIF + +2006-05-17 09:39:53 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.c: Remove unused caps cruft from chain function altogether. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_update_caps), (gst_faad_chain): + Remove unused caps cruft from chain function altogether. + +2006-05-17 09:15:55 +0000 Edward Hervey + + ext/faad/gstfaad.c: There's no guarantee that caps was set to something, and if it did, the function called to fill t... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_chain): + There's no guarantee that caps was set to something, and if it did, the + function called to fill that variable actually sets the caps on the + sourcpad, so we call gst_pad_alloc_buffer_and_set_caps() using + GST_PAD_CAPS(faad->srcpad). + +2006-05-15 10:10:08 +0000 Christian Schaller + + * common: + * gst-plugins-bad.spec.in: + latest changes with additions and removals + Original commit message from CVS: + latest changes with additions and removals + +2006-05-13 18:39:13 +0000 Young-Ho Cha + + ext/faad/gstfaad.*: If we encounter a decoding error, don't error out immediately, but try to resync (or see if we ha... + Original commit message from CVS: + Patch by: Young-Ho Cha + * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chain), + (gst_faad_change_state): + * ext/faad/gstfaad.h: + If we encounter a decoding error, don't error out immediately, + but try to resync (or see if we have better luck with the next + buffer in case of framed input). Only error out after five + consecutive errors. Fixes #341563. + +2006-05-12 10:43:49 +0000 Wim Taymans + + ext/xvid/gstxvidenc.c: Compile fixes. + Original commit message from CVS: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init), + (gst_xvidenc_init), (gst_xvidenc_finalize), + (gst_xvidenc_handle_sink_event), (gst_xvidenc_setup), + (gst_xvidenc_setcaps), (gst_xvidenc_encode), (gst_xvidenc_chain), + (gst_xvidenc_flush_buffers), (gst_xvidenc_set_property), + (gst_xvidenc_get_property): + Compile fixes. + +2006-05-12 09:28:15 +0000 Mark Nauwelaerts + + ext/xvid/: xvid plugin to support more capabilities of XviD codec. + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_structure_to_csp), + (gst_xvid_csp_to_caps), (gst_xvid_image_get_size), + (gst_xvid_image_fill): + * ext/xvid/gstxvid.h: + * ext/xvid/gstxviddec.c: (gst_xviddec_class_init), + (gst_xviddec_init), (gst_xviddec_reset), (gst_xviddec_unset), + (gst_xviddec_handle_sink_event), (gst_xviddec_setup), + (gst_xviddec_add_par), (gst_xviddec_negotiate), + (gst_xviddec_decode), (gst_xviddec_chain), + (gst_xviddec_flush_buffers), (gst_xviddec_src_getcaps), + (gst_xviddec_src_link), (gst_xviddec_setcaps), + (gst_xviddec_change_state): + * ext/xvid/gstxviddec.h: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type), + (gst_xvidenc_quant_type_get_type), (gst_xvidenc_pass_get_type), + (gst_xvidenc_get_type), (gst_xvidenc_base_init), + (gst_xvidenc_class_init), (gst_xvidenc_init), + (gst_xvidenc_finalize), (gst_xvidenc_handle_sink_event), + (gst_xvidenc_setup), (gst_xvidenc_setcaps), (gst_xvidenc_encode), + (gst_xvidenc_chain), (gst_xvidenc_flush_buffers), + (gst_xvidenc_set_property), (gst_xvidenc_get_property), + (gst_xvidenc_change_state): + * ext/xvid/gstxvidenc.h: + xvid plugin to support more capabilities of XviD codec. + Fixes #339462. + Some more cleanups here and there. + +2006-05-11 20:47:50 +0000 Thomas Vander Stichele + + * configure.ac: + put back -no-undefined + Original commit message from CVS: + put back -no-undefined + +2006-05-11 17:59:59 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2element.c: + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2object.c: + * sys/v4l2/gstv4l2object.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + Changes proposed by Wingo in bug #338818. + Original commit message from CVS: + Changes proposed by Wingo in bug #338818. + +2006-05-11 09:09:49 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Figure out the real audio type in mp4a boxes by parsing the optional descriptors in the option... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak), + (gst_qtdemux_handle_esds): + Figure out the real audio type in mp4a boxes by parsing the + optional descriptors in the optional esds box. Promote the + default AAC to mp3 when indicated. Fixes #330632. + +2006-05-10 17:44:50 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Parse version 2 sample descriptions. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_dump_unknown), + (qtdemux_parse_trak), (gst_qtdemux_handle_esds): + Parse version 2 sample descriptions. + Don't #define gst_util_dump_mem(), use something more + specific instead to avoid confusion. + +2006-05-08 19:21:18 +0000 Martin Rubli + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/v4l2src_calls.c: + Fix fourcc name printed out. Patch from Martin Rubli. + Original commit message from CVS: + Fix fourcc name printed out. Patch from Martin Rubli. + +2006-05-08 15:20:10 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't cause side effects in a debugging function. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query), + (qtdemux_dump_mvhd): + Don't cause side effects in a debugging function. + Also report duration in push mode since we can. + +2006-05-08 11:55:02 +0000 Edward Hervey + + autogen.sh: libtoolize on Darwin/MacOSX is called glibtoolize + Original commit message from CVS: + * autogen.sh: (CONFIGURE_DEF_OPT): + libtoolize on Darwin/MacOSX is called glibtoolize + +2006-05-06 00:15:59 +0000 Maciej Katafiasz + + * ChangeLog: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlvideosink.c: + * ext/wavpack/gstwavpackdec.c: + * ext/xine/xine.c: + * ext/xine/xineaudiodec.c: + * ext/xine/xineaudiosink.c: + * ext/xine/xineinput.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/freeze/gstfreeze.c: + Add semicolons after GST_BOILERPLATE[_FULL] so that indent doesn't mess up following lines. + Original commit message from CVS: + Add semicolons after GST_BOILERPLATE[_FULL] so that indent doesn't mess up following lines. + +2006-05-05 20:12:59 +0000 Martin Rubli + + * ChangeLog: + * sys/v4l2/gstv4l2element.c: + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + * tests/icles/v4l2src-test.c: + Some changes proposed by wingo in bug #338818 (but not everything yet). Patch from Martin Rubli to fix framerate dete... + Original commit message from CVS: + Some changes proposed by wingo in bug #338818 (but not everything yet). Patch from Martin Rubli to fix framerate detection. + +2006-05-05 15:50:10 +0000 Tim-Philipp Müller + + ext/sdl/sdlaudiosink.c: Use (NULL) instead of just NULL in GST_ELEMENT_ERROR macro. + Original commit message from CVS: + * ext/sdl/sdlaudiosink.c: (gst_sdlaudio_sink_prepare): + Use (NULL) instead of just NULL in GST_ELEMENT_ERROR macro. + +2006-05-04 15:32:10 +0000 Jan Schmidt + + configure.ac: Back to CVS + Original commit message from CVS: + * configure.ac: + Back to CVS + +=== release 0.10.3 === + +2006-05-04 15:28:53 +0000 Jan Schmidt + + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Really release 0.10.3 this time + Original commit message from CVS: + Really release 0.10.3 this time + +2006-05-04 15:09:13 +0000 Jan Schmidt + + * ChangeLog: + * configure.ac: + Perform version number surgery to correctly release tarballs of 0.10.3 + Original commit message from CVS: + Perform version number surgery to correctly release tarballs of 0.10.3 + +2006-05-04 14:52:55 +0000 Jan Schmidt + + configure.ac: Back to CVS + Original commit message from CVS: + * configure.ac: + Back to CVS + +2006-05-04 14:51:06 +0000 Jan Schmidt + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + * docs/plugins/inspect/plugin-xvid.xml: + Release 0.10.3 + Original commit message from CVS: + Release 0.10.3 + +2006-05-04 09:29:24 +0000 Julien Moutte + + tests/icles/Makefile.am: Fix build. + Original commit message from CVS: + 2006-05-04 Julien MOUTTE + * tests/icles/Makefile.am: Fix build. + +2006-05-03 21:48:22 +0000 Jan Schmidt + + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + Update .po files + Original commit message from CVS: + Update .po files + +2006-05-03 16:54:32 +0000 Tim-Philipp Müller + + ext/musicbrainz/Makefile.am: Add GST_PLUGINS_BASE_CFLAGS to CFLAGS for gst/tag/tag.h + Original commit message from CVS: + * ext/musicbrainz/Makefile.am: + Add GST_PLUGINS_BASE_CFLAGS to CFLAGS for gst/tag/tag.h + +2006-05-03 14:30:21 +0000 Jan Schmidt + + gst/qtdemux/qtdemux.c: Clean up one piece of logic slightly and remove a dead code block. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Clean up one piece of logic slightly and remove a + dead code block. + +2006-05-03 13:20:41 +0000 Tim-Philipp Müller + + Everybody loves docs - add docs for musicbrainz plugin. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/inspect/plugin-musicbrainz.xml: + * ext/musicbrainz/gsttrm.c: + * ext/musicbrainz/gsttrm.h: + Everybody loves docs - add docs for musicbrainz plugin. + +2006-05-03 12:01:43 +0000 Tim-Philipp Müller + + ext/Makefile.am: Add musicbrainz dir to DIST_SUBDIRS as well (fixes distcheck). + Original commit message from CVS: + * ext/Makefile.am: + Add musicbrainz dir to DIST_SUBDIRS as well (fixes distcheck). + +2006-05-03 11:34:31 +0000 Tim-Philipp Müller + + ext/Makefile.am: Forgot to commit this one. + Original commit message from CVS: + * ext/Makefile.am: + Forgot to commit this one. + +2006-05-03 11:27:42 +0000 James Doc Livingston + + Port MusicBrainz TRM plugin (#336898). + Original commit message from CVS: + Patch by: James "Doc" Livingston + * configure.ac: + * ext/musicbrainz/Makefile.am: + * ext/musicbrainz/gsttrm.c: (gst_trm_base_init), + (gst_trm_class_init), (gst_trm_init), (gst_trm_setcaps), + (gst_trm_chain), (gst_trm_emit_signature), (gst_trm_set_property), + (gst_trm_get_property), (gst_trm_change_state), (plugin_init): + * ext/musicbrainz/gsttrm.h: + Port MusicBrainz TRM plugin (#336898). + +2006-05-03 10:25:46 +0000 Michael Smith + + ext/faad/gstfaad.c: Fix #334748: use fake_codec_data if the first bytes of the first buffer we process doesn't look l... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), + (looks_like_valid_header), (gst_faad_chain): + Fix #334748: use fake_codec_data if the first bytes of the first + buffer we process doesn't look like plausible AAC data (e.g. + reserved values for rate, or channels). Fixes playback of Apple's + movie trailers. + +2006-05-02 21:52:48 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Fix get_caps func to work when no framerate is available and the caps isn't simple. + Original commit message from CVS: + Fix get_caps func to work when no framerate is available and the caps isn't simple. + +2006-05-01 21:37:51 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/v4l2/v4l2_calls.c: + * tests/icles/Makefile.am: + * tests/icles/v4l2src-test.c: + Few improvements to move to good. + Original commit message from CVS: + Few improvements to move to good. + +2006-05-01 17:58:38 +0000 Thomas Vander Stichele + + moved to good. Closes #336110 + Original commit message from CVS: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/inspect/plugin-taglib.xml: + * ext/Makefile.am: + * ext/taglib/Makefile.am: + * ext/taglib/gstid3v2mux.cc: + * ext/taglib/gstid3v2mux.h: + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: + * tests/check/Makefile.am: + * tests/check/elements/tagid3v2mux.c: + moved to good. Closes #336110 + +2006-04-30 16:16:59 +0000 Thomas Vander Stichele + + * ext/taglib/gstid3v2mux.cc: + * ext/taglib/gsttaglib.cc: + small cleanups + Original commit message from CVS: + small cleanups + +2006-04-30 15:32:13 +0000 Thomas Vander Stichele + + * ext/taglib/gstid3v2mux.cc: + fix docs + Original commit message from CVS: + fix docs + +2006-04-30 15:13:49 +0000 Thomas Vander Stichele + + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.signals: + updated element properties and signals + Original commit message from CVS: + updated element properties and signals + +2006-04-30 15:11:46 +0000 Thomas Vander Stichele + + * docs/plugins/.gitignore: + * docs/plugins/inspect/plugin-faac.xml: + * docs/plugins/inspect/plugin-wavpack.xml: + * docs/plugins/inspect/plugin-xvid.xml: + ignore more; add new inspect files + Original commit message from CVS: + ignore more; add new inspect files + +2006-04-30 14:59:39 +0000 Thomas Vander Stichele + + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + remove files that should not be in cvs + Original commit message from CVS: + remove files that should not be in cvs + +2006-04-30 14:58:29 +0000 Thomas Vander Stichele + + docs/plugins/: Fix up docs for taglib plugin + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + Fix up docs for taglib plugin + Also scan .cc files + +2006-04-30 14:55:15 +0000 Thomas Vander Stichele + + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + update to latest version + Original commit message from CVS: + update to latest version + +2006-04-29 18:46:36 +0000 Tim-Philipp Müller + + ext/taglib/gsttaglib.cc: Post an error message on the bus in the (extremely unlikely) case of an error. + Original commit message from CVS: + * ext/taglib/gsttaglib.cc: + Post an error message on the bus in the (extremely unlikely) + case of an error. + +2006-04-29 18:18:24 +0000 Tim-Philipp Müller + + ext/taglib/: Split the actual ID3v2 tag rendering code into its own subclass. + Original commit message from CVS: + * ext/taglib/Makefile.am: + * ext/taglib/gstid3v2mux.cc: + * ext/taglib/gstid3v2mux.h: + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: + Split the actual ID3v2 tag rendering code into + its own subclass. + +2006-04-29 15:36:16 +0000 Sébastien Moutte + + ext/neon/gstneonhttpsrc.*: added iradio-mode support as in gnomevfssrc to enable connections with icydemux that will ... + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + added iradio-mode support as in gnomevfssrc to enable + connections with icydemux that will send title tag messages on + shoutcast/icecast streams. I've also added iradio properties + iradio-name, iradio-genre, iradio-url. + added user-agent property because some shoutcast streams don't return + data if the GET requests don't have a User-Agent. + * win32/common/libgstneon.dsp: + use debug version of libneon in debug mode + +2006-04-28 21:43:07 +0000 Thomas Vander Stichele + + * tests/check/elements/tagid3v2mux.c: + element renamed + Original commit message from CVS: + element renamed + +2006-04-28 19:46:36 +0000 Stefan Kost + + make GstElementDetails const + Original commit message from CVS: + * ext/alsa/gstalsamixerelement.c: + * ext/alsa/gstalsasrc.c: + * ext/cdparanoia/gstcdparanoiasrc.c: + * ext/gnomevfs/gstgnomevfssink.c: + * ext/gnomevfs/gstgnomevfssrc.c: + * ext/ogg/gstoggdemux.c: + * ext/ogg/gstoggmux.c: + * ext/ogg/gstoggparse.c: + * ext/ogg/gstogmparse.c: + * ext/pango/gstclockoverlay.c: + * ext/pango/gsttextoverlay.c: + * ext/pango/gsttextrender.c: + * ext/pango/gsttimeoverlay.c: + * ext/theora/theoradec.c: + * ext/theora/theoraenc.c: + * ext/vorbis/vorbisdec.c: + * ext/vorbis/vorbisenc.c: + * gst-libs/gst/audio/gstaudiofilter.c: + * gst-libs/gst/audio/gstaudiofiltertemplate.c: + * gst/audioconvert/gstaudioconvert.c: + * gst/audiorate/gstaudiorate.c: + * gst/audioresample/gstaudioresample.c: + * gst/audiotestsrc/gstaudiotestsrc.c: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + * gst/playback/gstdecodebin.c: + * gst/playback/gstplaybin.c: + * gst/playback/gststreamselector.c: + * gst/subparse/gstsubparse.c: + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversrc.c: + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + * gst/videorate/gstvideorate.c: + * gst/videoscale/gstvideoscale.c: + * gst/videotestsrc/gstvideotestsrc.c: + * gst/volume/gstvolume.c: + * sys/v4l/gstv4ljpegsrc.c: + * sys/v4l/gstv4lmjpegsink.c: + * sys/v4l/gstv4lmjpegsrc.c: + * sys/v4l/gstv4lsrc.c: + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + * tests/check/libs/cddabasesrc.c: + make GstElementDetails const + +2006-04-28 19:24:40 +0000 Thomas Vander Stichele + + * docs/plugins/inspect/plugin-ximagesrc.xml: + removed plugin doc + Original commit message from CVS: + removed plugin doc + +2006-04-28 19:23:20 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * sys/Makefile.am: + * sys/ximagesrc/Makefile.am: + * sys/ximagesrc/ximagesrc.c: + * sys/ximagesrc/ximagesrc.h: + * sys/ximagesrc/ximageutil.c: + * sys/ximagesrc/ximageutil.h: + * tests/Makefile.am: + * tests/icles/.gitignore: + * tests/icles/Makefile.am: + * tests/icles/ximagesrc-test.c: + moved ximagesrc to good + Original commit message from CVS: + moved ximagesrc to good + +2006-04-28 16:51:33 +0000 Thomas Vander Stichele + + * sys/ximagesrc/ximagesrc.c: + * sys/ximagesrc/ximagesrc.h: + borgify naming + Original commit message from CVS: + borgify naming + +2006-04-28 16:46:52 +0000 Thomas Vander Stichele + + * sys/ximagesrc/ximagesrc.c: + doc tweaks + Original commit message from CVS: + doc tweaks + +2006-04-28 16:15:20 +0000 Thomas Vander Stichele + + * sys/ximagesrc/Makefile.am: + * sys/ximagesrc/ximagesrc.c: + clean up Makefile.am + Original commit message from CVS: + clean up Makefile.am + +2006-04-28 15:33:09 +0000 Thomas Vander Stichele + + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: + pedantic cleanups + Original commit message from CVS: + pedantic cleanups + +2006-04-28 14:17:00 +0000 Wim Taymans + + gst/audioresample/gstaudioresample.c: Add support for other formats audioresample can handle such as 32 bits in and f... + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: (gst_audioresample_init), + (resample_set_state_from_caps): + Add support for other formats audioresample can handle such as + 32 bits in and float and 64 bits float. Fixes #301759 + +2006-04-28 11:04:12 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.*: If we run into a decoding error, try re-opening the decoder with faacDecInit2() using fake codec ... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_init), (aac_rate_idx), + (gst_faad_setcaps), (gst_faad_chain), (gst_faad_open_decoder), + (gst_faad_close_decoder), (gst_faad_change_state): + * ext/faad/gstfaad.h: + If we run into a decoding error, try re-opening the decoder + with faacDecInit2() using fake codec data created from the + data the demuxer gave us. Should fix a whole bunch of + GStreamer-faad problems incl. 'channel coupling not + implemented', 'maximum number of scalefactor bands exceeded' + etc. (#173007, #332892). + +2006-04-25 21:56:38 +0000 Stefan Kost + + Define GstElementDetails as const and also static (when defined as global) + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafparse.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/audioresample/gstaudioresample.c: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2enc.c: + * ext/cdaudio/gstcdaudio.c: + * ext/directfb/dfbvideosink.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init): + * ext/faac/gstfaac.c: (gst_faac_base_init): + * ext/faad/gstfaad.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbisfile.c: + * ext/lcs/gstcolorspace.c: + * ext/libfame/gstlibfame.c: + * ext/libmms/gstmms.c: (gst_mms_base_init): + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init): + * ext/nas/nassink.c: (gst_nassink_base_init): + * ext/neon/gstneonhttpsrc.c: + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsf.c: + * ext/swfdec/gstswfdec.c: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkinenc.c: + * ext/theora/theoradec.c: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init): + * gst/chart/gstchart.c: + * gst/colorspace/gstcolorspace.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init): + * gst/festival/gstfestival.c: + * gst/filter/gstbpwsinc.c: + * gst/filter/gstiir.c: + * gst/filter/gstlpwsinc.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: (gst_puzzle_base_init): + * gst/librfb/gstrfbsrc.c: + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg1sys/gstmpeg1systemencode.c: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpeg2sub/gstmpeg2subt.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/multifilesink/gstmultifilesink.c: + * gst/overlay/gstoverlay.c: + * gst/passthrough/gstpassthrough.c: + * gst/playondemand/gstplayondemand.c: + * gst/qtdemux/qtdemux.c: + * gst/rtjpeg/gstrtjpegdec.c: + * gst/rtjpeg/gstrtjpegenc.c: + * gst/smooth/gstsmooth.c: + * gst/smoothwave/gstsmoothwave.c: + * gst/spectrum/gstspectrum.c: + * gst/speed/gstspeed.c: + * gst/stereo/gststereo.c: + * gst/switch/gstswitch.c: + * gst/tta/gstttadec.c: (gst_tta_dec_base_init): + * gst/tta/gstttaparse.c: (gst_tta_parse_base_init): + * gst/vbidec/gstvbidec.c: + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/virtualdub/gstxsharpen.c: + * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init): + * gst/y4m/gsty4mencode.c: + * sys/cdrom/gstcdplayer.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/glsink/glimagesink.c: + * sys/qcam/gstqcamsrc.c: + * sys/v4l2/gstv4l2src.c: + * sys/vcd/vcdsrc.c: (gst_vcdsrc_base_init): + * sys/ximagesrc/ximagesrc.c: + Define GstElementDetails as const and also static (when defined as + global) + +2006-04-20 18:02:07 +0000 Tim-Philipp Müller + + ext/musepack/gstmusepackdec.c: Add support for segment seeks. + Original commit message from CVS: + * ext/musepack/gstmusepackdec.c: + (gst_musepackdec_handle_seek_event), (gst_musepackdec_loop): + Add support for segment seeks. + +2006-04-20 17:29:56 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Added a couple of ifdefs to make it compile with other kernels. + Original commit message from CVS: + Added a couple of ifdefs to make it compile with other kernels. + +2006-04-20 09:48:05 +0000 j^ + + gst/qtdemux/qtdemux.c: Never treat video streams as an audio stream. + Original commit message from CVS: + Patch by: j^ + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), + (qtdemux_video_caps): + Never treat video streams as an audio stream. + Add qtdrw mime type. + Fixes #339041 + +2006-04-19 09:27:00 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: For VBR audio, don't try to calculate the samples_per_frame. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + For VBR audio, don't try to calculate the samples_per_frame. + Fixes #338935. + +2006-04-17 19:43:32 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Just added a gtk-doc comment. + Original commit message from CVS: + Just added a gtk-doc comment. + +2006-04-17 18:44:48 +0000 Michael Smith + + ext/theora/theoradec.*: Apply fix from j^ for API change in libtheoradec. + Original commit message from CVS: + * ext/theora/theoradec.c: (theora_dec_src_convert), + (theora_handle_type_packet), (theora_handle_422_image), + (theora_handle_420_image), (theora_handle_data_packet): + * ext/theora/theoradec.h: + Apply fix from j^ for API change in libtheoradec. + Implement 4:2:2 pixel format. Untested at the moment. + +2006-04-14 13:12:58 +0000 Tim-Philipp Müller + + ext/musepack/gstmusepackdec.c: Fix track/album peak tag values; use GST_DEBUG_FUNCPTR and gst_pad_new_from_static_tem... + Original commit message from CVS: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_init), + (gst_musepack_stream_init): + Fix track/album peak tag values; use GST_DEBUG_FUNCPTR and + gst_pad_new_from_static_template(). + +2006-04-13 21:45:57 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/v4l2src_calls.c: + Fixed some memory leaks. + Original commit message from CVS: + Fixed some memory leaks. + +2006-04-12 21:57:02 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/gstv4l2src.c: + Fix to work in read mode. + Original commit message from CVS: + Fix to work in read mode. + +2006-04-11 16:18:13 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fix versioning macro and add translation files + Original commit message from CVS: + fix versioning macro and add translation files + +2006-04-10 17:16:09 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Fix parsing of newer stsd chunks again. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Fix parsing of newer stsd chunks again. + +2006-04-10 14:20:41 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Fix framerate calculation. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), + (qtdemux_parse_trak): + Fix framerate calculation. + +2006-04-10 13:58:17 +0000 Tim-Philipp Müller + + ext/swfdec/gstswfdec.c: Fix build (class_init declaration/definition mismatch). + Original commit message from CVS: + * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init): + Fix build (class_init declaration/definition mismatch). + +2006-04-10 08:31:40 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: force mono 8000 Hz on AMR samples. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + force mono 8000 Hz on AMR samples. + +2006-04-09 18:30:51 +0000 Sébastien Moutte + + ext/neon/gstneonhttpsrc.c: remove atoll by using g_ascii_strtoull (atoll is not supported on WIN32) + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_start): + remove atoll by using g_ascii_strtoull (atoll is not supported on WIN32) + * sys/directdraw/gstdirectdrawsink.c: + * sys/directsound/gstdirectsoundsink.c: + done some cleans in sources + * win32/vs6: + add project files for neon, qtdemux + +2006-04-09 17:14:22 +0000 Sébastien Moutte + + gst/audioresample/debug.h: replace debug macros with variable number of parameters by a simple alias to gstreamer sta... + Original commit message from CVS: + * gst/audioresample/debug.h: + replace debug macros with variable number of parameters + by a simple alias to gstreamer standard debug macros + (#define RESAMPLE_ERROR GST_ERROR, __VA_ARGS__ is not + supported by MSVC 6.0 and 7.1) + * gst/audioresample/resample.h: + define M_PI and rint for WIN32 + * win32/common/libgstaudio.def: + * win32/common/libgstriff.def: + * win32/common/libgsttag.def: + * win32/common/libgstvideo.def: + add new exported functions + * win32/vs6: + update project files + +2006-04-08 21:48:01 +0000 Stefan Kost + + Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent) + Original commit message from CVS: + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_class_init): + * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_class_init): + * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_class_init): + * ext/arts/gst_arts.c: (gst_arts_class_init): + * ext/artsd/gstartsdsink.c: (gst_artsdsink_class_init): + * ext/audiofile/gstafsink.c: (gst_afsink_class_init): + * ext/audiofile/gstafsrc.c: (gst_afsrc_class_init): + * ext/audioresample/gstaudioresample.c: + * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init): + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_class_init): + * ext/divx/gstdivxdec.c: (gst_divxdec_class_init): + * ext/hermes/gsthermescolorspace.c: + (gst_hermes_colorspace_class_init): + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_class_init): + * ext/jack/gstjack.c: (gst_jack_class_init): + * ext/jack/gstjackbin.c: (gst_jack_bin_class_init): + * ext/lcs/gstcolorspace.c: (gst_colorspace_class_init): + * ext/libfame/gstlibfame.c: (gst_fameenc_class_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init): + * ext/nas/nassink.c: (gst_nassink_class_init): + * ext/shout/gstshout.c: (gst_icecastsend_class_init): + * ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init): + * ext/sndfile/gstsf.c: (gst_sf_class_init): + * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_class_init), + (gst_swfdec_class_init): + * ext/tarkin/gsttarkindec.c: (gst_tarkindec_class_init): + * ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_class_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_class_init): + * gst/chart/gstchart.c: (gst_chart_class_init): + * gst/colorspace/gstcolorspace.c: (gst_colorspace_class_init): + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_class_init): + * gst/festival/gstfestival.c: (gst_festival_class_init): + * gst/filter/gstbpwsinc.c: (gst_bpwsinc_class_init): + * gst/filter/gstiir.c: (gst_iir_class_init): + * gst/filter/gstlpwsinc.c: (gst_lpwsinc_class_init): + * gst/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init): + * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_class_init): + * gst/mpeg1sys/gstmpeg1systemencode.c: + (gst_system_encode_class_init): + * gst/mpeg1videoparse/gstmp1videoparse.c: + (gst_mp1videoparse_class_init): + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_class_init): + * gst/mpegaudioparse/gstmpegaudioparse.c: + (gst_mp3parse_class_init): + * gst/overlay/gstoverlay.c: (gst_overlay_class_init): + * gst/passthrough/gstpassthrough.c: (passthrough_class_init): + * gst/playondemand/gstplayondemand.c: (play_on_demand_class_init): + * gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_class_init): + * gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_class_init): + * gst/smooth/gstsmooth.c: (gst_smooth_class_init): + * gst/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init): + * gst/spectrum/gstspectrum.c: (gst_spectrum_class_init): + * gst/stereo/gststereo.c: (gst_stereo_class_init): + * gst/switch/gstswitch.c: (gst_switch_class_init): + * gst/tta/gstttadec.c: (gst_tta_dec_class_init): + * gst/tta/gstttaparse.c: (gst_tta_parse_class_init): + * gst/vbidec/gstvbidec.c: (gst_vbidec_class_init): + * gst/videocrop/gstvideocrop.c: (gst_video_crop_class_init): + * gst/virtualdub/gstxsharpen.c: (gst_xsharpen_class_init): + * gst/y4m/gsty4mencode.c: (gst_y4mencode_class_init): + * sys/cdrom/gstcdplayer.c: (cdplayer_class_init): + * sys/directsound/gstdirectsoundsink.c: + (gst_directsoundsink_class_init): + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_class_init): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_class_init): + * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_class_init): + * sys/v4l2/gstv4l2colorbalance.c: + (gst_v4l2_color_balance_channel_class_init): + * sys/v4l2/gstv4l2tuner.c: (gst_v4l2_tuner_channel_class_init), + (gst_v4l2_tuner_norm_class_init): + * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_class_init): + Fix #337365 (g_type_class_ref <-> g_type_class_peek_parent) + +2006-04-08 19:04:01 +0000 Stefan Kost + + gst/: Fix more broken GObject macros + Original commit message from CVS: + * gst/colorspace/gstcolorspace.h: + * gst/deinterlace/gstdeinterlace.h: + * gst/passthrough/gstpassthrough.h: + * gst/y4m/gsty4mencode.h: + Fix more broken GObject macros + +2006-04-08 18:41:07 +0000 Stefan Kost + + Fix broken GObject macros + Original commit message from CVS: + * ext/xine/gstxine.h: + * gst-libs/gst/play/play.h: + * sys/v4l2/gstv4l2element.h: + * sys/ximagesrc/ximageutil.h: + Fix broken GObject macros + +2006-04-08 18:25:55 +0000 Stefan Kost + + Fix broken GObject macros + Original commit message from CVS: + * ext/annodex/gstcmmldec.h: + * ext/annodex/gstcmmlenc.h: + * ext/annodex/gstcmmltag.h: + * ext/cairo/gsttextoverlay.h: + * ext/ladspa/gstsignalprocessor.h: + * gst/matroska/ebml-read.h: + * gst/matroska/ebml-write.h: + * sys/osxaudio/gstosxaudioelement.h: + Fix broken GObject macros + +2006-04-08 18:23:04 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Don't make rounding errors in timestamp/duration calculations. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_prepare_current_sample), + (gst_qtdemux_chain), (gst_qtdemux_add_stream), (qtdemux_dump_stsz), + (qtdemux_dump_stco), (qtdemux_parse_trak): + Don't make rounding errors in timestamp/duration calculations. + Fix timestamps for AMR and IMA4. Fixes (#337436). + Create a dummy segment even when there is no edit list. + +2006-04-07 16:59:15 +0000 Julien Moutte + + docs/plugins/gst-plugins-bad-plugins-decl-list.txt: Updates. + Original commit message from CVS: + 2006-04-07 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: Updates. + * examples/directfb/Makefile.am: Add example resource files to + dist. + +2006-04-07 15:53:43 +0000 Zaheer Abbas Merali + + Typo fix, s/XFree86/X11 and added doc blurb saying that it fixates to 25fps + Original commit message from CVS: + 2006-04-07 Zaheer Abbas Merali + * ext/amrwb/amrwb-code/Makefile.am: + * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc), + (gst_ximagesrc_create), (gst_ximagesrc_set_property): + Typo fix, s/XFree86/X11 and added doc blurb saying that it fixates to + 25fps + +2006-04-07 15:47:27 +0000 Zaheer Abbas Merali + + tests/icles/ximagesrc-test.c: Actually assert that pipeline goes to playing + Original commit message from CVS: + 2006-04-07 Zaheer Abbas Merali + * tests/icles/ximagesrc-test.c: (main): + Actually assert that pipeline goes to playing + +2006-04-07 15:27:40 +0000 Zaheer Abbas Merali + + sys/ximagesrc/ximagesrc.c: Fix typo, C++ style comments and other small cleanups + Original commit message from CVS: + 2006-04-07 Zaheer Abbas Merali + * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_recalc), + (composite_pixel), (gst_ximagesrc_ximage_get), + (gst_ximagesrc_create), (gst_ximagesrc_set_property): + Fix typo, C++ style comments and other small cleanups + +2006-04-06 19:16:02 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Added full edit list support. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_handle_src_query), (gst_qtdemux_find_index), + (gst_qtdemux_find_keyframe), (gst_qtdemux_find_segment), + (gst_qtdemux_move_stream), (gst_qtdemux_perform_seek), + (gst_qtdemux_do_seek), (gst_qtdemux_change_state), + (gst_qtdemux_activate_segment), + (gst_qtdemux_prepare_current_sample), (gst_qtdemux_advance_sample), + (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), + (qtdemux_parse_trak): + Added full edit list support. + Avoid overflows in prologue image detection code. + Avoid roundoff errors in timestamp calculations. + +2006-04-06 14:20:27 +0000 Thomas Vander Stichele + + * ext/Makefile.am: + * ext/xine/Makefile.am: + more distcheck fixes + Original commit message from CVS: + more distcheck fixes + +2006-04-06 14:08:08 +0000 Thomas Vander Stichele + + configure.ac: clean up so report properly on missing stuff fix modplug detection + Original commit message from CVS: + * configure.ac: + clean up so report properly on missing stuff + fix modplug detection + +2006-04-06 12:52:22 +0000 Thomas Vander Stichele + + ext/: don't dist amr wb source code + Original commit message from CVS: + * ext/Makefile.am: + * ext/amrwb/amrwb-code/Makefile.am: + don't dist amr wb source code + +2006-04-06 11:35:26 +0000 j^ + + Unify the long descriptions in the plugin details (#337263). + Original commit message from CVS: + Patch by: j^ + * ext/amrwb/gstamrwbdec.c: + * ext/amrwb/gstamrwbenc.c: + * ext/amrwb/gstamrwbparse.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafparse.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/cdaudio/gstcdaudio.c: + * ext/directfb/dfbvideosink.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init): + * ext/faac/gstfaac.c: (gst_faac_base_init): + * ext/faad/gstfaad.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmenc.c: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbisfile.c: + * ext/lcs/gstcolorspace.c: + * ext/libfame/gstlibfame.c: + * ext/libmms/gstmms.c: (gst_mms_base_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init): + * ext/nas/nassink.c: (gst_nassink_base_init): + * ext/neon/gstneonhttpsrc.c: + * ext/polyp/polypsink.c: (gst_polypsink_base_init): + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsf.c: + * ext/tarkin/gsttarkindec.c: + * ext/tarkin/gsttarkinenc.c: + * ext/theora/theoradec.c: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_base_init): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init): + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxa_parse_base_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_base_init): + * gst/chart/gstchart.c: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_base_init): + * gst/festival/gstfestival.c: + * gst/filter/gstiir.c: + * gst/filter/gstlpwsinc.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: (gst_puzzle_base_init): + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg1sys/gstmpeg1systemencode.c: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpeg2sub/gstmpeg2subt.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/multifilesink/gstmultifilesink.c: + * gst/overlay/gstoverlay.c: + * gst/passthrough/gstpassthrough.c: + * gst/playondemand/gstplayondemand.c: + * gst/qtdemux/qtdemux.c: + * gst/rtjpeg/gstrtjpegdec.c: + * gst/rtjpeg/gstrtjpegenc.c: + * gst/smooth/gstsmooth.c: + * gst/tta/gstttadec.c: (gst_tta_dec_base_init): + * gst/tta/gstttaparse.c: (gst_tta_parse_base_init): + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/virtualdub/gstxsharpen.c: + * gst/xingheader/gstxingmux.c: (gst_xing_mux_base_init): + * gst/y4m/gsty4mencode.c: + Unify the long descriptions in the plugin details (#337263). + +2006-04-06 09:37:21 +0000 Tim-Philipp Müller + + ext/neon/gstneonhttpsrc.c: Add back "uri" property and mark it as deprecated; undoes + Original commit message from CVS: + * ext/neon/gstneonhttpsrc.c: (gst_neonhttp_src_class_init), + (gst_neonhttp_src_set_property), (gst_neonhttp_src_get_property): + Add back "uri" property and mark it as deprecated; undoes + API/ABI breakage from 2006-02-24. + +2006-04-05 08:36:55 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: Use duration as segment stop position if none is explicitly configured. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_perform_seek), + (gst_qtdemux_do_seek), (gst_qtdemux_loop_state_movie), + (gst_qtdemux_loop): + Use duration as segment stop position if none is + explicitly configured. + Also perform EOS when we run past the segment stop. + +2006-04-04 11:20:58 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: More cleanups, added comments. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_go_back), + (gst_qtdemux_perform_seek), (gst_qtdemux_do_seek), + (gst_qtdemux_loop_state_movie), (gst_qtdemux_loop), + (gst_qtdemux_chain), (qtdemux_parse_tree), (qtdemux_parse_trak): + More cleanups, added comments. + Mark discontinuities on outgoing buffers. + Post better errors when something goes wrong. + Handle EOS and segment end properly. + +2006-04-04 08:40:52 +0000 Wim Taymans + + * ChangeLog: + Mark latest change as fixing a bug. + Original commit message from CVS: + Mark latest change as fixing a bug. + +2006-04-04 08:31:10 +0000 Wim Taymans + + gst/qtdemux/qtdemux.*: Handle stss boxes so we can mark and find keyframes. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_push_event), (gst_qtdemux_go_back), + (gst_qtdemux_perform_seek), (gst_qtdemux_do_seek), + (gst_qtdemux_handle_src_event), (plugin_init), + (gst_qtdemux_change_state), (gst_qtdemux_loop_state_movie), + (gst_qtdemux_loop), (gst_qtdemux_chain), + (qtdemux_sink_activate_pull), (gst_qtdemux_add_stream), + (qtdemux_parse), (qtdemux_parse_tree), (qtdemux_parse_trak), + (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num), + (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds): + * gst/qtdemux/qtdemux.h: + Handle stss boxes so we can mark and find keyframes. + Implement correct accurate and keyframe seeking. + Use _DEBUG_OBJECT when possible. + +2006-04-03 11:08:44 +0000 Tim-Philipp Müller + + tests/check/Makefile.am: Only run the id3v2mux check if taglib is available and the taglib plugin has been built. + Original commit message from CVS: + * tests/check/Makefile.am: + Only run the id3v2mux check if taglib is available and + the taglib plugin has been built. + +2006-04-03 10:57:18 +0000 Tim-Philipp Müller + + ext/swfdec/Makefile.am: Don't set plugindir. + Original commit message from CVS: + * ext/swfdec/Makefile.am: + Don't set plugindir. + * ext/swfdec/gstswfdec.c: + GST_PLUGIN_DEFINE_STATIC isn't a good idea for installed plugins. + +2006-04-03 10:51:54 +0000 Tim-Philipp Müller + + configure.ac: Add AX_CREATE_STDINT_H to create _stdint.h, needed by the dts plugin. + Original commit message from CVS: + * configure.ac: + Add AX_CREATE_STDINT_H to create _stdint.h, needed by + the dts plugin. + +2006-04-03 10:34:54 +0000 Tim-Philipp Müller + + GST_ORIGIN => GST_PACKAGE_ORIGIN + Original commit message from CVS: + * ext/soundtouch/gstpitch.cc: + * ext/theora/theoradec.c: + * gst/modplug/gstmodplug.cc: + GST_ORIGIN => GST_PACKAGE_ORIGIN + GST_PACKAGE => GST_PACKAGE_NAME + +2006-04-02 10:42:32 +0000 Thomas Vander Stichele + + docs/plugins/: add more plugins to docs + Original commit message from CVS: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-bz2.xml: + * docs/plugins/inspect/plugin-cdxaparse.xml: + * docs/plugins/inspect/plugin-freeze.xml: + * docs/plugins/inspect/plugin-glimagesink.xml: + * docs/plugins/inspect/plugin-modplug.xml: + * docs/plugins/inspect/plugin-neon.xml: + * docs/plugins/inspect/plugin-sdl.xml: + * docs/plugins/inspect/plugin-video4linux2.xml: + * docs/plugins/inspect/plugin-ximagesrc.xml: + * docs/plugins/inspect/plugin-xingheader.xml: + add more plugins to docs + +2006-04-02 09:33:12 +0000 Thomas Vander Stichele + + * configure.ac: + the alphabet, a tricky concept + Original commit message from CVS: + the alphabet, a tricky concept + +2006-04-02 09:17:23 +0000 Thomas Vander Stichele + + * configure.ac: + add liboil check, dts uses it + Original commit message from CVS: + add liboil check, dts uses it + +2006-04-01 16:50:49 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-taglib.xml: + * docs/plugins/inspect/plugin-tta.xml: + * ext/taglib/gsttaglib.cc: + * sys/dxr3/ac3_padder.h: + * tests/Makefile.am: + * tests/check/.gitignore: + * tests/check/Makefile.am: + * tests/check/elements/.gitignore: + * tests/check/elements/tagid3v2mux.c: + add taglib checks and docs + Original commit message from CVS: + add taglib checks and docs + +2006-04-01 15:36:25 +0000 Thomas Vander Stichele + + * common: + * configure.ac: + don't use AS_LIBTOOL_TAGS, it doesn't work + Original commit message from CVS: + don't use AS_LIBTOOL_TAGS, it doesn't work + +2006-04-01 10:16:28 +0000 Thomas Vander Stichele + + * .gitignore: + * docs/.gitignore: + * docs/plugins/.gitignore: + ignore more + Original commit message from CVS: + ignore more + +2006-04-01 10:15:33 +0000 Thomas Vander Stichele + + * tests/icles/ximagesrc-test.c: + 5 second timeout + Original commit message from CVS: + 5 second timeout + +2006-04-01 10:14:26 +0000 Thomas Vander Stichele + + * tests/icles/.gitignore: + * tests/icles/Makefile.am: + * tests/icles/ximagesrc-test.c: + rename test + Original commit message from CVS: + rename test + +2006-04-01 10:09:11 +0000 Thomas Vander Stichele + + * ChangeLog: + * Makefile.am: + * common: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * ext/amrwb/gstamrwb.c: + * ext/arts/gst_arts.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstaf.c: + * ext/audioresample/gstaudioresample.c: + * ext/bz2/gstbz2.c: + * ext/cdaudio/gstcdaudio.c: + * ext/directfb/dfbvideosink.c: + * ext/dts/gstdtsdec.c: + * ext/faac/gstfaac.c: + * ext/faad/gstfaad.c: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbis.c: + * ext/jack/gstjack.c: + * ext/lcs/gstcolorspace.c: + * ext/musepack/gstmusepackdec.c: + * ext/musicbrainz/gsttrm.c: + * ext/nas/nassink.c: + * ext/sdl/gstsdl.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsf.c: + * ext/swfdec/gstswfdec.c: + * ext/tarkin/gsttarkin.c: + * ext/xine/xine.c: + * ext/xvid/gstxvid.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/chart/gstchart.c: + * gst/colorspace/gstcolorspace.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/equalizer/gstiirequalizer.c: + * gst/festival/gstfestival.c: + * gst/filter/gstfilter.c: + * gst/freeze/gstfreeze.c: + * gst/games/gstpuzzle.c: + * gst/librfb/gstrfbsrc.c: + * gst/mixmatrix/mixmatrix.c: + * gst/mpeg1sys/gstmpeg1systemencode.c: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpeg2sub/gstmpeg2subt.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/multifilesink/gstmultifilesink.c: + * gst/overlay/gstoverlay.c: + * gst/passthrough/gstpassthrough.c: + * gst/playondemand/gstplayondemand.c: + * gst/qtdemux/qtdemux.c: + * gst/rtjpeg/gstrtjpeg.c: + * gst/smooth/gstsmooth.c: + * gst/smoothwave/gstsmoothwave.c: + * gst/spectrum/gstspectrum.c: + * gst/speed/gstspeed.c: + * gst/stereo/gststereo.c: + * gst/switch/gstswitch.c: + * gst/vbidec/gstvbidec.c: + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/virtualdub/gstvirtualdub.c: + * gst/xingheader/gstxingmux.c: + * gst/y4m/gsty4mencode.c: + * po/POTFILES.in: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * sys/cdrom/gstcdplayer.c: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directsound/gstdirectsoundplugin.c: + * sys/dxr3/dxr3init.c: + * sys/glsink/glimagesink.c: + * sys/qcam/gstqcamsrc.c: + * sys/v4l2/gstv4l2.c: + * sys/vcd/vcdsrc.c: + * sys/ximagesrc/ximagesrc.c: + rework build; add translations for v4l2 + Original commit message from CVS: + rework build; add translations for v4l2 + +2006-03-31 17:52:36 +0000 Zaheer Abbas Merali + + Add tests and fix PAR caps issue to ximagesrc + Original commit message from CVS: + 2006-03-31 Zaheer Abbas Merali + * Makefile.am: + * configure.ac: + * sys/ximagesrc/ximagesrc.c: + (gst_ximagesrc_ximage_get), + (gst_ximagesrc_get_caps), (gst_ximagesrc_class_init): + * sys/ximagesrc/ximageutil.c: + * tests/Makefile.am: + * tests/icles/Makefile.am: + * tests/icles/ximagesrc-test.c: (terminate_playback), (main): + Add tests and fix PAR caps issue to ximagesrc + +2006-03-31 16:32:47 +0000 Zaheer Abbas Merali + + sys/ximagesrc/ximagesrc.c: Add docs to ximagesrc + Original commit message from CVS: + 2006-03-31 Zaheer Abbas Merali + * sys/ximagesrc/ximagesrc.c: + Add docs to ximagesrc + +2006-03-31 15:21:35 +0000 Zaheer Abbas Merali + + sys/ximagesrc/: Fix ximagesrc so a) the cursor doesnt trail and b) there are no yellow rectangles with the cursor + Original commit message from CVS: + 2006-03-31 Zaheer Abbas Merali + * sys/ximagesrc/ximagesrc.c: (composite_pixel), + (gst_ximagesrc_ximage_get), (gst_ximagesrc_set_property), + (gst_ximagesrc_get_caps), (gst_ximagesrc_class_init): + * sys/ximagesrc/ximagesrc.h: + * sys/ximagesrc/ximageutil.c: (ximageutil_xcontext_get): + * sys/ximagesrc/ximageutil.h: + Fix ximagesrc so a) the cursor doesnt trail and b) there are no + yellow rectangles with the cursor + +2006-03-31 14:26:05 +0000 Michael Smith + + configure.ac: Add autoconfery for theoradec. + Original commit message from CVS: + * configure.ac: + Add autoconfery for theoradec. + * ext/Makefile.am: + Add theora directory. + * ext/theora/Makefile.am: + * ext/theora/theoradec.c: (gst_theoradec_base_init), + (gst_theoradec_class_init), (gst_theoradec_init), + (gst_theoradec_reset), (inc_granulepos), (theora_get_query_types), + (gst_theoradec_granule_clocktime), (theora_dec_src_convert), + (theora_dec_sink_convert), (theora_dec_src_query), + (theora_dec_sink_query), (theora_dec_src_event), + (theora_dec_sink_event), (theora_handle_comment_packet), + (theora_handle_type_packet), (theora_handle_header_packet), + (theora_dec_push), (theora_handle_data_packet), (theora_dec_chain), + (theora_dec_change_state), (plugin_init): + * ext/theora/theoradec.h: + Add theora plugin for theora-exp decoder. Very heavily based on the + existing theora decoder plugin. + +2006-03-29 16:54:12 +0000 Wim Taymans + + ext/gsm/: Cleanups, fix leaks. + Original commit message from CVS: + * ext/gsm/gstgsmdec.c: (gst_gsmdec_class_init), (gst_gsmdec_init), + (gst_gsmdec_finalize), (gst_gsmdec_sink_event), (gst_gsmdec_chain): + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init), (gst_gsmenc_init), + (gst_gsmenc_finalize), (gst_gsmenc_chain): + Cleanups, fix leaks. + Handle events and DISCONT. + Use adapter in the decoder. + +2006-03-29 16:50:08 +0000 Renato Araujo Oliveira Filho + + Added new plugin amrwb parse. + Original commit message from CVS: + Patch by: Renato Araujo Oliveira Filho + * configure.ac: + * ext/Makefile.am: + * ext/amrwb/Makefile.am: + * ext/amrwb/README: + * ext/amrwb/amrwb-code/Makefile.am: + * ext/amrwb/amrwb-code/run.sh: + * ext/amrwb/gstamrwb.c: (plugin_init): + * ext/amrwb/gstamrwbdec.c: (gst_amrwbdec_base_init), + (gst_amrwbdec_class_init), (gst_amrwbdec_init), + (gst_amrwbdec_setcaps), (gst_amrwbdec_event), (gst_amrwbdec_chain), + (gst_amrwbdec_state_change): + * ext/amrwb/gstamrwbdec.h: + * ext/amrwb/gstamrwbenc.c: (gst_amrwbenc_base_init), + (gst_amrwbenc_class_init), (gst_amrwbenc_init), + (gst_amrwbenc_finalize), (gst_amrwbenc_setcaps), + (gst_amrwbenc_chain), (gst_amrwbenc_state_change): + * ext/amrwb/gstamrwbenc.h: + * ext/amrwb/gstamrwbparse.c: (gst_amrwbparse_base_init), + (gst_amrwbparse_class_init), (gst_amrwbparse_init), + (gst_amrwbparse_querytypes), (gst_amrwbparse_query), + (gst_amrwbparse_chain), (gst_amrwbparse_read_header), + (gst_amrwbparse_loop), (gst_amrwbparse_sink_activate), + (gst_amrwbparse_sink_activate_pull), (gst_amrwbparse_state_change): + * ext/amrwb/gstamrwbparse.h: + Added new plugin amrwb parse. + Renamed audio/AMR to audio/AMR-WB as per spec. + Fixes #333307 + +2006-03-27 17:06:45 +0000 Edgard Lima + + * ChangeLog: + * sys/v4l2/v4l2src_calls.c: + Small fix, now pwc driver can tell about its buffers. + Original commit message from CVS: + Small fix, now pwc driver can tell about its buffers. + +2006-03-27 10:13:47 +0000 Tim-Philipp Müller + + configure.ac: Remove CXX tag from AS_LIBTOOL_TAGS, just like we did for -good and -ugly. Fixes build on some systems ... + Original commit message from CVS: + * configure.ac: + Remove CXX tag from AS_LIBTOOL_TAGS, just like we + did for -good and -ugly. Fixes build on some systems + and doesn't seem to be required for C++ code. + +2006-03-26 19:56:37 +0000 Tim-Philipp Müller + + ext/taglib/gsttaglib.*: Fix newsegment event handling a bit. We need to cache the first newsegment event, because we ... + Original commit message from CVS: + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: + Fix newsegment event handling a bit. We need to + cache the first newsegment event, because we can't + adjust offsets yet when we get it, as we don't + know the size of the tag yet for sure at that point. + Also do some minor cleaning up here and there and add + some debug statements. + +2006-03-25 21:57:24 +0000 Tim-Philipp Müller + + ext/taglib/gsttaglib.cc: We do not want to proxy the caps on the sink pad; our source pad should have application/x-i... + Original commit message from CVS: + * ext/taglib/gsttaglib.cc: + We do not want to proxy the caps on the sink pad; our + source pad should have application/x-id3 caps; also, + don't use already-freed strings in debug messages; + finally, adjust buffer offsets on buffers sent out. + +2006-03-25 13:02:55 +0000 Tim-Philipp Müller + + sys/v4l2/gstv4l2src.c: Older kernels don't seem to have this particular v4l2 format, so comment out until this gets f... + Original commit message from CVS: + * sys/v4l2/gstv4l2src.c: + Older kernels don't seem to have this particular v4l2 format, + so comment out until this gets fixed properly (and make + buildbots happy). + +2006-03-25 05:31:28 +0000 Edgard Lima + + * ChangeLog: + * common: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2element.c: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + Just make few things more robust and also some identation. + Original commit message from CVS: + Just make few things more robust and also some identation. + +2006-03-23 09:15:09 +0000 Mark Nauwelaerts + + ext/xvid/gstxvidenc.c: Patch to mark outgoing encoded buffers as delta-units (or not). + Original commit message from CVS: + Patch by: Mark Nauwelaerts + * ext/xvid/gstxvidenc.c: (gst_xvidenc_init), (gst_xvidenc_setup), + (gst_xvidenc_chain): + Patch to mark outgoing encoded buffers as delta-units (or not). + Note that this patch also patches: + - the setting of fincr and fbase in xvid-encoder creation based on + caps framerate + - makes 0, rather than 2, the default max_b_frames, as the current + xvidenc does not seem "fully prepared" to handle b-frame + "effects", such as encoder returning 0 encoded bytes, etc. + Fixes #335585 + +2006-03-22 19:51:29 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add latest plugins additions + Original commit message from CVS: + add latest plugins additions + +2006-03-22 17:13:32 +0000 Tim-Philipp Müller + + gst/modplug/libmodplug/: Try that again (not only should it be MODPLUG_ instead of MODFILE, also that define is alrea... + Original commit message from CVS: + * gst/modplug/libmodplug/Makefile.am: + * gst/modplug/libmodplug/load_it.cpp: + Try that again (not only should it be MODPLUG_ instead + of MODFILE, also that define is already set in stdafx.h; + what we really need is some more #ifndefs). + +2006-03-22 15:02:58 +0000 Tim-Philipp Müller + + gst/modplug/libmodplug/Makefile.am: More gcc-4.1 fixes (we don't need file saving, so just define MODPLUG_NO_FILESAVE... + Original commit message from CVS: + * gst/modplug/libmodplug/Makefile.am: + More gcc-4.1 fixes (we don't need file saving, so just + define MODPLUG_NO_FILESAVE. That way, the compiler won't + complain about modplug ignoring the return value of fwrite + any longer and we might even save a few bytes as well). + +2006-03-22 14:31:47 +0000 Wouter Paeson + + Add new libsoundtouch-based pitch plugin (#331335). + Original commit message from CVS: + Patch by: Wouter Paeson + * configure.ac: + * ext/Makefile.am: + * ext/soundtouch/Makefile.am: + * ext/soundtouch/gstpitch.cc: + * ext/soundtouch/gstpitch.hh: + Add new libsoundtouch-based pitch plugin (#331335). + +2006-03-21 16:02:09 +0000 Tim-Philipp Müller + + gst/modplug/libmodplug/load_ptm.cpp: Fix compilation with gcc-4.1 and -Werror (#327355). + Original commit message from CVS: + * gst/modplug/libmodplug/load_ptm.cpp: + Fix compilation with gcc-4.1 and -Werror (#327355). + +2006-03-20 08:59:29 +0000 Tim-Philipp Müller + + ext/taglib/gsttaglib.h: Fix left-over gst_my_filter_get_type. + Original commit message from CVS: + * ext/taglib/gsttaglib.h: + Fix left-over gst_my_filter_get_type. + +2006-03-17 16:34:36 +0000 Zaheer Abbas Merali + + * ChangeLog: + * sys/ximagesrc/ximagesrc.c: + Have a show mouse pointer property and use it if we can + Original commit message from CVS: + Have a show mouse pointer property and use it if we can + +2006-03-15 15:08:20 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Let's not forget to chain up to the parent dispose. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_dispose): + Let's not forget to chain up to the parent dispose. + +2006-03-15 14:39:25 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Series of memleak fixes: + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init), + (gst_qtdemux_init), (gst_qtdemux_dispose), + (gst_qtdemux_add_stream), (qtdemux_parse_trak): + Series of memleak fixes: + - Unref the GstAdapter in finalize. + - Use gst_pad_new_from_static_template(), shorter and safer. + - Free unused QtDemuxStream when not used. + +2006-03-14 17:24:03 +0000 Edward Hervey + + sys/v4l2/gstv4l2src.c: Initialization of the debugging category should be as early as possible, moving it from _class... + Original commit message from CVS: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_base_init), + (gst_v4l2src_class_init): + Initialization of the debugging category should be as early as possible, + moving it from _class_init() to beginning of _base_init(). + +2006-03-13 17:22:19 +0000 Tim-Philipp Müller + + ext/taglib/gsttaglib.cc: Add gtk-doc blurb (unused for the time being); match registered plugin name to the filename ... + Original commit message from CVS: + * ext/taglib/gsttaglib.cc: + Add gtk-doc blurb (unused for the time being); match registered + plugin name to the filename of the plugin (taglibmux => taglib) + +2006-03-13 12:14:18 +0000 Mikhail Zabaluev + + autogen.sh: Don't check for file that only exists in CVS but isn't disted (#334417) + Original commit message from CVS: + Patch by: Mikhail Zabaluev + * autogen.sh: + Don't check for file that only exists in CVS but isn't + disted (#334417) + +2006-03-13 10:05:09 +0000 Julien Moutte + + Fix build of v4l2 (sigh) + Original commit message from CVS: + 2006-03-13 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * sys/v4l2/Makefile.am: Fix build of v4l2 (sigh) + +2006-03-12 23:56:47 +0000 Tim-Philipp Müller + + Fix distcheck. + Original commit message from CVS: + * Makefile.am: + * configure.ac: + Fix distcheck. + +2006-03-12 15:33:00 +0000 Edward Hervey + + sys/v4l2/v4l2src_calls.c: g_atomic_int_set is only available in glib-0.10, use gst_atomic_int_et instead. + Original commit message from CVS: + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init), + (gst_v4l2src_buffer_pool_free): + g_atomic_int_set is only available in glib-0.10, use gst_atomic_int_et + instead. + +2006-03-12 15:25:51 +0000 Edward Hervey + + sys/v4l2/gstv4l2element.h: Remove tim's addition of "_stdint.h" since it doesn't make the PPC buildbot happy. + Original commit message from CVS: + * sys/v4l2/gstv4l2element.h: + Remove tim's addition of "_stdint.h" since it doesn't make the PPC + buildbot happy. + I will just use the same comment Ronald used when he added these lines: + Yet Another Hack (tm) for kernel header borkedness. + +2006-03-12 15:02:02 +0000 Tim-Philipp Müller + + ext/taglib/: Add support for writing MusicBrainz IDs. + Original commit message from CVS: + * ext/taglib/Makefile.am: + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: + Add support for writing MusicBrainz IDs. + +2006-03-12 14:43:57 +0000 Tim-Philipp Müller + + sys/v4l2/gstv4l2element.h: Include "_stdint.h" in an attempt to make the + Original commit message from CVS: + * sys/v4l2/gstv4l2element.h: + Include "_stdint.h" in an attempt to make the + PPC-buildbot happy. + +2006-03-11 22:50:03 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * sys/Makefile.am: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2element.c: + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.c: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2xoverlay.c: + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + V4L2 ported to 0.10. + Original commit message from CVS: + V4L2 ported to 0.10. + +2006-03-11 17:08:31 +0000 Tim-Philipp Müller + + configure.ac: Only compile the taglib plugin if a C++ compiler is present. Use GST_DEFAULT_ELEMENTS macro from common... + Original commit message from CVS: + * configure.ac: + Only compile the taglib plugin if a C++ compiler is + present. Use GST_DEFAULT_ELEMENTS macro from common/ + for all the defaults stuff. + +2006-03-11 11:12:30 +0000 Christophe Fergeau + + added new element to add Xing headers to MP3 files (this allows decoder to figure out the length of VBR files) + Original commit message from CVS: + 2006-03-11 Christophe Fergeau + Reviewed by: Tim-Philipp Müller + * configure.ac: + * gst/xingheader/Makefile.am: + * gst/xingheader/gstxingmux.c: + * gst/xingheader/gstxingmux.h: added new element to add Xing headers + to MP3 files (this allows decoder to figure out the length of VBR + files) + +2006-03-11 10:58:08 +0000 Alex Lancaster + + ext/taglib/gsttaglib.cc: and add support for TCOP (copyright) + Original commit message from CVS: + 2006-03-11 Christophe Fergeau + Patch by: Alex Lancaster + * ext/taglib/gsttaglib.cc: fix writing of TPOS tags (album number), + and add support for TCOP (copyright) + +2006-03-10 22:41:14 +0000 Julien Moutte + + gst/modplug/: Fix modplug compilation. + Original commit message from CVS: + 2006-03-10 Julien MOUTTE + * gst/modplug/Makefile.am: + * gst/modplug/gstmodplug.cc: Fix modplug compilation. + +2006-03-10 17:10:09 +0000 Tim-Philipp Müller + + * ChangeLog: + * configure.ac: + * gst/modplug/Makefile.am: + * gst/modplug/gstmodplug.cc: + * gst/modplug/gstmodplug.h: + * gst/modplug/libmodplug/sndfile.cpp: + * gst/modplug/libmodplug/sndfile.h: + Original commit message from CVS: * configure.ac: * gst/modplug/Makefile.am: * gst/modplug/gstmodplug.cc: * gst/modplug/gstmodplug.h: * gst/modplug/libmodplug/sndfile.cpp: * gst/modplug/libmodplug/sndfile.h: modplug plugin ported to 0.10 (#332598, patch by: Jonathan Matthew ). + +2006-03-10 13:49:23 +0000 Tim-Philipp Müller + + ext/libmms/gstmms.*: Some clean-ups; more debug output; use blocksize property of GstBaseSrc instead of re-registerin... + Original commit message from CVS: + * ext/libmms/gstmms.c: (gst_mms_urihandler_init), + (gst_mms_base_init), (gst_mms_class_init), (gst_mms_init), + (gst_mms_finalize), (gst_mms_create), (gst_mms_start), + (gst_mms_set_property), (gst_mms_get_property), + (gst_mms_uri_get_uri): + * ext/libmms/gstmms.h: + Some clean-ups; more debug output; use blocksize property + of GstBaseSrc instead of re-registering our own; make debug + category actually be used. + +2006-03-09 20:02:44 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix build with gcc-4.1 (#327355). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_send_event): + Fix build with gcc-4.1 (#327355). + +2006-03-09 17:44:17 +0000 Christophe Fergeau + + new id3v2 muxer based on TagLib + Original commit message from CVS: + 2006-03-09 Christophe Fergeau + reviewed by: Tim-Philipp Müller + * configure.ac: + * ext/Makefile.am: + * ext/taglib/Makefile.am: + * ext/taglib/gsttaglib.cc: + * ext/taglib/gsttaglib.h: new id3v2 muxer based on TagLib + +2006-03-08 12:16:14 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Extract disc number and count from files that use 'disk' instead of 'disc' as node identifier ... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta): + Extract disc number and count from files that use + 'disk' instead of 'disc' as node identifier for that + (fixes #332066). + +2006-03-06 13:15:04 +0000 Tim-Philipp Müller + + ext/musepack/: Forgot those two. + Original commit message from CVS: + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek): + Forgot those two. + +2006-03-06 13:13:44 +0000 Tim-Philipp Müller + + ext/musepack/gstmusepackdec.c: Some cleanups; pause task when push fails. + Original commit message from CVS: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init), + (gst_musepackdec_init), (gst_musepackdec_send_newsegment), + (gst_musepackdec_handle_seek_event), + (gst_musepackdec_get_src_query_types), (gst_musepackdec_src_query), + (gst_musepack_stream_init), (gst_musepackdec_sink_activate), + (gst_musepackdec_sink_activate_pull), (gst_musepackdec_loop), + (gst_musepackdec_change_state): + Some cleanups; pause task when push fails. + +2006-03-05 13:03:40 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Add support for '3IVD' fourcc (#333403). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add support for '3IVD' fourcc (#333403). + +2006-03-04 20:04:11 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.c: Add query function for position/duration querying (mostly for raw AAC streams); make seeking in r... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_send_tags), + (gst_faad_setcaps), (gst_faad_do_raw_seek), (gst_faad_src_event), + (gst_faad_sink_event), (gst_faad_src_convert), + (gst_faad_src_query), (gst_faad_chain), (gst_faad_change_state): + Add query function for position/duration querying (mostly for + raw AAC streams); make seeking in raw AAC streams work; post + tags with codec name if this is a raw AAC stream. + +2006-03-03 23:45:23 +0000 Sébastien Moutte + + sys/: sinks are now using GST_RANK_PRIMARY to be used with autodectection + Original commit message from CVS: + * sys/directdraw: + * sys/directsound: + sinks are now using GST_RANK_PRIMARY to be used with autodectection + * win32/vs6: + project files updated to fix some bugs + * win32/vs7: + * win32/vs8: + vs7 and vs8 project files added + +2006-03-03 18:10:12 +0000 Jens Granseuer + + ext/xvid/gstxviddec.c: Declare variable at the beginning of the block and make gcc-2.9x + Original commit message from CVS: + * ext/xvid/gstxviddec.c: (gst_xviddec_chain): + Declare variable at the beginning of the block and make gcc-2.9x + happy (fixes #333283; patch by: Jens Granseuer). + +2006-03-03 11:07:41 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Use GST_WARNING instead of GST_ERROR for all the too short/long atoms when parsing. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse), (qtdemux_parse_trak): + Use GST_WARNING instead of GST_ERROR for all the too short/long atoms + when parsing. + Also let's be a bit less vulgar in our warning messages :) + +2006-03-02 18:23:55 +0000 Wim Taymans + + docs/plugins/: Add audioresample to docs. + Original commit message from CVS: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-base-plugins-docs.sgml: + * docs/plugins/gst-plugins-base-plugins-sections.txt: + Add audioresample to docs. + * gst/audioconvert/gstaudioconvert.c: + Add revision date. + * gst/audioresample/gstaudioresample.c: + (gst_audioresample_base_init), (gst_audioresample_class_init), + (gst_audioresample_init), (gst_audioresample_dispose), + (audioresample_get_unit_size), (audioresample_transform_caps), + (resample_set_state_from_caps), (audioresample_transform_size), + (audioresample_set_caps), (audioresample_event), + (audioresample_do_output), (audioresample_transform), + (audioresample_pushthrough), (gst_audioresample_set_property), + (gst_audioresample_get_property), (plugin_init): + * gst/audioresample/gstaudioresample.h: + Added docs. + Small code cleanups. + +2006-02-28 11:59:49 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Can't divide through zero (suppress warning in case of stream with one single still picture) (... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Can't divide through zero (suppress warning in case of + stream with one single still picture) (see #327083) + +2006-02-25 21:40:08 +0000 Julien Moutte + + sys/glsink/glimagesink.c: It doesn't seem we need GLU.h + Original commit message from CVS: + 2006-02-25 Julien MOUTTE + * sys/glsink/glimagesink.c: It doesn't seem we need GLU.h + +2006-02-24 19:49:32 +0000 Fabrizio Gennari + + gst/qtdemux/qtdemux.c: Add support for palettised Apple SMC videos (#327075, based on + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), + (qtdemux_parse_trak), (qtdemux_video_caps): + Add support for palettised Apple SMC videos (#327075, based on + patch by: Fabrizio Gennari ). + +2006-02-24 17:15:35 +0000 Michael Smith + + autogen.sh: Allow automake 1.9 + Original commit message from CVS: + * autogen.sh: + Allow automake 1.9 + +2006-02-24 17:02:08 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/gstneonhttpsrc.c: + Changed property name from "uri" to "location". + Original commit message from CVS: + Changed property name from "uri" to "location". + +2006-02-22 14:37:20 +0000 Jan Schmidt + + Cygwin Ports maintainer. + Original commit message from CVS: + * configure.ac: + * sys/glsink/Makefile.am: + Merge patch from #317048 for building on Cygwin. Patch by + Cygwin Ports maintainer. + * sys/glsink/glimagesink.c: (gst_glimage_sink_init_display): + Move normal debug output to LOG level not ERROR. + +2006-02-22 09:33:25 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video. + Original commit message from CVS: + Reviewed by : Edward Hervey + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add 'dvsd' and 'dv25' to list of possible fourcc values for DV Video. + Add image/png for fourcc 'png ' + +2006-02-21 15:44:05 +0000 Tim-Philipp Müller + + configure.ac: Surely this is supposed to be >= a.b, not == a.b + Original commit message from CVS: + * configure.ac: + Surely this is supposed to be >= a.b, not == a.b + +2006-02-20 21:19:59 +0000 Jan Schmidt + + Port ximagesrc to 0.10 (Closes #304795) + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/ximagesrc/Makefile.am: + * sys/ximagesrc/ximagesrc.c: (gst_ximagesrc_return_buf), + (gst_ximagesrc_open_display), (gst_ximagesrc_start), + (gst_ximagesrc_stop), (gst_ximagesrc_unlock), + (gst_ximagesrc_recalc), (composite_pixel), + (gst_ximagesrc_ximage_get), (gst_ximagesrc_create), + (gst_ximagesrc_set_property), (gst_ximagesrc_get_property), + (gst_ximagesrc_clear_bufpool), (gst_ximagesrc_base_init), + (gst_ximagesrc_dispose), (gst_ximagesrc_finalize), + (gst_ximagesrc_get_caps), (gst_ximagesrc_set_caps), + (gst_ximagesrc_fixate), (gst_ximagesrc_class_init), + (gst_ximagesrc_init), (plugin_init): + * sys/ximagesrc/ximagesrc.h: + * sys/ximagesrc/ximageutil.c: (ximageutil_handle_xerror), + (ximageutil_check_xshm_calls), (ximageutil_xcontext_get), + (ximageutil_xcontext_clear), + (ximageutil_calculate_pixel_aspect_ratio), + (gst_ximagesrc_buffer_finalize), (gst_ximage_buffer_free), + (gst_ximagesrc_buffer_init), (gst_ximagesrc_buffer_class_init), + (gst_ximagesrc_buffer_get_type), (gst_ximageutil_ximage_new), + (gst_ximageutil_ximage_destroy): + * sys/ximagesrc/ximageutil.h: + Port ximagesrc to 0.10 (Closes #304795) + +2006-02-20 20:52:02 +0000 Edgard Lima + + * ChangeLog: + * gst/freeze/gstfreeze.c: + * gst/freeze/gstfreeze.h: + I'm too lazy to comment this + Original commit message from CVS: + Some event handling added by Renato Filho + +2006-02-20 19:13:36 +0000 Jan Schmidt + + configure.ac: Back to CVS nano + Original commit message from CVS: + * configure.ac: + Back to CVS nano + +=== release 0.10.1 === + +2006-02-20 19:12:10 +0000 Jan Schmidt + + configure.ac: releasing 0.10.1, "Slimy - yet satisfying" + Original commit message from CVS: + 2006-02-20 Jan Schmidt + * configure.ac: + releasing 0.10.1, "Slimy - yet satisfying" + +2006-02-20 13:08:50 +0000 Jan Schmidt + + ext/ladspa/gstsignalprocessor.c: Fix compilation of LADPSA. It doesn't seem to work, and isn't enabled for the build,... + Original commit message from CVS: + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_event), + (gst_signal_processor_process): + Fix compilation of LADPSA. It doesn't seem to work, and isn't + enabled for the build, but it helps me win the feature-count + competitions ooh yeah. + +2006-02-19 23:45:56 +0000 Jan Schmidt + + configure.ac: Release 0.10.0.3 - pre-release for 0.10.1 + Original commit message from CVS: + * configure.ac: + Release 0.10.0.3 - pre-release for 0.10.1 + +2006-02-19 20:00:12 +0000 Tim-Philipp Müller + + ext/bz2/: Add proper copyright headers identifying Lutz Müller as the author and copyright holder (#331600). + Original commit message from CVS: + * ext/bz2/gstbz2.c: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2dec.h: + * ext/bz2/gstbz2enc.c: + * ext/bz2/gstbz2enc.h: + Add proper copyright headers identifying Lutz Müller + as the author and copyright holder (#331600). + +2006-02-17 18:25:42 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Don't GST_LOG timestamps from nonexistent index entries (#331582). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_movie): + Don't GST_LOG timestamps from nonexistent index + entries (#331582). + +2006-02-17 16:28:29 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Check that the size of the returned buffer is of the correct size because the parser assumes t... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_state_header): + Check that the size of the returned buffer is of the correct size + because the parser assumes that. + Fixes #331543. + +2006-02-17 16:00:12 +0000 Jan Schmidt + + configure.ac: Release 0.10.0.2 - pre-release for 0.10.1 + Original commit message from CVS: + * configure.ac: + Release 0.10.0.2 - pre-release for 0.10.1 + +2006-02-17 15:03:12 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + latest updates + Original commit message from CVS: + latest updates + +2006-02-16 14:02:57 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Don't stop the task if the pad isn't linked. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event), + (gst_qtdemux_loop), (qtdemux_sink_activate_pull): + Don't stop the task if the pad isn't linked. + +2006-02-15 12:13:47 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: It appears 100% equals 1/1 and not 100/1 ... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_chain): + It appears 100% equals 1/1 and not 100/1 ... + +2006-02-15 09:45:27 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: When buffering MDAT data, show the user something is happening by posting 'buffering' messages... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_post_buffering), + (gst_qtdemux_chain): + When buffering MDAT data, show the user something is + happening by posting 'buffering' messages on the bus. + +2006-02-14 18:50:13 +0000 Edward Hervey + + gst/qtdemux/qtdemux.*: Make push-based work if mdat atom is before moov atom. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_handle_src_query), (gst_qtdemux_change_state), + (next_entry_size), (gst_qtdemux_chain): + * gst/qtdemux/qtdemux.h: + Make push-based work if mdat atom is before moov atom. + Don't answer duration query. This should be transformed into replying + FALSE to seek events. + +2006-02-14 12:26:20 +0000 Tim-Philipp Müller + + ext/libmms/gstmms.c: Return FLOW_UNEXPECTED on EOS, not FLOW_ERROR. Also, no need to push our own EOS event on EOS, t... + Original commit message from CVS: + * ext/libmms/gstmms.c: (gst_mms_class_init), (gst_mms_create), + (gst_mms_start): + Return FLOW_UNEXPECTED on EOS, not FLOW_ERROR. Also, no need to + push our own EOS event on EOS, the base class will do that for us; + fix bogus query code; post semi-decent errors on the bus when an + error occurs in ::start(), otherwise the user will get to see + whatever cryptic default message GstBaseSrc comes up with. + +2006-02-14 11:36:30 +0000 Andy Wingo + + sys/glsink/glimagesink.c (gst_glimage_sink_init): Come on schleef, don't break me gst-inspect -a. + Original commit message from CVS: + 2006-02-14 Andy Wingo + * sys/glsink/glimagesink.c (gst_glimage_sink_init): Come on + schleef, don't break me gst-inspect -a. + +2006-02-14 11:24:53 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Handle the case where data atoms are before moov atoms in push-based mode. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (next_entry_size), (gst_qtdemux_chain): + Handle the case where data atoms are before moov atoms in push-based mode. + Errors out gracefully. + +2006-02-13 22:04:42 +0000 Edward Hervey + + gst/qtdemux/: QtDemux can now work push-based. + Original commit message from CVS: + * gst/qtdemux/Makefile.am: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state), + (extract_initial_length_and_fourcc), + (gst_qtdemux_loop_state_header), (gst_qtdemux_loop_state_movie), + (gst_qtdemux_loop_header), (next_entry_size), (gst_qtdemux_chain), + (qtdemux_sink_activate), (qtdemux_sink_activate_pull), + (qtdemux_sink_activate_push), (qtdemux_parse_trak): + * gst/qtdemux/qtdemux.h: + QtDemux can now work push-based. + It still needs some love for seeking. + +2006-02-13 17:02:09 +0000 Edgard Lima + + * ChangeLog: + * common: + * configure.ac: + * gst/freeze/FAQ: + * gst/freeze/Makefile.am: + * gst/freeze/gstfreeze.c: + * gst/freeze/gstfreeze.h: + I'm too lazy to comment this + Original commit message from CVS: + freeze plugin ported to 0.10 by Renato Filho + +2006-02-10 17:41:18 +0000 Tim-Philipp Müller + + Port cdxaparse, makes VCD playback work. + Original commit message from CVS: + * configure.ac: + * gst/cdxaparse/Makefile.am: + * gst/cdxaparse/gstcdxaparse.c: + * gst/cdxaparse/gstcdxaparse.h: + Port cdxaparse, makes VCD playback work. + +2006-02-10 13:16:49 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file + Original commit message from CVS: + update spec file + +2006-02-07 18:31:31 +0000 Thomas Vander Stichele + + * gst/qtdemux/qtdemux.c: + remove unused var + Original commit message from CVS: + remove unused var + +2006-02-07 18:01:17 +0000 Thomas Vander Stichele + + gst/qtdemux/qtdemux.c: use the correct variable to check if we can calculate the last chunk. Looks like an obvious b... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse_trak): + use the correct variable to check if we can calculate + the last chunk. Looks like an obvious bug, and makes + the dump of offsets comparable to other tools + +2006-02-07 17:55:33 +0000 Thomas Vander Stichele + + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-gsm.xml: + doc updates + Original commit message from CVS: + doc updates + +2006-02-07 17:54:42 +0000 Thomas Vander Stichele + + gst/qtdemux/qtdemux.c: clean up some debugging, using _OBJECT, moving recurring messages to LOG level + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse_trak): + clean up some debugging, using _OBJECT, moving recurring + messages to LOG level + +2006-02-06 20:51:49 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/neon/gstneonhttpsrc.c: + Now it uses libneon 0.25.5 that supports shoutcast. + Original commit message from CVS: + Now it uses libneon 0.25.5 that supports shoutcast. + +2006-02-06 18:21:53 +0000 Edward Hervey + + ext/bz2/gstbz2enc.c: Accepd "ANY" caps. Use "x-bzip" instead of "x-bz2". + Original commit message from CVS: + Reviewed by: Edward Hervey + * ext/bz2/gstbz2enc.c: Accepd "ANY" caps. Use "x-bzip" instead of + "x-bz2". + * ext/bz2/gstbz2dec.c: Use "x-bzip" instead of "x-bz2". Initial + caps are "ANY". + (gst_bz2dec_chain): Configure the source pad if we can figure out + the mime type of the decompressed data. + (gst_bz2dec_[get,set]_property): + (gst_bz2dec_class_init: New property "first_buffer_size". + +2006-02-06 15:41:25 +0000 Wim Taymans + + gst/qtdemux/qtdemux.*: Some QT demux loving. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_query), + (gst_qtdemux_handle_src_event), (gst_qtdemux_loop_header), + (qtdemux_inflate), (qtdemux_parse), (qtdemux_parse_trak), + (qtdemux_parse_udta), (qtdemux_tag_add_str), (qtdemux_tag_add_num), + (qtdemux_tag_add_gnre), (gst_qtdemux_handle_esds), + (qtdemux_video_caps), (qtdemux_audio_caps): + * gst/qtdemux/qtdemux.h: + Some QT demux loving. + Handle seeking in a less broken way. + Fix AMR caps to match the AMR decoder. + Set first timestamp on AMR samples to 0 for now. + Remove some \n in DEBUG strings. + Use _scale_int for maximum precision. + +2006-02-06 12:56:00 +0000 Tim-Philipp Müller + + gst/apetag/: Remove old files, apetag is in gst-plugins-good now. + Original commit message from CVS: + * gst/apetag/Makefile.am: + * gst/apetag/apedemux.c: + * gst/apetag/apedemux.h: + * gst/apetag/apetag.c: + Remove old files, apetag is in gst-plugins-good now. + +2006-02-06 09:54:55 +0000 Andy Wingo + + ext/bz2/: No need to init parent_class, the boilerplate does it for you. + Original commit message from CVS: + 2006-02-06 Andy Wingo + * ext/bz2/gstbz2enc.c (gst_bz2enc_class_init): + * ext/bz2/gstbz2dec.c (gst_bz2dec_class_init): No need to init + parent_class, the boilerplate does it for you. + +2006-02-06 09:40:09 +0000 Andy Wingo + + Hook it up. + Original commit message from CVS: + 2006-02-05 Lutz Mueller + reviewed by: Andy Wingo + * configure.ac: + * ext/Makefile.am: Hook it up. + * ext/bz2/gstbz2.c: + * ext/bz2/gstbz2dec.h: + * ext/bz2/gstbz2dec.c: + * ext/bz2/gstbz2enc.h: + * ext/bz2/gstbz2enc.c: New plugin, implements bz2 encoding and + decoding (#303167). + +2006-02-03 10:13:22 +0000 Christian Schaller + + * common: + * gst-plugins-bad.spec.in: + add opengl plugin + Original commit message from CVS: + add opengl plugin + +2006-01-30 15:47:47 +0000 Andy Wingo + + * ChangeLog: + * common: + * sys/glsink/Makefile.am: + sys/glsink/Makefile.am (libgstglimagesink_la_LIBADD) + Original commit message from CVS: + 2006-01-30 Andy Wingo + * sys/glsink/Makefile.am (libgstglimagesink_la_LIBADD) + (libgstglimagesink_la_CFLAGS): Add PLUGINS_BASE cflags and libs. + +2006-01-29 20:07:49 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackdec.c: Add debug category, use boilerplate macros, fix handling of widths of 32 bits. + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_setcaps), + (gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose), + (gst_wavpack_dec_class_init), (gst_wavpack_dec_sink_event), + (gst_wavpack_dec_init), (gst_wavpack_dec_format_samples), + (gst_wavpack_dec_chain), (gst_wavpack_dec_plugin_init): + Add debug category, use boilerplate macros, fix handling + of widths of 32 bits. + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_base_init), + (gst_wavpack_parse_dispose), (gst_wavpack_parse_class_init), + (gst_wavpack_parse_index_get_last_entry), + (gst_wavpack_parse_index_get_entry_from_sample), + (gst_wavpack_parse_index_append_entry), (gst_wavpack_parse_reset), + (gst_wavpack_parse_src_query), + (gst_wavpack_parse_scan_to_find_sample), + (gst_wavpack_parse_send_newsegment), + (gst_wavpack_parse_handle_seek_event), + (gst_wavpack_parse_src_event), (gst_wavpack_parse_init), + (gst_wavpack_parse_get_upstream_length), + (gst_wavpack_parse_pull_buffer), + (gst_wavpack_parse_create_src_pad), (gst_wavpack_parse_loop), + (gst_wavpack_parse_change_state), + (gst_wavepack_parse_sink_activate), + (gst_wavepack_parse_sink_activate_pull), + (gst_wavpack_parse_plugin_init): + * ext/wavpack/gstwavpackparse.h: + Rewrite a bit, mostly to fix flow logic and to make seeking work. + Fix buffer/event refcounting. Add some debug statements. Add + width of 32 to source pad template caps. Use boilerplate macros. + +2006-01-28 12:45:54 +0000 Edward Hervey + + sys/glsink/Makefile.am: glimagesink.h is dead, long live glimagesink.h + Original commit message from CVS: + * sys/glsink/Makefile.am: + glimagesink.h is dead, long live glimagesink.h + +2006-01-28 04:39:18 +0000 David Schleef + + revival of glimagesink. Kind of works. + Original commit message from CVS: + * configure.ac: + * sys/Makefile.am: + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: + * sys/glsink/glimagesink.h: + revival of glimagesink. Kind of works. + +2006-01-27 12:47:12 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.c: Handle 'framed' field in caps; Port syncing for raw streams from 0.8 branch (for AAC+ radio strea... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), + (gst_faad_chanpos_to_gst), (gst_faad_sync), (gst_faad_chain): + Handle 'framed' field in caps; Port syncing for raw streams + from 0.8 branch (for AAC+ radio streams) (#328722). + +2006-01-27 01:31:12 +0000 Jan Schmidt + + ext/sdl/sdlvideosink.*: Fix output stride copying, so that it displays correctly on framebuffer devices that don't ma... + Original commit message from CVS: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_supported), + (gst_sdlvideosink_xoverlay_set_xwindow_id), + (gst_sdlvideosink_deinitsdl), (gst_sdlv_process_events), + (gst_sdlvideosink_event_thread), (gst_sdlvideosink_initsdl), + (gst_sdlvideosink_destroy), (gst_sdlvideosink_create), + (gst_sdlvideosink_setcaps), (gst_sdlvideosink_show_frame), + (gst_sdlvideosink_change_state), + (gst_sdlvideosink_navigation_send_event): + * ext/sdl/sdlvideosink.h: + Fix output stride copying, so that it displays correctly on + framebuffer devices that don't match our implict GStreamer stride + arrangement. + Fix locking things. Offer XOverlay only when SDL is running against + X. Make non-scaled (and ugly) embedding work via X Overlay. It can't + actually match the embedded window size because there's no way to + figure out what size that should be from the XOverlay interface. + See comment in sdlvideosink.c + +2006-01-26 16:23:42 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Fix wrong memcpy source pointer. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Fix wrong memcpy source pointer. + +2006-01-25 14:44:05 +0000 Edgard Lima + + * ChangeLog: + * ext/libmms/gstmms.c: + * ext/neon/gstneonhttpsrc.c: + Just chain up finalize calls (calling parent_class->finalize). + Original commit message from CVS: + Just chain up finalize calls (calling parent_class->finalize). + +2006-01-25 14:20:04 +0000 Edgard Lima + + * ChangeLog: + * ext/libmms/gstmms.c: + Finalize method has been created and others small changes. + Original commit message from CVS: + Finalize method has been created and others small changes. + +2006-01-24 21:33:25 +0000 Tim-Philipp Müller + + ext/musepack/: Fix seeking in musepack files (it's still incredibly slow, but I don't think that is our plugin's faul... + Original commit message from CVS: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_base_init), + (gst_musepackdec_class_init), (gst_musepackdec_init), + (gst_musepackdec_send_newsegment), + (gst_musepackdec_handle_seek_event), (gst_musepackdec_src_event), + (gst_musepackdec_src_query), (gst_musepackdec_src_convert), + (gst_musepack_stream_init), (gst_musepackdec_sink_activate_pull), + (gst_musepackdec_loop), (gst_musepackdec_change_state): + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek), + (gst_musepack_reader_seek), (gst_musepack_reader_tell), + (gst_musepack_reader_get_size): + * ext/musepack/gstmusepackreader.h: + Fix seeking in musepack files (it's still incredibly slow, but I + don't think that is our plugin's fault). Clean up code and get + rid of old cruft. Post tags with all kind of neat information like + replay gain and such on the bus, if it is available. Add a + 'musepackdec' debug category. + +2006-01-24 11:58:53 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: More coherent framerate setting on caps. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream), (qtdemux_parse_trak): + More coherent framerate setting on caps. + If sample_size is available, use that for the samples' duration in + the index. This enables single frame streams to work (and I imagine + fixes some other cases). + Tested on testsuite, no regression. + +2006-01-23 15:10:55 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Added codec recognition for: _ VP31 : video/x-vp3 _ AVDJ : image/jpeg _ dvcp, dvc : video/x-d... + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), + (qtdemux_video_caps), (qtdemux_audio_caps): + Added codec recognition for: + _ VP31 : video/x-vp3 + _ AVDJ : image/jpeg + _ dvcp, dvc : video/x-dv, systemstream=(boolean)false + _ 0x6d730017 : audio/x-adpcm, layout=(string)quicktime + +2006-01-21 18:35:29 +0000 David Schleef + + Update from swfdec. + Original commit message from CVS: + * configure.ac: + * ext/swfdec/gstswfdec.c: Update from swfdec. + +2006-01-21 11:43:53 +0000 Fabrizio + + gst/qtdemux/qtdemux.c: 'twos' and 'sowt' fourcc can be 16bit or 8bit audio. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), + (qtdemux_audio_caps): + 'twos' and 'sowt' fourcc can be 16bit or 8bit audio. + Fix 8bit case (#327133, based on patch by: Fabrizio + Gennari ). + Also, "G_LITTLE_ENDIAN" and "G_BIG_ENDIAN" are not + valid literals for endianness in caps strings, + only "LITTLE_ENDIAN" and "BIG_ENDIAN" are valid. + +2006-01-20 17:04:38 +0000 Edgard Lima + + * ChangeLog: + * common: + * ext/ivorbis/vorbisfile.c: + * ext/neon/gstneonhttpsrc.c: + Fixed state transictions PLAYING->NULL->PLAYING. + Original commit message from CVS: + Fixed state transictions PLAYING->NULL->PLAYING. + +2006-01-19 16:49:29 +0000 Edgard Lima + + * ChangeLog: + * ext/ivorbis/vorbisfile.c: + Some minor improvements on log messages. + Original commit message from CVS: + Some minor improvements on log messages. + +2006-01-18 18:54:02 +0000 Edgard Lima + + * ChangeLog: + * gst/qtdemux/qtdemux.c: + Ronald's patch applied. see bug #326318. + Original commit message from CVS: + Ronald's patch applied. see bug #326318. + +2006-01-17 16:45:43 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.*: Fix seeking for quicktime files. Could still use some more love and sophistication. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_send_event), (gst_qtdemux_handle_src_event), + (gst_qtdemux_change_state), (gst_qtdemux_loop_header): + * gst/qtdemux/qtdemux.h: + Fix seeking for quicktime files. Could still use some more + love and sophistication. + +2006-01-17 13:14:08 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fixing versioning + Original commit message from CVS: + fixing versioning + +2006-01-16 12:30:41 +0000 Edgard Lima + + * ChangeLog: + * ext/libmms/gstmms.c: + * ext/neon/gstneonhttpsrc.c: + * ext/sdl/sdlaudiosink.c: + Removed gst_base_src_set_live from mms and neon, and now calling parent_class->dispose in dispose on sdlaudio. + Original commit message from CVS: + Removed gst_base_src_set_live from mms and neon, and now calling parent_class->dispose in dispose on sdlaudio. + +2006-01-11 20:59:39 +0000 Edgard Lima + + * ChangeLog: + * ext/sdl/sdlvideosink.c: + Now implementing navigation interface and using GST_BOILER_PLATE_FULL. + Original commit message from CVS: + Now implementing navigation interface and using GST_BOILER_PLATE_FULL. + +2006-01-11 15:34:52 +0000 Christian Schaller + + * ChangeLog: + * sys/Makefile.am: + * sys/sunaudio/Makefile.am: + * sys/sunaudio/gstsunaudio.c: + * sys/sunaudio/gstsunaudiosrc.c: + * sys/sunaudio/gstsunaudiosrc.h: + * sys/sunaudio/gstsunelement.c: + * sys/sunaudio/gstsunelement.h: + * sys/sunaudio/gstsunmixer.c: + * sys/sunaudio/gstsunmixer.h: + remove old (broken) sunaudio plugin from bad as there is a new working one in -good + Original commit message from CVS: + remove old (broken) sunaudio plugin from bad as there is a new working one + in -good + +2006-01-11 14:41:24 +0000 Edgard Lima + + * ChangeLog: + * ext/sdl/sdlaudiosink.c: + Replaced wrong style code by GST_BOILERPLATE. + Original commit message from CVS: + Replaced wrong style code by GST_BOILERPLATE. + +2006-01-11 11:04:03 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Add support for Indeo3 video in Quicktime files. + Original commit message from CVS: + reviewed by: Edward Hervey + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add support for Indeo3 video in Quicktime files. + Closes #326524 + +2006-01-09 18:20:56 +0000 Edgard Lima + + * ChangeLog: + * common: + * configure.ac: + * ext/sdl/Makefile.am: + * ext/sdl/gstsdl.c: + * ext/sdl/sdlaudiosink.c: + * ext/sdl/sdlaudiosink.h: + * ext/sdl/sdlvideosink.c: + Created new element, sdlaudiosink. + Original commit message from CVS: + Created new element, sdlaudiosink. + +2006-01-05 23:17:44 +0000 Sébastien Moutte + + * ChangeLog: + * sys/directdraw/gstdirectdrawplugin.c: + * sys/directdraw/gstdirectdrawsink.c: + * sys/directdraw/gstdirectdrawsink.h: + * sys/directsound/gstdirectsoundplugin.c: + * sys/directsound/gstdirectsoundsink.c: + * sys/directsound/gstdirectsoundsink.h: + * win32/common/config.h: + * win32/vs6/gst_plugins_bad.dsw: + * win32/vs6/libgstdirectdraw.dsp: + * win32/vs6/libgstdirectsound.dsp: + added sys/directdraw added sys/directsound added win32/vs6/gst_plugins_bad.dsw added win32/vs6/libgstdirectsound.dsp ... + Original commit message from CVS: + 2006-01-05 Sebastien Moutte + * added sys/directdraw + * added sys/directsound + * added win32/vs6/gst_plugins_bad.dsw + * added win32/vs6/libgstdirectsound.dsp + * added win32/vs6/libgstdirectdraw.dsp + * added win32/common/config.h + +2006-01-05 17:03:15 +0000 Stefan Kost + + gst/games/gstpuzzle.c: call oil_init() when using liboil + Original commit message from CVS: + * gst/games/gstpuzzle.c: (plugin_init): + call oil_init() when using liboil + +2006-01-04 19:39:10 +0000 Edgard Lima + + * ChangeLog: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Some improvements in cancellation and debug messages. + Original commit message from CVS: + Some improvements in cancellation and debug messages. + +2006-01-04 13:26:35 +0000 Edgard Lima + + * ChangeLog: + * common: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Removed not need thread and changed to push out blocksize bytes. + Original commit message from CVS: + Removed not need thread and changed to push out blocksize bytes. + +=== release 0.10.2 === + +2006-01-03 17:33:16 +0000 Michael Smith + + gst/audioresample/resample.h: As before, but for o_buf + Original commit message from CVS: + * gst/audioresample/resample.h: + As before, but for o_buf + +2006-01-03 17:27:13 +0000 Michael Smith + + gst/audioresample/resample.h: Declare struct _ResampleState.buffer as unsigned char *, not void *, since we do arithm... + Original commit message from CVS: + * gst/audioresample/resample.h: + Declare struct _ResampleState.buffer as unsigned char *, not void *, + since we do arithmetic on it. + +2006-01-02 15:05:09 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + add neon plugin to spec file + Original commit message from CVS: + add neon plugin to spec file + +2005-12-30 15:41:21 +0000 Thomas Vander Stichele + + * ext/smoothwave/.gitignore: + * ext/smoothwave/Makefile.am: + * ext/smoothwave/README: + * ext/smoothwave/demo-osssrc.c: + * ext/smoothwave/gstsmoothwave.c: + * ext/smoothwave/gstsmoothwave.h: + move smoothwave to gst + Original commit message from CVS: + move smoothwave to gst + +2005-12-28 21:07:17 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/neon/Makefile.am: + * ext/neon/gstneonhttpsrc.c: + * ext/neon/gstneonhttpsrc.h: + Created new element neonhttpsrc. + Original commit message from CVS: + Created new element neonhttpsrc. + +2005-12-19 15:19:44 +0000 Edward Hervey + + ext/swfdec/gstswfdec.c: Add debugging category and return GstFlowReturn in the right places + Original commit message from CVS: + * ext/swfdec/gstswfdec.c: (gst_swfdec_class_init), + (gst_swfdec_chain), (gst_swfdec_render): + Add debugging category and return GstFlowReturn in the right places + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link): + Get something from the peer pad once we've checked if there is a peer pad. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (qtdemux_tree_get_child_by_type), (qtdemux_parse_trak), + (qtdemux_video_caps): + Couple of fixes + +2005-12-19 14:58:47 +0000 Edgard Lima + + * ChangeLog: + * ext/divx/Makefile.am: + just a small fix. I have to pay more attention when commiting ;-) + Original commit message from CVS: + just a small fix. I have to pay more attention when commiting ;-) + +2005-12-19 14:40:22 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/divx/Makefile.am: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxdec.h: + * ext/divx/gstdivxenc.c: + * ext/divx/gstdivxenc.h: + divxdec and divxenc ported to 0.10 + Original commit message from CVS: + divxdec and divxenc ported to 0.10 + +2005-12-18 21:06:47 +0000 Julien Moutte + + Some more refactoring, handle exotic DirectFB row stride. + Original commit message from CVS: + 2005-12-18 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_surface_create), + (gst_dfbvideosink_event_thread), + (gst_dfbvideosink_enum_devices), + (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps), + (gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc), + (gst_dfbsurface_finalize), + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_update_colorbalance), + (gst_dfbvideosink_set_property), (gst_dfbvideosink_init): Some + more refactoring, handle exotic DirectFB row stride. + +2005-12-18 10:58:44 +0000 Julien Moutte + + docs/plugins/: Updates. + Original commit message from CVS: + 2005-12-18 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + Updates. + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_surface_create), + (gst_dfbvideosink_event_thread), + (gst_dfbvideosink_enum_devices), + (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps), + (gst_dfbvideosink_show_frame), (gst_dfbvideosink_buffer_alloc), + (gst_dfbsurface_finalize), + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_update_colorbalance), + (gst_dfbvideosink_set_property), + (gst_dfbvideosink_get_property), + (gst_dfbvideosink_finalize), (gst_dfbvideosink_init), + (gst_dfbvideosink_class_init): + * ext/directfb/dfbvideosink.h: Implement pixel-aspect-ratio. + This should work both for hardware accelerated scaling and + reverse caps negotiation with a scaling element. + +2005-12-17 17:48:38 +0000 Julien Moutte + + docs/plugins/: Updates. + Original commit message from CVS: + 2005-12-17 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdlvideosink.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: Updates. + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_surface_create), + (gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_vmodes), + (gst_dfbvideosink_enum_devices), (gst_dfbvideosink_setup), + (gst_dfbvideosink_cleanup), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps), + (gst_dfbvideosink_setcaps), (gst_dfbvideosink_show_frame), + (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize), + (gst_dfbvideosink_interface_supported), + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_update_colorbalance), + (gst_dfbvideosink_colorbalance_list_channels), + (gst_dfbvideosink_colorbalance_set_value), + (gst_dfbvideosink_colorbalance_get_value), + (gst_dfbvideosink_colorbalance_init), + (gst_dfbvideosink_set_property), + (gst_dfbvideosink_get_property), + (gst_dfbvideosink_init), (gst_dfbvideosink_class_init): + * ext/directfb/dfbvideosink.h: Implement vertical sync and + color balance interface. + +2005-12-16 21:55:18 +0000 Stefan Kost + + don't use doc comments for non-docs change some char* into char[] + Original commit message from CVS: + * ext/artsd/gstartsdsink.c: (gst_artsdsink_open_audio): + * gst/festival/gstfestival.c: (socket_receive_file_to_buff): + * gst/vbidec/vbidata.c: + * gst/vbidec/vbidata.h: + * gst/vbidec/vbiscreen.c: + * sys/dxr3/ac3_padder.c: + don't use doc comments for non-docs + change some char* into char[] + +2005-12-16 14:47:59 +0000 Julien Moutte + + ext/directfb/dfbvideosink.c: Always prefer the primary layer. + Original commit message from CVS: + 2005-12-16 Julien MOUTTE + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers), + (gst_dfbvideosink_init): Always prefer the primary layer. + +2005-12-16 12:25:38 +0000 Tim-Philipp Müller + + ext/wavpack/gstwavpackdec.c: Oops, remove trailing comma from caps string. + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: + Oops, remove trailing comma from caps string. + +2005-12-16 09:59:21 +0000 gcocatre@gmail.com + + ext/wavpack/: Wavpack supports samplerates from 6-192kHz, fix pad template remove buffer-frames from caps, they are g... + Original commit message from CVS: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link): + * ext/wavpack/gstwavpackparse.c: + Wavpack supports samplerates from 6-192kHz, fix pad template + caps (fixes #322973; patch by: gcocatre@gmail.com). Also + remove buffer-frames from caps, they are gone in 0.10. + +2005-12-15 14:39:00 +0000 Edgard Lima + + * ChangeLog: + * ext/xvid/Makefile.am: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + Fixed some mem-leaks in xvid. + Original commit message from CVS: + Fixed some mem-leaks in xvid. + +2005-12-15 10:30:14 +0000 Michael Smith + + gst/audioresample/gstaudioresample.c: Don't leak all input buffers to audioresample. + Original commit message from CVS: + * gst/audioresample/gstaudioresample.c: + Don't leak all input buffers to audioresample. + +2005-12-15 08:54:26 +0000 Thomas Vander Stichele + + * ext/directfb/dfbvideosink.c: + doesn't use liboil + Original commit message from CVS: + doesn't use liboil + +2005-12-14 22:41:47 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/xvid/gstxvid.c: + * ext/xvid/gstxvid.h: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxviddec.h: + * ext/xvid/gstxvidenc.c: + * ext/xvid/gstxvidenc.h: + xviddec and xvideenc ported to 0.10 + Original commit message from CVS: + xviddec and xvideenc ported to 0.10 + +2005-12-14 20:54:06 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/dts/Makefile.am: + * ext/dts/gstdtsdec.c: + * ext/dts/gstdtsdec.h: + dtsdec ported to 0.10 + Original commit message from CVS: + dtsdec ported to 0.10 + +2005-12-12 10:40:42 +0000 Tim-Philipp Müller + + ext/: GstObjects must be unref'ed with gst_object_unref() instead of g_object_unref(), otherwise things break for GLi... + Original commit message from CVS: + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop): + * ext/libmms/gstmms.c: (gst_mms_src_query), (gst_mms_create): + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_src_query), + (gst_musepackdec_loop): + * ext/swfdec/gstswfdec.c: (gst_swfdec_video_link), + (gst_swfdec_src_query): + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_src_query): + GstObjects must be unref'ed with gst_object_unref() instead of + g_object_unref(), otherwise things break for GLib-2.6 users. + +2005-12-12 09:29:21 +0000 David Schleef + + ext/swfdec/gstswfdec.c: Add a subclass of GstBuffer that wraps SwfdecBuffers. Fix a massive memleak because the vide... + Original commit message from CVS: + * ext/swfdec/gstswfdec.c: (gst_swfdecbuffer_get_type), + (gst_swfdecbuffer_class_init), (gst_swfdecbuffer_finalize), + (gst_swfdec_buffer_from_swf), (gst_swfdec_render): Add a subclass + of GstBuffer that wraps SwfdecBuffers. Fix a massive memleak + because the video buffers previously never got freed. + +2005-12-11 23:54:56 +0000 Edgard Lima + + * ChangeLog: + * ext/libmms/gstmms.c: + Just removed a weird printf ;-) + Original commit message from CVS: + Just removed a weird printf ;-) + +2005-12-11 23:09:21 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/libmms/gstmms.c: + * ext/libmms/gstmms.h: + Added suport to mmsh. There's still a sucks msg "ERROR: Pipeline cant PREROOL..." to be fixed. + Original commit message from CVS: + Added suport to mmsh. There's still a sucks msg "ERROR: Pipeline cant PREROOL..." to be fixed. + +2005-12-09 15:30:21 +0000 Jan Schmidt + + ext/faad/gstfaad.c: Assume that an unknown channel mapping with 2 channels is stereo and play it that way instead of ... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_chanpos_to_gst), + (gst_faad_update_caps): + Assume that an unknown channel mapping with 2 channels + is stereo and play it that way instead of erroring. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream), (qtdemux_parse_trak): + Handle e.g. jpeg streams with 0 duration frames as having 0 framerate. + Debug fixes. Some 64 bit variable fixes + +2005-12-09 04:15:02 +0000 Edgard Lima + + * ChangeLog: + * configure.ac: + * ext/Makefile.am: + * ext/swfdec/Makefile.am: + * ext/swfdec/gstswfdec.c: + * ext/swfdec/gstswfdec.h: + swfdec Ported to 0.10. + Original commit message from CVS: + swfdec Ported to 0.10. + +2005-12-07 11:46:15 +0000 Edward Hervey + + gst/qtdemux/qtdemux.c: Memleak fixes. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream): + Memleak fixes. + Send out EOS for valid reasons (couldn't pull_range() from upstream + for example). + +2005-12-06 19:55:58 +0000 Thomas Vander Stichele + + * ChangeLog: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * ext/audiofile/gstafparse.h: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsink.h: + * ext/audiofile/gstafsrc.c: + * ext/audiofile/gstafsrc.h: + * ext/cdaudio/gstcdaudio.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.h: + * ext/faac/gstfaac.h: + * ext/ivorbis/vorbisenc.h: + * ext/ivorbis/vorbisfile.c: + * ext/musepack/gstmusepackdec.h: + * ext/nas/nassink.c: + * ext/snapshot/gstsnapshot.c: + * ext/sndfile/gstsf.h: + * ext/tarkin/gsttarkindec.h: + * ext/tarkin/gsttarkinenc.h: + * ext/xine/gstxine.h: + * ext/xine/xinecaps.c: + * ext/xvid/gstxvid.h: + * gst-libs/gst/play/play.h: + * gst/apetag/apedemux.h: + * gst/cdxaparse/gstcdxaparse.h: + * gst/cdxaparse/gstcdxastrip.h: + * gst/cdxaparse/gstvcdparse.h: + * gst/colorspace/yuv2rgb.c: + * gst/colorspace/yuv2rgb.h: + * gst/equalizer/gstiirequalizer.c: + * gst/festival/gstfestival.h: + * gst/games/gstpuzzle.c: + * gst/games/gstvideoimage.c: + * gst/games/gstvideoimage.h: + * gst/modplug/gstmodplug.h: + * gst/modplug/libmodplug/it_defs.h: + * gst/modplug/libmodplug/modplug.h: + * gst/modplug/libmodplug/sndfile.h: + * gst/modplug/libmodplug/stdafx.h: + * gst/mpeg1sys/buffer.c: + * gst/mpeg1sys/gstmpeg1systemencode.h: + * gst/mpeg1sys/main.h: + * gst/mpeg1sys/systems.c: + * gst/mpeg1videoparse/gstmp1videoparse.h: + * gst/mpeg2sub/gstmpeg2subt.h: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/mpegaudioparse/gstmpegaudioparse.h: + * gst/multifilesink/gstmultifilesink.h: + * gst/overlay/gstoverlay.h: + * gst/qtdemux/qtdemux.c: + * gst/qtdemux/qtdemux.h: + * gst/rtjpeg/RTjpeg.c: + * gst/rtjpeg/RTjpeg.h: + * gst/tta/crc32.h: + * gst/tta/filters.h: + * gst/tta/ttadec.h: + * gst/videodrop/gstvideodrop.h: + * sys/cdrom/gstcdplayer.h: + * sys/cdrom/gstcdplayer_ioctl.c: + * sys/cdrom/gstcdplayer_ioctl.h: + * sys/cdrom/gstcdplayer_ioctl_bsd.h: + * sys/cdrom/gstcdplayer_ioctl_irix.h: + * sys/cdrom/gstcdplayer_ioctl_solaris.h: + * sys/dxr3/dxr3audiosink.c: + * sys/dxr3/dxr3audiosink.h: + * sys/dxr3/dxr3spusink.c: + * sys/dxr3/dxr3spusink.h: + * sys/dxr3/dxr3videosink.c: + * sys/dxr3/dxr3videosink.h: + * sys/qcam/dark.c: + * sys/qcam/gstqcamsrc.c: + * sys/v4l2/gstv4l2colorbalance.h: + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/gstv4l2tuner.h: + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2_calls.c: + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + * sys/vcd/vcdsrc.h: + expand tabs + Original commit message from CVS: + expand tabs + +2005-12-06 19:44:48 +0000 Thomas Vander Stichele + + * ext/ladspa/gstsignalprocessor.h: + * ext/ladspa/search.c: + * ext/ladspa/utils.h: + expand tabs + Original commit message from CVS: + expand tabs + +2005-12-06 19:42:02 +0000 Thomas Vander Stichele + + * gst/audioresample/buffer.h: + * gst/audioresample/functable.h: + * gst/audioresample/gstaudioresample.c: + * gst/audioresample/resample.h: + * tests/check/elements/audioresample.c: + expand tabs + Original commit message from CVS: + expand tabs + +2005-12-05 18:11:32 +0000 Thomas Vander Stichele + + * configure.ac: + back to HEAD + Original commit message from CVS: + back to HEAD + +=== release 0.10.0 === + +2005-12-05 18:01:48 +0000 Thomas Vander Stichele + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdlvideosink.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + releasing 0.10.0 + Original commit message from CVS: + releasing 0.10.0 + +2005-12-05 13:04:22 +0000 Andy Wingo + + Update for alloc_buffer changes. + Original commit message from CVS: + 2005-12-05 Andy Wingo + * ext/faac/gstfaac.c: (gst_faac_sink_event), (gst_faac_chain): + * ext/faad/gstfaad.c: (gst_faad_chain): + * ext/hermes/gsthermescolorspace.c: (gst_hermes_colorspace_chain): + * ext/lcs/gstcolorspace.c: (gst_colorspace_chain): + * ext/xine/xineinput.c: (gst_xine_input_get): + * gst/colorspace/gstcolorspace.c: (gst_colorspace_chain): + * gst/speed/gstspeed.c: (speed_chain): + * gst/videocrop/gstvideocrop.c: (gst_video_crop_chain): Update for + alloc_buffer changes. + +2005-12-05 13:02:58 +0000 Andy Wingo + + Update for alloc_buffer changes. + Original commit message from CVS: + 2005-12-05 Andy Wingo + * ext/dv/gstdvdec.c: (gst_dvdec_chain): + * ext/flac/gstflacdec.c: (gst_flacdec_write): + * ext/flac/gstflacenc.c: (gst_flacenc_write_callback): + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain): + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_chain): + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_chain): + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_chain): + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_process): + * ext/libpng/gstpngdec.c: (user_info_callback), (gst_pngdec_task): + * ext/speex/gstspeexdec.c: (speex_dec_chain): + * ext/speex/gstspeexenc.c: (gst_speexenc_chain): + * gst/auparse/gstauparse.c: (gst_auparse_chain): + * gst/flx/gstflxdec.c: (gst_flxdec_chain): + * gst/goom/gstgoom.c: (gst_goom_chain): + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_push_vorbis_codec_priv_data), + (gst_matroska_demux_add_wvpk_header): + * gst/multipart/multipartdemux.c: (gst_multipart_demux_chain): + * gst/multipart/multipartmux.c: (gst_multipart_mux_collected): + * gst/videomixer/videomixer.c: (gst_videomixer_collected): + * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Update for + alloc_buffer changes. + +2005-12-04 22:46:34 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + update spec file + Original commit message from CVS: + update spec file + +2005-12-02 11:34:50 +0000 Wim Taymans + + gst/audioresample/: Fix audioresample, seek torture, new segments, reverse negotiation etc.. work fine. + Original commit message from CVS: + * gst/audioresample/buffer.c: (audioresample_buffer_queue_flush): + * gst/audioresample/buffer.h: + * gst/audioresample/gstaudioresample.c: + * gst/audioresample/gstaudioresample.h: + * gst/audioresample/resample.c: (resample_input_flush), + (resample_input_pushthrough), (resample_input_eos), + (resample_get_output_size_for_input), + (resample_get_input_size_for_output), (resample_get_output_size), + (resample_get_output_data): + * gst/audioresample/resample.h: + * gst/audioresample/resample_ref.c: (resample_scale_ref): + Fix audioresample, seek torture, new segments, reverse negotiation + etc.. work fine. + +2005-12-02 09:32:21 +0000 Tim-Philipp Müller + + ext/Makefile.am: Add missing $(WAVPACK_DIR) (#322962). + Original commit message from CVS: + * ext/Makefile.am: + Add missing $(WAVPACK_DIR) (#322962). + +2005-12-01 19:17:34 +0000 Thomas Vander Stichele + + * configure.ac: + back to HEAD + Original commit message from CVS: + back to HEAD + +=== release 0.9.7 === + +2005-12-01 19:13:20 +0000 Thomas Vander Stichele + + * ChangeLog: + * LICENSE: + * NEWS: + * PORTED_09: + * RELEASE: + * common: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdlvideosink.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + * docs/random/LICENSE: + * docs/random/PORTED_09: + releasing 0.9.7 + Original commit message from CVS: + releasing 0.9.7 + +2005-11-29 02:55:18 +0000 Edgard Lima + + * ChangeLog: + * PORTED_09: + * common: + * configure.ac: + * ext/Makefile.am: + * ext/libmms/Makefile.am: + * ext/libmms/gstmms.c: + * ext/libmms/gstmms.h: + libmm ported to 0.9. It works fine, but print some error messages. I'll fix them soon. Tested with mmssrc location=m... + Original commit message from CVS: + libmm ported to 0.9. It works fine, but print some error messages. I'll fix them soon. Tested with mmssrc location=mms:// ! filesink. + +2005-11-28 21:22:39 +0000 Thomas Vander Stichele + + * common: + * ext/directfb/dfbvideosink.h: + fix header + Original commit message from CVS: + fix header + +2005-11-28 17:47:27 +0000 Thomas Vander Stichele + + * ext/sdl/sdlvideosink.h: + fix include + Original commit message from CVS: + fix include + +2005-11-28 15:43:29 +0000 Edward Hervey + + ext/faad/gstfaad.c: Handle gracefully the consequence of "Maximum number of scalefactor bands exceeded", which result... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_srcgetcaps): + Handle gracefully the consequence of "Maximum number of scalefactor + bands exceeded", which results in 0 channels with samplerates of 0. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state): + Do upward transitions, then call parent state_change, then do + downward transitions. + +2005-11-28 15:19:33 +0000 Thomas Vander Stichele + + * ext/Makefile.am: + fix makefile + Original commit message from CVS: + fix makefile + +2005-11-28 14:50:44 +0000 Thomas Vander Stichele + + ext/Makefile.am: alphabets, so hard to master. Should fix distcheck. + Original commit message from CVS: + * ext/Makefile.am: + alphabets, so hard to master. Should fix distcheck. + +2005-11-27 14:35:27 +0000 Thomas Vander Stichele + + * Makefile.am: + * common: + * gst-plugins-bad.spec.in: + add ACLOCAL_AMFLAGS; remove old stuff from spec changelog + Original commit message from CVS: + add ACLOCAL_AMFLAGS; remove old stuff from spec changelog + +2005-11-25 19:58:19 +0000 Edgard Lima + + * ChangeLog: + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/wavpack/Makefile.am: + * ext/wavpack/gstwavpackdec.c: + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackparse.c: + * ext/wavpack/gstwavpackparse.h: + Wavpack ported to 0.9. No support for correction file yet. + Original commit message from CVS: + Wavpack ported to 0.9. No support for correction file yet. + +2005-11-25 18:15:51 +0000 Thomas Vander Stichele + + ext/wavpack/: put back wavpack - still needs porting + Original commit message from CVS: + * ext/wavpack/gstwavpackcommon.h: + * ext/wavpack/gstwavpackdec.c: (gst_wavpack_dec_link), + (gst_wavpack_dec_wvclink), (gst_wavpack_dec_get_type), + (gst_wavpack_dec_base_init), (gst_wavpack_dec_dispose), + (gst_wavpack_dec_class_init), (gst_wavpack_dec_src_query), + (gst_wavpack_dec_init), (gst_wavpack_dec_setup_context), + (gst_wavpack_dec_format_samples), (gst_wavpack_dec_loop), + (gst_wavpack_dec_plugin_init): + * ext/wavpack/gstwavpackdec.h: + * ext/wavpack/gstwavpackparse.c: (gst_wavpack_parse_get_type), + (gst_wavpack_parse_base_init), (gst_wavpack_parse_dispose), + (gst_wavpack_parse_class_init), (gst_wavpack_parse_src_query), + (gst_wavpack_parse_src_event), (find_header), (find_sample), + (gst_wavpack_parse_seek), (gst_wavpack_parse_init), + (gst_wavpack_parse_handle_event), (gst_wavpack_parse_loop), + (gst_wavpack_parse_change_state), (gst_wavpack_parse_plugin_init): + * ext/wavpack/gstwavpackparse.h: + put back wavpack - still needs porting + +2005-11-23 21:27:20 +0000 Thomas Vander Stichele + + * Makefile.am: + add a torture target + Original commit message from CVS: + add a torture target + +2005-11-23 20:06:09 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + back to HEAD + Original commit message from CVS: + back to HEAD + +=== release 0.9.6 === + +2005-11-23 19:57:49 +0000 Thomas Vander Stichele + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/inspect/plugin-faad.xml: + * docs/plugins/inspect/plugin-gsm.xml: + * docs/plugins/inspect/plugin-qtdemux.xml: + * docs/plugins/inspect/plugin-sdlvideosink.xml: + * docs/plugins/inspect/plugin-speed.xml: + * docs/plugins/inspect/plugin-tta.xml: + releasing 0.9.6 + Original commit message from CVS: + releasing 0.9.6 + +2005-11-23 18:05:16 +0000 Julien Moutte + + Use fraction for framerate, various fixes. + Original commit message from CVS: + 2005-11-23 Julien MOUTTE + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * ext/directfb/dfb-example.c: (main): + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_surface_destroy), + (gst_dfbvideosink_event_thread), (gst_dfbvideosink_setup), + (gst_dfbvideosink_getcaps), (gst_dfbvideosink_setcaps), + (gst_dfbvideosink_change_state), (gst_dfbvideosink_get_times), + (gst_dfbvideosink_bufferpool_clear), + (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize), + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_finalize), (gst_dfbvideosink_init), + (gst_dfbvideosink_class_init): + * ext/directfb/dfbvideosink.h: Use fraction for framerate, + various + fixes. + +2005-11-23 15:36:08 +0000 Jan Schmidt + + ext/sdl/sdlvideosink.*: Updates for fractional framerates and XOverlay interface changes + Original commit message from CVS: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init), + (gst_sdlvideosink_get_times), (gst_sdlvideosink_init), + (gst_sdlvideosink_setcaps), (gst_sdlvideosink_change_state): + * ext/sdl/sdlvideosink.h: + Updates for fractional framerates and XOverlay interface changes + +2005-11-23 11:57:51 +0000 Jan Schmidt + + gst/qtdemux/qtdemux.c: Convert to fractional framerates + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream), (qtdemux_dump_mvhd), + (qtdemux_parse_trak): + Convert to fractional framerates + +2005-11-23 00:28:12 +0000 Edward Hervey + + ext/musepack/gstmusepackdec.c: Fix for latest API changes + Original commit message from CVS: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_loop): + Fix for latest API changes + +2005-11-22 15:09:28 +0000 Edgard Lima + + * ChangeLog: + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/musepack/gstmusepackdec.c: + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: + * ext/musepack/gstmusepackreader.h: + Musepackdec ported to 0.9. There is still a small problem to be solved, after the end of file, the pipeline doens't s... + Original commit message from CVS: + Musepackdec ported to 0.9. There is still a small problem to be solved, after the end of file, the pipeline doens't stop. + +2005-11-22 11:57:51 +0000 Andy Wingo + + * ChangeLog: + * ext/faad/gstfaad.c: + * ext/ivorbis/vorbisfile.c: + * gst/qtdemux/qtdemux.c: + * gst/speed/gstspeed.c: + * gst/tta/gstttaparse.c: + ext/faad/gstfaad.c (gst_faad_event) ext/ivorbis/vorbisfile.c (gst_ivorbisfile_loop) gst/qtdemux/qtdemux.c (gst_qtdemu... + Original commit message from CVS: + 2005-11-22 Andy Wingo + * ext/faad/gstfaad.c (gst_faad_event) + * ext/ivorbis/vorbisfile.c (gst_ivorbisfile_loop) + * gst/qtdemux/qtdemux.c (gst_qtdemux_loop_header) + * gst/speed/gstspeed.c (speed_sink_event) + * gst/tta/gstttaparse.c (gst_tta_parse_src_event) + (gst_tta_parse_parse_header): Run update-funcnames. + +2005-11-21 18:45:54 +0000 Michael Smith + + ext/faad/gstfaad.c: Don't take STREAM_LOCK in sink event handlers any more. + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_event): + Don't take STREAM_LOCK in sink event handlers any more. + +2005-11-21 18:09:01 +0000 Tim-Philipp Müller + + Update for stream lock API changes: don't take stream log in sink event handlers any longer and change GST_STREAM_LOC... + Original commit message from CVS: + * ext/dv/gstdvdemux.c: (gst_dvdemux_handle_sink_event): + * ext/flac/gstflacdec.c: (gst_flacdec_loop), + (gst_flacdec_src_event): + * ext/flac/gstflacenc.c: (gst_flacenc_sink_event): + * ext/ladspa/gstsignalprocessor.c: (gst_signal_processor_event), + (gst_signal_processor_getrange), (gst_signal_processor_chain): + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_seek): + * gst/flx/gstflxdec.c: (gst_flxdec_src_event_handler), + (gst_flxdec_sink_event_handler): + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_handle_seek_event): + * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek): + Update for stream lock API changes: don't take stream log + in sink event handlers any longer and change GST_STREAM_LOCK + to GST_PAD_STREAM_LOCK. Don't leak references in flxdec event + functions. + +2005-11-21 17:37:41 +0000 Wim Taymans + + Fix for stream lock updates. + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_sink_event): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_src_event): + * gst/tta/gstttaparse.c: (gst_tta_parse_src_event): + Fix for stream lock updates. + +2005-11-21 17:14:02 +0000 Wim Taymans + + gst/: Segment update fix. + Original commit message from CVS: + * gst-libs/gst/audio/gstbaseaudiosink.c: + (gst_base_audio_sink_class_init), (gst_base_audio_sink_init), + (gst_base_audio_sink_provide_clock), + (gst_base_audio_sink_set_clock), (gst_base_audio_sink_render), + (gst_base_audio_sink_change_state): + * gst/audioresample/gstaudioresample.c: + Segment update fix. + +2005-11-21 16:45:46 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: j@bootlab.org, #321903). + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add DX50, DIVX and DIV3 fourccs (patch by + j@bootlab.org, #321903). + +2005-11-21 16:37:18 +0000 Andy Wingo + + *.*: Ran scripts/update-macros. Oh yes. + Original commit message from CVS: + 2005-11-21 Andy Wingo + * *.h: + * *.c: Ran scripts/update-macros. Oh yes. + +2005-11-21 14:39:04 +0000 Tim-Philipp Müller + + Update for GST_FOURCC_FORMAT API change. + Original commit message from CVS: + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_get_format_from_caps): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse), (qtdemux_type_get), (qtdemux_node_dump_foreach), + (qtdemux_dump_hdlr), (qtdemux_dump_dref), (qtdemux_dump_stsd), + (qtdemux_dump_dcom), (qtdemux_parse_trak), (qtdemux_video_caps), + (qtdemux_audio_caps): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), + (gst_v4l2src_capture_init), (gst_v4l2src_get_size_limits): + Update for GST_FOURCC_FORMAT API change. + +2005-11-21 14:33:11 +0000 Jan Schmidt + + Rename gst_caps_structure_fixate_* to gst_structure_fixate_* (#322027) + Original commit message from CVS: + * ext/audioresample/gstaudioresample.c: + * ext/polyp/polypsink.c: (gst_polypsink_sink_fixate): + * gst/librfb/gstrfbsrc.c: (gst_rfbsrc_fixate): + * gst/modplug/gstmodplug.cc: + * sys/glsink/glimagesink.c: (gst_glimagesink_fixate): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_fixate): + Rename gst_caps_structure_fixate_* to gst_structure_fixate_* + (#322027) + +2005-11-21 03:21:04 +0000 Edgard Lima + + * ChangeLog: + * common: + * ext/ivorbis/Makefile.am: + * ext/ivorbis/vorbisfile.c: + Now it works in push-mode. Tested with gnomevfssrc location=http://.. ! tremor ! alsasink. + Original commit message from CVS: + Now it works in push-mode. Tested with gnomevfssrc location=http://.. ! tremor ! alsasink. + Some issues to be solved yet: + 1- set correct timestamps + 2- seek is forced to disabled in pull-mode + +2005-11-16 17:26:10 +0000 Christian Schaller + + * common: + * gst-plugins-bad.spec.in: + make it work + Original commit message from CVS: + make it work + +2005-11-15 16:50:18 +0000 Tim-Philipp Müller + + ext/faac/gstfaac.c: Set proper caps on source pad (#320532). + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init), + (gst_faac_sink_setcaps), (gst_faac_configure_source_pad), + (gst_faac_chain): + Set proper caps on source pad (#320532). + * ext/faad/gstfaad.c: + Don't use gtk-doc markers for comment block. + +2005-11-15 08:38:16 +0000 Christian Schaller + + * ext/ivorbis/vorbis.c: + set rank to secondary as you never want this to be used instead of normal oggdemux etc. + Original commit message from CVS: + set rank to secondary as you never want this to be used instead of normal oggdemux etc. + +2005-11-14 17:11:55 +0000 Andy Wingo + + configure.ac (GST_PLUGIN_LDFLAGS): -no-undefined for better debugging, allows dll builds on windows. Fixes #316076. + Original commit message from CVS: + 2005-11-14 Andy Wingo + * configure.ac (GST_PLUGIN_LDFLAGS): -no-undefined for better + debugging, allows dll builds on windows. Fixes #316076. + +2005-11-14 02:13:26 +0000 Thomas Vander Stichele + + * common: + * ext/ladspa/gstladspa.c: + rework configure.ac; make asterisk rtp stuff compile on mingw + Original commit message from CVS: + rework configure.ac; make asterisk rtp stuff compile on mingw + +2005-11-11 19:39:17 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + back to head + Original commit message from CVS: + back to head + +=== release 0.9.5 === + +2005-11-11 19:38:17 +0000 Thomas Vander Stichele + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + releasing 0.9.5 + Original commit message from CVS: + releasing 0.9.5 + +2005-11-11 18:54:14 +0000 Michael Smith + + * ChangeLog: + * ext/faad/gstfaad.c: + Fix compile on systems with broken faad headers. + Original commit message from CVS: + Fix compile on systems with broken faad headers. + +2005-11-11 18:17:22 +0000 Michael Smith + + ext/faad/gstfaad.c: Call functions with the correct API. Unfortunately, unless your distribution patches upstream, th... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_setcaps), (gst_faad_chain): + Call functions with the correct API. Unfortunately, unless your + distribution patches upstream, the public header file for FAAD + doesn't actually declare the API accurately. So, some nastiness + ensues... + +2005-11-10 12:34:26 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Add support for custom genre tags. + Original commit message from CVS: + Reviewed by: Tim-Philipp Müller + * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta): + Add support for custom genre tags. + +2005-11-09 01:04:05 +0000 Tim-Philipp Müller + + Don't use gtk-doc markers for normal comments. Fix gtk-doc formatting where required. + Original commit message from CVS: + * ext/tarkin/wavelet.c: + * ext/tarkin/wavelet.h: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/vbidec/vbidata.c: + * gst/vbidec/vbiscreen.h: + * sys/dxr3/ac3_padder.c: + * sys/dxr3/dxr3audiosink.c: + * sys/dxr3/dxr3spusink.c: + * sys/dxr3/dxr3videosink.c: + * sys/qcam/dark.c: + Don't use gtk-doc markers for normal comments. Fix + gtk-doc formatting where required. + +2005-11-08 14:20:50 +0000 Christian Schaller + + * configure.ac: + * ext/Makefile.am: + remove wrong mpegstream addition + Original commit message from CVS: + remove wrong mpegstream addition + +2005-11-08 14:17:03 +0000 Christian Schaller + + * configure.ac: + * gst-plugins-bad.spec.in: + add tremor plugins to needed buildscripts + Original commit message from CVS: + add tremor plugins to needed buildscripts + +2005-11-08 13:55:13 +0000 Edgard Lima + + * ChangeLog: + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/ivorbis/vorbis.c: + * ext/ivorbis/vorbisfile.c: + Ported to 0.9. Some issues to be solved yet: 1- set correct timestamps 2- seg fault when eos 3- seek is now disabled + Original commit message from CVS: + Ported to 0.9. Some issues to be solved yet: + 1- set correct timestamps + 2- seg fault when eos + 3- seek is now disabled + +2005-11-06 22:28:33 +0000 Julien Moutte + + examples/Makefile.am: Cleanup non existing examples. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * examples/Makefile.am: Cleanup non existing + examples. + +2005-11-06 22:23:07 +0000 Julien Moutte + + docs/plugins/inspect.stamp: Add missing files. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * docs/plugins/inspect.stamp: Add missing files. + +2005-11-06 22:19:05 +0000 Julien Moutte + + examples/Makefile.am: Make buildbot happy. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * examples/Makefile.am: Make buildbot happy. + +2005-11-06 22:16:27 +0000 Julien Moutte + + Makefile.am: examples in dist subdirs. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * Makefile.am: examples in dist subdirs. + * configure.ac: enable parameter for building + examples. + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * examples/Makefile.am: Updates. + +2005-11-06 21:55:01 +0000 Julien Moutte + + Enable documentation. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * Makefile.am: + * autogen.sh: + * configure.ac: + * docs/Makefile.am: + * docs/plugins/.cvsignore: + * docs/plugins/Makefile.am: + * docs/plugins/gst-plugins-bad-plugins-decl-list.txt: + * docs/plugins/gst-plugins-bad-plugins-decl.txt: + * docs/plugins/gst-plugins-bad-plugins-docs.sgml: + * docs/plugins/gst-plugins-bad-plugins-sections.txt: + * docs/plugins/gst-plugins-bad-plugins-undocumented.txt: + * docs/plugins/gst-plugins-bad-plugins.args: + * docs/plugins/gst-plugins-bad-plugins.hierarchy: + * docs/plugins/gst-plugins-bad-plugins.interfaces: + * docs/plugins/gst-plugins-bad-plugins.prerequisites: + * docs/plugins/gst-plugins-bad-plugins.signals: + * docs/plugins/gst-plugins-bad-plugins.types: + * docs/plugins/inspect/plugin-dfbvideosink.xml: + * docs/version.entities.in: Enable documentation. + * examples/Makefile.am: + * examples/directfb/Makefile.am: + * examples/directfb/decker.ttf: + * examples/directfb/dfblogo.png: + * examples/directfb/gstdfb.c: (myclock), (dynamic_link), + (size_changed), (setup_dynamic_link), (main): Add an example + application for DirectFB. + +2005-11-05 23:36:20 +0000 Julien Moutte + + ext/directfb/Makefile.am: Add the example application. + Original commit message from CVS: + 2005-11-06 Julien MOUTTE + * ext/directfb/Makefile.am: Add the example application. + * ext/directfb/dfb-example.c: (get_me_out), (main): + Here is an example application that runs videotestsrc for 20 + seconds. It's included in the documentation. + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers), + (gst_dfbvideosink_setup), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_getcaps), (gst_dfbvideosink_buffer_alloc): + More fixes, calculate new size of the buffer when renegotiating. + This completely breaks ffmpegcolorspace but i need to discuss + that with Wim on monday. Add documentation. + +2005-11-05 19:55:12 +0000 Julien Moutte + + ext/directfb/dfbvideosink.c: Make acceleration detection work, better, add safety checks and ARGB support for cards t... + Original commit message from CVS: + 2005-11-05 Julien MOUTTE + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_enum_layers), + (gst_dfbvideosink_setup), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_getcaps): Make acceleration detection work, + better, add safety checks and ARGB support for cards that + support it. + +2005-11-04 18:28:56 +0000 Julien Moutte + + ext/directfb/dfbvideosink.*: Now does clipping when surface is too small, handles upstream elements that are not call... + Original commit message from CVS: + 2005-11-04 Julien MOUTTE + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_surface_create), + (gst_dfbvideosink_surface_destroy), + (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps), + (gst_dfbvideosink_center_rect), (gst_dfbvideosink_show_frame), + (gst_dfbvideosink_buffer_alloc): + * ext/directfb/dfbvideosink.h: Now does clipping when surface + is too small, handles upstream elements that are not calling + gst_pad_alloc_buffer, fixes a lot of bugs. + +2005-11-03 22:36:42 +0000 Julien Moutte + + ext/directfb/Makefile.am: Prepare for liboil usage. + Original commit message from CVS: + 2005-11-03 Julien MOUTTE + * ext/directfb/Makefile.am: Prepare for liboil usage. + * ext/directfb/dfbvideosink.c: (gst_dfbvideosink_show_frame), + (gst_dfbvideosink_buffer_alloc): Prepare for liboil, handle + rendering in external surface correctly. Will commit a neat + example soon. + +2005-11-03 16:59:20 +0000 Edgard Lima + + * ChangeLog: + * ext/sdl/sdlvideosink.c: + * ext/sdl/sdlvideosink.h: + Add support to exit when 'Esc' key is pressed. + Original commit message from CVS: + Add support to exit when 'Esc' key is pressed. + +2005-11-02 17:12:31 +0000 Julien Moutte + + configure.ac: Requires DirectFB 0.9.24 + Original commit message from CVS: + 2005-11-02 Julien MOUTTE + * configure.ac: Requires DirectFB 0.9.24 + +2005-11-02 12:53:00 +0000 Christian Schaller + + * ext/Makefile.am: + add directfb to distdir + Original commit message from CVS: + add directfb to distdir + +2005-11-02 12:43:03 +0000 Julien Moutte + + Complete rewrite/port of + Original commit message from CVS: + 2005-11-02 Julien MOUTTE + * configure.ac: + * ext/Makefile.am: + * ext/directfb/Makefile.am: + * ext/directfb/dfbvideosink.c: + (gst_dfbvideosink_get_format_name), + (gst_dfbvideosink_surface_create), + (gst_dfbvideosink_surface_destroy), + (gst_dfbvideosink_event_thread), (gst_dfbvideosink_enum_layers), + (gst_dfbvideosink_enum_vmodes), (gst_dfbvideosink_enum_devices), + (gst_dfbvideosink_setup), (gst_dfbvideosink_cleanup), + (gst_dfbvideosink_get_format_from_caps), + (gst_dfbvideosink_get_caps_from_format), + (gst_dfbvideosink_can_blit_from_format), + (gst_dfbvideosink_get_best_vmode), (gst_dfbvideosink_getcaps), + (gst_dfbvideosink_setcaps), (gst_dfbvideosink_change_state), + (gst_dfbvideosink_get_times), (gst_dfbvideosink_center_rect), + (gst_dfbvideosink_show_frame), + (gst_dfbvideosink_bufferpool_clear), + (gst_dfbvideosink_buffer_alloc), (gst_dfbsurface_finalize), + (gst_dfbsurface_init), (gst_dfbsurface_class_init), + (gst_dfbsurface_get_type), + (gst_dfbvideosink_interface_supported), + (gst_dfbvideosink_interface_init), + (gst_dfbvideosink_navigation_send_event), + (gst_dfbvideosink_navigation_init), + (gst_dfbvideosink_set_property), + (gst_dfbvideosink_get_property), + (gst_dfbvideosink_init), (gst_dfbvideosink_base_init), + (gst_dfbvideosink_class_init), (gst_dfbvideosink_get_type), + (plugin_init): + * ext/directfb/dfbvideosink.h: + * ext/directfb/directfbvideosink.c: + * ext/directfb/directfbvideosink.h: Complete rewrite/port of + DirectFB video sink to 0.9. Handles reverse negotiation, + hardware + scaling, navigation, buffer allocation from video memory etc... + +2005-10-31 20:57:42 +0000 Edgard Lima + + * ChangeLog: + * ext/sdl/sdlvideosink.c: + Changed property full-screen to fullscreen, using SDL_SWSURFACE instead of SDL_HWSURFACE when in full screen mode. + Original commit message from CVS: + Changed property full-screen to fullscreen, using SDL_SWSURFACE instead of SDL_HWSURFACE when in full screen mode. + +2005-10-31 18:07:30 +0000 Edgard Lima + + * ChangeLog: + * common: + * ext/sdl/sdlvideosink.c: + * ext/sdl/sdlvideosink.h: + Added a property that allows full-screen. + Original commit message from CVS: + Added a property that allows full-screen. + +2005-10-28 15:11:18 +0000 Tim-Philipp Müller + + ext/sdl/sdlvideosink.*: Fix I420 output on some machines (not very nice, but should work). + Original commit message from CVS: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init), + (gst_sdlvideosink_class_init), + (gst_sdlvideosink_get_sdl_from_fourcc), (gst_sdlvideosink_setcaps), + (gst_sdlvideosink_show_frame): + * ext/sdl/sdlvideosink.h: + Fix I420 output on some machines (not very nice, but should work). + Add an 'sdlvideosink' debug category. Disable formats that do + not work. Fix some vararg function issues. + +2005-10-27 20:16:40 +0000 Wim Taymans + + ext/sdl/sdlvideosink.c: Fix SDL videosink and did some cleanups. + Original commit message from CVS: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize), + (gst_sdlvideosink_get_times), (gst_sdlvideosink_class_init), + (gst_sdlvideosink_init), (gst_sdlvideosink_lock), + (gst_sdlvideosink_initsdl), (gst_sdlvideosink_create), + (gst_sdlvideosink_show_frame), (gst_sdlvideosink_set_property), + (gst_sdlvideosink_get_property), (gst_sdlvideosink_change_state): + Fix SDL videosink and did some cleanups. + +2005-10-27 19:36:18 +0000 Edgard Lima + + * ChangeLog: + * ext/sdl/sdlvideosink.c: + * ext/sdl/sdlvideosink.h: + Trying to fix videos out of sync (not fixed yet) + Original commit message from CVS: + Trying to fix videos out of sync (not fixed yet) + +2005-10-27 16:16:00 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + removed unused language stuff + Original commit message from CVS: + removed unused language stuff + +2005-10-27 12:49:54 +0000 Thomas Vander Stichele + + * Makefile.am: + * configure.ac: + don't do po until something wants to be translated + Original commit message from CVS: + don't do po until something wants to be translated + +2005-10-27 11:27:53 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.h: Remove got_redirect from class structure as well. + Original commit message from CVS: + * gst/qtdemux/qtdemux.h: + Remove got_redirect from class structure as well. + +2005-10-27 11:25:19 +0000 Tim-Philipp Müller + + gst/qtdemux/qtdemux.c: Remove 'got-redirect' signal and post element message on the bus instead. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init), + (qtdemux_parse_tree): + Remove 'got-redirect' signal and post element message + on the bus instead. + +2005-10-26 15:45:11 +0000 Zeeshan Ali + + * ChangeLog: + * ext/gsm/gstgsm.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.c: + Fixing stuff as wingo pointed out. + Original commit message from CVS: + Fixing stuff as wingo pointed out. + +2005-10-26 13:40:33 +0000 Thomas Vander Stichele + + * po/POTFILES.in: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + fix distcheck + Original commit message from CVS: + fix distcheck + +2005-10-26 13:01:20 +0000 Thomas Vander Stichele + + * gst/tta/gstttaparse.c: + don't put crap in user-visible strings + Original commit message from CVS: + don't put crap in user-visible strings + +2005-10-25 16:12:03 +0000 Zeeshan Ali + + * ChangeLog: + * ext/gsm/gstgsm.c: + * ext/gsm/gstgsmdec.c: + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.c: + * ext/gsm/gstgsmenc.h: + Over-writing Wim's gsm plugins (currently not working) with that from the farsight repo. Also made sure that they wor... + Original commit message from CVS: + Over-writing Wim's gsm plugins (currently not working) with that from the farsight repo. Also made sure that they work with the RTP (de)payloader. + +2005-10-25 13:31:09 +0000 Flavio Oliveira + + * ChangeLog: + * ext/gsm/gstgsmenc.c: + * ext/gsm/gstgsmenc.h: + Fixed event handling in gsmenc. + Original commit message from CVS: + Fixed event handling in gsmenc. + +2005-10-24 13:02:32 +0000 Christian Schaller + + * ChangeLog: + * configure.ac: + port over plugin listing from base + Original commit message from CVS: + port over plugin listing from base + +2005-10-23 23:07:02 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + back to HEAD + Original commit message from CVS: + back to HEAD + +=== release 0.9.4 === + +2005-10-23 22:46:40 +0000 Thomas Vander Stichele + + * ChangeLog: + * NEWS: + * RELEASE: + * configure.ac: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + releasing 0.9.4 + Original commit message from CVS: + releasing 0.9.4 + +2005-10-23 14:38:00 +0000 Julien Moutte + + gst/tta/gstttaparse.c: STOPPED->FAILED. + Original commit message from CVS: + 2005-10-23 Julien MOUTTE + * gst/tta/gstttaparse.c: (gst_tta_parse_loop): STOPPED->FAILED. + +2005-10-21 16:11:53 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + latest updates + Original commit message from CVS: + latest updates + +2005-10-20 15:08:14 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.*: Do some timestamp smoothing (matroskademux apparently sends multiple buffers in a row with the sa... + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init), + (gst_faad_init), (gst_faad_srcgetcaps), (gst_faad_event), + (gst_faad_chain), (gst_faad_change_state): + * ext/faad/gstfaad.h: + Do some timestamp smoothing (matroskademux apparently sends + multiple buffers in a row with the same timestamp); fix + duration on outgoing buffers; fix change state function; use + GST_DEBUG_FUNCPTR for pad functions. + +2005-10-19 15:58:01 +0000 Wim Taymans + + gst/: API change fix. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_query_types), + (gst_qtdemux_handle_src_query): + * gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query): + * gst/tta/gstttaparse.c: (gst_tta_parse_src_event), + (gst_tta_parse_get_query_types), (gst_tta_parse_query): + API change fix. + +2005-10-19 12:41:49 +0000 Tim-Philipp Müller + + configure.ac: All the cool kids use GST_DOCBOOK_CHECK now. + Original commit message from CVS: + * configure.ac: + All the cool kids use GST_DOCBOOK_CHECK now. + +2005-10-18 08:39:41 +0000 Julien Moutte + + gst/speed/Makefile.am: Fix build of speed. + Original commit message from CVS: + 2005-10-18 Julien MOUTTE + * gst/speed/Makefile.am: Fix build of speed. + +2005-10-17 20:48:35 +0000 Edgard Lima + + * ChangeLog: + * common: + * configure.ac: + * gst/speed/gstspeed.c: + * gst/speed/gstspeed.h: + Fixed Speed - Recovered featured missed since version 1.37, and changed other minor things. + Original commit message from CVS: + Fixed Speed - Recovered featured missed since version 1.37, and changed other + minor things. + +2005-10-16 17:08:26 +0000 Tim-Philipp Müller + + configure.ac: Fix glib check + Original commit message from CVS: + * configure.ac: + Fix glib check + +2005-10-16 13:54:38 +0000 Thomas Vander Stichele + + * common: + * gst/audioresample/gstaudioresample.c: + restructure configure.ac, use correct libtool LDFLAGS, fix up defines + Original commit message from CVS: + restructure configure.ac, use correct libtool LDFLAGS, fix up defines + +2005-10-13 15:31:20 +0000 Stefan Kost + + ex/: and more typos fixed + Original commit message from CVS: + * examples/stats/mp2ogg.c: + * ext/tarkin/tarkin.c: (tarkin_analysis_framein), + (tarkin_synthesis_packetin): + and more typos fixed + +2005-10-13 11:37:39 +0000 Tim-Philipp Müller + + ext/faac/gstfaac.c: Gst09-ize code a little bit more: use gst_pad_alloc_buffer(), move event handling from chain func... + Original commit message from CVS: + * ext/faac/gstfaac.c: (gst_faac_class_init), (gst_faac_init), + (gst_faac_sink_setcaps), (gst_faac_src_setcaps), + (gst_faac_sink_event), (gst_faac_chain), (gst_faac_set_property), + (gst_faac_get_property), (gst_faac_change_state): + Gst09-ize code a little bit more: use gst_pad_alloc_buffer(), + move event handling from chain function into an event function, + add some locks here and there, do some cleanups; disable 32-bit + integer and float input formats until we're sure that those + actually work (couldn't play back the produced files with + anything). + +2005-10-12 14:29:55 +0000 Stefan Kost + + renamed GST_FLAGS macros to GST_OBJECT_FLAGS moved bitshift from macro to enum definition + Original commit message from CVS: + * examples/indexing/indexmpeg.c: (main): + * ext/artsd/gstartsdsink.c: (gst_artsdsink_open_audio), + (gst_artsdsink_close_audio), (gst_artsdsink_change_state): + * ext/artsd/gstartsdsink.h: + * ext/audiofile/gstafparse.c: (gst_afparse_open_file), + (gst_afparse_close_file): + * ext/audiofile/gstafparse.h: + * ext/audiofile/gstafsink.c: (gst_afsink_open_file), + (gst_afsink_close_file), (gst_afsink_chain), + (gst_afsink_change_state): + * ext/audiofile/gstafsink.h: + * ext/audiofile/gstafsrc.c: (gst_afsrc_open_file), + (gst_afsrc_close_file), (gst_afsrc_change_state): + * ext/audiofile/gstafsrc.h: + * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_init): + * ext/directfb/directfbvideosink.c: (gst_directfbvideosink_init): + * ext/dts/gstdtsdec.c: (gst_dtsdec_init): + * ext/jack/gstjack.h: + * ext/jack/gstjackbin.c: (gst_jack_bin_init), + (gst_jack_bin_change_state): + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_init): + * ext/nas/nassink.c: (gst_nassink_open_audio), + (gst_nassink_close_audio), (gst_nassink_change_state): + * ext/nas/nassink.h: + * ext/polyp/polypsink.c: (gst_polypsink_init): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_change_state): + * ext/sdl/sdlvideosink.h: + * ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init): + * ext/sndfile/gstsf.c: (gst_sf_set_property), + (gst_sf_change_state), (gst_sf_release_request_pad), + (gst_sf_open_file), (gst_sf_close_file), (gst_sf_loop): + * ext/sndfile/gstsf.h: + * ext/swfdec/gstswfdec.c: (gst_swfdec_init): + * ext/tarkin/gsttarkindec.c: (gst_tarkindec_init): + * gst/apetag/apedemux.c: (gst_ape_demux_init): + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init): + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_init): + * gst/festival/gstfestival.c: (gst_festival_change_state): + * gst/festival/gstfestival.h: + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init): + * gst/multifilesink/gstmultifilesink.c: (gst_multifilesink_init), + (gst_multifilesink_set_location), (gst_multifilesink_open_file), + (gst_multifilesink_close_file), (gst_multifilesink_next_file), + (gst_multifilesink_pad_query), (gst_multifilesink_handle_event), + (gst_multifilesink_chain), (gst_multifilesink_change_state): + * gst/multifilesink/gstmultifilesink.h: + * gst/videodrop/gstvideodrop.c: (gst_videodrop_init): + * sys/cdrom/gstcdplayer.c: (cdplayer_init): + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init), + (dxr3audiosink_open), (dxr3audiosink_close), + (dxr3audiosink_chain_pcm), (dxr3audiosink_chain_ac3), + (dxr3audiosink_change_state): + * sys/dxr3/dxr3audiosink.h: + * sys/dxr3/dxr3spusink.c: (dxr3spusink_init), (dxr3spusink_open), + (dxr3spusink_close), (dxr3spusink_chain), + (dxr3spusink_change_state): + * sys/dxr3/dxr3spusink.h: + * sys/dxr3/dxr3videosink.c: (dxr3videosink_init), + (dxr3videosink_open), (dxr3videosink_close), + (dxr3videosink_write_data), (dxr3videosink_change_state): + * sys/dxr3/dxr3videosink.h: + * sys/glsink/glimagesink.c: (gst_glimagesink_init): + * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state), + (gst_qcamsrc_open), (gst_qcamsrc_close): + * sys/qcam/gstqcamsrc.h: + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init): + * sys/vcd/vcdsrc.c: (gst_vcdsrc_set_property), (gst_vcdsrc_get), + (gst_vcdsrc_open_file), (gst_vcdsrc_close_file), + (gst_vcdsrc_change_state), (gst_vcdsrc_recalculate): + * sys/vcd/vcdsrc.h: + renamed GST_FLAGS macros to GST_OBJECT_FLAGS + moved bitshift from macro to enum definition + +2005-10-12 13:54:34 +0000 Tim-Philipp Müller + + ext/faac/gstfaac.c: Fix depth/width handling for float audio (#318659). + Original commit message from CVS: + Reviewed by: Tim-Philipp Müller + * ext/faac/gstfaac.c: (gst_faac_sink_setcaps): + Fix depth/width handling for float audio (#318659). + +2005-10-12 12:53:07 +0000 Tim-Philipp Müller + + ext/faac/gstfaac.c: Refcount fixes (#318659) + Original commit message from CVS: + Reviewed by: Tim-Philipp Müller + * ext/faac/gstfaac.c: (gst_faac_sink_setcaps), + (gst_faac_src_setcaps), (gst_faac_chain): + Refcount fixes (#318659) + +2005-10-12 09:15:40 +0000 Julien Moutte + + ext/Makefile.am: libvisual and snapshot are not here anymore. + Original commit message from CVS: + 2005-10-12 Julien MOUTTE + * ext/Makefile.am: libvisual and snapshot are not here anymore. + Makes + automake-1.7 happy again. + +2005-10-11 23:03:09 +0000 Tim-Philipp Müller + + ext/faad/gstfaad.c: newsegment API update + Original commit message from CVS: + * ext/faad/gstfaad.c: (gst_faad_event): + newsegment API update + +2005-10-11 16:34:36 +0000 Wim Taymans + + gst/: newsegment API update. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + * gst/tta/gstttaparse.c: (gst_tta_parse_src_event), + (gst_tta_parse_parse_header): + newsegment API update. + +2005-10-07 15:24:24 +0000 Andy Wingo + + ext/raw1394/gstdv1394src.c: Make interruptible, so it won't block forever in a read(). + Original commit message from CVS: + 2005-10-07 Andy Wingo + * ext/raw1394/gstdv1394src.c: Make interruptible, so it won't + block forever in a read(). + +2005-10-04 15:49:35 +0000 Christian Schaller + + * gst-plugins-bad.spec.in: + fix spec file + Original commit message from CVS: + fix spec file + +2005-10-03 18:00:32 +0000 Thomas Vander Stichele + + * ChangeLog: + * configure.ac: + back to head + Original commit message from CVS: + back to head + +=== release 0.9.3 === + +2005-10-03 17:50:21 +0000 Thomas Vander Stichele + + * ChangeLog: + * NEWS: + * RELEASE: + * common: + * configure.ac: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + release time + Original commit message from CVS: + release time + +2005-09-28 13:38:02 +0000 Wim Taymans + + gst/qtdemux/qtdemux.c: No need to take stream lock here. + Original commit message from CVS: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + No need to take stream lock here. + +2005-09-26 17:57:56 +0000 Thomas Vander Stichele + + * configure.ac: + fix build + Original commit message from CVS: + fix build + +2005-09-26 15:19:38 +0000 Christian Schaller + + * ChangeLog: + * common: + * configure.ac: + * gst/librfb/Makefile.am: + some disting and build fixes + Original commit message from CVS: + some disting and build fixes + +2005-09-23 17:05:29 +0000 Edgard Lima + + * ChangeLog: + * PORTED_09: + * ext/gsm/Makefile.am: + * ext/gsm/gstgsm.c: + * ext/gsm/gstgsmdec.c: + Gsmdec ported to 0.9. Tested with filesrc ! gsmdec ! alsasink and osssink. + Original commit message from CVS: + Gsmdec ported to 0.9. Tested with filesrc ! gsmdec ! alsasink and osssink. + +2005-09-23 16:40:27 +0000 David Schleef + + gst/audioresample/: Convert to using gst debugging + Original commit message from CVS: + * gst/audioresample/Makefile.am: + * gst/audioresample/debug.h: + * gst/audioresample/gstaudioresample.c: + * gst/audioresample/resample.c: Convert to using gst debugging + +2005-09-23 04:22:54 +0000 Thomas Vander Stichele + + * ext/ladspa/Makefile.am: + fix build and use of GST_LIBS + Original commit message from CVS: + fix build and use of GST_LIBS + +2005-09-22 11:17:26 +0000 Arwed v. Merkatz + + * ChangeLog: + * configure.ac: + * gst/tta/gstttadec.c: + * gst/tta/gstttaparse.c: + * gst/tta/gstttaparse.h: + tta plugin ported to 0.9 + Original commit message from CVS: + tta plugin ported to 0.9 + +2005-09-21 20:33:42 +0000 Flavio Oliveira + + * ChangeLog: + * ext/gsm/gstgsmenc.c: + Setting caps on the outgoing buffers. + Original commit message from CVS: + Setting caps on the outgoing buffers. + +2005-09-20 19:25:12 +0000 Thomas Vander Stichele + + * ext/sdl/Makefile.am: + fix Makefile.am ugh + Original commit message from CVS: + fix Makefile.am ugh + +2005-09-20 18:49:05 +0000 Edgard Lima + + * ChangeLog: + * common: + * configure.ac: + * ext/sdl/Makefile.am: + Fixed configure.ac and ext/sdl/Makefile.am for sdl port to 0.9. + Original commit message from CVS: + Fixed configure.ac and ext/sdl/Makefile.am for sdl port to 0.9. + +2005-09-19 21:51:02 +0000 Edgard Lima + + * ChangeLog: + sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec + Original commit message from CVS: + sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec + +2005-09-19 21:47:54 +0000 Edgard Lima + + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/sdl/Makefile.am: + * ext/sdl/sdlvideosink.c: + sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec + Original commit message from CVS: + sdlvideosink ported to 0.9 and tested with filesrc ! mpeg2dec + +2005-09-19 16:44:37 +0000 Thomas Vander Stichele + + * Makefile.am: + * common: + add check-valgrind target + Original commit message from CVS: + add check-valgrind target + +2005-09-09 17:53:47 +0000 Jan Schmidt + + check/: Add extra tests for basetransform based components. + Original commit message from CVS: + * check/Makefile.am: + * check/pipelines/simple_launch_lines.c: (setup_pipeline), + (run_pipeline), (GST_START_TEST), (simple_launch_lines_suite): + Add extra tests for basetransform based components. + Comment out the test_element_negotiation test until we decide + if it's testing correct behaviour. + * ext/libvisual/visual.c: (gst_visual_init), (get_buffer), + (gst_visual_chain), (gst_visual_change_state): + Slightly more correct but still bogus timestamping. + Fix state change function. + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_class_init): + * gst/audioresample/gstaudioresample.c: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_class_init): + * gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init), + (gst_videoscale_prepare_size), (gst_videoscale_set_caps), + (gst_videoscale_prepare_image): + * gst/volume/gstvolume.c: (gst_volume_class_init), + (volume_transform_ip): + Basetransform updates. Enable passthrough modes. + * sys/ximage/ximagesink.c: (gst_ximage_buffer_init), + (gst_ximagesink_renegotiate_size), (gst_ximagesink_xcontext_get), + (gst_ximagesink_setcaps), (gst_ximagesink_buffer_alloc): + Negotiation fix that allows the window to return to the original + size and renegotiate passthrough upstream. Extra debug output. + +2005-09-08 15:56:38 +0000 Flavio Oliveira + + * ChangeLog: + * PORTED_09: + * configure.ac: + * gst/speed/Makefile.am: + * gst/speed/gstspeed.c: + Ported speed Plugin to GStreamer 0.9 + Original commit message from CVS: + Ported speed Plugin to GStreamer 0.9 + +2005-09-06 14:06:55 +0000 Thomas Vander Stichele + + * configure.ac: + back to HEAD + Original commit message from CVS: + back to HEAD + +=== release 0.9.1 === + +2005-09-06 14:05:50 +0000 Thomas Vander Stichele + + * ChangeLog: + * Makefile.am: + * NEWS: + * README: + * RELEASE: + * autogen.sh: + * common: + * configure.ac: + * gst-plugins.spec.in: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + releasing 0.9.1 + Original commit message from CVS: + releasing 0.9.1 + +2005-09-05 17:20:29 +0000 Jan Schmidt + + * ChangeLog: + * examples/gstplay/player.c: + * examples/stats/mp2ogg.c: + * ext/artsd/gstartsdsink.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/cdaudio/gstcdaudio.c: + * ext/dirac/gstdiracdec.cc: + * ext/directfb/directfbvideosink.c: + * ext/dts/gstdtsdec.c: + * ext/faac/gstfaac.c: + * ext/hermes/gsthermescolorspace.c: + * ext/ivorbis/vorbisfile.c: + * ext/jack/gstjack.c: + * ext/jack/gstjackbin.c: + * ext/lcs/gstcolorspace.c: + * ext/libmms/gstmms.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mplex/gstmplex.cc: + * ext/musepack/gstmusepackdec.c: + * ext/musicbrainz/gsttrm.c: + * ext/nas/nassink.c: + * ext/polyp/polypsink.c: + * ext/sdl/sdlvideosink.c: + * ext/shout/gstshout.c: + * ext/smoothwave/gstsmoothwave.c: + * ext/sndfile/gstsf.c: + * ext/swfdec/gstswfdec.c: + * ext/tarkin/gsttarkindec.c: + * ext/xine/xine.c: + * ext/xine/xineaudiodec.c: + * ext/xine/xineaudiosink.c: + * ext/xine/xineinput.c: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * gst/apetag/apedemux.c: + * gst/cdxaparse/gstcdxaparse.c: + * gst/cdxaparse/gstcdxastrip.c: + * gst/cdxaparse/gstvcdparse.c: + * gst/colorspace/gstcolorspace.c: + * gst/festival/gstfestival.c: + * gst/librfb/gstrfbsrc.c: + * gst/modplug/gstmodplug.cc: + * gst/mpeg1videoparse/gstmp1videoparse.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/multifilesink/gstmultifilesink.c: + * gst/smoothwave/gstsmoothwave.c: + * gst/speed/gstspeed.c: + * gst/switch/gstswitch.c: + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/y4m/gsty4mencode.c: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * sys/cdrom/gstcdplayer.c: + * sys/dxr3/dxr3audiosink.c: + * sys/dxr3/dxr3spusink.c: + * sys/dxr3/dxr3videosink.c: + * sys/glsink/glimagesink.c: + * sys/qcam/gstqcamsrc.c: + * sys/sunaudio/gstsunaudio.c: + * sys/sunaudio/gstsunaudiosrc.c: + * sys/sunaudio/gstsunelement.c: + * sys/v4l2/gstv4l2element.c: + * sys/v4l2/gstv4l2src.c: + * sys/vcd/vcdsrc.c: + Fix up all the state change functions. + Original commit message from CVS: + Fix up all the state change functions. + +2005-09-05 15:10:18 +0000 Thomas Vander Stichele + + * Makefile.am: + * configure.ac: + * ext/faad/gstfaad.c: + * gst-plugins-bad.spec.in: + * gst/qtdemux/qtdemux.c: + * po/POTFILES.in: + cleaning up bad + Original commit message from CVS: + cleaning up bad + +2005-09-05 13:49:41 +0000 Thomas Vander Stichele + + * ChangeLog: + * common: + * docs/random/ChangeLog-0.8: + * ext/Makefile.am: + created gst-plugins-bad + Original commit message from CVS: + created gst-plugins-bad + +=== release 0.9.2 === + +2005-09-04 10:38:45 +0000 Thomas Vander Stichele + + fix distcheck + Original commit message from CVS: + * common/gtk-doc-plugins.mak: + * docs/plugins/Makefile.am: + fix distcheck + * gst/audioresample/resample.c: + fix wrong docstring + +2005-09-02 20:21:17 +0000 Flavio Oliveira + + * ChangeLog: + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/gsm/Makefile.am: + * ext/gsm/gstgsm.c: + * ext/gsm/gstgsmenc.c: + Ported GSM Encoder to GStreamer 0.9 + Original commit message from CVS: + Ported GSM Encoder to GStreamer 0.9 + +2005-09-02 15:44:44 +0000 Andy Wingo + + * ext/ladspa/gstsignalprocessor.c: + All plugins updated for element state changes. + Original commit message from CVS: + 2005-09-02 Andy Wingo + * All plugins updated for element state changes. + +2005-09-02 15:43:14 +0000 Andy Wingo + + * common: + * tests/check/elements/audioresample.c: + All plugins updated for element state changes. + Original commit message from CVS: + 2005-09-02 Andy Wingo + * All plugins updated for element state changes. + +2005-09-01 19:53:12 +0000 Flavio Oliveira + + * PORTED_09: + update PORTED_09 file + Original commit message from CVS: + update PORTED_09 file + diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..b42a17a --- /dev/null +++ b/INSTALL @@ -0,0 +1,182 @@ +Basic Installation +================== + + These are generic installation instructions. + + The `configure' shell script attempts to guess correct values for +various system-dependent variables used during compilation. It uses +those values to create a `Makefile' in each directory of the package. +It may also create one or more `.h' files containing system-dependent +definitions. Finally, it creates a shell script `config.status' that +you can run in the future to recreate the current configuration, a file +`config.cache' that saves the results of its tests to speed up +reconfiguring, and a file `config.log' containing compiler output +(useful mainly for debugging `configure'). + + If you need to do unusual things to compile the package, please try +to figure out how `configure' could check whether to do them, and mail +diffs or instructions to the address given in the `README' so they can +be considered for the next release. If at some point `config.cache' +contains results you don't want to keep, you may remove or edit it. + + The file `configure.in' is used to create `configure' by a program +called `autoconf'. You only need `configure.in' if you want to change +it or regenerate `configure' using a newer version of `autoconf'. + +The simplest way to compile this package is: + + 1. `cd' to the directory containing the package's source code and type + `./configure' to configure the package for your system. If you're + using `csh' on an old version of System V, you might need to type + `sh ./configure' instead to prevent `csh' from trying to execute + `configure' itself. + + Running `configure' takes awhile. While running, it prints some + messages telling which features it is checking for. + + 2. Type `make' to compile the package. + + 3. Optionally, type `make check' to run any self-tests that come with + the package. + + 4. Type `make install' to install the programs and any data files and + documentation. + + 5. You can remove the program binaries and object files from the + source code directory by typing `make clean'. To also remove the + files that `configure' created (so you can compile the package for + a different kind of computer), type `make distclean'. There is + also a `make maintainer-clean' target, but that is intended mainly + for the package's developers. If you use it, you may have to get + all sorts of other programs in order to regenerate files that came + with the distribution. + +Compilers and Options +===================== + + Some systems require unusual options for compilation or linking that +the `configure' script does not know about. You can give `configure' +initial values for variables by setting them in the environment. Using +a Bourne-compatible shell, you can do that on the command line like +this: + CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure + +Or on systems that have the `env' program, you can do it like this: + env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure + +Compiling For Multiple Architectures +==================================== + + You can compile the package for more than one kind of computer at the +same time, by placing the object files for each architecture in their +own directory. To do this, you must use a version of `make' that +supports the `VPATH' variable, such as GNU `make'. `cd' to the +directory where you want the object files and executables to go and run +the `configure' script. `configure' automatically checks for the +source code in the directory that `configure' is in and in `..'. + + If you have to use a `make' that does not supports the `VPATH' +variable, you have to compile the package for one architecture at a time +in the source code directory. After you have installed the package for +one architecture, use `make distclean' before reconfiguring for another +architecture. + +Installation Names +================== + + By default, `make install' will install the package's files in +`/usr/local/bin', `/usr/local/man', etc. You can specify an +installation prefix other than `/usr/local' by giving `configure' the +option `--prefix=PATH'. + + You can specify separate installation prefixes for +architecture-specific files and architecture-independent files. If you +give `configure' the option `--exec-prefix=PATH', the package will use +PATH as the prefix for installing programs and libraries. +Documentation and other data files will still use the regular prefix. + + In addition, if you use an unusual directory layout you can give +options like `--bindir=PATH' to specify different values for particular +kinds of files. Run `configure --help' for a list of the directories +you can set and what kinds of files go in them. + + If the package supports it, you can cause programs to be installed +with an extra prefix or suffix on their names by giving `configure' the +option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'. + +Optional Features +================= + + Some packages pay attention to `--enable-FEATURE' options to +`configure', where FEATURE indicates an optional part of the package. +They may also pay attention to `--with-PACKAGE' options, where PACKAGE +is something like `gnu-as' or `x' (for the X Window System). The +`README' should mention any `--enable-' and `--with-' options that the +package recognizes. + + For packages that use the X Window System, `configure' can usually +find the X include and library files automatically, but if it doesn't, +you can use the `configure' options `--x-includes=DIR' and +`--x-libraries=DIR' to specify their locations. + +Specifying the System Type +========================== + + There may be some features `configure' can not figure out +automatically, but needs to determine by the type of host the package +will run on. Usually `configure' can figure that out, but if it prints +a message saying it can not guess the host type, give it the +`--host=TYPE' option. TYPE can either be a short name for the system +type, such as `sun4', or a canonical name with three fields: + CPU-COMPANY-SYSTEM + +See the file `config.sub' for the possible values of each field. If +`config.sub' isn't included in this package, then this package doesn't +need to know the host type. + + If you are building compiler tools for cross-compiling, you can also +use the `--target=TYPE' option to select the type of system they will +produce code for and the `--build=TYPE' option to select the type of +system on which you are compiling the package. + +Sharing Defaults +================ + + If you want to set default values for `configure' scripts to share, +you can create a site shell script called `config.site' that gives +default values for variables like `CC', `cache_file', and `prefix'. +`configure' looks for `PREFIX/share/config.site' if it exists, then +`PREFIX/etc/config.site' if it exists. Or, you can set the +`CONFIG_SITE' environment variable to the location of the site script. +A warning: not all `configure' scripts look for a site script. + +Operation Controls +================== + + `configure' recognizes the following options to control how it +operates. + +`--cache-file=FILE' + Use and save the results of the tests in FILE instead of + `./config.cache'. Set FILE to `/dev/null' to disable caching, for + debugging `configure'. + +`--help' + Print a summary of the options to `configure', and exit. + +`--quiet' +`--silent' +`-q' + Do not print messages saying which checks are being made. To + suppress all normal output, redirect it to `/dev/null' (any error + messages will still be shown). + +`--srcdir=DIR' + Look for the package's source code in directory DIR. Usually + `configure' can determine that directory automatically. + +`--version' + Print the version of Autoconf used to generate the `configure' + script, and exit. + +`configure' also accepts some other, not widely useful, options. diff --git a/Makefile.am b/Makefile.am new file mode 100644 index 0000000..1c36d7d --- /dev/null +++ b/Makefile.am @@ -0,0 +1,98 @@ +DISTCHECK_CONFIGURE_FLAGS=--enable-gtk-doc + +SUBDIRS = \ + gst-libs gst sys ext pkgconfig \ + m4 common docs tests po tools + +DIST_SUBDIRS = \ + gst gst-libs sys ext pkgconfig \ + m4 common docs tests po tools + +# include before EXTRA_DIST for win32 assignment +include $(top_srcdir)/common/win32.mak + +EXTRA_DIST = \ + gst-plugins-bad.spec depcomp \ + AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \ + ChangeLog gst-plugins-bad.doap autogen.sh \ + $(win32) + +DISTCLEANFILES = _stdint.h + +ACLOCAL_AMFLAGS = -I m4 -I common/m4 + +include $(top_srcdir)/common/release.mak +include $(top_srcdir)/common/po.mak + +check-valgrind: + cd tests/check && make check-valgrind + +if HAVE_GST_CHECK +check-torture: + cd tests/check && make torture +else +check-torture: + true +endif + +include $(top_srcdir)/common/coverage/lcov.mak + +check: check-exports + +# cruft: plugins that have been merged or moved or renamed + +CRUFT_FILES = \ + $(top_builddir)/common/shave \ + $(top_builddir)/common/shave-libtool \ + $(top_builddir)/ext/alsaspdif/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/ext/ivorbis/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/ext/jack/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/aacparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/amrparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/audioparsers/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/flacparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/imagefreeze/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/qtmux/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/selector/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/shapewipe/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/valve/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/videoparsers/.libs/libgsth263parse* \ + $(top_builddir)/gst-libs/gst/baseparse/.libs/libgstbaseparse* \ + $(top_builddir)/sys/oss4/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/tests/check/elements/{aac,ac3,amr,flac,mpegaudio,dca}parse \ + $(top_builddir)/tests/check/elements/autocolorspace \ + $(top_builddir)/tests/check/elements/capssetter \ + $(top_builddir)/tests/check/elements/imagefreeze \ + $(top_builddir)/tests/check/elements/qtmux \ + $(top_builddir)/tests/check/elements/selector \ + $(top_builddir)/tests/check/elements/valve \ + $(top_builddir)/tests/check/pipelines/metadata \ + $(top_builddir)/tests/examples/jack/jack_client \ + $(top_builddir)/tests/examples/switch/switcher \ + $(top_builddir)/tests/icles/output-selector-test \ + $(top_builddir)/tests/icles/test-oss4 \ + $(top_builddir)/tests/icles/equalizer-test + +CRUFT_DIRS = \ + $(top_srcdir)/gst/aacparse \ + $(top_srcdir)/gst/amrparse \ + $(top_srcdir)/gst/flacparse \ + $(top_srcdir)/gst/imagefreeze \ + $(top_srcdir)/gst/qtmux \ + $(top_srcdir)/gst/selector \ + $(top_srcdir)/gst/shapewipe \ + $(top_srcdir)/gst/valve \ + $(top_srcdir)/gst-libs/gst/baseparse \ + $(top_srcdir)/tests/examples/shapewipe \ + $(top_srcdir)/tests/examples/switch \ + $(top_srcdir)/tests/examples/jack \ + $(top_srcdir)/ext/alsaspdif \ + $(top_srcdir)/ext/ivorbis \ + $(top_srcdir)/ext/jack \ + $(top_srcdir)/ext/metadata \ + $(top_srcdir)/ext/tarkin \ + $(top_srcdir)/ext/theora + +include $(top_srcdir)/common/cruft.mak + +all-local: check-cruft diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..f63e1a8 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,1316 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# various tests to make sure we dist the win32 stuff (for MSVC builds) right + +# include this snippet to add a common release: target by using +# include $(top_srcdir)/common/release.mak + +# checks for left-over files in the (usually uninstalled) tree, ie. for +# stuff that best be deleted to avoid problems like having old plugin binaries +# lying around. +# +# set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in $(srcdir)/config.h.in \ + $(srcdir)/gst-plugins-bad.spec.in \ + $(top_srcdir)/common/coverage/lcov.mak \ + $(top_srcdir)/common/cruft.mak $(top_srcdir)/common/po.mak \ + $(top_srcdir)/common/release.mak \ + $(top_srcdir)/common/win32.mak $(top_srcdir)/configure \ + $(top_srcdir)/win32/common/config.h.in ABOUT-NLS AUTHORS \ + COPYING COPYING.LIB ChangeLog INSTALL NEWS compile \ + config.guess config.rpath config.sub depcomp install-sh \ + ltmain.sh missing +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = config.h +CONFIG_CLEAN_FILES = gst-plugins-bad.spec win32/common/config.h +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir dist dist-all distcheck +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + { test ! -d "$(distdir)" \ + || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -fr "$(distdir)"; }; } +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz $(distdir).tar.bz2 +GZIP_ENV = --best +distuninstallcheck_listfiles = find . -type f -print +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = -I m4 -I common/m4 +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc +SUBDIRS = \ + gst-libs gst sys ext pkgconfig \ + m4 common docs tests po tools + +DIST_SUBDIRS = \ + gst gst-libs sys ext pkgconfig \ + m4 common docs tests po tools + + +# the MANIFEST contains all win32 related files that should be disted +win32 = $(shell cat $(top_srcdir)/win32/MANIFEST) + +# wildcard is apparently not portable to other makes, hence the use of find +# these are library .def files with the symbols to export +win32defs = $(shell find $(top_srcdir)/win32/common -name '*.def') + +# wildcard is apparently not portable to other makes, hence the use of find +# these are files that need to be disted with CRLF line endings: +win32crlf = $(shell find $(top_srcdir)/win32 -name '*.dsw' -o -name '*.dsp') + +# include before EXTRA_DIST for win32 assignment +EXTRA_DIST = \ + gst-plugins-bad.spec depcomp \ + AUTHORS COPYING NEWS README RELEASE REQUIREMENTS \ + ChangeLog gst-plugins-bad.doap autogen.sh \ + $(win32) + +DISTCLEANFILES = _stdint.h + +# make bz2 as well +AUTOMAKE_OPTIONS = dist-bzip2 + +# cruft: plugins that have been merged or moved or renamed +CRUFT_FILES = \ + $(top_builddir)/common/shave \ + $(top_builddir)/common/shave-libtool \ + $(top_builddir)/ext/alsaspdif/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/ext/ivorbis/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/ext/jack/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/aacparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/amrparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/audioparsers/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/flacparse/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/imagefreeze/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/qtmux/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/selector/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/shapewipe/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/valve/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/gst/videoparsers/.libs/libgsth263parse* \ + $(top_builddir)/gst-libs/gst/baseparse/.libs/libgstbaseparse* \ + $(top_builddir)/sys/oss4/.libs/*.{so,dll,DLL,dylib} \ + $(top_builddir)/tests/check/elements/{aac,ac3,amr,flac,mpegaudio,dca}parse \ + $(top_builddir)/tests/check/elements/autocolorspace \ + $(top_builddir)/tests/check/elements/capssetter \ + $(top_builddir)/tests/check/elements/imagefreeze \ + $(top_builddir)/tests/check/elements/qtmux \ + $(top_builddir)/tests/check/elements/selector \ + $(top_builddir)/tests/check/elements/valve \ + $(top_builddir)/tests/check/pipelines/metadata \ + $(top_builddir)/tests/examples/jack/jack_client \ + $(top_builddir)/tests/examples/switch/switcher \ + $(top_builddir)/tests/icles/output-selector-test \ + $(top_builddir)/tests/icles/test-oss4 \ + $(top_builddir)/tests/icles/equalizer-test + +CRUFT_DIRS = \ + $(top_srcdir)/gst/aacparse \ + $(top_srcdir)/gst/amrparse \ + $(top_srcdir)/gst/flacparse \ + $(top_srcdir)/gst/imagefreeze \ + $(top_srcdir)/gst/qtmux \ + $(top_srcdir)/gst/selector \ + $(top_srcdir)/gst/shapewipe \ + $(top_srcdir)/gst/valve \ + $(top_srcdir)/gst-libs/gst/baseparse \ + $(top_srcdir)/tests/examples/shapewipe \ + $(top_srcdir)/tests/examples/switch \ + $(top_srcdir)/tests/examples/jack \ + $(top_srcdir)/ext/alsaspdif \ + $(top_srcdir)/ext/ivorbis \ + $(top_srcdir)/ext/jack \ + $(top_srcdir)/ext/metadata \ + $(top_srcdir)/ext/tarkin \ + $(top_srcdir)/ext/theora + +all: config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +am--refresh: + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/win32.mak $(top_srcdir)/common/release.mak $(top_srcdir)/common/po.mak $(top_srcdir)/common/coverage/lcov.mak $(top_srcdir)/common/cruft.mak $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --gnu'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --gnu \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): + +config.h: stamp-h1 + @if test ! -f $@; then \ + rm -f stamp-h1; \ + $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \ + else :; fi + +stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status config.h +$(srcdir)/config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f config.h stamp-h1 +gst-plugins-bad.spec: $(top_builddir)/config.status $(srcdir)/gst-plugins-bad.spec.in + cd $(top_builddir) && $(SHELL) ./config.status $@ +win32/common/config.h: $(top_builddir)/config.status $(top_srcdir)/win32/common/config.h.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + $(am__remove_distdir) +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +dist-lzma: distdir + tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma + $(am__remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz + $(am__remove_distdir) + +dist-tarZ: distdir + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__remove_distdir) + +dist-shar: distdir + shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz + $(am__remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__remove_distdir) + +dist dist-all: distdir + tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz + tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2 + $(am__remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lzma*) \ + lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + GZIP=$(GZIP_ENV) gzip -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + esac + chmod -R a-w $(distdir); chmod a+w $(distdir) + mkdir $(distdir)/_build + mkdir $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && $(MAKE) $(AM_MAKEFLAGS) distcheck-hook \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build \ + && ../configure --srcdir=.. --prefix="$$dc_install_base" \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) dvi \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @$(am__cd) '$(distuninstallcheck_dir)' \ + && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile config.h all-local +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr \ + distclean-libtool distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \ + ctags-recursive install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am all-local am--refresh check check-am clean \ + clean-generic clean-libtool ctags ctags-recursive dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzma dist-shar \ + dist-tarZ dist-xz dist-zip distcheck distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distcleancheck distdir distuninstallcheck dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-recursive uninstall uninstall-am + + +win32-debug: + @echo; \ + echo win32 = $(win32); \ + echo; \ + echo win32defs = $(win32defs); \ + echo; \ + echo win32crlf = $(win32crlf); \ + echo + +win32-check-crlf: + @echo Checking win32 files for CR LF line endings ...; \ + fail=0 ; \ + for each in $(win32crlf) ; do \ + result=`perl -e 'print grep(/\r\n/,<>)' "$$each" | wc -l`; \ + if test "$$result" = 0 ; then \ + echo $$each must be fixed to have CRLF line endings ; \ + fail=1; \ + fi ; \ + done ; \ + exit $$fail + +# make sure all symbols we export on linux are defined in the win32 .def too +# (don't care about other unixes for now, it's enough if it works on one of +# the linux build bots; we assume .so ) +check-exports: + @fail=0 ; \ + for l in $(win32defs); do \ + libbase=`basename "$$l" ".def"`; \ + libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so" | grep -v /_build/ | head -n1`; \ + libdef="$(top_srcdir)/win32/common/$$libbase.def"; \ + if test "x$$libso" != "x"; then \ + echo Checking symbols in $$libso; \ + if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \ + fail=1; \ + fi; \ + fi; \ + done ; \ + if test $$fail != 0; then \ + echo '-----------------------------------------------------------'; \ + echo 'Run this to update the .def files:'; \ + echo 'make check-exports 2>&1 | patch -p1'; \ + echo '-----------------------------------------------------------'; \ + fi; \ + exit $$fail + +# complain about nonportable printf format strings (%lld, %llu, %zu etc.) +check-nonportable-print-format: + @fail=0 ; \ + loc=`find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'`; \ + if test "x$$loc" != "x"; then \ + echo "Please fix the following print format strings:" ; \ + find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'; \ + fail=1; \ + fi; \ + exit $$fail + +dist-hook: check-exports win32-check-crlf + +release: dist + $(MAKE) $(PACKAGE)-$(VERSION).tar.gz.md5 + $(MAKE) $(PACKAGE)-$(VERSION).tar.bz2.md5 + +# generate md5 sum files +%.md5: % + md5sum $< > $@ + +# check that no marshal or enumtypes files are included +# this in turn ensures that distcheck fails for missing .list files which is currently +# shadowed when the corresponding .c and .h files are included. +distcheck-hook: + @test "x" = "x`find $(distdir) -name \*-enumtypes.[ch] | grep -v win32`" && \ + test "x" = "x`find $(distdir) -name \*-marshal.[ch]`" || \ + ( $(ECHO) "*** Leftover enumtypes or marshal files in the tarball." && \ + $(ECHO) "*** Make sure the following files are not disted:" && \ + find $(distdir) -name \*-enumtypes.[ch] | grep -v win32 && \ + find $(distdir) -name \*-marshal.[ch] && \ + false ) + +# rule to download the latest .po files +download-po: $(top_srcdir)/common/download-translations + $(top_srcdir)/common/download-translations $(PACKAGE) + +check-valgrind: + cd tests/check && make check-valgrind + +@HAVE_GST_CHECK_TRUE@check-torture: +@HAVE_GST_CHECK_TRUE@ cd tests/check && make torture +@HAVE_GST_CHECK_FALSE@check-torture: +@HAVE_GST_CHECK_FALSE@ true +.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload + +# run lcov from scratch, always +lcov-reset: + $(MAKE) lcov-run + $(MAKE) lcov-report + +# run lcov from scratch if the dir is not there +lcov: + $(MAKE) lcov-reset + +# reset run coverage tests +@GST_GCOV_ENABLED_TRUE@lcov-run: +@GST_GCOV_ENABLED_TRUE@ @-rm -rf lcov +@GST_GCOV_ENABLED_TRUE@ lcov --directory . --zerocounters +@GST_GCOV_ENABLED_TRUE@ -if test -d tests/check; then $(MAKE) -C tests/check inspect; fi +@GST_GCOV_ENABLED_TRUE@ -$(MAKE) check + +# generate report based on current coverage data +@GST_GCOV_ENABLED_TRUE@lcov-report: +@GST_GCOV_ENABLED_TRUE@ mkdir lcov +@GST_GCOV_ENABLED_TRUE@ lcov --compat-libtool --directory . --capture --output-file lcov/lcov.info +@GST_GCOV_ENABLED_TRUE@ lcov --list-full-path -l lcov/lcov.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d\| -f1 > lcov/remove +@GST_GCOV_ENABLED_TRUE@ lcov --list-full-path -l lcov/lcov.info | grep "tests/check/" | cut -d\| -f1 >> lcov/remove +@GST_GCOV_ENABLED_TRUE@ lcov --list-full-path -l lcov/lcov.info | grep "docs/plugins/" | cut -d\| -f1 >> lcov/remove +@GST_GCOV_ENABLED_TRUE@ lcov -r lcov/lcov.info `cat lcov/remove` > lcov/lcov.cleaned.info +@GST_GCOV_ENABLED_TRUE@ rm lcov/remove +@GST_GCOV_ENABLED_TRUE@ mv lcov/lcov.cleaned.info lcov/lcov.info +@GST_GCOV_ENABLED_TRUE@ genhtml -t "$(PACKAGE_STRING)" -o lcov --num-spaces 2 lcov/lcov.info + +@GST_GCOV_ENABLED_TRUE@lcov-upload: lcov +@GST_GCOV_ENABLED_TRUE@ rsync -rvz -e ssh --delete lcov/* gstreamer.freedesktop.org:/srv/gstreamer.freedesktop.org/www/data/coverage/lcov/$(PACKAGE) + +@GST_GCOV_ENABLED_FALSE@lcov-run: +@GST_GCOV_ENABLED_FALSE@ echo "Need to reconfigure with --enable-gcov" + +@GST_GCOV_ENABLED_FALSE@lcov-report: +@GST_GCOV_ENABLED_FALSE@ echo "Need to reconfigure with --enable-gcov" + +check: check-exports + +check-cruft: + @cruft_files=""; cruft_dirs=""; \ + for f in $(CRUFT_FILES); do \ + if test -e $$f; then \ + cruft_files="$$cruft_files $$f"; \ + fi \ + done; \ + for d in $(CRUFT_DIRS); do \ + if test -e $$d; then \ + cruft_dirs="$$cruft_dirs $$d"; \ + fi \ + done; \ + if test "x$$cruft_files$$cruft_dirs" != x; then \ + echo; \ + echo "**** CRUFT ALERT *****"; \ + echo; \ + echo "The following files and directories may not be needed any "; \ + echo "longer (usually because a plugin has been merged into "; \ + echo "another plugin, moved to a different module, or been "; \ + echo "renamed), and you probably want to clean them up if you "; \ + echo "don't have local changes: "; \ + echo; \ + for f in $$cruft_files; do echo "file $$f"; done; \ + echo; \ + for d in $$cruft_dirs; do echo "directory $$d"; done; \ + echo; \ + echo "'make clean-cruft' will remove these for you."; \ + echo; \ + fi + +clean-cruft-dirs: + @for d in $(CRUFT_DIRS); do \ + if test -e $$d; then \ + rm -r "$$d" && echo "Removed directory $$d"; \ + fi \ + done + +clean-cruft-files: + @for f in $(CRUFT_FILES); do \ + if test -e $$f; then \ + rm "$$f" && echo "Removed file $$f"; \ + fi \ + done + +clean-cruft: clean-cruft-dirs clean-cruft-files + +# also might want to add this to your Makefile.am: +# +# all-local: check-cruft + +all-local: check-cruft + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/NEWS b/NEWS new file mode 100644 index 0000000..eb2c12f --- /dev/null +++ b/NEWS @@ -0,0 +1,1595 @@ +This is GStreamer Bad Plug-ins 0.10.22, "Toy Piano" + +Changes since 0.10.21: + + * aiffparse: add support for 32 bit and 64 bit floating point formats + * aiffparse: the SSND header is 16 bytes large, not 8 + 16 bytes + * assrender: refactor blitting, avoid writing past end of buffer + * camerabin2: Add a property to select the encoding profile + * camerabin2: Add custom filter properties + * camerabin2: Add image-done message + * camerabin2: Adding audio support for video recordings + * camerabin2: Adding properties for image capture settings + * camerabin2: Add methods for preview image message posting + * camerabin2: Add preview-filter property + * camerabin2: Adds new idle property + * camerabin2: Add viewfinder caps related properties + * camerabin2: Add viewfinder-sink property + * camerabin2: Implement previewing + * camerabin2: Implement tagsetter interface + * camerabin2: Move preview helper functions to basecamerabinsrc + * camerabin2: Move to encodebin + * camerabin2: Moving preview image properties to basecamerasrc + * camerabin: adding audio related properties + * camerabin: Always take photo when preview-caps is set + * camerabin: don't rely on the application running the default GLib main loop + * camerabin: Events with select-all in input-selector + * camerabin: Fix corner case for preview posting + * camerabin: Use running time for muxing + * celtenc: Fix compilation with celt >= 0.11.0 + * colorspace: add 16-bit-per-channel handling + * colorspace: add dithering, add support for r210 and fix YUV->RGB matrixing + * curlsink: add libcurl-based sink element + * decklink: Add decklink plugin + * directdrawsink: avoid aspect-ratio borders overlying other windows + * directdrawsink: avoid rendering to invalid area + * dshowvideosink: update for latest GstXOverlay changes + * dvbsuboverlay: Fix using alpha values in blitting + * dvdspu: don't write clipped lines to the output buffer + * dvdsubdec: make up clut values if they weren't set + * fieldanalysis: new fieldanalysis element + * fpsdisplaysink: add "silent" property, fix "sync" property default value + * fpsdisplaysink: add "frames-dropped" and "frames-rendered" properties + * fpsdisplaysink: add "last-message" property and never print anything to stdout + * gme: fix infinite looping by fading out after two loops + * h263parse: add an h263parse element + * hlsdemux: Add HTTP live streaming parser/demuxer element + * id3mux: map new GST_TAG_ENCODED_BY to ID3v2 TENC frame + * jifmux: Add GstTagXmpWriter support + * jp2kdec, jp2kenc: add support v308 (4:4:4 YUV) + * jp2kdec: post proper error when the image's colour space is not supported + * jpegparse: misc. fixes + * linsys: Add plugin for Linear Systems SDI boards + * logoinsert: add "data" property; fix memleaks + * mpegtsdemux: new (not-yet autoplugged) MPEG TS demuxer rewrite + * mpegtsmux: add byte-stream to h264 template pad caps + * mpegtsmux: don't error out if downstream fails to handle the newsegment event + * mpegtspacketizer: Handle all ISO8859-x encodings in get_encoding() + * opencv: make work with openCV 2.2 + * patchdetect: new element + * rsvgoverlay: allow negative values for x/y/width/height + * rsvgoverlay: implement x/y/width/height (absolute and relative) positioning and dimensioning + * rtpvp8: Add simple payloaders and depayloaders for VP8 + * scenechange: new scene change detection element + * sdi: Add raw SDI muxing/demuxing elements + * shm: Allow ShmPipe to save a data pointer for applications + * shm: Keep the ShmPipe alive as long as there are blocks left + * shm: Make default perm u+rw g+r for shm area + * shmsink: ensure gst_poll_wait is called first on descriptors + * shmsink: Keep shmsink referenced while there are still buffers around + * shmsrc: Keep GstPoll for whole src lifetime + * shmsrc: Only connect to sink in PLAYING in live mode + * vdpau: fixup GstFlowReturn handling + * vdpausink: fix bug where we didn't setup vdpau on a user set window + * videoparsers: new h263parse element + * videoparsers: baseparse-based dirac parser, new baseparse-based h264parse + * xvidenc: proxy downstream caps restrictions upstream via get_caps() + * zebrastripe: New element + +Bugs fixed since 0.10.21: + + * 646211 : [camerabin] state changes need to be made when recording a video + * 608786 : [mpegtsmux] Internal H.264 byte-stream wrapping isn't working correctly + * 334107 : xviddec: segmentation fault after a few frames + * 582167 : jacksink does not flush the jack port when going to READY + * 586848 : qtmux, asfmux: remuxing streams with different start times + * 591651 : dvbsrc: use better nicks for GstDvbSrcModulation and other enums + * 594035 : [hlsdemux] Add HTTP Live Streaming playback support + * 594280 : directdrawsink: avoid rendering to invalid area + * 602847 : [dvdspu] Segfaults on seeking in matroska file + * 611061 : [mpegtsmux] some buffers are forgotten to push in m2ts_mode + * 615655 : [camerabin] shouldn't rely on running GLib main loop + * 616814 : Photography interface extension: colour tone mode and noise reduction settings + * 617532 : [qtmux] Take into account new-segments for incoming streams + * 622276 : Add an h263parse element + * 626618 : jpegparse doesn't handle APP12 marker + * 632056 : Directdrawsink draws black stripes over the overlying dialog windows. + * 639502 : [camerabin] should not re-create preview pipeline when setting new preview caps + * 639763 : [dvbsuboverlay] Green borders around subtitles + * 639841 : examples: camerabin: Don't set default values for GstPhotography interface settings + * 640286 : elements/imagecapturebin check fails + * 640287 : camerabin2 checks fail + * 640327 : Add VP8 RTP payloaders and depayloaders + * 640561 : opencv textwrite element renaming and proper structuring: + * 640637 : Camerabin has warning: Internal GStreamer error: clock problem. + * 640885 : Permission problems building bad + * 641047 : [mpegaudioparse] Multiple issues with new mpegaudioparse element from -bad, lower rank? + * 641178 : rtpvp8: build problem, needs to link with libgstbase-0.10 + * 641496 : New plugin: curlsink + * 641530 : Camerabin should capture image if preview_caps is set even if filename is not set + * 641712 : XWindow is never created in gst-camerabin-test example application + * 641796 : opencv: make plugin work with opencv 2.2.0 release + * 641857 : baseparse: Update min/max bitrate before first posting them + * 641858 : mpegaudioparse: Post CBR bitrate as nominal bitrate + * 642116 : rsvgoverlay: add position/dimension parameters + * 642658 : rsvgoverlay: allow negative values for position/dimension parameters + * 642671 : fieldanalysis: New element for analysing video input to produce progressive output + * 643469 : fpsdisplaysink: add frames-dropped and frames-rendered properties + * 643471 : fpsdisplaysink: fix default sync property value + * 643607 : [celt] Doesn't compile with celt 0.11.1 + * 644176 : videofilters: needs to link against libm + * 644208 : dcaparse: add depth and endianness to dts caps to allow elements to negotiate on these certain stream format requirements + * 644429 : [mpegtsmux] in m2ts-mode, the tp_extra_header is incorrect + * 645006 : [mpegtsmux] in m2ts-mode, PAT is written only once + * 645053 : shm: multiple compile failures on Solaris 10 + * 645412 : [h264parse] h264parse doesn't set framed=True on src caps + * 645420 : [scaletempo] Incorrectly handles new segments with stop == -1 + * 645502 : [h264parse] leaks fatally on certain streams + * 645568 : aiffparse: doesn't play 24-bit AIFF properly + * 645711 : patchdetect: link error while using gcc-4.52 + * 646256 : qtmux " buffer without timestamp/duration " error message could be more helpful + * 646495 : hlsdemux: Add missing patches from my local branch + * 646840 : shmsink: ensure gst_poll_wait is the first gst_poll function called on a descriptor + * 646955 : dshowvideosink: Update to reflect latest GstXOverlay changes + * 647030 : [fpsdisplaysink] " silent " property + * 647364 : VGM files loop indefinately + * 647498 : xvidenc not forwarding caps + * 647564 : gst-plugins-bad configure.ac summary wrongly claims an exif plugin + * 647830 : assrender: crashes with very large subtitles + * 647852 : [schroenc] Crashes after some time when getting buffers after EOS + * 647853 : [schrodec] Impossible to play very short files + * 647854 : [schrodec] Allocates buffers with NULL caps from downstream + * 648001 : configure: Fix linsys/decklink checks for Linux + * 648929 : [tsdemux] Memory leaks everywhere + * 649005 : y4mdec: add plugin description + * 647751 : [hlsdemux] Fix usage of the element in players + * 621027 : mpegtsparse problem when parsing EIT and obtaining Transport Stream packet size + +Changes since 0.10.20: + + * alsaspdif: removed alsaspdifsink element (replaced by alsasink device=spdif) + * metadata: remove metadata plugin + * jack: jack plugin has moved to gst-plugins-good (0.10.27) + * selector: input-selector and output-selector have moved to GStreamer core (0.10.32) + * valve: has moved to gstreamer core (0.10.32) + * applemedia: new plugin for Apple multimedia APIs (avfvideosrc, celvideosrc, qtkitvideosrc, miovideosrc, vth264decbin, vth264encbin, vtdec, vtenc) + * applemedia: new iOS video source based on AVFoundation + * y4mdec: new y4mdec element + * dcaparse: new dts/dca audio parser + * camerabin2: new camerabin element (work-in-progress, experimental) + * opencv: new plugin with elements facedetect, faceblur, edgedetect, cvsobel, cvsmooth, cvlaplace, cverode, cvequalizehist, cvdilate, textwrite, templatematch, pyramidsegment + * interlace: new element + * geometrictransform: new rotate element + * jp2kdecimator: add a JPEG2000 decimator element (drop details without reencoding) + * audioparsers: add dcaparse, a dts/dca parser, and mpegaudioparse (mp3parse replacement) + * autoconvert: add autovideoconvert, an autoconvert based video format converter + * checksumsink, chopmydata: new debug elements + * dvbsuboverlay: new element to overlay DVB subtitle + * rsvgoverlay: new element for scalable and relative svg overlay with cairo + * qtmux: add new ismlmux element, for fragmented isml major brand + * ac3parse: properly parse E-AC3 frame header and use proper EAC-3 caps + * ac3parse: relax BSID checking, performance improvements + * applemedia mtapi: update to reflect new API on iOS 4.x + * applemedia vtenc: bump H.264 level from 1.3 to 3.0 + * applemedia vtenc: remove keyframe enforcement workaround + * applemedia celapi: update to reflect new API on iOS 4.x + * applemedia cvapi: add wrapper for IO surface access + * audioparse: add support for setting the channel-positions + * audioparsers: increase ranks to enable auto-plugging (incl. new mp3 parser) + * baseparse: enhancements for timestamp marked framed formats + * baseparse: increase keyframe awareness + * baseparse: perform bitrate handling and posting after newsegment sending + * baseparse: post duration message if average bitrates is updated + * baseparse: prevent indefinite resyncing + * baseparse: add index support, seek table and accurate seek support + * baseparse: support reverse playback + * baseparse: use determined seekability in answering SEEKING query + * basevideo: Add handling of GstForceKeyUnit events + * basevideodecoder: add capture pattern handling; don't blow away field information + * bayer2rgb: add format=bggr/etc. to caps, add framerate to the sink caps + * camerabin: add "preview-source-filter","ready-for-capture", "idle" properties + * camerabin: change "zoom" property from int to float + * camerabin: enable all conversion flags by default to make it work out-of-the-box everywhere + * coloreffects: Add chromahold effect + * cog: improvements in colorspace and scaler; add fast paths for colorspace conversion + * colorspace: revive element and add support for many more pixellayouts/colorspaces + * colorspace: add support for SDTV/HDTV YUV conversions + * dtmfsrc: Make the dtmfsrc accept events sent with gst_element_send_event + * tools: misc. improvements to element-maker tool + * faac: handle trailing encoder output + * faad: support reverse playback; cater for decoder delay and renegotiation + * faad: tweak output buffer timestamping + * flacparse: don't drop the last frame if it is followed by garbage + * flacparse: don't parse the complete FLAC frames but only look for valid frame headers (for performance) + * flacparse: fix picture parsing, fix parsing with unknown framesizes + * flacparse: parse seektable + * frei0r: add support for the FREI0R_PATH environment variable + * frei0r: fix crashes if plugins don't provide correct property information + * frei0r: fix scanning of plugin subdirectories and support different vendors + * frei0r: update frei0r interface specification to 1.2 + * gaudieffects: avoid divide by 0 in burn element, make filter parameters dynamic and controllable + * id3mux: map GST_TAG_ALBUM_ARTIST, give PRIMARY rank + * invtelecine: Fix name of 30p/60i pattern + * jasperdec: don't fail hard on decoding error + * jifmux: detect EOI correctly; do not limit the size of the image on 16bits + * jp2kenc: Emit SOP markers in every codestream packet + * jpegparse: avoid infinite loop when resyncing; discard incomplete image + * kate: add segment tracking, and various other improvements + * kate: ensure the kate pad does not shoot ahead of the video pad + * mpegtsdemux: extract language for DVB subtitle streams + * mpegtsdemux: enable gather_pes only for DVB subtitle private streams + * mpegtsdemux: fix re-syncing on invalid data after seek + * mpegtsmux: Initialize PES packet before getting the header size + * mpegtsmux: Set adaptation flag when appropriate + * mpegtsmux: Set random_access_indicator for keyframes + * mpegtsparse: send TDT tables messages in a serialized event downstream + * ofa: Call g_object_notify() after the fingerprint was created + * pcapparse: Add support for Linux Cooked Capture (SLL) frames + * photography: add missing property and cabability flag for noise reduction + * photography: Add "zoom" and "image-preview-supported-caps" interface properties + * photography: add gst_photography_{set,get}_noise_reduction() and CAPS_NOISE_REDUCTION flag + * qtmux: add support for fragmented mp4 + * qtmux: add "streamable" property to avoid building fragmented mfra index + * qtmux: timestamp tracking fixes and many other fixes + * resindvd: attempt to use glib language setting for DVD menus/audio + * resindvd: improve error messages on read errors; button state tracking fixes + * rfbsrc: fail more gracefully if source gets disconnected or geometry changes + * sdlvideosink: re-enable YVYU and UYVY support + * sdpdemux: error out if no streams found in sdp message + * sdpdemux: redirect SDP with an rtsp control URL and add property to disable redirect + * ssim: add I420 support + * tiger: outline text by default, to make it easier to read + * winks: add property probing support; fix framerate fraction range mapping + * winks: ignore unsupported formats; work around shutdown deadlock + * winks: performance improvements + * zbar: make scanner cache optional, disable it by default + * zbar: use correct strides, support more formats + +Bugs fixed since 0.10.20: + + * 628609 : The qtwrapperaudiodec_samr decoder doesn't handle buffers containing many AMR frames properly + * 639296 : [y4mdec] Doesn't handle files which don't specify a colorspace + * 613379 : camerabin: Do not use audio clock after stopping video capture + * 636279 : REGRESSION: Video often freezes during playback of mpeg2 files + * 630255 : [examples] camerabin example still uses old GstXOverlay interface + * 631232 : [colorspace] AYUV/ARGB handling broken on big endian systems + * 627229 : fpsdisplaysink should not measure fps relative to pipeline clock + * 435120 : cairosvgoverlay + * 486659 : xmp/exif metadata handling + * 578629 : libgstphotography missing exports for MSVC + * 587223 : mpegtsdemux seg.fault due to invalid PMT_pid + * 598078 : osxvideosrc doesn't build in snow leopard x86_64 + * 600929 : [kate] tiger element doesn't handle segments and text/video synchronization properly + * 603063 : camerabin example fails to start recording + * 611428 : [gdiscreencapsrc] leaks memory (ICONINFO) + * 613633 : [resindvd] scrambled DVDs yield useless generic error message if dvdcss is not available + * 616814 : Photography interface extension: colour tone mode and noise reduction settings + * 616923 : camerabin: remove photography interface implementation + * 618045 : [cogcolorspace] No Y41B support + * 618542 : DVB subtitles support + * 625558 : [basevideoencoder] [vp8] encoder timestamps are wrong when there are gaps + * 626425 : cog_virt_frame_new_convert_u8 has bogus source data + * 627134 : photography interface: add API for capture correction + * 627211 : jpegformat: Push tags after setting srcpad caps + * 627253 : [mpegtsparse] Post tags of channel and currently running event + * 627992 : dtmfsrc doesn't support gst_element_send_event + * 628326 : vdpau: don't change structure in setcaps function + * 628527 : videoanalyse: classificication is wrong + * 628548 : [mpegtsmux] Initialize PES packet before getting the header size + * 628570 : cogcolorspace: element classificication is wrong + * 629554 : dvbsrc: Fix example usage, bandwidth=8 not 8MHz + * 629897 : [cog] Ignores --disable-orc and always requires orc + * 629910 : jpegparse: properly clean up comment string + * 629917 : [output-selector] Recheck pending_pad after pushing a buffer + * 630046 : sdpdemux: Add optional support for rtspsrc as session element + * 630253 : [sdl] Still uses old GstXOverlay interface + * 630254 : [vdpau] Still uses old GstXOverlay interface + * 630783 : [frei0r] Crashes if broken plugins don't give correct property information + * 630808 : valve: move to core + * 631200 : flacparse: major performance improvements + * 631389 : [flacparse] backport/check corner case fixes done in flacdec + * 631449 : [audioparse] doest not support several channel numbers + * 631501 : [faad] failed to dynamically switch from 2 audio channels to 6 + * 631814 : [flacparse] unit test failures + * 631993 : [flacparse] imperfect timestamping + * 632070 : qtmux: infinite loop + * 632668 : Gaudi Effects [review] + * 632885 : Gaudi Effects dynamically controllable parameters [review] + * 632911 : qtmux: add fragmented mp4 support (isml brand) + * 633466 : [katedec] Pushes events before the final caps are known + * 633917 : [mpegtsparse] [PATCH] Send TDT messages in an serialized event downstream + * 635200 : [dvbbasebin] [PATCH] Add TDT to the initial pids filter for dvbsrc + * 635202 : mpeg4videoparse: Minor fixes + * 635204 : mpeg4videoparse: Set srcpad caps before forwarding newsegment + * 635205 : h264parse: Set srcpad caps before forwarding newsegment + * 635229 : celtenc: uninitialized tags variable can cause segfault + * 635304 : [opencv] fix caps issues and extend supported caps for some elements [PATCH] + * 635397 : rfbsrc: avoid infinite loop if source gets disconnected and don't crash if frame geometry changes + * 635529 : interlace: Add pattern offset and fix timestamps + * 635720 : vp8enc incorrectly sets timestamps based on theoretical framerate + * 635786 : [audioparse] Fix division-by-zero exception + * 635878 : [qtmux] gst_qtmux_check_difference subtract 2 unsigned numbers without taking care of the result sign + * 636106 : autocolorspace: new plugin for auto space convertor selection + * 636109 : [SSIM] klass should be Filter/Effect/Video + * 636185 : qtmux: msvc incompatibility + * 637062 : [ac3parse] parse problems on some MTS streams + * 637224 : [bayer2rgb] missing framerate in sink caps + * 637308 : gst-plugins-bad did not find xvidcore on my box + * 637359 : Internal GStreamer error, during pcap to mp4 conversion + * 637403 : qtmux do not store 1st TS when detect 1st buffer + * 637486 : qtmux: error if no buffers have arrived to one pad at EOS + * 637532 : applemedia: redundant declaration of 'parent_class' + * 637590 : [PATCH] fix gst-plugins-bad compile against latest gtk+ + * 637824 : mpeg4videoparse: gst_buffer_is_metadata_writable warning (regression) + * 637929 : mve: do not use the pad buffer allocation functions in demuxers + * 637931 : mpegdemux: do not use the pad buffer allocation functions in demuxers + * 638004 : tiger: fallback on headers in caps to initialize if headers are absent + * 638288 : qtmux: fails to handle out-of-order buffers without duration + * 638412 : kate: reenable the sending of a message for tags + * 638527 : tiger: outline text by default, to make it easier to read + * 638604 : basecamerasrc isn't build by default but camerabin2 is and requires it + * 639063 : mpegtsparse: fix (re)sync with invalid data at beginning + * 639338 : [qtmux] Protect against copying a null caps + * 639413 : Camerabin should use output-selector:pad-negotiation-mode=active + * 639456 : [camerabin] Should have all conversion flags enabled by default + * 639555 : [audioparsers] Be careful to not lose the event ref + * 639950 : flacparse: avoid unref'ing NULL buffer + * 630830 : zbar: Fixes, single frame scan and width/stride fix + * 635281 : [mpegtsparse] TDT packets are only parsed for odd hours + +Changes since 0.10.19: + + * asfmux streaming fixes and improvements + * new video effects plugins: coloreffects, gaudieffects, geometrictransform + * new gsettings plugin with gsettings{audio,video}{src,sink} elements + * new ivfparse element + * new rtmpsrc element + * new shmsink and shmsrc elements for IPC using shared memory + * new videomaxrate element + * dshowvideosink improvements + * vdpau: H.264 and MPEG-4 decoder (not enabled for autoplugging yet though) + * vp8enc: support multipass encoding and keyframe-only mode + * neonhttpsrc: timeout properties and cookie support + * h264parse and mpegvideoparse: can periodically insert codec data into stream now + * build: require GLib >= 2.20, automake >= 1.10, autoconf >= 2.60, want orc + * asfmux: deprecate "is-live" property, replaced by new "streamable" property + * asfmux: don't set the 'seekable' flag in headers if we are streaming + * asfmux: put headers into "streamheader" field in output caps for streaming + * asfmux: write preroll info in the header at initialization + * bayer: support more formats in bayer2rgb, add rgb2bayer element + * camerabin: make viewfinder-sink property work with bins + * celt: add support for celt 0.8, remove support for celt < 0.5 + * celtenc: add "prediction" and "start band" properties + * coloreffects: new element with heat, sepia, xray and cross-process effects + * dshowvideosink: many fixes and improvements + * fpsdisplaysink: add "fps-update-interval" and read-only "max-fps"/"min-fps" properties + * frei0r: check for plugins in /usr/{local/,}lib{32,64}/frei0r-1 too + * gaudieffects: new plugin with burn, chromium, dilate, dodge, exclusion, gaussianblur and solarize video effect elements + * geometrictransform: new plugin with circle, diffuse, kaleidoscope, marble, pinch, sphere, twirl, and waterripple, fisheye, mirror, square, tunnel, bulge, stretch video effect elements + * gsettings: new GSettings plugin with audio/video sources and sinks (to replace gconf plugin) + * h264parse: add "config-interval" property to insert SPS/PPS at periodic intervals + * h264parse: handle 3-byte bytestream sync codes; process incoming timestamps more correctly + * id3mux: add support for beats-per-minute tag + * invtelecine: support more video formats, more pulldown formats, add "verify-field-flags" property + * ivfparse: add simple IVF parser element (simple framing for VP8 video data) + * jpegformat: add exif writing to jifmux and exif parsing to jpegparse + * jpegparse: skip extra 0xff markers, optimize jpeg image parsing + * mimic: lots of fixes and clean-ups + * mpeg4videoparse: add "config-interval" property to re-insert config in stream + * mpegtsmux: start pmt at 0x020; take all the pmt in the streamheaders + * mpegtsparse: actually work when we have small buffers coming in + * mpegvideoparse: apply previous timestamp when there isn't any newer + * neonhttpsrc: add "connect-timeout", "read-timeout" and "cookies" properties + * qtmux: write audio/video stream bitrates into header, if available + * qtmux: write track-number etc. tags even if count is not available + * rtmpsrc: new RTMP source element based on librtmp + * rtpdtmfmux: add priority sink pads and drop buffers on non-priority sink pads when something is incoming on the priority sink + * rtpmux: add support for GstBufferLists; aggregate incoming segments; fix buffer leak + * shm: add new shm-based shmsink and shmsrc elements for IPC using shared memory + * vdpau: add H.264 decoder and MPEG-4 part 2 decoder; countless other fixes and improvements + * videomaxrate: new plugin/element to limit videorate conditionally based on threshold + * vp8dec: mark discont buffers, set decoder deadline from the QoS information + * vp8enc: allow a maximum keyframe distance of 0, i.e. all frames are keyframes + * vp8enc: fix handling of invisible/alt ref frames + * vp8enc: add support for enabling automatic insertion of alt-ref frames by the encoder + * vp8enc: implement multipass encoding + * wildmidi: Add support for wildmidi 0.2.3 + +Bugs fixed since 0.10.19: + + * 625908 : [geometrictransform] Some more configuration options for effects + * 625076 : neonhttpsrc: add connect-timeout and read-timeout properties + * 620746 : basevideodecoder: remove spurious warning + * 566614 : bayer2rgb: Make first line configurable + * 570428 : autogen.sh fails + * 574290 : [dshowvideosink] make set_xwindow_id() in PLAYING state work + * 579926 : [directshowvideosink] Doesn't update the last frame after a seek with the pipeline in PAUSED state. + * 580967 : shared memory based sink and source + * 591622 : [vdpau] needs better error/failure handling + * 602551 : dshowvideosink window close doesn't cause gst-launch to exit + * 602936 : [ mp4mux] Lipsync issue when converting mkv to mp4 using h264/aac + * 613346 : [dshowvideosink] Add support for updating video caps + * 616265 : Add a GSettings plugin that provides the same services as the GConf plugin + * 618336 : [mpegvideoparse] mpegvideoparse makes some streams unplayable + * 618522 : [asfmux][patch] Improve support for streaming + * 618921 : [dshowvideosink] Replace CoIntialize with CoInitializeEx for bettrer integration with GStreamer threads + * 618936 : [dshowvideosink] close the created window in ::stop() + * 620324 : Format warning in ivfparse + * 620717 : [geometrytransform] Incomplete template caps + * 620825 : [geometrytransform] Make properties controllable and threadsafe + * 620978 : insert NAL7/8 always when encountering I frame + * 621205 : [mpeg4videoparse] add config-interval property to insert mpeg4video config data in regular intervals + * 621348 : [vp8enc] Implement multipass encoding + * 621523 : [id3mux] write beats-per-minute tag + * 622369 : [rtmpsrc] crash if correct server but wrong video file name + * 622484 : [qtmux] missing track number tag when transcoding to aac + * 622690 : elements/jpegparse check fails + * 622692 : pipelines/metadata check fails + * 622725 : [mpgtsparse] Doesn't remove pids from pes_pids + * 623272 : [dshowvideosink] setting force-aspect-ratio has no effect after the sink's renderer has been configured + * 623365 : [qtmux and variant] Don't store codec tags + * 623550 : doesn't compile with celt 0.8 + * 623678 : qtmux: Write AAC/H.264 bitrate if available + * 623710 : [frei0r] Load frei0r plugins in /usr/lib64/frei0r-1 too + * 623713 : [dshowaudiodec][patch] Fix compilation error + * 623722 : gstwildmidi element update to newer library version + * 623802 : camerabin: Bin based viewfinder sink support is broken + * 623854 : jpegparse reads a wrong EXIF section size + * 623881 : aiffmux.c divide by zero + * 623883 : [winks] gstksvideosrc.c error on MSVC using gst_element_class_set_details() + * 625003 : [examples] Don't use GdkDraw + * 625138 : [dshowvideosrc] Don't use a range in the caps if min==max + * 625174 : neonhttpsrc: adds cookies support + * 625496 : qtmux - misc fix on btrt box + * 625722 : [geometrictransform] Some new effect elements for cheese + * 625817 : coloreffects: new plugin for lookup table color mapping + * 625959 : geometrictransform: make CircleGeometricTransform " radius " property relative + * 626049 : [vdpau] crashes in states.check unit test + * 626603 : generic/states check fails with gsettings element installed + * 626670 : gaudieffects: Fails to link inline functions properly + * 626815 : vp8dec: infinite loop if EOS event before started + * 627413 : jifmux causes broken jpeg images at least with some rgb pixel format + * 627918 : Do not install gst-camera.ui + * 627991 : rtpmux will freeze whenever a flush is sent + * 624212 : mp4mux produces incorrect frame rates when h264 input uses bframes + * 619158 : IVF parser plugin + * 619484 : vp8dec: s/IMG_FMT_I420/VPX_IMG_FMT_I420/ + * 621404 : [dvbsrc] Set stats-reporting-interval on construction + +Changes since 0.10.18: + + * audioparsers: add bitrate calculation + * camerabin: add API to query supported image capture resolution + * camerabin: add block-after-capture property for viewfinder blocking + * camerabin: add video-capture-width/height/framerate properties + * camerabin: add video-source-filter and viewfinder-filter properties + * capssetter: element was moved to gst-plugins-good + * cogcolorspace: implement color-matrix handling and chroma-site + * dc1394: add iso-speed property + * dshowvideosrc: add support for YUY2 input format + * festival: don't open an infinite number of connections to the server and close connections + * h264parse: fix writing NALU prefix for byte-stream output format + * h264parse: fix wrong timestamps in some cases after seeking + * imagefreeze: plugin was moved to gst-plugins-good + * invtelecine: add invtelecine element + * jackaudiosrc: implement multichannel support + * jpegformat: add xmp reading and writing support + * ladspa, lv2: don't fail in plugin_init when having 0 elements (which would cause the plugin to get blacklisted) + * mmssrc: Check URI for validity and work around URI parsing bugs in libmms + * mmssrc: Use the escaped location for the RTSP redirect message + * mpegtsdemux: add support for Blu-Ray style DTS and the two DTS HD stream types + * mpegtsparse: parse TDT table in mpegts + * mpegvideoparse: export profile and level in caps; estimate bitrate; update caps when sequence header changes + * oss4: plugin was moved to gst-plugins-good + * qtmux: add support for the VP8 video codec and XMP tags + * segmentclip: add audio/video buffer segment clip elements + * vcdsrc: support the DVD URI scheme so a device can be specified via the URI + * vp8: add libvpx-based VP8 encoder/decoder (NB: encoder properties/API not fully stable yet; also, this plugin may not be compatible with GPLv2-only applications) + +Bugs fixed since 0.10.18: + + * 340986 : [vcdsrc] plugin not auto-plugged, and weird URI handling + * 572551 : mpeg4videoparse fails to extract codec_data from this network camera video stream + * 603745 : [dc1394src] add " iso-speed " property + * 611302 : [imagefreeze] Add still frame stream generator + * 612208 : [soundtouch] [pitch] Removing annoying g_print + * 612331 : inputselector: linkage flags are incorrect + * 612454 : fix compile errors in latest gst-plugins-bad + * 612615 : [camerabin] video bin elements in wrong state when recording + * 612687 : [mpegvideoparse] Update caps when sequence header changes + * 612757 : Unable to build gst-plugins-bad with Sun Studio compiler + * 613156 : cog can't be built against libpng 1.4.x + * 613160 : [cogcolorspace] RGB- > I420 conversion adds green vertical bar at the right border + * 613332 : [cog] generate_tables generates invalid tables for YUV- > RGB + * 613708 : [dshowvideosrc][PATCH] Add support for YUY2 format + * 613758 : More build warnings on OS X + * 613795 : libmodplug's public header requires WORDS_BIGENDIAN + * 613920 : audioparsers: Add bitrate calculation to baseparse + * 614016 : [baseparse] NEWSEGMENT event sent with wrong start and position time + * 614037 : flacparse: Fix buffer refcount issue + * 614259 : mpegtsdemux: can't detect DTS audio + * 614349 : [mpegtsparse] assertion gst_buffer_is_metadata_writable (buffer) failed + * 614475 : [dvbsrc] Wrong property types for frequency and symbol rate + * 614479 : [mpegtspacketizer] Use CRC to check if tables are duplicate + * 614591 : [h264parse] Not cleaning internal state properly for reuse + * 614958 : [camerabin] Replace actions with properties for setting parameters + * 614991 : baseparse: Don't emit bitrate tags too early + * 616078 : mpegvideoparse: Export profile and level in caps + * 616541 : jackaudiosrc/sink needs to set layout on caps + * 617145 : Compile mplex element with with --enable-runtime-pseudo-reloc-v2 on Windows + * 617146 : Lots of printf string format warnings on Windows + * 617331 : More warnings in -bad + * 617650 : [mmssrc] should check location + * 618044 : [cogcolorspace] I420/YV12 - > packed 4:2:2 gives assertions + * 618388 : [frei0r] Boolean values can't be set from gst-launch [PATCH] + * 618409 : jackaudiosrc: improve process callback + * 618527 : festival plugin does not close connections to server + * 618710 : [resindvd] Needs to check for libdvdread too + * 618867 : Remove gst-plugins-bad/ext/polyp ? + * 619064 : h264parse: broken timestamps after seeking + * 619169 : [vp8enc] Limit DEFAULT_MAX_LATENCY to 25 to match libvpx + * 619172 : [vp8] exclude dec/enc based on CONFIG_VP8_DECODER/ENCODER + * 619290 : [vp8] add mode property to switch between CBR/VBR + * 619317 : [vp8] Encoder thread support + * 619318 : [vp8] Decoder QoS (avoid memcpy) + * 619344 : [vp8enc] Use GST_VIDEO_CAPS_YUV instead of handwritten YUV caps + * 619444 : [mpegtsparse] Memory leak in mpegts_packetizer_parse_pmt + * 619502 : [mpegvideoparse] segfault because of access to a NULL buffer gotten from mpeg_packetizer_get_block + * 619617 : [h264parse] leaks memory + * 619916 : [vp8enc] Doesn't skip non-frame packets correctly + * 614317 : [oss4] should always accept PCM in native endianness even if the hardware doesn't + +Changes since 0.10.17: + + * aacparse: lots of fixes, now based on common baseparser class and merged into audioparser plugin + * ac3parse: new AC3 parser element based on common baseparser class and part of new audioparser plugin + * adpcmenc: new adpcm encoder element + * aiffmux: new aiff muxer element + * amrparse: use (default) time handling of baseparser class, merged into audioparser plugin + * apexsink: change volume property to a double to make work with playbin2 + * asfmux: handle streams with different start times + * asfmux: improve compatibility with WMSP in WMP + * asfmux, rfbsrc, vmnc, mpegdemux, resindvd: fix alignment and endianness issues + * assrender: countless fixes and improvements + * audioparsers: rename baseparse GType name to avoid possible conflicts + * audioparsers: fix seek handling, newsegment sending, push mode data draining + * celt: make compile against earlier CELT versions + * configure: call $PKG_CONFIG instead of pkg-config to fix cross compilation + * dataurisrc: new source element for data:// URIs + * faac: lots of fixes (channel layout, output caps, bps estimation etc.) + * flacparse: fix multiple channel frame parsing; merged into new audioparser plugin + * fpsdisplaysink: expose video sink using a property + * h264parse: Correctly rewrite all nal prefixes + * h264parse: fix caps parameters setting, framerate calculation + * h264parse: fix regression in output buffer timestamping + * h264parse: optionally output AUs rather than NALUs or transform from bytestream to sample format and vice versa + * h264parse: parse SPS some more (e.g. for width/height) + * ivorbisdec: moved to -base (to reuse same codebase as vorbisdec) + * jpegformat: new jifmux element + * jpegparse: new jpeg parser element (not autoplugged for now) + * mmssrc: post error message in addition to redirect when connect fails + * mpegtsdemux: Handle eac3 in PMT + * mpegtsmux: add pat-interval and pmt-interval properties + * mpegtsmux: Do not crash on misinterpreted h264 + * mpegtsmux: Fix mistake on previous commit + * mpegtsmux: fix PAT/PMT insertion frequency, add PAT/PMT in streamheader + * mpegtsmux: mark delta-unit on outgoing buffers + * qtmux: add moov recovery feature (to finalise recording after crash or so) + * qtmux: improves compatibility with some hardware players + * qtmux: add support for ALAC, SVQ3, IMA ADPCM; improve j2k handling + * qtmux: misc. tag writing fixes: write all udta children atoms; crash less + * shapewipe: moved to -bad + * vdpau: lots of fixes and refactoring + +Bugs fixed since 0.10.17: + + * 606657 : mpegtsmux crashes with h264parse in byte-stream mode + * 607513 : input-selector segfaults in g_object_notify() + * 440476 : RhythmBox displays an incorrect track length for .aac files. + * 530513 : [h264parse] no width and height in output caps + * 563433 : implement h264parse AVC output + * 575878 : assrender searches entire current working directory when searching for fonts to use + * 583098 : Add jpegparse element + * 598350 : qtmux with AAC streams (from faac) generate invalid files + * 598682 : make check fails due to fpsdisplaysink if xvimagesink does not exist + * 598916 : qtmux: support more of j2k + * 600409 : tremor/ivorbis: should pack result smarter + * 601108 : gst-camera requires glade + * 601417 : Problem compiling gst-plugins-bad 0.10.16 + * 602161 : bad .17 VPATH build fix + * 602465 : gst/dtmf/tone_detect.h incompatible with MSVC + * 602524 : frei0r: GST_EXTRA_MODULE_SUFFIX never defined + * 602528 : lv2: vocoder plugin breaks gstreamer + * 603938 : assrender cannot load font attachments in Matroska container + * 603983 : gstdshowvideosink leaking DirectShow objects + * 603986 : gstdshowvideosink not releasing the filter media event interface + * 604099 : rtpmux: Make sure to call release_pad() when the element is disposed + * 604101 : rtpmux: update the current_ssrc from the caps + * 604280 : fpsdisplaysink: allow access to internal video sink used + * 604311 : gst-plugins-bad: fails to build against libcelt 0.4.0 + * 604908 : [mpegtsmux] mark delta-unit on outgoing buffers + * 604925 : qtmux shouldn't accept adts aac + * 605720 : modplug: Add 32-bit depth caps + * 605721 : modplug: Allow 1-channel output for 16 and 32 bit depth too + * 605904 : mpegtsdemux doesn't handle e-ac-3 in PMT + * 606371 : mpegdemux2 plugin doesn't work on some ARM CPU due to the guint32*'s alignment + * 606636 : [mmssrc] no error message when connect to server fails + * 606665 : error: " __MSVCRT_VERSION__ " redefined + * 606677 : Port librdf (rdfsrc) to Windows + * 606726 : FAAC bitrate setting has no effect + * 606859 : Get mp4mux request pad during decodebin2's new-decoded-pad event fails. + * 607105 : faac doesn't negotiate channel positions correctly + * 607285 : cdxaparse leaks memory + * 607555 : asfmux plugin generates data streams incompatible with WMSP (MMSH) and WMP + * 607747 : [dvbsrc] Pipeline does not stop when reception is very bad + * 608042 : [camerabin-example] v4l2 device busy after setting back to ready and changing the mode + * 608651 : dshowvideosink.cpp crash + * 608706 : assrender recursively scans directories for fonts + * 608751 : [assrender] Random crashes because libass is not threadsafe + * 608753 : assrender: use more compatible hinting method + * 608896 : mpegtsmux: PAT/PMT interval fixes + * 608998 : [jpegparse] unit test fails + * 609055 : [qtmux - mp4mux] crash when setting + * 609215 : [rsvg] fix compilation with MSVC + * 609478 : [faad] SIGSEGV when caps contains codec_data=(buffer)NULL + * 164870 : PNM [en,de]coder + * 383478 : Need ac3 parser to support seeking in unframed .ac3 files + * 606878 : [apexsink] crashes when changing volume in rhythmbox + * 580731 : qtmux needs mapping for ALAC + * 587922 : qtmux lacks mapping for Sorenson Video v3 + * 601576 : qtmux feature: moov recovery + +Changes since 0.10.16: + + * Fix DVD playback + * New elements: DTMF tone source and detector + * ASS subtitle support improvements + * Fix compilation on OS/X Snow Leopard + * Support DVB 3.3 API + * Inputselector fixes + +Bugs fixed since 0.10.16: + + * 602106 : Bad atom size calculation + * 574434 : [camerabin] Changing default video/audio source for Windows + * 584361 : gppmux Support for 3gr6 + * 586929 : [midi] Doesn't handle push + * 595161 : [mpegtsdemux] Internal dataflow problem with some streams. + * 598552 : faac: Clean up defaults + * 598763 : New plugin: aiffmux + * 598808 : mpegpsmux: Fix CLFAGS typo and reorder flags + * 599050 : [mpegvideoparse] Does not check width/height range + * 599469 : resindvd: problems pre-rolling in the absence of audio + * 600454 : aacparse detecting aac file as mpegversion=2 instead of 4 + * 600461 : [zbar] Over-eager detection of barcodes + * 600662 : [assrender] Doesn't synchronize subtitle buffers + * 600707 : autoconvert depends on function from core 0.10.26 + * 600724 : celt: fails to build against celt-0.7 + * 599903 : Scaletempo plugin stops early when playing slowly + +Changes since 0.10.15: + + * Fix various bugs in the 0.10.15 release + * Fix a deadlock in starting DVD + * Fix compilation problems + * Allow libneon versions >= 29.x + +Bugs fixed since 0.10.15: + + * 599272 : faac check fails, undefined symbol + * 599332 : [neonhttpsrc] fails to compile with libneon 0.29.0 + +Changes since 0.10.14: + + * Add barcode scanner plugin using the zbar library + * Improvements to camerabin + * Support audio-track format switching in DVD + * Improve parsing and display of PGS subpictures + * Add Cog plugin + * Add LV2 plugin support + * Improve VDPAU plugin. Add post-processing support + * Add videomeasure plugin + * Improve Siren codec + * Improved Directshow capture element + * Add EAC3 mapping in MPEG-TS playback + * Improve AAC encoding + * Improved MIDI file playback + * Improve H-264 parsing + * Add MPEG-PS muxer + * Add PNM encoder and decoder + * Add SVG decoder + * Update GLib dependency to GLib 2.16 + * Various other bug fixes and improvements (see ChangeLog) + +Bugs fixed since 0.10.14: + + * 303975 : Add tar support + * 519001 : [wildmidi] Doesn't handle seeking correctly + * 575261 : Do not use the outdated Debian/Ubuntu libass libraries! + * 583901 : aacparse fails for remuxing + * 589609 : [PATCH] fix dvdspu crash when subtitles do not fit the incoming video + * 593348 : faac encoder produces first buffer with wrong duration + * 593625 : Broken Compilation, missing files with latest commits in git repository + * 593683 : Typo in variable name for libraries to link against + * 593864 : pcapparse: Set the GStreamer timestamp according to the pcap timestamps + * 594030 : [mpegtsdemux] Support for AC3/EAC3 not 100% correct + * 594277 : Make the default segment of outputselector TIME instead of UNDEFINED + * 594278 : dshowvideosink: remove unused variable + * 594279 : dshowsrcwrapper: use tchar macro for string literals + * 594321 : Videomeasure plugin + * 594382 : assrender: Fix compilation with libass = 0.9.6 + * 594489 : broken compilation for mpegdemux + * 594715 : libgstsignalprocessor install issues + * 594812 : [mpegpsdemux] Seeking broken for MPEG PS cut from VOB file + * 595215 : PNM encoder doesn't support ASCII encoding + * 595409 : PNM decoder can't decode ASCII encoded files. + * 596285 : gstvideomeasure crashes at the end of some streams + * 596743 : qtmux: fix flags_as_uint to flags[] + * 598139 : faad element leaks itself. + * 598263 : refcount leak in resindvd + * 598274 : dtsdec leaks input buffers + * 598369 : Properly detect pre-releases + * 598733 : id3mux doesn't write image to APIC tag + * 582779 : [resindvd] Add support for other audio codecs than ac3 + * 595700 : PNM decoder doesn't handle ASCII encoded pnm data split over several buffers + +Changes since 0.10.13: + + * Moved rtpmanager to -good + * Moved dirac elements from schroedinger to gst-plugins-bad + (new schroedinger release without the gstreamer elements + will follow shortly) + * amrwb: Remove AMR-WB parser and decoder and rename encoder plugin + from amrwb to amrwbenc (the removed elements will re-appear in the + next -ugly release; no migration strategy provided in this case + because of the special status of the amrwb plugin) + * asfmux, rtpasfpay: add ASF muxer and windows media payloader + * basevideo: add experimental video base class library/API + * camerabin: lots of fixes and improvements + * capssetter: new element for debugging purposes + * directdraw: Implement GstNavigation interface + * directshow: refactor and improve dshowsrcwrapper, dshowideosrc, dshowaudiosrc + * frei0r: wrapper for frei0r video filter plugins + * gme: add libgme plugin which supersedes the existing OpenSPC spc plugin + * Implement SEEKING query in more demuxers and decoders (notably + mpeg-ps/mpeg-ts, mxf, musepack, rawparse) + * kate: add kate subtitle encoder, decoder and overlay + * mimic: lots of fixes for mimenc and mimdec; add "paused mode" + * mpegpsdemux: added caps for AAC and fixed playback of a clip with LPCM + * mpegtsdemux: added VC1, EAC3 and LPCM related to blueray/hdmv + * qtmux: handle pixel-aspect-ratio; misc. other fixes and improvements + * shapewipe: support ARGB/RGBA for video input/output; fix for still images + * vdpau: add experimental vdpau plugin + +Bugs fixed since 0.10.13: + + * 587819 : [mpegtsparse] crash because of double free + * 344129 : [directsoundsrc] Plugin for Directsound source + * 377784 : xvidenc should output video/mpeg + * 540128 : Totem freeze with short HDV file + * 541962 : [directdrawsink] crash when exposing in GST_STATE_READY + * 561241 : metadatademux pad activation deadlock + * 561752 : GstRtpBin implement Release pad functions + * 575672 : [mpegtsdemux] crashes when souphttpsrc is used as a stream source + * 575818 : [ivorbisdec] extract vorbis tags + * 576800 : gstreamer SPC plugin requires non-portable x86 code + * 583470 : mpegtsparse: Old pes pids not removed when receiving PAT table + * 584252 : enhancements to OSSv4 plugin + * 584897 : Remove AMR plugin as it has been replaced by updated OpenCore plugin + * 585839 : Support for sending RTP packets as GstBufferList in the gstrtpbin + * 586019 : [mxfdemux] stray semicolons after if statement + * 586097 : GStreamer DVB tuning too quick for some devices + * 586956 : Include < sys/time.h > only if it is present in the system + * 587023 : [freeze] disable plugin static lib + * 587595 : [dshowsrcwrapper] start refactoring + * 588638 : [katedec] add x-dvd-subpicture output + * 588944 : mpegpsdemux doesn't support seeking with GST_FORMAT_TIME anymore + * 590030 : rtpsource: Incoming buffers do not always have caps + * 590208 : GstNavigation interface support for directdrawsink + * 590360 : [qtmux] requires endianness even if the samples are 8bit + * 590446 : [mpegdemux] MPEG TS with A52 not seekable + * 590797 : Memory leak in rtpsource.c + * 591440 : rtpdtmfsrc event cleanup + * 591538 : generic states test fails (vdpau, mimenc) + * 591610 : asfmux: messing up with sinkpads + * 591927 : REQUIREMENTS is out of date + * 592259 : mimenc: fourcc written incorrectly + * 593024 : regression in schroenc streamheader initialization + * 593063 : resindvd and rawparse do not use correct base LDFLAGS + * 593068 : Disarray in directsoundsrc/directdrawsink + * 586354 : [h264parse] blocked in infinite loop while parsing a corrupted frame + + +Changes since 0.10.12: + + * New shapewipe video transition plugin + * qtmux improvements + * camerabin improvements + * HDV MPEG-TS private streams support + * Output interlacing information in mpegvideoparse + * MS-ADPCM decoder + * RTP fixes and enhancements + * DTS decoder improvements + * New ID3 tagging plugin that supports v1, v2.3 and v2.4 + * Support for PGS (BluRay) subtitles + * Many other bug fixes and enhancements + +Bugs fixed since 0.10.12: + + * 584945 : camerabin unit tests failing + * 511097 : Support self-signed certificates in neonhttpsrc + * 561752 : GstRtpBin implement Release pad functions + * 584164 : gstspu-pgs.c warnings for format string args and uninitia... + * 584165 : rtpbin sdes message broken + * 584360 : gppmux ftyp + * 585015 : debugutils can't find libgstinterfaces + * 585660 : segfault in scaletempo plugin + * 584114 : gppmux and h263 + * 583188 : Problem with sdp: bind failed or video disappear after fe... + * 583627 : statistic file name needs to be standardized + +Changes since 0.10.11: + + * Presets support in several elements + * Support ITV MPEG-TS streams + * New element: flvmux + * New element: osxvideosrc + * Fixes in RTP elements + * camerabin fixes + * Improved QT/mp4 muxing + * xdgmime based content type guessing + * deinterlace2 moved to the Good plugins (replacing deinterlace) + * Support for MXF muxing, and improved MXF demuxing + * Greatly improved DVD playback + * DirectDraw element moved back from Good plugins + * Many other bug fixes and improvements + +Bugs fixed since 0.10.11: + + * 573852 : Update celt to 0.5.x + * 574401 : metadatamux fails^WIS failure + * 580091 : soundtouch plugin fails to load + * 153684 : [osxvideosrc] Mac users needs an osxvideosrc + * 537700 : [scaletempo] Scale audio tempo in sync with playback rate + * 569437 : mpegtsparse: flow error or crashes while dynamicly changi... + * 569673 : [Mpegtsparse] PAT changes not always signaled + * 569781 : [Mpegtsparse] drop of valid TS packets + * 573595 : plugins-bad mingw ports + * 573846 : Check for soundtouch-1.4 too + * 573847 : Use SDL static-libs for conftest and libs for gstsdl* + * 573848 : Use native CPU number detection in mpeg2enc + * 573849 : modplug's sndfile.h conflicts with libsndfile's sndfile.h + * 575388 : [aacparse] deadlocks in busy loop when seeking + * 575736 : mpeg2enc's bitrate parameter does not work properly + * 576408 : [playbin2] Deadlock when using resindvd as source + * 577690 : rtpdtmfmux: missing pad unref + * 577864 : [residvd] dvdnav version requirements should be higher + * 578112 : x264enc: I-frame request + * 578562 : dshowdecwrapper missing check for GST_DISABLE_GST_DEBUG + * 578563 : win32 export files are not disted + * 580133 : Regression in baseparse since last release + * 580144 : emit notify::internal-ssrc when there is a ssrc collision + * 580786 : [flvmux] " uninitialized variable " compiler warning + * 580901 : Uninitialized variable may be used in fpsdisplaysink.c + * 581375 : rtpssrcdemux crashes on SR-less rtcp packets + * 582013 : uninitialized var in mxfmux.c prevents gst-plugins-bad bu... + * 582074 : [faad] Fails to build with faad 2.6 (misdetected as 2.7) + * 582208 : [PATCH] fix for soundtouch-1.4 + * 582483 : y4menc doesn't pass timestamps on + * 582656 : [mxfdemux] Fix deadlock when querying from the pad-added ... + * 582702 : qtmux: crash in atom_moov_add_blob_tag + * 583337 : [mxfmux] Wrong layout for non-interlaced formats + * 580585 : rtpmux memleak + * 577843 : input-selector causes problems with DVD menus in playbin2 + * 581593 : gppmux doesn't support MPEG4 part 2 in sink caps + * 575284 : add auto-connect-forced mode to jackaudiosrc and jackaudi... + * 576021 : On Windows qtmux can't write files longer than 2-4 GiB, u... + * 576712 : Output-selector keeps reference to latest buffer when cha... + * 581427 : [mpeg4videoparse] config buffer is leaked + +Changes since 0.10.10: + + * Add ASS/SSA subtitle handling element assrender + * Leak fixes in the QuickTime decoder wrapper + * Better DirectShow output on Windows + * Extend QT muxing support to include AMR and H.263 + * mms seeking support + * Extended MXF file format handling + * camerabin and photography API for digital camera interfacing + * Merge elements from Farsight: liveadder, sirendec, sirenenc, valve, + rtpdtmfsrc, rtpdtmdepay, dtmfsrc, rtpdtmfmux, autoconvert, + mimdec, mimenc + * typefinder based on xdgmime + +Bugs fixed since 0.10.10: + + * 573369 : [gstfaad] Memory corruption and segfault + * 568704 : Metadatamux: unable to configure byte order for EXIF + * 354908 : videoflipping interface for v4l2src + * 369912 : missing inclusion in rpm spec file + * 469930 : [mmssrc] seeking support PATCH + * 481075 : Full support for ASS/SSA subtitles + * 549645 : merge useful elements from gst-plugins-farsight into core + * 567003 : [ladspa] improve plugin scanning + * 567371 : [mpegtsparse] memory leak in mpegtspacketizer + * 567828 : rtpmanager and RTCP BYE packet + * 567965 : [flvdemux] add support for ECMA arrays in script tags + * 568480 : gst-plugins-bad dccp plugin won't compile on Soalris + * 568483 : Problems linking gst-plugins-bad + * 568837 : RFE: allow building against the system modplug library + * 569323 : [qtmux] should support audio/AMR sink + * 570996 : bpmdetect relibably crashes with SIGSEGV on particular file + * 571560 : gstdshowaudio decoder doesn't compile. + * 572315 : Compiling camerabin on Windows with Visual Studio + * 572900 : gstrtpsession should not forward recv side event to the s... + * 573288 : [mpegtsdemux] memory leak when pusi is missed due to pack... + * 573391 : [videoanalyse] Wrong brightness calculation + * 575157 : xdgmime typefinder: make more conservative + * 575565 : [mxf] mxf plugin uses symbols not in glib 2.6 (minimum gl... + * 564114 : [PATCH] fbdev: fix depth calculation + * 573850 : Use Glib's byte order in gstgsmdec + * 573851 : Use glib integer types in gstfaad + * 172043 : [mpegpsdemux] wrong video length on mpeg file + +Changes since 0.10.9: + + * Require gettext 0.17 + * ACM mp3 decoder element for win32 + * New MXF demuxer added + * JPEG-2000 encoder - jp2enc added + * RTP support + * Fixes for RTP support + * Add parsers for AAC and AMR + * Move libgstapp and elements to -base + * Add Quicktime muxer element qtmux + * Enhance RFB capture + * Improve MPEG-TS and MPEG-PS demuxing + * Don't install static libs for plugins + * Introduce audioringbuffer element + * Improve DVD playback of ResinDVD components + * Move old audioresample from -base as legacyaudioresample + * Improve speexresampler, and then move it to -base + * Improve FLV demuxing and parsing + * Various DVB input fixes + * Add support for frequency list descriptors for DVB + * Improve MPEG-TS muxer + * Various other bug-fixes + +Bugs fixed since 0.10.9: + + * 127574 : replaygain support + * 480543 : [spc] crashes when not given any input data + * 546319 : [resindvd] Stuck on first menu (language selection) + * 549222 : Totem using resindvd element as DVD navigation module doe... + * 550280 : Move qtmux to gst-plugins-bad + * 550454 : FLV demuxer screws up in Pitivi + * 550613 : [mpegtsmux] Add support for ac3/dts/lpcm + * 553823 : CodeStyle improvements and minor fixes to the DCCP plugin. + * 555238 : Recent changes in x264 breaks compilation of x264 plugin. + * 557161 : Wrong time displayed and no seeking with MPEG PS cut from... + * 557763 : [mpegtsmux] DeadlockEOS due to interleaving mechanism + * 557814 : [mpegdemux] frequency list descriptor support + * 558639 : cross-configuring interrupts due to a failing check for " ... + * 560841 : Provide access to packet loss + * 561992 : debug format warning during compilation of resindvdsrc.c ... + * 562312 : Lip-sync generates wrong `ts-offset' in GstRtpBin + * 562319 : [rtpsession] memory corruption + * 562802 : [appsrc] lockup in pad_push() if previous flow was wrong-... + * 563006 : mxf mpeg422 file stops playing + * 563147 : input-selector doesn't notify of active-pad changing when... + * 564232 : Dual Licensing qtmux + * 565439 : Make pcapparse compile with (mingw32) gcc + * 565509 : rtpsource on receiver side can't get clock-rate for h264,... + * 565614 : [mpegtsdemux] Fix memory leak + * 565910 : allow forcing the ssrc on a rtpsession + * 566356 : [dvbbasebin] Couple of memleaks + * 566613 : bayer2rgb calculates wrong color offset + * 566878 : [ladspa] Add dependencies for ladspa modules + * 566957 : Add time based seeking to ResinDVD + * 566958 : fix dirac support in qtmux/mp4mux + * 566959 : Fix duration query on mpegtsdemux + * 508029 : [speexresample] pops/glitches in some cases + * 558416 : [PATCH] realvideodec: use pixel aspect ratio of container + * 564482 : [appsrc] semantics of push-buffer signal awkward for bind... + * 565319 : rtpjitterbuffer: bursty reception can cause time to be re... + * 565613 : [mpegtsdemux] Add scrambled field to service structure + * 567004 : ladspa plugin crashes on Solaris + +Changes since 0.10.8: + + * New CELT encoder and decoder + * New TwoLAME encoder + * New DCCP element + * New AIFF parser element + * New APEX sink element + * deinterlace2 element improvements + * New JACK audio src element + * New winscreencap, winks and pcapparse plugins + * x624enc fixes + * Support for ATSC tuning and channels.conf parsing + * RTP improvements + * New scaletempo element + * Add Fluendo MPEG-TS muxer + * Add Fluendo MPEG-TS and MPEG-PS demuxers + * New JPEG2000 element + * New FLAC parser element + * DVD playback improvements + * Improved DirectShow decoding support + * New Windows Audio Session audio src element + * New FLV muxer element + * Many other bug fixes and improvements + +Bugs fixed since 0.10.8: + + * 537700 : [scaletempo] Scale audio tempo in sync with playback rate + * 550468 : [name conflict] New Fluendo mpeg demuxers + * 545197 : jackaudiosrc + * 555244 : Output-selector has unexpected event forwarding right aft... + * 402593 : deinterleave gives corrupt output + * 406673 : Need AIFF parser + * 535527 : [real] Real video/audio stream fails to play + * 537455 : ATSC: VSB / QAM Annex B support + * 538500 : AIFF file doesn't play + * 542390 : Implementation of DCCP Plugin for gstreamer + * 542510 : [apexsink] Apple AirPort Express Wireless Sink + * 545247 : use g_setenv() insteed of setenv() in sdlvideosink.c + * 546312 : Make the metadata writable before modifying it in rtpmanager + * 549409 : gstrtpbin don't stop at the end of a stream + * 549774 : audio / video synchronization glitch during rtsp playback + * 550486 : [faac] Negotiation problem with mono audio for some sampl... + * 550657 : New element jasperdec + * 552506 : [neonhttpsrc] doesn't handle/throw errors correctly + * 552536 : fix incomplete change to gstdvbsrc.c + * 553755 : [mpegpsdemux] FP exception when playing tv2-1_25.mpg + * 555193 : [ELEMENT-MOVE] Move mpegtsparse element into mpegdemux pl... + * 555198 : [mpegpsdemux] Lower the RANK to MARGINAL for next release + * 555912 : [apexsink] Missing from ext/Makefile.am + * 555965 : Missing space after point mark + * 555968 : Missing space after point mark + * 555969 : Missing space after point mark + * 556003 : [flvdemux] Regression in handling flow returns in pull-mode + * 556274 : [aiffparse] Uses debugging methods before debugging is in... + * 556338 : Failed to configure latency + * 556428 : [mpegpsdemux] Creates invalid newsegment events + * 556430 : [inputselector] Assumes there's always an otherpad + * 556440 : [PATCH] crash on demuxing certain transport streams + * 556482 : [PATCH] crash in mpegtsparse get_encoding_and_convert + * 556564 : [flvmux] Copy & paste bugs resulting in invalid files + * 556588 : [apexsink] should not have PRIMARY rank + * 557080 : [mpegpsdemux] Regression with reverse-playback + * 543480 : gstrtpbin fails to release lock while emitting signal + * 556520 : jitterbuffer seqnum gap detection is wrong + * 463941 : Plugin for screen capture on windows + * 519935 : New plugin for video capture on Windows + * 520899 : New plugin: pcapparse + * 520901 : New plugin: wasapi (Windows Audio Session API) + +Changes since 0.10.7: + + * Support shared desktops in RFB input + * Make the Quicktime codec wrapper work on win32 + * Experimental DVD navigation support + * Support AAC/H.264 in FLV files + * Fixes in the DirectShow codec wrapper + * Fix the Real codec wrapper plugin + * New deinterlace2 plugin incorporating TVtime deinterlacers + * Handle seeking, timestamps, duration in RAW video/audio parsers + * New DirectShow video sink for Win32 + * FAAD reverse playback support + * OSS4 support improvements + * MythTV seeking support + * SPC decoder now supports seeking, tags and duration queries + * Replaygain elements moved to Good + * Deinterleave/interleave elements fixed and moved to Good + * MPEG-4 video stream parser fixes + * Improved MPEG-TS parsing for DVB support + * Improvements in App source/sink + * RTP manager enhancements + +Bugs fixed since 0.10.7: + + * 533736 : [mythtvsrc] Seeking doesn't work + * 544050 : ext/timidity/gsttimidity.c : ISO C90 forbids mixed decla... + * 454151 : SPC plugin enhancements (patch) + * 506594 : [interleave] doesn't work with channels > 1 + * 521392 : Proposed patches for bayer2rgb encoding + * 525613 : [wildmidi] [PATCH] initializes library multiple times + * 528618 : amrwb plugin do not build without warning with the 3ggp s... + * 529359 : BBC Real Audio stream is just noise + * 530611 : [gstsrtenc] declare variables at beginning of block + * 531840 : QuickTime wrapper doesn't work on Win32 + * 531955 : gstrtpsession doesn't send RTCP bye on EOS + * 532723 : mpeg4videoparse should parse the codec data + * 533435 : wildmidi does not work + * 533559 : mpeg4videoparse should skip garbage + * 535043 : VCD plugin only plays first track + * 536042 : mpeg4videoparse broken on big endian architectures + * 536258 : interleave doesn't close properly + * 536856 : rtpmanager deadlocks when receiving new data while going ... + * 538560 : [mpegtsparse] static caps reference counter incremented i... + * 539292 : memory leak in mpegtsparse + * 539601 : [realvideodec] not-negotiated error if codec lib isn't found + * 541522 : cross mingw32 gcc: festival plugin compilation fix + * 541543 : fix HAVE_OSS4 detection code in configure.ac + * 543286 : deinterlace2 doesn't build outside gcc + * 543846 : [resindvd] Impossible to build from the first configure r... + * 543848 : [ladspa] Needs to link with -ldl for dlopen() and friends + * 543860 : [modplug] Uses CFLAGS for CXXFLAGS + * 543861 : [resindvd] Some files not disted + * 544457 : -bad doesn't compile with MSVC + * 526905 : [musepack] Port to the new libmpcdec API + * 532011 : Deadlock in rtpsession + * 536309 : Seeking in pipeline with videoparse crashes + +Changes since 0.10.6: + + * OSS v4 support + * libdc1394 2.0.0 support + * AAC support fixes + * RTP support improved + * New OFA element + * SRT subtitle encoder added + * Windows Inet support for http/ftp + * Fixes in dc1394, MIDI, MPEG-2 encoding, MythTV input, NAS + * Fixes in Bayer decoder, replaygain analysis, GSM decoder + * DVB/MPEG-TS support improved + * NSF decoder updated + * 'metadata' plugin enhancements + * Dirac encoder ported to libschroedinger + * mplex element ported to 0.10 + * VCD/CDXA parser ported to 0.10 + * Directshow wrapper improvements + * 'selector' plugin enhancements + * souphttpsrc moved to the -good module + * Various other fixes and enhancements + +Bugs fixed since 0.10.6: + + * 498237 : nsfdec crash with SK8ORDIE. + * 529378 : faad leaks GstAudioChannelPosition + * 351309 : New Element: gst-puid + * 469979 : [faad] Could not map channel positions - setting caps on ... + * 494499 : replaygain analysis slowdown on low volume (denormals) + * 514948 : [souphttpsrc] configurable buffer size setting and zero-copy + * 514964 : [dc1394] port to new stable 2.0.x API + * 517937 : various C89 fixes + * 518227 : test/icles/metadata_editor.c does not compile on Windows + * 518722 : [souphttpsrc] append cookie headers to HTTP request + * 519905 : [mvedemux] fix audio discontinuity + * 520329 : [PATCH] mjpegtools: mplex ported to 0.10 and mpeg2enc upd... + * 520626 : Implement collision and loop detection in rtpmanager + * 520892 : [dshowvideosrc] latency and shutdown improvements + * 520894 : rtpmanager rtcp thread shutdown deadlock + * 520897 : new element: wininetsrc + * 521749 : [souphttpsrc] unit test fails on mandriva cooker + * 522134 : [souphttpsrc] Playback should continue seamlessly on serv... + * 522212 : wrong origin + * 522884 : gstneonhttpsrc does not handle the HTTP status 303 correc... + * 523854 : [souphttpsrc] Glitches and crackling when playing things ... + * 524035 : [neonhttpsrc] fails to compile with libneon 0.28.x + * 525271 : [new plugin] srtenc + * 526337 : souphttpsrc ignores connections error + * 527622 : [flvdemux] crash in FLV demuxer + * 528000 : [timidity] Doesn't dist all files correctly + * 528011 : [dc1394] Shouldn't be included in the states test + * 528245 : rtpbin element leaks + * 528266 : [ofa] Unit test fails because of different fingerprints + * 528614 : timeout introduced in poll loop for fd in dvbsrc causes b... + * 529283 : [ofa] Unit test leaks tag string + * 529285 : [rganalysis] Unit test leaks a GstTagList + * 517854 : DirectFB check fails + * 517895 : nas plugin no longer builds (configure.ac error) + * 517896 : PATCH: fix building of mpeg2enc plugin with even newer mj... + * 525100 : does not build with --disable-external + * 481354 : [wavparse] does not play 700Hz GSM 6.10 wav file + +Changes since 0.10.5: + + * DVB support added + * dc1394 support + * RTP-manager improvements + * Support for native QT codecs on OS/X and DirectShow codecs on Windows, + courtesy of Songbird and Fluendo + * New elements: flvdemux, flvparse, mpegtsparse, dvbsrc, dvdspu + * More new elements: mpeg4videoparse, metadatademux/mux, souphttpsrc, + speexresample, qtwrapper + * Even more new elements: rawaudioparse, fbdevsink + * Renamed elements/plugins: switch (now selector), pitch (now soundtouch) + * Elements graduated to good: multifilesrc/sink, spectrum, equalizer, + bpwsinc, lpwsinc + * Elements graduated to ugly: xingmux (now part of mpegaudioparse) + * OpenGL support moved to new module: gst-plugins-gl + * appsrc/appsink improvements + * Fixes in neonhttpsrc + * Fixes in amrwbparse + * Deinterlacer improvements + * Fixes in dtsdec + * Fixes in the Real codec wrappers + +Bugs fixed since 0.10.5: + + * 321240 : [PLUGIN-MOVE] dfbvideosink should be moved from -bad to -... + * 508029 : [speexresample] pops/glitches in some cases + * 508294 : [realaudiodec] crash in set_caps dereferencing NULL funcs... + * 387251 : New Plugin! : dc1394 Adds Support for firewire (1394) IID... + * 393461 : [Real] Location of .so varies on each distribution + * 395424 : neonhttpsrc lacks support for proxy servers + * 397759 : Xingmux may not write a proper Xing/VBR header + * 403992 : [new plugin] timidity based midi decoder + * 409974 : Code for improved GStreamer resampler (based on speex res... + * 426657 : Add support for SDP multicast description files + * 433373 : [win32] autogenerated win32/common/config.h needed + * 444499 : build of fresh CVS is failing in ext/sdl + * 450175 : gcc-2.9x build fixes + * 450605 : Missing files in po/POTFILES.in + * 452009 : ./configure breaks when cross-compiling FAAD2 + * 452258 : [mpeg2enc] make work with mjpegtools 1.9 + * 453636 : dvbsrc needs more flexible adapter selection + * 454078 : [ivorbis] header files missing in release tarball + * 454313 : missing xml files to build docs/plugins + * 456901 : PATCH: add several missing supported mime-types to the mo... + * 456912 : PATCH: make wildmidi plugin check for /etc/timidity.cfg + * 461068 : Seeking not properly implemented by the pitch plugin + * 461373 : HP-UX 11.11 build with native compiler + * 461377 : [festival] port to GStreamer-0.10 + * 461601 : Some files missing from POTFILES.in + * 462737 : compilation breaks with g++-4.2 and gcc-4.2 + * 464678 : Add connection-speed property to mmssrc element + * 468039 : [mythtvsrc] missing examples for live tv in gst-inspect + * 471554 : real media videos do not work + * 473562 : [rtpmanager] cvs build problem due to compiler warning + * 474969 : [neonhttpsrc] fails to play radio streams with neon > =0.26 + * 476128 : Printf format fixes + * 476148 : Add mpeg4 video parser + * 476159 : memleak patch to rtpmanager + * 476370 : [faad] shouldn't set channel-positions for mono and stereo + * 477306 : amrwbenc has not property to select band mode + * 478566 : Add notification of active SSRCs to the RTP manager + * 481200 : gstneonhttpsrc discards GET parameters from URL + * 481276 : [mpegtsparse] " not linked (-1) " error + * 481279 : [mpegtsparse] partial corruption of the output stream + * 483400 : mpegtsparse: PAT with version 0 incorrectly skipped by pa... + * 484990 : memleak - missing g_free() rtpmanager/gstrtpbin.c + * 485462 : alsaspdifsink uses wrong sample rate + * 487496 : [dvdspu] fails to link on Mac OS + * 487892 : [mpegtsparse] getting pat-info property before PAT is ava... + * 487901 : [mpegtsparse] stale PAT info when switching from PLAYING ... + * 490060 : [faac] a few minor issues: bitrate, enum nick for low com... + * 490682 : [interleave] can't create more than one request sink pad + * 492406 : Crasher in libgstdshow on Windows/MSVC + * 492798 : [rtpmanager] build issues on Windows/MSVC + * 496221 : Streaming FLV's over HTTP doesn't work, for totem and the... + * 498430 : incomplete CVS commit + * 498667 : gstreamer segfaults in faac + * 498755 : FLV files incorrectly report framerate of 1000fps + * 499008 : mpeg2enc ignores the incoming stream aspect property + * 500099 : Fixes and improvements to souphttpsrc + * 500142 : switch element in switch plugin should be renamed + * 501579 : rtpmanager should emit a signal when it can associate a s... + * 502335 : [souphttpsrc] some enhancements + * 502879 : videoparse segmentation fault + * 503308 : Changing tempo using pitch plugin doesn't update length info + * 507020 : [rtpjitterbuffer] unreffing peeked buffer and not popping... + * 507584 : gio: gstgiobasesrc.c does not compile with CVS version of... + * 507940 : rtpsession:rtp_send_src shouldnt not have fixed caps + * 508515 : [rtpbin] allow request_new_pad with name NULL + * 508587 : Improvement to rtpsession + * 508979 : Enhancement for xingmux + * 510708 : [souphttpsrc] support for libsoup-2.4 + * 511001 : enhanced deinterlace plugin + * 511146 : rtpjitterbuffer should not return an error on no-caps + * 511530 : DTS library API change? + * 511683 : gstrtpbin fails to associate streams together for lipsync + * 511686 : make gstrtpjitterbuffer respect different clock rates for... + * 511920 : rtpsource queue full tries to treat GstBuffer as GstObject + * 512654 : [h264parse] does not build in cvs head (unused variable i... + * 512774 : [rtpjitterbuffer] does not accept clock rate from caps + * 512826 : switch / selector event leak + * 514093 : bug in configure.ac prevents glimagesink plugin from bein... + * 515564 : souphttpsrc unit test fails to build + * 515567 : [states] States unit test should exclude the dvb plugin + * 515588 : Warning building tremor plugin + * 515720 : [xvid] Memory leak caused by not unsetting GValue + * 515721 : [rfb] rfbsrc leaking the rfb decoder + * 515722 : [fbdev] Leaking the device property string + * 515815 : [mpegvideoparse] fix a few new memory leaks + * 515860 : plugins should not install headers - fix metadata + * 515919 : Fix a bunch of finalize leaks + * 515964 : [docs] Still contains docs for the GIO plugin although it... + * 515970 : [dshowdecwrapper] Doesn't chain up dispose function properly + * 516061 : [h264parse] fix a few new memory leaks + * 516094 : Remove glimagesink from -bad + * 516114 : dvbbasebin leaks the location string when the uri handler... + * 516160 : gstrtpbin did not ignore streams with no SR when doing as... + * 516436 : [dvdsub] segfault on display of 1st subpicture in 2nd cha... + * 516448 : criticals due to missing debug category init in mpegtsparse + * 516499 : critical caused by assuming optional property " descriptor... + * 517391 : [tta] Doesn't link with libm + * 517571 : small memory leak in gstrtpbin + * 517684 : [mythtvsrc] Small bug fixes + * 478159 : Could not decode realvideo buffer + * 497020 : Add fully async HTTP source based on libsoup. + * 501562 : [switch] bogus locking order + +Changes since 0.10.4: + + * New plugin - realdec for decoding Real streams using binary libs + * New plugin - MythTV source + * New plugin - appsrc (for application data insertion) + * New plugin - VMnc VMware capture decoder + * New plugin - JACK audio output + * New plugin - interleave/deinterleave + * New plugin - RTP manager + * New plugin - Bayer to RGB converter + * New plugin - ReplayGain support + * New plugin - DirectShow win32 input support + * New plugin - videosignal/videoanalyse + * LADSPA plugin improvements + * IIR equaliser ported to 0.10 (iirequalizer) + * libsndfile output ported to 0.10 + * mpegvideoparse ported to 0.10 and improved + * switch element ported to 0.10 + * VCD source element ported to 0.10 + * AMR-WB support fixes + * MIDI renderer plugin based on timidity + * Windows and OS/X output plugins moved to the Good module + * qtdemux, wavpack and videocrop plugins moved to the Good module + * Many other bug fixes and improvements + * Parallel installability with 0.8.x series + * Threadsafe design and API + +Bugs fixed since 0.10.4: + + * 152403 : [mpeg/DVB] Integrating externaly developped DVB source el... + * 333307 : AmrWB Plugin + * 345633 : [nassink] port to 0.10 + * 354174 : [PATCH] add REAL support by using the proprietary drivers + * 354451 : [mythtvsrc] Plugin for MythTV source + * 357055 : Tremor (ivorbis) plug-in is unable to decode vorbis strea... + * 374773 : [qtdemux] [PLUGIN-MOVE] Move from -bad to good + * 375264 : [neonhttpsrc] add seek support + * 376591 : configure.ac looks for wrong symbols for FAAD support + * 382184 : Port interleave and deinterleave to 0.10 for audio channe... + * 388050 : [neonhttpsrc] code simplifications + * 392112 : [rfbsrc] doesn't build with MinGW + * 393622 : Not building real plugin, only works on 32bit x86 platforms. + * 395536 : [wavpackenc] Trivial cleanup + * 395597 : Deinterleave fails to negotiate with alsasrc when using D... + * 400555 : dts-in-wav: only 2 channel recognised + * 402470 : [osxvideosink] video sink for MacOSX + * 412077 : [speed] can't initially set speed > 1 + * 412710 : [replaygain] Add playback elements + * 413818 : [neonhttpsrc] errors out on redirects + * 421110 : New x264enc plugin + * 421598 : [wavpack] Add support for non-8*n depths and don't play a... + * 423283 : [qtdemux] timestamps of outgoing h264 packets are wrong + * 423741 : [amrwb] use external shared libamrwb + * 430594 : Unable to compile gst-plugins-bad CVS + * 430598 : [realvideodec] dll functions not available on MinGW + * 430664 : name conflict for " rtpbin " element + * 437260 : CFLAGS are poinsoned by the OpenGL test + * 437403 : gst-plugins-bad uses #ifdef G_OS_WIN32 instead of #ifdef ... + * 437539 : Compilation of DirectDraw and DirectSound plugins using m... + * 439405 : YUV not working in GL image sink. + * 439910 : [switch] Warning in a debug function (Mingw) + * 439911 : [qtdemux] Warning in a debug function (MinGW) + * 439914 : [directdraw] Warnings when using MinGW + * 440466 : [PLUGIN-MOVE] osxvideo + * 440774 : [sdl] sdlvideosink has ill-formatted element details + * 442689 : [neon] Property-related cleanups of neonhttpsrc + * 445189 : PLUGIN-MOVE - Move Windows sinks to -good + * 348973 : New plugins: MVE muxer/demuxer + * 391971 : Fix build with gcc-2.x + * 392313 : [directdrawsink] dist and add to gst-plugins-bad + * 392638 : [directsoundsink] dist and add to gst-plugins-bad + * 392856 : [qtdemux] plugin must link against zlib (error with MinGW) + * 403572 : Port equaliser element to 0.10 + * 352605 : [PLUGIN-MOVE] move wavpack to -good + * 426972 : Specific set of H.264 files cannot be played + * 434101 : [gsm] doesn't link against libgstbase-0.10 + +Changes since 0.10.3: + + * V4L2 source element moved to Good plugins + * Many improvements in Quicktime playback + * Xvid encoding and decoding improvements + * FAAD decoder fixes + * New element: alsaspdifsink for IEC958 output + * Spectrum FFT analysis element ported + * New element: h264parse. H.264 Parser + * Fixes in bz2 support + * New element: theoraexpdec. Libtheoraexp based Theora decoder + * New element: wavpackenc. Wavpack decoder + * Improvements in the libneon based http source + * gstfilter ported to 0.10 + * mpeg2enc ported to 0.10 + * New element: nsfdec. NSF decoder + * New element: spcdec. libopenspc based SPC decoder + * videocrop ported/re-written from 0.8 + * cdaudio element ported to 0.10 + * New element: rganalysis. ReplayGain analysis element + * New element: dvbsrc. DVB source element (disabled by default) + * deinterlace (Simple deinterlacer) ported from 0.8 + * New element: nuvdemux. NUV video demuxer + * Fixes in the DirectDraw output elements + * New elements: multifilesrc, multifilesink + * y4mencode ported from 0.8 + * rfbsrc, librfb based capture source ported from 0.8 + * New element: jackaudiosink. JACK audio output element + * Many other fixes and improvements + +Bugs fixed since 0.10.3: + + * 379261 : crash in Movie Player: Trying to play a partial... + * 151192 : [PATCH] nsf decoder + * 124580 : [jacksink] plugin needs a maintainer/love/to be updated + * 330632 : [qtdemux] MP3 stream in MP4 container not playable + * 335507 : [FAAD] blur_warhammer.mp4 movie doesn't transcode + * 339462 : [PATCH] xvid plugin to support more capabilities of XviD ... + * 340638 : New plugin: h264 parse element + * 341231 : [qtdemux] [faad] audio in some superman trailers doesn't ... + * 341461 : gst-plugins-bad missing -no-undefined again + * 341563 : [faad] fails to decode middle of file, should just skip o... + * 343031 : v4l2src caps negotion is faulty + * 343131 : [wavpack] add wavpack encoder + * 343184 : [mpeg2enc] ported to 0.10 + * 343866 : cygwin fixes + * 344472 : [wavpackdec] should post audio codec tag and extract bitrate + * 344821 : [pitch] controllable properties + * 344944 : AAC Support crashes with some files + * 345182 : [neonhttpsrc] fails to compile with libneon 0.26.x + * 345336 : modplug plugin doesn't work on AMD64 + * 345653 : [videocrop] port to 0.10, support all common formats + * 346853 : [PATCH] ported gstfilter elements to 0.10 + * 347079 : [qtdemux] plugin doesn't decode Year + * 347443 : [wavpack] port parser/decoder to official API and random ... + * 347935 : [nsf] warning when building RPM + * 348220 : New libopenspc-based SPC playback plugin + * 348976 : [xviddec] crashes after invalid unit size warning + * 350399 : [qtdemux] extract multiple redirect locations and require... + * 350741 : [faac] Wrong bitrate set + * 351495 : [wavpackparse] add support for push-based mode + * 351557 : [wavpackparse] resync in push mode if sync was lost + * 357069 : [rganalysis] New element: ReplayGain analysis + * 357212 : [glimagesink] crashes if no DISPLAY + * 361260 : New element: nuvdemux + * 362626 : Fixes compiling with forte: warning clean up (part 5) + * 376106 : Port rfbsrc to gst 0.10 + * 378613 : [qtdemux] non-working redirect ('alis' redirect reference... + * 382203 : ladspa element needs to be enabled + * 384294 : [modplug] returns position query results in attoseconds + * 385048 : [qtdemux] Crash on a mp4 file in qtdemux_parse_trak + * 385788 : [SECURITY] buffer overflows in modplug + * 387076 : [wavpack] Wrong include + * 387122 : [qtdemux] regression: crash in parse_trak + * 387160 : [qtdemux] posts buffering message which can cause hangs + * 351659 : [wavpackparse] fix resync in push mode, implement it in p... + * 351663 : [wavpackenc] doesn't set correct caps on source pad + * 352476 : [wavpack] documentation, unit tests, memleak fix + * 366523 : [directdraw] fix playback and vs8 fixes + * 369539 : [wavpackenc] More sensible values for GstEnums, don't sen... + * 384140 : [neonhttpsrc] id3demux autoplug loop streaming mp3 with I... + * 387137 : Regression: qtdemux paletted image handling + * 349916 : [gdp] raw audio saved in gdp, when depayloading complain... + * 346723 : gstneonhttpsrc fails for URL + * 347439 : [qtdemux] seeks poorly in files with slideshows + * 349204 : [gdp] raw audio saved in gdp does not depayload correctly + * 351825 : [qtdemux] doesn't set proper caps for RGB video + * 367696 : [qtdemux] No support for QuickTime Animation (RLE). + * 372243 : [PATCH] yuv4mpeg (v2) encoder ported to 0.10 + * 380610 : [rganalysis] Incorrect event handling + * 383471 : cannot link 1 ch raw 24-bit PCM audio + * 344987 : [PATCH] [dvbsrc] [ts-tools] gstreamer 0.10 port + +There was no 0.10.2 release + +Changes since 0.10.1: + + * FAAD/AAC decoder improvements + * Better QuickTime support + * Plugins ported from 0.8: modplug, v4l2src, Musicbrainz TRM + * New plugins: Xing muxer, libsoundtouch, AMR-WB, theora-exp + * Musepack decoder improved + * libneon based http input now supports iradio mode + * More uniform plugin descriptions + * Many bug fixes + +Bugs fixed since 0.10.1: + + * 334700 : [qtdemux] Memory leaks + * 333307 : AmrWB Plugin + * 330317 : New xingmux element for writing Xing headers + * 304795 : [ximagesrc] port to 0.9 [PATCH] + * 154906 : [qtdemux] A/V Synch problem + crackling sound + * 167129 : [qtdemux] eats last chunk + * 173007 : [faad] Failed to decode buffer: Channel coupling not yet ... + * 302606 : [qtdemux] Movie playback too fast (quicktime mov, H.263 c... + * 321351 : extracted AAC output is played too slow + * 324082 : [qtdemux] [faad] playback issues with quicktime videos + * 327075 : [qtdemux] add support for palettized SMC videos + * 327355 : gst-plugins-bad CVS compilation breaks on gcc 4.1 + * 331335 : New Element: libsoundtouch based pitch shifter + * 331909 : support for more fourccs in qtdemux + * 332066 : [qtdemux] doesn't extract Disc Number field from some files + * 332155 : Seeking problems in .mov files + * 332402 : quicktime file will not play + * 332598 : port modplug to 0.10 + * 332892 : [faad] 'Negative scalefactor found' and 'Maximum number o... + * 333283 : [xviddec] Fix build with gcc 2.95 + * 333501 : [patch] taglib element + * 334123 : [taglibmux] fixes for TPOS and TCOP + * 334417 : autogen.sh bit rot + * 334748 : [faad] doesn't take sampling rate from demuxer + * 335585 : xvidenc does not mark key-frame/delta-units + * 336898 : Port musicbrainz/trm plugin to 0.10 + * 337263 : plugins need better/unified descriptions + * 338233 : theora-exp api out of sync + * 339041 : qtdemux : Floating point exception + * 339074 : Thumbnail generation fails on the following file + * 337436 : Sound is very jerky on this .mov file + * 338935 : [qtdemux] floating point exception parsing trac header + +Changes since 0.10.0: + + * Parallel installability with 0.8.x series + * Threadsafe design and API + * Lots of fixes for the QT/MOV demuxer, including restoring + the ability to play web streams, and more codecs supported + * AAC decoder fixes + * MMS source fixes + * DirectFB plugin updated + * New plugins ported to 0.10: swfdec, XVid, dtsdec, glimagesink + * New libneon based http source filter + * APE tag reader moved to gst-plugins-good module + +Bugs fixed since 0.10.0: + + * 303167 : Add bzip2 support + * 322973 : [wavpack] erroneous sampling rates range + * 326524 : Support for Indeo 3-encoded QuickTime files + * 327133 : [qtdemux] QuickTime with 8-bit audio + * 328854 : AAC+ stream not working with FAAD plugin + * 330089 : [bz2] Wrong mimetype and no typefinding + * 331302 : bz2 plugin source files lack copyright notices + * 331543 : crash on iTunes MPEG v4 AAC-LC files + * 331582 : [qtdemux] protect log statement against invalid memory access + +Bugs fixed since 0.9.7: + + * 322962 : wavpack plugins don't get built + +Changes since 0.9.6: + + * wavpack ported + * libmms ported + +Changes since 0.9.5: + + * Fractional framerates + +Bugs fixed since 0.9.5: + + * 320532 : [faac] set output samplerate and number of channels + * 321903 : [qtdemux] does not know fourcc DX50, as produced by DivX 5 + +Changes since 0.9.4: + + * Parallel installability with 0.8.x series + * Threadsafe design and API + * qtdemux supports custom genre tags + * tremor integer vorbis decoder ported + * directfb video sink ported (with examples and documentation!) + +Bugs fixed since 0.9.4: + + * 321241 : faad compile fix + +Bugs fixed since 0.9.3: + + * 317438 : [speed] fix 0.9 port + * 318659 : [faac] problem with float capabilities + * 318660 : [faac] missing unrefs + +Changes since 0.9.1: + + * ported gsm, tta, sdlvideosink diff --git a/README b/README new file mode 100644 index 0000000..caec7d3 --- /dev/null +++ b/README @@ -0,0 +1,217 @@ +WHAT IT IS +---------- +This is GStreamer Bad Plug-ins. + +This package is in the 0.9.x series. This means that this is a +development series leading up to a stable 0.10.x series. +You have been warned. + +GStreamer 0.9 development series - Hung by a Thread +--------------------------------------------------- + +Starring + + GSTREAMER + +The core around which all other modules revolve. Base functionality and +libraries, some essential elements, documentation, and testing. + + BASE + +A well-groomed and well-maintained collection of GStreamer plug-ins and +elements, spanning the range of possible types of elements one would want +to write for GStreamer. + +And introducing, for the first time ever, on the development screen ... + + THE GOOD + + --- "Such ingratitude. After all the times I've saved your life." + +A collection of plug-ins you'd want to have right next to you on the +battlefield. Shooting sharp and making no mistakes, these plug-ins have it +all: good looks, good code, and good licensing. Documented and dressed up +in tests. If you're looking for a role model to base your own plug-in on, +here it is. + +If you find a plot hole or a badly lip-synced line of code in them, +let us know - it is a matter of honour for us to ensure Blondie doesn't look +like he's been walking 100 miles through the desert without water. + + THE UGLY + + --- "When you have to shoot, shoot. Don't talk." + +There are times when the world needs a color between black and white. +Quality code to match the good's, but two-timing, backstabbing and ready to +sell your freedom down the river. These plug-ins might have a patent noose +around their neck, or a lock-up license, or any other problem that makes you +think twice about shipping them. + +We don't call them ugly because we like them less. Does a mother love her +son less because he's not as pretty as the other ones ? No - she commends +him on his great personality. These plug-ins are the life of the party. +And we'll still step in and set them straight if you report any unacceptable +behaviour - because there are two kinds of people in the world, my friend: +those with a rope around their neck and the people who do the cutting. + + THE BAD + + --- "That an accusation?" + +No perfectly groomed moustache or any amount of fine clothing is going to +cover up the truth - these plug-ins are Bad with a capital B. +They look fine on the outside, and might even appear to get the job done, but +at the end of the day they're a black sheep. Without a golden-haired angel +to watch over them, they'll probably land in an unmarked grave at the final +showdown. + +Don't bug us about their quality - exercise your Free Software rights, +patch up the offender and send us the patch on the fastest steed you can +steal from the Confederates. Because you see, in this world, there's two +kinds of people, my friend: those with loaded guns and those who dig. +You dig. + +The Lowdown +----------- + + --- "I've never seen so many plug-ins wasted so badly." + +GStreamer Plug-ins has grown so big that it's hard to separate the wheat from +the chaff. Also, distributors have brought up issues about the legal status +of some of the plug-ins we ship. To remedy this, we've divided the previous +set of available plug-ins into four modules: + +- gst-plugins-base: a small and fixed set of plug-ins, covering a wide range + of possible types of elements; these are continuously kept up-to-date + with any core changes during the development series. + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + - These elements come with examples, documentation, and regression tests. + +- gst-plugins-good: a set of plug-ins that we consider to have good quality + code, correct functionality, our preferred license (LGPL for the plug-in + code, LGPL or LGPL-compatible for the supporting library). + + - We believe distributors can safely ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-ugly: a set of plug-ins that have good quality and correct + functionality, but distributing them might pose problems. The license + on either the plug-ins or the supporting libraries might not be how we'd + like. The code might be widely known to present patent problems. + + - Distributors should check if they want/can ship these plug-ins. + - People writing elements should base their code on these elements. + +- gst-plugins-bad: a set of plug-ins that aren't up to par compared to the + rest. They might be close to being good quality, but they're missing + something - be it a good code review, some documentation, a set of tests, + a real live maintainer, or some actual wide use. + If the blanks are filled in they might be upgraded to become part of + either gst-plugins-good or gst-plugins-ugly, depending on the other factors. + + - If the plug-ins break, you can't complain - instead, you can fix the + problem and send us a patch, or bribe someone into fixing them for you. + - New contributors can start here for things to work on. + +INSTALLING FROM PACKAGES +------------------------ +You should always prefer installing from packages first. GStreamer is +well-maintained for a number of distributions, including Fedora, Debian, +Ubuntu, Mandrake, Gentoo, ... + +Only in cases where you: +- want to hack on GStreamer +- want to verify that a bug has been fixed +- do not have a sane distribution +should you choose to build from source tarballs or CVS. + +Find more information about the various packages at +http://gstreamer.freedesktop.org/download/ + +COMPILING FROM SOURCE TARBALLS +------------------------------ +- again, make sure that you really need to install from source ! + If GStreamer is one of your first projects ever that you build from source, + consider taking on an easier project. + +- check output of ./configure --help to see if any options apply to you +- run + ./configure + make + + to build GStreamer. +- if you want to install it (not required), run + make install +- You should create a registry for things to work. + If you ran make install in the previous step, run + gst-register + as root. + + If you didn't install, run + tools/gst-register + as a normal user. + +- try out a simple test: + gst-launch fakesrc num_buffers=5 ! fakesink + (If you didn't install GStreamer, again prefix gst-launch with tools/) + + If it outputs a bunch of messages from fakesrc and fakesink, everything is + ok. + +- After this, you're ready to install gst-plugins, which will provide the + functionality you're probably looking for by now, so go on and read + that README. + +COMPILING FROM CVS +------------------ +When building from CVS sources, you will need to run autogen.sh to generate +the build system files. + +You will need a set of additional tools typical for building from CVS, +including: +- autoconf +- automake +- libtool + +autogen.sh will check for recent enough versions and complain if you don't have +them. You can also specify specific versions of automake and autoconf with +--with-automake and --with-autoconf + +Check autogen.sh options by running autogen.sh --help + +autogen.sh can pass on arguments to configure - you just need to separate them +from autogen.sh with -- between the two. +prefix has been added to autogen.sh but will be passed on to configure because +some build scripts like that. + +When you have done this once, you can use autoregen.sh to re-autogen with +the last passed options as a handy shortcut. Use it. + +After the autogen.sh stage, you can follow the directions listed in +"COMPILING FROM SOURCE" + +You can also run your whole cvs stack uninstalled. The script in +the gstreamer module /docs/faq/gst-uninstalled) is helpful in setting +up your environment for this. + +PLUG-IN DEPENDENCIES AND LICENSES +--------------------------------- +GStreamer is developed under the terms of the LGPL (see LICENSE file for +details). Some of our plug-ins however rely on libraries which are available +under other licenses. This means that if you are using an application which +has a non-GPL compatible license (for instance a closed-source application) +with GStreamer, you have to make sure not to use GPL-linked plug-ins. +When using GPL-linked plug-ins, GStreamer is for all practical reasons +under the GPL itself. + +HISTORY +------- +The fundamental design comes from the video pipeline at Oregon Graduate +Institute, as well as some ideas from DirectMedia. It's based on plug-ins that +will provide the various codec and other functionality. The interface +hopefully is generic enough for various companies (ahem, Apple) to release +binary codecs for Linux, until such time as they get a clue and release the +source. diff --git a/RELEASE b/RELEASE new file mode 100644 index 0000000..32685ce --- /dev/null +++ b/RELEASE @@ -0,0 +1,276 @@ + +Release notes for GStreamer Bad Plug-ins 0.10.22 "Toy Piano" + + + +The GStreamer team is proud to announce a new release +in the 0.10.x stable series of the +GStreamer Bad 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. + + + +"That an accusation?" + + +No perfectly groomed moustache or any amount of fine clothing is going to +cover up the truth - these plug-ins are Bad with a capital B. +They look fine on the outside, and might even appear to get the job done, but +at the end of the day they're a black sheep. Without a golden-haired angel +to watch over them, they'll probably land in an unmarked grave at the final +showdown. + + +Don't bug us about their quality - exercise your Free Software rights, +patch up the offender and send us the patch on the fastest steed you can +steal from the Confederates. Because you see, in this world, there's two +kinds of people, my friend: those with loaded guns and those who dig. +You dig. + + +This module contains a set of plug-ins that aren't up to par compared to the +rest. They might be close to being good quality, but they're missing something +- be it a good code review, some documentation, a set of tests, a real live +maintainer, or some actual wide use. If the blanks are filled in they might be +upgraded to become part of either gst-plugins-good or gst-plugins-ugly, +depending on the other factors. +If the plug-ins break, you can't complain - instead, you can fix the +problem and send us a patch, or bribe someone into fixing them for you. +New contributors can start here for things to work on. + + +Other modules containing plug-ins are: + + +gst-plugins-base +contains a basic set of well-supported plug-ins +gst-plugins-good +contains a set of well-supported plug-ins under our preferred license +gst-plugins-ugly +contains a set of well-supported plug-ins, but might pose problems for + distributors + + + + + +Features of this release + + * aiffparse: add support for 32 bit and 64 bit floating point formats + * aiffparse: the SSND header is 16 bytes large, not 8 + 16 bytes + * assrender: refactor blitting, avoid writing past end of buffer + * camerabin2: Add a property to select the encoding profile + * camerabin2: Add custom filter properties + * camerabin2: Add image-done message + * camerabin2: Adding audio support for video recordings + * camerabin2: Adding properties for image capture settings + * camerabin2: Add methods for preview image message posting + * camerabin2: Add preview-filter property + * camerabin2: Adds new idle property + * camerabin2: Add viewfinder caps related properties + * camerabin2: Add viewfinder-sink property + * camerabin2: Implement previewing + * camerabin2: Implement tagsetter interface + * camerabin2: Move preview helper functions to basecamerabinsrc + * camerabin2: Move to encodebin + * camerabin2: Moving preview image properties to basecamerasrc + * camerabin: adding audio related properties + * camerabin: Always take photo when preview-caps is set + * camerabin: don't rely on the application running the default GLib main loop + * camerabin: Events with select-all in input-selector + * camerabin: Fix corner case for preview posting + * camerabin: Use running time for muxing + * celtenc: Fix compilation with celt >= 0.11.0 + * colorspace: add 16-bit-per-channel handling + * colorspace: add dithering, add support for r210 and fix YUV->RGB matrixing + * curlsink: add libcurl-based sink element + * decklink: Add decklink plugin + * directdrawsink: avoid aspect-ratio borders overlying other windows + * directdrawsink: avoid rendering to invalid area + * dshowvideosink: update for latest GstXOverlay changes + * dvbsuboverlay: Fix using alpha values in blitting + * dvdspu: don't write clipped lines to the output buffer + * dvdsubdec: make up clut values if they weren't set + * fieldanalysis: new fieldanalysis element + * fpsdisplaysink: add "silent" property, fix "sync" property default value + * fpsdisplaysink: add "frames-dropped" and "frames-rendered" properties + * fpsdisplaysink: add "last-message" property and never print anything to stdout + * gme: fix infinite looping by fading out after two loops + * h263parse: add an h263parse element + * hlsdemux: Add HTTP live streaming parser/demuxer element + * id3mux: map new GST_TAG_ENCODED_BY to ID3v2 TENC frame + * jifmux: Add GstTagXmpWriter support + * jp2kdec, jp2kenc: add support v308 (4:4:4 YUV) + * jp2kdec: post proper error when the image's colour space is not supported + * jpegparse: misc. fixes + * linsys: Add plugin for Linear Systems SDI boards + * logoinsert: add "data" property; fix memleaks + * mpegtsdemux: new (not-yet autoplugged) MPEG TS demuxer rewrite + * mpegtsmux: add byte-stream to h264 template pad caps + * mpegtsmux: don't error out if downstream fails to handle the newsegment event + * mpegtspacketizer: Handle all ISO8859-x encodings in get_encoding() + * opencv: make work with openCV 2.2 + * patchdetect: new element + * rsvgoverlay: allow negative values for x/y/width/height + * rsvgoverlay: implement x/y/width/height (absolute and relative) positioning and dimensioning + * rtpvp8: Add simple payloaders and depayloaders for VP8 + * scenechange: new scene change detection element + * sdi: Add raw SDI muxing/demuxing elements + * shm: Allow ShmPipe to save a data pointer for applications + * shm: Keep the ShmPipe alive as long as there are blocks left + * shm: Make default perm u+rw g+r for shm area + * shmsink: ensure gst_poll_wait is called first on descriptors + * shmsink: Keep shmsink referenced while there are still buffers around + * shmsrc: Keep GstPoll for whole src lifetime + * shmsrc: Only connect to sink in PLAYING in live mode + * vdpau: fixup GstFlowReturn handling + * vdpausink: fix bug where we didn't setup vdpau on a user set window + * videoparsers: new h263parse element + * videoparsers: baseparse-based dirac parser, new baseparse-based h264parse + * xvidenc: proxy downstream caps restrictions upstream via get_caps() + * zebrastripe: New element + +Bugs fixed in this release + + * 646211 : [camerabin] state changes need to be made when recording a video + * 608786 : [mpegtsmux] Internal H.264 byte-stream wrapping isn't working correctly + * 334107 : xviddec: segmentation fault after a few frames + * 582167 : jacksink does not flush the jack port when going to READY + * 586848 : qtmux, asfmux: remuxing streams with different start times + * 591651 : dvbsrc: use better nicks for GstDvbSrcModulation and other enums + * 594035 : [hlsdemux] Add HTTP Live Streaming playback support + * 594280 : directdrawsink: avoid rendering to invalid area + * 602847 : [dvdspu] Segfaults on seeking in matroska file + * 611061 : [mpegtsmux] some buffers are forgotten to push in m2ts_mode + * 615655 : [camerabin] shouldn't rely on running GLib main loop + * 616814 : Photography interface extension: colour tone mode and noise reduction settings + * 617532 : [qtmux] Take into account new-segments for incoming streams + * 622276 : Add an h263parse element + * 626618 : jpegparse doesn't handle APP12 marker + * 632056 : Directdrawsink draws black stripes over the overlying dialog windows. + * 639502 : [camerabin] should not re-create preview pipeline when setting new preview caps + * 639763 : [dvbsuboverlay] Green borders around subtitles + * 639841 : examples: camerabin: Don't set default values for GstPhotography interface settings + * 640286 : elements/imagecapturebin check fails + * 640287 : camerabin2 checks fail + * 640327 : Add VP8 RTP payloaders and depayloaders + * 640561 : opencv textwrite element renaming and proper structuring: + * 640637 : Camerabin has warning: Internal GStreamer error: clock problem. + * 640885 : Permission problems building bad + * 641047 : [mpegaudioparse] Multiple issues with new mpegaudioparse element from -bad, lower rank? + * 641178 : rtpvp8: build problem, needs to link with libgstbase-0.10 + * 641496 : New plugin: curlsink + * 641530 : Camerabin should capture image if preview_caps is set even if filename is not set + * 641712 : XWindow is never created in gst-camerabin-test example application + * 641796 : opencv: make plugin work with opencv 2.2.0 release + * 641857 : baseparse: Update min/max bitrate before first posting them + * 641858 : mpegaudioparse: Post CBR bitrate as nominal bitrate + * 642116 : rsvgoverlay: add position/dimension parameters + * 642658 : rsvgoverlay: allow negative values for position/dimension parameters + * 642671 : fieldanalysis: New element for analysing video input to produce progressive output + * 643469 : fpsdisplaysink: add frames-dropped and frames-rendered properties + * 643471 : fpsdisplaysink: fix default sync property value + * 643607 : [celt] Doesn't compile with celt 0.11.1 + * 644176 : videofilters: needs to link against libm + * 644208 : dcaparse: add depth and endianness to dts caps to allow elements to negotiate on these certain stream format requirements + * 644429 : [mpegtsmux] in m2ts-mode, the tp_extra_header is incorrect + * 645006 : [mpegtsmux] in m2ts-mode, PAT is written only once + * 645053 : shm: multiple compile failures on Solaris 10 + * 645412 : [h264parse] h264parse doesn't set framed=True on src caps + * 645420 : [scaletempo] Incorrectly handles new segments with stop == -1 + * 645502 : [h264parse] leaks fatally on certain streams + * 645568 : aiffparse: doesn't play 24-bit AIFF properly + * 645711 : patchdetect: link error while using gcc-4.52 + * 646256 : qtmux " buffer without timestamp/duration " error message could be more helpful + * 646495 : hlsdemux: Add missing patches from my local branch + * 646840 : shmsink: ensure gst_poll_wait is the first gst_poll function called on a descriptor + * 646955 : dshowvideosink: Update to reflect latest GstXOverlay changes + * 647030 : [fpsdisplaysink] " silent " property + * 647364 : VGM files loop indefinately + * 647498 : xvidenc not forwarding caps + * 647564 : gst-plugins-bad configure.ac summary wrongly claims an exif plugin + * 647830 : assrender: crashes with very large subtitles + * 647852 : [schroenc] Crashes after some time when getting buffers after EOS + * 647853 : [schrodec] Impossible to play very short files + * 647854 : [schrodec] Allocates buffers with NULL caps from downstream + * 648001 : configure: Fix linsys/decklink checks for Linux + * 648929 : [tsdemux] Memory leaks everywhere + * 649005 : y4mdec: add plugin description + * 647751 : [hlsdemux] Fix usage of the element in players + * 621027 : mpegtsparse problem when parsing EIT and obtaining Transport Stream packet size + +Download + +You can find source releases of gst-plugins-bad in the download directory: +http://gstreamer.freedesktop.org/src/gst-plugins-bad/ + +GStreamer Homepage + +More details can be found on the project's website: +http://gstreamer.freedesktop.org/ + +Support and Bugs + +We use GNOME's bugzilla for bug reports and feature requests: +http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer + +Developers + +GStreamer is stored in Git, hosted at git.freedesktop.org, and can be cloned from there. +Interested developers of the core library, plug-ins, and applications should +subscribe to the gstreamer-devel list. If there is sufficient interest we +will create more lists as necessary. + + +Applications + +Contributors to this release + + * Alexey Fisher + * Andoni Morales Alastruey + * Andreas Frisch + * Arun Raghavan + * Benjamin Gaignard + * Byeong-ryeol Kim + * Carl-Anton Ingmarsson + * Chris E Jones + * Christian Fredrik Kalager Schaller + * David Schleef + * Edward Hervey + * Fabrizio Milo + * Haakon Sporsheim + * Hu Gang + * Jan Schmidt + * Janne Grunau + * Lasse Laukkanen + * Lauri Lehtinen + * Luciana Fujii Pontello + * Luis de Bethencourt + * Mark Nauwelaerts + * Mart Raudsepp + * Mihai Draghicioiu + * Olivier Aubert + * Olivier Crête + * Patricia Muscalu + * Philip Jägenstedt + * Philippe Normand + * Raimo Järvi + * René Stadler + * Reynaldo H. Verdejo Pinochet + * Robert Swain + * Sebastian Dröge + * Sjoerd Simons + * Sreerenj Balachandran + * Stefan Kost + * Teemu Katajisto + * Thiago Santos + * Thibault Saunier + * Tim-Philipp Müller + * Vincent Penquerc'h + * Víctor Manuel Jáquez Leal + * benjamin gaignard +  \ No newline at end of file diff --git a/REQUIREMENTS b/REQUIREMENTS new file mode 100644 index 0000000..ca498fc --- /dev/null +++ b/REQUIREMENTS @@ -0,0 +1,72 @@ +GStreamer uses a *large* array of tools and libraries, most of which are +optional. We have attempted to make sure that any code that depends on +optional libraries doesn't get built unless you have those libraries. If +you find this not to be the case, please, let us know by filing a bug +report at http://bugzilla.gnome.org/. + + +Required tools: +=============== + +An extra set of tools is required if you wish to build GStreamer out of +CVS (using autogen.sh): + +autoconf 2.52 or better +automake 1.5 +gettext 0.11.5 +libtool v1.4 or better +pkgconfig 0.9.0 or better (http://www.freedesktop.org/software/pkgconfig/) + +Required libraries: +=================== + +The core GStreamer libraries. See the gstreamer/ module in GStreamer cvs, or +the version that corresponds to this plugin release. + +Optional libraries: +=================== + +This file lists supporting libraries for which gst-plugins contains plugins, +as well as their minimum version. You can find the corresponding plugins in +ext/(library) + +dirac (Dirac video codec) + http://www.bbc.co.uk/rd/projects/dirac/index.shtml +aRts (for the arts plugin wrapper, and the artsd sink) + http://www.arts-project.org +libdvdread (for the dvdsrc) + http://www.dtek.chalmers.se/groups/dvd/ + (optional: libcss for encrypted DVDs) +libdvdnav (for the dvdnavsrc) + http://dvd.sourceforge.net/ + (optional: libcss for encrypted DVDs) + >= 0.1.9 +libgsm (for the gsm plugin) + http://kbs.cs.tu-berlin.de/~jutta/toast.html +sdl (for the sdl sink) + http://www.libsdl.org +swfdec (for the swfdec (flash) plugin) + http://www.schleef.org/swfdec/ +dtsdec (for DTS audio decoding) + http://www.videolan.org/libdca.html +divx (for divx decoding) + http://www.divx.com/divx/linux/ +musepack (for musepack audio codec/format) + (http://www.musepack.net/) +nas (for the NAS sound server sink) + (http://radscan.com/nas.html) +libmms (for MMS protocol support) + (http://www.sf.net/projects/libmms) +libamrnb (for AMR-NB support) + (http://www.penguin.cz/~utx/amr) +libamrwb (for AMR-WB support) + (http://www.penguin.cz/~utx/amr) +libkate (for Kate support) + (http://libkate.googlecode.com/) + + +Optional (debian) packages: +=========================== + +gtk-doc-tools 1.6 -- needed to build documentation +python-xml -- needed to build plugin documentation diff --git a/aclocal.m4 b/aclocal.m4 new file mode 100644 index 0000000..2d3c3f2 --- /dev/null +++ b/aclocal.m4 @@ -0,0 +1,1108 @@ +# generated automatically by aclocal 1.11.1 -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.67],, +[m4_warning([this file was generated for autoconf 2.67. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically `autoreconf'.])]) + +# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.11' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.11.1], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.11.1])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to +# `$srcdir', `$srcdir/..', or `$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is `.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[dnl Rely on autoconf to set up CDPATH properly. +AC_PREREQ([2.50])dnl +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 9 + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ(2.52)dnl + ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 10 + +# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "GCJ", or "OBJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +ifelse([$1], CC, [depcc="$CC" am_compiler_list=], + [$1], CXX, [depcc="$CXX" am_compiler_list=], + [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], UPC, [depcc="$UPC" am_compiler_list=], + [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE(dependency-tracking, +[ --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +#serial 5 + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`AS_DIRNAME("$mf")` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`AS_DIRNAME(["$file"])` + AS_MKDIR_P([$dirpart/$fdir]) + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking +# is enabled. FIXME. This creates each `.P' file that we will +# need in order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) +]) + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 8 + +# AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS. +AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, +# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 16 + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.62])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) + AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) +AM_MISSING_PROG(AUTOCONF, autoconf) +AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) +AM_MISSING_PROG(AUTOHEADER, autoheader) +AM_MISSING_PROG(MAKEINFO, makeinfo) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AM_PROG_MKDIR_P])dnl +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES(CC)], + [define([AC_PROG_CC], + defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES(CXX)], + [define([AC_PROG_CXX], + defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES(OBJC)], + [define([AC_PROG_OBJC], + defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl +]) +_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl +dnl The `parallel-tests' driver may need to know about EXEEXT, so add the +dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro +dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl +]) + +dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST(install_sh)]) + +# Copyright (C) 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless `enable' is passed literally. +# For symmetry, `disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], +[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful + (and sometimes confusing) to the casual installer], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# AM_MAKE_INCLUDE() +# ----------------- +# Check to see how make treats includes. +AC_DEFUN([AM_MAKE_INCLUDE], +[am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +AC_MSG_CHECKING([for style of include used by $am_make]) +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi +AC_SUBST([am__include]) +AC_SUBST([am__quote]) +AC_MSG_RESULT([$_am_result]) +rm -f confinc confmf +]) + +# Copyright (C) 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_PROG_CC_C_O +# -------------- +# Like AC_PROG_CC_C_O, but changed for automake. +AC_DEFUN([AM_PROG_CC_C_O], +[AC_REQUIRE([AC_PROG_CC_C_O])dnl +AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $[2] | sed ['s/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/']` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +dnl Make sure AC_PROG_CC is never called again, or it will override our +dnl setting of CC. +m4_define([AC_PROG_CC], + [m4_fatal([AC_PROG_CC cannot be called after AM_PROG_CC_C_O])]) +]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 6 + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it supports --run. +# If it does, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + AC_MSG_WARN([`missing' script is too old or missing]) +fi +]) + +# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_MKDIR_P +# --------------- +# Check for `mkdir -p'. +AC_DEFUN([AM_PROG_MKDIR_P], +[AC_PREREQ([2.60])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, +dnl while keeping a definition of mkdir_p for backward compatibility. +dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. +dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of +dnl Makefile.ins that do not define MKDIR_P, so we do our own +dnl adjustment using top_builddir (which is defined more often than +dnl MKDIR_P). +AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl +case $mkdir_p in + [[\\/$]]* | ?:[[\\/]]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 4 + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# ------------------------------ +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) + +# _AM_SET_OPTIONS(OPTIONS) +# ---------------------------------- +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 +# Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 5 + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken +alias in your environment]) + fi + + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT(yes)]) + +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 1 + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# (`yes' being less verbose, `no' or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], +[ --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0')]) +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor `install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in `make install-strip', and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be `maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006, 2008 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004, 2005 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# serial 2 + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of `v7', `ustar', or `pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. +AM_MISSING_PROG([AMTAR], [tar]) +m4_if([$1], [v7], + [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], + [m4_case([$1], [ustar],, [pax],, + [m4_fatal([Unknown tar format])]) +AC_MSG_CHECKING([how to create a $1 tar archive]) +# Loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' +_am_tools=${am_cv_prog_tar_$1-$_am_tools} +# Do not fold the above two line into one, because Tru64 sh and +# Solaris sh will not grok spaces in the rhs of `-'. +for _am_tool in $_am_tools +do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; + do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi +done +rm -rf conftest.dir + +AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) +AC_MSG_RESULT([$am_cv_prog_tar_$1])]) +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([common/m4/as-ac-expand.m4]) +m4_include([common/m4/as-auto-alt.m4]) +m4_include([common/m4/as-compiler-flag.m4]) +m4_include([common/m4/as-objc.m4]) +m4_include([common/m4/as-python.m4]) +m4_include([common/m4/as-scrub-include.m4]) +m4_include([common/m4/as-version.m4]) +m4_include([common/m4/ax_create_stdint_h.m4]) +m4_include([common/m4/gst-arch.m4]) +m4_include([common/m4/gst-args.m4]) +m4_include([common/m4/gst-check.m4]) +m4_include([common/m4/gst-default.m4]) +m4_include([common/m4/gst-dowhile.m4]) +m4_include([common/m4/gst-error.m4]) +m4_include([common/m4/gst-feature.m4]) +m4_include([common/m4/gst-gettext.m4]) +m4_include([common/m4/gst-glib2.m4]) +m4_include([common/m4/gst-package-release-datetime.m4]) +m4_include([common/m4/gst-platform.m4]) +m4_include([common/m4/gst-plugin-docs.m4]) +m4_include([common/m4/gst-plugindir.m4]) +m4_include([common/m4/gst-x11.m4]) +m4_include([common/m4/gst.m4]) +m4_include([common/m4/gtk-doc.m4]) +m4_include([common/m4/orc.m4]) +m4_include([common/m4/pkg.m4]) +m4_include([m4/gettext.m4]) +m4_include([m4/gsettings.m4]) +m4_include([m4/gst-fionread.m4]) +m4_include([m4/gst-sdl.m4]) +m4_include([m4/iconv.m4]) +m4_include([m4/intlmacosx.m4]) +m4_include([m4/lib-ld.m4]) +m4_include([m4/lib-link.m4]) +m4_include([m4/lib-prefix.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/nls.m4]) +m4_include([m4/po.m4]) +m4_include([m4/progtest.m4]) diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..8a56c7a --- /dev/null +++ b/autogen.sh @@ -0,0 +1,119 @@ +#!/bin/sh +# Run this to generate all the initial makefiles, etc. + +DIE=0 +package=gst-plugins-bad +srcfile=gst/speed/gstspeed.c + +# Make sure we have common +if test ! -f common/gst-autogen.sh; +then + echo "+ Setting up common submodule" + git submodule init +fi +git submodule update + +# source helper functions +if test ! -f common/gst-autogen.sh; +then + echo There is something wrong with your source tree. + echo You are missing common/gst-autogen.sh + exit 1 +fi +. common/gst-autogen.sh + +# install pre-commit hook for doing clean commits +if test ! \( -x .git/hooks/pre-commit -a -L .git/hooks/pre-commit \); +then + rm -f .git/hooks/pre-commit + ln -s ../../common/hooks/pre-commit.hook .git/hooks/pre-commit +fi + +CONFIGURE_DEF_OPT='--enable-maintainer-mode --enable-gtk-doc' + +autogen_options $@ + +printf "+ check for build tools" +if test ! -z "$NOCHECK"; then echo " skipped"; else echo; fi +version_check "autoconf" "$AUTOCONF autoconf autoconf270 autoconf269 autoconf268 autoconf267 autoconf266 autoconf265 autoconf264 autoconf263 autoconf262 autoconf261 autoconf260" \ + "ftp://ftp.gnu.org/pub/gnu/autoconf/" 2 60 || DIE=1 +version_check "automake" "$AUTOMAKE automake automake-1.11 automake-1.10" \ + "ftp://ftp.gnu.org/pub/gnu/automake/" 1 10 || DIE=1 +version_check "autopoint" "autopoint" \ + "ftp://ftp.gnu.org/pub/gnu/gettext/" 0 17 || DIE=1 +version_check "libtoolize" "$LIBTOOLIZE libtoolize glibtoolize" \ + "ftp://ftp.gnu.org/pub/gnu/libtool/" 1 5 0 || DIE=1 +version_check "pkg-config" "" \ + "http://www.freedesktop.org/software/pkgconfig" 0 8 0 || DIE=1 + +die_check $DIE + +aclocal_check || DIE=1 +autoheader_check || DIE=1 + +die_check $DIE + +# if no arguments specified then this will be printed +if test -z "$*"; then + echo "+ checking for autogen.sh options" + echo " This autogen script will automatically run ./configure as:" + echo " ./configure $CONFIGURE_DEF_OPT" + echo " To pass any additional options, please specify them on the $0" + echo " command line." +fi + +toplevel_check $srcfile + +# autopoint +# older autopoint (< 0.12) has a tendency to complain about mkinstalldirs +if test -x mkinstalldirs; then rm mkinstalldirs; fi +# first remove patch if necessary, then run autopoint, then reapply +if test -f po/Makefile.in.in; +then + patch -p0 -R < common/gettext.patch +fi +tool_run "$autopoint --force" +patch -p0 < common/gettext.patch + +tool_run "$libtoolize" "--copy --force" +tool_run "$aclocal" "-I m4 -I common/m4 $ACLOCAL_FLAGS" +tool_run "$autoheader" + +# touch the stamp-h.in build stamp so we don't re-run autoheader in maintainer mode +echo timestamp > stamp-h.in 2> /dev/null + +tool_run "$autoconf" +tool_run "$automake" "-a -c" + +# if enable exists, add an -enable option for each of the lines in that file +if test -f enable; then + for a in `cat enable`; do + CONFIGURE_FILE_OPT="--enable-$a" + done +fi + +# if disable exists, add an -disable option for each of the lines in that file +if test -f disable; then + for a in `cat disable`; do + CONFIGURE_FILE_OPT="$CONFIGURE_FILE_OPT --disable-$a" + done +fi + +test -n "$NOCONFIGURE" && { + echo "+ skipping configure stage for package $package, as requested." + echo "+ autogen.sh done." + exit 0 +} + +echo "+ running configure ... " +test ! -z "$CONFIGURE_DEF_OPT" && echo " ./configure default flags: $CONFIGURE_DEF_OPT" +test ! -z "$CONFIGURE_EXT_OPT" && echo " ./configure external flags: $CONFIGURE_EXT_OPT" +test ! -z "$CONFIGURE_FILE_OPT" && echo " ./configure enable/disable flags: $CONFIGURE_FILE_OPT" +echo + +./configure $CONFIGURE_DEF_OPT $CONFIGURE_EXT_OPT $CONFIGURE_FILE_OPT || { + echo " configure failed" + exit 1 +} + +echo "Now type 'make' to compile $package." diff --git a/autoregen.sh b/autoregen.sh new file mode 100755 index 0000000..c67a299 --- /dev/null +++ b/autoregen.sh @@ -0,0 +1,2 @@ +#!/bin/sh +./autogen.sh $@ diff --git a/common/ChangeLog b/common/ChangeLog new file mode 100644 index 0000000..92d0d25 --- /dev/null +++ b/common/ChangeLog @@ -0,0 +1,1712 @@ +2008-12-17 Edward Hervey + + * gst.supp: + And yet another variation of the GstAudioFilter leak. + +2008-12-15 Sebastian Dröge + + Patch by: Roland Illig + + * m4/gst-parser.m4: + Fix AG_GST_BISON_CHECK to handle version numbers with more than + two components (i.e. 2.4.1). Fixes bug #564507. + +2008-12-14 Edward Hervey + + * gst.supp: + And yet another variant of the GstAudioFilter leak. + +2008-12-13 Edward Hervey + + * gst.supp: + Added variants of leaks of dynamic pad templates created in + GstAudioFilter. + Add conditional jump triggered by getaddrinfo (maybe glibc-2.9). + +2008-12-12 Edward Hervey + + * gst.supp: + Fix leak in GIO called by gnomevfs. Nothing we can do about this. + +2008-12-12 Edward Hervey + + * gst.supp: + Added another suppression for dynamic pad templates, in this case + GstAudioFilter. + Added suppression for PangoLanguage which can never be freed + according to the Pango API. + +2008-12-12 Edward Hervey + + * gst.supp: + A whole bunch of suppressions detected on latest gentoo ~amd64. + Make some existing suppressions more generic (for subtle dependecy + code changes). + Added suppressions for glibc-2.9. + Added suppressions for new variants of ALSA leaks. + Added suppressions for a series of leaks in plugins registrations due + to some pad templates' caps calculated at runtime. + Added suppressions for variants of some leaks in pango/fontconfig. + Added suppressions for leak in gstffmpegcsp.c (nothing we can do + about it, but will only exist once). + +2008-12-04 Sebastian Dröge + + * m4/gst-plugin-docs.m4: + Remove the check if $have_gtk_doc equals yes as it's not defined + and $enable_gtk_doc should be good enough. + Also this restores the build of the plugin documentation. + +2008-12-01 Mark Nauwelaerts + + * gst.supp: + Add suppression variant for Ubuntu Hardy x86/64bit. + +2008-12-01 Stefan Kost + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Simplily uninstall rule. Its closer to upstream and fixes #150331. + +2008-11-29 Sebastian Dröge + + * m4/glib-gettext.m4: + Update glib-gettext.m4 from latest stable GLib release. + +2008-11-29 Sebastian Dröge + + Patch by: Cygwin Ports maintainer + + + * gettext.patch: + Update the gettext patch for use with gettext 0.17 which is + required to build with libtool 2.2 because of conflicts. + First part of bug #556091. + +2008-11-29 Sebastian Dröge + + * m4/gtk-doc.m4: + * m4/pkg.m4: + Update gtk-doc and pkg-config m4 macros from their latest releases. + +2008-11-20 Michael Smith + + * m4/as-objc.m4: + Fix objective C test macro when none of the compilers are found at all. + +2008-10-30 Stefan Kost + + * gtk-doc.mak: + Also cp the entities here to all xinlcude based docs (workaround for + not being able to set up a search path). + +2008-10-17 Jan Schmidt + + * gtk-doc.mak: + Don't clobber the real registry cache file when + building docs. + +2008-10-07 Jan Schmidt - Sun Microsystems + + * m4/gst-error.m4: + Also disable the bogus "loop not entered at top" warnings appearing on Sparc Forte builds. + +2008-10-06 Stefan Kost + + * gtk-doc.mak: + Apply the same fix as below to gtk-doc.mak. Somehow did not end up in + CVS. + +2008-09-05 David Schleef + + * gtk-doc-plugins.mak: Fix the check for gtkdoc-rebase: don't + pass the 'which' error back to make. This fix is more specific + than what is in upstream. + +2008-09-05 David Schleef + + * gtk-doc.mak: Fix the check for gtkdoc-rebase: don't pass the + 'which' error back to make. This fix is more specific than + what is in upstream. + +2008-09-04 Stefan Kost + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Get closer to upstream makefiles. Don't install index.sgml twice. Call + gtkdoc-rebase (if exists). + +2008-08-21 Stefan Kost + + * gtk-doc-plugins.mak: + Revert $(top_builddir) -> $(builddir) change of rev. 1.39 as there is + no variable called builddir. + +2008-07-31 Mark Nauwelaerts + + * gst.supp: + Add suppressions for Ubunty Hardy x86/64bit, similar to earlier + versions and 32bit variant. + +2008-07-31 Sebastian Dröge + + * m4/gst-feature.m4: + Remove GST_DISABLE_(ENUMTYPES|INDEX|URI). + +2008-07-21 Tim-Philipp Müller + + * m4/gst-error.m4:: + When checking for GST_ERROR_CXXFLAGS, check each compiler flag + individually, not all together. + +2008-07-20 Tim-Philipp Müller + + * m4/gst-parser.m4:: + Fix bison version number detection for older --version + output format (as bison 1.28 on OSX 10.4 outputs). + Fixes #543853. + +2008-07-12 Stefan Kost + + * plugins.xsl: + Split refsect2 also here to make "Element Pads" subtitle visible. + +2008-07-08 Sebastian Dröge + + * m4/gst-error.m4: + Add compiler flags to warn if declarations after statements or + variable length arrays are used. These are C99/GCC extensions and + are not supported by some compilers we want to support. + +2008-07-02 Mark Nauwelaerts + + * gtk-doc-plugins.mak: + Only clean doc maintainer stamps in maintainer-clean. Fixes #539977. + +2008-06-20 Sebastian Dröge + + * gstdoc-scangobj: + Always use format strings for printf-like functions, even if they just + print a string. Fixes bug #536981. + +2008-06-20 Sebastian Dröge + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Include CFLAGS and LDFLAGS in GTKDOC_CFLAGS and GTKDOC_LDFLAGS, + otherwise the values passed to configure are ignored. + Fixes bug #536978. + +2008-06-05 Tim-Philipp Müller + + * m4/gst-error.m4: + Add -fno-strict-aliasing when compiling with -Werror, to work around + warnings caused by G_LOCK with recent GLib versions (2.16.x) (#316221). + +2008-06-05 Jan Schmidt + + * gtk-doc.mak: + Don't copy html/*.png files unless they don't already exist + in the destdir. Fixes distcheck failure caused by permissions + problems trying to copy a file into the destdir when it already + exists. + +2008-05-28 Stefan Kost + + * plugins.xsl: + The class was not shown in plugin docs. Fix typo in changelog below. + +2008-05-22 Jan Schmidt + + * gstdoc-scangobj: + Emit warnings if one of the GTypes we're expecting is 0 + when scanning. + +2008-05-21 Felipe Contreras + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Fix installing png images when gtk-doc is disabled. + +2008-05-21 Felipe Contreras + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Fix make clean when gtk-doc is disabled and other cleanups. + +2008-05-17 Jan Schmidt + + * gtk-doc-plugins.mak: + Be more quiet when the files don't yet exist. + +2008-05-16 Jan Schmidt + + * gstdoc-scangobj: + Add a mechanism for adding 'implicitly created' GTypes into the + scan, allowing for documenting plugin-private base classes that + provide signals or properties for public elements. + + * gtk-doc-plugins.mak: + Use $(builddir) instead of $(top_builddir) in a few places - there's + no need to hard code 'docs/plugins' as the only useable path. + +2008-05-14 Peter Kjellerstedt + + * m4/gst-feature.m4: + Report plug-ins without external dependencies that will not be built + even when the name of the plug-in is a substring of another plug-in, + e.g., goom vs. goom2k1. + +2008-05-14 Tim-Philipp Müller + + * gst.supp: + Add suppression for glibc bug on gutsy/x86-64 + +2008-05-12 Stefan Kost + + * plugins.xsl: + Improve the layout of the caps, but splitting them on ";". + +2008-05-09 Sebastian Dröge + + Patch by: Brian Cameron + + * m4/gst-default.m4: + Don't set the default audio sink to the default visualizer. + Fixes bug #532295. + +2008-05-07 Tim-Philipp Müller + + * check.mak: (help): + Document GST_CHECKS environment variable in checks 'make help'. + +2008-05-06 Sebastian Dröge + + Patch by: Marc-Andre Lureau + + * scangobj-merge.py: + Don't depend on Twisted just for the OrderedDict but implement our + own ordered dictionary class. Fixes bug #531577. + +2008-04-23 Edward Hervey + + * gst.supp: + Re-arrange latest suppressions. + Add all known suppressions for ubuntu hardy. Same as for older + ubuntus, but with different codepaths. + +2008-04-22 Edward Hervey + + * gst.supp: Make tls leak suppression a bit more generic. + +2008-04-22 Edward Hervey + + * gst.supp: Fix ommission in latest commit. + Make tls leak suppression more generic in order to cover more + distributions (and hopefully also future distributions). + +2008-04-22 Edward Hervey + + * gst.supp: Add suppressions for Hardy. + They're just the newer versions of similar suppressions we had + for the previous versions of ubuntu. + +2008-04-15 Sebastian Dröge + + * Makefile.am: + * m4/Makefile.am: + Dist all files in common. Fixes bug #527984. + +2008-04-14 Tim-Philipp Müller + + * m4/gst-function.m4: + Rename AC_CACHE_VAL cache-ids to contain '_cv_' in order to make + autoconf-2.62 complain less. + +2008-04-13 Tim-Philipp Müller + + * m4/gst-args.m4: + * m4/gst-valgrind.m4: + Bump valgrind requirement to 3.0 (which was released in August 2005). + Fixes #489269. Also, check for version >=REQ and not >REQ. + +2008-04-09 Tim-Philipp Müller + + * m4/gst-default.m4: + Add --with-default-{audiosink|audiosrc|videosink|videosrc|visualizer} + configure switches (#519417). + +2008-04-03 Tim-Philipp Müller + + * m4/gst-args.m4: + Add --disable-foo switch for dependency-less plugins (#525586). + +2008-04-01 Sebastian Dröge + + * m4/gst-parser.m4: + Unconditionally require flex 2.5.31 and bison 1.875. + +2008-03-23 Sebastian Dröge + + * m4/gst-arch.m4: + amd64/x86_64 allows unaligned memory access too. + +2008-03-21 Sebastian Dröge + + * m4/gst-dowhile.m4: + Add macro that checks if the compiler supports do {} while (0) + macros and define HAVE_DOWHILE_MACROS if it does. This is + needed by glib/gmacros.h to use something else than + if (1) else for G_STMT_START/END when compling C++, which + causes compiler warnings because of ambigious else with g++ 4.3. + +2008-03-21 Sebastian Dröge + + * m4/gst-plugin-docs.m4: + * mangle-tmpl.py: + Don't depend on PyXML and use only XML modules that are shipped + with python. Fixes bug #519635. + +2008-03-07 Edward Hervey + + * m4/gtk-doc.m4: (GTK_DOC_CHECK): + The previous commit to this file by Stefan Kost mentionned checking for + SED, but NOT checking for gtkdoc-check (wth is that doing there ??). + Therefore, removing the check for gtkdoc-check + +2008-03-03 David Schleef + + * m4/ax_create_stdint_h.m4: Oops, checked in the wrong copy of + this file. (Update from upstream) + +2008-03-03 David Schleef + + * m4/ax_create_stdint_h.m4: Update from upstream. Fixes a bug + compiling with MSVC. + +2008-03-03 Edward Hervey + + * m4/pkg.m4: + Allow override of pkg-config results, as proposed by configure --help. + This is in fact just a backport from upstream pkg.m4. + Fixes #518892 + +2008-03-03 Peter Kjellerstedt + + * ChangeLog: + Changelog surgery of my previous commit to add bugzilla reference. + * m4/gst-args.m4: + Add AG_GST_CHECK_PLUGIN and AG_GST_DISABLE_PLUGIN to make it easier + to include and exclude plug-ins without external references, i.e., + plug-ins listed in GST_PLUGINS_SELECTED. (#498222) + +2008-03-03 Sebastian Dröge + + * gst.supp: + Add another glibc suppression. + +2008-02-29 Peter Kjellerstedt + + * m4/gst-feature.m4: + Make the comment before defines generated via AG_GST_CHECK_FEATURE + look nicer. (#498222) + +2008-02-26 Jan Schmidt + + * m4/Makefile.am: + * m4/as-gcc-inline-assembly.m4: + Add Dave Schleef's GCC inline assembly detection macro + for using in gst-plugins-good in the goom 2k4 plugin. + +2008-02-25 Andy Wingo + + * gst-autogen.sh: Instead of only passing certain arguments to + configure, pass anything that we didn't handle. Much friendlier. + Fixes #34412. + +2008-02-23 Jan Schmidt + + * m4/gst-error.m4: + Store the detected compiler flags into ERROR_CFLAGS rather than + ERROR_CXXFLAGS, and use the macro that checks the C compiler, not + the C++ one. + +2008-02-23 Tim-Philipp Müller + + * m4/gst-error.m4: + Reflow checks for additional warning flags so they're not + nested, which fixes the result reporting in the configure + output. + +2008-02-22 Tim-Philipp Müller + + * m4/as-compiler-flag.m4: + Add AS_CXX_COMPILER_FLAG + + * m4/gst-error.m4: + Add AG_GST_SET_ERROR_CXXFLAGS (Forte bits need testing) + +2008-02-22 Tim-Philipp Müller + + * gtk-doc-plugins.mak: + Add 'check-inspected-versions' target; this helps identify + files that should have been removed or where the version + number should (ideally) be updated before a release + (which doesn't happen automatically if the releaser doesn't + build that plugin locally). Not adding at a distcheck hook + yet though, because it's not really that important and would + probably also be a problem on buildbots. + +2008-02-22 Sebastian Dröge + + * gst.supp: + Add even more glibc 2.7 suppressions. + +2008-02-22 Sebastian Dröge + + * gst.supp: + Add another suppression for GLib caching some values after + the first call. + +2008-02-12 Sebastian Dröge + + Patch by: + Tim Mooney + + * m4/gst-error.m4: + Use no%E_MACRO_REDEFINED on Solaris to prevent compiler warnings. + Fixes bug #515905. + +2008-02-11 Sebastian Dröge + + * gst.supp: + Add a few more glibc 2.7 suppressions to make the avisubtitle unit + test valgrind clean. Fixes bug #515703. + +2008-02-08 Stefan Kost + + * ChangeLog: + Changelog surgery for last commit. + +2008-02-08 Stefan Kost + + * m4/gtk-doc.m4: + Conditionally check for SED. Also sync a bit with upstream macro. + +2008-02-08 Stefan Kost + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + Use '$(SED)' instead of 'sed'. Don't use -i for in-place as its gnu + only, move to a temp file instead. + +2008-02-06 Stefan Kost + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + As our docs are versioned, we need to patch the index.sgml file to have + correct paths there, unless we also want to fork gtk-doc's xsl (which + we don't). This hopefully fixes xrefs between modules. + +2008-02-02 Sebastian Dröge + + * m4/gst-feature.m4: + Use printf instead of echo as "echo -e" isn't POSIX and doesn't work + with strict POSIX shells like tcsh or dash and also not every platform + has a /bin/echo that supports it. + +2008-01-24 Stefan Kost + + * ChangeLog: + ChangeLog surgery. + + * gstdoc-scangobj: + Sync the object scanner with gtk-doc fixes. Update args and hierarchy + files. + +2008-01-20 Sebastian Dröge + + * check.mak: + * coverage/lcov.mak: + * gtk-doc-plugins.mak: + * release.mak: + Use $(MAKE) instead of make to fix the build if GNU make is called + something else on the system. + + * m4/as-docbook.m4: + Fix path for docbook.xsl if we have no /etc/xml/catalog and add a + docbook-xsl search path for FreeBSD. + +2008-01-18 Sebastian Dröge + + * gst.supp: + Add a suppression for a glibc bug: + http://valgrind.org/docs/manual/faq.html#faq.exit_errors> + +2008-01-18 Sebastian Dröge + + * gst.supp: + Add some more glibc 2.7 suppressions and make the GLib suppressions + for the home/tmp/etc directory caching a bit more generic. + +2008-01-18 Sebastian Dröge + + * gst.supp: + Add some glibc 2.7 supressions as found on Debian/unstable. + +2008-01-14 Jan Schmidt + + * download-translations: + Apparently I have problems with leaving things commented out when + I edit shell scripts. + +2008-01-12 Jan Schmidt + + * download-translations: + Remove bash-isms + +2008-01-12 Jan Schmidt + + * check-exports: + Restore the cleanup rm of our tmp file which I didn't mean to leave + commented out. + +2008-01-12 Jan Schmidt + + * check-exports: + Fixes to make check-export work on both Solaris and Linux + + * m4/gst-error.m4: + Disable extra warning category (argument mismatch) as an error + on Forte, as it prevents the libcheck fail_if macros from compiling. + + * win32.mak: + Substitute the GStreamer version so things will keep working in 0.11 + +2008-01-11 Tim-Philipp Müller + + Patch by: Peter Kjellerstedt + + * m4/gst-glib2.m4: + * m4/gst-libxml2.m4: + Improve/fix output from configure if either glib-2.0 or + libxml2 are not installed (#498222). + +2008-01-09 Stefan Kost + + * coverage/lcov.mak: + Update coverage make-rules: use them conditionaly, use libtool mode + and use lcov to cleanup. + +2007-12-18 Sebastian Dröge + + * glib-gen.mak: + Also use #include "header" instead of #include
for the + headers that were used to generate the source files for the same + reason as below. + + Remove whitespace before #include. + +2007-12-18 Sebastian Dröge + + * glib-gen.mak: + Use #include "header" instead of #include
for the generated + enum C files as the file will always be in the same directory and + some compilers seem to be a bit strict about that unless . is added + to the include path. + + Include all headers that were used to generate the source files in + the C file as they're used there. + +2007-12-17 Tim-Philipp Müller + + * win32.mak: (win32), (win32defs), (win32crlf): + Make check for CR LF in Visual C++ 6.0 project files + work, based on patch by David Schleef (#496722, #393626). + +2007-12-17 Tim-Philipp Müller + + * Makefile.am: + Don't forget to dist the new win32.mak. + +2007-12-17 Tim-Philipp Müller + + * win32.mak: (win32), (win32defs): + Move common win32 Makefile foo into this new file. + +2007-12-15 Stefan Kost + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + We should have never forked this that much :/. + +2007-12-13 Tim-Philipp Müller + + * check-exports: + Fix build on the ppc64 build bot. + +2007-12-13 Tim-Philipp Müller + + * check-exports: + Suppress more unintentional exports (too much hassle to rename them, + since the win32 project files would need changing too). + +2007-12-12 Tim-Philipp Müller + + * Makefile.am: + check-exports should be disted. + +2007-12-12 Tim-Philipp Müller + + * check-exports: + Add quick'n'dirty script to check the exported symbols of a library + against the symbols in the corresponding .def file (#493983). Based + on script by Ole André Vadla Ravnås. + +2007-11-06 Jan Schmidt + + * gtk-doc-plugins.mak: + Fix distcheck by making sure the types files are treated like the + other gtkdoc-scangobj generated files. + +2007-09-21 Sebastian Dröge + + * m4/gst-args.m4: + Let the AG_GST_ARG_ENABLE_EXPERIMENTAL macro default to disable + building of experimental plugins. Nobody uses it yet and the + --enable--experimental stuff from gst-plugins-good defaults to + disable too. + +2007-09-06 Tim-Philipp Müller + + * gtk-doc-plugins.mak: + Just use the normal 'check' target and avoid a circular + dependency. + +2007-09-06 Tim-Philipp Müller + + * gtk-doc-plugins.mak: + Add rule to error out if .hierarchy file contains tabs. + +2007-08-20 Tim-Philipp Müller + + * download-translations: + * po.mak: + If there are new languages, they need to be added to po/LINGUAS. + +2007-08-20 Tim-Philipp Müller + + * download-translations: + * po.mak: + Fix up 'download-po' a bit, so that we find new translations + for languages that aren't in our po/LINGUAS file yet too. + +2007-07-16 Jan Schmidt + + * gst.supp: + Add a suppression for GLib caching the tmp dir seen on an + Ubuntu Feisty system. + +2007-07-13 Jan Schmidt + + * m4/gst-feature.m4: + If we want to use 'echo -e', call /bin/echo instead of the shell's + since -e is a bash extension, and our /bin/sh might not be being + provided by bash. + +2007-07-01 Thomas Vander Stichele + + * po.mak: + Translation project has moved. Also, no idea how this used to + work given that we weren't downloading a .po file. + +2007-06-25 Stefan Kost + + * gst-xmlinspect.py: + * plugins.xsl: + Also extract element caps for plugin-docs. Fixes parts of #117692. + +2007-06-21 Tim-Philipp Müller + + Patch by: Andreas Schwab + + * m4/gst-feature.m4: + Fix quoting (#449493). + +2007-06-10 Sebastian Dröge + + * m4/gst-parser.m4: + Only generate the parser if bison >= 1.875 _and_ flex >= 2.5.31 is + installed and use pre-generated sources otherwise. Fixes bug #444820. + +2007-05-11 Michael Smith + + * gst.supp: + Suppression variant for our good friend the TLS leak, this time for + Ubuntu Feisty/x86. + +2007-05-09 Tim-Philipp Müller + + * gtk-doc-plugins.mak: + Fix make distcheck again; change some spaces to tabs in makefile. + +2007-04-29 Thomas Vander Stichele + + * gtk-doc-plugins.mak (-module): + Error out when the html build step gives warnings, so they get + fixed properly. + +2007-04-23 Stefan Kost + + * m4/gst-feature.m4: + Add macro AG_GST_PARSE_SUBSYSTEM_DISABLES that checks the defines in + the configuration header and AC_DEFINES the setings. + +2007-04-19 Sebastian Dröge + + Patch by: Vincent Torri + + * m4/gst-parser.m4: + Put the AC_MSG_RESULT output in brackets to get it properly written to + the terminal. + +2007-04-18 Sebastian Dröge + + * m4/gst-parser.m4: + Check for flex >= 2.5.31 and set GENERATE_PARSER if we have at least + that version. Otherwise use pre-generated parser sources as we can't + raise the required flex version. HAVE_MT_SAVE_FLEX is obsolete now + as we use a new enough flex version anyway. First part of #349180 + +2007-04-10 Thomas Vander Stichele + + * m4/gst-check.m4: + Allow pre-setting the GST(PB)_TOOLS/PLUGINS_DIR variables to help + builds against older GStreamer. + +2007-03-25 Sebastian Dröge + + * m4/gst-parser.m4: + Fix the flex version check. It ignored the micro version before. + +2007-03-09 Jan Schmidt + + * check.mak: + Use the same timeout when generating valgrind suppressions as + running the valgrind test. + + * gst.supp: + Add some more suppressions and stuff. + +2007-03-08 Jan Schmidt + + * check.mak: + Make sure GSlice is disabled when building suppressions too. + + * gst.supp: + Add around *850* lines of suppressions for one-time initialisations + inside libasound and gconf/bonobo/ORBit. I feel so dirty. + +2007-03-07 Jan Schmidt + + * gst.supp: + add a suppression for this GConf flup on the FC5 buildbot. + +2007-03-06 Jan Schmidt + + * gst.supp: + Make the suppression a little more generic, to catch the FC5 + backtrace too. + +2007-03-06 Jan Schmidt + + * gst.supp: + Add a suppression for libcdio 0.76. It leaks an internal struct + when the CD-ROM device is not accessible. + +2007-02-28 Thomas Vander Stichele + + * m4/gst-arch.m4: + Move a line that was in the wrong macro + +2007-02-28 Thomas Vander Stichele + + * m4/gst.m4: + Add + * m4/gst-arch.m4: + * m4/gst-args.m4: + * m4/gst-check.m4: + * m4/gst-debuginfo.m4: + * m4/gst-default.m4: + * m4/gst-doc.m4: + * m4/gst-error.m4: + * m4/gst-feature.m4: + * m4/gst-function.m4: + * m4/gst-gettext.m4: + * m4/gst-glib2.m4: + * m4/gst-libxml2.m4: + * m4/gst-parser.m4: + * m4/gst-plugin-docs.m4: + * m4/gst-plugindir.m4: + * m4/gst-valgrind.m4: + * m4/gst-x11.m4: + Convert all macros to use AG_GST style so we can properly warn + when they're missing if configure.ac calls AG_GST_INIT + Will require update in all GStreamer modules. + +2007-02-11 Stefan Kost + + * m4/gst-args.m4: + Remove 'enable' from configure switch description as this leads to + confusing lines like "disable enable builing ...". + * m4/gst-feature.m4: + Fix comment to sound less horrible. + +2007-02-07 Tim-Philipp Müller + + Patch by: Will Newton + + * m4/gst-check.m4: + Use $PKG_CONFIG rather than pkg-config directly, the one in our path + might not be the one we want, like when cross-compiling. Also, other + macros such as PKG_CHECK_MODULES use $PKG_CONFIG, so we should + probably too just for consistency. Fixes #405288. + +2007-01-08 Tim-Philipp Müller + + * m4/gst-parser.m4: + Need to use double square brackets again so m4 doesn't remove them + (fixes #378931). + + * m4/gst-args.m4: + Use double square brackets here as well, for the same reason. + +2007-01-05 Tim-Philipp Müller + + * m4/gst-parser.m4: + Use 'sed' rather than 'tr' to strip trailing letters from version + numbers, since 'tr' might not be available and we know sed is + (#378931). + +2006-10-21 Tim-Philipp Müller + + * check.mak: + Increase default timeout under valgrind, 60 is just too short and + some tests take a bit longer these days and not everyone has a + beefy machine. + +2006-09-29 Michael Smith + + * gst.supp: + More suppressions for edgy. + +2006-09-28 Jan Schmidt + + * m4/gst-glib2.m4: + Use gmodule-no-export-2.0.pc instead of gmodule-2.0.pc - we neither + want nor need --export-dynamic (which ends up making us export a bunch + of unneeded symbols) + +2006-09-14 Tim-Philipp Müller + + * gst.supp: + Some suppressions for the more recent ld.so in ubuntu edgy. + +2006-08-23 Tim-Philipp Müller + + * gst.supp: + Shorten function trail so the suppression works on + my ubuntu dapper system with core cvs as well. + +2006-07-28 Jan Schmidt + + * gst.supp: + Extra suppressions from my Ubuntu x86_64 machine + +2006-07-24 Tim-Philipp Müller + + Patch by: Frederic Peters + + * m4/gst-parser.m4: + Need to double square brackets in .m4 files. Should fix bison + version detection with version numbers like 1.23a (#348354). + +2006-07-24 Jan Schmidt + + * check.mak: + Valgrind fails to find tests written in tests/check/ directly (rather + than a subdir) - because valgrind gets run with a filename that + doesn't contain a relative path, it goes searching /usr/bin instead. + Run with ./.... to make things work either way. + + * gtk-doc-plugins.mak: + Add $(top_builddir)/src as a place to look for plugins + when building too, since that's where gst-template keeps things + +2006-07-23 Stefan Kost + + Patch by: Frederic Peters + + * m4/gst-parser.m4: + Fix bison detection (#348354) + +2006-07-21 Stefan Kost + + * m4/gst-parser.m4: + check for bison and flex + +2006-07-13 Thomas Vander Stichele + + * m4/gst-plugin-docs.m4: + remove the configure argument for enabling plugin doc build; + having gtk-doc enabled and pyxml present is enough of a trigger + +2006-07-03 Thomas Vander Stichele + + * coverage/lcov.mak: + fix up rules to work with gst-python as well + run "make lcov" to test and generate the reports + run "make lcov-reset" to redo it after that + +2006-07-02 Thomas Vander Stichele + + * Makefile.am: + * check.mak: + add an inspect target that inspects every element feature, + so we can have that added for coverage + * coverage/lcov.mak: + add support for lcov + +2006-07-02 Thomas Vander Stichele + + * m4/gst-args.m4: + when building with gcov, reset CFLAGS and friends to O0 + +2006-07-02 Thomas Vander Stichele + + * m4/gst-args.m4: + Find the gcov that matches the gcc version + Only allow gcov if we use gcc + +2006-07-02 Thomas Vander Stichele + + * Makefile.am: + * coverage/coverage-report-entry.pl: + * coverage/coverage-report.pl: + * coverage/coverage-report.xsl: + copy coverage reporting files from dbus + +2006-07-01 Thomas Vander Stichele + + * m4/gst-args.m4: + libtool strips gcov's -f flags, so libgcov does not get + linked in. Setting GCOV_LIBS with -lgcov fixes libtool's + stripping + also show what pkg-config-path we set + +2006-06-22 Tim-Philipp Müller + + Patch by: Peter Kjellerstedt + + * m4/gst-feature.m4: + Show list of plugins without external dependencies that + will not be built as well (#344136). + +2006-06-15 Tim-Philipp Müller + + * m4/gst-plugin-docs.m4: + add GST_PLUGIN_DOCS, which checks for everything needed + to build the plugin docs (namely gtk-doc and pyxml); also + adds a new --enable-plugin-docs configure switch; will + set ENABLE_PLUGIN_DOCS conditional for use in Makefile.am + files (see #344039). + +2006-06-11 Thomas Vander Stichele + + * m4/gst-check.m4: + add GST_PKG_CHECK_MODULES, which in the normal case of checking + for a dependency lib for a plug-in only needs two arguments + to do the right thing. + * m4/gst-feature.m4: + clean up output a little of feature checking; also deal with + non-plug-in feature checks + * m4/Makefile.am: + * m4/gst-gstreamer.m4: + remove this file; it's a useless check + +2006-06-06 Thomas Vander Stichele + + * m4/gst-arch.m4: + add PPC64 so we can have separate structure sizes for it + +2006-06-05 Edward Hervey + + * gtk-doc.mak: + Check for the proper .devhelp2 file to remove. + +2006-05-31 Thomas Vander Stichele + + * gtk-doc.mak: + allow a magic variable to suppress errors from docbuilding + +2006-05-30 Thomas Vander Stichele + + * gtk-doc.mak: + error out if gtkdoc-mktmpl finds unused declarations + +2006-05-28 Edward Hervey + + * gst.supp: + Reverting previous commit. That's good to know, Edward, but why ? + +2006-05-28 Edward Hervey + + * gst.supp: + Added suppresion for memleak in g_option_context_parse on fc5-64 + +2006-05-19 Thomas Vander Stichele + + * m4/gst-check.m4: + set GSTPB_PLUGINS_DIR just like GST_PLUGINS_DIR + +2006-05-18 Tim-Philipp Müller + + * check.mak: + Fix 'make help' in check directories, it should be + 'valgrind.gen-suppressions' not 'valgrind-gen-suppressions' + (not changing target to match help string on purpose to keep + scripts etc. functional). + +2006-05-18 Thomas Vander Stichele + + Patch by: Peter Kjellerstedt + + * m4/gst-arch.m4: + add support for CRIS and CRISv32. + +2006-05-17 Jan Schmidt + + * m4/gst-args.m4: + Fix the macros for command-line supplied package and origin names + so they don't end up being configure as "" (Fixes #341479) + +2006-05-14 Jan Schmidt + + * gtk-doc.mak: + Add uninstall rule to remove .devhelp2 files. + +2006-05-09 Edward Hervey + + * gst.supp: + Add suppression for GSlice version of + g_type_init calloc leak + +2006-04-05 Michael Smith + + * gst.supp: + Delete a bogus suppression for the registry code. + Generalise a suppression for a glib bug (see #337404) + +2006-04-04 Michael Smith + + * gst.supp: + Add a leak suppression: the existing glibc-doesn't-free-TLS one + wasn't triggering here. + +2006-04-04 Michael Smith + + * gst.supp: + Add some minimally-neccesary suppressions for my x86/dapper system. + +2006-04-01 Thomas Vander Stichele + + * plugins.xsl: + Do not display an origin link if origin does not start with http + See #323798 + +2006-04-01 Thomas Vander Stichele + + * m4/gst-args.m4: + * m4/gst-feature.m4: + add more macros + * m4/gst-x11.m4: + X11-related checks + +2006-04-01 Thomas Vander Stichele + + * m4/as-version.m4: + newer version + * m4/gst-args.m4: + * m4/gst-doc.m4: + update and add other macros to be shared across projects + +2006-03-24 Thomas Vander Stichele + + * gst.supp: + add a suppression for g_parse_debug_string + +2006-03-23 Stefan Kost + + * gstdoc-scangobj: + sync fully with gtkdoc-0.15 + +2006-03-23 Stefan Kost + + * gstdoc-scangobj: + * gtk-doc.mak: + sync a little with gtk-doc mainline + +2006-03-17 Wim Taymans + + * gst.supp: + add another clone suppression + change all glibc suppressions to match 2.3.* + +2006-03-09 Thomas Vander Stichele + + * m4/check.m4: + fix test so it actually works when the normal check is used + over debian's/ubuntu's + +2006-03-08 Jan Schmidt + + * check.mak: + Set G_SLICE=always-malloc when valgrinding tests + (closes #333272) + +2006-02-21 Jan Schmidt + + * m4/gst-glib2.m4: + Fix debug output when the GLib version prerequisite is not found + +2006-02-13 Andy Wingo + + * m4/check.m4: Hack around Debian/Ubuntu's broken installation of + the PIC version of check as libcheck_pic.a. Should work with + cross-compilation too. Grr. + +2006-02-06 Thomas Vander Stichele + + * m4/gst-default.m4: + switch to auto* sinks for defaults + +2006-02-02 Wim Taymans + + * check.mak: + add a .valgrind.gen-suppressions target to aid in generating + suppressions + * gst.supp: + add more repressions from my debian glibc as of today + +2006-02-02 Thomas Vander Stichele + + * gtk-doc-plugins.mak: + only add srcdir/gst if it exists + +2006-01-30 Thomas Vander Stichele + + * release.mak: + don't complain about disted enums in win32 + +2006-01-20 Thomas Vander Stichele + + * m4/gst-check.m4: + AC_SUBST CFLAGS and LIBS + do a non-command because something is stripping out our AC_SUBST + +2006-01-20 Thomas Vander Stichele + + * m4/gst-args.m4: + * m4/gst-valgrind.m4: + properly give a "no" result manually when providing a + not-found action to fix configure output + +2006-01-20 Thomas Vander Stichele + + * m4/pkg.m4: + update with a more recent version + +2006-01-07 Thomas Vander Stichele + + * gettext.patch: + make Makefile depend on LINGUAS, so rebuilds work when adding + a language + +2006-01-03 Michael Smith + + * check.mak: + Clarify error message from valgrind test runs. + +2005-12-16 Thomas Vander Stichele + + * m4/gst-arch.m4: + define HOST_CPU + +2005-11-29 Thomas Vander Stichele + + * check.mak: + add a valgrind-forever target for tests + +2005-11-28 Thomas Vander Stichele + + * check.mak: + when a "make test.check" run fails, make it rerun the test with + at least debug level 2 + +2005-11-14 Thomas Vander Stichele + + * m4/Makefile.am: + * m4/gst-check.m4: + fix check for base plugins + * m4/gst-default.m4: + add m4 to set default elements + +2005-10-18 Thomas Vander Stichele + + * m4/gst-check.m4: + check for tools correctly + +2005-10-18 Thomas Vander Stichele + + * gtk-doc.mak: + only enable breaking on new API when make distcheck passes, + not before + +2005-10-18 Thomas Vander Stichele + + * m4/gst-check.m4: + Resurrect Julien's dead body and wipe his mind clean + +2005-10-18 Thomas Vander Stichele + + * m4/gst-check.m4: + Kill Julien + +2005-10-17 Julien MOUTTE + + * m4/gst-check.m4: I know Thomas will kill me but this + ifelse statement seems incorrect as it is always setting + required to "yes". With this one it seems to work. Fixes + build of gst-plugins-base on my setup where gstreamer-check + is definitely not present/required. + +2005-10-18 Stefan Kost + + * gtk-doc.mak: + make build break on new api that has not been added to the + sections file + +2005-10-17 Thomas Vander Stichele + + * m4/gst-glib2.m4: + * m4/Makefile.am: + * m4/gst-check.m4: + add macro for easy checks for GStreamer libs + +2005-10-16 Thomas Vander Stichele + + * m4/gst-glib2.m4: + update, warn in error cases + +2005-10-16 Thomas Vander Stichele + + * m4/gst-error.m4: + add GST_SET_DEFAULT_LEVEL + +2005-10-16 Thomas Vander Stichele + + * m4/Makefile.am: + * m4/gst-gettext.m4: + remove the AM_GNU_GETTEXT* calls, they need to be in configure.ac + * m4/gst-glib2.m4: + clean up and re-use in core soon + * m4/gst-plugindir.m4: + macro to set up PLUGINDIR and plugindir define/var + +2005-10-15 Thomas Vander Stichele + + * m4/Makefile.am: + * m4/gst-gettext.m4: + add macro for setting up gettext + +2005-10-15 Thomas Vander Stichele + + * m4/gst-args.m4: + add some .m4's for argument checking that can be shared among modules + +2005-10-15 Thomas Vander Stichele + + * m4/as-libtool.m4: + set _LT_LDFLAGS + * m4/gst-libxml2.m4: + document + +2005-10-15 Thomas Vander Stichele + + * m4/gst-arch.m4: + indent a little + add AC_REQUIRE + * m4/gst-error.m4: + clean up + +2005-10-12 Thomas Vander Stichele + + * gst-autogen.sh: + update version detection expression to catch stuff like + Libtool (libtool15) 1.5.0 + +2005-10-11 Thomas Vander Stichele + + * gst.supp: + commit 6 new suppressions related to g_module_open; can these + really not be folded into one ? + +2005-10-11 Edward Hervey + + * gst.supp: + made the suppression more generic + Added pthread memleak suppresions + Added nss_parse_* memleak suppresion (used by g_option_context_parse) + +2005-10-11 Thomas Vander Stichele + + * check.mak: + be more strict, more leak resolution + * gst.supp: + clean up the g_type_init suppressions + +2005-10-07 Thomas Vander Stichele + + * m4/Makefile.am: + * m4/gst-valgrind.m4: + put the valgrind detection in an .m4 + +2005-09-29 Thomas Vander Stichele + + * check.mak: + add some more targets, like "help", but also more intensive tests + +2005-09-23 Thomas Vander Stichele + + * gtk-doc.mak: + make certain doc warnings fatal so people maintain docs again + +2005-09-23 Thomas Vander Stichele + + * Makefile.am: + * gtk-doc-plugins.mak: + * scangobj-merge.py: + merge additions from the .signals.new and .args.new file in + the original ones, only updating if necessary + +2005-09-23 Thomas Vander Stichele + + * gst-xmlinspect.py: + * gstdoc-scangobj: + * gtk-doc-plugins.mak: + fix properly for new API; make update in plugins dir now works + +2005-09-20 Thomas Vander Stichele + + * gst-xmlinspect.py: + * gstdoc-scangobj: + some fixes for new API + * gtk-doc-plugins.mak: + set environment properly + +2005-09-17 David Schleef + + * gtk-doc-plugins.mak: Use new environment variables. + +2005-09-16 Michael Smith + + * gstdoc-scangobj: + Make the scanobj code reflect registry/plugin API changes + +2005-09-15 Thomas Vander Stichele + + * gtk-doc-plugins.mak: + split out scanobj step (which will be run by doc maintainer) + from scan step (which will be run on every build) + clean up some of the commands for make distcheck + +2005-09-15 Thomas Vander Stichele + + * gtk-doc-plugins.mak: + * mangle-tmpl.py: + first stab at reorganizing the plugins build so we can maintain + element docs + +2005-09-14 David Schleef + + * as-libtool.mak: Remove + * m4/as-libtool.m4: The libtool bug that this worked around has + been fixed. + * m4/as-version.m4: Don't define GST_RELEASE, since it causes + config.h to be regenerated needlessly, and we don't use it. + +2005-09-14 Thomas Vander Stichele + + * gtk-doc-plugins.mak: + error out on inspect failure + +2005-09-14 Michael Smith + + * glib-gen.mak: + Don't call glib-mkenums with arguments that confuse/break MinGW, + fixes 316155. + +2005-09-03 Thomas Vander Stichele + + * gtk-doc-plugins.mak: + * gtk-doc.mak: + * m4/gst-doc.m4: + separate out gtk-doc and docbook stuff + have two separate --enable configure flags + +2005-08-26 Thomas Vander Stichele + + * check.mak: + add a .gdb target; rebuild registry for each target, otherwise + a code rebuild always triggers a reg rebuild, and it's just too + annoying + * gstdoc-scangobj: + +2005-08-21 Thomas Vander Stichele + + * check.mak: + separate out REGISTRY_ENVIRONMENT; we want to use that from + our valgrind runs, but we also want TESTS_ENVIRONMENT to contain + everything that the first test, gst-register, needs + +2005-08-21 Thomas Vander Stichele + + * check.mak: + parse output of valgrind and check for definitely lost, and error + out; somehow I was led to believe valgrind returns non-zero for + leaks, but I can't make it do that, so let's parse + +2005-08-20 Thomas Vander Stichele + + * check.mak: + for some weird reason valgrind does not report actual memleaks + if GST_PLUGIN_PATH is set to anything but the core gstreamer dir + while valgrind is running. Since the registry is going to go + anyway, I don't want to waste any more time on this; I just run + valgrind without GST_PLUGIN_PATH set. Since the registry loading + doesn't check if GST_PLUGIN_PATH got changed as a reason to rebuild + the registry, that's actually fine. + +2005-08-15 Thomas Vander Stichele + + * mangle-tmpl.py: + keep original Long_Description; only insert an include if it's + not already the first line in there + * plugins.xsl: + output more information for plugins, including an origin hyperlink + +2005-08-15 Thomas Vander Stichele + + * gst-xmlinspect.py: + a first stab at inspecting plugins and outputting an xml description + * gtk-doc-plugins.mak: + a gtk-doc using snippet for plugins documentation + * plugins.xsl: + a stylesheet to convert gst-xmlinspect.py output to docbook output + for inclusion in the gtk-doc stuff + +2005-07-20 Ronald S. Bultje + + * m4/gst-doc.m4: + s/pdf/eps/ in test for whether we output EPS images (#309379). + +2005-07-18 Andy Wingo + + * m4/as-libtool-tags.m4: Ooh, backported from libtool 1.6. Much + better. Thanks, Paolo Bonzini! + + * m4/Makefile.am (EXTRA_DIST): + * m4/as-libtool-tags.m4: New file, tries to disable some CXX and + fortran checks. + +2005-07-08 Thomas Vander Stichele + + * m4/gst-error.m4: + add macro to set ERROR_CFLAGS + +2005-06-30 Jan Schmidt + + * gst-autogen.sh: + Remove the old autoregen.sh if it exists before recreating it, + to prevent confusing any shell process that might be reading it + currently. + +2005-06-29 Thomas Vander Stichele + + * m4/gtk-doc.m4: + added + +2005-06-03 Stefan Kost + + * gst-autogen.sh: create autoregen.sh *before* shifting the options + +2005-05-17 Thomas Vander Stichele + + * gst-autogen.sh: only update autoregen.sh on actual runs + +2005-03-11 Thomas Vander Stichele + + * m4/check.m4: m4 from the check unit test suite + +2004-12-14 David Schleef + + * m4/gst-arch.m4: remove MMX stuff, since it doesn't work and + isn't needed anywhere + +2004-12-08 Thomas Vander Stichele + + * gst-autogen.sh: + allow failure command to be run so we can clean upfrom autopoint + +2004-09-03 Zeeshan Ali Khattak + * m4/gst-feature.m4: Trying to correct the GST_CHECK_CONFIGPROG macro + +2004-07-21 Benjamin Otte + + * m4/.cvsignore: exciting updates for libtool m4 files + +2004-07-12 David Schleef + + * m4/as-objc.m4: Add a macro to test for objective C + +2004-06-12 Thomas Vander Stichele + + * m4/gst-feature.m4: + not all of them support --plugin-libs, so redirect stderr + +2004-06-12 Thomas Vander Stichele + + * m4/as-scrub-include.m4: + sync with upstream to 0.1.4. Fixes #132440 + +2004-06-07 Benjamin Otte + + * m4/gst-feature.m4: + write a big marker into configure output when checking next plugin + to allow easier parsing of why plugins are(n't) built. + +2004-06-01 Thomas Vander Stichele + + * m4/as-compiler-flag.m4: + * m4/as-compiler.m4: + * m4/as-libtool.m4: + * m4/as-version.m4: + sync with upstream, change sticky options to -ko + +2004-05-24 Thomas Vander Stichele + + * m4/as-scrub-include.m4: synced with upstream + +2004-05-03 Thomas Vander Stichele + + * po.mak: + snippet for updating .po files + +2004-03-18 Thomas Vander Stichele + + * Makefile.am: + * m4/Makefile.am: + integrate these with the dist + +2004-03-17 Thomas Vander Stichele + + * release.mak: add a release target + +2004-03-09 Thomas Vander Stichele + + patch by: Stephane Loeuillet + + * m4/ax_create_stdint_h.m4: + use head -n instead of head - (#136500) + +2004-03-05 Thomas Vander Stichele + + * m4/gst-doc.m4: don't build PS without dvips binary + +2004-02-22 Julio M. Merino Vidal + + reviewed by: Benjamin Otte + + * m4/as-docbook.m4: + don't use == operator with test(1) (fixes #135115) + +2004-02-16 Thomas Vander Stichele + + * common/m4/gst-arch.m4: x86_64 is x86 too (clue from Fedora 2 test) + +2004-02-13 Thomas Vander Stichele + + * m4/gst-feature.m4: + remove AM_CONDITIONAL for the subsystem since automake 1.6.x + requires that call be in configure.ac + +2004-02-13 Thomas Vander Stichele + + * m4/gst-libxml2.m4: + take required version as argument, and default to 2.4.9 if not + specified + +2004-02-12 Thomas Vander Stichele + + * m4/gst-feature.m4: + rename and fix up GST_CHECK_DISABLE_SUBSYSTEM + +2004-02-11 Thomas Vander Stichele + + * common/m4/as-ac-expand.m4: + * common/m4/as-auto-alt.m4: + * common/m4/as-compiler-flag.m4: + * common/m4/as-compiler.m4: + * common/m4/as-docbook.m4: + * common/m4/as-libtool.m4: + * common/m4/as-scrub-include.m4: + * common/m4/as-version.m4: + * common/m4/glib-gettext.m4: + * common/m4/gst-arch.m4: + * common/m4/gst-debuginfo.m4: + * common/m4/gst-doc.m4: + * common/m4/gst-feature.m4: + * common/m4/gst-function.m4: + * common/m4/gst-glib2.m4: + * common/m4/gst-gstreamer.m4: + * common/m4/gst-libxml2.m4: + * common/m4/gst-makecontext.m4: + * common/m4/gst-mcsc.m4: + * common/m4/pkg.m4: + fix underquoted macros as reported by automake 1.8.x (#133800) + +2004-02-11 Johan Dahlin + + * gst-autogen.sh: Use A-Z instead of A-z in sed expression to + avoid a warning + +2004-02-05 Thomas Vander Stichele + + * m4/gst-doc.m4: + we use --output-format=xml and --ingnore-files options to + gtkdoc-mkdb, which got added between 0.9 and 1.0 + +2004-02-04 Thomas Vander Stichele + + * m4/as-libtool.m4: remove AM_PROG_LIBTOOL so it can move back + to configure.ac to shut up libtoolize + +2004-02-03 Thomas Vander Stichele + + * glib-gen.mak: added; used to generate enums and marshal code + +2004-01-13 Thomas Vander Stichele + + * gettext.patch: added; used by autogen.sh to make sure + GETTEXT_PACKAGE is understood from po/Makefile.in.in -> po/Makefile.in + diff --git a/common/Makefile.am b/common/Makefile.am new file mode 100644 index 0000000..25966fc --- /dev/null +++ b/common/Makefile.am @@ -0,0 +1,22 @@ +SUBDIRS = m4 + +EXTRA_DIST = \ + ChangeLog \ + gettext.patch \ + glib-gen.mak gtk-doc.mak upload-doc.mak \ + cruft.mak release.mak win32.mak po.mak \ + parallel-subdirs.mak \ + gst-autogen.sh \ + check-exports \ + c-to-xml.py mangle-tmpl.py scangobj-merge.py \ + gtk-doc-plugins.mak \ + plugins.xsl gstdoc-scangobj \ + gst.supp check.mak \ + coverage/lcov.mak \ + coverage/coverage-report.pl \ + coverage/coverage-report.xsl \ + coverage/coverage-report-entry.pl \ + download-translations \ + extract-release-date-from-doap-file \ + gst-indent \ + orc.mak diff --git a/common/Makefile.in b/common/Makefile.in new file mode 100644 index 0000000..862453b --- /dev/null +++ b/common/Makefile.in @@ -0,0 +1,880 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = common +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in ChangeLog +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +SUBDIRS = m4 +EXTRA_DIST = \ + ChangeLog \ + gettext.patch \ + glib-gen.mak gtk-doc.mak upload-doc.mak \ + cruft.mak release.mak win32.mak po.mak \ + parallel-subdirs.mak \ + gst-autogen.sh \ + check-exports \ + c-to-xml.py mangle-tmpl.py scangobj-merge.py \ + gtk-doc-plugins.mak \ + plugins.xsl gstdoc-scangobj \ + gst.supp check.mak \ + coverage/lcov.mak \ + coverage/coverage-report.pl \ + coverage/coverage-report.xsl \ + coverage/coverage-report-entry.pl \ + download-translations \ + extract-release-date-from-doap-file \ + gst-indent \ + orc.mak + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu common/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/common/c-to-xml.py b/common/c-to-xml.py new file mode 100644 index 0000000..397c112 --- /dev/null +++ b/common/c-to-xml.py @@ -0,0 +1,34 @@ +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 + +""" +Convert a C program to valid XML to be included in docbook +""" + +import sys +import os +from xml.sax import saxutils + +def main(): + if len(sys.argv) == 1: + sys.stderr.write("Please specify a source file to convert") + sys.exit(1) + source = sys.argv[1] + + if not os.path.exists(source): + sys.stderr.write("%s does not exist.\n" % source) + sys.exit(1) + + content = open(source, "r").read() + + # print header + print '' + print '' + print + print '' + + # print content + print saxutils.escape(content).encode('UTF-8') + print '' + +main() diff --git a/common/check-exports b/common/check-exports new file mode 100755 index 0000000..c6d3eca --- /dev/null +++ b/common/check-exports @@ -0,0 +1,72 @@ +#!/bin/sh +# check-exports +# +# quick'n'dirty script that retrieves the list of exported symbols of a given +# library using 'nm', and compares that against the list of symbols-to-export +# of our win32/common/libfoo.def files. + +if [ $# -ne 2 ]; then + echo "Usage: $0 library.def library.so" + exit 1 +fi + +def_path="$1" +def_name="$(basename $def_path)" +lib_path="$2" + +lib_result="`mktemp /tmp/defname.XXXXXX`" + +LC_ALL=C +export LC_ALL + +# On Solaris, add -p to get the correct output format +NMARGS= +if nm -V 2>&1 |grep Solaris > /dev/null; then + NMARGS=-p +fi + +# FIXME 0.11: in 0.11, we should change the export filter to only export +# _gst_foo, but not __gst_foo (we can't change this now, since we added +# __gst_debug_min and __gst_debug_enabled at some point and need to keep +# ABI compatibility). So below we special-case some symbols that shouldn't +# really be exported, either because we're too lazy to rename them to something +# that's not exported (like the _gst_parse_* stuff) or because we had them in +# public headers at some point although they shouldn't be and so we need to +# keep them exported now (like _gst_debug_init, +# __gst_element_factory_add_interface or +# __gst_element_factory_add_static_pad_template). We suppress them here to +# make sure they're at least not exported in the windows msvc build (they +# were never in the .def file, so they never got exported). +# _end is special cased because for some reason it is reported as an exported +# BSS symbol, unlike on linux where it's a local absolute symbol. +nm $NMARGS $lib_path | awk \ + '{ + if ($3 !~ /^_gst_parse_yy/ && \ + $3 !~ /^_gst_[a-z]*_init/ && \ + $3 !~ /^_gst_parse_launch/ && \ + $3 !~ /^__gst_element_details_/ && \ + $3 !~ /^__gst_element_factory_add_/ && \ + $3 !~ /^gst_interfaces_marshal/ && \ + $3 ~ /^[_]*(gst_|Gst|GST_).*/) + { + if ($2 ~ /^[BSDG]$/) + print "\t" $3 " DATA" + else if ($2 == "T") + print "\t" $3 + } + }' | sort | awk '{ if (NR == 1) print "EXPORTS"; print $0; }' \ + > $lib_result + +diffoutput=`diff -u $def_path $lib_result` +diffresult=$? + +rm $lib_result + +if test "$diffresult" -eq 0; then + exit 0; +else + echo -n "$diffoutput" >&2 + echo >&2 + exit 1; +fi + diff --git a/common/check.mak b/common/check.mak new file mode 100644 index 0000000..30487f1 --- /dev/null +++ b/common/check.mak @@ -0,0 +1,181 @@ +# keep target around, since it's referenced in the modules' Makefiles +clean-local-check: + @echo + +if HAVE_VALGRIND +# hangs spectacularly on some machines, so let's not do this by default yet +check-valgrind: + $(MAKE) valgrind +else +check-valgrind: + @true +endif + +LOOPS = 10 + +# run any given test by running make test.check +# if the test fails, run it again at at least debug level 2 +%.check: % + @$(TESTS_ENVIRONMENT) \ + CK_DEFAULT_TIMEOUT=20 \ + $* || \ + $(TESTS_ENVIRONMENT) \ + GST_DEBUG=$$GST_DEBUG,*:2 \ + CK_DEFAULT_TIMEOUT=20 \ + $* + +# run any given test in a loop +%.torture: % + @for i in `seq 1 $(LOOPS)`; do \ + $(TESTS_ENVIRONMENT) \ + CK_DEFAULT_TIMEOUT=20 \ + $*; done + +# run any given test in an infinite loop +%.forever: % + @while true; do \ + $(TESTS_ENVIRONMENT) \ + CK_DEFAULT_TIMEOUT=20 \ + $* || break; done + +# valgrind any given test by running make test.valgrind +%.valgrind: % + @$(TESTS_ENVIRONMENT) \ + CK_DEFAULT_TIMEOUT=360 \ + G_SLICE=always-malloc \ + $(LIBTOOL) --mode=execute \ + $(VALGRIND_PATH) -q \ + $(foreach s,$(SUPPRESSIONS),--suppressions=$(s)) \ + --tool=memcheck --leak-check=full --trace-children=yes \ + --leak-resolution=high --num-callers=20 \ + ./$* 2>&1 | tee valgrind.log + @if grep "==" valgrind.log > /dev/null 2>&1; then \ + rm valgrind.log; \ + exit 1; \ + fi + @rm valgrind.log + +# valgrind any given test and generate suppressions for it +%.valgrind.gen-suppressions: % + @$(TESTS_ENVIRONMENT) \ + CK_DEFAULT_TIMEOUT=360 \ + G_SLICE=always-malloc \ + $(LIBTOOL) --mode=execute \ + $(VALGRIND_PATH) -q \ + $(foreach s,$(SUPPRESSIONS),--suppressions=$(s)) \ + --tool=memcheck --leak-check=full --trace-children=yes \ + --leak-resolution=high --num-callers=20 \ + --gen-suppressions=all \ + ./$* 2>&1 | tee suppressions.log + +# valgrind any given test until failure by running make test.valgrind-forever +%.valgrind-forever: % + @while $(MAKE) $*.valgrind; do \ + true; done + +# gdb any given test by running make test.gdb +%.gdb: % + @$(TESTS_ENVIRONMENT) \ + CK_FORK=no \ + $(LIBTOOL) --mode=execute \ + gdb $* + +# torture tests +torture: $(TESTS) + -rm test-registry.xml + @echo "Torturing tests ..." + @for i in `seq 1 $(LOOPS)`; do \ + $(MAKE) check || \ + (echo "Failure after $$i runs"; exit 1) || \ + exit 1; \ + done + @banner="All $(LOOPS) loops passed"; \ + dashes=`echo "$$banner" | sed s/./=/g`; \ + echo $$dashes; echo $$banner; echo $$dashes + +# forever tests +forever: $(TESTS) + -rm test-registry.xml + @echo "Forever tests ..." + @while true; do \ + $(MAKE) check || \ + (echo "Failure"; exit 1) || \ + exit 1; \ + done + +# valgrind all tests +valgrind: $(TESTS) + @echo "Valgrinding tests ..." + @failed=0; \ + for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do \ + $(MAKE) $$t.valgrind; \ + if test "$$?" -ne 0; then \ + echo "Valgrind error for test $$t"; \ + failed=`expr $$failed + 1`; \ + whicht="$$whicht $$t"; \ + fi; \ + done; \ + if test "$$failed" -ne 0; then \ + echo "$$failed tests had leaks or errors under valgrind:"; \ + echo "$$whicht"; \ + false; \ + fi + +# valgrind all tests and generate suppressions +valgrind.gen-suppressions: $(TESTS) + @echo "Valgrinding tests ..." + @failed=0; \ + for t in $(filter-out $(VALGRIND_TESTS_DISABLE),$(TESTS)); do \ + $(MAKE) $$t.valgrind.gen-suppressions; \ + if test "$$?" -ne 0; then \ + echo "Valgrind error for test $$t"; \ + failed=`expr $$failed + 1`; \ + whicht="$$whicht $$t"; \ + fi; \ + done; \ + if test "$$failed" -ne 0; then \ + echo "$$failed tests had leaks or errors under valgrind:"; \ + echo "$$whicht"; \ + false; \ + fi + +# inspect every plugin feature +GST_INSPECT = $(GST_TOOLS_DIR)/gst-inspect-$(GST_MAJORMINOR) +inspect: + @echo "Inspecting features ..." + @for e in `$(TESTS_ENVIRONMENT) $(GST_INSPECT) | head -n -2 \ + | cut -d: -f2`; \ + do echo Inspecting $$e; \ + $(GST_INSPECT) $$e > /dev/null 2>&1; done + +help: + @echo + @echo "make check -- run all checks" + @echo "make torture -- run all checks $(LOOPS) times" + @echo "make (dir)/(test).check -- run the given check once" + @echo "make (dir)/(test).forever -- run the given check forever" + @echo "make (dir)/(test).torture -- run the given check $(LOOPS) times" + @echo + @echo "make (dir)/(test).gdb -- start up gdb for the given test" + @echo + @echo "make valgrind -- valgrind all tests" + @echo "make valgrind.gen-suppressions -- generate suppressions for all tests" + @echo " and save to suppressions.log" + @echo "make (dir)/(test).valgrind -- valgrind the given test" + @echo "make (dir)/(test).valgrind-forever -- valgrind the given test forever" + @echo "make (dir)/(test).valgrind.gen-suppressions -- generate suppressions" + @echo " and save to suppressions.log" + @echo "make inspect -- inspect all plugin features" + @echo + @echo + @echo "Additionally, you can use the GST_CHECKS environment variable to" + @echo "specify which test(s) should be run. This is useful if you are" + @echo "debugging a failure in one particular test, or want to reproduce" + @echo "a race condition in a single test." + @echo + @echo "Examples:" + @echo + @echo " GST_CHECKS=test_this,test_that make element/foobar.check" + @echo " GST_CHECKS=test_many_threads make element/foobar.forever" + @echo + diff --git a/common/coverage/coverage-report-entry.pl b/common/coverage/coverage-report-entry.pl new file mode 100644 index 0000000..51c506c --- /dev/null +++ b/common/coverage/coverage-report-entry.pl @@ -0,0 +1,69 @@ +#!/usr/bin/perl +# +# Copyright (C) 2006 Daniel Berrange +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +print < + +Coverage report for $ARGV[0] + + + +

Coverage report for $ARGV[0]

+ +
+EOF
+
+
+while (<>) {
+    s/&/&/g;
+    s//>/g;
+
+    if (/^\s*function (\S+) called (\d+) returned \d+% blocks executed \d+%/) {
+	my $class = $2 > 0 ? "perfect" : "terrible";
+	$_ = "$_";
+    } elsif (/^\s*branch\s+\d+\s+taken\s+(\d+)%\s+.*$/) {
+	my $class = $1 > 0 ? "perfect" : "terrible";
+	$_ = "$_";
+    } elsif (/^\s*branch\s+\d+\s+never executed.*$/) {
+	my $class = "terrible";
+	$_ = "$_";
+    } elsif (/^\s*call\s+\d+\s+never executed.*$/) {
+	my $class = "terrible";
+	$_ = "$_";
+    } elsif (/^\s*call\s+\d+\s+returned\s+(\d+)%.*$/) {
+	my $class = $1 > 0 ? "perfect" : "terrible";
+	$_ = "$_";
+    }
+
+    print;
+}
+
+print <
+
+
+EOF
diff --git a/common/coverage/coverage-report.pl b/common/coverage/coverage-report.pl
new file mode 100644
index 0000000..ed30f8d
--- /dev/null
+++ b/common/coverage/coverage-report.pl
@@ -0,0 +1,125 @@
+#!/usr/bin/perl
+#
+# Copyright (C) 2006 Daniel Berrange
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+
+use warnings;
+use strict;
+
+my %coverage = ( functions => {}, files => {} );
+
+my %filemap;
+
+my $type;
+my $name;
+
+my @functions;
+
+while (<>) {
+    if (/^Function '(.*)'\s*$/) {
+	$type = "function";
+	$name = $1;
+	$coverage{$type}->{$name} = {};
+	push @functions, $name;
+    } elsif (/^File '(.*?)'\s*$/) {
+	$type = "file";
+	$name = $1;
+	$coverage{$type}->{$name} = {};
+
+	foreach my $func (@functions) {
+	    $coverage{"function"}->{$func}->{file} = $name;
+	}
+	@functions = ();
+    } elsif (/^Lines executed:(.*)%\s*of\s*(\d+)\s*$/) {
+	$coverage{$type}->{$name}->{lines} = $2;
+	$coverage{$type}->{$name}->{linesCoverage} = $1;
+    } elsif (/^Branches executed:(.*)%\s*of\s*(\d+)\s*$/) {
+	$coverage{$type}->{$name}->{branches} = $2;
+	$coverage{$type}->{$name}->{branchesCoverage} = $1;
+    } elsif (/^Taken at least once:(.*)%\s*of\s*(\d+)\s*$/) {
+	$coverage{$type}->{$name}->{conds} = $2;
+	$coverage{$type}->{$name}->{condsCoverage} = $1;
+    } elsif (/^Calls executed:(.*)%\s*of\s*(\d+)\s*$/) {
+	$coverage{$type}->{$name}->{calls} = $2;
+	$coverage{$type}->{$name}->{callsCoverage} = $1;
+    } elsif (/^No branches$/) {
+	$coverage{$type}->{$name}->{branches} = 0;
+	$coverage{$type}->{$name}->{branchesCoverage} = "100.00";
+	$coverage{$type}->{$name}->{conds} = 0;
+	$coverage{$type}->{$name}->{condsCoverage} = "100.00";
+    } elsif (/^No calls$/) {
+	$coverage{$type}->{$name}->{calls} = 0;
+	$coverage{$type}->{$name}->{callsCoverage} = "100.00";
+    } elsif (/^\s*(.*):creating '(.*)'\s*$/) {
+	$filemap{$1} = $2;
+    } elsif (/^\s*$/) {
+	# nada
+    } else {
+	warn "Shit [$_]\n";
+    }
+}
+
+my %summary;
+foreach my $type ("function", "file") {
+    $summary{$type} = {};
+    foreach my $m ("lines", "branches", "conds", "calls") {
+	my $totalGot = 0;
+	my $totalMiss = 0;
+	my $count = 0;
+	foreach my $func (keys %{$coverage{function}}) {
+	    $count++;
+	    my $got = $coverage{function}->{$func}->{$m};
+	    $totalGot += $got;
+	    my $miss = $got * $coverage{function}->{$func}->{$m ."Coverage"} / 100;
+	    $totalMiss += $miss;
+	}
+	$summary{$type}->{$m} = sprintf("%d", $totalGot);
+	$summary{$type}->{$m . "Coverage"} = sprintf("%.2f", $totalMiss / $totalGot * 100);
+    }
+}
+
+
+
+print "\n";
+
+foreach my $type ("function", "file") {
+    printf "<%ss>\n", $type;
+    foreach my $name (sort { $a cmp $b } keys %{$coverage{$type}}) {
+	my $rec = $coverage{$type}->{$name};
+	printf "  \n", $name, ($type eq "file" ? $filemap{$name} : $filemap{$rec->{file}});
+	printf "    \n", $rec->{lines}, $rec->{linesCoverage};
+	if (exists $rec->{branches}) {
+	    printf "    \n", $rec->{branches}, $rec->{branchesCoverage};
+	}
+	if (exists $rec->{conds}) {
+	    printf "    \n", $rec->{conds}, $rec->{condsCoverage};
+	}
+	if (exists $rec->{calls}) {
+	    printf "    \n", $rec->{calls}, $rec->{callsCoverage};
+	}
+	print  "  \n";
+    }
+
+    printf "  \n";
+    printf "    \n", $summary{$type}->{lines}, $summary{$type}->{linesCoverage};
+    printf "    \n", $summary{$type}->{branches}, $summary{$type}->{branchesCoverage};
+    printf "    \n", $summary{$type}->{conds}, $summary{$type}->{condsCoverage};
+    printf "    \n", $summary{$type}->{calls}, $summary{$type}->{callsCoverage};
+    printf  "  \n";
+    printf "\n", $type;
+}
+
+print "\n";
diff --git a/common/coverage/coverage-report.xsl b/common/coverage/coverage-report.xsl
new file mode 100644
index 0000000..b19ebb6
--- /dev/null
+++ b/common/coverage/coverage-report.xsl
@@ -0,0 +1,235 @@
+
+
+
+
+  
+
+  
+    
+      
+        Coverage report
+        
+      
+      
+        

Coverage report

+ + + +
+ + +

Function coverage

+ + + +
+ + + +

File coverage

+ + + +
+ + + + + + + + + + + + + + + + + + + + + odd + + + even + + + + + + + + + + + + + + odd + + + even + + + + + + +
NameLinesBranchesConditionsCalls
+
+ + + + + + + + + + + + + + Summary + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + perfect + + + excellant + + + good + + + poor + + + bad + + + terrible + + + + + % of + + +
diff --git a/common/coverage/lcov.mak b/common/coverage/lcov.mak new file mode 100644 index 0000000..fc1f6b2 --- /dev/null +++ b/common/coverage/lcov.mak @@ -0,0 +1,43 @@ +## .PHONY so it always rebuilds it +.PHONY: lcov-reset lcov lcov-run lcov-report lcov-upload + +# run lcov from scratch, always +lcov-reset: + $(MAKE) lcov-run + $(MAKE) lcov-report + +# run lcov from scratch if the dir is not there +lcov: + $(MAKE) lcov-reset + +if GST_GCOV_ENABLED +# reset run coverage tests +lcov-run: + @-rm -rf lcov + lcov --directory . --zerocounters + -if test -d tests/check; then $(MAKE) -C tests/check inspect; fi + -$(MAKE) check + +# generate report based on current coverage data +lcov-report: + mkdir lcov + lcov --compat-libtool --directory . --capture --output-file lcov/lcov.info + lcov --list-full-path -l lcov/lcov.info | grep -v "`cd $(top_srcdir) && pwd`" | cut -d\| -f1 > lcov/remove + lcov --list-full-path -l lcov/lcov.info | grep "tests/check/" | cut -d\| -f1 >> lcov/remove + lcov --list-full-path -l lcov/lcov.info | grep "docs/plugins/" | cut -d\| -f1 >> lcov/remove + lcov -r lcov/lcov.info `cat lcov/remove` > lcov/lcov.cleaned.info + rm lcov/remove + mv lcov/lcov.cleaned.info lcov/lcov.info + genhtml -t "$(PACKAGE_STRING)" -o lcov --num-spaces 2 lcov/lcov.info + +lcov-upload: lcov + rsync -rvz -e ssh --delete lcov/* gstreamer.freedesktop.org:/srv/gstreamer.freedesktop.org/www/data/coverage/lcov/$(PACKAGE) + +else +lcov-run: + echo "Need to reconfigure with --enable-gcov" + +lcov-report: + echo "Need to reconfigure with --enable-gcov" +endif + diff --git a/common/cruft.mak b/common/cruft.mak new file mode 100644 index 0000000..53eec24 --- /dev/null +++ b/common/cruft.mak @@ -0,0 +1,56 @@ +# checks for left-over files in the (usually uninstalled) tree, ie. for +# stuff that best be deleted to avoid problems like having old plugin binaries +# lying around. +# +# set CRUFT_FILES and/or CRUFT_DIRS in your Makefile.am when you include this + +check-cruft: + @cruft_files=""; cruft_dirs=""; \ + for f in $(CRUFT_FILES); do \ + if test -e $$f; then \ + cruft_files="$$cruft_files $$f"; \ + fi \ + done; \ + for d in $(CRUFT_DIRS); do \ + if test -e $$d; then \ + cruft_dirs="$$cruft_dirs $$d"; \ + fi \ + done; \ + if test "x$$cruft_files$$cruft_dirs" != x; then \ + echo; \ + echo "**** CRUFT ALERT *****"; \ + echo; \ + echo "The following files and directories may not be needed any "; \ + echo "longer (usually because a plugin has been merged into "; \ + echo "another plugin, moved to a different module, or been "; \ + echo "renamed), and you probably want to clean them up if you "; \ + echo "don't have local changes: "; \ + echo; \ + for f in $$cruft_files; do echo "file $$f"; done; \ + echo; \ + for d in $$cruft_dirs; do echo "directory $$d"; done; \ + echo; \ + echo "'make clean-cruft' will remove these for you."; \ + echo; \ + fi + +clean-cruft-dirs: + @for d in $(CRUFT_DIRS); do \ + if test -e $$d; then \ + rm -r "$$d" && echo "Removed directory $$d"; \ + fi \ + done + +clean-cruft-files: + @for f in $(CRUFT_FILES); do \ + if test -e $$f; then \ + rm "$$f" && echo "Removed file $$f"; \ + fi \ + done + +clean-cruft: clean-cruft-dirs clean-cruft-files + +# also might want to add this to your Makefile.am: +# +# all-local: check-cruft + diff --git a/common/download-translations b/common/download-translations new file mode 100755 index 0000000..aef1d31 --- /dev/null +++ b/common/download-translations @@ -0,0 +1,152 @@ +#!/bin/sh +# Shell script to download the latest translations for a given GStreamer +# package from translationproject.org + + +# DOMAINS based on http://translationproject.org/extra/matrix.html +# We need to check all domains, not only po/LINGUAS, since there might be +# new translations +DOMAINS=\ +"af am ar az be bg pt_BR bs ca zh_CN cs cy da de el eo es et eu fa fi fr "\ +"ga en_GB gl gu he hi zh_HK hr hu id is it ja ko ku ky lg lt lv mk mn ms "\ +"mt nb ne nl nn or pa pl pt rm ro ru rw sk sl sq sr sv ta tq th tk "\ +"tr zh_TW uk ven vi wa xh zu" + +# for testing/debugging: +#DOMAINS="es fr hu sv pl xx" + +# check for 'diff' program +diff --version 2>/dev/null >/dev/null +if [ ! $? ]; then + echo "==== You must have the 'diff' program installed for this script ====" + exit 1 +fi + +# check for 'wget' program +wget --version 2>/dev/null >/dev/null +if [ ! $? ]; then + echo "==== You must have the 'wget' program installed for this script ====" + exit 1 +fi + +# make sure we're in the top-level directory +if [ ! -d ./po ]; then + echo "==== No ./po directory in the current working directory ====" + exit 1 +fi + +# make sure a package argument was passed to us +if [ -z "$1" ]; then + echo "Usage: $0 PACKAGE, e.g. $0 gst-plugins-good" + exit 1 +fi + +if test "$1" != "gstreamer" -a \ + "$1" != "gst-plugins-base" -a \ + "$1" != "gst-plugins-good" -a \ + "$1" != "gst-plugins-ugly" -a \ + "$1" != "gst-plugins-bad"; then + echo "Unexpected package '$1' ?!" + exit 1 +fi + +PACKAGE="$1" + +DOMAINS_TO_ADD="" +DOMAINS_UPDATED="" +DOMAINS_NOT_IN_LINGUAS="" + +echo "Downloading latest translation files for package $PACKAGE ..." +echo + +for d in $DOMAINS +do + PACKAGE_PO_URL_BASE="http://translationproject.org/latest/$PACKAGE" + PO_URL="$PACKAGE_PO_URL_BASE/$d.po" + PO_FILENAME="$PACKAGE.$d.po" + if wget -q -nc -O $PO_FILENAME $PO_URL; then + # we want all .po files in UTF-8 format really, so convert if needed.. + CHARSET=`grep Content-Type $PO_FILENAME | sed -e 's/.*charset=\(.*\)\\\\n.*/\1/'` + if test "x$CHARSET" != "xUTF-8" -a "x$CHARSET" != "xutf-8"; then + # note: things like the bugs address will be added back by make update-po + if msguniq $PO_FILENAME --no-location \ + --output-file=$PO_FILENAME.utf8 \ + --to-code=UTF-8; then + mv $PO_FILENAME.utf8 $PO_FILENAME + else + echo "**** $d: conversion from $CHARSET to UTF-8 failed ****" + fi + fi + if [ -f "po/$d.po" ]; then + # ./po/foo.po exists, so let's check if ours matches the latest from the + # translation project website + REVDATE_NEW=`grep PO-Revision-Date $PO_FILENAME`; + REVDATE_OLD=`grep PO-Revision-Date po/$d.po`; + CHARSET_OLD=`grep Content-Type po/$d.po | sed -e 's/.*charset=\(.*\)\\\\n.*/\1/'` + if test "x$REVDATE_NEW" = "x$REVDATE_OLD" -a "x$CHARSET_OLD" = "xUTF-8"; then + # note: source code line markers will be removed later by make upload-po + echo "$d.po: up-to-date" + rm -f $PO_FILENAME + else + mv $PO_FILENAME "po/$d.po" + if test "x$CHARSET_OLD" != "xUTF-8" -a "x$CHARSET_OLD" != "xutf-8"; then + echo "$d.po: update (and charset converted from $CHARSET_OLD to UTF-8)" + else + echo "$d.po: updated" + fi + DOMAINS_UPDATED="$DOMAINS_UPDATED $d" + fi + # make sure domain is listed in LINGUAS + if ! grep $d "po/LINGUAS" >/dev/null 2>/dev/null; then + DOMAINS_NOT_IN_LINGUAS="$DOMAINS_NOT_IN_LINGUAS $d" + fi + else + # ./po/foo.po doesn't exist, but foo.po exists on the translation project + # website, so it's probably a new translation + echo "$d.po: new language" + mv $PO_FILENAME "po/$d.po" + DOMAINS_UPDATED="$DOMAINS_UPDATED $d" + DOMAINS_TO_ADD="$DOMAINS_TO_ADD $d" + fi + else + rm -f $PO_FILENAME + echo "$d.po: failure (does probably not exist)" + fi +done + +if [ -n "$DOMAINS_UPDATED" ]; then + echo "====================================================================" + echo + echo "Language domains updated :$DOMAINS_UPDATED" + echo "Language domains to git add :$DOMAINS_TO_ADD" + echo + echo "Source: http://translationproject.org/latest/$PACKAGE/" + echo + if [ -n "$DOMAINS_TO_ADD" ]; then + CMD_STRING="git add" + for d in $DOMAINS_TO_ADD; do + CMD_STRING="$CMD_STRING po/$d.po" + done + echo "Please run" + echo + echo " $CMD_STRING" + echo + echo "now and add the following domains to the po/LINGUAS file:" + echo + echo " $DOMAINS_TO_ADD" + echo + echo + fi + echo "====================================================================" +fi + +if [ -n "$DOMAINS_NOT_IN_LINGUAS" ]; then + echo + echo "Existing domains missing from the po/LINGUAS file:" + echo + echo " $DOMAINS_NOT_IN_LINGUAS" + echo + echo +fi + + diff --git a/common/extract-release-date-from-doap-file b/common/extract-release-date-from-doap-file new file mode 100755 index 0000000..f2bc418 --- /dev/null +++ b/common/extract-release-date-from-doap-file @@ -0,0 +1,32 @@ +#!/bin/sh +# Shell script to extract the date given a release version and a .doap file + +if test "x$1" = "x" -o "x$2" = "x" -o ! -s "$2"; then + echo "Usage: $0 RELEASE-VERSION-NUMBER DOAP-FILE" >&2; + exit 1 +fi + +if ! grep '/dev/null ; then + echo "$2 does not look lika a .doap file" >&2; + exit 1 +fi + +if ! grep "$1" "$2" >/dev/null ; then + echo "$2 contains no reference to a version $1" >&2; + exit 1 +fi + +awk 'BEGIN {x=0} +{ +if ($0~"") {x=1; chunk=""} +if (x==1) { + if ($0~"") { chunk = chunk $0 } + if ($0~"") { chunk = chunk $0 } +} +if ($0~"") {x=0; print chunk} +}' < "$2" | \ +\ +grep ''"$1"'' | \ +\ +sed -e 's/^.*//' -e 's/<\/created>.*$//' + diff --git a/common/gettext.patch b/common/gettext.patch new file mode 100644 index 0000000..682b905 --- /dev/null +++ b/common/gettext.patch @@ -0,0 +1,12 @@ +--- po/Makefile.in.in.orig 2006-01-07 12:03:45.000000000 +0100 ++++ po/Makefile.in.in 2006-01-07 12:04:23.000000000 +0100 +@@ -11,6 +11,9 @@ + PACKAGE = @PACKAGE@ + VERSION = @VERSION@ + ++# thomas: add GETTEXT_PACKAGE substitution as used in Makevars ++GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ ++ + SHELL = /bin/sh + @SET_MAKE@ + diff --git a/common/glib-gen.mak b/common/glib-gen.mak new file mode 100644 index 0000000..ef93a5f --- /dev/null +++ b/common/glib-gen.mak @@ -0,0 +1,44 @@ +# these are the variables your Makefile.am should set +# the example is based on the colorbalance interface + +#glib_enum_headers=$(colorbalance_headers) +#glib_enum_define=GST_COLOR_BALANCE +#glib_enum_prefix=gst_color_balance + +enum_headers=$(foreach h,$(glib_enum_headers),\n\#include \"$(h)\") + +# these are all the rules generating the relevant files +%-marshal.h: %-marshal.list + $(AM_V_GEN)glib-genmarshal --header --prefix=$(glib_enum_prefix)_marshal $^ > $*-marshal.h.tmp && \ + mv $*-marshal.h.tmp $*-marshal.h + +%-marshal.c: %-marshal.list + $(AM_V_GEN)echo "#include \"$*-marshal.h\"" >> $*-marshal.c.tmp && \ + glib-genmarshal --body --prefix=$(glib_enum_prefix)_marshal $^ >> $*-marshal.c.tmp && \ + mv $*-marshal.c.tmp $*-marshal.c + +%-enumtypes.h: $(glib_enum_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \ + $^ > $@ + +%-enumtypes.c: $(glib_enum_headers) + @if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi + $(AM_V_GEN)glib-mkenums \ + --fhead "#include \"$*-enumtypes.h\"\n$(enum_headers)" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n if (g_once_init_enter (&g_define_type_id__volatile)) {\n static const G@Type@Value values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n return g_define_type_id__volatile;\n}\n" \ + $^ > $@ + +# a hack rule to make sure .Plo files exist because they get include'd +# from Makefile's +.deps/%-marshal.Plo: + @touch $@ + +.deps/%-enumtypes.Plo: + @touch $@ diff --git a/common/gst-autogen.sh b/common/gst-autogen.sh new file mode 100644 index 0000000..f05e021 --- /dev/null +++ b/common/gst-autogen.sh @@ -0,0 +1,376 @@ +# a silly hack that generates autoregen.sh but it's handy +# Remove the old autoregen.sh first to create a new file, +# as the current one may be being read by the shell executing +# this script. +if [ -f "autoregen.sh" ]; then + rm autoregen.sh +fi +echo "#!/bin/sh" > autoregen.sh +echo "./autogen.sh $@ \$@" >> autoregen.sh +chmod +x autoregen.sh + +# helper functions for autogen.sh + +debug () +# print out a debug message if DEBUG is a defined variable +{ + if test ! -z "$DEBUG" + then + echo "DEBUG: $1" + fi +} + +version_get () +# based on the command's version output, set variables +# _MAJOR, _MINOR, _MICRO, _VERSION, using the given prefix as variable prefix +# +# arg 1: command binary name +# arg 2: (uppercased) variable name prefix +{ + COMMAND=$1 + VARPREFIX=`echo $2 | tr .,- _` + + # strip everything that's not a digit, then use cut to get the first field + pkg_version=`$COMMAND --version|head -n 1|sed 's/^.*)[^0-9]*//'|cut -d' ' -f1` + debug "pkg_version $pkg_version" + # remove any non-digit characters from the version numbers to permit numeric + # comparison + pkg_major=`echo $pkg_version | cut -d. -f1 | sed s/[a-zA-Z\-].*//g` + pkg_minor=`echo $pkg_version | cut -d. -f2 | sed s/[a-zA-Z\-].*//g` + pkg_micro=`echo $pkg_version | cut -d. -f3 | sed s/[a-zA-Z\-].*//g` + test -z "$pkg_major" && pkg_major=0 + test -z "$pkg_minor" && pkg_minor=0 + test -z "$pkg_micro" && pkg_micro=0 + debug "found major $pkg_major minor $pkg_minor micro $pkg_micro" + eval ${VARPREFIX}_MAJOR=$pkg_major + eval ${VARPREFIX}_MINOR=$pkg_minor + eval ${VARPREFIX}_MICRO=$pkg_micro + eval ${VARPREFIX}_VERSION=$pkg_version +} + +version_compare () +# Checks whether the version of VARPREFIX is equal to or +# newer than the requested version +# arg1: VARPREFIX +# arg2: MAJOR +# arg3: MINOR +# arg4: MICRO +{ + VARPREFIX=`echo $1 | tr .,- _` + MAJOR=$2 + MINOR=$3 + MICRO=$4 + + eval pkg_major=\$${VARPREFIX}_MAJOR; + eval pkg_minor=\$${VARPREFIX}_MINOR; + eval pkg_micro=\$${VARPREFIX}_MICRO; + + #start checking the version + debug "version_compare: $VARPREFIX against $MAJOR.$MINOR.$MICRO" + + # reset check + WRONG= + + if [ ! "$pkg_major" -gt "$MAJOR" ]; then + debug "major: $pkg_major <= $MAJOR" + if [ "$pkg_major" -lt "$MAJOR" ]; then + debug "major: $pkg_major < $MAJOR" + WRONG=1 + elif [ ! "$pkg_minor" -gt "$MINOR" ]; then + debug "minor: $pkg_minor <= $MINOR" + if [ "$pkg_minor" -lt "$MINOR" ]; then + debug "minor: $pkg_minor < $MINOR" + WRONG=1 + elif [ "$pkg_micro" -lt "$MICRO" ]; then + debug "micro: $pkg_micro < $MICRO" + WRONG=1 + fi + fi + fi + if test ! -z "$WRONG"; then + debug "version_compare: $VARPREFIX older than $MAJOR.$MINOR.$MICRO" + return 1 + fi + debug "version_compare: $VARPREFIX equal to/newer than $MAJOR.$MINOR.$MICRO" + return 0 +} + + +version_check () +# check the version of a package +# first argument : package name (executable) +# second argument : optional path where to look for it instead +# third argument : source download url +# rest of arguments : major, minor, micro version +# all consecutive ones : suggestions for binaries to use +# (if not specified in second argument) +{ + PACKAGE=$1 + PKG_PATH=$2 + URL=$3 + MAJOR=$4 + MINOR=$5 + MICRO=$6 + + # for backwards compatibility, we let PKG_PATH=PACKAGE when PKG_PATH null + if test -z "$PKG_PATH"; then PKG_PATH=$PACKAGE; fi + debug "major $MAJOR minor $MINOR micro $MICRO" + VERSION=$MAJOR + if test ! -z "$MINOR"; then VERSION=$VERSION.$MINOR; else MINOR=0; fi + if test ! -z "$MICRO"; then VERSION=$VERSION.$MICRO; else MICRO=0; fi + + debug "major $MAJOR minor $MINOR micro $MICRO" + + for SUGGESTION in $PKG_PATH; do + COMMAND="$SUGGESTION" + + # don't check if asked not to + test -z "$NOCHECK" && { + printf " checking for $COMMAND >= $VERSION ... " + } || { + # we set a var with the same name as the package, but stripped of + # unwanted chars + VAR=`echo $PACKAGE | sed 's/-//g'` + debug "setting $VAR" + eval $VAR="$COMMAND" + return 0 + } + + which $COMMAND > /dev/null 2>&1 + if test $? -eq 1; + then + debug "$COMMAND not found" + continue + fi + + VARPREFIX=`echo $COMMAND | sed 's/-//g' | tr [:lower:] [:upper:]` + version_get $COMMAND $VARPREFIX + + version_compare $VARPREFIX $MAJOR $MINOR $MICRO + if test $? -ne 0; then + echo "found $pkg_version, not ok !" + continue + else + echo "found $pkg_version, ok." + # we set a var with the same name as the package, but stripped of + # unwanted chars + VAR=`echo $PACKAGE | sed 's/-//g'` + debug "setting $VAR" + eval $VAR="$COMMAND" + return 0 + fi + done + + echo "$PACKAGE not found !" + echo "You must have $PACKAGE installed to compile $package." + echo "Download the appropriate package for your distribution," + echo "or get the source tarball at $URL" + return 1; +} + +aclocal_check () +{ + # normally aclocal is part of automake + # so we expect it to be in the same place as automake + # so if a different automake is supplied, we need to adapt as well + # so how's about replacing automake with aclocal in the set var, + # and saving that in $aclocal ? + # note, this will fail if the actual automake isn't called automake* + # or if part of the path before it contains it + if [ -z "$automake" ]; then + echo "Error: no automake variable set !" + return 1 + else + aclocal=`echo $automake | sed s/automake/aclocal/` + debug "aclocal: $aclocal" + if [ "$aclocal" != "aclocal" ]; + then + CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-aclocal=$aclocal" + fi + if [ ! -x `which $aclocal` ]; then + echo "Error: cannot execute $aclocal !" + return 1 + fi + fi +} + +autoheader_check () +{ + # same here - autoheader is part of autoconf + # use the same voodoo + if [ -z "$autoconf" ]; then + echo "Error: no autoconf variable set !" + return 1 + else + autoheader=`echo $autoconf | sed s/autoconf/autoheader/` + debug "autoheader: $autoheader" + if [ "$autoheader" != "autoheader" ]; + then + CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoheader=$autoheader" + fi + if [ ! -x `which $autoheader` ]; then + echo "Error: cannot execute $autoheader !" + return 1 + fi + fi + +} + +autoconf_2_52d_check () +{ + # autoconf 2.52d has a weird issue involving a yes:no error + # so don't allow it's use + test -z "$NOCHECK" && { + ac_version=`$autoconf --version|head -n 1|sed 's/^[a-zA-Z\.\ ()]*//;s/ .*$//'` + if test "$ac_version" = "2.52d"; then + echo "autoconf 2.52d has an issue with our current build." + echo "We don't know who's to blame however. So until we do, get a" + echo "regular version. RPM's of a working version are on the gstreamer site." + exit 1 + fi + } + return 0 +} +libtool_2_2_gettext_check () +{ + # libtool 2.2 needs autopoint 0.17 or higher + version_compare LIBTOOLIZE 2 2 0 + if test $? -eq 0 + then + version_compare AUTOPOINT 0 17 0 + if test $? -ne 0 + then + echo "libtool 2.2 requires autopoint 0.17 or higher" + return 1 + fi + fi + return 0 +} + + +die_check () +{ + # call with $DIE + # if set to 1, we need to print something helpful then die + DIE=$1 + if test "x$DIE" = "x1"; + then + echo + echo "- Please get the right tools before proceeding." + echo "- Alternatively, if you're sure we're wrong, run with --nocheck." + exit 1 + fi +} + +autogen_options () +{ + if test "x$1" = "x"; then + return 0 + fi + + while test "x$1" != "x" ; do + optarg=`expr "x$1" : 'x[^=]*=\(.*\)'` + case "$1" in + --noconfigure) + NOCONFIGURE=defined + AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --noconfigure" + echo "+ configure run disabled" + shift + ;; + --nocheck) + AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --nocheck" + NOCHECK=defined + echo "+ autotools version check disabled" + shift + ;; + -d|--debug) + DEBUG=defined + AUTOGEN_EXT_OPT="$AUTOGEN_EXT_OPT --debug" + echo "+ debug output enabled" + shift + ;; + -h|--help) + echo "autogen.sh (autogen options) -- (configure options)" + echo "autogen.sh help options: " + echo " --noconfigure don't run the configure script" + echo " --nocheck don't do version checks" + echo " --debug debug the autogen process" + echo + echo " --with-autoconf PATH use autoconf in PATH" + echo " --with-automake PATH use automake in PATH" + echo + echo "Any argument either not in the above list or after a '--' will be " + echo "passed to ./configure." + exit 1 + ;; + --with-automake=*) + AUTOMAKE=$optarg + echo "+ using alternate automake in $optarg" + CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-automake=$AUTOMAKE" + shift + ;; + --with-autoconf=*) + AUTOCONF=$optarg + echo "+ using alternate autoconf in $optarg" + CONFIGURE_DEF_OPT="$CONFIGURE_DEF_OPT --with-autoconf=$AUTOCONF" + shift + ;; + --) shift ; break ;; + *) + echo "+ passing argument $1 to configure" + CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $1" + shift + ;; + esac + done + + for arg do CONFIGURE_EXT_OPT="$CONFIGURE_EXT_OPT $arg"; done + if test ! -z "$CONFIGURE_EXT_OPT" + then + echo "+ options passed to configure: $CONFIGURE_EXT_OPT" + fi +} + +toplevel_check () +{ + srcfile=$1 + test -f $srcfile || { + echo "You must run this script in the top-level $package directory" + exit 1 + } +} + +tool_run () +{ + tool=$1 + options=$2 + run_if_fail=$3 + echo "+ running $tool $options..." + $tool $options || { + echo + echo $tool failed + eval $run_if_fail + exit 1 + } +} + +install_git_hooks () +{ + if test -d .git; then + # install pre-commit hook for doing clean commits + for hook in pre-commit; do + if test ! \( -x .git/hooks/$hook -a -L .git/hooks/$hook \); then + echo "+ Installing git $hook hook" + rm -f .git/hooks/$hook + ln -s ../../common/hooks/$hook.hook .git/hooks/$hook || { + # if we couldn't create a symbolic link, try doing a plain cp + if cp common/hooks/pre-commit.hook .git/hooks/pre-commit; then + chmod +x .git/hooks/pre-commit; + else + echo "********** Couldn't install git $hook hook **********"; + fi + } + fi + done + fi +} diff --git a/common/gst-glib-gen.mak b/common/gst-glib-gen.mak new file mode 100644 index 0000000..cc82bbd --- /dev/null +++ b/common/gst-glib-gen.mak @@ -0,0 +1,45 @@ +# these are the variables your Makefile.am should set +# the example is based on the colorbalance interface + +#glib_enum_headers=$(colorbalance_headers) +#glib_enum_define=GST_COLOR_BALANCE +#glib_gen_prefix=gst_color_balance +#glib_gen_basename=colorbalance + +enum_headers=$(foreach h,$(glib_enum_headers),\n\#include \"$(h)\") + +# these are all the rules generating the relevant files +$(glib_gen_basename)-marshal.h: $(glib_gen_basename)-marshal.list + $(AM_V_GEN)glib-genmarshal --header --prefix=$(glib_gen_prefix)_marshal $^ > $(glib_gen_basename)-marshal.h.tmp && \ + mv $(glib_gen_basename)-marshal.h.tmp $(glib_gen_basename)-marshal.h + +$(glib_gen_basename)-marshal.c: $(glib_gen_basename)-marshal.list + $(AM_V_GEN)echo "#include \"$(glib_gen_basename)-marshal.h\"" >> $(glib_gen_basename)-marshal.c.tmp && \ + glib-genmarshal --body --prefix=$(glib_gen_prefix)_marshal $^ >> $(glib_gen_basename)-marshal.c.tmp && \ + mv $(glib_gen_basename)-marshal.c.tmp $(glib_gen_basename)-marshal.c + +$(glib_gen_basename)-enumtypes.h: $(glib_enum_headers) + $(AM_V_GEN)glib-mkenums \ + --fhead "#ifndef __$(glib_enum_define)_ENUM_TYPES_H__\n#define __$(glib_enum_define)_ENUM_TYPES_H__\n\n#include \n\nG_BEGIN_DECLS\n" \ + --fprod "\n/* enumerations from \"@filename@\" */\n" \ + --vhead "GType @enum_name@_get_type (void);\n#define GST_TYPE_@ENUMSHORT@ (@enum_name@_get_type())\n" \ + --ftail "G_END_DECLS\n\n#endif /* __$(glib_enum_define)_ENUM_TYPES_H__ */" \ + $^ > $@ + +$(glib_gen_basename)-enumtypes.c: $(glib_enum_headers) + @if test "x$(glib_enum_headers)" = "x"; then echo "ERROR: glib_enum_headers is empty, please fix Makefile"; exit 1; fi + $(AM_V_GEN)glib-mkenums \ + --fhead "#include \"$(glib_gen_basename)-enumtypes.h\"\n$(enum_headers)" \ + --fprod "\n/* enumerations from \"@filename@\" */" \ + --vhead "GType\n@enum_name@_get_type (void)\n{\n static volatile gsize g_define_type_id__volatile = 0;\n if (g_once_init_enter (&g_define_type_id__volatile)) {\n static const G@Type@Value values[] = {" \ + --vprod " { @VALUENAME@, \"@VALUENAME@\", \"@valuenick@\" }," \ + --vtail " { 0, NULL, NULL }\n };\n GType g_define_type_id = g_@type@_register_static (\"@EnumName@\", values);\n g_once_init_leave (&g_define_type_id__volatile, g_define_type_id);\n }\n return g_define_type_id__volatile;\n}\n" \ + $^ > $@ + +# a hack rule to make sure .Plo files exist because they get include'd +# from Makefile's +.deps/%-marshal.Plo: + @touch $@ + +.deps/%-enumtypes.Plo: + @touch $@ diff --git a/common/gst-indent b/common/gst-indent new file mode 100755 index 0000000..732b2ba --- /dev/null +++ b/common/gst-indent @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Check that the code follows a consistant code style +# + +# Check for existence of indent, and error out if not present. +# On some *bsd systems the binary seems to be called gnunindent, +# so check for that first. + +version=`gnuindent --version 2>/dev/null` +if test "x$version" = "x"; then + version=`indent --version 2>/dev/null` + if test "x$version" = "x"; then + echo "GStreamer git pre-commit hook:" + echo "Did not find GNU indent, please install it before continuing." + exit 1 + fi + INDENT=indent +else + INDENT=gnuindent +fi + +case `$INDENT --version` in + GNU*) + ;; + default) + echo "GStreamer git pre-commit hook:" + echo "Did not find GNU indent, please install it before continuing." + echo "(Found $INDENT, but it doesn't seem to be GNU indent)" + exit 1 + ;; +esac + +INDENT_PARAMETERS="--braces-on-if-line \ + --case-brace-indentation0 \ + --case-indentation2 \ + --braces-after-struct-decl-line \ + --line-length80 \ + --no-tabs \ + --cuddle-else \ + --dont-line-up-parentheses \ + --continuation-indentation4 \ + --honour-newlines \ + --tab-size8 \ + --indent-level2 \ + --leave-preprocessor-space" + +$INDENT ${INDENT_PARAMETERS} $@ + diff --git a/common/gst.supp b/common/gst.supp new file mode 100644 index 0000000..7e24bc8 --- /dev/null +++ b/common/gst.supp @@ -0,0 +1,3929 @@ +### this file contains suppressions for valgrind when running +### the gstreamer unit tests +### it might be useful for wider use as well + +### syscall suppressions + +{ + + Memcheck:Param + clone(parent_tidptr) + fun:clone + fun:clone +} + +{ + + Memcheck:Param + clone(child_tidptr) + fun:clone + fun:clone +} + +{ + + Memcheck:Param + clone(tlsinfo) + fun:clone + fun:clone +} + +### glibc suppressions + +{ + + Memcheck:Cond + obj:/lib/ld-2.*.so + fun:dl_open_worker + obj:/lib/ld-2.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.*.so + fun:_dlerror_run + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_file +} + +{ + + Memcheck:Cond + fun:strlen + fun:fillin_rpath + fun:_dl_init_paths + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib64/ld-2.*.so + obj:* + obj:* +} + +{ + + Memcheck:Cond + fun:_dl_relocate_object + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start +} + +{ + + Memcheck:Cond + fun:* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +# glibc does not deallocate thread-local storage + +{ + + Memcheck:Leak + fun:calloc + fun:_dl_allocate_tls + fun:pthread_create@@* +} + +# I get an extra stack entry on x86/dapper +{ + + Memcheck:Leak + fun:calloc + obj:/lib/ld-2.3.*.so + fun:_dl_allocate_tls + fun:pthread_create@@* +} + + +{ + + Memcheck:Cond + fun:strstr + fun:__pthread_initialize_minimal + obj:/lib/libpthread-*.so + obj:/lib/libpthread-*.so + fun:call_init + fun:_dl_init + obj:/lib/ld-*.so +} + +# a thread-related free problem in glibc from Edgard +{ + __libc_freeres_rw_acess + Memcheck:Addr4 + obj:* + obj:* + obj:* + obj:* + obj:* + fun:__libc_freeres +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so +} + +# g_module_open-related problems +{ + + Memcheck:Addr2 + fun:memcpy + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open + fun:gst_plugin_load_file + fun:gst_registry_scan_path_level + fun:gst_registry_scan_path_level + fun:gst_registry_scan_path_level + fun:init_post + fun:g_option_context_parse + fun:gst_init_check + fun:gst_init + fun:gst_check_init + fun:main +} + +{ + + Memcheck:Addr4 + fun:memcpy + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open + fun:gst_plugin_load_file + fun:gst_registry_scan_path_level + fun:gst_registry_scan_path_level + fun:gst_registry_scan_path_level + fun:init_post + fun:g_option_context_parse + fun:gst_init_check + fun:gst_init + fun:gst_check_init + fun:main +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:do_sym + fun:_dl_sym + fun:dlsym_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlsym + fun:g_module_symbol + fun:g_module_open + fun:gst_plugin_load_file +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open + fun:gst_plugin_load_file +} +{ + + Memcheck:Cond + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open + fun:gst_plugin_load_file + fun:gst_plugin_load_by_name + fun:gst_plugin_feature_load +} + +{ + + Memcheck:Leak + fun:malloc + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open + fun:gst_plugin_load_file + fun:gst_plugin_load_by_name +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:dl_open_worker + obj:/lib/ld-2.3.*.so + fun:_dl_open + fun:dlopen_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:do_sym + fun:_dl_sym + fun:dlsym_doit + obj:/lib/ld-2.3.*.so + fun:_dlerror_run + fun:dlsym + fun:g_module_symbol + fun:g_module_open +} + +{ + + Memcheck:Param + futex(uaddr2) + fun:pthread_once + obj:/lib/libc-2.3.*.so + obj:/lib/libc-2.3.*.so + fun:mbsnrtowcs + fun:vfprintf + fun:vsprintf + fun:sprintf + obj:/lib/libc-2.3.*.so + fun:tmpfile + fun:setup_pipe + fun:setup_messaging_with_key + fun:setup_messaging +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:_dl_sym + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlsym + fun:g_module_symbol + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:iconv_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + obj:/lib/i686/cmov/libc-2.7.so + fun:iconv_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + fun:iconv_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libc-2.7.so + fun:iconv_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/i686/cmov/libdl-2.7.so + fun:dlopen +} + +# suppression for a glibc bug: +# http://valgrind.org/docs/manual/faq.html#faq.exit_errors> +{ + + Memcheck:Free + fun:free + obj:*libc-*.so + fun:__libc_freeres + fun:* + fun:_Exit +} + +# same as above, just so it works for tpm on gutsy/x86-64 +{ + + Memcheck:Free + fun:free + fun:free_mem + fun:__libc_freeres +} + +# valgrind doesn't allow me to specify a suppression for Addr1, Addr2, Addr4 +# as Addr*, so 3 copies for that; and then 2 of each for that pesky memcpy +{ + + Memcheck:Addr1 + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr2 + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} +{ + + Memcheck:Addr4 + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr1 + fun:memcpy + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr2 + fun:memcpy + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} +{ + + Memcheck:Addr4 + fun:memcpy + fun:_dl_signal_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/libc-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:_dl_open + obj:/lib/libdl-2.3.*.so + obj:/lib/ld-2.3.*.so +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.*.so + obj:/lib/libc-2.3.*.so + obj:/lib/ld-2.3.*.so + fun:_dl_open + obj:/lib/libdl-2.3.*.so + obj:/lib/ld-2.3.*.so + obj:/lib/libdl-2.3.*.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_file + fun:gst_plugin_load_by_name + fun:gst_plugin_feature_load +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libc-2.3.6.so + obj:/lib/ld-2.3.6.so + fun:_dl_open + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libc-2.3.6.so + obj:/lib/ld-2.3.6.so + fun:_dl_open + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + fun:dlopen +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libc-2.3.6.so + obj:/lib/ld-2.3.6.so + fun:_dl_open + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/tls/i686/cmov/libdl-2.3.6.so + fun:dlopen +} + +### glib suppressions +{ + + Memcheck:Cond + fun:g_parse_debug_string + obj:/usr/lib*/libglib-2.0.so.* + fun:g_slice_alloc + fun:g_slice_alloc0 +} + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:g_type_init* + fun:init_pre +} + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:g_type_register_fundamental +} + +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:type_node_any_new_W +} + +{ + + Memcheck:Leak + fun:realloc + fun:g_realloc + fun:type_node_any_new_W +} + +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:g_type_class_ref +} + +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:type_add_flags_W +} + +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:type_add_flags_W +} + +#pthread memleaks + +{ + Thread creation leak + Memcheck:Leak + fun:calloc + fun:allocate_dtv + fun:_dl_allocate* + fun:_dl_allocate* + fun:__pthread_initialize_minimal +} + +{ + Thread management leak + Memcheck:Leak + fun:calloc + fun:allocate_dtv + fun:_dl_allocate* + fun:_dl_allocate* + fun:__pthread_* +} + +{ + Thread management leak 2 + Memcheck:Leak + fun:memalign + fun:_dl_allocate* + fun:_dl_allocate* + fun:__pthread_* +} + +{ + pthread_create Syscall param write(buf) points to uninitialised byte(s) + Memcheck:Param + write(buf) + fun:pthread_create@@GLIBC_2.2.5 + fun:g_thread_create* + +} + +# nss_parse_* memleak (used by g_option_context_parse) +{ + nss_parse_* memleak + Memcheck:Leak + fun:malloc + fun:nss_parse_service_list + fun:__nss_database_lookup +} + +# liboil suppressions +{ + + Memcheck:Value8 + obj:/usr/lib/liboil-0.3.so.0.1.0 + obj:/usr/lib/liboil-0.3.so.0.1.0 + obj:/usr/lib/liboil-0.3.so.0.1.0 + fun:oil_cpu_fault_check_try + fun:oil_test_check_impl + fun:oil_class_optimize + fun:oil_optimize_all + fun:oil_init +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.3.6.so +} + +{ + + Memcheck:Param + futex(uaddr2) + fun:pthread_once + obj:/lib/libc-2.3.6.so + obj:/lib/libc-2.3.6.so + fun:setlocale + fun:init_pre + fun:g_option_context_parse + fun:gst_init_check + fun:gst_init + fun:gst_check_init + fun:main +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.3.6.so + obj:/lib/ld-2.3.6.so + fun:_dl_open + obj:/lib/libdl-2.3.6.so + obj:/lib/ld-2.3.6.so + obj:/lib/libdl-2.3.6.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_file +} +# this exists in a bunch of different variations, hence the short tail/trace +{ + + Memcheck:Addr4 + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so +} +{ + + Memcheck:Addr8 + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so +} + +# More edgy suppressions (Mike) +{ + + Memcheck:Cond + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + fun:dlopen_doit + obj:/lib/ld-2.4.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + fun:dlopen_doit + obj:/lib/ld-2.4.so + fun:_dlerror_run + fun:dlopen@@GLIBC_2.1 +} + +{ + + Memcheck:Cond + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + fun:do_sym + fun:_dl_sym +} + +# This one's overly general, but there's zero other information in the stack +# trace - just these five lines! +{ + + Memcheck:Cond + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so + obj:/lib/ld-2.4.so +} + +{ + + Memcheck:Leak + fun:calloc + obj:/lib/ld-2.4.so + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.1 +} + +# TLS leaks for feisty/x86 +{ + + Memcheck:Leak + fun:calloc + fun:allocate_dtv + fun:_dl_allocate_tls + fun:pthread_create@@GLIBC_2.1 +} + +{ + + Memcheck:Leak + fun:calloc + obj:/usr/lib/libcdio.so.6.0.1 + fun:cdio_open_am_linux + obj:/usr/lib/libcdio.so.6.0.1 + fun:cdio_open_am +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.5.so +} + +{ + + Memcheck:Cond + fun:snd_pcm_direct_shm_create_or_connect + fun:snd_pcm_dsnoop_open + fun:_snd_pcm_dsnoop_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_plug_open + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_asym_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 +} + +{ + + Memcheck:Cond + fun:snd*_pcm_hw_param_set_near +} + +{ + + Memcheck:Cond + ... + fun:snd*_pcm_hw_param_set_near +} + +{ + + Memcheck:Cond + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_close + obj:/*lib/libasound.so.2.0.0 +} +{ + + Memcheck:Cond + fun:snd_pcm_direct_shm_create_or_connect + fun:snd_pcm_dmix_open + fun:_snd_pcm_dmix_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_softvol_open + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_plug_open + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_asym_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 +} +{ + + Memcheck:Leak + fun:malloc + fun:strdup + fun:snd_dlobj_cache_add + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:snd_pcm_dsnoop_open + fun:_snd_pcm_dsnoop_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_plug_open + obj:/*lib/libasound.so.2.0.0 + fun:snd_pcm_open_slave + fun:_snd_pcm_asym_open + obj:/*lib/libasound.so.2.0.0 + obj:/*lib/libasound.so.2.0.0 +} +# Catch about 15 variations on inserting info into an ALSA +# internal cache +{ + + Memcheck:Leak + fun:malloc + ... + fun:snd*_dlobj_cache_add + obj:/*lib*/libasound.so.2.0.0 +} + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:snd_pcm_open_conf +} + +{ + + Memcheck:Leak + fun:*alloc + obj:/*lib*/libasound.so.2.0.0 + ... + fun:snd_config_hook_load +} + +{ + + Memcheck:Leak + fun:*alloc + obj:/*lib*/libasound.so.2.0.0 + ... + fun:snd_config_update_r + fun:snd_config_update +} +{ + + Memcheck:Leak + fun:*alloc + fun:strdup + ... + fun:snd_config_update_r + fun:snd_config_update +} +{ + + Memcheck:Leak + fun:malloc + obj:/lib/libc*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getgrnam_r + fun:getgrnam + fun:snd_pcm_direct_parse_open_conf +} + +{ + + Memcheck:Leak + fun:calloc + fun:_XCBInitDisplayLock + fun:XOpenDisplay +} + +# GConf internal initialisations related to getting the default client. +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_tcval + obj:/usr/lib/libORBit-2.so.* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:CORBA_ORB_string_to_object + obj:/usr/lib/libgconf-2.so.* + fun:gconf_get_current_lock_holder + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so.* + obj:/usr/lib/libgconf-2.so.* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_tcval + obj:* + fun:PortableServer_POA_servant_to_reference + fun:* + fun:* + fun:* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_tcval + obj:/usr/lib/libORBit-2.so.* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:CORBA_ORB_string_to_object + obj:/usr/lib/libgconf-2.so.* + fun:gconf_get_current_lock_holder + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so.* + obj:/usr/lib/libgconf-2.so.* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:ORBit_demarshal_value + fun:* + fun:ORBit_small_invoke_stub + fun:ConfigServer_get_default_database + fun:* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:* + fun:IOP_generate_profiles + fun:ORBit_marshal_object + fun:ORBit_marshal_value + fun:* + fun:ORBit_small_invoke_stub + fun:ConfigServer_add_client + fun:* + fun:* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_by_tc + fun:* + fun:PortableServer_POA_servant_to_reference + fun:* + fun:* + fun:* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_by_tc + obj:/usr/lib/libORBit-2.so.* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:CORBA_ORB_string_to_object + obj:/usr/lib/libgconf-2.so.* + fun:gconf_get_current_lock_holder + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so.* + obj:/usr/lib/libgconf-2.so.* + fun:gconf_engine_get_default +} + +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:* + fun:* + fun:gconf_activate_server +} + +# Some libORBit/bonobo initialisation stuff +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:ORBit_alloc_string + fun:CORBA_string_dup + fun:Bonobo_ActivationEnvValue_set + fun:bonobo_activation_init_activation_env + fun:bonobo_activation_orb_init + fun:bonobo_activation_init +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc* + obj:/usr/lib/libORBit-2.so* + fun:PortableServer_POA_servant_to_reference + obj:/usr/lib/libbonobo-2.so* +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_tcval + fun:ORBit_small_allocbuf + fun:ORBit_adaptor_setup + obj:/usr/lib/libORBit-2.so* + fun:ORBit_POA_setup_root + fun:ORBit_init_internals + fun:CORBA_ORB_init +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc_tcval + fun:ORBit_adaptor_setup + fun:* + fun:ORBit_POA_setup_root + fun:ORBit_init_internals + fun:CORBA_ORB_init +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_allocbuf + fun:bonobo_activation_init_activation_env + fun:bonobo_activation_orb_init + fun:bonobo_activation_init +} + +# More GConf stuff from the FC5 buildbot, mostly variations on the +# above stack traces +{ + + Memcheck:Param + writev(vector[...]) + fun:writev + obj:/usr/lib/libORBit-2.so* + fun:link_connection_writev + fun:giop_send_buffer_write + obj:/usr/lib/libORBit-2.so* + fun:ORBit_small_invoke_stub + fun:ORBit_small_invoke_stub_n + fun:ORBit_c_stub_invoke + fun:ConfigServer_ping + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc* + obj:/usr/lib/libORBit-2.so* + fun:PortableServer_POA_servant_to_reference + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc + obj:/usr/lib/libORBit-2.so* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:CORBA_ORB_string_to_object + obj:/usr/lib/libgconf-2.so* + fun:gconf_get_current_lock_holder + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc* + obj:/usr/lib/libORBit-2.so* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:CORBA_ORB_string_to_object + obj:/usr/lib/libgconf-2.so* + fun:gconf_get_current_lock_holder + fun:gconf_activate_server + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc* + obj:/usr/lib/libORBit-2.so* + fun:ORBit_demarshal_IOR + fun:ORBit_demarshal_object + fun:ORBit_demarshal_value + obj:/usr/lib/libORBit-2.so* + fun:ORBit_small_invoke_stub + fun:ORBit_small_invoke_stub_n + fun:ORBit_c_stub_invoke + fun:ConfigServer_get_default_database + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:ORBit_alloc* + fun:ORBit_small_alloc* + obj:/usr/lib/libORBit-2.so* + fun:ORBit_OAObject_object_to_objkey + fun:IOP_generate_profiles + fun:ORBit_marshal_object + fun:ORBit_marshal_value + obj:/usr/lib/libORBit-2.so* + fun:ORBit_small_invoke_stub + fun:ORBit_small_invoke_stub_n + fun:ORBit_c_stub_invoke + fun:ConfigServer_add_client + obj:/usr/lib/libgconf-2.so* + obj:/usr/lib/libgconf-2.so* + fun:gconf_engine_get_default +} +{ + + Memcheck:Leak + fun:malloc + obj:*libc-*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getpwnam_r + obj:/usr/lib*/libglib-2.0.so.* + fun:g_get_home_dir +} +{ + + Memcheck:Leak + fun:malloc + obj:*libc-*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getpwnam_r + obj:/usr/lib*/libglib-2.0.so.* + fun:g_get_user_name +} +{ + + Memcheck:Leak + fun:malloc + obj:*libc-*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getpwnam_r + obj:/usr/lib*/libglib-2.0.so.* + fun:g_get_tmp_dir +} + +{ + + Memcheck:Leak + fun:malloc + obj:*libc-*.so + fun:__nss_database_lookup + obj:* + obj:* + fun:getpwnam_r + obj:/usr/lib*/libglib-2.0.so.0.* + fun:g_get_host_name +} + + +## Some Fontconfig errors. +{ + + Memcheck:Leak + fun:malloc + fun:FcPatternObjectInsertElt + fun:FcPatternObjectAddWithBinding + fun:FcPatternAppend + fun:FcEndElement + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + fun:XML_ParseBuffer + fun:FcConfigParseAndLoad + fun:FcConfigParseAndLoad + fun:FcParseInclude + fun:FcEndElement + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + obj:/usr/lib/libexpat.so.* + fun:XML_ParseBuffer + fun:FcConfigParseAndLoad +} +{ + + Memcheck:Leak + fun:*alloc + ... + fun:FcInitLoadConfig +} + +# Issues with ubuntu Hardy, same crack as for previous ubuntus +{ + + Memcheck:Leak + fun:calloc + obj:* + fun:_dl_allocate_tls + fun:pthread_create@@* + obj:/usr/lib/libgthread* + fun:g_thread_* +} + +# I've made this version generic, so that it covers future modifications +# of library names +{ + + Memcheck:Leak + fun:calloc + obj:* + fun:_dl_allocate_tls + fun:pthread_create@@* + fun:g_thread_* +} + +# series of invalid read of size 4 in g_module_open for ubuntu +# hardy x86/32bit +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_* +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_* +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_* +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load_* +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlopen + fun:g_module_open + fun:gst_plugin_load* +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libc-2.7.so + fun:_dl_sym + obj:/lib/tls/i686/cmov/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libdl-2.7.so + fun:dlsym + fun:g_module_symbol + fun:g_module_open + fun:gst_plugin_load_* +} + +# series of invalid read of size 8 in g_module_open for ubuntu +# hardy x86/64bit +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlopen + fun:g_module_open +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/libdl-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libdl-2.7.so + fun:dlsym + fun:g_module_symbol + fun:g_module_open +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + fun:__nss_lookup_function + obj:/lib/tls/i686/cmov/libc-2.7.so + fun:__nss_passwd_lookup + fun:getpwnam_r +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + fun:__nss_lookup_function + obj:/lib/tls/i686/cmov/libc-2.7.so + fun:__nss_passwd_lookup + fun:getpwnam_r +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + fun:__nss_lookup_function + obj:/lib/tls/i686/cmov/libnss_compat-2.7.so + fun:_nss_compat_getpwnam_r + fun:getpwnam_r +} + +{ + + Memcheck:Addr4 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/tls/i686/cmov/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + fun:__nss_lookup_function + obj:/lib/tls/i686/cmov/libnss_compat-2.7.so + fun:_nss_compat_getpwnam_r + fun:getpwnam_r +} + +{ + + Memcheck:Addr8 + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/ld-2.7.so + obj:/lib/libc-2.7.so + obj:/lib/ld-2.7.so + fun:__libc_dlopen_mode + fun:__nss_lookup_function + obj:/lib/libc-2.7.so + fun:getpwnam_r +} + +## Leaks in ALSA (variations of leak from snd_config_load1) + +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:snd_config_load1 +} +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:snd_config_load1 +} +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} +{ + + Memcheck:Leak + fun:calloc + fun:_snd_config_make + fun:_snd_config_make_add + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:malloc + fun:snd1_dlobj_cache_add + fun:snd_ctl_open_noupdate +} + +{ + + Memcheck:Leak + fun:malloc + fun:* + fun:snd1_dlobj_cache_add + fun:snd_ctl_open_noupdate +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:snd_config_load1 +} + + +# The following are leaks of caps that need to be created dynamically +# in the type registration of the plugin (used for pad templates). + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_new_simple + fun:* + fun:g_type_class_ref + fun:gst_element_register +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:* + fun:* + fun:g_type_class_ref + fun:gst_element_register + fun:gst_ogm_parse_plugin_init + fun:plugin_init +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_copy + fun:gst_video_test_src_base_init + fun:g_type_class_ref + fun:gst_element_register +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_copy + fun:gst_video_test_src_getcaps + fun:gst_video_test_src_base_init + fun:g_type_class_ref + fun:gst_element_register +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_ffmpegcsp_codectype_to_caps + fun:gst_ffmpegcolorspace_register + fun:plugin_init +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_copy + fun:gst_ffmpegcolorspace_register + fun:plugin_init +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_new_any + fun:gst_ffmpegdemux_register + fun:plugin_init +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} + +{ + + Memcheck:Leak + fun:realloc + fun:g_realloc + fun:g_ptr_array_maybe_expand + fun:g_ptr_array_add + fun:gst_caps_append + fun:gst_audio_filter_class_add_pad_templates +} + +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:g_ptr_array_maybe_expand + fun:g_ptr_array_add + fun:gst_caps_append + fun:gst_audio_filter_class_add_pad_templates +} + +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:g_ptr_array_maybe_expand + fun:g_ptr_array_add + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_ptr_array_sized_new + fun:gst_caps_new_empty + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:g_array_maybe_expand + fun:g_array_sized_new + fun:* + fun:* + fun:* + fun:gst_value_init_and_copy + fun:gst_structure_copy + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:g_array_maybe_expand + fun:g_array_sized_new + fun:* + fun:gst_structure_copy + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_array_sized_new + fun:* + fun:gst_structure_copy + fun:gst_caps_copy + fun:gst_audio_filter_class_add_pad_templates +} + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_riff_create_*_template_caps +} +{ + + Memcheck:Leak + fun:malloc + fun:realloc + fun:g_realloc + fun:* + fun:* + fun:* + fun:gst_structure_copy + fun:gst_caps_copy + fun:gst_caps_append + fun:gst_riff_create_*_template_caps +} +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_array_sized_new + fun:* + fun:gst_structure_copy + fun:gst_caps_copy + fun:gst_caps_append + fun:gst_riff_create_*_template_caps +} + +## Leaks in pango (bilboed: gentoo unstable amd64) + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:pango_layout_get_pixel_extents +} +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:pango_language_from_string + fun:pango_language_get_default + fun:pango_context_init + fun:g_type_create_instance + fun:g_object_constructor + fun:g_object_newv + fun:g_object_new_valist + fun:g_object_new + fun:pango_font_map_create_context +} + +{ + + Memcheck:Leak + fun:calloc + fun:g_malloc0 + fun:pango_language_from_string +} + + +## Leak of property_list in gstffmpegcfg.c +## This list is created in gst_ffmpegcsp_init(), called from +## gst_ffmpegenc_register. +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_datalist_id_set_data_full + fun:gst_ffmpeg_cfg_init + fun:gst_ffmpegenc_register + fun:plugin_init +} +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:g_datalist_id_set_data_full + fun:g_param_spec_set_qdata_full + fun:gst_ffmpeg_cfg_init + fun:gst_ffmpegenc_register + fun:plugin_init +} + + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:gst_ffmpeg_cfg_init + fun:gst_ffmpegenc_register +} + +## Leak of GIO module through gnomevfs + +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:* + fun:* + fun:g_type_create_instance + fun:* + fun:* + fun:* + fun:* + fun:g_io_module_new + fun:g_io_modules_load_all_in_directory + fun:* + fun:get_default_vfs +} + +## Conditional jump in getaddrinfo (bilboed, gentoo ~amd64, Dec 13 2008) +{ + + Memcheck:Cond + fun:gaih_inet + fun:getaddrinfo +} + +## Dynamic pad templates in mxfmux +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_slice_alloc + fun:gst_caps_new_empty + fun:gst_caps_from_string + fun:mxf_*_init + fun:plugin_init +} + +## We don't know if ffmpeg frees this or not and better pass a copy for safety +{ + + Memcheck:Leak + fun:malloc + fun:g_malloc + fun:g_strdup + fun:gst_ffmpeg_cfg_fill_context + fun:gst_ffmpegenc_setcaps + fun:gst_pad_set_caps +} + +## Leak/overreads with glibc-2.10 + +{ + + Memcheck:Value8 + fun:do_sym + fun:dlsym_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlsym +} +{ + + Memcheck:Cond + fun:do_sym + fun:dlsym_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlsym +} + +{ + + Memcheck:Value8 + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Value8 + fun:_dl_relocate_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Value8 + fun:_dl_check_map_versions + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Cond + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Cond + fun:_dl_relocate_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Cond + fun:_dl_check_map_versions + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Cond + fun:_dl_map_object* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Value8 + fun:_dl_map_object* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Value8 + fun:_dl_check_caller + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Cond + fun:_dl_check_caller + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen* +} + +{ + + Memcheck:Value8 + obj:/lib*/libc-2.10.*.so + obj:/lib*/libc-2.10.*.so + fun:_vgnU_freeres +} +{ + + Memcheck:Cond + obj:/lib*/libc-2.10.*.so + obj:/lib*/libc-2.10.*.so + fun:_vgnU_freeres +} +{ + + Memcheck:Free + fun:free + obj:/lib*/libc-2.10.*.so + obj:/lib*/libc-2.10.*.so + fun:_vgnU_freeres +} + +{ + + Memcheck:Value8 + fun:_dl_fini + fun:__run_exit_handlers + fun:exit +} + +{ + + Memcheck:Cond + fun:_dl_fini + fun:__run_exit_handlers + fun:exit +} +{ + + Memcheck:Value8 + fun:_dl_sort_fini + fun:_dl_fini + fun:__run_exit_handlers + fun:exit +} + +{ + + Memcheck:Cond + fun:_dl_sort_fini + fun:_dl_fini + fun:__run_exit_handlers + fun:exit +} + +# glibc-2.10 dl overreads +{ + + Memcheck:Value8 + fun:_dl_fixup + fun:_dl_runtime_resolve +} +{ + + Memcheck:Cond + fun:_dl_fixup + fun:_dl_runtime_resolve +} + +{ + + Memcheck:Value8 + fun:_dl_lookup_symbol_x + fun:_dl_fixup + fun:_dl_runtime_resolve +} +{ + + Memcheck:Cond + fun:_dl_lookup_symbol_x + fun:_dl_fixup + fun:_dl_runtime_resolve +} +{ + + Memcheck:Value8 + fun:call_init + fun:_dl_init +} +{ + + Memcheck:Value8 + fun:_dl_init +} +{ + + Memcheck:Value8 + fun:do_lookup_x + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} +{ + + Memcheck:Cond + fun:do_lookup_x + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} +{ + + Memcheck:Value8 + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} +{ + + Memcheck:Value8 + fun:_dl_relocate_object + fun:dl_main +} +{ + + Memcheck:Value8 + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start +} +{ + + Memcheck:Cond + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start +} + +{ + + Memcheck:Cond + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_check_map_versions + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} + +{ + + Memcheck:Cond + fun:_dl_check_map_versions + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} + +{ + + Memcheck:Cond + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_check_map_versions + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} +{ + + Memcheck:Cond + fun:* + fun:_dl_check_map_versions + fun:_dl_check_all_versions + fun:version_check_doit + fun:_dl_receive_error + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:init_tls + fun:dl_main +} +{ + + Memcheck:Cond + fun:init_tls + fun:dl_main +} + +{ + + Memcheck:Cond + fun:_dl_map_object_deps + fun:dl_main +} +{ + + Memcheck:Value8 + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_protect_relro + fun:_dl_relocate_object + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_setup_hash + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:* + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:* + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Cond + fun:* + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:open_path + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Cond + fun:* + fun:open_path + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_name_match_p + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:* + fun:* + fun:_dl_map_object +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_name_match_p + fun:_dl_check_map_versions + fun:_dl_check_all_versions +} + +{ + + Memcheck:Value8 + fun:* + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x +} + +{ + + Memcheck:Cond + fun:do_lookup_x + fun:_dl_lookup_symbol_x +} + +{ + + Memcheck:Value8 + fun:do_lookup_x + fun:_dl_lookup_symbol_x +} + +{ + + Memcheck:Value8 + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x +} +{ + + Memcheck:Cond + fun:* + fun:do_lookup_x + fun:_dl_lookup_symbol_x +} + +{ + + Memcheck:Value8 + fun:_dl_name_match_p + fun:_dl_map_object + fun:dl_open_worker +} +{ + + Memcheck:Cond + fun:_dl_name_match_p + fun:_dl_map_object + fun:dl_open_worker +} + +{ + + Memcheck:Value8 + fun:* + fun:_dl_name_match_p + fun:_dl_map_object + fun:dl_open_worker +} +{ + + Memcheck:Cond + fun:* + fun:_dl_name_match_p + fun:_dl_map_object + fun:dl_open_worker +} + +{ + + Memcheck:Value8 + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object +} +{ + + Memcheck:Cond + fun:_dl_lookup_symbol_x + fun:_dl_relocate_object +} + +{ + + Memcheck:Value8 + fun:* + fun:* + fun:_dl_check_map_versions +} +{ + + Memcheck:Value8 + fun:* + fun:_dl_check_map_versions +} +{ + + Memcheck:Cond + fun:* + fun:* + fun:_dl_check_map_versions +} +{ + + Memcheck:Cond + fun:* + fun:_dl_check_map_versions +} +{ + + Memcheck:Value8 + fun:openaux +} +{ + + Memcheck:Value8 + fun:_dl_name_match_p + fun:_dl_map_object +} + +{ + + Memcheck:Cond + fun:_dl_close_worker + fun:_dl_close + fun:_dl_catch_error + fun:dlerror_run +} +{ + + Memcheck:Value8 + fun:_dl_close_worker + fun:_dl_close + fun:_dl_catch_error + fun:dlerror_run +} +{ + + Memcheck:Cond + fun:* + fun:_dl_close_worker + fun:_dl_close + fun:_dl_catch_error + fun:dlerror_run +} +{ + + Memcheck:Value8 + fun:* + fun:_dl_close_worker + fun:_dl_close + fun:_dl_catch_error + fun:dlerror_run +} + +{ + + Memcheck:Cond + fun:fillin_rpath + fun:_dl_init_paths + fun:dl_main +} +{ + + Memcheck:Value8 + fun:fillin_rpath + fun:_dl_init_paths + fun:dl_main +} +{ + + Memcheck:Cond + fun:* + fun:fillin_rpath + fun:_dl_init_paths + fun:dl_main +} +{ + + Memcheck:Value8 + fun:* + fun:fillin_rpath + fun:_dl_init_paths + fun:dl_main +} + +{ + + Memcheck:Cond + fun:_dl_map_object + fun:map_doit + fun:_dl_catch_error + fun:do_preload + fun:dl_main +} +{ + + Memcheck:Value8 + fun:_dl_map_object + fun:map_doit + fun:_dl_catch_error + fun:do_preload + fun:dl_main +} +{ + + Memcheck:Param + open(filename) + fun:open + fun:open_verify + fun:_dl_map_object + fun:map_doit + fun:_dl_catch_error + fun:do_preload + fun:dl_main +} + +{ + + Memcheck:Param + stat(file_name) + fun:_xstat + fun:open_path + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker +} + +{ + + Memcheck:Cond + fun:* + fun:_dl_map_object_deps + fun:dl_main +} +{ + + Memcheck:Value8 + fun:* + fun:_dl_map_object_deps + fun:dl_main +} + +{ + + Memcheck:Value8 + fun:* + fun:* + fun:_dl_map_object_deps + fun:dl_main +} + +# glibc-2.10 tls issues +{ + + Memcheck:Cond + fun:* + fun:init_tls + fun:dl_main +} +{ + + Memcheck:Value8 + fun:* + fun:init_tls + fun:dl_main +} +{ + + Memcheck:Cond + fun:* + fun:* + fun:init_tls + fun:dl_main +} +{ + + Memcheck:Value8 + fun:* + fun:* + fun:init_tls + fun:dl_main +} + +{ + + Memcheck:Cond + fun:_dl_allocate_tls_init + fun:dl_main +} +{ + + Memcheck:Value8 + fun:_dl_allocate_tls_init + fun:dl_main +} +{ + + Memcheck:Cond + fun:* + fun:_dl_allocate_tls_init + fun:dl_main +} +{ + + Memcheck:Value8 + fun:* + fun:_dl_allocate_tls_init + fun:dl_main +} + +{ + + Memcheck:Cond + fun:__tls* + obj:* + obj:* + fun:_vgnU_freeres +} + +{ + + Memcheck:Param + arch_prctl(arg2) + fun:init_tls +} +# GLib caching tmp/home directories (glibc-2.10 variants) +{ + + Memcheck:Cond + fun:* + fun:dl_open_worker + fun:* + fun:* + fun:* + fun:_dl_catch_error + fun:dlerror_run + fun:* + fun:__nss_lookup_function + fun:__nss_lookup + fun:getpwnam* +} +{ + + Memcheck:Value8 + fun:* + fun:dl_open_worker + fun:* + fun:* + fun:* + fun:_dl_catch_error + fun:dlerror_run + fun:* + fun:__nss_lookup_function + fun:__nss_lookup + fun:getpwnam* +} +{ + + Memcheck:Cond + fun:dl_open_worker + fun:* + fun:* + fun:do_dlopen + fun:* + fun:dlerror_run + fun:* + fun:__nss_lookup_function + fun:__nss_lookup + fun:getpwnam* +} +{ + + Memcheck:Value8 + fun:dl_open_worker + fun:* + fun:* + fun:do_dlopen + fun:* + fun:dlerror_run + fun:* + fun:__nss_lookup_function + fun:__nss_lookup + fun:getpwnam* +} + +{ + + Memcheck:Value8 + fun:_dl_add_to_slotinfo + fun:dl_main +} +{ + + Memcheck:Param + open(filename) + fun:open + fun:open_verify + fun:open_path + fun:_dl_map_object +} + + + +# GModule issues with glibc-2.10 +{ + + Memcheck:Value8 + fun:* + fun:* + fun:dlsym + fun:g_module_symbol +} +{ + + Memcheck:Value8 + fun:g_module_* + fun:gst_plugin* +} +{ + + Memcheck:Value8 + fun:* + fun:g_module_* + fun:gst_plugin* +} + +{ + + Memcheck:Value8 + fun:* + fun:* + fun:dlopen* + fun:g_module_open +} +{ + + Memcheck:Value8 + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:* + fun:dlsym + fun:g_module_symbol +} + +{ + + Memcheck:Value8 + fun:* + fun:* + fun:* + fun:* + fun:* + fun:dlopen* + fun:g_module_open +} + +# Leak in GSlice +{ + + Memcheck:Value8 + fun:g_parse_debug_string + fun:slice_config_init + fun:g_slice_init_nomessage + fun:_g_slice_thread_init_nomessage + fun:g_thread_init_glib +} + +# 2.10 pthread issues +{ + + Memcheck:Value8 + fun:__pthread_initialize_minimal +} + +# glibc 2.11 conditional +{ + + Memcheck:Cond + fun:_dl_relocate_object + fun:dl_main + fun:_dl_sysdep_start + fun:_dl_start + obj:/lib64/ld-2.11.so +} + +# glibc 2.11 Leak + +{ + + Memcheck:Leak + fun:*alloc + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:_dl_* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:_dl_* + fun:_dl_* + fun:_dl_* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:_dl_* + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:_dl_map_object + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:_dl_new_object + fun:_dl_map_object_from_fd + fun:_dl_map_object + fun:openaux + fun:_dl_catch_error + fun:_dl_map_object_deps + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:_dl_* + fun:_dl_* + fun:_dl_* + fun:dl_open_worker + fun:_dl_catch_error + fun:_dl_open + fun:dlopen_doit + fun:_dl_catch_error + fun:_dlerror_run + fun:dlopen@@GLIBC_2.2.5 +} + +# glib type leaks +{ + + Memcheck:Leak + fun:*alloc + ... + fun:g_type_register_static +} + +# new registry system +# all of this will only be created once when loading registry. + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:_priv_gst_registry_chunks_load_plugin +} + +# system-wide tags +# these tags are registered once + +{ + + Memcheck:Leak + fun:*alloc + fun:* + fun:* + fun:gst_tag_register + fun:_gst_tag_initialize +} + +# system-wide type classes that we keep referenced + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:g_type_class_ref +} + +# leaking cached queries which are only initialized once +{ + + Memcheck:Leak + fun:*alloc + ... + fun:_gst_query_initialize + fun:init_post +} + +# macosx (leopard) library loader leak +{ + + Memcheck:Leak + fun:_Znwm + fun:_ZNSs4_Rep9_S_createEmmRKSaIcE + fun:_ZNSs12_S_constructIPKcEEPcT_S3_RKSaIcESt20forward_iterator_tag + fun:_ZNSsC2EPKcRKSaIcE + fun:_Z41__static_initialization_and_destruction_0ii + fun:_ZN16ImageLoaderMachO18doModInitFunctionsERKN11ImageLoader11LinkContextE +} + +# GObject type registration +{ + + Memcheck:Leak + fun:*alloc + ... + fun:_g_atomic_array_copy +} + +{ + + Memcheck:Leak + fun:*alloc + fun:getdelim + obj:*libselinux* +} + +{ + + Memcheck:Leak + fun:*alloc + ... + obj:*/sed +} + +# GLib 2.23 interface vtable +{ + + Memcheck:Leak + fun:*alloc + ... + fun:g_type_add_interface_static +} + +{ + + Memcheck:Leak + fun:*alloc + obj:*/dash +} + +# libtool/gentoo fake leak +# it actually runs bash and valgrind complains +{ + + Memcheck:Leak + fun:*alloc + obj:/bin/bash +} + +{ + + Memcheck:Leak + fun:*alloc + ... + fun:_gst_plugin_loader_client_run + fun:main +} diff --git a/common/gstdoc-scangobj b/common/gstdoc-scangobj new file mode 100755 index 0000000..688b2c0 --- /dev/null +++ b/common/gstdoc-scangobj @@ -0,0 +1,1571 @@ +#!/usr/bin/env perl +# -*- cperl -*- +# +# gtk-doc - GTK DocBook documentation generator. +# Copyright (C) 1998 Damon Chaplin +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# + +# +# This gets information about object hierarchies and signals +# by compiling a small C program. CFLAGS and LDFLAGS must be +# set appropriately before running this script. +# + +use Getopt::Long; + +my $GTK_DOC_PREFIX=`pkg-config --variable prefix gtk-doc`; +if ($GTK_DOC_PREFIX) { + chomp $GTK_DOC_PREFIX; + #print "Adding $GTK_DOC_PREFIX/share/gtk-doc/data to \@INC\n"; + unshift @INC, "$GTK_DOC_PREFIX/share/gtk-doc/data"; +} else { + unshift @INC, '/usr/share/gtk-doc/data'; +} +require "gtkdoc-common.pl"; + +# Options + +# name of documentation module +my $MODULE; +my $OUTPUT_DIR; +my $INSPECT_DIR; +my $PRINT_VERSION; +my $PRINT_HELP; +my $TYPE_INIT_FUNC="g_type_init ()"; + +# --nogtkinit is deprecated, as it is the default now anyway. +%optctl = (module => \$MODULE, + source => \$SOURCE, + types => \$TYPES_FILE, + nogtkinit => \$NO_GTK_INIT, + 'type-init-func' => \$TYPE_INIT_FUNC, + 'output-dir' => \$OUTPUT_DIR, + 'inspect-dir' => \$INSPECT_DIR, + 'version' => \$PRINT_VERSION, + 'help' => \$PRINT_HELP); + +GetOptions(\%optctl, "module=s", "source=s", "types:s", "output-dir:s", "inspect-dir:s", "nogtkinit", "type-init-func:s", "version", "help"); + +if ($NO_GTK_INIT) { + # Do nothing. This just avoids a warning. + # the option is not used anymore +} + +if ($PRINT_VERSION) { + print "1.5\n"; + exit 0; +} + +if (!$MODULE) { + $PRINT_HELP = 1; +} + +if ($PRINT_HELP) { + print "gstdoc-scangobj version 1.5\n"; + print "\n--module=MODULE_NAME Name of the doc module being parsed"; + print "\n--source=SOURCE_NAME Name of the source module for plugins"; + print "\n--types=FILE The name of the file to store the types in"; + print "\n--type-init-func=FUNC The init function to call instead of g_type_init ()"; + print "\n--output-dir=DIRNAME The directory where the results are stored"; + print "\n--inspect-dir=DIRNAME The directory where the plugin inspect data is stored"; + print "\n--version Print the version of this program"; + print "\n--help Print this help\n"; + exit 0; +} + +$OUTPUT_DIR = $OUTPUT_DIR ? $OUTPUT_DIR : "."; + +$TYPES_FILE = $TYPES_FILE ? $TYPES_FILE : "$OUTPUT_DIR/$MODULE.types"; + +open (TYPES, $TYPES_FILE) || die "Cannot open $TYPES_FILE: $!\n"; +open (OUTPUT, ">$MODULE-scan.c") || die "Cannot open $MODULE-scan.c: $!\n"; + +my $old_signals_filename = "$OUTPUT_DIR/$MODULE.signals"; +my $new_signals_filename = "$OUTPUT_DIR/$MODULE.signals.new"; +my $old_hierarchy_filename = "$OUTPUT_DIR/$MODULE.hierarchy"; +my $new_hierarchy_filename = "$OUTPUT_DIR/$MODULE.hierarchy.new"; +my $old_interfaces_filename = "$OUTPUT_DIR/$MODULE.interfaces"; +my $new_interfaces_filename = "$OUTPUT_DIR/$MODULE.interfaces.new"; +my $old_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites"; +my $new_prerequisites_filename = "$OUTPUT_DIR/$MODULE.prerequisites.new"; +my $old_args_filename = "$OUTPUT_DIR/$MODULE.args"; +my $new_args_filename = "$OUTPUT_DIR/$MODULE.args.new"; + +# write a C program to scan the types + +$includes = ""; +@types = (); +@impl_types = (); + +for () { + if (/^#include/) { + $includes .= $_; + } elsif (/^%/) { + next; + } elsif (/^\s*$/) { + next; + } elsif (/^type:(.*)$/) { + $t = $1; + chomp $t; + push @impl_types, $t; + } else { + chomp; + push @types, $_; + } +} + +$ntypes = @types + @impl_types + 1; + +print OUTPUT < +#include +#include +#include + +$includes + +#ifdef GTK_IS_WIDGET_CLASS +#include +#endif + +static GType *object_types = NULL; + +static GString *xmlstr = NULL; + +static const gchar* +xmlprint (gint indent, const gchar *tag, const gchar *data) +{ + const gchar indent_str[] = " "; + + /* reset */ + g_string_truncate (xmlstr, 0); + g_string_append_len (xmlstr, indent_str, MIN (indent, strlen (indent_str))); + g_string_append_printf (xmlstr, "<%s>", tag); + + if (data) { + gchar *s; + + s = g_markup_escape_text (data, -1); + g_string_append (xmlstr, s); + g_free (s); + } + + g_string_append_printf (xmlstr, "\\n", tag); + return xmlstr->str; +} + +static gint +gst_feature_sort_compare (gconstpointer a, gconstpointer b) +{ + return strcmp (((GstPluginFeature *)a)->name, ((GstPluginFeature *)b)->name); +} + +static gint +static_pad_template_compare (gconstpointer a, gconstpointer b) +{ + GstStaticPadTemplate *spt_a = (GstStaticPadTemplate *) a; + GstStaticPadTemplate *spt_b = (GstStaticPadTemplate *) b; + + /* we want SINK before SRC (enum is UNKNOWN, SRC, SINK) */ + if (spt_a->direction != spt_b->direction) + return spt_b->direction - spt_a->direction; + + /* we want ALWAYS first, SOMETIMES second, REQUEST last + * (enum is ALWAYS, SOMETIMES, REQUEST) */ + if (spt_a->presence != spt_b->presence) + return spt_a->presence - spt_b->presence; + + return strcmp (spt_a->name_template, spt_b->name_template); +} + +static GType * +get_object_types (void) +{ + gpointer g_object_class; + GList *plugins = NULL; + GList *factories = NULL; + GList *l; + GstElementFactory *factory = NULL; + GType type; + gint i = 0; + gboolean reinspect; + + /* get a list of features from plugins in our source module */ + plugins = gst_registry_get_plugin_list (gst_registry_get_default()); + + xmlstr = g_string_new (""); + + reinspect = !g_file_test ("scanobj-build.stamp", G_FILE_TEST_EXISTS); + + while (plugins) { + GList *features; + GstPlugin *plugin; + const gchar *source; + FILE *inspect = NULL; + gchar *inspect_name; + + plugin = (GstPlugin *) (plugins->data); + plugins = g_list_next (plugins); + source = gst_plugin_get_source (plugin); + /*g_print ("plugin: %s source: %s\\n", plugin->desc.name, source);*/ + if (!source || strcmp (source, "$SOURCE") != 0) { + continue; + } + + /* skip static coreelements plugin with pipeline and bin element factory */ + if (gst_plugin_get_filename (plugin) == NULL) + continue; + + g_print ("plugin: %s source: %s\\n", plugin->desc.name, source); + + if (reinspect) { + inspect_name = g_strdup_printf ("$INSPECT_DIR" G_DIR_SEPARATOR_S "plugin-%s.xml", + plugin->desc.name); + inspect = fopen (inspect_name, "w"); + if (inspect == NULL) { + g_error ("Could not open %s for writing: %s\\n", inspect_name, + g_strerror (errno)); + } + g_free (inspect_name); + + /* output plugin data */ + fputs ("\\n",inspect); + fputs (xmlprint(2, "name", plugin->desc.name),inspect); + fputs (xmlprint(2, "description", plugin->desc.description),inspect); + fputs (xmlprint(2, "filename", plugin->filename),inspect); + fputs (xmlprint(2, "basename", plugin->basename),inspect); + fputs (xmlprint(2, "version", plugin->desc.version),inspect); + fputs (xmlprint(2, "license", plugin->desc.license),inspect); + fputs (xmlprint(2, "source", plugin->desc.source),inspect); + fputs (xmlprint(2, "package", plugin->desc.package),inspect); + fputs (xmlprint(2, "origin", plugin->desc.origin),inspect); + fputs (" \\n", inspect); + } + + features = + gst_registry_get_feature_list_by_plugin (gst_registry_get_default (), + plugin->desc.name); + + /* sort factories by feature->name */ + features = g_list_sort (features, gst_feature_sort_compare); + + while (features) { + GstPluginFeature *feature; + feature = GST_PLUGIN_FEATURE (features->data); + feature = gst_plugin_feature_load (feature); + if (!feature) { + g_warning ("Could not load plugin feature %s", + gst_plugin_feature_get_name (feature)); + } + + if (GST_IS_ELEMENT_FACTORY (feature)) { + const gchar *pad_dir[] = { "unknown","source","sink" }; + const gchar *pad_pres[] = { "always","sometimes","request" }; + GList *pads, *pad; + + /*g_print (" feature: %s\\n", feature->name);*/ + + factory = GST_ELEMENT_FACTORY (feature); + factories = g_list_prepend (factories, factory); + + if (reinspect) { + /* output element data */ + fputs (" \\n", inspect); + fputs (xmlprint(6, "name", feature->name),inspect); + fputs (xmlprint(6, "longname", gst_element_factory_get_longname (factory)),inspect); + fputs (xmlprint(6, "class", gst_element_factory_get_klass (factory)),inspect); + fputs (xmlprint(6, "description", gst_element_factory_get_description (factory)),inspect); + fputs (xmlprint(6, "author", gst_element_factory_get_author (factory)),inspect); + fputs (" \\n", inspect); + + /* output pad-template data */ + pads = g_list_copy ((GList *) gst_element_factory_get_static_pad_templates (factory)); + pads = g_list_sort (pads, static_pad_template_compare); + for (pad = pads; pad != NULL; pad = pad->next) { + GstStaticPadTemplate *pt = pad->data; + + fputs (" \\n", inspect); + fputs (xmlprint(10, "name", pt->name_template),inspect); + fputs (xmlprint(10, "direction", pad_dir[pt->direction]),inspect); + fputs (xmlprint(10, "presence", pad_pres[pt->presence]),inspect); + fputs (xmlprint(10, "details", pt->static_caps.string),inspect); + fputs (" \\n", inspect); + } + g_list_free (pads); + fputs (" \\n \\n", inspect); + } + } + features = g_list_next (features); + } + + if (reinspect) { + fputs (" \\n", inspect); + fclose (inspect); + } + } + + g_string_free (xmlstr, TRUE); + + g_message ("number of element factories: %d", g_list_length (factories)); + + /* allocate the object_types array to hold them */ + object_types = g_new0 (GType, g_list_length (factories)+$ntypes+1); + + l = factories; + i = 0; + + /* fill it */ + while (l) { + factory = GST_ELEMENT_FACTORY (l->data); + type = gst_element_factory_get_element_type (factory); + if (type != 0) { + g_message ("adding type %p for factory %s", (void *) type, gst_element_factory_get_longname (factory)); + object_types[i++] = type; + } else { + g_message ("type info for factory %s not found", + gst_element_factory_get_longname (factory)); + } + l = g_list_next (l); + } + +EOT + +# get_type functions: +for (@types) { +print OUTPUT < uppercase with '_' + * GFileMonitor -> file_monitor + * GIOExtensionPoint -> extension_point + * GtkTreeView -> tree_view + * if 2nd char is upper case too + * search for first lower case and go back one char + * else + * search for next upper case + */ + if (!strncmp (object_name, "Gtk", 3)) + object_arg = object_name + 3; + else if (!strncmp (object_name, "Gnome", 5)) + object_arg = object_name + 5; + else + object_arg = object_name; + + object_arg_lower = g_ascii_strdown (object_arg, -1); + sprintf (pos, "*%s\\n", object_arg_lower); + pos += strlen (pos); + if (!strncmp (object_arg_lower, "widget", 6)) + widget_num = 2; + g_free(object_arg_lower); + + /* Convert signal name to use underscores rather than dashes '-'. */ + strncpy (signal_name, query_info.signal_name, 127); + signal_name[127] = '\\0'; + for (i = 0; signal_name[i]; i++) + { + if (signal_name[i] == '-') + signal_name[i] = '_'; + } + + /* Output the signal parameters. */ + for (param = 0; param < query_info.n_params; param++) + { + type_name = get_type_name (query_info.param_types[param] & ~G_SIGNAL_TYPE_STATIC_SCOPE, &is_pointer); + + /* Most arguments to the callback are called "arg1", "arg2", etc. + GtkWidgets are called "widget", "widget2", ... + GtkCallbacks are called "callback", "callback2", ... */ + if (!strcmp (type_name, "GtkWidget")) + { + arg_name = "widget"; + arg_num = &widget_num; + } + else if (!strcmp (type_name, "GtkCallback") + || !strcmp (type_name, "GtkCCallback")) + { + arg_name = "callback"; + arg_num = &callback_num; + } + else + { + arg_name = "arg"; + arg_num = ¶m_num; + } + sprintf (pos, "%s ", type_name); + pos += strlen (pos); + + if (!arg_num || *arg_num == 0) + sprintf (pos, "%s%s\\n", is_pointer ? "*" : " ", arg_name); + else + sprintf (pos, "%s%s%i\\n", is_pointer ? "*" : " ", arg_name, + *arg_num); + pos += strlen (pos); + + if (arg_num) + { + if (*arg_num == 0) + *arg_num = 2; + else + *arg_num += 1; + } + } + + pos = flags; + /* We use one-character flags for simplicity. */ + if (query_info.signal_flags & G_SIGNAL_RUN_FIRST) + *pos++ = 'f'; + if (query_info.signal_flags & G_SIGNAL_RUN_LAST) + *pos++ = 'l'; + if (query_info.signal_flags & G_SIGNAL_RUN_CLEANUP) + *pos++ = 'c'; + if (query_info.signal_flags & G_SIGNAL_NO_RECURSE) + *pos++ = 'r'; + if (query_info.signal_flags & G_SIGNAL_DETAILED) + *pos++ = 'd'; + if (query_info.signal_flags & G_SIGNAL_ACTION) + *pos++ = 'a'; + if (query_info.signal_flags & G_SIGNAL_NO_HOOKS) + *pos++ = 'h'; + *pos = 0; + + /* Output the return type and function name. */ + ret_type = get_type_name (query_info.return_type & ~G_SIGNAL_TYPE_STATIC_SCOPE, &is_pointer); + + fprintf (fp, + "\\n%s::%s\\n%s%s\\n%s\\n%s\\n\\n", + object_name, query_info.signal_name, ret_type, is_pointer ? "*" : "", flags, buffer); +} + + +/* Returns the type name to use for a signal argument or return value, given + the GtkType from the signal info. It also sets is_pointer to TRUE if the + argument needs a '*' since it is a pointer. */ +static const gchar * +get_type_name (GType type, gboolean * is_pointer) +{ + const gchar *type_name; + + *is_pointer = FALSE; + type_name = g_type_name (type); + + switch (type) { + case G_TYPE_NONE: + case G_TYPE_CHAR: + case G_TYPE_UCHAR: + case G_TYPE_BOOLEAN: + case G_TYPE_INT: + case G_TYPE_UINT: + case G_TYPE_LONG: + case G_TYPE_ULONG: + case G_TYPE_FLOAT: + case G_TYPE_DOUBLE: + case G_TYPE_POINTER: + /* These all have normal C type names so they are OK. */ + return type_name; + + case G_TYPE_STRING: + /* A GtkString is really a gchar*. */ + *is_pointer = TRUE; + return "gchar"; + + case G_TYPE_ENUM: + case G_TYPE_FLAGS: + /* We use a gint for both of these. Hopefully a subtype with a decent + name will be registered and used instead, as GTK+ does itself. */ + return "gint"; + + case G_TYPE_BOXED: + /* The boxed type shouldn't be used itself, only subtypes. Though we + return 'gpointer' just in case. */ + return "gpointer"; + + case G_TYPE_PARAM: + /* A GParam is really a GParamSpec*. */ + *is_pointer = TRUE; + return "GParamSpec"; + +#if GLIB_CHECK_VERSION (2, 25, 9) + case G_TYPE_VARIANT: + *is_pointer = TRUE; + return "GVariant"; +#endif + +default: + break; + } + + /* For all GObject subclasses we can use the class name with a "*", + e.g. 'GtkWidget *'. */ + if (g_type_is_a (type, G_TYPE_OBJECT)) + *is_pointer = TRUE; + + /* Also catch non GObject root types */ + if (G_TYPE_IS_CLASSED (type)) + *is_pointer = TRUE; + + /* All boxed subtypes will be pointers as well. */ + /* Exception: GStrv */ + if (g_type_is_a (type, G_TYPE_BOXED) && + !g_type_is_a (type, G_TYPE_STRV)) + *is_pointer = TRUE; + + /* All pointer subtypes will be pointers as well. */ + if (g_type_is_a (type, G_TYPE_POINTER)) + *is_pointer = TRUE; + + /* But enums are not */ + if (g_type_is_a (type, G_TYPE_ENUM) || + g_type_is_a (type, G_TYPE_FLAGS)) + *is_pointer = FALSE; + + return type_name; +} + + +/* This outputs the hierarchy of all objects which have been initialized, + i.e. by calling their XXX_get_type() initialization function. */ +static void +output_object_hierarchy (void) +{ + FILE *fp; + gint i,j; + GType root, type; + GType root_types[$ntypes] = { G_TYPE_INVALID, }; + + fp = fopen (hierarchy_filename, "w"); + if (fp == NULL) + { + g_warning ("Couldn't open output file: %s : %s", hierarchy_filename, g_strerror(errno)); + return; + } + output_hierarchy (fp, G_TYPE_OBJECT, 0); + output_hierarchy (fp, G_TYPE_INTERFACE, 0); + + for (i=0; object_types[i]; i++) { + root = object_types[i]; + while ((type = g_type_parent (root))) { + root = type; + } + if ((root != G_TYPE_OBJECT) && (root != G_TYPE_INTERFACE)) { + for (j=0; root_types[j]; j++) { + if (root == root_types[j]) { + root = G_TYPE_INVALID; break; + } + } + if(root) { + root_types[j] = root; + output_hierarchy (fp, root, 0); + } + } + } + + fclose (fp); +} + +/* This is called recursively to output the hierarchy of a object. */ +static void +output_hierarchy (FILE *fp, + GType type, + guint level) +{ + guint i; + GType *children; + guint n_children; + + if (!type) + return; + + for (i = 0; i < level; i++) + fprintf (fp, " "); + fprintf (fp, "%s\\n", g_type_name (type)); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_hierarchy (fp, children[i], level + 1); + + g_free (children); +} + +static void output_object_interfaces (void) +{ + guint i; + FILE *fp; + + fp = fopen (interfaces_filename, "w"); + if (fp == NULL) + { + g_warning ("Couldn't open output file: %s : %s", interfaces_filename, g_strerror(errno)); + return; + } + output_interfaces (fp, G_TYPE_OBJECT); + + for (i = 0; object_types[i]; i++) + { + if (!g_type_parent (object_types[i]) && + (object_types[i] != G_TYPE_OBJECT) && + G_TYPE_IS_INSTANTIATABLE (object_types[i])) + { + output_interfaces (fp, object_types[i]); + } + } + fclose (fp); +} + +static void +output_interfaces (FILE *fp, + GType type) +{ + guint i; + GType *children, *interfaces; + guint n_children, n_interfaces; + + if (!type) + return; + + interfaces = g_type_interfaces (type, &n_interfaces); + + if (n_interfaces > 0) + { + fprintf (fp, "%s", g_type_name (type)); + for (i=0; i < n_interfaces; i++) + fprintf (fp, " %s", g_type_name (interfaces[i])); + fprintf (fp, "\\n"); + } + g_free (interfaces); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_interfaces (fp, children[i]); + + g_free (children); +} + +static void output_interface_prerequisites (void) +{ + FILE *fp; + + fp = fopen (prerequisites_filename, "w"); + if (fp == NULL) + { + g_warning ("Couldn't open output file: %s : %s", prerequisites_filename, g_strerror(errno)); + return; + } + output_prerequisites (fp, G_TYPE_INTERFACE); + fclose (fp); +} + +static void +output_prerequisites (FILE *fp, + GType type) +{ +#if GLIB_CHECK_VERSION(2,1,0) + guint i; + GType *children, *prerequisites; + guint n_children, n_prerequisites; + + if (!type) + return; + + prerequisites = g_type_interface_prerequisites (type, &n_prerequisites); + + if (n_prerequisites > 0) + { + fprintf (fp, "%s", g_type_name (type)); + for (i=0; i < n_prerequisites; i++) + fprintf (fp, " %s", g_type_name (prerequisites[i])); + fprintf (fp, "\\n"); + } + g_free (prerequisites); + + children = g_type_children (type, &n_children); + + for (i=0; i < n_children; i++) + output_prerequisites (fp, children[i]); + + g_free (children); +#endif +} + +static void +output_args (void) +{ + FILE *fp; + gint i; + + fp = fopen (args_filename, "w"); + if (fp == NULL) + { + g_warning ("Couldn't open output file: %s : %s", args_filename, g_strerror(errno)); + return; + } + + for (i = 0; object_types[i]; i++) { + output_object_args (fp, object_types[i]); + } + + fclose (fp); +} + +static gint +compare_param_specs (const void *a, const void *b) +{ + GParamSpec *spec_a = *(GParamSpec **)a; + GParamSpec *spec_b = *(GParamSpec **)b; + + return strcmp (g_param_spec_get_name (spec_a), g_param_spec_get_name (spec_b)); +} + +/* Its common to have unsigned properties restricted + * to the signed range. Therefore we make this look + * a bit nicer by spelling out the max constants. + */ + +/* Don't use "==" with floats, it might trigger a gcc warning. */ +#define GTKDOC_COMPARE_FLOAT(x, y) (x <= y && x >= y) + +static gchar* +describe_double_constant (gdouble value) +{ + gchar *desc; + + if (GTKDOC_COMPARE_FLOAT (value, G_MAXDOUBLE)) + desc = g_strdup ("G_MAXDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MINDOUBLE)) + desc = g_strdup ("G_MINDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, -G_MAXDOUBLE)) + desc = g_strdup ("-G_MAXDOUBLE"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MAXFLOAT)) + desc = g_strdup ("G_MAXFLOAT"); + else if (GTKDOC_COMPARE_FLOAT (value, G_MINFLOAT)) + desc = g_strdup ("G_MINFLOAT"); + else if (GTKDOC_COMPARE_FLOAT (value, -G_MAXFLOAT)) + desc = g_strdup ("-G_MAXFLOAT"); + else{ + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", value); + } + + return desc; +} + +static gchar* +describe_signed_constant (gsize size, gint64 value) +{ + gchar *desc = NULL; + + switch (size) { + case 8: + if (value == G_MAXINT64) + desc = g_strdup ("G_MAXINT64"); + else if (value == G_MININT64) + desc = g_strdup ("G_MININT64"); + /* fall through */ + case 4: + if (sizeof (int) == 4) { + if (value == G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MININT) + desc = g_strdup ("G_MININT"); + else if (value == (gint64)G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + if (value == G_MAXLONG) + desc = g_strdup ("G_MAXLONG"); + else if (value == G_MINLONG) + desc = g_strdup ("G_MINLONG"); + else if (value == (gint64)G_MAXULONG) + desc = g_strdup ("G_MAXULONG"); + /* fall through */ + case 2: + if (sizeof (int) == 2) { + if (value == G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MININT) + desc = g_strdup ("G_MININT"); + else if (value == (gint64)G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + break; + default: + break; + } + if (!desc) + desc = g_strdup_printf ("%" G_GINT64_FORMAT, value); + + return desc; +} + +static gchar* +describe_unsigned_constant (gsize size, guint64 value) +{ + gchar *desc = NULL; + + switch (size) { + case 8: + if (value == G_MAXINT64) + desc = g_strdup ("G_MAXINT64"); + else if (value == G_MAXUINT64) + desc = g_strdup ("G_MAXUINT64"); + /* fall through */ + case 4: + if (sizeof (int) == 4) { + if (value == (guint64)G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + if (value == (guint64)G_MAXLONG) + desc = g_strdup ("G_MAXLONG"); + else if (value == G_MAXULONG) + desc = g_strdup ("G_MAXULONG"); + /* fall through */ + case 2: + if (sizeof (int) == 2) { + if (value == (guint64)G_MAXINT) + desc = g_strdup ("G_MAXINT"); + else if (value == G_MAXUINT) + desc = g_strdup ("G_MAXUINT"); + } + break; + default: + break; + } + if (!desc) + desc = g_strdup_printf ("%" G_GUINT64_FORMAT, value); + + return desc; +} + +static gchar* +describe_type (GParamSpec *spec) +{ + gchar *desc; + gchar *lower; + gchar *upper; + + if (G_IS_PARAM_SPEC_CHAR (spec)) + { + GParamSpecChar *pspec = G_PARAM_SPEC_CHAR (spec); + + lower = describe_signed_constant (sizeof(gchar), pspec->minimum); + upper = describe_signed_constant (sizeof(gchar), pspec->maximum); + if (pspec->minimum == G_MININT8 && pspec->maximum == G_MAXINT8) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT8) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT8) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UCHAR (spec)) + { + GParamSpecUChar *pspec = G_PARAM_SPEC_UCHAR (spec); + + lower = describe_unsigned_constant (sizeof(guchar), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guchar), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT8) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT8) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_INT (spec)) + { + GParamSpecInt *pspec = G_PARAM_SPEC_INT (spec); + + lower = describe_signed_constant (sizeof(gint), pspec->minimum); + upper = describe_signed_constant (sizeof(gint), pspec->maximum); + if (pspec->minimum == G_MININT && pspec->maximum == G_MAXINT) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UINT (spec)) + { + GParamSpecUInt *pspec = G_PARAM_SPEC_UINT (spec); + + lower = describe_unsigned_constant (sizeof(guint), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guint), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) + { + GParamSpecLong *pspec = G_PARAM_SPEC_LONG (spec); + + lower = describe_signed_constant (sizeof(glong), pspec->minimum); + upper = describe_signed_constant (sizeof(glong), pspec->maximum); + if (pspec->minimum == G_MINLONG && pspec->maximum == G_MAXLONG) + desc = g_strdup (""); + else if (pspec->minimum == G_MINLONG) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXLONG) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_ULONG (spec)) + { + GParamSpecULong *pspec = G_PARAM_SPEC_ULONG (spec); + + lower = describe_unsigned_constant (sizeof(gulong), pspec->minimum); + upper = describe_unsigned_constant (sizeof(gulong), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXULONG) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXULONG) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_INT64 (spec)) + { + GParamSpecInt64 *pspec = G_PARAM_SPEC_INT64 (spec); + + lower = describe_signed_constant (sizeof(gint64), pspec->minimum); + upper = describe_signed_constant (sizeof(gint64), pspec->maximum); + if (pspec->minimum == G_MININT64 && pspec->maximum == G_MAXINT64) + desc = g_strdup (""); + else if (pspec->minimum == G_MININT64) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXINT64) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_UINT64 (spec)) + { + GParamSpecUInt64 *pspec = G_PARAM_SPEC_UINT64 (spec); + + lower = describe_unsigned_constant (sizeof(guint64), pspec->minimum); + upper = describe_unsigned_constant (sizeof(guint64), pspec->maximum); + if (pspec->minimum == 0 && pspec->maximum == G_MAXUINT64) + desc = g_strdup (""); + else if (pspec->minimum == 0) + desc = g_strdup_printf ("<= %s", upper); + else if (pspec->maximum == G_MAXUINT64) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_FLOAT (spec)) + { + GParamSpecFloat *pspec = G_PARAM_SPEC_FLOAT (spec); + + lower = describe_double_constant (pspec->minimum); + upper = describe_double_constant (pspec->maximum); + if (GTKDOC_COMPARE_FLOAT (pspec->minimum, -G_MAXFLOAT)) + { + if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXFLOAT)) + desc = g_strdup (""); + else + desc = g_strdup_printf ("<= %s", upper); + } + else if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXFLOAT)) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } + else if (G_IS_PARAM_SPEC_DOUBLE (spec)) + { + GParamSpecDouble *pspec = G_PARAM_SPEC_DOUBLE (spec); + + lower = describe_double_constant (pspec->minimum); + upper = describe_double_constant (pspec->maximum); + if (GTKDOC_COMPARE_FLOAT (pspec->minimum, -G_MAXDOUBLE)) + { + if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXDOUBLE)) + desc = g_strdup (""); + else + desc = g_strdup_printf ("<= %s", upper); + } + else if (GTKDOC_COMPARE_FLOAT (pspec->maximum, G_MAXDOUBLE)) + desc = g_strdup_printf (">= %s", lower); + else + desc = g_strdup_printf ("[%s,%s]", lower, upper); + g_free (lower); + g_free (upper); + } +#if GLIB_CHECK_VERSION (2, 12, 0) + else if (G_IS_PARAM_SPEC_GTYPE (spec)) + { + GParamSpecGType *pspec = G_PARAM_SPEC_GTYPE (spec); + gboolean is_pointer; + + desc = g_strdup (get_type_name (pspec->is_a_type, &is_pointer)); + } +#endif +#if GLIB_CHECK_VERSION (2, 25, 9) + else if (G_IS_PARAM_SPEC_VARIANT (spec)) + { + GParamSpecVariant *pspec = G_PARAM_SPEC_VARIANT (spec); + gchar *variant_type; + + variant_type = g_variant_type_dup_string (pspec->type); + desc = g_strdup_printf ("GVariant<%s>", variant_type); + g_free (variant_type); + } +#endif + else + { + desc = g_strdup (""); + } + + return desc; +} + +static gchar* +describe_default (GParamSpec *spec) +{ + gchar *desc; + + if (G_IS_PARAM_SPEC_CHAR (spec)) + { + GParamSpecChar *pspec = G_PARAM_SPEC_CHAR (spec); + + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UCHAR (spec)) + { + GParamSpecUChar *pspec = G_PARAM_SPEC_UCHAR (spec); + + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_BOOLEAN (spec)) + { + GParamSpecBoolean *pspec = G_PARAM_SPEC_BOOLEAN (spec); + + desc = g_strdup_printf ("%s", pspec->default_value ? "TRUE" : "FALSE"); + } + else if (G_IS_PARAM_SPEC_INT (spec)) + { + GParamSpecInt *pspec = G_PARAM_SPEC_INT (spec); + + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UINT (spec)) + { + GParamSpecUInt *pspec = G_PARAM_SPEC_UINT (spec); + + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) + { + GParamSpecLong *pspec = G_PARAM_SPEC_LONG (spec); + + desc = g_strdup_printf ("%ld", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_LONG (spec)) + { + GParamSpecULong *pspec = G_PARAM_SPEC_ULONG (spec); + + desc = g_strdup_printf ("%lu", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_INT64 (spec)) + { + GParamSpecInt64 *pspec = G_PARAM_SPEC_INT64 (spec); + + desc = g_strdup_printf ("%" G_GINT64_FORMAT, pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UINT64 (spec)) + { + GParamSpecUInt64 *pspec = G_PARAM_SPEC_UINT64 (spec); + + desc = g_strdup_printf ("%" G_GUINT64_FORMAT, pspec->default_value); + } + else if (G_IS_PARAM_SPEC_UNICHAR (spec)) + { + GParamSpecUnichar *pspec = G_PARAM_SPEC_UNICHAR (spec); + + if (g_unichar_isprint (pspec->default_value)) + desc = g_strdup_printf ("'%c'", pspec->default_value); + else + desc = g_strdup_printf ("%u", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_ENUM (spec)) + { + GParamSpecEnum *pspec = G_PARAM_SPEC_ENUM (spec); + + GEnumValue *value = g_enum_get_value (pspec->enum_class, pspec->default_value); + if (value) + desc = g_strdup_printf ("%s", value->value_name); + else + desc = g_strdup_printf ("%d", pspec->default_value); + } + else if (G_IS_PARAM_SPEC_FLAGS (spec)) + { + GParamSpecFlags *pspec = G_PARAM_SPEC_FLAGS (spec); + guint default_value; + GString *acc; + + default_value = pspec->default_value; + acc = g_string_new (""); + + while (default_value) + { + GFlagsValue *value = g_flags_get_first_value (pspec->flags_class, default_value); + + if (!value) + break; + + if (acc->len > 0) + g_string_append (acc, "|"); + g_string_append (acc, value->value_name); + + default_value &= ~value->value; + } + + if (default_value == 0) + desc = g_string_free (acc, FALSE); + else + { + desc = g_strdup_printf ("%d", pspec->default_value); + g_string_free (acc, TRUE); + } + } + else if (G_IS_PARAM_SPEC_FLOAT (spec)) + { + GParamSpecFloat *pspec = G_PARAM_SPEC_FLOAT (spec); + + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", + pspec->default_value); + } + else if (G_IS_PARAM_SPEC_DOUBLE (spec)) + { + GParamSpecDouble *pspec = G_PARAM_SPEC_DOUBLE (spec); + + /* make sure floats are output with a decimal dot irrespective of + * current locale. Use formatd since we want human-readable numbers + * and do not need the exact same bit representation when deserialising */ + desc = g_malloc0 (G_ASCII_DTOSTR_BUF_SIZE); + g_ascii_formatd (desc, G_ASCII_DTOSTR_BUF_SIZE, "%g", + pspec->default_value); + } + else if (G_IS_PARAM_SPEC_STRING (spec)) + { + GParamSpecString *pspec = G_PARAM_SPEC_STRING (spec); + + if (pspec->default_value) + { + gchar *esc = g_strescape (pspec->default_value, NULL); + + desc = g_strdup_printf ("\\"%s\\"", esc); + + g_free (esc); + } + else + desc = g_strdup_printf ("NULL"); + } + else + { + desc = g_strdup (""); + } + + return desc; +} + + +static void +output_object_args (FILE *fp, GType object_type) +{ + gpointer class; + const gchar *object_class_name; + guint arg; + gchar flags[16], *pos; + GParamSpec **properties; + guint n_properties; + gboolean child_prop; + gboolean style_prop; + gboolean is_pointer; + const gchar *type_name; + gchar *type_desc; + gchar *default_value; + + if (G_TYPE_IS_OBJECT (object_type)) + { + class = g_type_class_peek (object_type); + if (!class) + return; + + properties = g_object_class_list_properties (class, &n_properties); + } +#if GLIB_MAJOR_VERSION > 2 || (GLIB_MAJOR_VERSION == 2 && GLIB_MINOR_VERSION >= 3) + else if (G_TYPE_IS_INTERFACE (object_type)) + { + class = g_type_default_interface_ref (object_type); + + if (!class) + return; + + properties = g_object_interface_list_properties (class, &n_properties); + } +#endif + else + return; + + object_class_name = g_type_name (object_type); + + child_prop = FALSE; + style_prop = FALSE; + + while (TRUE) { + qsort (properties, n_properties, sizeof (GParamSpec *), compare_param_specs); + for (arg = 0; arg < n_properties; arg++) + { + GParamSpec *spec = properties[arg]; + const gchar *nick, *blurb, *dot; + + if (spec->owner_type != object_type) + continue; + + pos = flags; + /* We use one-character flags for simplicity. */ + if (child_prop && !style_prop) + *pos++ = 'c'; + if (style_prop) + *pos++ = 's'; + if (spec->flags & G_PARAM_READABLE) + *pos++ = 'r'; + if (spec->flags & G_PARAM_WRITABLE) + *pos++ = 'w'; + if (spec->flags & G_PARAM_CONSTRUCT) + *pos++ = 'x'; + if (spec->flags & G_PARAM_CONSTRUCT_ONLY) + *pos++ = 'X'; + *pos = 0; + + nick = g_param_spec_get_nick (spec); + blurb = g_param_spec_get_blurb (spec); + + dot = ""; + if (blurb) { + int str_len = strlen (blurb); + if (str_len > 0 && blurb[str_len - 1] != '.') + dot = "."; + } + + type_desc = describe_type (spec); + default_value = describe_default (spec); + type_name = get_type_name (spec->value_type, &is_pointer); + fprintf (fp, "\\n%s::%s\\n%s%s\\n%s\\n%s\\n%s\\n%s%s\\n%s\\n\\n\\n", + object_class_name, g_param_spec_get_name (spec), type_name, is_pointer ? "*" : "", type_desc, flags, nick ? nick : "(null)", blurb ? blurb : "(null)", dot, default_value); + g_free (type_desc); + g_free (default_value); + } + + g_free (properties); + +#ifdef GTK_IS_CONTAINER_CLASS + if (!child_prop && GTK_IS_CONTAINER_CLASS (class)) { + properties = gtk_container_class_list_child_properties (class, &n_properties); + child_prop = TRUE; + continue; + } +#endif + +#ifdef GTK_IS_CELL_AREA_CLASS + if (!child_prop && GTK_IS_CELL_AREA_CLASS (class)) { + properties = gtk_cell_area_class_list_cell_properties (class, &n_properties); + child_prop = TRUE; + continue; + } +#endif + +#ifdef GTK_IS_WIDGET_CLASS +#if GTK_CHECK_VERSION(2,1,0) + if (!style_prop && GTK_IS_WIDGET_CLASS (class)) { + properties = gtk_widget_class_list_style_properties (GTK_WIDGET_CLASS (class), &n_properties); + style_prop = TRUE; + continue; + } +#endif +#endif + + break; + } +} +EOT + +close OUTPUT; + +# Compile and run our file + +$CC = $ENV{CC} ? $ENV{CC} : "gcc"; +$LD = $ENV{LD} ? $ENV{LD} : $CC; +$CFLAGS = $ENV{CFLAGS} ? "$ENV{CFLAGS}" : ""; +$LDFLAGS = $ENV{LDFLAGS} ? $ENV{LDFLAGS} : ""; + +my $o_file; +if ($CC =~ /libtool/) { + $o_file = "$MODULE-scan.lo" +} else { + $o_file = "$MODULE-scan.o" +} + +print "gtk-doc: Compiling scanner\n"; +$command = "$CC $CFLAGS -c -o $o_file $MODULE-scan.c"; +system($command) == 0 or die "Compilation of scanner failed: $!\n"; + +print "gtk-doc: Linking scanner\n"; +$command = "$LD -o $MODULE-scan $o_file $LDFLAGS"; +system($command) == 0 or die "Linking of scanner failed: $!\n"; + +print "gtk-doc: Running scanner $MODULE-scan\n"; +system("sh -c ./$MODULE-scan") == 0 or die "Scan failed: $!\n"; + +if (!defined($ENV{"GTK_DOC_KEEP_INTERMEDIATE"})) { + unlink "./$MODULE-scan.c", "./$MODULE-scan.o", "./$MODULE-scan.lo", "./$MODULE-scan"; +} + +&UpdateFileIfChanged ($old_hierarchy_filename, $new_hierarchy_filename, 0); +&UpdateFileIfChanged ($old_interfaces_filename, $new_interfaces_filename, 0); +&UpdateFileIfChanged ($old_prerequisites_filename, $new_prerequisites_filename, 0); +# we will merge these in scangobj-merge.py +#&UpdateFileIfChanged ($old_signals_filename, $new_signals_filename, 0); +#&UpdateFileIfChanged ($old_args_filename, $new_args_filename, 0); + diff --git a/common/gtk-doc-plugins.mak b/common/gtk-doc-plugins.mak new file mode 100644 index 0000000..ca6a351 --- /dev/null +++ b/common/gtk-doc-plugins.mak @@ -0,0 +1,379 @@ +# This is an include file specifically tuned for building documentation +# for GStreamer plug-ins + +help: + @echo + @echo "If you are a doc maintainer, run 'make update' to update" + @echo "the documentation files maintained in git" + @echo + @echo Other useful make targets: + @echo + @echo check-inspected-versions: make sure the inspected plugin info + @echo is up to date before a release + @echo + +# update the stuff maintained by doc maintainers +update: + $(MAKE) scanobj-update + $(MAKE) check-outdated-docs + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# thomas: make docs parallel installable +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@ + +MAINTAINER_DOC_STAMPS = \ + scanobj-build.stamp + +EXTRA_DIST = \ + $(MAINTAINER_DOC_STAMPS) \ + $(srcdir)/inspect/*.xml \ + $(SCANOBJ_FILES) \ + $(content_files) \ + $(extra_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_OVERRIDES) \ + $(DOC_MODULE)-sections.txt + +# we don't add scanobj-build.stamp here since they are built manually by docs +# maintainers and result is commited to git +DOC_STAMPS = \ + scan-build.stamp \ + tmpl-build.stamp \ + sgml-build.stamp \ + html-build.stamp \ + scan.stamp \ + tmpl.stamp \ + sgml.stamp \ + html.stamp + +# files generated/updated by gtkdoc-scangobj +SCANOBJ_FILES = \ + $(DOC_MODULE).signals \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).types \ + $(DOC_MODULE).args + +SCANOBJ_FILES_O = \ + .libs/$(DOC_MODULE)-scan.o + +# files generated/updated by gtkdoc-scan +SCAN_FILES = \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE)-decl.txt \ + $(DOC_MODULE)-decl-list.txt + + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck +# no idea why FC4 can do without +CLEANFILES = \ + $(SCANOBJ_FILES_O) \ + $(DOC_MODULE)-scan.c \ + $(REPORT_FILES) \ + $(DOC_STAMPS) \ + inspect-registry.xml + +INSPECT_DIR = inspect + +if ENABLE_GTK_DOC +all-local: html-build.stamp + +### inspect GStreamer plug-ins; done by documentation maintainer ### + +# only look at the plugins in this module when building inspect .xml stuff +INSPECT_REGISTRY=$(top_builddir)/docs/plugins/inspect-registry.xml +INSPECT_ENVIRONMENT=\ + LC_ALL=C \ + GST_PLUGIN_SYSTEM_PATH= \ + GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ + GST_REGISTRY=$(INSPECT_REGISTRY) \ + PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ + $(INSPECT_EXTRA_ENVIRONMENT) + +# update the element and plugin XML descriptions; store in inspect/ +inspect: + @-mkdir -p $(INSPECT_DIR) + +#### scan gobjects; done by documentation maintainer #### +scanobj-update: + -rm scanobj-build.stamp + $(MAKE) scanobj-build.stamp + +# TODO: finish elite script that updates the output files of this step +# instead of rewriting them, so that multiple maintainers can generate +# a collective set of args and signals +scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect + @echo '*** Scanning GObjects ***' + @if test x"$(srcdir)" != x. ; then \ + for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ + do \ + if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ + done; \ + fi; \ + $(INSPECT_ENVIRONMENT) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ + CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)" \ + LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)" \ + --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ + $(PYTHON) \ + $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ + if test x"$(srcdir)" != x. ; then \ + for f in $(SCANOBJ_FILES); \ + do \ + cmp -s ./$$f $(srcdir)/$$f || cp ./$$f $(srcdir)/ ; \ + done; \ + fi; \ + touch scanobj-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp + @true + +### scan headers; done on every build ### +scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp + @echo '*** Scanning header files ***' + gtkdoc-scan \ + $(SCAN_OPTIONS) $(EXTRA_HFILES) \ + --module=$(DOC_MODULE) \ + --source-dir=$(DOC_SOURCE_DIR) \ + --ignore-headers="$(IGNORE_HFILES)"; \ + touch scan-build.stamp + +#### update templates; done on every build #### + +### FIXME: make this error out again when docs are fixed for 0.X +# in a non-srcdir build, we need to copy files from the previous step +# and the files from previous runs of this step +tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) + @echo '*** Rebuilding template files ***' + @if test x"$(srcdir)" != x. ; then \ + for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ + do \ + if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ + done; \ + fi + gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log + $(PYTHON) \ + $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl + @rm -f tmpl-build.log + touch tmpl-build.stamp + +tmpl.stamp: tmpl-build.stamp + @true + +#### build xml; done on every build #### + +### FIXME: make this error out again when docs are fixed for 0.9 +sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files) + @echo '*** Building XML ***' + @-mkdir -p xml + @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \ + xsltproc --stringparam module $(MODULE) \ + $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done + @for f in $(EXAMPLE_CFILES); do \ + $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done + gtkdoc-mkdb \ + --module=$(DOC_MODULE) \ + --source-dir=$(DOC_SOURCE_DIR) \ + --expand-content-files="$(expand_content_files)" \ + --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \ + --output-format=xml \ + --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \ + $(MKDB_OPTIONS) \ + | tee sgml-build.log + @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi + cp ../version.entities xml + rm sgml-build.log + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### build html; done on every step #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo '*** Building HTML ***' + if test -d html; then rm -rf html; fi + mkdir html + cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html + @for f in $(content_files); do cp $(srcdir)/$$f html; done + cp -pr xml html + cp ../version.entities html + cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) + mv html/index.sgml html/index.sgml.bak + $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml + rm -f html/index.sgml.bak + rm -f html/$(DOC_MAIN_SGML_FILE) + rm -rf html/xml + rm -f html/version.entities + test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ + if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done + @echo '-- Fixing Crossreferences' + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +clean-local-gtkdoc: + rm -rf xml tmpl html +# clean files copied for nonsrcdir templates build + if test x"$(srcdir)" != x. ; then \ + rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \ + $(MAINTAINER_DOC_STAMPS); \ + fi +else +all-local: +clean-local-gtkdoc: +endif + +clean-local: clean-local-gtkdoc + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + rm -f $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + rm -rf tmpl/*.sgml.bak + rm -f $(DOC_MODULE).hierarchy + rm -f *.stamp || true + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(DOC_MODULE)-docs.sgml ; \ + rm -f $(DOC_MODULE).types ; \ + rm -f $(DOC_MODULE).interfaces ; \ + rm -f $(DOC_MODULE)-overrides.txt ; \ + rm -f $(DOC_MODULE).prerequisites ; \ + rm -f $(DOC_MODULE)-sections.txt ; \ + rm -rf tmpl/*.sgml ; \ + rm -rf $(INSPECT_DIR); \ + fi + rm -rf *.o + +MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS) + +# thomas: make docs parallel installable; devhelp requires majorminor too +install-data-local: + (installfiles=`echo $(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css`; \ + if test "$$installfiles" = '$(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + pngfiles=`echo ./html/*.png`; \ + if test "$$pngfiles" != './html/*.png'; then \ + for i in $$pngfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + fi; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ + fi; \ + (which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ + fi) +uninstall-local: + if test -d $(DESTDIR)$(TARGET_DIR); then \ + rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ + rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ + else \ + echo '-- Nothing to uninstall' ; \ + fi; + +# +# Checks +# +if ENABLE_GTK_DOC +check-hierarchy: $(DOC_MODULE).hierarchy + @if grep ' ' $(DOC_MODULE).hierarchy; then \ + echo "$(DOC_MODULE).hierarchy contains tabs, please fix"; \ + /bin/false; \ + fi + +check: check-hierarchy +endif + +# wildcard is apparently not portable to other makes, hence the use of find +inspect_files = $(shell find $(srcdir)/$(INSPECT_DIR) -name '*.xml') + +check-inspected-versions: + @echo Checking plugin versions of inspected plugin data ...; \ + fail=0 ; \ + for each in $(inspect_files) ; do \ + if (grep -H '' $$each | grep -v '$(VERSION)'); then \ + echo $$each should be fixed to say version $(VERSION) or be removed ; \ + echo "sed -i -e 's//$(VERSION)<\/version>/'" $$each; \ + echo ; \ + fail=1; \ + fi ; \ + done ; \ + exit $$fail + +check-outdated-docs: + $(AM_V_GEN)echo Checking for outdated plugin inspect data ...; \ + fail=0 ; \ + if [ -d $(top_srcdir)/.git/ ]; then \ + files=`find $(srcdir)/inspect/ -name '*xml'`; \ + for f in $$files; do \ + ver=`grep '$(PACKAGE_VERSION)' $$f`; \ + if test "x$$ver" = "x"; then \ + plugin=`echo $$f | sed -e 's/^.*plugin-//' -e 's/.xml//'`; \ + # echo "Checking $$plugin $$f"; \ + pushd "$(top_srcdir)" >/dev/null; \ + pinit=`git grep -A3 GST_PLUGIN_DEFINE -- ext/ gst/ sys/ | grep "\"$$plugin\""`; \ + popd >/dev/null; \ + # echo "[$$pinit]"; \ + if test "x$$pinit" = "x"; then \ + printf " **** outdated docs for plugin %-15s: %s\n" $$plugin $$f; \ + fail=1; \ + fi; \ + fi; \ + done; \ + fi ; \ + exit $$fail + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +# FIXME: decide whether we want to dist generated html or not +# also this only works, if the project has been build before +# we could dist html only if its there, but that might lead to missing html in +# tarballs +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/html + cp html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs check-outdated-docs inspect + +# avoid spurious build errors when distchecking with -jN +.NOTPARALLEL: diff --git a/common/gtk-doc.mak b/common/gtk-doc.mak new file mode 100644 index 0000000..91edeee --- /dev/null +++ b/common/gtk-doc.mak @@ -0,0 +1,234 @@ +########################################################################### +# Everything below here is generic and you shouldn't need to change it. +########################################################################### +# thomas: except of course that we did + +# thomas: copied from glib-2 +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# thomas: make docs parallel installable +TARGET_DIR=$(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@ + +EXTRA_DIST = \ + $(content_files) \ + $(extra_files) \ + $(HTML_IMAGES) \ + $(DOC_MAIN_SGML_FILE) \ + $(DOC_MODULE).types \ + $(DOC_OVERRIDES) \ + $(DOC_MODULE)-sections.txt + +DOC_STAMPS = \ + setup-build.stamp \ + scan-build.stamp \ + sgml-build.stamp \ + html-build.stamp \ + setup.stamp \ + sgml.stamp \ + html.stamp + +SCANOBJ_FILES = \ + $(DOC_MODULE).args \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).signals \ + .libs/$(DOC_MODULE)-scan.o + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + +CLEANFILES = $(SCANOBJ_FILES) $(REPORT_FILES) $(DOC_STAMPS) doc-registry.xml + +if ENABLE_GTK_DOC +all-local: html-build.stamp + +#### setup #### + +setup.stamp: $(content_files) + -@if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + cp -p $(abs_srcdir)/$(DOC_MAIN_SGML_FILE) \ + $(abs_srcdir)/$(DOC_MODULE)-overrides.txt \ + $(abs_srcdir)/$(DOC_MODULE)-sections.txt \ + $(abs_srcdir)/$(DOC_MODULE).types \ + $(abs_builddir)/; \ + if test "x$(content_files)" != "x" ; then \ + for file in $(content_files) ; do \ + test -f $(abs_srcdir)/$$file || \ + cp -p $(abs_srcdir)/$$file $(abs_builddir)/; \ + done \ + fi \ + fi + touch setup.stamp + +#### scan #### + +# in the case of non-srcdir builds, the built gst directory gets added +# to gtk-doc scanning; but only then, to avoid duplicates +scan-build.stamp: $(HFILE_GLOB) $(CFILE_GLOB) + @echo '*** Scanning header files ***' + if grep -l '^..*$$' $(DOC_MODULE).types > /dev/null; \ + then \ + GST_PLUGIN_SYSTEM_PATH=`cd $(top_builddir) && pwd` \ + GST_PLUGIN_PATH= \ + GST_REGISTRY=doc-registry.xml \ + $(GTKDOC_EXTRA_ENVIRONMENT) \ + CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ + CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS)" \ + LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ + gtkdoc-scangobj --type-init-func="gst_init(NULL,NULL)" \ + --module=$(DOC_MODULE) ; \ + else \ + for i in $(SCANOBJ_FILES) ; do \ + test -f $$i || touch $$i ; \ + done \ + fi + if test "x$(top_srcdir)" != "x$(top_builddir)"; \ + then \ + export BUILT_OPTIONS="--source-dir=$(DOC_BUILD_DIR)"; \ + fi; \ + gtkdoc-scan \ + $(SCAN_OPTIONS) $(EXTRA_HFILES) \ + --module=$(DOC_MODULE) \ + --source-dir=$(DOC_SOURCE_DIR) \ + $$BUILT_OPTIONS \ + --ignore-headers="$(IGNORE_HFILES)" + touch scan-build.stamp + +$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_MODULE)-overrides.txt: scan-build.stamp + @true + +#### xml #### + +### FIXME: make this error out again when docs are complete +sgml-build.stamp: setup.stamp $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(expand_content_files) + @echo '*** Building XML ***' + gtkdoc-mkdb --module=$(DOC_MODULE) --source-dir=$(DOC_SOURCE_DIR) --expand-content-files="$(expand_content_files)" --main-sgml-file=$(DOC_MAIN_SGML_FILE) --output-format=xml $(MKDB_OPTIONS) | tee sgml-build.log + @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi + cp ../version.entities xml + rm sgml-build.log + touch sgml-build.stamp + +sgml.stamp: sgml-build.stamp + @true + +#### html #### + +html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) + @echo '*** Building HTML ***' + @rm -rf html + @mkdir html + cp -pr xml html + cp ../version.entities ./ + @mkhtml_options=""; \ + gtkdoc-mkhtml 2>&1 --help | grep >/dev/null "\-\-path"; \ + if test "$(?)" = "0"; then \ + mkhtml_options=--path="$(abs_srcdir)"; \ + fi; \ + cd html && gtkdoc-mkhtml $$mkhtml_options $(MKHTML_OPTIONS) $(DOC_MODULE) ../$(DOC_MAIN_SGML_FILE) + mv html/index.sgml html/index.sgml.bak + $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml + rm -f html/index.sgml.bak + rm -rf html/xml + rm -f version.entities + test "x$(HTML_IMAGES)" = "x" || ( cd $(srcdir) && cp $(HTML_IMAGES) $(abs_builddir)/html ) + @echo '-- Fixing Crossreferences' + gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) + touch html-build.stamp + +clean-local-gtkdoc: + rm -rf xml tmpl html +# clean files copied for nonsrcdir templates build + if test x"$(srcdir)" != x. ; then \ + rm -rf $(DOC_MODULE).types; \ + fi +else +all-local: +clean-local-gtkdoc: +endif + +clean-local: clean-local-gtkdoc + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + rm -f $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + rm -rf tmpl/*.sgml.bak + rm -f $(DOC_MODULE).hierarchy + rm -f *.stamp || true + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(DOC_MODULE)-docs.sgml ; \ + rm -f $(DOC_MODULE).types ; \ + rm -f $(DOC_MODULE).interfaces ; \ + rm -f $(DOC_MODULE)-overrides.txt ; \ + rm -f $(DOC_MODULE).prerequisites ; \ + rm -f $(DOC_MODULE)-sections.txt ; \ + rm -rf tmpl/*.sgml ; \ + fi + rm -rf *.o + +maintainer-clean-local: clean + cd $(srcdir) && rm -rf html \ + xml $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + +# thomas: make docs parallel installable; devhelp requires majorminor too +install-data-local: + (installfiles=`echo $(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css`; \ + if test "$$installfiles" = '$(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ + fi; \ + (which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ + fi) +uninstall-local: + if test -d $(DESTDIR)$(TARGET_DIR); then \ + rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ + rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ + else \ + echo '-- Nothing to uninstall' ; \ + fi; + + +# +# Require gtk-doc when making dist +# +if ENABLE_GTK_DOC +dist-check-gtkdoc: +else +dist-check-gtkdoc: + @echo "*** gtk-doc must be installed and enabled in order to make dist" + @false +endif + +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/html + cp html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs + +# avoid spurious build errors when distchecking with -jN +.NOTPARALLEL: diff --git a/common/m4/Makefile.am b/common/m4/Makefile.am new file mode 100644 index 0000000..2ddb8a7 --- /dev/null +++ b/common/m4/Makefile.am @@ -0,0 +1,42 @@ +EXTRA_DIST = \ + README \ + as-ac-expand.m4 \ + as-auto-alt.m4 \ + as-compiler-flag.m4 \ + as-compiler.m4 \ + as-docbook.m4 \ + as-gcc-inline-assembly.m4 \ + as-libtool.m4 \ + as-libtool-tags.m4 \ + as-objc.m4 \ + as-python.m4 \ + as-scrub-include.m4 \ + as-version.m4 \ + ax_create_stdint_h.m4 \ + glib-gettext.m4 \ + gst-arch.m4 \ + gst-args.m4 \ + gst-check.m4 \ + gst-debuginfo.m4 \ + gst-default.m4 \ + gst-doc.m4 \ + gst-dowhile.m4 \ + gst-error.m4 \ + gst-feature.m4 \ + gst-function.m4 \ + gst-gettext.m4 \ + gst-glib2.m4 \ + gst-libxml2.m4 \ + gst-parser.m4 \ + gst-package-release-datetime.m4 \ + gst-platform.m4 \ + gst-plugindir.m4 \ + gst-plugin-docs.m4 \ + gst-valgrind.m4 \ + gst-x11.m4 \ + gst.m4 \ + gtk-doc.m4 \ + introspection.m4 \ + pkg.m4 \ + check.m4 \ + orc.m4 diff --git a/common/m4/Makefile.in b/common/m4/Makefile.in new file mode 100644 index 0000000..7786dda --- /dev/null +++ b/common/m4/Makefile.in @@ -0,0 +1,699 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = common/m4 +DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = \ + README \ + as-ac-expand.m4 \ + as-auto-alt.m4 \ + as-compiler-flag.m4 \ + as-compiler.m4 \ + as-docbook.m4 \ + as-gcc-inline-assembly.m4 \ + as-libtool.m4 \ + as-libtool-tags.m4 \ + as-objc.m4 \ + as-python.m4 \ + as-scrub-include.m4 \ + as-version.m4 \ + ax_create_stdint_h.m4 \ + glib-gettext.m4 \ + gst-arch.m4 \ + gst-args.m4 \ + gst-check.m4 \ + gst-debuginfo.m4 \ + gst-default.m4 \ + gst-doc.m4 \ + gst-dowhile.m4 \ + gst-error.m4 \ + gst-feature.m4 \ + gst-function.m4 \ + gst-gettext.m4 \ + gst-glib2.m4 \ + gst-libxml2.m4 \ + gst-parser.m4 \ + gst-package-release-datetime.m4 \ + gst-platform.m4 \ + gst-plugindir.m4 \ + gst-plugin-docs.m4 \ + gst-valgrind.m4 \ + gst-x11.m4 \ + gst.m4 \ + gtk-doc.m4 \ + introspection.m4 \ + pkg.m4 \ + check.m4 \ + orc.m4 + +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu common/m4/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu common/m4/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +tags: TAGS +TAGS: + +ctags: CTAGS +CTAGS: + + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + distclean distclean-generic distclean-libtool distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-man install-pdf \ + install-pdf-am install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/common/m4/README b/common/m4/README new file mode 100644 index 0000000..867a344 --- /dev/null +++ b/common/m4/README @@ -0,0 +1,3 @@ +All aclocal .m4 files we need are put here and cat'd to acinclude.m4 in +the source root. Official ones (taken from the relevant devel packages) +are named as-is, unofficial ones (or changed ones) get a gst-prefix. diff --git a/common/m4/as-ac-expand.m4 b/common/m4/as-ac-expand.m4 new file mode 100644 index 0000000..d6c9e33 --- /dev/null +++ b/common/m4/as-ac-expand.m4 @@ -0,0 +1,43 @@ +dnl as-ac-expand.m4 0.2.0 +dnl autostars m4 macro for expanding directories using configure's prefix +dnl thomas@apestaart.org + +dnl AS_AC_EXPAND(VAR, CONFIGURE_VAR) +dnl example +dnl AS_AC_EXPAND(SYSCONFDIR, $sysconfdir) +dnl will set SYSCONFDIR to /usr/local/etc if prefix=/usr/local + +AC_DEFUN([AS_AC_EXPAND], +[ + EXP_VAR=[$1] + FROM_VAR=[$2] + + dnl first expand prefix and exec_prefix if necessary + prefix_save=$prefix + exec_prefix_save=$exec_prefix + + dnl if no prefix given, then use /usr/local, the default prefix + if test "x$prefix" = "xNONE"; then + prefix="$ac_default_prefix" + fi + dnl if no exec_prefix given, then use prefix + if test "x$exec_prefix" = "xNONE"; then + exec_prefix=$prefix + fi + + full_var="$FROM_VAR" + dnl loop until it doesn't change anymore + while true; do + new_full_var="`eval echo $full_var`" + if test "x$new_full_var" = "x$full_var"; then break; fi + full_var=$new_full_var + done + + dnl clean up + full_var=$new_full_var + AC_SUBST([$1], "$full_var") + + dnl restore prefix and exec_prefix + prefix=$prefix_save + exec_prefix=$exec_prefix_save +]) diff --git a/common/m4/as-auto-alt.m4 b/common/m4/as-auto-alt.m4 new file mode 100644 index 0000000..3f7920d --- /dev/null +++ b/common/m4/as-auto-alt.m4 @@ -0,0 +1,50 @@ +dnl as-auto-alt.m4 0.0.2 +dnl autostars m4 macro for supplying alternate autotools versions to configure +dnl thomas@apestaart.org +dnl +dnl AS_AUTOTOOLS_ALTERNATE() +dnl +dnl supplies --with arguments for autoconf, autoheader, automake, aclocal + +AC_DEFUN([AS_AUTOTOOLS_ALTERNATE], +[ + dnl allow for different autoconf version + AC_ARG_WITH(autoconf, + AC_HELP_STRING([--with-autoconf], + [use a different autoconf for regeneration of Makefiles]), + [ + unset AUTOCONF + AM_MISSING_PROG(AUTOCONF, ${withval}) + AC_MSG_NOTICE([Using $AUTOCONF as autoconf]) + ]) + + dnl allow for different autoheader version + AC_ARG_WITH(autoheader, + AC_HELP_STRING([--with-autoheader], + [use a different autoheader for regeneration of Makefiles]), + [ + unset AUTOHEADER + AM_MISSING_PROG(AUTOHEADER, ${withval}) + AC_MSG_NOTICE([Using $AUTOHEADER as autoheader]) + ]) + + dnl allow for different automake version + AC_ARG_WITH(automake, + AC_HELP_STRING([--with-automake], + [use a different automake for regeneration of Makefiles]), + [ + unset AUTOMAKE + AM_MISSING_PROG(AUTOMAKE, ${withval}) + AC_MSG_NOTICE([Using $AUTOMAKE as automake]) + ]) + + dnl allow for different aclocal version + AC_ARG_WITH(aclocal, + AC_HELP_STRING([--with-aclocal], + [use a different aclocal for regeneration of Makefiles]), + [ + unset ACLOCAL + AM_MISSING_PROG(ACLOCAL, ${withval}) + AC_MSG_NOTICE([Using $ACLOCAL as aclocal]) + ]) +]) diff --git a/common/m4/as-compiler-flag.m4 b/common/m4/as-compiler-flag.m4 new file mode 100644 index 0000000..882a4c7 --- /dev/null +++ b/common/m4/as-compiler-flag.m4 @@ -0,0 +1,64 @@ +dnl as-compiler-flag.m4 0.1.0 + +dnl autostars m4 macro for detection of compiler flags + +dnl David Schleef +dnl Tim-Philipp Müller + +dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_COMPILER_FLAG], +[ + AC_MSG_CHECKING([to see if compiler understands $1]) + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $1" + + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + $2 + true + else + $3 + true + fi + AC_MSG_RESULT([$flag_ok]) +]) + +dnl AS_CXX_COMPILER_FLAG(CPPFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CPPFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_CXX_COMPILER_FLAG], +[ + AC_REQUIRE([AC_PROG_CXX]) + + AC_MSG_CHECKING([to see if c++ compiler understands $1]) + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $1" + + AC_LANG_PUSH(C++) + + AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no]) + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + $2 + true + else + $3 + true + fi + + AC_LANG_POP(C++) + + AC_MSG_RESULT([$flag_ok]) +]) + diff --git a/common/m4/as-compiler.m4 b/common/m4/as-compiler.m4 new file mode 100644 index 0000000..309a060 --- /dev/null +++ b/common/m4/as-compiler.m4 @@ -0,0 +1,44 @@ +dnl as-compiler.m4 0.1.0 + +dnl autostars m4 macro for detection of compiler flavor + +dnl Thomas Vander Stichele + +dnl $Id: as-compiler.m4,v 1.4 2004/06/01 09:44:19 thomasvs Exp $ + +dnl AS_COMPILER(COMPILER) +dnl will set variable COMPILER to +dnl - gcc +dnl - forte +dnl - (empty) if no guess could be made + +AC_DEFUN([AS_COMPILER], +[ + as_compiler= + AC_MSG_CHECKING(for compiler flavour) + + dnl is it gcc ? + if test "x$GCC" = "xyes"; then + as_compiler="gcc" + fi + + dnl is it forte ? + AC_TRY_RUN([ +int main +(int argc, char *argv[]) +{ +#ifdef __sun + return 0; +#else + return 1; +#endif +} + ], as_compiler="forte", ,) + + if test "x$as_compiler" = "x"; then + AC_MSG_RESULT([unknown !]) + else + AC_MSG_RESULT($as_compiler) + fi + [$1]=$as_compiler +]) diff --git a/common/m4/as-docbook.m4 b/common/m4/as-docbook.m4 new file mode 100644 index 0000000..8a1b32a --- /dev/null +++ b/common/m4/as-docbook.m4 @@ -0,0 +1,66 @@ +dnl AS_DOCBOOK([, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl checks if xsltproc can build docbook documentation +dnl (which is possible if the catalog is set up properly +dnl I also tried checking for a specific version and type of docbook +dnl but xsltproc seemed to happily run anyway, so we can't check for that +dnl and version +dnl this macro takes inspiration from +dnl http://www.movement.uklinux.net/docs/docbook-autotools/configure.html +AC_DEFUN([AS_DOCBOOK], +[ + XSLTPROC_FLAGS=--nonet + DOCBOOK_ROOT= + TYPE_LC=xml + TYPE_UC=XML + DOCBOOK_VERSION=4.1.2 + + if test ! -f /etc/xml/catalog; then + for i in /usr/share/sgml/docbook/stylesheet/xsl/nwalsh /usr/share/sgml/docbook/xsl-stylesheets/ /usr/local/share/xsl/docbook ; + do + if test -d "$i"; then + DOCBOOK_ROOT=$i + fi + done + else + XML_CATALOG=/etc/xml/catalog + CAT_ENTRY_START='' + fi + + dnl We need xsltproc to process the test + AC_CHECK_PROG(XSLTPROC,xsltproc,xsltproc,) + XSLTPROC_WORKS=no + if test -n "$XSLTPROC"; then + AC_MSG_CHECKING([whether xsltproc docbook processing works]) + + if test -n "$XML_CATALOG"; then + DB_FILE="http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl" + else + DB_FILE="$DOCBOOK_ROOT/xhtml/docbook.xsl" + fi + $XSLTPROC $XSLTPROC_FLAGS $DB_FILE >/dev/null 2>&1 << END + + + + +END + if test "$?" = 0; then + XSLTPROC_WORKS=yes + fi + AC_MSG_RESULT($XSLTPROC_WORKS) + fi + + if test "x$XSLTPROC_WORKS" = "xyes"; then + dnl execute ACTION-IF-FOUND + ifelse([$1], , :, [$1]) + else + dnl execute ACTION-IF-NOT-FOUND + ifelse([$2], , :, [$2]) + fi + + AC_SUBST(XML_CATALOG) + AC_SUBST(XSLTPROC_FLAGS) + AC_SUBST(DOCBOOK_ROOT) + AC_SUBST(CAT_ENTRY_START) + AC_SUBST(CAT_ENTRY_END) +]) diff --git a/common/m4/as-gcc-inline-assembly.m4 b/common/m4/as-gcc-inline-assembly.m4 new file mode 100644 index 0000000..af32104 --- /dev/null +++ b/common/m4/as-gcc-inline-assembly.m4 @@ -0,0 +1,52 @@ +dnl as-gcc-inline-assembly.m4 0.1.0 + +dnl autostars m4 macro for detection of gcc inline assembly + +dnl David Schleef + +dnl $Id$ + +dnl AS_COMPILER_FLAG(ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED]) +dnl Tries to compile with the given CFLAGS. +dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags, +dnl and ACTION-IF-NOT-ACCEPTED otherwise. + +AC_DEFUN([AS_GCC_INLINE_ASSEMBLY], +[ + AC_MSG_CHECKING([if compiler supports gcc-style inline assembly]) + + AC_TRY_COMPILE([], [ +#ifdef __GNUC_MINOR__ +#if (__GNUC__ * 1000 + __GNUC_MINOR__) < 3004 +#error GCC before 3.4 has critical bugs compiling inline assembly +#endif +#endif +__asm__ (""::) ], [flag_ok=yes], [flag_ok=no]) + + if test "X$flag_ok" = Xyes ; then + $1 + true + else + $2 + true + fi + AC_MSG_RESULT([$flag_ok]) +]) + + +AC_DEFUN([AS_GCC_ASM_POWERPC_FPU], +[ + AC_MSG_CHECKING([if compiler supports FPU instructions on PowerPC]) + + AC_TRY_COMPILE([], [__asm__ ("fadd 0,0,0"::) ], [flag_ok=yes], [flag_ok=no]) + + if test "X$flag_ok" = Xyes ; then + $1 + true + else + $2 + true + fi + AC_MSG_RESULT([$flag_ok]) +]) + diff --git a/common/m4/as-libtool-tags.m4 b/common/m4/as-libtool-tags.m4 new file mode 100644 index 0000000..06f0ae4 --- /dev/null +++ b/common/m4/as-libtool-tags.m4 @@ -0,0 +1,83 @@ +dnl as-libtool-tags.m4 0.1.4 + +dnl autostars m4 macro for selecting libtool "tags" (languages) + +dnl Andy Wingo does not claim credit for this macro +dnl backported from libtool 1.6 by Paolo Bonzini +dnl see http://lists.gnu.org/archive/html/libtool/2003-12/msg00007.html + +dnl $Id$ + +dnl AS_LIBTOOL_TAGS([tags...]) + +dnl example +dnl AS_LIBTOOL_TAGS([]) for only C (no fortran, etc) + +dnl When AC_LIBTOOL_TAGS is used, I redefine _LT_AC_TAGCONFIG +dnl to be more similar to the libtool 1.6 implementation, which +dnl uses an m4 loop and m4 case instead of a shell loop. This +dnl way the CXX/GCJ/F77/RC tests are not always expanded. + +dnl AS_LIBTOOL_TAGS +dnl --------------- +dnl tags to enable +AC_DEFUN([AS_LIBTOOL_TAGS], +[m4_define([_LT_TAGS],[$1]) +m4_define([_LT_AC_TAGCONFIG], [ + # redefined LT AC TAGCONFIG + if test -f "$ltmain"; then + if test ! -f "${ofile}"; then + AC_MSG_WARN([output file `$ofile' does not exist]) + fi + + if test -z "$LTCC"; then + eval "`$SHELL ${ofile} --config | grep '^LTCC='`" + if test -z "$LTCC"; then + AC_MSG_WARN([output file `$ofile' does not look like a libtool script]) + else + AC_MSG_WARN([using `LTCC=$LTCC', extracted from `$ofile']) + fi + fi + + AC_FOREACH([_LT_TAG], _LT_TAGS, + echo THOMAS: tag _LT_TAG + [m4_case(_LT_TAG, + [CXX], [ + if test -n "$CXX" && test "X$CXX" != "Xno"; then + echo "THOMAS: YAY CXX" + AC_LIBTOOL_LANG_CXX_CONFIG + available_tags="$available_tags _LT_TAG" + fi], + [F77], [ + if test -n "$F77" && test "X$F77" != "Xno"; then + AC_LIBTOOL_LANG_F77_CONFIG + available_tags="$available_tags _LT_TAG" + fi], + [GCJ], [ + if test -n "$GCJ" && test "X$GCJ" != "Xno"; then + AC_LIBTOOL_LANG_GCJ_CONFIG + available_tags="$available_tags _LT_TAG" + fi], + [RC], [ + if test -n "$RC" && test "X$RC" != "Xno"; then + AC_LIBTOOL_LANG_RC_CONFIG + available_tags="$available_tags _LT_TAG" + fi], + [m4_errprintn(m4_location[: error: invalid tag name: ]"_LT_TAG") + m4_exit(1)]) + ]) + echo THOMAS: available tags: $available_tags + fi + # Now substitute the updated list of available tags. + if eval "sed -e 's/^available_tags=.*\$/available_tags=\"$available_tags\"/' \"$ofile\" > \"${ofile}T\""; then + mv "${ofile}T" "$ofile" + chmod +x "$ofile" + AC_MSG_NOTICE([updated available libtool tags with $available_tags.]) + else + rm -f "${ofile}T" + AC_MSG_ERROR([unable to update list of available tagged configurations.]) + + fi + +])dnl _LT_AC_TAG_CONFIG +]) diff --git a/common/m4/as-libtool.m4 b/common/m4/as-libtool.m4 new file mode 100644 index 0000000..25de9d1 --- /dev/null +++ b/common/m4/as-libtool.m4 @@ -0,0 +1,45 @@ +dnl as-libtool.m4 0.1.4 + +dnl autostars m4 macro for libtool versioning + +dnl Thomas Vander Stichele + +dnl $Id: as-libtool.m4,v 1.10 2005/10/15 13:44:23 thomasvs Exp $ + +dnl AS_LIBTOOL(PREFIX, CURRENT, REVISION, AGE, [RELEASE]) + +dnl example +dnl AS_LIBTOOL(GST, 2, 0, 0) + +dnl this macro +dnl - defines [$PREFIX]_CURRENT, REVISION and AGE +dnl - defines [$PREFIX]_LIBVERSION +dnl - defines [$PREFIX]_LT_LDFLAGS to set versioning +dnl - AC_SUBST's them all + +dnl if RELEASE is given, then add a -release option to the LDFLAGS +dnl with the given release version +dnl then use [$PREFIX]_LT_LDFLAGS in the relevant Makefile.am's + +dnl call AM_PROG_LIBTOOL after this call + +AC_DEFUN([AS_LIBTOOL], +[ + [$1]_CURRENT=[$2] + [$1]_REVISION=[$3] + [$1]_AGE=[$4] + [$1]_LIBVERSION=[$2]:[$3]:[$4] + AC_SUBST([$1]_CURRENT) + AC_SUBST([$1]_REVISION) + AC_SUBST([$1]_AGE) + AC_SUBST([$1]_LIBVERSION) + + [$1]_LT_LDFLAGS="$[$1]_LT_LDFLAGS -version-info $[$1]_LIBVERSION" + if test ! -z "[$5]" + then + [$1]_LT_LDFLAGS="$[$1]_LT_LDFLAGS -release [$5]" + fi + AC_SUBST([$1]_LT_LDFLAGS) + + AC_LIBTOOL_DLOPEN +]) diff --git a/common/m4/as-objc.m4 b/common/m4/as-objc.m4 new file mode 100644 index 0000000..1e7066a --- /dev/null +++ b/common/m4/as-objc.m4 @@ -0,0 +1,56 @@ + + +# AC_PROG_OBJC([LIST-OF-COMPILERS]) +# +AC_DEFUN([AS_PROG_OBJC], +[ +AC_CHECK_TOOLS(OBJC, + [m4_default([$1], [objcc objc gcc cc CC])], + none) +AC_SUBST(OBJC) +OBJC_LDFLAGS="-lobjc" +AC_SUBST(OBJC_LDFLAGS) +if test "x$OBJC" != xnone ; then + _AM_DEPENDENCIES(OBJC) + AC_MSG_CHECKING([if Objective C compiler works]) + cat >>conftest.m < +@interface Moo:Object +{ +} +- moo; +int main(); +@end + +@implementation Moo +- moo +{ + exit(0); +} + +int main() +{ + id moo; + moo = [[Moo new]]; + [[moo moo]]; + return 1; +} +@end +EOF + ${OBJC} conftest.m ${OBJC_LDFLAGS} >&5 2>&5 + if test -f a.out -o -f a.exe ; then + result=yes + else + result=no + echo failed program is: >&5 + cat conftest.m >&5 + fi + rm -f conftest.m a.out a.exe + AC_MSG_RESULT([$result]) +else + _AM_DEPENDENCIES(OBJC) +fi + +]) + + diff --git a/common/m4/as-python.m4 b/common/m4/as-python.m4 new file mode 100644 index 0000000..eb9b175 --- /dev/null +++ b/common/m4/as-python.m4 @@ -0,0 +1,152 @@ +## ------------------------ +## Python file handling +## From Andrew Dalke +## Updated by James Henstridge +## Updated by Andy Wingo to loop through possible pythons +## ------------------------ + +# AS_PATH_PYTHON([MINIMUM-VERSION]) + +# Adds support for distributing Python modules and packages. To +# install modules, copy them to $(pythondir), using the python_PYTHON +# automake variable. To install a package with the same name as the +# automake package, install to $(pkgpythondir), or use the +# pkgpython_PYTHON automake variable. + +# The variables $(pyexecdir) and $(pkgpyexecdir) are provided as +# locations to install python extension modules (shared libraries). +# Another macro is required to find the appropriate flags to compile +# extension modules. + +# If your package is configured with a different prefix to python, +# users will have to add the install directory to the PYTHONPATH +# environment variable, or create a .pth file (see the python +# documentation for details). + +# If the MINIMUM-VERSION argument is passed, AS_PATH_PYTHON will +# cause an error if the version of python installed on the system +# doesn't meet the requirement. MINIMUM-VERSION should consist of +# numbers and dots only. + +# Updated to loop over all possible python binaries by Andy Wingo +# +# Updated to only warn and unset PYTHON if no good one is found + +AC_DEFUN([AS_PATH_PYTHON], + [ + dnl Find a version of Python. I could check for python versions 1.4 + dnl or earlier, but the default installation locations changed from + dnl $prefix/lib/site-python in 1.4 to $prefix/lib/python1.5/site-packages + dnl in 1.5, and I don't want to maintain that logic. + + dnl should we do the version check? + PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \ + python1.6 python1.5" + ifelse([$1],[], + [AC_PATH_PROG(PYTHON, $PYTHON_CANDIDATES)], + [ + AC_MSG_NOTICE(Looking for Python version >= $1) + changequote(<<, >>)dnl + prog=" +import sys, string +minver = '$1' +# split string by '.' and convert to numeric +minver_info = map(string.atoi, string.split(minver, '.')) +# we can now do comparisons on the two lists: +if sys.version_info >= tuple(minver_info): + sys.exit(0) +else: + sys.exit(1)" + changequote([, ])dnl + + python_good=false + for python_candidate in $PYTHON_CANDIDATES; do + unset PYTHON + AC_PATH_PROG(PYTHON, $python_candidate) 1> /dev/null 2> /dev/null + + if test "x$PYTHON" = "x"; then continue; fi + + if $PYTHON -c "$prog" 1>&AC_FD_CC 2>&AC_FD_CC; then + AC_MSG_CHECKING(["$PYTHON":]) + AC_MSG_RESULT([okay]) + python_good=true + break; + else + dnl clear the cache val + unset ac_cv_path_PYTHON + fi + done + ]) + + if test "$python_good" != "true"; then + AC_MSG_WARN([No suitable version of python found]) + PYTHON= + else + + AC_MSG_CHECKING([local Python configuration]) + + dnl Query Python for its version number. Getting [:3] seems to be + dnl the best way to do this; it's what "site.py" does in the standard + dnl library. Need to change quote character because of [:3] + + AC_SUBST(PYTHON_VERSION) + changequote(<<, >>)dnl + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + changequote([, ])dnl + + + dnl Use the values of $prefix and $exec_prefix for the corresponding + dnl values of PYTHON_PREFIX and PYTHON_EXEC_PREFIX. These are made + dnl distinct variables so they can be overridden if need be. However, + dnl general consensus is that you shouldn't need this ability. + + AC_SUBST(PYTHON_PREFIX) + PYTHON_PREFIX='${prefix}' + + AC_SUBST(PYTHON_EXEC_PREFIX) + PYTHON_EXEC_PREFIX='${exec_prefix}' + + dnl At times (like when building shared libraries) you may want + dnl to know which OS platform Python thinks this is. + + AC_SUBST(PYTHON_PLATFORM) + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + + dnl Set up 4 directories: + + dnl pythondir -- where to install python scripts. This is the + dnl site-packages directory, not the python standard library + dnl directory like in previous automake betas. This behaviour + dnl is more consistent with lispdir.m4 for example. + dnl + dnl Also, if the package prefix isn't the same as python's prefix, + dnl then the old $(pythondir) was pretty useless. + + AC_SUBST(pythondir) + pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages + + dnl pkgpythondir -- $PACKAGE directory under pythondir. Was + dnl PYTHON_SITE_PACKAGE in previous betas, but this naming is + dnl more consistent with the rest of automake. + dnl Maybe this should be put in python.am? + + AC_SUBST(pkgpythondir) + pkgpythondir=\${pythondir}/$PACKAGE + + dnl pyexecdir -- directory for installing python extension modules + dnl (shared libraries) Was PYTHON_SITE_EXEC in previous betas. + + AC_SUBST(pyexecdir) + pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages + + dnl pkgpyexecdir -- $(pyexecdir)/$(PACKAGE) + dnl Maybe this should be put in python.am? + + AC_SUBST(pkgpyexecdir) + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + AC_MSG_RESULT([looks good]) + + fi +]) diff --git a/common/m4/as-scrub-include.m4 b/common/m4/as-scrub-include.m4 new file mode 100644 index 0000000..3ed49b0 --- /dev/null +++ b/common/m4/as-scrub-include.m4 @@ -0,0 +1,36 @@ +dnl as-scrub-include.m4 0.0.4 + +dnl autostars m4 macro for scrubbing CFLAGS of system include dirs +dnl because gcc 3.x complains about including system including dirs + +dnl Thomas Vander Stichele + +dnl $Id: as-scrub-include.m4,v 1.7 2004/06/12 08:30:20 thomasvs Exp $ + +dnl This macro uses output of cpp -v and expects it to contain text that +dnl looks a little bit like this: +dnl #include <...> search starts here: +dnl /usr/local/include +dnl /usr/lib/gcc-lib/i386-redhat-linux/3.2/include +dnl /usr/include +dnl End of search list. + +dnl AS_SCRUB_INCLUDE(VAR) +dnl example +dnl AS_SCRUB_INCLUDE(CFLAGS) +dnl will remove all system include dirs from the given CFLAGS + +AC_DEFUN([AS_SCRUB_INCLUDE], +[ + GIVEN_CFLAGS=$[$1] + INCLUDE_DIRS=`echo | cpp -v 2>&1` + + dnl remove everything from this output between the "starts here" and "End of" + dnl line + INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` + for dir in $INCLUDE_DIRS; do + dnl use "" as the sed script so $dir gets expanded + GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` + done + [$1]=$GIVEN_CFLAGS +]) diff --git a/common/m4/as-version.m4 b/common/m4/as-version.m4 new file mode 100644 index 0000000..22ff774 --- /dev/null +++ b/common/m4/as-version.m4 @@ -0,0 +1,75 @@ +dnl as-version.m4 0.2.0 + +dnl autostars m4 macro for versioning + +dnl Thomas Vander Stichele + +dnl $Id: as-version.m4,v 1.15 2006/04/01 09:40:24 thomasvs Exp $ + +dnl AS_VERSION + +dnl example +dnl AS_VERSION + +dnl this macro +dnl - AC_SUBST's PACKAGE_VERSION_MAJOR, _MINOR, _MICRO +dnl - AC_SUBST's PACKAGE_VERSION_RELEASE, +dnl which can be used for rpm release fields +dnl - doesn't call AM_INIT_AUTOMAKE anymore because it prevents +dnl maintainer mode from running correctly +dnl +dnl don't forget to put #undef PACKAGE_VERSION_RELEASE in acconfig.h +dnl if you use acconfig.h + +AC_DEFUN([AS_VERSION], +[ + PACKAGE_VERSION_MAJOR=$(echo AC_PACKAGE_VERSION | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo AC_PACKAGE_VERSION | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo AC_PACKAGE_VERSION | cut -d'.' -f3) + + AC_SUBST(PACKAGE_VERSION_MAJOR) + AC_SUBST(PACKAGE_VERSION_MINOR) + AC_SUBST(PACKAGE_VERSION_MICRO) +]) + +dnl AS_NANO(ACTION-IF-NANO-NON-NULL, [ACTION-IF-NANO-NULL]) + +dnl requires AC_INIT to be called before +dnl For projects using a fourth or nano number in your versioning to indicate +dnl development or prerelease snapshots, this macro allows the build to be +dnl set up differently accordingly. + +dnl this macro: +dnl - parses AC_PACKAGE_VERSION, set by AC_INIT, and extracts the nano number +dnl - sets the variable PACKAGE_VERSION_NANO +dnl - sets the variable PACKAGE_VERSION_RELEASE, which can be used +dnl for rpm release fields +dnl - executes ACTION-IF-NANO-NON-NULL or ACTION-IF-NANO-NULL + +dnl example: +dnl AS_NANO(RELEASE="yes", RELEASE="no") + +AC_DEFUN([AS_NANO], +[ + AC_MSG_CHECKING(nano version) + + NANO=$(echo AC_PACKAGE_VERSION | cut -d'.' -f4) + + if test x"$NANO" = x || test "x$NANO" = "x0" ; then + AC_MSG_RESULT([0 (release)]) + NANO=0 + PACKAGE_VERSION_RELEASE=1 + ifelse([$1], , :, [$1]) + else + AC_MSG_RESULT($NANO) + PACKAGE_VERSION_RELEASE=0.`date +%Y%m%d.%H%M%S` + if test "x$NANO" != "x1" ; then + ifelse([$1], , :, [$1]) + else + ifelse([$2], , :, [$2]) + fi + fi + PACKAGE_VERSION_NANO=$NANO + AC_SUBST(PACKAGE_VERSION_NANO) + AC_SUBST(PACKAGE_VERSION_RELEASE) +]) diff --git a/common/m4/ax_create_stdint_h.m4 b/common/m4/ax_create_stdint_h.m4 new file mode 100644 index 0000000..13bf699 --- /dev/null +++ b/common/m4/ax_create_stdint_h.m4 @@ -0,0 +1,734 @@ +##### http://autoconf-archive.cryp.to/ax_create_stdint_h.html +# +# SYNOPSIS +# +# AX_CREATE_STDINT_H [( HEADER-TO-GENERATE [, HEDERS-TO-CHECK])] +# +# DESCRIPTION +# +# the "ISO C9X: 7.18 Integer types " section requires the +# existence of an include file that defines a set of +# typedefs, especially uint8_t,int32_t,uintptr_t. Many older +# installations will not provide this file, but some will have the +# very same definitions in . In other enviroments we can +# use the inet-types in which would define the typedefs +# int8_t and u_int8_t respectivly. +# +# This macros will create a local "_stdint.h" or the headerfile given +# as an argument. In many cases that file will just "#include +# " or "#include ", while in other environments +# it will provide the set of basic 'stdint's definitions/typedefs: +# +# int8_t,uint8_t,int16_t,uint16_t,int32_t,uint32_t,intptr_t,uintptr_t +# int_least32_t.. int_fast32_t.. intmax_t +# +# which may or may not rely on the definitions of other files, or +# using the AC_CHECK_SIZEOF macro to determine the actual sizeof each +# type. +# +# if your header files require the stdint-types you will want to +# create an installable file mylib-int.h that all your other +# installable header may include. So if you have a library package +# named "mylib", just use +# +# AX_CREATE_STDINT_H(mylib-int.h) +# +# in configure.ac and go to install that very header file in +# Makefile.am along with the other headers (mylib.h) - and the +# mylib-specific headers can simply use "#include " to +# obtain the stdint-types. +# +# Remember, if the system already had a valid , the +# generated file will include it directly. No need for fuzzy +# HAVE_STDINT_H things... (oops, GCC 4.2.x has deliberatly disabled +# its stdint.h for non-c99 compilation and the c99-mode is not the +# default. Therefore this macro will not use the compiler's stdint.h +# - please complain to the GCC developers). +# +# LAST MODIFICATION +# +# 2007-06-27 +# +# COPYLEFT +# +# Copyright (c) 2007 Guido U. Draheim +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of the +# License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA +# 02111-1307, USA. +# +# As a special exception, the respective Autoconf Macro's copyright +# owner gives unlimited permission to copy, distribute and modify the +# configure scripts that are the output of Autoconf when processing +# the Macro. You need not follow the terms of the GNU General Public +# License when using or distributing such scripts, even though +# portions of the text of the Macro appear in them. The GNU General +# Public License (GPL) does govern all other use of the material that +# constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the +# Autoconf Macro released by the Autoconf Macro Archive. When you +# make and distribute a modified version of the Autoconf Macro, you +# may extend this special exception to the GPL to apply to your +# modified version as well. + +AC_DEFUN([AX_CHECK_DATA_MODEL],[ + AC_CHECK_SIZEOF(char) + AC_CHECK_SIZEOF(short) + AC_CHECK_SIZEOF(int) + AC_CHECK_SIZEOF(long) + AC_CHECK_SIZEOF(void*) + ac_cv_char_data_model="" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" + ac_cv_long_data_model="" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" + AC_MSG_CHECKING([data model]) + case "$ac_cv_char_data_model/$ac_cv_long_data_model" in + 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; + 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; + 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; + 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; + 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; + 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; + 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; + 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; + 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; + 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; + 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; + 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; + 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; + 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; + 222/*|333/*|444/*|666/*|888/*) : + ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; + *) ac_cv_data_model="none" ; n="very unusual model" ;; + esac + AC_MSG_RESULT([$ac_cv_data_model ($ac_cv_long_data_model, $n)]) +]) + +dnl AX_CHECK_HEADER_STDINT_X([HEADERLIST][,ACTION-IF]) +AC_DEFUN([AX_CHECK_HEADER_STDINT_X],[ +AC_CACHE_CHECK([for stdint uintptr_t], [ac_cv_header_stdint_x],[ + ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) + AC_MSG_RESULT([(..)]) + for i in m4_ifval([$1],[$1],[stdint.h inttypes.h sys/inttypes.h sys/types.h]) + do + unset ac_cv_type_uintptr_t + unset ac_cv_type_uint64_t + AC_CHECK_TYPE(uintptr_t,[ac_cv_header_stdint_x=$i],continue,[#include <$i>]) + AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) + m4_ifvaln([$2],[$2]) break + done + AC_MSG_CHECKING([for stdint uintptr_t]) + ]) +]) + +AC_DEFUN([AX_CHECK_HEADER_STDINT_O],[ +AC_CACHE_CHECK([for stdint uint32_t], [ac_cv_header_stdint_o],[ + ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) + AC_MSG_RESULT([(..)]) + for i in m4_ifval([$1],[$1],[inttypes.h sys/inttypes.h sys/types.h stdint.h]) + do + unset ac_cv_type_uint32_t + unset ac_cv_type_uint64_t + AC_CHECK_TYPE(uint32_t,[ac_cv_header_stdint_o=$i],continue,[#include <$i>]) + AC_CHECK_TYPE(uint64_t,[and64="/uint64_t"],[and64=""],[#include<$i>]) + m4_ifvaln([$2],[$2]) break + break; + done + AC_MSG_CHECKING([for stdint uint32_t]) + ]) +]) + +AC_DEFUN([AX_CHECK_HEADER_STDINT_U],[ +AC_CACHE_CHECK([for stdint u_int32_t], [ac_cv_header_stdint_u],[ + ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) + AC_MSG_RESULT([(..)]) + for i in m4_ifval([$1],[$1],[sys/types.h inttypes.h sys/inttypes.h]) ; do + unset ac_cv_type_u_int32_t + unset ac_cv_type_u_int64_t + AC_CHECK_TYPE(u_int32_t,[ac_cv_header_stdint_u=$i],continue,[#include <$i>]) + AC_CHECK_TYPE(u_int64_t,[and64="/u_int64_t"],[and64=""],[#include<$i>]) + m4_ifvaln([$2],[$2]) break + break; + done + AC_MSG_CHECKING([for stdint u_int32_t]) + ]) +]) + +AC_DEFUN([AX_CREATE_STDINT_H], +[# ------ AX CREATE STDINT H ------------------------------------- +AC_MSG_CHECKING([for stdint types]) +ac_stdint_h=`echo ifelse($1, , _stdint.h, $1)` +# try to shortcircuit - if the default include path of the compiler +# can find a "stdint.h" header then we assume that all compilers can. +AC_CACHE_VAL([ac_cv_header_stdint_t],[ +old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" +old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" +old_CFLAGS="$CFLAGS" ; CFLAGS="" +AC_TRY_COMPILE([#include ],[int_least32_t v = 0;], +[ac_cv_stdint_result="(assuming C99 compatible system)" + ac_cv_header_stdint_t="stdint.h"; ], +[ac_cv_header_stdint_t=""]) +if test "$GCC" = "yes" && test ".$ac_cv_header_stdint_t" = "."; then +CFLAGS="-std=c99" +AC_TRY_COMPILE([#include ],[int_least32_t v = 0;], +[AC_MSG_WARN(your GCC compiler has a defunct stdint.h for its default-mode)]) +fi +CXXFLAGS="$old_CXXFLAGS" +CPPFLAGS="$old_CPPFLAGS" +CFLAGS="$old_CFLAGS" ]) + +v="... $ac_cv_header_stdint_h" +if test "$ac_stdint_h" = "stdint.h" ; then + AC_MSG_RESULT([(are you sure you want them in ./stdint.h?)]) +elif test "$ac_stdint_h" = "inttypes.h" ; then + AC_MSG_RESULT([(are you sure you want them in ./inttypes.h?)]) +elif test "_$ac_cv_header_stdint_t" = "_" ; then + AC_MSG_RESULT([(putting them into $ac_stdint_h)$v]) +else + ac_cv_header_stdint="$ac_cv_header_stdint_t" + AC_MSG_RESULT([$ac_cv_header_stdint (shortcircuit)]) +fi + +if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. + +dnl .....intro message done, now do a few system checks..... +dnl btw, all old CHECK_TYPE macros do automatically "DEFINE" a type, +dnl therefore we use the autoconf implementation detail CHECK_TYPE_NEW +dnl instead that is triggered with 3 or more arguments (see types.m4) + +inttype_headers=`echo $2 | sed -e 's/,/ /g'` + +ac_cv_stdint_result="(no helpful system typedefs seen)" +AX_CHECK_HEADER_STDINT_X(dnl + stdint.h inttypes.h sys/inttypes.h $inttype_headers, + ac_cv_stdint_result="(seen uintptr_t$and64 in $i)") + +if test "_$ac_cv_header_stdint_x" = "_" ; then +AX_CHECK_HEADER_STDINT_O(dnl, + inttypes.h sys/inttypes.h stdint.h $inttype_headers, + ac_cv_stdint_result="(seen uint32_t$and64 in $i)") +fi + +if test "_$ac_cv_header_stdint_x" = "_" ; then +if test "_$ac_cv_header_stdint_o" = "_" ; then +AX_CHECK_HEADER_STDINT_U(dnl, + sys/types.h inttypes.h sys/inttypes.h $inttype_headers, + ac_cv_stdint_result="(seen u_int32_t$and64 in $i)") +fi fi + +dnl if there was no good C99 header file, do some typedef checks... +if test "_$ac_cv_header_stdint_x" = "_" ; then + AC_MSG_CHECKING([for stdint datatype model]) + AC_MSG_RESULT([(..)]) + AX_CHECK_DATA_MODEL +fi + +if test "_$ac_cv_header_stdint_x" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_x" +elif test "_$ac_cv_header_stdint_o" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_o" +elif test "_$ac_cv_header_stdint_u" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_u" +else + ac_cv_header_stdint="stddef.h" +fi + +AC_MSG_CHECKING([for extra inttypes in chosen header]) +AC_MSG_RESULT([($ac_cv_header_stdint)]) +dnl see if int_least and int_fast types are present in _this_ header. +unset ac_cv_type_int_least32_t +unset ac_cv_type_int_fast32_t +AC_CHECK_TYPE(int_least32_t,,,[#include <$ac_cv_header_stdint>]) +AC_CHECK_TYPE(int_fast32_t,,,[#include<$ac_cv_header_stdint>]) +AC_CHECK_TYPE(intmax_t,,,[#include <$ac_cv_header_stdint>]) + +fi # shortcircut to system "stdint.h" +# ------------------ PREPARE VARIABLES ------------------------------ +if test "$GCC" = "yes" ; then +ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` +else +ac_cv_stdint_message="using $CC" +fi + +AC_MSG_RESULT([make use of $ac_cv_header_stdint in $ac_stdint_h dnl +$ac_cv_stdint_result]) + +dnl ----------------------------------------------------------------- +# ----------------- DONE inttypes.h checks START header ------------- +AC_CONFIG_COMMANDS([$ac_stdint_h],[ +AC_MSG_NOTICE(creating $ac_stdint_h : $_ac_stdint_h) +ac_stdint=$tmp/_stdint.h + +echo "#ifndef" $_ac_stdint_h >$ac_stdint +echo "#define" $_ac_stdint_h "1" >>$ac_stdint +echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint +echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint +echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint +if test "_$ac_cv_header_stdint_t" != "_" ; then +echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint +echo "#include " >>$ac_stdint +echo "#endif" >>$ac_stdint +echo "#endif" >>$ac_stdint +else + +cat >>$ac_stdint < +#else +#include + +/* .................... configured part ............................ */ + +STDINT_EOF + +echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint +if test "_$ac_cv_header_stdint_x" != "_" ; then + ac_header="$ac_cv_header_stdint_x" + echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint +fi + +echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint +if test "_$ac_cv_header_stdint_o" != "_" ; then + ac_header="$ac_cv_header_stdint_o" + echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint +fi + +echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint +if test "_$ac_cv_header_stdint_u" != "_" ; then + ac_header="$ac_cv_header_stdint_u" + echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint +fi + +echo "" >>$ac_stdint + +if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then + echo "#include <$ac_header>" >>$ac_stdint + echo "" >>$ac_stdint +fi fi + +echo "/* which 64bit typedef has been found */" >>$ac_stdint +if test "$ac_cv_type_uint64_t" = "yes" ; then +echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint +fi +if test "$ac_cv_type_u_int64_t" = "yes" ; then +echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint +fi +echo "" >>$ac_stdint + +echo "/* which type model has been detected */" >>$ac_stdint +if test "_$ac_cv_char_data_model" != "_" ; then +echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint +echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint +else +echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint +echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint +fi +echo "" >>$ac_stdint + +echo "/* whether int_least types were detected */" >>$ac_stdint +if test "$ac_cv_type_int_least32_t" = "yes"; then +echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint +fi +echo "/* whether int_fast types were detected */" >>$ac_stdint +if test "$ac_cv_type_int_fast32_t" = "yes"; then +echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint +fi +echo "/* whether intmax_t type was detected */" >>$ac_stdint +if test "$ac_cv_type_intmax_t" = "yes"; then +echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint +fi +echo "" >>$ac_stdint + + cat >>$ac_stdint <= 199901L +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef long long int64_t; +typedef unsigned long long uint64_t; + +#elif !defined __STRICT_ANSI__ +#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ +#define _HAVE_UINT64_T +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; + +#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ +/* note: all ELF-systems seem to have loff-support which needs 64-bit */ +#if !defined _NO_LONGLONG +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef long long int64_t; +typedef unsigned long long uint64_t; +#endif + +#elif defined __alpha || (defined __mips && defined _ABIN32) +#if !defined _NO_LONGLONG +typedef long int64_t; +typedef unsigned long uint64_t; +#endif + /* compiler/cpu type to define int64_t */ +#endif +#endif +#endif + +#if defined _STDINT_HAVE_U_INT_TYPES +/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ +typedef u_int8_t uint8_t; +typedef u_int16_t uint16_t; +typedef u_int32_t uint32_t; + +/* glibc compatibility */ +#ifndef __int8_t_defined +#define __int8_t_defined +#endif +#endif + +#ifdef _STDINT_NEED_INT_MODEL_T +/* we must guess all the basic types. Apart from byte-adressable system, */ +/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ +/* (btw, those nibble-addressable systems are way off, or so we assume) */ + +dnl /* have a look at "64bit and data size neutrality" at */ +dnl /* http://unix.org/version2/whatsnew/login_64bit.html */ +dnl /* (the shorthand "ILP" types always have a "P" part) */ + +#if defined _STDINT_BYTE_MODEL +#if _STDINT_LONG_MODEL+0 == 242 +/* 2:4:2 = IP16 = a normal 16-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned long uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef long int32_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 +/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ +/* 4:4:4 = ILP32 = a normal 32-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 +/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ +/* 4:8:8 = LP64 = a normal 64-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +/* this system has a "long" of 64bit */ +#ifndef _HAVE_UINT64_T +#define _HAVE_UINT64_T +typedef unsigned long uint64_t; +typedef long int64_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 448 +/* LLP64 a 64-bit system derived from a 32-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +/* assuming the system has a "long long" */ +#ifndef _HAVE_UINT64_T +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef unsigned long long uint64_t; +typedef long long int64_t; +#endif +#else +#define _STDINT_NO_INT32_T +#endif +#else +#define _STDINT_NO_INT8_T +#define _STDINT_NO_INT32_T +#endif +#endif + +/* + * quote from SunOS-5.8 sys/inttypes.h: + * Use at your own risk. As of February 1996, the committee is squarely + * behind the fixed sized types; the "least" and "fast" types are still being + * discussed. The probability that the "fast" types may be removed before + * the standard is finalized is high enough that they are not currently + * implemented. + */ + +#if defined _STDINT_NEED_INT_LEAST_T +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +#ifdef _HAVE_UINT64_T +typedef int64_t int_least64_t; +#endif + +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +#ifdef _HAVE_UINT64_T +typedef uint64_t uint_least64_t; +#endif + /* least types */ +#endif + +#if defined _STDINT_NEED_INT_FAST_T +typedef int8_t int_fast8_t; +typedef int int_fast16_t; +typedef int32_t int_fast32_t; +#ifdef _HAVE_UINT64_T +typedef int64_t int_fast64_t; +#endif + +typedef uint8_t uint_fast8_t; +typedef unsigned uint_fast16_t; +typedef uint32_t uint_fast32_t; +#ifdef _HAVE_UINT64_T +typedef uint64_t uint_fast64_t; +#endif + /* fast types */ +#endif + +#ifdef _STDINT_NEED_INTMAX_T +#ifdef _HAVE_UINT64_T +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; +#else +typedef long intmax_t; +typedef unsigned long uintmax_t; +#endif +#endif + +#ifdef _STDINT_NEED_INTPTR_T +#ifndef __intptr_t_defined +#define __intptr_t_defined +/* we encourage using "long" to store pointer values, never use "int" ! */ +#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 +typedef unsigned int uintptr_t; +typedef int intptr_t; +#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 +typedef unsigned long uintptr_t; +typedef long intptr_t; +#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T +typedef uint64_t uintptr_t; +typedef int64_t intptr_t; +#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ +typedef unsigned long uintptr_t; +typedef long intptr_t; +#endif +#endif +#endif + +/* The ISO C99 standard specifies that in C++ implementations these + should only be defined if explicitly requested. */ +#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS +#ifndef UINT32_C + +/* Signed. */ +# define INT8_C(c) c +# define INT16_C(c) c +# define INT32_C(c) c +# ifdef _HAVE_LONGLONG_UINT64_T +# define INT64_C(c) c ## L +# else +# define INT64_C(c) c ## LL +# endif + +/* Unsigned. */ +# define UINT8_C(c) c ## U +# define UINT16_C(c) c ## U +# define UINT32_C(c) c ## U +# ifdef _HAVE_LONGLONG_UINT64_T +# define UINT64_C(c) c ## UL +# else +# define UINT64_C(c) c ## ULL +# endif + +/* Maximal type. */ +# ifdef _HAVE_LONGLONG_UINT64_T +# define INTMAX_C(c) c ## L +# define UINTMAX_C(c) c ## UL +# else +# define INTMAX_C(c) c ## LL +# define UINTMAX_C(c) c ## ULL +# endif + + /* literalnumbers */ +#endif +#endif + +/* These limits are merily those of a two complement byte-oriented system */ + +/* Minimum of signed integral types. */ +# define INT8_MIN (-128) +# define INT16_MIN (-32767-1) +# define INT32_MIN (-2147483647-1) +# define INT64_MIN (-__INT64_C(9223372036854775807)-1) +/* Maximum of signed integral types. */ +# define INT8_MAX (127) +# define INT16_MAX (32767) +# define INT32_MAX (2147483647) +# define INT64_MAX (__INT64_C(9223372036854775807)) + +/* Maximum of unsigned integral types. */ +# define UINT8_MAX (255) +# define UINT16_MAX (65535) +# define UINT32_MAX (4294967295U) +# define UINT64_MAX (__UINT64_C(18446744073709551615)) + +/* Minimum of signed integral types having a minimum size. */ +# define INT_LEAST8_MIN INT8_MIN +# define INT_LEAST16_MIN INT16_MIN +# define INT_LEAST32_MIN INT32_MIN +# define INT_LEAST64_MIN INT64_MIN +/* Maximum of signed integral types having a minimum size. */ +# define INT_LEAST8_MAX INT8_MAX +# define INT_LEAST16_MAX INT16_MAX +# define INT_LEAST32_MAX INT32_MAX +# define INT_LEAST64_MAX INT64_MAX + +/* Maximum of unsigned integral types having a minimum size. */ +# define UINT_LEAST8_MAX UINT8_MAX +# define UINT_LEAST16_MAX UINT16_MAX +# define UINT_LEAST32_MAX UINT32_MAX +# define UINT_LEAST64_MAX UINT64_MAX + + /* shortcircuit*/ +#endif + /* once */ +#endif +#endif +STDINT_EOF +fi + if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then + AC_MSG_NOTICE([$ac_stdint_h is unchanged]) + else + ac_dir=`AS_DIRNAME(["$ac_stdint_h"])` + AS_MKDIR_P(["$ac_dir"]) + rm -f $ac_stdint_h + mv $ac_stdint $ac_stdint_h + fi +],[# variables for create stdint.h replacement +PACKAGE="$PACKAGE" +VERSION="$VERSION" +ac_stdint_h="$ac_stdint_h" +_ac_stdint_h=AS_TR_CPP(_$PACKAGE-$ac_stdint_h) +ac_cv_stdint_message="$ac_cv_stdint_message" +ac_cv_header_stdint_t="$ac_cv_header_stdint_t" +ac_cv_header_stdint_x="$ac_cv_header_stdint_x" +ac_cv_header_stdint_o="$ac_cv_header_stdint_o" +ac_cv_header_stdint_u="$ac_cv_header_stdint_u" +ac_cv_type_uint64_t="$ac_cv_type_uint64_t" +ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" +ac_cv_char_data_model="$ac_cv_char_data_model" +ac_cv_long_data_model="$ac_cv_long_data_model" +ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" +ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" +ac_cv_type_intmax_t="$ac_cv_type_intmax_t" +]) +]) diff --git a/common/m4/check.m4 b/common/m4/check.m4 new file mode 100644 index 0000000..afd26eb --- /dev/null +++ b/common/m4/check.m4 @@ -0,0 +1,181 @@ +dnl _AM_TRY_CHECK(MINIMUM-VERSION, EXTRA-CFLAGS, EXTRA-LIBS, CHECK-LIB-NAME +dnl [, ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]) +dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS +dnl Done this way because of the brokenness that is +dnl https://launchpad.net/distros/ubuntu/+source/check/+bug/5840 +dnl + +AC_DEFUN([_AM_TRY_CHECK], +[ + min_check_version=$1 + extra_cflags=$2 + extra_libs=$3 + check_lib_name=$4 + + CHECK_CFLAGS="$extra_cflags" + CHECK_LIBS="$extra_libs -l$check_lib_name" + + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + + CFLAGS="$CFLAGS $CHECK_CFLAGS" + LIBS="$CHECK_LIBS $LIBS" + + AC_MSG_CHECKING(for check named $check_lib_name - version >= $min_check_version) + + rm -f conf.check-test + dnl unset no_check, since in our second run it would have been set to yes + dnl before + no_check= + AC_TRY_RUN([ +#include +#include + +#include + +int main () +{ + int major, minor, micro; + char *tmp_version; + + system ("touch conf.check-test"); + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = strdup("$min_check_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_check_version"); + return 1; + } + + if ((CHECK_MAJOR_VERSION != check_major_version) || + (CHECK_MINOR_VERSION != check_minor_version) || + (CHECK_MICRO_VERSION != check_micro_version)) + { + printf("\n*** The check header file (version %d.%d.%d) does not match\n", + CHECK_MAJOR_VERSION, CHECK_MINOR_VERSION, CHECK_MICRO_VERSION); + printf("*** the check library (version %d.%d.%d).\n", + check_major_version, check_minor_version, check_micro_version); + return 1; + } + + if ((check_major_version > major) || + ((check_major_version == major) && (check_minor_version > minor)) || + ((check_major_version == major) && (check_minor_version == minor) && (check_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** An old version of check (%d.%d.%d) was found.\n", + check_major_version, check_minor_version, check_micro_version); + printf("*** You need a version of check being at least %d.%d.%d.\n", major, minor, micro); + printf("***\n"); + printf("*** If you have already installed a sufficiently new version, this error\n"); + printf("*** probably means that the wrong copy of the check library and header\n"); + printf("*** file is being found. Rerun configure with the --with-check=PATH option\n"); + printf("*** to specify the prefix where the correct version was installed.\n"); + } + + return 1; +} +],, no_check=yes, [echo $ac_n "cross compiling; assumed OK... $ac_c"]) + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + + if test "x$no_check" = x ; then + AC_MSG_RESULT(yes) + ifelse([$5], , :, [$5]) + else + AC_MSG_RESULT(no) + if test -f conf.check-test ; then + : + else + echo "*** Could not run check test program, checking why..." + CFLAGS="$CFLAGS $CHECK_CFLAGS" + LIBS="$CHECK_LIBS $LIBS" + AC_TRY_LINK([ +#include +#include + +#include +], , [ echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding check. You'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH"], + [ echo "*** The test program failed to compile or link. See the file config.log for" + echo "*** the exact error that occured." ]) + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + + CHECK_CFLAGS="" + CHECK_LIBS="" + + rm -f conf.check-test + ifelse([$6], , AC_MSG_ERROR([check not found]), [$6]) + fi +]) + + +dnl AM_PATH_CHECK([MINIMUM-VERSION, [ACTION-IF-FOUND [, ACTION-IF-NOT-FOUND]]]) +dnl Test for check, and define CHECK_CFLAGS and CHECK_LIBS +dnl + +AC_DEFUN([AM_PATH_CHECK], +[ + AC_ARG_WITH(check, + [ --with-check=PATH prefix where check is installed [default=auto]]) + + AC_ARG_WITH(checklibname, + AC_HELP_STRING([--with-check-lib-name=NAME], + [name of the PIC check library (default=check)])) + + min_check_version=ifelse([$1], ,0.8.2,$1) + + if test x$with_check = xno; then + AC_MSG_RESULT(disabled) + ifelse([$3], , AC_MSG_ERROR([disabling check is not supported]), [$3]) + else + if test "x$with_check" != x; then + CHECK_EXTRA_CFLAGS="-I$with_check/include" + CHECK_EXTRA_LIBS="-L$with_check/lib" + else + CHECK_EXTRA_CFLAGS="" + CHECK_EXTRA_LIBS="" + fi + + if test x$with_checklibname = x; then + _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, + check_pic, [have_check=true], [have_check=false]) + if test x$have_check = xtrue; then + ifelse([$2], , :, [$2]) + else + _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, + check, [have_check=true], [have_check=false]) + if test x$have_check = xtrue; then + ifelse([$2], , :, [$2]) + else + ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) + fi + fi + else + _AM_TRY_CHECK($min_check_version, $CHECK_EXTRA_CFLAGS, $CHECK_EXTRA_LIBS, + $with_checklibname, [have_check=true], [have_check=false]) + if test x$have_check = xtrue; then + ifelse([$2], , :, [$2]) + else + ifelse([$3], , AC_MSG_ERROR([check not found]), [$3]) + fi + fi + + AC_SUBST(CHECK_CFLAGS) + AC_SUBST(CHECK_LIBS) + rm -f conf.check-test + fi +]) diff --git a/common/m4/glib-gettext.m4 b/common/m4/glib-gettext.m4 new file mode 100644 index 0000000..f8d442f --- /dev/null +++ b/common/m4/glib-gettext.m4 @@ -0,0 +1,432 @@ +# Copyright (C) 1995-2002 Free Software Foundation, Inc. +# Copyright (C) 2001-2003,2004 Red Hat, Inc. +# +# This file is free software, distributed under the terms of the GNU +# General Public License. As a special exception to the GNU General +# Public License, this file may be distributed as part of a program +# that contains a configuration script generated by Autoconf, under +# the same distribution terms as the rest of that program. +# +# This file can be copied and used freely without restrictions. It can +# be used in projects which are not available under the GNU Public License +# but which still want to provide support for the GNU gettext functionality. +# +# Macro to add for using GNU gettext. +# Ulrich Drepper , 1995, 1996 +# +# Modified to never use included libintl. +# Owen Taylor , 12/15/1998 +# +# Major rework to remove unused code +# Owen Taylor , 12/11/2002 +# +# Added better handling of ALL_LINGUAS from GNU gettext version +# written by Bruno Haible, Owen Taylor 5/30/3002 +# +# Modified to require ngettext +# Matthias Clasen 08/06/2004 +# +# We need this here as well, since someone might use autoconf-2.5x +# to configure GLib then an older version to configure a package +# using AM_GLIB_GNU_GETTEXT +AC_PREREQ(2.53) + +dnl +dnl We go to great lengths to make sure that aclocal won't +dnl try to pull in the installed version of these macros +dnl when running aclocal in the glib directory. +dnl +m4_copy([AC_DEFUN],[glib_DEFUN]) +m4_copy([AC_REQUIRE],[glib_REQUIRE]) +dnl +dnl At the end, if we're not within glib, we'll define the public +dnl definitions in terms of our private definitions. +dnl + +# GLIB_LC_MESSAGES +#-------------------- +glib_DEFUN([GLIB_LC_MESSAGES], + [AC_CHECK_HEADERS([locale.h]) + if test $ac_cv_header_locale_h = yes; then + AC_CACHE_CHECK([for LC_MESSAGES], am_cv_val_LC_MESSAGES, + [AC_TRY_LINK([#include ], [return LC_MESSAGES], + am_cv_val_LC_MESSAGES=yes, am_cv_val_LC_MESSAGES=no)]) + if test $am_cv_val_LC_MESSAGES = yes; then + AC_DEFINE(HAVE_LC_MESSAGES, 1, + [Define if your file defines LC_MESSAGES.]) + fi + fi]) + +# GLIB_PATH_PROG_WITH_TEST +#---------------------------- +dnl GLIB_PATH_PROG_WITH_TEST(VARIABLE, PROG-TO-CHECK-FOR, +dnl TEST-PERFORMED-ON-FOUND_PROGRAM [, VALUE-IF-NOT-FOUND [, PATH]]) +glib_DEFUN([GLIB_PATH_PROG_WITH_TEST], +[# Extract the first word of "$2", so it can be a program name with args. +set dummy $2; ac_word=[$]2 +AC_MSG_CHECKING([for $ac_word]) +AC_CACHE_VAL(ac_cv_path_$1, +[case "[$]$1" in + /*) + ac_cv_path_$1="[$]$1" # Let the user override the test with a path. + ;; + *) + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}:" + for ac_dir in ifelse([$5], , $PATH, [$5]); do + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/$ac_word; then + if [$3]; then + ac_cv_path_$1="$ac_dir/$ac_word" + break + fi + fi + done + IFS="$ac_save_ifs" +dnl If no 4th arg is given, leave the cache variable unset, +dnl so AC_PATH_PROGS will keep looking. +ifelse([$4], , , [ test -z "[$]ac_cv_path_$1" && ac_cv_path_$1="$4" +])dnl + ;; +esac])dnl +$1="$ac_cv_path_$1" +if test ifelse([$4], , [-n "[$]$1"], ["[$]$1" != "$4"]); then + AC_MSG_RESULT([$]$1) +else + AC_MSG_RESULT(no) +fi +AC_SUBST($1)dnl +]) + +# GLIB_WITH_NLS +#----------------- +glib_DEFUN([GLIB_WITH_NLS], + dnl NLS is obligatory + [USE_NLS=yes + AC_SUBST(USE_NLS) + + gt_cv_have_gettext=no + + CATOBJEXT=NONE + XGETTEXT=: + INTLLIBS= + + AC_CHECK_HEADER(libintl.h, + [gt_cv_func_dgettext_libintl="no" + libintl_extra_libs="" + + # + # First check in libc + # + AC_CACHE_CHECK([for ngettext in libc], gt_cv_func_ngettext_libc, + [AC_TRY_LINK([ +#include +], + [return !ngettext ("","", 1)], + gt_cv_func_ngettext_libc=yes, + gt_cv_func_ngettext_libc=no) + ]) + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CACHE_CHECK([for dgettext in libc], gt_cv_func_dgettext_libc, + [AC_TRY_LINK([ +#include +], + [return !dgettext ("","")], + gt_cv_func_dgettext_libc=yes, + gt_cv_func_dgettext_libc=no) + ]) + fi + + if test "$gt_cv_func_ngettext_libc" = "yes" ; then + AC_CHECK_FUNCS(bind_textdomain_codeset) + fi + + # + # If we don't have everything we want, check in libintl + # + if test "$gt_cv_func_dgettext_libc" != "yes" \ + || test "$gt_cv_func_ngettext_libc" != "yes" \ + || test "$ac_cv_func_bind_textdomain_codeset" != "yes" ; then + + AC_CHECK_LIB(intl, bindtextdomain, + [AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dgettext, + gt_cv_func_dgettext_libintl=yes)])]) + + if test "$gt_cv_func_dgettext_libintl" != "yes" ; then + AC_MSG_CHECKING([if -liconv is needed to use gettext]) + AC_MSG_RESULT([]) + AC_CHECK_LIB(intl, ngettext, + [AC_CHECK_LIB(intl, dcgettext, + [gt_cv_func_dgettext_libintl=yes + libintl_extra_libs=-liconv], + :,-liconv)], + :,-liconv) + fi + + # + # If we found libintl, then check in it for bind_textdomain_codeset(); + # we'll prefer libc if neither have bind_textdomain_codeset(), + # and both have dgettext and ngettext + # + if test "$gt_cv_func_dgettext_libintl" = "yes" ; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS -lintl $libintl_extra_libs" + unset ac_cv_func_bind_textdomain_codeset + AC_CHECK_FUNCS(bind_textdomain_codeset) + LIBS="$glib_save_LIBS" + + if test "$ac_cv_func_bind_textdomain_codeset" = "yes" ; then + gt_cv_func_dgettext_libc=no + else + if test "$gt_cv_func_dgettext_libc" = "yes" \ + && test "$gt_cv_func_ngettext_libc" = "yes"; then + gt_cv_func_dgettext_libintl=no + fi + fi + fi + fi + + if test "$gt_cv_func_dgettext_libc" = "yes" \ + || test "$gt_cv_func_dgettext_libintl" = "yes"; then + gt_cv_have_gettext=yes + fi + + if test "$gt_cv_func_dgettext_libintl" = "yes"; then + INTLLIBS="-lintl $libintl_extra_libs" + fi + + if test "$gt_cv_have_gettext" = "yes"; then + AC_DEFINE(HAVE_GETTEXT,1, + [Define if the GNU gettext() function is already present or preinstalled.]) + GLIB_PATH_PROG_WITH_TEST(MSGFMT, msgfmt, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep 'dv '`"], no)dnl + if test "$MSGFMT" != "no"; then + glib_save_LIBS="$LIBS" + LIBS="$LIBS $INTLLIBS" + AC_CHECK_FUNCS(dcgettext) + MSGFMT_OPTS= + AC_MSG_CHECKING([if msgfmt accepts -c]) + GLIB_RUN_PROG([$MSGFMT -c -o /dev/null],[ +msgid "" +msgstr "" +"Content-Type: text/plain; charset=UTF-8\n" +"Project-Id-Version: test 1.0\n" +"PO-Revision-Date: 2007-02-15 12:01+0100\n" +"Last-Translator: test \n" +"Language-Team: C \n" +"MIME-Version: 1.0\n" +"Content-Transfer-Encoding: 8bit\n" +], [MSGFMT_OPTS=-c; AC_MSG_RESULT([yes])], [AC_MSG_RESULT([no])]) + AC_SUBST(MSGFMT_OPTS) + AC_PATH_PROG(GMSGFMT, gmsgfmt, $MSGFMT) + GLIB_PATH_PROG_WITH_TEST(XGETTEXT, xgettext, + [test -z "`$ac_dir/$ac_word -h 2>&1 | grep '(HELP)'`"], :) + AC_TRY_LINK(, [extern int _nl_msg_cat_cntr; + return _nl_msg_cat_cntr], + [CATOBJEXT=.gmo + DATADIRNAME=share], + [case $host in + *-*-solaris*) + dnl On Solaris, if bind_textdomain_codeset is in libc, + dnl GNU format message catalog is always supported, + dnl since both are added to the libc all together. + dnl Hence, we'd like to go with DATADIRNAME=share and + dnl and CATOBJEXT=.gmo in this case. + AC_CHECK_FUNC(bind_textdomain_codeset, + [CATOBJEXT=.gmo + DATADIRNAME=share], + [CATOBJEXT=.mo + DATADIRNAME=lib]) + ;; + *) + CATOBJEXT=.mo + DATADIRNAME=lib + ;; + esac]) + LIBS="$glib_save_LIBS" + INSTOBJEXT=.mo + else + gt_cv_have_gettext=no + fi + fi + ]) + + if test "$gt_cv_have_gettext" = "yes" ; then + AC_DEFINE(ENABLE_NLS, 1, + [always defined to indicate that i18n is enabled]) + fi + + dnl Test whether we really found GNU xgettext. + if test "$XGETTEXT" != ":"; then + dnl If it is not GNU xgettext we define it as : so that the + dnl Makefiles still can work. + if $XGETTEXT --omit-header /dev/null 2> /dev/null; then + : ; + else + AC_MSG_RESULT( + [found xgettext program is not GNU xgettext; ignore it]) + XGETTEXT=":" + fi + fi + + # We need to process the po/ directory. + POSUB=po + + AC_OUTPUT_COMMANDS( + [case "$CONFIG_FILES" in *po/Makefile.in*) + sed -e "/POTFILES =/r po/POTFILES" po/Makefile.in > po/Makefile + esac]) + + dnl These rules are solely for the distribution goal. While doing this + dnl we only have to keep exactly one list of the available catalogs + dnl in configure.in. + for lang in $ALL_LINGUAS; do + GMOFILES="$GMOFILES $lang.gmo" + POFILES="$POFILES $lang.po" + done + + dnl Make all variables we use known to autoconf. + AC_SUBST(CATALOGS) + AC_SUBST(CATOBJEXT) + AC_SUBST(DATADIRNAME) + AC_SUBST(GMOFILES) + AC_SUBST(INSTOBJEXT) + AC_SUBST(INTLLIBS) + AC_SUBST(PO_IN_DATADIR_TRUE) + AC_SUBST(PO_IN_DATADIR_FALSE) + AC_SUBST(POFILES) + AC_SUBST(POSUB) + ]) + +# AM_GLIB_GNU_GETTEXT +# ------------------- +# Do checks necessary for use of gettext. If a suitable implementation +# of gettext is found in either in libintl or in the C library, +# it will set INTLLIBS to the libraries needed for use of gettext +# and AC_DEFINE() HAVE_GETTEXT and ENABLE_NLS. (The shell variable +# gt_cv_have_gettext will be set to "yes".) It will also call AC_SUBST() +# on various variables needed by the Makefile.in.in installed by +# glib-gettextize. +dnl +glib_DEFUN([GLIB_GNU_GETTEXT], + [AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AC_HEADER_STDC])dnl + + GLIB_LC_MESSAGES + GLIB_WITH_NLS + + if test "$gt_cv_have_gettext" = "yes"; then + if test "x$ALL_LINGUAS" = "x"; then + LINGUAS= + else + AC_MSG_CHECKING(for catalogs to be installed) + NEW_LINGUAS= + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "${LINGUAS-%UNSET%}"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + NEW_LINGUAS="$NEW_LINGUAS $presentlang" + fi + done + LINGUAS=$NEW_LINGUAS + AC_MSG_RESULT($LINGUAS) + fi + + dnl Construct list of names of catalog files to be constructed. + if test -n "$LINGUAS"; then + for lang in $LINGUAS; do CATALOGS="$CATALOGS $lang$CATOBJEXT"; done + fi + fi + + dnl If the AC_CONFIG_AUX_DIR macro for autoconf is used we possibly + dnl find the mkinstalldirs script in another subdir but ($top_srcdir). + dnl Try to locate is. + MKINSTALLDIRS= + if test -n "$ac_aux_dir"; then + MKINSTALLDIRS="$ac_aux_dir/mkinstalldirs" + fi + if test -z "$MKINSTALLDIRS"; then + MKINSTALLDIRS="\$(top_srcdir)/mkinstalldirs" + fi + AC_SUBST(MKINSTALLDIRS) + + dnl Generate list of files to be processed by xgettext which will + dnl be included in po/Makefile. + test -d po || mkdir po + if test "x$srcdir" != "x."; then + if test "x`echo $srcdir | sed 's@/.*@@'`" = "x"; then + posrcprefix="$srcdir/" + else + posrcprefix="../$srcdir/" + fi + else + posrcprefix="../" + fi + rm -f po/POTFILES + sed -e "/^#/d" -e "/^\$/d" -e "s,.*, $posrcprefix& \\\\," -e "\$s/\(.*\) \\\\/\1/" \ + < $srcdir/po/POTFILES.in > po/POTFILES + ]) + +# AM_GLIB_DEFINE_LOCALEDIR(VARIABLE) +# ------------------------------- +# Define VARIABLE to the location where catalog files will +# be installed by po/Makefile. +glib_DEFUN([GLIB_DEFINE_LOCALEDIR], +[glib_REQUIRE([GLIB_GNU_GETTEXT])dnl +glib_save_prefix="$prefix" +glib_save_exec_prefix="$exec_prefix" +glib_save_datarootdir="$datarootdir" +test "x$prefix" = xNONE && prefix=$ac_default_prefix +test "x$exec_prefix" = xNONE && exec_prefix=$prefix +datarootdir=`eval echo "${datarootdir}"` +if test "x$CATOBJEXT" = "x.mo" ; then + localedir=`eval echo "${libdir}/locale"` +else + localedir=`eval echo "${datadir}/locale"` +fi +prefix="$glib_save_prefix" +exec_prefix="$glib_save_exec_prefix" +datarootdir="$glib_save_datarootdir" +AC_DEFINE_UNQUOTED($1, "$localedir", + [Define the location where the catalogs will be installed]) +]) + +dnl +dnl Now the definitions that aclocal will find +dnl +ifdef(glib_configure_in,[],[ +AC_DEFUN([AM_GLIB_GNU_GETTEXT],[GLIB_GNU_GETTEXT($@)]) +AC_DEFUN([AM_GLIB_DEFINE_LOCALEDIR],[GLIB_DEFINE_LOCALEDIR($@)]) +])dnl + +# GLIB_RUN_PROG(PROGRAM, TEST-FILE, [ACTION-IF-PASS], [ACTION-IF-FAIL]) +# +# Create a temporary file with TEST-FILE as its contents and pass the +# file name to PROGRAM. Perform ACTION-IF-PASS if PROGRAM exits with +# 0 and perform ACTION-IF-FAIL for any other exit status. +AC_DEFUN([GLIB_RUN_PROG], +[cat >conftest.foo <<_ACEOF +$2 +_ACEOF +if AC_RUN_LOG([$1 conftest.foo]); then + m4_ifval([$3], [$3], [:]) +m4_ifvaln([$4], [else $4])dnl +echo "$as_me: failed input was:" >&AS_MESSAGE_LOG_FD +sed 's/^/| /' conftest.foo >&AS_MESSAGE_LOG_FD +fi]) + diff --git a/common/m4/gst-arch.m4 b/common/m4/gst-arch.m4 new file mode 100644 index 0000000..2e935d2 --- /dev/null +++ b/common/m4/gst-arch.m4 @@ -0,0 +1,141 @@ +dnl AG_GST_ARCH +dnl sets up defines and automake conditionals for host architecture +dnl checks endianness +dnl defines HOST_CPU + +AC_DEFUN([AG_GST_ARCH], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) dnl we use host_ variables + + dnl Determine CPU + case "x${host_cpu}" in + xi?86 | xk? | xi?86_64) + case $host_os in + solaris*) + AC_CHECK_DECL([__i386], [I386_ABI="yes"], [I386_ABI="no"]) + AC_CHECK_DECL([__amd64], [AMD64_ABI="yes"], [AMD64_ABI="no"]) + + if test "x$I386_ABI" = "xyes" ; then + HAVE_CPU_I386=yes + AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86]) + fi + if test "x$AMD64_ABI" = "xyes" ; then + HAVE_CPU_X86_64=yes + AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64]) + fi + ;; + *) + HAVE_CPU_I386=yes + AC_DEFINE(HAVE_CPU_I386, 1, [Define if the host CPU is an x86]) + + dnl FIXME could use some better detection + dnl (ie CPUID) + case "x${host_cpu}" in + xi386 | xi486) ;; + *) + AC_DEFINE(HAVE_RDTSC, 1, [Define if RDTSC is available]) ;; + esac + ;; + esac + ;; + xpowerpc) + HAVE_CPU_PPC=yes + AC_DEFINE(HAVE_CPU_PPC, 1, [Define if the host CPU is a PowerPC]) ;; + xpowerpc64) + HAVE_CPU_PPC64=yes + AC_DEFINE(HAVE_CPU_PPC64, 1, [Define if the host CPU is a 64 bit PowerPC]) ;; + xalpha*) + HAVE_CPU_ALPHA=yes + AC_DEFINE(HAVE_CPU_ALPHA, 1, [Define if the host CPU is an Alpha]) ;; + xarm*) + HAVE_CPU_ARM=yes + AC_DEFINE(HAVE_CPU_ARM, 1, [Define if the host CPU is an ARM]) ;; + xsparc*) + HAVE_CPU_SPARC=yes + AC_DEFINE(HAVE_CPU_SPARC, 1, [Define if the host CPU is a SPARC]) ;; + xmips*) + HAVE_CPU_MIPS=yes + AC_DEFINE(HAVE_CPU_MIPS, 1, [Define if the host CPU is a MIPS]) ;; + xhppa*) + HAVE_CPU_HPPA=yes + AC_DEFINE(HAVE_CPU_HPPA, 1, [Define if the host CPU is a HPPA]) ;; + xs390*) + HAVE_CPU_S390=yes + AC_DEFINE(HAVE_CPU_S390, 1, [Define if the host CPU is a S390]) ;; + xia64*) + HAVE_CPU_IA64=yes + AC_DEFINE(HAVE_CPU_IA64, 1, [Define if the host CPU is a IA64]) ;; + xm68k*) + HAVE_CPU_M68K=yes + AC_DEFINE(HAVE_CPU_M68K, 1, [Define if the host CPU is a M68K]) ;; + xx86_64) + HAVE_CPU_X86_64=yes + AC_DEFINE(HAVE_CPU_X86_64, 1, [Define if the host CPU is a x86_64]) ;; + xcris) + HAVE_CPU_CRIS=yes + AC_DEFINE(HAVE_CPU_CRIS, 1, [Define if the host CPU is a CRIS]) ;; + xcrisv32) + HAVE_CPU_CRISV32=yes + AC_DEFINE(HAVE_CPU_CRISV32, 1, [Define if the host CPU is a CRISv32]) ;; + esac + + dnl Determine endianness + AC_C_BIGENDIAN + + AM_CONDITIONAL(HAVE_CPU_I386, test "x$HAVE_CPU_I386" = "xyes") + AM_CONDITIONAL(HAVE_CPU_PPC, test "x$HAVE_CPU_PPC" = "xyes") + AM_CONDITIONAL(HAVE_CPU_PPC64, test "x$HAVE_CPU_PPC64" = "xyes") + AM_CONDITIONAL(HAVE_CPU_ALPHA, test "x$HAVE_CPU_ALPHA" = "xyes") + AM_CONDITIONAL(HAVE_CPU_ARM, test "x$HAVE_CPU_ARM" = "xyes") + AM_CONDITIONAL(HAVE_CPU_SPARC, test "x$HAVE_CPU_SPARC" = "xyes") + AM_CONDITIONAL(HAVE_CPU_HPPA, test "x$HAVE_CPU_HPPA" = "xyes") + AM_CONDITIONAL(HAVE_CPU_MIPS, test "x$HAVE_CPU_MIPS" = "xyes") + AM_CONDITIONAL(HAVE_CPU_S390, test "x$HAVE_CPU_S390" = "xyes") + AM_CONDITIONAL(HAVE_CPU_IA64, test "x$HAVE_CPU_IA64" = "xyes") + AM_CONDITIONAL(HAVE_CPU_M68K, test "x$HAVE_CPU_M68K" = "xyes") + AM_CONDITIONAL(HAVE_CPU_X86_64, test "x$HAVE_CPU_X86_64" = "xyes") + AM_CONDITIONAL(HAVE_CPU_CRIS, test "x$HAVE_CPU_CRIS" = "xyes") + AM_CONDITIONAL(HAVE_CPU_CRISV32, test "x$HAVE_CPU_CRISV32" = "xyes") + + AC_DEFINE_UNQUOTED(HOST_CPU, "$host_cpu", [the host CPU]) +]) + +dnl check if unaligned memory access works correctly +AC_DEFUN([AG_GST_UNALIGNED_ACCESS], [ + AC_MSG_CHECKING([if unaligned memory access works correctly]) + if test x"$as_cv_unaligned_access" = x ; then + case $host in + alpha*|arm*|hp*|mips*|sh*|sparc*|ia64*) + _AS_ECHO_N([(blacklisted) ]) + as_cv_unaligned_access=no + ;; + i?86*|x86_64*|amd64*|powerpc*|m68k*|cris*) + _AS_ECHO_N([(whitelisted) ]) + as_cv_unaligned_access=yes + ;; + esac + else + _AS_ECHO_N([(cached) ]) + fi + if test x"$as_cv_unaligned_access" = x ; then + AC_TRY_RUN([ +int main(int argc, char **argv) +{ + char array[] = "ABCDEFGH"; + unsigned int iarray[2]; + memcpy(iarray,array,8); +#define GET(x) (*(unsigned int *)((char *)iarray + (x))) + if(GET(0) != 0x41424344 && GET(0) != 0x44434241) return 1; + if(GET(1) != 0x42434445 && GET(1) != 0x45444342) return 1; + if(GET(2) != 0x43444546 && GET(2) != 0x46454443) return 1; + if(GET(3) != 0x44454647 && GET(3) != 0x47464544) return 1; + return 0; +} + ], as_cv_unaligned_access="yes", as_cv_unaligned_access="no") + fi + AC_MSG_RESULT($as_cv_unaligned_access) + if test "$as_cv_unaligned_access" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_UNALIGNED_ACCESS, 1, + [defined if unaligned memory access works correctly]) + fi +]) diff --git a/common/m4/gst-args.m4 b/common/m4/gst-args.m4 new file mode 100644 index 0000000..ccdd4da --- /dev/null +++ b/common/m4/gst-args.m4 @@ -0,0 +1,330 @@ +dnl configure-time options shared among gstreamer modules + +dnl AG_GST_ARG_DEBUG +dnl AG_GST_ARG_PROFILING +dnl AG_GST_ARG_VALGRIND +dnl AG_GST_ARG_GCOV + +dnl AG_GST_ARG_EXAMPLES + +dnl AG_GST_ARG_WITH_PKG_CONFIG_PATH +dnl AG_GST_ARG_WITH_PACKAGE_NAME +dnl AG_GST_ARG_WITH_PACKAGE_ORIGIN + +dnl AG_GST_ARG_WITH_PLUGINS +dnl AG_GST_CHECK_PLUGIN +dnl AG_GST_DISABLE_PLUGIN + +dnl AG_GST_ARG_ENABLE_EXTERNAL +dnl AG_GST_ARG_ENABLE_EXPERIMENTAL +dnl AG_GST_ARG_ENABLE_BROKEN + +AC_DEFUN([AG_GST_ARG_DEBUG], +[ + dnl debugging stuff + AC_ARG_ENABLE(debug, + AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]), + [ + case "${enableval}" in + yes) USE_DEBUG=yes ;; + no) USE_DEBUG=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; + esac + ], + [USE_DEBUG=yes]) dnl Default value +]) + +AC_DEFUN([AG_GST_ARG_PROFILING], +[ + AC_ARG_ENABLE(profiling, + AC_HELP_STRING([--enable-profiling], + [adds -pg to compiler commandline, for profiling]), + [ + case "${enableval}" in + yes) USE_PROFILING=yes ;; + no) USE_PROFILING=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-profiling) ;; + esac + ], + [USE_PROFILING=no]) dnl Default value +]) + +AC_DEFUN([AG_GST_ARG_VALGRIND], +[ + dnl valgrind inclusion + AC_ARG_ENABLE(valgrind, + AC_HELP_STRING([--disable-valgrind],[disable run-time valgrind detection]), + [ + case "${enableval}" in + yes) USE_VALGRIND="$USE_DEBUG" ;; + no) USE_VALGRIND=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind) ;; + esac + ], + [USE_VALGRIND="$USE_DEBUG"]) dnl Default value + VALGRIND_REQ="3.0" + if test "x$USE_VALGRIND" = xyes; then + PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, + USE_VALGRIND="yes", + [ + USE_VALGRIND="no" + AC_MSG_RESULT([no]) + ]) + fi + if test "x$USE_VALGRIND" = xyes; then + AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) + AC_MSG_NOTICE(Using extra code paths for valgrind) + fi +]) + +AC_DEFUN([AG_GST_ARG_GCOV], +[ + AC_ARG_ENABLE(gcov, + AC_HELP_STRING([--enable-gcov], + [compile with coverage profiling instrumentation (gcc only)]), + enable_gcov=$enableval, + enable_gcov=no) + if test x$enable_gcov = xyes ; then + if test "x$GCC" != "xyes" + then + AC_MSG_ERROR([gcov only works if gcc is used]) + fi + + AS_COMPILER_FLAG(["-fprofile-arcs"], + [GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs"], + true) + AS_COMPILER_FLAG(["-ftest-coverage"], + [GCOV_CFLAGS="$GCOV_CFLAGS -ftest-coverage"], + true) + dnl remove any -O flags - FIXME: is this needed ? + GCOV_CFLAGS=`echo "$GCOV_CFLAGS" | sed -e 's/-O[[0-9]]*//g'` + dnl libtool 1.5.22 and lower strip -fprofile-arcs from the flags + dnl passed to the linker, which is a bug; -fprofile-arcs implicitly + dnl links in -lgcov, so we do it explicitly here for the same effect + GCOV_LIBS=-lgcov + AC_SUBST(GCOV_CFLAGS) + AC_SUBST(GCOV_LIBS) + GCOV=`echo $CC | sed s/gcc/gcov/g` + AC_SUBST(GCOV) + + GST_GCOV_ENABLED=yes + AC_DEFINE_UNQUOTED(GST_GCOV_ENABLED, 1, + [Defined if gcov is enabled to force a rebuild due to config.h changing]) + dnl if gcov is used, we do not want default -O2 CFLAGS + if test "x$GST_GCOV_ENABLED" = "xyes" + then + CFLAGS="-O0" + AC_SUBST(CFLAGS) + CXXFLAGS="-O0" + AC_SUBST(CXXFLAGS) + FFLAGS="-O0" + AC_SUBST(FFLAGS) + CCASFLAGS="-O0" + AC_SUBST(CCASFLAGS) + AC_MSG_NOTICE([gcov enabled, setting CFLAGS and friends to $CFLAGS]) + fi + fi + AM_CONDITIONAL(GST_GCOV_ENABLED, test x$enable_gcov = xyes) +]) + +AC_DEFUN([AG_GST_ARG_EXAMPLES], +[ + AC_ARG_ENABLE(examples, + AC_HELP_STRING([--disable-examples], [disable building examples]), + [ + case "${enableval}" in + yes) BUILD_EXAMPLES=yes ;; + no) BUILD_EXAMPLES=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --disable-examples) ;; + esac + ], + [BUILD_EXAMPLES=yes]) dnl Default value + AM_CONDITIONAL(BUILD_EXAMPLES, test "x$BUILD_EXAMPLES" = "xyes") +]) + +AC_DEFUN([AG_GST_ARG_WITH_PKG_CONFIG_PATH], +[ + dnl possibly modify pkg-config path + AC_ARG_WITH(pkg-config-path, + AC_HELP_STRING([--with-pkg-config-path], + [colon-separated list of pkg-config(1) dirs]), + [ + export PKG_CONFIG_PATH=${withval} + AC_MSG_NOTICE(Set PKG_CONFIG_PATH to $PKG_CONFIG_PATH) + ]) +]) + + +dnl This macro requires that GST_GIT or GST_CVS is set to yes or no (release) +AC_DEFUN([AG_GST_ARG_WITH_PACKAGE_NAME], +[ + dnl package name in plugins + AC_ARG_WITH(package-name, + AC_HELP_STRING([--with-package-name], + [specify package name to use in plugins]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-package-name) ;; + *) GST_PACKAGE_NAME="${withval}" ;; + esac + ], + [ + P=$1 + if test "x$P" = "x" + then + P=$PACKAGE_NAME + fi + + if test "x$PACKAGE_VERSION_NANO" = "x0" + then + GST_PACKAGE_NAME="$P source release" + else + if test "x$PACKAGE_VERSION_NANO" = "x1" + then + GST_PACKAGE_NAME="$P git" + else + GST_PACKAGE_NAME="$P prerelease" + fi + fi + ] + ) + AC_MSG_NOTICE(Using $GST_PACKAGE_NAME as package name) + AC_DEFINE_UNQUOTED(GST_PACKAGE_NAME, "$GST_PACKAGE_NAME", + [package name in plugins]) + AC_SUBST(GST_PACKAGE_NAME) +]) + +AC_DEFUN([AG_GST_ARG_WITH_PACKAGE_ORIGIN], +[ + dnl package origin URL + AC_ARG_WITH(package-origin, + AC_HELP_STRING([--with-package-origin], + [specify package origin URL to use in plugins]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-package-origin) ;; + *) GST_PACKAGE_ORIGIN="${withval}" ;; + esac + ], + [GST_PACKAGE_ORIGIN="[Unknown package origin]"] dnl Default value + ) + AC_MSG_NOTICE(Using $GST_PACKAGE_ORIGIN as package origin) + AC_DEFINE_UNQUOTED(GST_PACKAGE_ORIGIN, "$GST_PACKAGE_ORIGIN", + [package origin]) + AC_SUBST(GST_PACKAGE_ORIGIN) +]) + +dnl sets WITH_PLUGINS to the list of plug-ins given as an argument +dnl also clears GST_PLUGINS_ALL and GST_PLUGINS_SELECTED +AC_DEFUN([AG_GST_ARG_WITH_PLUGINS], +[ + AC_ARG_WITH(plugins, + AC_HELP_STRING([--with-plugins], + [comma-separated list of dependencyless plug-ins to compile]), + [WITH_PLUGINS=$withval], + [WITH_PLUGINS=]) + + GST_PLUGINS_ALL="" + GST_PLUGINS_SELECTED="" + + AC_SUBST(GST_PLUGINS_ALL) + AC_SUBST(GST_PLUGINS_SELECTED) +]) + +dnl AG_GST_CHECK_PLUGIN(PLUGIN-NAME) +dnl +dnl This macro adds the plug-in to GST_PLUGINS_ALL. Then it +dnl checks if WITH_PLUGINS is empty or the plugin is present in WITH_PLUGINS, +dnl and if so adds it to GST_PLUGINS_SELECTED. Then it checks if the plugin +dnl is present in WITHOUT_PLUGINS (ie. was disabled specifically) and if so +dnl removes it from GST_PLUGINS_SELECTED. +dnl +dnl The macro will call AM_CONDITIONAL(USE_PLUGIN_, ...) to allow +dnl control of what is built in Makefile.ams. +AC_DEFUN([AG_GST_CHECK_PLUGIN], +[ + GST_PLUGINS_ALL="$GST_PLUGINS_ALL [$1]" + + define([pname_def],translit([$1], -a-z, _a-z)) + + AC_ARG_ENABLE([$1], + AC_HELP_STRING([--disable-[$1]], [disable dependency-less $1 plugin]), + [ + case "${enableval}" in + yes) [gst_use_]pname_def=yes ;; + no) [gst_use_]pname_def=no ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-$1]) ;; + esac + ], + [[gst_use_]pname_def=yes]) dnl Default value + + if test x$[gst_use_]pname_def = xno; then + AC_MSG_NOTICE(disabling dependency-less plugin $1) + WITHOUT_PLUGINS="$WITHOUT_PLUGINS [$1]" + fi + undefine([pname_def]) + + if [[ -z "$WITH_PLUGINS" ]] || echo " [$WITH_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED [$1]" + fi + if echo " [$WITHOUT_PLUGINS] " | tr , ' ' | grep -i " [$1] " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'` + fi + AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), echo " $GST_PLUGINS_SELECTED " | grep -i " [$1] " > /dev/null) +]) + +dnl AG_GST_DISABLE_PLUGIN(PLUGIN-NAME) +dnl +dnl This macro disables the plug-in by removing it from +dnl GST_PLUGINS_SELECTED. +AC_DEFUN([AG_GST_DISABLE_PLUGIN], +[ + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ [$1] / /'` + AM_CONDITIONAL([USE_PLUGIN_]translit([$1], a-z, A-Z), false) +]) + +AC_DEFUN([AG_GST_ARG_ENABLE_EXTERNAL], +[ + AG_GST_CHECK_FEATURE(EXTERNAL, [building of plug-ins with external deps],, + HAVE_EXTERNAL=yes, enabled, + [ + AC_MSG_NOTICE(building external plug-ins) + BUILD_EXTERNAL="yes" + ],[ + AC_MSG_WARN(all plug-ins with external dependencies will not be built) + BUILD_EXTERNAL="no" + ]) + # make BUILD_EXTERNAL available to Makefile.am + AM_CONDITIONAL(BUILD_EXTERNAL, test "x$BUILD_EXTERNAL" = "xyes") +]) + +dnl experimental plug-ins; stuff that hasn't had the dust settle yet +dnl read 'builds, but might not work' +AC_DEFUN([AG_GST_ARG_ENABLE_EXPERIMENTAL], +[ + AG_GST_CHECK_FEATURE(EXPERIMENTAL, [building of experimental plug-ins],, + HAVE_EXPERIMENTAL=yes, disabled, + [ + AC_MSG_WARN(building experimental plug-ins) + BUILD_EXPERIMENTAL="yes" + ],[ + AC_MSG_NOTICE(not building experimental plug-ins) + BUILD_EXPERIMENTAL="no" + ]) + # make BUILD_EXPERIMENTAL available to Makefile.am + AM_CONDITIONAL(BUILD_EXPERIMENTAL, test "x$BUILD_EXPERIMENTAL" = "xyes") +]) + +dnl broken plug-ins; stuff that doesn't seem to build at the moment +AC_DEFUN([AG_GST_ARG_ENABLE_BROKEN], +[ + AG_GST_CHECK_FEATURE(BROKEN, [building of broken plug-ins],, + HAVE_BROKEN=yes, disabled, + [ + AC_MSG_WARN([building broken plug-ins -- no bug reports on these, only patches ...]) + ],[ + AC_MSG_NOTICE([not building broken plug-ins]) + ]) +]) diff --git a/common/m4/gst-check.m4 b/common/m4/gst-check.m4 new file mode 100644 index 0000000..3fd3acf --- /dev/null +++ b/common/m4/gst-check.m4 @@ -0,0 +1,262 @@ +dnl pkg-config-based checks for GStreamer modules and dependency modules + +dnl generic: +dnl AG_GST_PKG_CHECK_MODULES([PREFIX], [WHICH], [REQUIRED]) +dnl sets HAVE_[$PREFIX], [$PREFIX]_* +dnl AG_GST_CHECK_MODULES([PREFIX], [MODULE], [MINVER], [NAME], [REQUIRED]) +dnl sets HAVE_[$PREFIX], [$PREFIX]_* + +dnl specific: +dnl AG_GST_CHECK_GST([MAJMIN], [MINVER], [REQUIRED]) +dnl also sets/ACSUBSTs GST_TOOLS_DIR and GST_PLUGINS_DIR +dnl AG_GST_CHECK_GST_BASE([MAJMIN], [MINVER], [REQUIRED]) +dnl AG_GST_CHECK_GST_GDP([MAJMIN], [MINVER], [REQUIRED]) +dnl AG_GST_CHECK_GST_CONTROLLER([MAJMIN], [MINVER], [REQUIRED]) +dnl AG_GST_CHECK_GST_CHECK([MAJMIN], [MINVER], [REQUIRED]) +dnl AG_GST_CHECK_GST_PLUGINS_BASE([MAJMIN], [MINVER], [REQUIRED]) +dnl also sets/ACSUBSTs GSTPB_PLUGINS_DIR + +AC_DEFUN([AG_GST_PKG_CHECK_MODULES], +[ + which="[$2]" + dnl not required by default, since we use this mostly for plugin deps + required=ifelse([$3], , "no", [$3]) + + PKG_CHECK_MODULES([$1], $which, + [ + HAVE_[$1]="yes" + ], + [ + HAVE_[$1]="no" + if test "x$required" = "xyes"; then + AC_MSG_ERROR($[$1]_PKG_ERRORS) + else + AC_MSG_NOTICE($[$1]_PKG_ERRORS) + fi + ]) + + dnl AC_SUBST of CFLAGS and LIBS was not done before automake 1.7 + dnl It gets done automatically in automake >= 1.7, which we now require +])) + +AC_DEFUN([AG_GST_CHECK_MODULES], +[ + module=[$2] + minver=[$3] + name="[$4]" + required=ifelse([$5], , "yes", [$5]) dnl required by default + + PKG_CHECK_MODULES([$1], $module >= $minver, + [ + HAVE_[$1]="yes" + ], + [ + HAVE_[$1]="no" + AC_MSG_NOTICE($[$1]_PKG_ERRORS) + if test "x$required" = "xyes"; then + AC_MSG_ERROR([no $module >= $minver ($name) found]) + else + AC_MSG_NOTICE([no $module >= $minver ($name) found]) + fi + ]) + + dnl AC_SUBST of CFLAGS and LIBS was not done before automake 1.7 + dnl It gets done automatically in automake >= 1.7, which we now require +])) + +AC_DEFUN([AG_GST_CHECK_GST], +[ + AG_GST_CHECK_MODULES(GST, gstreamer-[$1], [$2], [GStreamer], [$3]) + dnl allow setting before calling this macro to override + if test -z $GST_TOOLS_DIR; then + GST_TOOLS_DIR=`$PKG_CONFIG --variable=toolsdir gstreamer-[$1]` + if test -z $GST_TOOLS_DIR; then + AC_MSG_ERROR( + [no tools dir set in GStreamer pkg-config file, core upgrade needed.]) + fi + fi + AC_MSG_NOTICE([using GStreamer tools in $GST_TOOLS_DIR]) + AC_SUBST(GST_TOOLS_DIR) + + dnl check for where core plug-ins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GST_PLUGINS_DIR; then + GST_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-[$1]` + if test -z $GST_PLUGINS_DIR; then + AC_MSG_ERROR( + [no pluginsdir set in GStreamer pkg-config file, core upgrade needed.]) + fi + fi + AC_MSG_NOTICE([using GStreamer plug-ins in $GST_PLUGINS_DIR]) + AC_SUBST(GST_PLUGINS_DIR) +]) + +AC_DEFUN([AG_GST_CHECK_GST_BASE], +[ + AG_GST_CHECK_MODULES(GST_BASE, gstreamer-base-[$1], [$2], + [GStreamer Base Libraries], [$3]) +]) + +AC_DEFUN([AG_GST_CHECK_GST_GDP], +[ + AG_GST_CHECK_MODULES(GST_GDP, gstreamer-dataprotocol-[$1], [$2], + [GStreamer Data Protocol Library], [$3]) +]) + +AC_DEFUN([AG_GST_CHECK_GST_CONTROLLER], +[ + AG_GST_CHECK_MODULES(GST_CONTROLLER, gstreamer-controller-[$1], [$2], + [GStreamer Controller Library], [$3]) +]) + +AC_DEFUN([AG_GST_CHECK_GST_CHECK], +[ + AG_GST_CHECK_MODULES(GST_CHECK, gstreamer-check-[$1], [$2], + [GStreamer Check unittest Library], [$3]) +]) + +dnl =========================================================================== +dnl AG_GST_CHECK_GST_PLUGINS_BASE([GST-MAJORMINOR], [MIN-VERSION], [REQUIRED]) +dnl +dnl Sets GST_PLUGINS_BASE_CFLAGS and GST_PLUGINS_BASE_LIBS. +dnl +dnl Also sets GSTPB_PLUGINS_DIR (and for consistency also GST_PLUGINS_BASE_DIR) +dnl for use in Makefile.am. This is only really needed/useful in uninstalled +dnl setups, since in an installed setup all plugins will be found in +dnl GST_PLUGINS_DIR anyway. +dnl =========================================================================== +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BASE], +[ + AG_GST_CHECK_MODULES(GST_PLUGINS_BASE, gstreamer-plugins-base-[$1], [$2], + [GStreamer Base Plugins], [$3]) + + if test "x$HAVE_GST_PLUGINS_BASE" = "xyes"; then + dnl check for where base plugins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GSTPB_PLUGINS_DIR; then + GSTPB_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-base-[$1]` + if test -z $GSTPB_PLUGINS_DIR; then + AC_MSG_ERROR( + [no pluginsdir set in GStreamer Base Plugins pkg-config file]) + fi + fi + AC_MSG_NOTICE([using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR]) + GST_PLUGINS_BASE_DIR="$GSTPB_PLUGINS_DIR/gst:$GSTPB_PLUGINS_DIR/sys:$GSTPB_PLUGINS_DIR/ext" + AC_SUBST(GST_PLUGINS_BASE_DIR) + AC_SUBST(GSTPB_PLUGINS_DIR) + fi +]) + +dnl =========================================================================== +dnl AG_GST_CHECK_GST_PLUGINS_GOOD([GST-MAJORMINOR], [MIN-VERSION]) +dnl +dnl Will set GST_PLUGINS_GOOD_DIR for use in Makefile.am. Note that this will +dnl only be set in an uninstalled setup, since -good ships no .pc file and in +dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. +dnl =========================================================================== +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_GOOD], +[ + AG_GST_CHECK_MODULES(GST_PLUGINS_GOOD, gstreamer-plugins-good-[$1], [$2], + [GStreamer Good Plugins], [no]) + + if test "x$HAVE_GST_PLUGINS_GOOD" = "xyes"; then + dnl check for where good plugins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GST_PLUGINS_GOOD_DIR; then + GST_PLUGINS_GOOD_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-good-[$1]` + if test -z $GST_PLUGINS_GOOD_DIR; then + AC_MSG_ERROR([no pluginsdir set in GStreamer Good Plugins pkg-config file]) + fi + fi + AC_MSG_NOTICE([using GStreamer Good Plugins in $GST_PLUGINS_GOOD_DIR]) + GST_PLUGINS_GOOD_DIR="$GST_PLUGINS_GOOD_DIR/gst:$GST_PLUGINS_GOOD_DIR/sys:$GST_PLUGINS_GOOD_DIR/ext" + AC_SUBST(GST_PLUGINS_GOOD_DIR) + fi +]) + +dnl =========================================================================== +dnl AG_GST_CHECK_GST_PLUGINS_UGLY([GST-MAJORMINOR], [MIN-VERSION]) +dnl +dnl Will set GST_PLUGINS_UGLY_DIR for use in Makefile.am. Note that this will +dnl only be set in an uninstalled setup, since -bad ships no .pc file and in +dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. +dnl =========================================================================== +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_UGLY], +[ + AG_GST_CHECK_MODULES(GST_PLUGINS_UGLY, gstreamer-plugins-ugly-[$1], [$2], + [GStreamer Ugly Plugins], [no]) + + if test "x$HAVE_GST_PLUGINS_UGLY" = "xyes"; then + dnl check for where ugly plugins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GST_PLUGINS_UGLY_DIR; then + GST_PLUGINS_UGLY_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ugly-[$1]` + if test -z $GST_PLUGINS_UGLY_DIR; then + AC_MSG_ERROR([no pluginsdir set in GStreamer Ugly Plugins pkg-config file]) + fi + fi + AC_MSG_NOTICE([using GStreamer Ugly Plugins in $GST_PLUGINS_UGLY_DIR]) + GST_PLUGINS_UGLY_DIR="$GST_PLUGINS_UGLY_DIR/gst:$GST_PLUGINS_UGLY_DIR/sys:$GST_PLUGINS_UGLY_DIR/ext" + AC_SUBST(GST_PLUGINS_UGLY_DIR) + fi +]) + +dnl =========================================================================== +dnl AG_GST_CHECK_GST_PLUGINS_BAD([GST-MAJORMINOR], [MIN-VERSION]) +dnl +dnl Will set GST_PLUGINS_BAD_DIR for use in Makefile.am. Note that this will +dnl only be set in an uninstalled setup, since -ugly ships no .pc file and in +dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. +dnl =========================================================================== +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_BAD], +[ + AG_GST_CHECK_MODULES(GST_PLUGINS_BAD, gstreamer-plugins-bad-[$1], [$2], + [GStreamer Bad Plugins], [no]) + + if test "x$HAVE_GST_PLUGINS_BAD" = "xyes"; then + dnl check for where bad plugins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GST_PLUGINS_BAD_DIR; then + GST_PLUGINS_BAD_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-bad-[$1]` + if test -z $GST_PLUGINS_BAD_DIR; then + AC_MSG_ERROR([no pluginsdir set in GStreamer Bad Plugins pkg-config file]) + fi + fi + AC_MSG_NOTICE([using GStreamer Bad Plugins in $GST_PLUGINS_BAD_DIR]) + GST_PLUGINS_BAD_DIR="$GST_PLUGINS_BAD_DIR/gst:$GST_PLUGINS_BAD_DIR/sys:$GST_PLUGINS_BAD_DIR/ext" + AC_SUBST(GST_PLUGINS_BAD_DIR) + fi +]) + +dnl =========================================================================== +dnl AG_GST_CHECK_GST_PLUGINS_FFMPEG([GST-MAJORMINOR], [MIN-VERSION]) +dnl +dnl Will set GST_PLUGINS_FFMPEG_DIR for use in Makefile.am. Note that this will +dnl only be set in an uninstalled setup, since -ffmpeg ships no .pc file and in +dnl an installed setup all plugins will be found in GST_PLUGINS_DIR anyway. +dnl =========================================================================== +AC_DEFUN([AG_GST_CHECK_GST_PLUGINS_FFMPEG], +[ + AG_GST_CHECK_MODULES(GST_PLUGINS_FFMPEG, gstreamer-plugins-ffmpeg-[$1], [$2], + [GStreamer FFmpeg Plugins], [no]) + + if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then + dnl check for where ffmpeg plugins got installed + dnl this is used for unit tests + dnl allow setting before calling this macro to override + if test -z $GST_PLUGINS_FFMPEG_DIR; then + GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-[$1]` + if test -z $GST_PLUGINS_FFMPEG_DIR; then + AC_MSG_ERROR([no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file]) + fi + fi + GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg" + AC_MSG_NOTICE([using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR]) + AC_SUBST(GST_PLUGINS_FFMPEG_DIR) + fi +]) diff --git a/common/m4/gst-debuginfo.m4 b/common/m4/gst-debuginfo.m4 new file mode 100644 index 0000000..b48854d --- /dev/null +++ b/common/m4/gst-debuginfo.m4 @@ -0,0 +1,46 @@ +AC_DEFUN([AG_GST_DEBUGINFO], [ +AC_ARG_ENABLE(debug, +AC_HELP_STRING([--disable-debug],[disable addition of -g debugging info]), +[case "${enableval}" in + yes) USE_DEBUG=yes ;; + no) USE_DEBUG=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug) ;; +esac], +[USE_DEBUG=yes]) dnl Default value + +AC_ARG_ENABLE(DEBUG, +AC_HELP_STRING([--disable-DEBUG],[disables compilation of debugging messages]), +[case "${enableval}" in + yes) ENABLE_DEBUG=yes ;; + no) ENABLE_DEBUG=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-DEBUG) ;; +esac], +[ENABLE_DEBUG=yes]) dnl Default value +if test x$ENABLE_DEBUG = xyes; then + AC_DEFINE(GST_DEBUG_ENABLED, 1, [Define if DEBUG statements should be compiled in]) +fi + +AC_ARG_ENABLE(INFO, +AC_HELP_STRING([--disable-INFO],[disables compilation of informational messages]), +[case "${enableval}" in + yes) ENABLE_INFO=yes ;; + no) ENABLE_INFO=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-INFO) ;; +esac], +[ENABLE_INFO=yes]) dnl Default value +if test x$ENABLE_INFO = xyes; then + AC_DEFINE(GST_INFO_ENABLED, 1, [Define if INFO statements should be compiled in]) +fi + +AC_ARG_ENABLE(debug-color, +AC_HELP_STRING([--disable-debug-color],[disables color output of DEBUG and INFO output]), +[case "${enableval}" in + yes) ENABLE_DEBUG_COLOR=yes ;; + no) ENABLE_DEBUG_COLOR=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-debug-color) ;; +esac], +[ENABLE_DEBUG_COLOR=yes]) dnl Default value +if test "x$ENABLE_DEBUG_COLOR" = xyes; then + AC_DEFINE(GST_DEBUG_COLOR, 1, [Define if debugging messages should be colorized]) +fi +]) diff --git a/common/m4/gst-default.m4 b/common/m4/gst-default.m4 new file mode 100644 index 0000000..8de9756 --- /dev/null +++ b/common/m4/gst-default.m4 @@ -0,0 +1,120 @@ +dnl default elements used for tests and such + +dnl AG_GST_DEFAULT_ELEMENTS + +AC_DEFUN([AG_GST_DEFAULT_ELEMENTS], +[ + dnl decide on default elements + dnl FIXME: describe where exactly this gets used + dnl FIXME: decide if it's a problem that this could point to sinks from + dnl depending plugin modules + dnl FIXME: when can we just use autoaudiosrc and autovideosrc? + DEFAULT_AUDIOSINK="autoaudiosink" + DEFAULT_VIDEOSINK="autovideosink" + DEFAULT_AUDIOSRC="alsasrc" + DEFAULT_VIDEOSRC="v4l2src" + DEFAULT_VISUALIZER="goom" + case "$host" in + *-sun-* | *pc-solaris* ) + DEFAULT_AUDIOSRC="sunaudiosrc" + ;; + *-darwin* ) + DEFAULT_AUDIOSRC="osxaudiosrc" + ;; + esac + + dnl Default audio sink + AC_ARG_WITH(default-audiosink, + AC_HELP_STRING([--with-default-audiosink], [specify default audio sink]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosink) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosink) ;; + *) DEFAULT_AUDIOSINK="${withval}" ;; + esac + ], + [ + DEFAULT_AUDIOSINK="$DEFAULT_AUDIOSINK" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_AUDIOSINK as default audio sink) + AC_SUBST(DEFAULT_AUDIOSINK) + AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSINK, "$DEFAULT_AUDIOSINK", + [Default audio sink]) + + dnl Default audio source + AC_ARG_WITH(default-audiosrc, + AC_HELP_STRING([--with-default-audiosrc], [specify default audio source]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosrc) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-audiosrc) ;; + *) DEFAULT_AUDIOSRC="${withval}" ;; + esac + ], + [ + DEFAULT_AUDIOSRC="$DEFAULT_AUDIOSRC" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_AUDIOSRC as default audio source) + AC_SUBST(DEFAULT_AUDIOSRC) + AC_DEFINE_UNQUOTED(DEFAULT_AUDIOSRC, "$DEFAULT_AUDIOSRC", + [Default audio source]) + + dnl Default video sink + AC_ARG_WITH(default-videosink, + AC_HELP_STRING([--with-default-videosink], [specify default video sink]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-videosink) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-videosink) ;; + *) DEFAULT_VIDEOSINK="${withval}" ;; + esac + ], + [ + DEFAULT_VIDEOSINK="$DEFAULT_VIDEOSINK" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VIDEOSINK as default video sink) + AC_SUBST(DEFAULT_VIDEOSINK) + AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSINK, "$DEFAULT_VIDEOSINK", + [Default video sink]) + + dnl Default video source + AC_ARG_WITH(default-videosrc, + AC_HELP_STRING([--with-default-videosrc], [specify default video source]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-videosrc) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-videosrc) ;; + *) DEFAULT_VIDEOSRC="${withval}" ;; + esac + ], + [ + DEFAULT_VIDEOSRC="$DEFAULT_VIDEOSRC" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VIDEOSRC as default video source) + AC_SUBST(DEFAULT_VIDEOSRC) + AC_DEFINE_UNQUOTED(DEFAULT_VIDEOSRC, "$DEFAULT_VIDEOSRC", + [Default video source]) + + dnl Default visualizer + AC_ARG_WITH(default-visualizer, + AC_HELP_STRING([--with-default-visualizer], [specify default visualizer]), + [ + case "${withval}" in + yes) AC_MSG_ERROR(bad value ${withval} for --with-default-visualizer) ;; + no) AC_MSG_ERROR(bad value ${withval} for --with-default-visualizer) ;; + *) DEFAULT_VISUALIZER="${withval}" ;; + esac + ], + [ + DEFAULT_VISUALIZER="$DEFAULT_VISUALIZER" + ] dnl Default value as determined above + ) + AC_MSG_NOTICE(Using $DEFAULT_VISUALIZER as default visualizer) + AC_SUBST(DEFAULT_VISUALIZER) + AC_DEFINE_UNQUOTED(DEFAULT_VISUALIZER, "$DEFAULT_VISUALIZER", + [Default visualizer]) +]) diff --git a/common/m4/gst-doc.m4 b/common/m4/gst-doc.m4 new file mode 100644 index 0000000..6521097 --- /dev/null +++ b/common/m4/gst-doc.m4 @@ -0,0 +1,148 @@ +AC_DEFUN([AG_GST_DOCBOOK_CHECK], +[ + dnl choose a location to install docbook docs in + if test "x$PACKAGE_TARNAME" = "x" + then + AC_MSG_ERROR([Internal error - PACKAGE_TARNAME not set]) + fi + docdir="\$(datadir)/doc/$PACKAGE_TARNAME-$GST_MAJORMINOR" + + dnl enable/disable docbook documentation building + AC_ARG_ENABLE(docbook, + AC_HELP_STRING([--enable-docbook], + [use docbook to build documentation [default=no]]),, + enable_docbook=no) + + have_docbook=no + + if test x$enable_docbook = xyes; then + dnl check if we actually have everything we need + + dnl check for docbook tools + AC_CHECK_PROG(HAVE_DOCBOOK2PS, docbook2ps, yes, no) + AC_CHECK_PROG(HAVE_DOCBOOK2HTML, docbook2html, yes, no) + AC_CHECK_PROG(HAVE_JADETEX, jadetex, yes, no) + AC_CHECK_PROG(HAVE_PS2PDF, ps2pdf, yes, no) + + # -V option appeared in 0.6.10 + docbook2html_min_version=0.6.10 + if test "x$HAVE_DOCBOOK2HTML" != "xno"; then + docbook2html_version=`docbook2html --version` + AC_MSG_CHECKING([docbook2html version ($docbook2html_version) >= $docbook2html_min_version]) + if perl -w < \$min_version_major) || + ((\$docbook2html_version_major == \$min_version_major) && + (\$docbook2html_version_minor >= \$min_version_minor)) || + ((\$docbook2html_version_major == \$min_version_major) && + (\$docbook2html_version_minor >= \$min_version_minor) && + (\$docbook2html_version_micro >= \$min_version_micro))) + ? 0 : 1); +EOF + then + AC_MSG_RESULT(yes) + else + AC_MSG_RESULT(no) + HAVE_DOCBOOK2HTML=no + fi + fi + + dnl check if we can process docbook stuff + AS_DOCBOOK(have_docbook=yes, have_docbook=no) + + dnl check for extra tools + AC_CHECK_PROG(HAVE_DVIPS, dvips, yes, no) + AC_CHECK_PROG(HAVE_XMLLINT, xmllint, yes, no) + + dnl check for image conversion tools + AC_CHECK_PROG(HAVE_FIG2DEV, fig2dev, yes, no) + if test "x$HAVE_FIG2DEV" = "xno" ; then + AC_MSG_WARN([Did not find fig2dev (from xfig), images will not be generated.]) + fi + + dnl The following is a hack: if fig2dev doesn't display an error message + dnl for the desired type, we assume it supports it. + HAVE_FIG2DEV_EPS=no + if test "x$HAVE_FIG2DEV" = "xyes" ; then + fig2dev_quiet=`fig2dev -L eps &1 >/dev/null` + if test "x$fig2dev_quiet" = "x" ; then + HAVE_FIG2DEV_EPS=yes + fi + fi + HAVE_FIG2DEV_PNG=no + if test "x$HAVE_FIG2DEV" = "xyes" ; then + fig2dev_quiet=`fig2dev -L png &1 >/dev/null` + if test "x$fig2dev_quiet" = "x" ; then + HAVE_FIG2DEV_PNG=yes + fi + fi + HAVE_FIG2DEV_PDF=no + if test "x$HAVE_FIG2DEV" = "xyes" ; then + fig2dev_quiet=`fig2dev -L pdf &1 >/dev/null` + if test "x$fig2dev_quiet" = "x" ; then + HAVE_FIG2DEV_PDF=yes + fi + fi + + AC_CHECK_PROG(HAVE_PNGTOPNM, pngtopnm, yes, no) + AC_CHECK_PROG(HAVE_PNMTOPS, pnmtops, yes, no) + AC_CHECK_PROG(HAVE_EPSTOPDF, epstopdf, yes, no) + + dnl check if we can generate HTML + if test "x$HAVE_DOCBOOK2HTML" = "xyes" && \ + test "x$enable_docbook" = "xyes" && \ + test "x$HAVE_XMLLINT" = "xyes" && \ + test "x$HAVE_FIG2DEV_PNG" = "xyes"; then + DOC_HTML=yes + AC_MSG_NOTICE(Will output HTML documentation) + else + DOC_HTML=no + AC_MSG_NOTICE(Will not output HTML documentation) + fi + + dnl check if we can generate PS + if test "x$HAVE_DOCBOOK2PS" = "xyes" && \ + test "x$enable_docbook" = "xyes" && \ + test "x$HAVE_XMLLINT" = "xyes" && \ + test "x$HAVE_JADETEX" = "xyes" && \ + test "x$HAVE_FIG2DEV_EPS" = "xyes" && \ + test "x$HAVE_DVIPS" = "xyes" && \ + test "x$HAVE_PNGTOPNM" = "xyes" && \ + test "x$HAVE_PNMTOPS" = "xyes"; then + DOC_PS=yes + AC_MSG_NOTICE(Will output PS documentation) + else + DOC_PS=no + AC_MSG_NOTICE(Will not output PS documentation) + fi + + dnl check if we can generate PDF - using only ps2pdf + if test "x$DOC_PS" = "xyes" && \ + test "x$enable_docbook" = "xyes" && \ + test "x$HAVE_XMLLINT" = "xyes" && \ + test "x$HAVE_PS2PDF" = "xyes"; then + DOC_PDF=yes + AC_MSG_NOTICE(Will output PDF documentation) + else + DOC_PDF=no + AC_MSG_NOTICE(Will not output PDF documentation) + fi + + dnl if we don't have everything, we should disable + if test "x$have_docbook" != "xyes"; then + enable_docbook=no + fi + fi + + dnl if we're going to install documentation, tell us where + if test "x$have_docbook" = "xyes"; then + AC_MSG_NOTICE(Installing documentation in $docdir) + AC_SUBST(docdir) + fi + + AM_CONDITIONAL(ENABLE_DOCBOOK, test x$enable_docbook = xyes) + AM_CONDITIONAL(DOC_HTML, test x$DOC_HTML = xyes) + AM_CONDITIONAL(DOC_PDF, test x$DOC_PDF = xyes) + AM_CONDITIONAL(DOC_PS, test x$DOC_PS = xyes) +]) diff --git a/common/m4/gst-dowhile.m4 b/common/m4/gst-dowhile.m4 new file mode 100644 index 0000000..069808d --- /dev/null +++ b/common/m4/gst-dowhile.m4 @@ -0,0 +1,24 @@ +dnl +dnl Check for working do while(0) macros. This is used by G_STMT_START +dnl and G_STMT_END in glib/gmacros.h. Without having this defined we +dnl get "ambigious if-else" compiler warnings when compling C++ code. +dnl +dnl Copied from GLib's configure.in +dnl +AC_DEFUN([AG_GST_CHECK_DOWHILE_MACROS],[ + +dnl *** check for working do while(0) macros *** +AC_CACHE_CHECK([for working do while(0) macros], _cv_g_support_dowhile_macros, [ + AC_TRY_COMPILE([],[ + #define STMT_START do + #define STMT_END while(0) + #define STMT_TEST STMT_START { i = 0; } STMT_END + int main(void) { int i = 1; STMT_TEST; return i; }], + [_cv_g_support_dowhile_macros=yes], + [_cv_g_support_dowhile_macros=no], + [_cv_g_support_dowhile_macros=yes]) +]) +if test x$_cv_g_support_dowhile_macros = xyes; then + AC_DEFINE(HAVE_DOWHILE_MACROS, 1, [define for working do while(0) macros]) +fi +]) diff --git a/common/m4/gst-error.m4 b/common/m4/gst-error.m4 new file mode 100644 index 0000000..f8f2364 --- /dev/null +++ b/common/m4/gst-error.m4 @@ -0,0 +1,213 @@ +dnl handle various error-related things + +dnl Thomas Vander Stichele +dnl Tim-Philipp Müller + +dnl Last modification: 2008-02-18 + +dnl AG_GST_SET_ERROR_CFLAGS([ADD-WERROR], [MORE_FLAGS]) +dnl AG_GST_SET_ERROR_CXXFLAGS([ADD-WERROR], [MORE_FLAGS]) +dnl AG_GST_SET_LEVEL_DEFAULT([IS-GIT-VERSION]) + + +dnl Sets WARNING_CFLAGS and ERROR_CFLAGS to something the compiler +dnl will accept and AC_SUBST them so they are available in Makefile +dnl +dnl WARNING_CFLAGS will contain flags to make the compiler emit more +dnl warnings. +dnl ERROR_CFLAGS will contain flags to make those warnings fatal, +dnl unless ADD-WERROR is set to "no" +dnl +dnl If MORE_FLAGS is set, tries to add each of the given flags +dnl to WARNING_CFLAGS if the compiler supports them. Each flag is +dnl tested separately. +dnl +dnl These flags can be overridden at make time: +dnl make ERROR_CFLAGS= +AC_DEFUN([AG_GST_SET_ERROR_CFLAGS], +[ + AC_REQUIRE([AC_PROG_CC]) + AC_REQUIRE([AS_COMPILER_FLAG]) + + WARNING_CFLAGS="" + ERROR_CFLAGS="" + + dnl if we support -Wall, set it unconditionally + AS_COMPILER_FLAG(-Wall, + WARNING_CFLAGS="$WARNING_CFLAGS -Wall") + + dnl Warn if declarations after statements are used (C99 extension) + AS_COMPILER_FLAG(-Wdeclaration-after-statement, + WARNING_CFLAGS="$WARNING_CFLAGS -Wdeclaration-after-statement") + + dnl Warn if variable length arrays are used (C99 extension) + AS_COMPILER_FLAG(-Wvla, + WARNING_CFLAGS="$WARNING_CFLAGS -Wvla") + + dnl Warn for invalid pointer arithmetic + AS_COMPILER_FLAG(-Wpointer-arith, + WARNING_CFLAGS="$WARNING_CFLAGS -Wpointer-arith") + + dnl if asked for, add -Werror if supported + if test "x$1" != "xno" + then + AS_COMPILER_FLAG(-Werror, ERROR_CFLAGS="$ERROR_CFLAGS -Werror") + + dnl if -Werror isn't suported, try -errwarn=%all (Sun Forte case) + if test "x$ERROR_CFLAGS" = "x" + then + AS_COMPILER_FLAG([-errwarn=%all], [ + ERROR_CFLAGS="-errwarn=%all" + dnl try -errwarn=%all,no%E_EMPTY_DECLARATION, + dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH, + dnl no%E_MACRO_REDEFINED (Sun Forte case) + dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon + dnl "statement not reached" disabled because there is g_assert_not_reached () in some places + dnl "macro redefined" because of gst/gettext.h + dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'? + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' \ + 'no%E_LOOP_NOT_ENTERED_AT_TOP' + do + AS_COMPILER_FLAG([-errwarn=%all,$f], [ + ERROR_CFLAGS="$ERROR_CFLAGS,$f" + ]) + done + ]) + else + dnl Add -fno-strict-aliasing for GLib versions before 2.19.8 + dnl as before G_LOCK and friends caused strict aliasing compiler + dnl warnings. + PKG_CHECK_EXISTS([glib-2.0 < 2.19.8], [ + AS_COMPILER_FLAG(-fno-strict-aliasing, + ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing") + ]) + fi + fi + + if test "x$2" != "x" + then + UNSUPPORTED="" + list="$2" + for each in $list + do + AS_COMPILER_FLAG($each, + WARNING_CFLAGS="$WARNING_CFLAGS $each", + UNSUPPORTED="$UNSUPPORTED $each") + done + if test "X$UNSUPPORTED" != X ; then + AC_MSG_NOTICE([unsupported compiler flags: $UNSUPPORTED]) + fi + fi + + AC_SUBST(WARNING_CFLAGS) + AC_SUBST(ERROR_CFLAGS) + AC_MSG_NOTICE([set WARNING_CFLAGS to $WARNING_CFLAGS]) + AC_MSG_NOTICE([set ERROR_CFLAGS to $ERROR_CFLAGS]) +]) + +dnl Sets WARNING_CXXFLAGS and ERROR_CXXFLAGS to something the compiler +dnl will accept and AC_SUBST them so they are available in Makefile +dnl +dnl WARNING_CXXFLAGS will contain flags to make the compiler emit more +dnl warnings. +dnl ERROR_CXXFLAGS will contain flags to make those warnings fatal, +dnl unless ADD-WERROR is set to "no" +dnl +dnl If MORE_FLAGS is set, tries to add each of the given flags +dnl to WARNING_CFLAGS if the compiler supports them. Each flag is +dnl tested separately. +dnl +dnl These flags can be overridden at make time: +dnl make ERROR_CXXFLAGS= +AC_DEFUN([AG_GST_SET_ERROR_CXXFLAGS], +[ + AC_REQUIRE([AC_PROG_CXX]) + AC_REQUIRE([AS_CXX_COMPILER_FLAG]) + + ERROR_CXXFLAGS="" + WARNING_CXXFLAGS="" + + dnl if we support -Wall, set it unconditionally + AS_CXX_COMPILER_FLAG(-Wall, WARNING_CXXFLAGS="$WARNING_CXXFLAGS -Wall") + + dnl if asked for, add -Werror if supported + if test "x$1" != "xno" + then + AS_CXX_COMPILER_FLAG(-Werror, ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror") + + if test "x$ERROR_CXXFLAGS" != "x" + then + dnl add exceptions + AS_CXX_COMPILER_FLAG([-Wno-non-virtual-dtor], ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Wno-non-virtual-dtor") + + dnl Add -fno-strict-aliasing for GLib versions before 2.19.8 + dnl as before G_LOCK and friends caused strict aliasing compiler + dnl warnings. + PKG_CHECK_EXISTS([glib-2.0 < 2.19.8], [ + AS_CXX_COMPILER_FLAG([-fno-strict-aliasing], + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -fno-strict-aliasing") + ]) + else + dnl if -Werror isn't suported, try -errwarn=%all + AS_CXX_COMPILER_FLAG([-errwarn=%all], ERROR_CXXFLAGS="$ERROR_CXXFLAGS -errwarn=%all") + if test "x$ERROR_CXXFLAGS" != "x"; then + dnl try -errwarn=%all,no%E_EMPTY_DECLARATION, + dnl no%E_STATEMENT_NOT_REACHED,no%E_ARGUEMENT_MISMATCH, + dnl no%E_MACRO_REDEFINED (Sun Forte case) + dnl For Forte we need disable "empty declaration" warning produced by un-needed semicolon + dnl "statement not reached" disabled because there is g_assert_not_reached () in some places + dnl "macro redefined" because of gst/gettext.h + dnl FIXME: is it really supposed to be 'ARGUEMENT' and not 'ARGUMENT'? + dnl FIXME: do any of these work with the c++ compiler? if not, why + dnl do we check at all? + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' \ + 'no%E_LOOP_NOT_ENTERED_AT_TOP' + do + AS_CXX_COMPILER_FLAG([-errwarn=%all,$f], ERROR_CXXFLAGS="$ERROR_CXXFLAGS,$f") + done + fi + fi + fi + + if test "x$2" != "x" + then + UNSUPPORTED="" + list="$2" + for each in $list + do + AS_CXX_COMPILER_FLAG($each, + WARNING_CXXFLAGS="$WARNING_CXXFLAGS $each", + UNSUPPORTED="$UNSUPPORTED $each") + done + if test "X$UNSUPPORTED" != X ; then + AC_MSG_NOTICE([unsupported compiler flags: $UNSUPPORTED]) + fi + fi + + AC_SUBST(WARNING_CXXFLAGS) + AC_SUBST(ERROR_CXXFLAGS) + AC_MSG_NOTICE([set WARNING_CXXFLAGS to $WARNING_CXXFLAGS]) + AC_MSG_NOTICE([set ERROR_CXXFLAGS to $ERROR_CXXFLAGS]) +]) + +dnl Sets the default error level for debugging messages +AC_DEFUN([AG_GST_SET_LEVEL_DEFAULT], +[ + dnl define correct errorlevel for debugging messages. We want to have + dnl GST_ERROR messages printed when running cvs builds + if test "x[$1]" = "xyes"; then + GST_LEVEL_DEFAULT=GST_LEVEL_ERROR + else + GST_LEVEL_DEFAULT=GST_LEVEL_NONE + fi + AC_DEFINE_UNQUOTED(GST_LEVEL_DEFAULT, $GST_LEVEL_DEFAULT, + [Default errorlevel to use]) + dnl AC_SUBST so we can use it for win32/common/config.h + AC_SUBST(GST_LEVEL_DEFAULT) +]) diff --git a/common/m4/gst-feature.m4 b/common/m4/gst-feature.m4 new file mode 100644 index 0000000..bfb3a1c --- /dev/null +++ b/common/m4/gst-feature.m4 @@ -0,0 +1,283 @@ +dnl Perform a check for a feature for GStreamer +dnl Richard Boulton +dnl Thomas Vander Stichele added useful stuff +dnl Last modification: 25/06/2001 +dnl +dnl AG_GST_CHECK_FEATURE(FEATURE-NAME, FEATURE-DESCRIPTION, +dnl DEPENDENT-PLUGINS, TEST-FOR-FEATURE, +dnl DISABLE-BY-DEFAULT, ACTION-IF-USE, ACTION-IF-NOTUSE) +dnl +dnl This macro adds a command line argument to allow the user to enable +dnl or disable a feature, and if the feature is enabled, performs a supplied +dnl test to check if the feature is available. +dnl +dnl The test should define HAVE_ to "yes" or "no" depending +dnl on whether the feature is available. +dnl +dnl The macro will set USE_ to "yes" or "no" depending on +dnl whether the feature is to be used. +dnl Thomas changed this, so that when USE_ was already set +dnl to no, then it stays that way. +dnl +dnl The macro will call AM_CONDITIONAL(USE_, ...) to allow +dnl the feature to control what is built in Makefile.ams. If you want +dnl additional actions resulting from the test, you can add them with the +dnl ACTION-IF-USE and ACTION-IF-NOTUSE parameters. +dnl +dnl FEATURE-NAME is the name of the feature, and should be in +dnl purely upper case characters. +dnl FEATURE-DESCRIPTION is used to describe the feature in help text for +dnl the command line argument. +dnl DEPENDENT-PLUGINS lists any plug-ins which depend on this feature. +dnl TEST-FOR-FEATURE is a test which sets HAVE_ to "yes" +dnl or "no" depending on whether the feature is +dnl available. +dnl DISABLE-BY-DEFAULT if "disabled", the feature is disabled by default, +dnl if any other value, the feature is enabled by default. +dnl ACTION-IF-USE any extra actions to perform if the feature is to be +dnl used. +dnl ACTION-IF-NOTUSE any extra actions to perform if the feature is not to +dnl be used. +dnl +dnl +dnl thomas : +dnl we also added a history. +dnl GST_PLUGINS_YES will contain all plugins to be built +dnl that were checked through AG_GST_CHECK_FEATURE +dnl GST_PLUGINS_NO will contain those that won't be built + +AC_DEFUN([AG_GST_CHECK_FEATURE], +[echo +AC_MSG_NOTICE(*** checking feature: [$2] ***) +if test "x[$3]" != "x" +then + AC_MSG_NOTICE(*** for plug-ins: [$3] ***) +fi +dnl +builtin(define, [gst_endisable], ifelse($5, [disabled], [enable], [disable]))dnl +dnl if it is set to NO, then don't even consider it for building +NOUSE= +if test "x$USE_[$1]" = "xno"; then + NOUSE="yes" +fi +AC_ARG_ENABLE(translit([$1], A-Z, a-z), + [ ]builtin(format, --%-26s gst_endisable %s, gst_endisable-translit([$1], A-Z, a-z), [$2]ifelse([$3],,,: [$3])), + [ case "${enableval}" in + yes) USE_[$1]=yes;; + no) USE_[$1]=no;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-translit([$1], A-Z, a-z)) ;; + esac], + [ USE_$1=]ifelse($5, [disabled], [no], [yes])) dnl DEFAULT + +dnl *** set it back to no if it was preset to no +if test "x$NOUSE" = "xyes"; then + USE_[$1]="no" + AC_MSG_WARN(*** $3 pre-configured not to be built) +fi +NOUSE= + +dnl *** If it's enabled + +if test x$USE_[$1] = xyes; then + dnl save compile variables before the test + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_[$1]=no + dnl TEST_FOR_FEATURE + $4 + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + dnl If it isn't found, unset USE_[$1] + if test x$HAVE_[$1] = xno; then + USE_[$1]=no + else + ifelse([$3], , :, [AC_MSG_NOTICE(*** These plugins will be built: [$3])]) + fi +fi +dnl *** Warn if it's disabled or not found +if test x$USE_[$1] = xyes; then + ifelse([$6], , :, [$6]) + if test "x$3" != "x"; then + GST_PLUGINS_YES="\t[$3]\n$GST_PLUGINS_YES" + fi + AC_DEFINE(HAVE_[$1], , [Define to enable $2]ifelse($3,,, [ (used by $3)]).) +else + ifelse([$3], , :, [AC_MSG_NOTICE(*** These plugins will not be built: [$3])]) + if test "x$3" != "x"; then + GST_PLUGINS_NO="\t[$3]\n$GST_PLUGINS_NO" + fi + ifelse([$7], , :, [$7]) +fi +dnl *** Define the conditional as appropriate +AM_CONDITIONAL(USE_[$1], test x$USE_[$1] = xyes) +]) + +dnl Use a -config program which accepts --cflags and --libs parameters +dnl to set *_CFLAGS and *_LIBS and check existence of a feature. +dnl Richard Boulton +dnl Last modification: 26/06/2001 +dnl AG_GST_CHECK_CONFIGPROG(FEATURE-NAME, CONFIG-PROG-FILENAME, MODULES) +dnl +dnl This check was written for GStreamer: it should be renamed and checked +dnl for portability if you decide to use it elsewhere. +dnl +AC_DEFUN([AG_GST_CHECK_CONFIGPROG], +[ + AC_PATH_PROG([$1]_CONFIG, [$2], no) + if test x$[$1]_CONFIG = xno; then + [$1]_LIBS= + [$1]_CFLAGS= + HAVE_[$1]=no + else + if [$2] --plugin-libs [$3] &> /dev/null; then + [$1]_LIBS=`[$2] --plugin-libs [$3]` + else + [$1]_LIBS=`[$2] --libs [$3]` + fi + [$1]_CFLAGS=`[$2] --cflags [$3]` + HAVE_[$1]=yes + fi + AC_SUBST([$1]_LIBS) + AC_SUBST([$1]_CFLAGS) +]) + +dnl Use AC_CHECK_LIB and AC_CHECK_HEADER to do both tests at once +dnl sets HAVE_module if we have it +dnl Richard Boulton +dnl Last modification: 26/06/2001 +dnl AG_GST_CHECK_LIBHEADER(FEATURE-NAME, LIB NAME, LIB FUNCTION, EXTRA LD FLAGS, +dnl HEADER NAME, ACTION-IF-FOUND, ACTION-IF-NOT-FOUND) +dnl +dnl This check was written for GStreamer: it should be renamed and checked +dnl for portability if you decide to use it elsewhere. +dnl +AC_DEFUN([AG_GST_CHECK_LIBHEADER], +[ + AC_CHECK_LIB([$2], [$3], HAVE_[$1]=yes, HAVE_[$1]=no,[$4]) + if test "x$HAVE_[$1]" = "xyes"; then + AC_CHECK_HEADER([$5], :, HAVE_[$1]=no) + if test "x$HAVE_[$1]" = "xyes"; then + dnl execute what needs to be + ifelse([$6], , :, [$6]) + else + ifelse([$7], , :, [$7]) + fi + else + ifelse([$7], , :, [$7]) + fi + AC_SUBST(HAVE_[$1]) +] +) + +dnl 2004-02-14 Thomas - changed to get set properly and use proper output +dnl 2003-06-27 Benjamin Otte - changed to make this work with gstconfig.h +dnl +dnl Add a subsystem --disable flag and all the necessary symbols and substitions +dnl +dnl AG_GST_CHECK_SUBSYSTEM_DISABLE(SYSNAME, [subsystem name]) +dnl +AC_DEFUN([AG_GST_CHECK_SUBSYSTEM_DISABLE], +[ + dnl this define will replace each literal subsys_def occurrence with + dnl the lowercase hyphen-separated subsystem + dnl e.g. if $1 is GST_DEBUG then subsys_def will be a macro with gst-debug + define([subsys_def],translit([$1], _A-Z, -a-z)) + + AC_ARG_ENABLE(subsys_def, + AC_HELP_STRING(--disable-subsys_def, [disable $2]), + [ + case "${enableval}" in + yes) GST_DISABLE_[$1]=no ;; + no) GST_DISABLE_[$1]=yes ;; + *) AC_MSG_ERROR([bad value ${enableval} for --enable-subsys_def]) ;; + esac + ], + [GST_DISABLE_[$1]=no]) dnl Default value + + if test x$GST_DISABLE_[$1] = xyes; then + AC_MSG_NOTICE([disabled subsystem [$2]]) + GST_DISABLE_[$1]_DEFINE="#define GST_DISABLE_$1 1" + else + GST_DISABLE_[$1]_DEFINE="/* #undef GST_DISABLE_$1 */" + fi + AC_SUBST(GST_DISABLE_[$1]_DEFINE) + undefine([subsys_def]) +]) + + +dnl Parse gstconfig.h for feature and defines add the symbols and substitions +dnl +dnl AG_GST_PARSE_SUBSYSTEM_DISABLE(GST_CONFIGPATH, FEATURE) +dnl +AC_DEFUN([AG_GST_PARSE_SUBSYSTEM_DISABLE], +[ + grep >/dev/null "#undef GST_DISABLE_$2" $1 + if test $? = 0; then + GST_DISABLE_[$2]=0 + else + GST_DISABLE_[$2]=1 + fi + AC_SUBST(GST_DISABLE_[$2]) +]) + +dnl Parse gstconfig.h and defines add the symbols and substitions +dnl +dnl GST_CONFIGPATH=`$PKG_CONFIG --variable=includedir gstreamer-0.10`"/gst/gstconfig.h" +dnl AG_GST_PARSE_SUBSYSTEM_DISABLES(GST_CONFIGPATH) +dnl +AC_DEFUN([AG_GST_PARSE_SUBSYSTEM_DISABLES], +[ + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,GST_DEBUG) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,LOADSAVE) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,PARSE) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,TRACE) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,ALLOC_TRACE) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,REGISTRY) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,PLUGIN) + AG_GST_PARSE_SUBSYSTEM_DISABLE($1,XML) +]) + + + +dnl relies on GST_PLUGINS_ALL, GST_PLUGINS_SELECTED, GST_PLUGINS_YES, +dnl GST_PLUGINS_NO, and BUILD_EXTERNAL +AC_DEFUN([AG_GST_OUTPUT_PLUGINS], [ + +printf "configure: *** Plug-ins without external dependencies that will be built:\n" +( for i in $GST_PLUGINS_SELECTED; do printf '\t'$i'\n'; done ) | sort +printf "\n" + +printf "configure: *** Plug-ins without external dependencies that will NOT be built:\n" +( for i in $GST_PLUGINS_ALL; do + case " $GST_PLUGINS_SELECTED " in + *\ $i\ *) + ;; + *) + printf '\t'$i'\n' + ;; + esac + done ) | sort +printf "\n" + +if test "x$BUILD_EXTERNAL" = "xno"; then + printf "configure: *** No plug-ins with external dependencies will be built\n" +else + printf "configure: *** Plug-ins with dependencies that will be built:" + printf "$GST_PLUGINS_YES\n" | sort + printf "\n" + printf "configure: *** Plug-ins with dependencies that will NOT be built:" + printf "$GST_PLUGINS_NO\n" | sort + printf "\n" +fi +]) + diff --git a/common/m4/gst-function.m4 b/common/m4/gst-function.m4 new file mode 100644 index 0000000..61adfd3 --- /dev/null +++ b/common/m4/gst-function.m4 @@ -0,0 +1,63 @@ +dnl +dnl Check for compiler mechanism to show functions in debugging +dnl copied from an Ali patch floating on the internet +dnl +AC_DEFUN([AG_GST_CHECK_FUNCTION],[ + dnl #1: __PRETTY_FUNCTION__ + AC_MSG_CHECKING(whether $CC implements __PRETTY_FUNCTION__) + AC_CACHE_VAL(gst_cv_have_pretty_function,[ + AC_TRY_LINK([#include ], + [printf("%s", __PRETTY_FUNCTION__);], + gst_cv_have_pretty_function=yes, + gst_cv_have_pretty_function=no) + ]) + AC_MSG_RESULT($gst_cv_have_pretty_function) + if test "$gst_cv_have_pretty_function" = yes; then + AC_DEFINE(HAVE_PRETTY_FUNCTION, 1, + [defined if the compiler implements __PRETTY_FUNCTION__]) + fi + +dnl #2: __FUNCTION__ + AC_MSG_CHECKING(whether $CC implements __FUNCTION__) + AC_CACHE_VAL(gst_cv_have_function,[ + AC_TRY_LINK([#include ], + [printf("%s", __FUNCTION__);], + gst_cv_have_function=yes, + gst_cv_have_function=no) + ]) + AC_MSG_RESULT($gst_cv_have_function) + if test "$gst_cv_have_function" = yes; then + AC_DEFINE(HAVE_FUNCTION, 1, + [defined if the compiler implements __FUNCTION__]) + fi + +dnl #3: __func__ + AC_MSG_CHECKING(whether $CC implements __func__) + AC_CACHE_VAL(gst_cv_have_func,[ + AC_TRY_LINK([#include ], + [printf("%s", __func__);], + gst_cv_have_func=yes, + gst_cv_have_func=no) + ]) + AC_MSG_RESULT($gst_cv_have_func) + if test "$gst_cv_have_func" = yes; then + AC_DEFINE(HAVE_FUNC, 1, + [defined if the compiler implements __func__]) + fi + +dnl now define FUNCTION to whatever works, and fallback to "" + if test "$gst_cv_have_pretty_function" = yes; then + function=__PRETTY_FUNCTION__ + else + if test "$gst_cv_have_function" = yes; then + function=__FUNCTION__ + else + if test "$gst_cv_have_func" = yes; then + function=__func__ + else + function=\"\" + fi + fi + fi + AC_DEFINE_UNQUOTED(GST_FUNCTION, $function, [macro to use to show function name]) +]) diff --git a/common/m4/gst-gettext.m4 b/common/m4/gst-gettext.m4 new file mode 100644 index 0000000..a63651b --- /dev/null +++ b/common/m4/gst-gettext.m4 @@ -0,0 +1,21 @@ +dnl gettext setup + +dnl AG_GST_GETTEXT([gettext-package]) +dnl defines GETTEXT_PACKAGE and LOCALEDIR + +AC_DEFUN([AG_GST_GETTEXT], +[ + if test "$USE_NLS" = "yes"; then + GETTEXT_PACKAGE=[$1] + else + GETTEXT_PACKAGE=[NULL] + fi + AC_SUBST(GETTEXT_PACKAGE) + AC_DEFINE_UNQUOTED([GETTEXT_PACKAGE], "$GETTEXT_PACKAGE", + [gettext package name]) + + dnl define LOCALEDIR in config.h + AS_AC_EXPAND(LOCALEDIR, $datadir/locale) + AC_DEFINE_UNQUOTED([LOCALEDIR], "$LOCALEDIR", + [gettext locale dir]) +]) diff --git a/common/m4/gst-glib2.m4 b/common/m4/gst-glib2.m4 new file mode 100644 index 0000000..bafba41 --- /dev/null +++ b/common/m4/gst-glib2.m4 @@ -0,0 +1,73 @@ +dnl check for a minimum version of GLib + +dnl AG_GST_GLIB_CHECK([minimum-version-required]) + +AC_DEFUN([AG_GST_GLIB_CHECK], +[ + AC_REQUIRE([AS_NANO]) + + dnl Minimum required version of GLib + GLIB_REQ=[$1] + if test "x$GLIB_REQ" = "x" + then + AC_MSG_ERROR([Please specify a required version for GLib 2.0]) + fi + AC_SUBST(GLIB_REQ) + + dnl Check for glib with everything + AG_GST_PKG_CHECK_MODULES(GLIB, + glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0) + + if test "x$HAVE_GLIB" = "xno"; then + AC_MSG_ERROR([This package requires GLib >= $GLIB_REQ to compile.]) + fi + + dnl Add define to tell GLib that threading is always enabled within GStreamer + dnl code (optimisation, bypasses checks if the threading system is enabled + dnl when using threading primitives) + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY" + + dnl Define G_DISABLE_DEPRECATED for GIT versions + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED" + fi + + AC_ARG_ENABLE(gobject-cast-checks, + AS_HELP_STRING([--enable-gobject-cast-checks[=@<:@no/auto/yes@:>@]], + [Enable GObject cast checks]),, + [enable_gobject_cast_checks=auto]) + + if test "x$enable_gobject_cast_checks" = "xauto"; then + dnl For releases, turn off the cast checks + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + enable_gobject_cast_checks=yes + else + enable_gobject_cast_checks=no + fi + fi + + if test "x$enable_gobject_cast_checks" = "xno"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_CAST_CHECKS" + fi + + AC_ARG_ENABLE(glib-asserts, + AS_HELP_STRING([--enable-glib-asserts[=@<:@no/auto/yes@:>@]], + [Enable GLib assertion]),, + [enable_glib_assertions=auto]) + + if test "x$enable_glib_assertions" = "xauto"; then + dnl For releases, turn off the assertions + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + enable_glib_assertions=yes + else + enable_glib_assertions=no + fi + fi + + if test "x$enable_glib_assertions" = "xno"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT" + fi + + dnl for the poor souls who for example have glib in /usr/local + AS_SCRUB_INCLUDE(GLIB_CFLAGS) +]) diff --git a/common/m4/gst-libxml2.m4 b/common/m4/gst-libxml2.m4 new file mode 100644 index 0000000..4a843f0 --- /dev/null +++ b/common/m4/gst-libxml2.m4 @@ -0,0 +1,52 @@ +dnl call this macro with the minimum required version as an argument +dnl this macro sets and AC_SUBSTs XML_CFLAGS and XML_LIBS +dnl it also sets LIBXML_PKG, used for the pkg-config file + +AC_DEFUN([AG_GST_LIBXML2_CHECK], +[ + dnl Minimum required version of libxml2 + dnl default to 2.4.9 if not specified + LIBXML2_REQ=ifelse([$1],,2.4.9,[$1]) + AC_SUBST(LIBXML2_REQ) + + dnl check for libxml2 + PKG_CHECK_MODULES(XML, libxml-2.0 >= $LIBXML2_REQ, + HAVE_LIBXML2=yes, [ + AC_MSG_RESULT(no) + HAVE_LIBXML2=no + ]) + if test "x$HAVE_LIBXML2" = "xyes"; then + AC_DEFINE(HAVE_LIBXML2, 1, [Define if libxml2 is available]) + else + AC_MSG_ERROR([ + Need libxml2 and development headers/files to build GStreamer. + + You can do without libxml2 if you pass --disable-loadsave to + configure, but that breaks ABI, so don't do that unless you + are building for an embedded setup and know what you are doing. + ]) + fi + dnl this is for the .pc file + LIBXML_PKG=', libxml-2.0' + AC_SUBST(LIBXML_PKG) + AC_SUBST(XML_LIBS) + AC_SUBST(XML_CFLAGS) + + dnl XML_LIBS might pull in -lz without zlib actually being on the system, so + dnl try linking with these LIBS and CFLAGS + ac_save_CFLAGS=$CFLAGS + ac_save_LIBS=$LIBS + CFLAGS="$CFLAGS $XML_CFLAGS" + LIBS="$LIBS $XML_LIBS" + AC_TRY_LINK([ +#include +#include +],[ +/* function body */ +], + AC_MSG_NOTICE([Test xml2 program linked]), + AC_MSG_ERROR([Could not link libxml2 test program. Check if you have the necessary dependencies.]) + ) + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" +]) diff --git a/common/m4/gst-package-release-datetime.m4 b/common/m4/gst-package-release-datetime.m4 new file mode 100644 index 0000000..126919b --- /dev/null +++ b/common/m4/gst-package-release-datetime.m4 @@ -0,0 +1,89 @@ +dnl macros to set GST_PACKAGE_RELEASE_DATETIME + +dnl =========================================================================== +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME +dnl +dnl Usage: +dnl +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME() +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no]...) +dnl sets the release datetime to the current date +dnl (no = this is not a release, but git or prerelease) +dnl +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([YYYY-MM-DD]) +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes], [YYYY-MM-DD]) +dnl sets the release datetime to the specified date (and time, if given) +dnl (yes = this is a release, not git or prerelease) +dnl +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes], [DOAP-FILE], [RELEASE-VERSION]) +dnl sets the release date to the release date associated with version +dnl RELEASE-VERSION in the .doap file DOAP-FILE +dnl (yes = this is a release, not git or prerelease) +dnl +dnl We need to treat pre-releases like git because there won't be an entry +dnl in the .doap file for pre-releases yet, and we don't want to use the +dnl date of the last release either. +dnl =========================================================================== +AC_DEFUN([AG_GST_SET_PACKAGE_RELEASE_DATETIME], +[ + dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME() + dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes]...) + if test "x$1" = "xno" -o "x$1" = "x"; then + GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"` + elif test "x$1" = "xyes"; then + dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no], ["YYYY-MM-DD"]) + dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([no], [DOAP-FILE], [RELEASE-VERSION]) + if ( echo $1 | grep -e '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=$1 + else + dnl we assume the .doap file contains the date as YYYY-MM-DD + YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file" $3 $2`; + if test "x$YYYY_MM_DD" != "x"; then + GST_PACKAGE_RELEASE_DATETIME=$YYYY_MM_DD + else + AC_MSG_ERROR([SET_PACKAGE_RELEASE_DATETIME: could not extract + release date for release version $3 from $2]) + GST_PACKAGE_RELEASE_DATETIME="" + fi + fi + dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([YYYY-MM-DD]) + elif ( echo $1 | grep -e '^20[1-9][0-9]-[0-1][0-9]-[0-3][0-9]' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=$1 + else + AC_MSG_WARN([SET_PACKAGE_RELEASE_DATETIME: invalid first argument]) + GST_PACKAGE_RELEASE_DATETIME="" + fi + + if test "x$GST_PACKAGE_RELEASE_DATETIME" = "x"; then + AC_MSG_WARN([Invalid package release date time: $GST_PACKAGE_RELEASE_DATETIME]) + else + AC_MSG_NOTICE([Setting GST_PACKAGE_RELEASE_DATETIME to $GST_PACKAGE_RELEASE_DATETIME]) + + AC_DEFINE_UNQUOTED([GST_PACKAGE_RELEASE_DATETIME], + ["$GST_PACKAGE_RELEASE_DATETIME"], + [GStreamer package release date/time for plugins as YYYY-MM-DD]) + fi +]) + +dnl =========================================================================== +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO +dnl +dnl Usage: +dnl +dnl AG_GST_SET_PACKAGE_RELEASE_DATETIME([NANO-VERSION], [DOAP-FILE], [RELEASE-VERSION]) +dnl if NANO-VERSION is 0, sets the release date to the release date associated +dnl with version RELEASE-VERSION in the .doap file DOAP-FILE, otherwise sets +dnl the release date and time to the current date/time. +dnl +dnl We need to treat pre-releases like git because there won't be an entry +dnl in the .doap file for pre-releases yet, and we don't want to use the +dnl date of the last release either. +dnl =========================================================================== +AC_DEFUN([AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO], +[ + if test "x$1" = "x0"; then + AG_GST_SET_PACKAGE_RELEASE_DATETIME([yes], [ $2 ], [ $3 ]) + else + AG_GST_SET_PACKAGE_RELEASE_DATETIME([no]) + fi +]) diff --git a/common/m4/gst-parser.m4 b/common/m4/gst-parser.m4 new file mode 100644 index 0000000..2cae45d --- /dev/null +++ b/common/m4/gst-parser.m4 @@ -0,0 +1,55 @@ +AC_DEFUN([AG_GST_BISON_CHECK], +[ + dnl FIXME: check if AC_PROG_YACC is suitable here + dnl FIXME: make precious + AC_PATH_PROG(BISON_PATH, bison, no) + if test x$BISON_PATH = xno; then + AC_MSG_ERROR(Could not find bison) + fi + + dnl check bison version + dnl we need version >= 1.875 for the reentrancy support + dnl in the parser. + dnl First lines observed: 'bison (GNU Bison) 2.3' or 'GNU Bison version 1.28' + bison_min_version=1.875 + bison_version=`$BISON_PATH --version | head -n 1 | sed 's/^[[^0-9]]*//' | sed 's/[[^0-9]]*$//' | cut -d' ' -f1` + AC_MSG_CHECKING([bison version $bison_version >= $bison_min_version]) + + if perl -we "exit ((v$bison_version ge v$bison_min_version) ? 0 : 1)"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_ERROR([no]) + fi +]) + +AC_DEFUN([AG_GST_FLEX_CHECK], +[ + dnl we require flex for building the parser + AC_PATH_PROG(FLEX_PATH, flex, no) + if test x$FLEX_PATH = xno; then + AC_MSG_ERROR(Could not find flex) + fi + + dnl check flex version + dnl we need version >= 2.5.31 for the reentrancy support + dnl in the parser. + flex_min_version=2.5.31 + flex_version=`$FLEX_PATH --version | head -n 1 | sed 's/^.* //' | sed 's/[[a-zA-Z]]*$//' | cut -d' ' -f1` + AC_MSG_CHECKING([flex version $flex_version >= $flex_min_version]) + if perl -w < \$min_version_major) || + ((\$flex_version_major == \$min_version_major) && + (\$flex_version_minor > \$min_version_minor)) || + ((\$flex_version_major == \$min_version_major) && + (\$flex_version_minor == \$min_version_minor) && + (\$flex_version_micro >= \$min_version_micro))) + ? 0 : 1); +EOF + then + AC_MSG_RESULT(yes) + else + AC_MSG_ERROR([no]) + fi +]) diff --git a/common/m4/gst-platform.m4 b/common/m4/gst-platform.m4 new file mode 100644 index 0000000..40d6faf --- /dev/null +++ b/common/m4/gst-platform.m4 @@ -0,0 +1,67 @@ +dnl AG_GST_PLATFORM +dnl Check for platform specific features and define some variables +dnl +dnl GST_EXTRA_MODULE_SUFFIX: contains a platform specific +dnl extra module suffix additional to G_MODULE_SUFFIX +dnl +dnl HAVE_OSX: Defined if compiling for OS X +dnl +dnl GST_HAVE_UNSAFE_FORK: Defined if fork is unsafe (Windows) +dnl +dnl HAVE_WIN32: Defined if compiling on Win32 +dnl + +AC_DEFUN([AG_GST_PLATFORM], +[ + AC_REQUIRE([AC_CANONICAL_HOST]) + + case $host_os in + rhapsody*) + AC_DEFINE_UNQUOTED(GST_EXTRA_MODULE_SUFFIX, [".dylib"], [Extra platform specific plugin suffix]) + ;; + darwin*) + AC_DEFINE_UNQUOTED(GST_EXTRA_MODULE_SUFFIX, [".dylib"], [Extra platform specific plugin suffix]) + AC_DEFINE_UNQUOTED(HAVE_OSX, 1, [Defined if compiling for OSX]) + ;; + cygwin*) + AC_DEFINE_UNQUOTED(GST_HAVE_UNSAFE_FORK, 1, [Defined when registry scanning through fork is unsafe]) + ;; + mingw* | msvc* | mks*) + dnl HAVE_WIN32 currently means "disable POSIXisms". + AC_DEFINE_UNQUOTED(HAVE_WIN32, 1, [Defined if compiling for Windows]) + + dnl define __MSVCRT_VERSION__ version if not set already by the + dnl compiler (ie. mostly for mingw). This is needed for things like + dnl __stat64 to be available. If set by the compiler, ensure it's + dnl new enough - we need at least WinXP SP2. + AC_TRY_COMPILE([ ], [ return __MSVCRT_VERSION__; ], [ + AC_TRY_COMPILE([ ], [ + #if __MSVCRT_VERSION__ < 0x0601 + #error "MSVCRT too old" + #endif + ], [ + AC_MSG_NOTICE([MSVCRT version looks ok]) + ], [ + AC_MSG_ERROR([MSVCRT version too old, need at least WinXP SP2]) + ]) + ], [ + AC_MSG_NOTICE([Setting MSVCRT version to 0x0601]) + AC_DEFINE_UNQUOTED(__MSVCRT_VERSION__, 0x0601, [We need at least WinXP SP2 for __stat64]) + ]) + ;; + *) + ;; + esac +]) + +AC_DEFUN([AG_GST_LIBTOOL_PREPARE], +[ + dnl Persuade libtool to also link (-l) a 'pure' (DirectX) static lib, + dnl i.e. as opposed to only import lib with dll counterpart. + dnl Needs to be tweaked before libtool's checks. + case $host_os in + cygwin* | mingw*) + lt_cv_deplibs_check_method=pass_all + ;; + esac +]) \ No newline at end of file diff --git a/common/m4/gst-plugin-docs.m4 b/common/m4/gst-plugin-docs.m4 new file mode 100644 index 0000000..dcfd61d --- /dev/null +++ b/common/m4/gst-plugin-docs.m4 @@ -0,0 +1,21 @@ +dnl AG_GST_PLUGIN_DOCS([MINIMUM-GTK-DOC-VERSION],[MINIMUM-PYTHON-VERSION]) +dnl +dnl checks for prerequisites for the common/mangle-tmpl.py script +dnl used when building the plugin documentation + +AC_DEFUN([AG_GST_PLUGIN_DOCS], +[ + AC_BEFORE([GTK_DOC_CHECK],[$0])dnl check for gtk-doc first + AC_BEFORE([AS_PATH_PYTHON],[$1])dnl find python first + + build_plugin_docs=no + AC_MSG_CHECKING([whether to build plugin documentation]) + if test x$enable_gtk_doc = xyes; then + build_plugin_docs=yes + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no (gtk-doc disabled or not available)]) + fi + + AM_CONDITIONAL(ENABLE_PLUGIN_DOCS, test x$build_plugin_docs = xyes) +]) diff --git a/common/m4/gst-plugindir.m4 b/common/m4/gst-plugindir.m4 new file mode 100644 index 0000000..09989d0 --- /dev/null +++ b/common/m4/gst-plugindir.m4 @@ -0,0 +1,17 @@ +dnl AG_GST_SET_PLUGINDIR + +dnl AC_DEFINE PLUGINDIR to the full location where plug-ins will be installed +dnl AC_SUBST plugindir, to be used in Makefile.am's + +AC_DEFUN([AG_GST_SET_PLUGINDIR], +[ + dnl define location of plugin directory + AS_AC_EXPAND(PLUGINDIR, ${libdir}/gstreamer-$GST_MAJORMINOR) + AC_DEFINE_UNQUOTED(PLUGINDIR, "$PLUGINDIR", + [directory where plugins are located]) + AC_MSG_NOTICE([Using $PLUGINDIR as the plugin install location]) + + dnl plugin directory configure-time variable for use in Makefile.am + plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR" + AC_SUBST(plugindir) +]) diff --git a/common/m4/gst-valgrind.m4 b/common/m4/gst-valgrind.m4 new file mode 100644 index 0000000..5c0d608 --- /dev/null +++ b/common/m4/gst-valgrind.m4 @@ -0,0 +1,35 @@ +AC_DEFUN([AG_GST_VALGRIND_CHECK], +[ + dnl valgrind inclusion + AC_ARG_ENABLE(valgrind, + AC_HELP_STRING([--disable-valgrind], [disable run-time valgrind detection]), + [ + case "${enableval}" in + yes) USE_VALGRIND="$USE_DEBUG" ;; + no) USE_VALGRIND=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-valgrind) ;; + esac], + [ + USE_VALGRIND="$USE_DEBUG" + ]) dnl Default value + + VALGRIND_REQ="3.0" + if test "x$USE_VALGRIND" = xyes; then + PKG_CHECK_MODULES(VALGRIND, valgrind >= $VALGRIND_REQ, + USE_VALGRIND="yes", + [ + USE_VALGRIND="no" + AC_MSG_RESULT([no]) + ]) + fi + + if test "x$USE_VALGRIND" = xyes; then + AC_DEFINE(HAVE_VALGRIND, 1, [Define if valgrind should be used]) + AC_MSG_NOTICE(Using extra code paths for valgrind) + fi + AC_SUBST(VALGRIND_CFLAGS) + AC_SUBST(VALGRIND_LIBS) + + AC_PATH_PROG(VALGRIND_PATH, valgrind, no) + AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") +]) diff --git a/common/m4/gst-x11.m4 b/common/m4/gst-x11.m4 new file mode 100644 index 0000000..d3baf2d --- /dev/null +++ b/common/m4/gst-x11.m4 @@ -0,0 +1,70 @@ +dnl macros for X-related detections +dnl AC_SUBST's HAVE_X, X_CFLAGS, X_LIBS +AC_DEFUN([AG_GST_CHECK_X], +[ + AC_PATH_XTRA + ac_cflags_save="$CFLAGS" + ac_cppflags_save="$CPPFLAGS" + CFLAGS="$CFLAGS $X_CFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + dnl now try to find the HEADER + AC_CHECK_HEADER(X11/Xlib.h, HAVE_X="yes", HAVE_X="no") + + if test "x$HAVE_X" = "xno" + then + AC_MSG_NOTICE([cannot find X11 development files]) + else + dnl this is much more than we want + X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS" + dnl AC_PATH_XTRA only defines the path needed to find the X libs, + dnl it does not add the libs; therefore we add them here + X_LIBS="$X_LIBS -lX11" + AC_SUBST(X_CFLAGS) + AC_SUBST(X_LIBS) + fi + AC_SUBST(HAVE_X) + + CFLAGS="$ac_cflags_save" + CPPFLAGS="$ac_cppflags_save" +]) + +dnl *** XVideo *** +dnl Look for the PIC library first, Debian requires it. +dnl Check debian-devel archives for gory details. +dnl 20020110: +dnl At the moment XFree86 doesn't distribute shared libXv due +dnl to unstable API. On many platforms you CAN NOT link a shared +dnl lib to a static non-PIC lib. This is what the xvideo GStreamer +dnl plug-in wants to do. So Debian distributes a PIC compiled +dnl version of the static lib for plug-ins to link to when it is +dnl inappropriate to link the main application to libXv directly. +dnl FIXME: add check if this platform can support linking to a +dnl non-PIC libXv, if not then don not use Xv. +dnl FIXME: perhaps warn user if they have a shared libXv since +dnl this is an error until XFree86 starts shipping one +AC_DEFUN([AG_GST_CHECK_XV], +[ + if test x$HAVE_X = xyes; then + AC_CHECK_LIB(Xv_pic, XvQueryExtension, + HAVE_XVIDEO="yes", HAVE_XVIDEO="no", + $X_LIBS -lXext) + + if test x$HAVE_XVIDEO = xyes; then + XVIDEO_LIBS="-lXv_pic -lXext" + AC_SUBST(XVIDEO_LIBS) + else + dnl try again using something else if we didn't find it first + if test x$HAVE_XVIDEO = xno; then + AC_CHECK_LIB(Xv, XvQueryExtension, + HAVE_XVIDEO="yes", HAVE_XVIDEO="no", + $X_LIBS -lXext) + + if test x$HAVE_XVIDEO = xyes; then + XVIDEO_LIBS="-lXv -lXext" + AC_SUBST(XVIDEO_LIBS) + fi + fi + fi + fi +]) diff --git a/common/m4/gst.m4 b/common/m4/gst.m4 new file mode 100644 index 0000000..ddfde51 --- /dev/null +++ b/common/m4/gst.m4 @@ -0,0 +1,31 @@ +dnl AG_GST_INIT +dnl sets up use of GStreamer configure.ac macros +dnl all GStreamer autoconf macros are prefixed +dnl with AG_GST_ for public macros +dnl with _AG_GST_ for private macros + +AC_DEFUN([AG_GST_INIT], +[ + m4_pattern_forbid(^_?AG_GST_) +]) + +dnl AG_GST_PKG_CONFIG_PATH +dnl +dnl sets up a GST_PKG_CONFIG_PATH variable for use in Makefile.am +dnl which contains the path of the in-tree pkgconfig directory first +dnl and then any paths specified in PKG_CONFIG_PATH. +dnl +dnl We do this mostly so we don't have to use unportable shell constructs +dnl such as ${PKG_CONFIG_PATH:+:$PKG_CONFIG_PATH} in Makefile.am to handle +dnl the case where the environment variable is not set, but also in order +dnl to avoid a trailing ':' in the PKG_CONFIG_PATH which apparently causes +dnl problems with pkg-config on windows with msys/mingw. +AC_DEFUN([AG_GST_PKG_CONFIG_PATH], +[ + GST_PKG_CONFIG_PATH="\$(top_builddir)/pkgconfig" + if test "x$PKG_CONFIG_PATH" != "x"; then + GST_PKG_CONFIG_PATH="$GST_PKG_CONFIG_PATH:$PKG_CONFIG_PATH" + fi + AC_SUBST([GST_PKG_CONFIG_PATH]) + AC_MSG_NOTICE([Using GST_PKG_CONFIG_PATH = $GST_PKG_CONFIG_PATH]) +]) diff --git a/common/m4/gtk-doc.m4 b/common/m4/gtk-doc.m4 new file mode 100644 index 0000000..39a4e7d --- /dev/null +++ b/common/m4/gtk-doc.m4 @@ -0,0 +1,42 @@ +dnl -*- mode: autoconf -*- + +# serial 1 + +dnl Usage: +dnl GTK_DOC_CHECK([minimum-gtk-doc-version]) +AC_DEFUN([GTK_DOC_CHECK], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + dnl for overriding the documentation installation directory + AC_ARG_WITH([html-dir], + AS_HELP_STRING([--with-html-dir=PATH], [path to installed docs]),, + [with_html_dir='${datadir}/gtk-doc/html']) + HTML_DIR="$with_html_dir" + AC_SUBST([HTML_DIR]) + + dnl enable/disable documentation building + AC_ARG_ENABLE([gtk-doc], + AS_HELP_STRING([--enable-gtk-doc], + [use gtk-doc to build documentation [[default=no]]]),, + [enable_gtk_doc=no]) + + if test x$enable_gtk_doc = xyes; then + ifelse([$1],[], + [PKG_CHECK_EXISTS([gtk-doc],, + AC_MSG_ERROR([gtk-doc not installed and --enable-gtk-doc requested]))], + [PKG_CHECK_EXISTS([gtk-doc >= $1],, + AC_MSG_ERROR([You need to have gtk-doc >= $1 installed to build gtk-doc]))]) + if test -z "$SED"; then + AC_PROG_SED + fi + fi + + AC_MSG_CHECKING([whether to build gtk-doc documentation]) + AC_MSG_RESULT($enable_gtk_doc) + + AC_PATH_PROGS(GTKDOC_CHECK,gtkdoc-check,) + + AM_CONDITIONAL([ENABLE_GTK_DOC], [test x$enable_gtk_doc = xyes]) + AM_CONDITIONAL([GTK_DOC_USE_LIBTOOL], [test -n "$LIBTOOL"]) +]) diff --git a/common/m4/introspection.m4 b/common/m4/introspection.m4 new file mode 100644 index 0000000..f9ce49c --- /dev/null +++ b/common/m4/introspection.m4 @@ -0,0 +1,88 @@ +dnl -*- mode: autoconf -*- +dnl Copyright 2009 Johan Dahlin +dnl +dnl This file is free software; the author(s) gives unlimited +dnl permission to copy and/or distribute it, with or without +dnl modifications, as long as this notice is preserved. +dnl + +# serial 1 + +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL], +[ + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first + + dnl enable/disable introspection + m4_if([$2], [require], + [dnl + enable_introspection=yes + ],[dnl + AC_ARG_ENABLE(introspection, + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]], + [Enable introspection for this build]),, + [enable_introspection=auto]) + ])dnl + + AC_MSG_CHECKING([for gobject-introspection]) + + dnl presence/version checking + AS_CASE([$enable_introspection], + [no], [dnl + found_introspection="no (disabled, use --enable-introspection to enable)" + ],dnl + [yes],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0],, + AC_MSG_ERROR([gobject-introspection-1.0 is not installed])) + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], + found_introspection=yes, + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME])) + ],dnl + [auto],[dnl + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no) + ],dnl + [dnl + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@]) + ])dnl + + AC_MSG_RESULT([$found_introspection]) + + INTROSPECTION_SCANNER= + INTROSPECTION_COMPILER= + INTROSPECTION_GENERATE= + INTROSPECTION_GIRDIR= + INTROSPECTION_TYPELIBDIR= + if test "x$found_introspection" = "xyes"; then + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0` + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0` + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0` + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0` + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)" + fi + AC_SUBST(INTROSPECTION_SCANNER) + AC_SUBST(INTROSPECTION_COMPILER) + AC_SUBST(INTROSPECTION_GENERATE) + AC_SUBST(INTROSPECTION_GIRDIR) + AC_SUBST(INTROSPECTION_TYPELIBDIR) + + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes") +]) + + +dnl Usage: +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version]) + +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1]) +]) + +dnl Usage: +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version]) + + +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE], +[ + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require]) +]) diff --git a/common/m4/orc.m4 b/common/m4/orc.m4 new file mode 100644 index 0000000..3b2c6b5 --- /dev/null +++ b/common/m4/orc.m4 @@ -0,0 +1,68 @@ +dnl pkg-config-based checks for Orc + +dnl specific: +dnl ORC_CHECK([REQUIRED_VERSION]) + +AC_DEFUN([ORC_CHECK], +[ + ORC_REQ=ifelse([$1], , "0.4.6", [$1]) + + AC_ARG_ENABLE(orc, + AC_HELP_STRING([--enable-orc],[use Orc if installed]), + [case "${enableval}" in + auto) enable_orc=auto ;; + yes) enable_orc=yes ;; + no) enable_orc=no ;; + *) AC_MSG_ERROR(bad value ${enableval} for --enable-orc) ;; + esac + ], + [enable_orc=auto]) dnl Default value + + if test "x$enable_orc" != "xno" ; then + PKG_CHECK_MODULES(ORC, orc-0.4 >= $ORC_REQ, [ + AC_DEFINE(HAVE_ORC, 1, [Use Orc]) + if test "x$ORCC" = "x" ; then + ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + fi + AC_SUBST(ORCC) + ORCC_FLAGS="--compat $ORC_REQ" + AC_SUBST(ORCC_FLAGS) + HAVE_ORC=yes + HAVE_ORCC=yes + if test "x$cross_compiling" = "xyes" ; then + HAVE_ORCC=no + fi + ], [ + if test "x$enable_orc" = "xyes" ; then + AC_MSG_ERROR([--enable-orc specified, but Orc >= $ORC_REQ not found]) + fi + AC_DEFINE(DISABLE_ORC, 1, [Disable Orc]) + HAVE_ORC=no + HAVE_ORCC=no + ]) + else + AC_DEFINE(DISABLE_ORC, 1, [Disable Orc]) + HAVE_ORC=no + HAVE_ORCC=no + fi + AM_CONDITIONAL(HAVE_ORC, [test "x$HAVE_ORC" = "xyes"]) + AM_CONDITIONAL(HAVE_ORCC, [test "x$HAVE_ORCC" = "xyes"]) + +])) + +AC_DEFUN([ORC_OUTPUT], +[ + if test "$HAVE_ORC" = yes ; then + printf "configure: *** Orc acceleration enabled.\n" + else + if test "x$enable_orc" = "xno" ; then + printf "configure: *** Orc acceleration disabled by --disable-orc. Slower code paths\n" + printf " will be used.\n" + else + printf "configure: *** Orc acceleration disabled. Requires Orc >= $ORC_REQ, which was\n" + printf " not found. Slower code paths will be used.\n" + fi + fi + printf "\n" +]) + diff --git a/common/m4/pkg.m4 b/common/m4/pkg.m4 new file mode 100644 index 0000000..996e294 --- /dev/null +++ b/common/m4/pkg.m4 @@ -0,0 +1,157 @@ +# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- +# +# Copyright © 2004 Scott James Remnant . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# PKG_PROG_PKG_CONFIG([MIN-VERSION]) +# ---------------------------------- +AC_DEFUN([PKG_PROG_PKG_CONFIG], +[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) +m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) +AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=m4_default([$1], [0.9.0]) + AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + PKG_CONFIG="" + fi + +fi[]dnl +])# PKG_PROG_PKG_CONFIG + +# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) +# +# Check to see whether a particular set of modules exists. Similar +# to PKG_CHECK_MODULES(), but does not set variables or print errors. +# +# +# Similar to PKG_CHECK_MODULES, make sure that the first instance of +# this or PKG_CHECK_MODULES is called, or make sure to call +# PKG_CHECK_EXISTS manually +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_EXISTS], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +if test -n "$PKG_CONFIG" && \ + AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then + m4_ifval([$2], [$2], [:]) +m4_ifvaln([$3], [else + $3])dnl +fi]) + + +# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) +# --------------------------------------------- +m4_define([_PKG_CONFIG], +[if test -n "$PKG_CONFIG"; then + if test -n "$$1"; then + pkg_cv_[]$1="$$1" + else + PKG_CHECK_EXISTS([$3], + [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], + [pkg_failed=yes]) + fi +else + pkg_failed=untried +fi[]dnl +])# _PKG_CONFIG + +# _PKG_SHORT_ERRORS_SUPPORTED +# ----------------------------- +AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi[]dnl +])# _PKG_SHORT_ERRORS_SUPPORTED + + +# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], +# [ACTION-IF-NOT-FOUND]) +# +# +# Note that if there is a possibility the first call to +# PKG_CHECK_MODULES might not happen, you should be sure to include an +# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac +# +# +# -------------------------------------------------------------- +AC_DEFUN([PKG_CHECK_MODULES], +[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl +AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl +AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl + +pkg_failed=no +AC_MSG_CHECKING([for $1]) + +_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) +_PKG_CONFIG([$1][_LIBS], [libs], [$2]) + +m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS +and $1[]_LIBS to avoid the need to call pkg-config. +See the pkg-config man page for more details.]) + +if test $pkg_failed = yes; then + _PKG_SHORT_ERRORS_SUPPORTED + if test $_pkg_short_errors_supported = yes; then + $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$2"` + else + $1[]_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD + + ifelse([$4], , [AC_MSG_ERROR(dnl +[Package requirements ($2) were not met: + +$$1_PKG_ERRORS + +Consider adjusting the PKG_CONFIG_PATH environment variable if you +installed software in a non-standard prefix. + +_PKG_TEXT +])], + [AC_MSG_RESULT([no]) + $4]) +elif test $pkg_failed = untried; then + ifelse([$4], , [AC_MSG_FAILURE(dnl +[The pkg-config script could not be found or is too old. Make sure it +is in your PATH or set the PKG_CONFIG environment variable to the full +path to pkg-config. + +_PKG_TEXT + +To get pkg-config, see .])], + [$4]) +else + $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS + $1[]_LIBS=$pkg_cv_[]$1[]_LIBS + AC_MSG_RESULT([yes]) + ifelse([$3], , :, [$3]) +fi[]dnl +])# PKG_CHECK_MODULES diff --git a/common/mangle-tmpl.py b/common/mangle-tmpl.py new file mode 100644 index 0000000..bd4f948 --- /dev/null +++ b/common/mangle-tmpl.py @@ -0,0 +1,163 @@ +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 + +""" +use the output from gst-xmlinspect.py to mangle tmpl/*.sgml and +insert/overwrite Short Description and Long Description +""" + +# FIXME: right now it uses pygst and scans on its own; +# we really should use inspect/*.xml instead since the result of +# gst-xmlinspect.py is committed by the docs maintainer, who can be +# expected to have pygst, but this step should be done for every docs build, +# so no pygst allowed + +# read in inspect/*.xml +# for every tmpl/element-(name).xml: mangle with details from element + +import glob +import re +import sys +import os + +class Tmpl: + def __init__(self, filename): + self.filename = filename + self._sectionids = [] + self._sections = {} + + def read(self): + """ + Read and parse the sections from the given file. + """ + lines = open(self.filename).readlines() + matcher = re.compile("\n") + id = None + + for line in lines: + match = matcher.search(line) + if match: + id = match.expand("\\1") + self._sectionids.append(id) + self._sections[id] = [] + else: + if not id: + sys.stderr.write( + "WARNING: line before a SECTION header: %s" % line) + else: + self._sections[id].append(line) + + def get_section(self, id): + """ + Get the content from the given section. + """ + return self._sections[id] + + def set_section(self, id, content): + """ + Replace the given section id with the given content. + """ + self._sections[id] = content + + def output(self): + """ + Return the output of the current template in the tmpl/*.sgml format. + """ + lines = [] + for id in self._sectionids: + lines.append("\n" % id) + for line in self._sections[id]: + lines.append(line) + + return "".join(lines) + + def write(self, backup=False): + """ + Write out the template file again, backing up the previous one. + """ + if backup: + target = self.filename + ".mangle.bak" + os.rename(self.filename, target) + + handle = open(self.filename, "w") + handle.write(self.output()) + handle.close() + +import xml.dom.minidom + +def get_elements(file): + elements = {} + doc = xml.dom.minidom.parse(file) + + elem = None + for e in doc.childNodes: + if e.nodeType == e.ELEMENT_NODE and e.localName == 'plugin': + elem = e + break + if elem == None: + return None + + elem2 = None + for e in elem.childNodes: + if e.nodeType == e.ELEMENT_NODE and e.localName == 'elements': + elem2 = e + break + if elem2 == None: + return None + + elem = elem2 + + for e in elem.childNodes: + if e.nodeType == e.ELEMENT_NODE and e.localName == 'element': + name = None + description = None + + for e2 in e.childNodes: + if e2.nodeType == e2.ELEMENT_NODE and e2.localName == 'name': + name = e2.childNodes[0].nodeValue.encode("UTF-8") + elif e2.nodeType == e2.ELEMENT_NODE and e2.localName == 'description': + if e2.childNodes: + description = e2.childNodes[0].nodeValue.encode("UTF-8") + else: + description = 'No description' + + if name != None and description != None: + elements[name] = {'description': description} + + return elements + +def main(): + if not len(sys.argv) == 3: + sys.stderr.write('Please specify the inspect/ dir and the tmpl/ dir') + sys.exit(1) + + inspectdir = sys.argv[1] + tmpldir = sys.argv[2] + + # parse all .xml files; build map of element name -> short desc + #for file in glob.glob("inspect/plugin-*.xml"): + elements = {} + for file in glob.glob("%s/plugin-*.xml" % inspectdir): + elements.update(get_elements(file)) + + for file in glob.glob("%s/element-*.sgml" % tmpldir): + base = os.path.basename(file) + element = base[len("element-"):-len(".sgml")] + tmpl = Tmpl(file) + tmpl.read() + if element in elements.keys(): + description = elements[element]['description'] + tmpl.set_section("Short_Description", "%s\n\n" % description) + + # put in an include if not yet there + line = '' + \ + '' + \ + '\n' + section = tmpl.get_section("Long_Description") + if not section[0] == line: + section.insert(0, line) + tmpl.set_section("Long_Description", section) + tmpl.write() + +main() diff --git a/common/orc.mak b/common/orc.mak new file mode 100644 index 0000000..a232b5d --- /dev/null +++ b/common/orc.mak @@ -0,0 +1,76 @@ +# +# This is a makefile.am fragment to build Orc code. +# +# Define ORC_SOURCE and then include this file, such as: +# +# ORC_SOURCE=gstadderorc +# include $(top_srcdir)/common/orc.mak +# +# This fragment will create tmp-orc.c and gstadderorc.h from +# gstadderorc.orc. +# +# When 'make dist' is run at the top level, or 'make orc-update' +# in a directory including this fragment, the generated source +# files will be copied to $(ORC_SOURCE)-dist.[ch]. These files +# should be checked in to git, since they are used if Orc is +# disabled. +# +# Note that this file defines BUILT_SOURCES, so any later usage +# of BUILT_SOURCES in the Makefile.am that includes this file +# must use '+='. +# + + +EXTRA_DIST = $(ORC_SOURCE).orc + +ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h +BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h + + +orc-update: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h + +orcc_v_gen = $(orcc_v_gen_$(V)) +orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY)) +orcc_v_gen_0 = @echo " ORCC $@"; + +cp_v_gen = $(cp_v_gen_$(V)) +cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY)) +cp_v_gen_0 = @echo " CP $@"; + +if HAVE_ORCC +tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc + $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc + +$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc + $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc +else +tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c + $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c + +$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c + $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h +endif + +clean-local: clean-orc +.PHONY: clean-orc +clean-orc: + rm -f tmp-orc.c $(ORC_SOURCE).h + +dist-hook: dist-hook-orc +.PHONY: dist-hook-orc + +# we try and copy updated orc -dist files below, but don't fail if it +# doesn't work as the srcdir might not be writable +dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + rm -f tmp-orc.c~ + cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \ + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true + cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \ + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true + cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c + cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h + diff --git a/common/parallel-subdirs.mak b/common/parallel-subdirs.mak new file mode 100644 index 0000000..36885df --- /dev/null +++ b/common/parallel-subdirs.mak @@ -0,0 +1,13 @@ +# include this at the end of $MODULE/ext/Makefile.am to force make to +# build subdirectories in parallel when make -jN is used. We will end up +# descending into all subdirectories a second time, but only after the first +# (parallel) run has finished, so it should go right through the second time. + +.PHONY: independent-subdirs $(SUBDIRS) + +independent-subdirs: $(SUBDIRS) + +$(SUBDIRS): + $(MAKE) -C $@ + +all-recursive: independent-subdirs diff --git a/common/plugins.xsl b/common/plugins.xsl new file mode 100644 index 0000000..60515b6 --- /dev/null +++ b/common/plugins.xsl @@ -0,0 +1,209 @@ + + + + + + + + + + + + -plugins- + + + + + + + + + + + + + + Element Information + + + + + plugin + + + + plugin- + + + + + + + + author + + + + + + + class + + + + + + + + + + Element Pads + + + + + name + + + + + + + direction + + + + + + + presence + + + + + + + + + details + + + + + + + + + + + + + + + + + + + + + -plugins-plugin- + + + + + + 3 + FIXME Library + + + + + + + + + + plugin- + + + + + + + Plugin Information + + + + filename + + + + + + + version + + + + + + + run-time license + + + + + + + package + + + + + + + origin + + + + + + + + + + + + + + + + + + + + + + + Elements + + + + + + + + + + + + + + diff --git a/common/po.mak b/common/po.mak new file mode 100644 index 0000000..e019fac --- /dev/null +++ b/common/po.mak @@ -0,0 +1,4 @@ +# rule to download the latest .po files +download-po: $(top_srcdir)/common/download-translations + $(top_srcdir)/common/download-translations $(PACKAGE) + diff --git a/common/release.mak b/common/release.mak new file mode 100644 index 0000000..4a9b7d5 --- /dev/null +++ b/common/release.mak @@ -0,0 +1,25 @@ +# include this snippet to add a common release: target by using +# include $(top_srcdir)/common/release.mak + +# make bz2 as well +AUTOMAKE_OPTIONS = dist-bzip2 + +release: dist + $(MAKE) $(PACKAGE)-$(VERSION).tar.gz.md5 + $(MAKE) $(PACKAGE)-$(VERSION).tar.bz2.md5 + +# generate md5 sum files +%.md5: % + md5sum $< > $@ + +# check that no marshal or enumtypes files are included +# this in turn ensures that distcheck fails for missing .list files which is currently +# shadowed when the corresponding .c and .h files are included. +distcheck-hook: + @test "x" = "x`find $(distdir) -name \*-enumtypes.[ch] | grep -v win32`" && \ + test "x" = "x`find $(distdir) -name \*-marshal.[ch]`" || \ + ( $(ECHO) "*** Leftover enumtypes or marshal files in the tarball." && \ + $(ECHO) "*** Make sure the following files are not disted:" && \ + find $(distdir) -name \*-enumtypes.[ch] | grep -v win32 && \ + find $(distdir) -name \*-marshal.[ch] && \ + false ) diff --git a/common/scangobj-merge.py b/common/scangobj-merge.py new file mode 100755 index 0000000..5e84235 --- /dev/null +++ b/common/scangobj-merge.py @@ -0,0 +1,280 @@ +#!/usr/bin/python +# -*- Mode: Python -*- +# vi:si:et:sw=4:sts=4:ts=4 + +""" +parse, update and write .signals and .args files +""" + +import sys +import os + +def debug(*args): + pass + +# OrderedDict class based on +# http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/107747 +# Licensed under the Python License +class OrderedDict(dict): + def __init__(self, dict = None): + self._keys = [] + dict.__init__(self, dict) + + def __delitem__(self, key): + dict.__delitem__(self, key) + self._keys.remove(key) + + def __setitem__(self, key, item): + dict.__setitem__(self, key, item) + if key not in self._keys: self._keys.append(key) + + def clear(self): + dict.clear(self) + self._keys = [] + + def copy(self): + dict = dict.copy(self) + dict._keys = self._keys[:] + return dict + + def items(self): + return zip(self._keys, self.values()) + + def keys(self): + return self._keys + + def popitem(self): + try: + key = self._keys[-1] + except IndexError: + raise KeyError('dictionary is empty') + + val = self[key] + del self[key] + + return (key, val) + + def setdefault(self, key, failobj = None): + dict.setdefault(self, key, failobj) + if key not in self._keys: self._keys.append(key) + + def update(self, dict): + dict.update(self, dict) + for key in dict.keys(): + if key not in self._keys: self._keys.append(key) + + def values(self): + return map(self.get, self._keys) + +class Object: + def __init__(self, name): + self._signals = OrderedDict() + self._args = OrderedDict() + self.name = name + + def __repr__(self): + return "" % self.name + + def add_signal(self, signal, overwrite=True): + if not overwrite and self._signals.has_key(signal.name): + raise IndexError, "signal %s already in %r" % (signal.name, self) + self._signals[signal.name] = signal + + def add_arg(self, arg, overwrite=True): + if not overwrite and self._args.has_key(arg.name): + raise IndexError, "arg %s already in %r" % (arg.name, self) + self._args[arg.name] = arg + +class Docable: + def __init__(self, **kwargs): + for key in self.attrs: + setattr(self, key, kwargs[key]) + self.dict = kwargs + + def __repr__(self): + return "<%r %s>" % (str(self.__class__), self.name) + +class Signal(Docable): + attrs = ['name', 'returns', 'args'] + +class Arg(Docable): + attrs = ['name', 'type', 'range', 'flags', 'nick', 'blurb', 'default'] + +class GDoc: + def load_file(self, filename): + try: + lines = open(filename).readlines() + self.load_data("".join(lines)) + except IOError: + print "WARNING - could not read from %s" % filename + + def save_file(self, filename, backup=False): + """ + Save the signals information to the given .signals file if the + file content changed. + """ + olddata = None + try: + lines = open(filename).readlines() + olddata = "".join(lines) + except IOError: + print "WARNING - could not read from %s" % filename + newdata = self.get_data() + if olddata and olddata == newdata: + return + + if olddata: + if backup: + os.rename(filename, filename + '.bak') + + handle = open(filename, "w") + handle.write(newdata) + handle.close() + +class Signals(GDoc): + def __init__(self): + self._objects = OrderedDict() + + def load_data(self, data): + """ + Load the .signals lines, creating our list of objects and signals. + """ + import re + smatcher = re.compile( + '(?s)' # make . match \n + '\n(.*?)\n' + ) + nmatcher = re.compile( + '' + '(?P\S*)' # store object + '::' + '(?P\S*)' # store signal + '' + ) + rmatcher = re.compile( + '(?s)' # make . match \n + '(?P\S*)\n' # store returns + '(?P.*)' # store args + ) + for block in smatcher.findall(data): + nmatch = nmatcher.search(block) + if nmatch: + o = nmatch.group('object') + debug("Found object", o) + debug("Found signal", nmatch.group('signal')) + if not self._objects.has_key(o): + object = Object(o) + self._objects[o] = object + + rmatch = rmatcher.search(block) + if rmatch: + dict = rmatch.groupdict().copy() + dict['name'] = nmatch.group('signal') + signal = Signal(**dict) + self._objects[o].add_signal(signal) + + def get_data(self): + lines = [] + for o in self._objects.values(): + for s in o._signals.values(): + block = """ +%(object)s::%(name)s +%(returns)s +%(args)s +""" + d = s.dict.copy() + d['object'] = o.name + lines.append(block % d) + + return "\n".join(lines) + '\n' + +class Args(GDoc): + def __init__(self): + self._objects = OrderedDict() + + def load_data(self, data): + """ + Load the .args lines, creating our list of objects and args. + """ + import re + amatcher = re.compile( + '(?s)' # make . match \n + '\n(.*?)\n' + ) + nmatcher = re.compile( + '' + '(?P\S*)' # store object + '::' + '(?P\S*)' # store arg + '' + ) + rmatcher = re.compile( + '(?s)' # make . match \n + '(?P\S*)\n' # store type + '(?P.*?)\n' # store range + '(?P\S*)\n' # store flags + '(?P.*?)\n' # store nick + '(?P.*?)\n' # store blurb + '(?P.*?)\n' # store default + ) + for block in amatcher.findall(data): + nmatch = nmatcher.search(block) + if nmatch: + o = nmatch.group('object') + debug("Found object", o) + debug("Found arg", nmatch.group('arg')) + if not self._objects.has_key(o): + object = Object(o) + self._objects[o] = object + + rmatch = rmatcher.search(block) + if rmatch: + dict = rmatch.groupdict().copy() + dict['name'] = nmatch.group('arg') + arg = Arg(**dict) + self._objects[o].add_arg(arg) + else: + print "ERROR: could not match arg from block %s" % block + + def get_data(self): + lines = [] + for o in self._objects.values(): + for a in o._args.values(): + block = """ +%(object)s::%(name)s +%(type)s +%(range)s +%(flags)s +%(nick)s +%(blurb)s +%(default)s + +""" + d = a.dict.copy() + d['object'] = o.name + lines.append(block % d) + + return "\n".join(lines) + '\n' + +def main(argv): + modulename = None + try: + modulename = argv[1] + except IndexError: + sys.stderr.write('Please provide a documentation module name\n') + sys.exit(1) + + print "Merging scangobj output for %s" % modulename + signals = Signals() + signals.load_file(modulename + '.signals') + signals.load_file(modulename + '.signals.new') + signals.save_file(modulename + '.signals', backup=True) + os.unlink(modulename + '.signals.new') + + args = Args() + args.load_file(modulename + '.args') + args.load_file(modulename + '.args.new') + args.save_file(modulename + '.args', backup=True) + os.unlink(modulename + '.args.new') + +main(sys.argv) diff --git a/common/upload-doc.mak b/common/upload-doc.mak new file mode 100644 index 0000000..3bf9496 --- /dev/null +++ b/common/upload-doc.mak @@ -0,0 +1,66 @@ +# this snippet is to be included by both our docbook manuals +# and gtk-doc API references + +# it adds an upload target to each of these dir's Makefiles + +# each Makefile.am should define the following variables: +# - DOC: the base name of the documentation +# (faq, manual, pwg, gstreamer, gstreamer-libs) +# - FORMATS: the formats in which DOC is output +# (html ps pdf) + +# if you want to use it, make sure your $HOME/.ssh/config file contains the +# correct User entry for the Host entry for the DOC_SERVER + +# these variables define the location of the online docs +DOC_SERVER = gstreamer.freedesktop.org +DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc +DOC_URL = $(DOC_SERVER):$(DOC_BASE) + +upload: $(FORMATS) + @if echo $(FORMATS) | grep html > /dev/null; then \ + echo "Preparing docs for upload (rebasing cross-references) ..." ; \ + if test x$(builddir) != x$(srcdir); then \ + echo "make upload can only be used if srcdir == builddir"; \ + exit 1; \ + fi; \ + # gtkdoc-rebase sometimes gets confused, so reset everything to \ + # local links before rebasing to online links \ + gtkdoc-rebase --html-dir=$(builddir)/html 2>/dev/null 2>/dev/null ; \ + rebase=`gtkdoc-rebase --verbose --online --html-dir=$(builddir)/html` ; \ + echo "$$rebase" | grep -e "On-*line"; \ + for req in glib gobject gstreamer gstreamer-libs gst-plugins-base-libs; do \ + if ! ( echo "$$rebase" | grep -i -e "On-*line.*/$$req/" ); then \ + echo "===============================================================================" ; \ + echo " Could not determine online location for $$req docs. Cross-referencing will be " ; \ + echo " broken, so not uploading. Make sure the library's gtk-doc documentation is " ; \ + echo " installed somewhere in /usr/share/gtk-doc. " ; \ + echo "===============================================================================" ; \ + exit 1; \ + fi; \ + done; \ + export SRC="$$SRC html"; \ + fi; \ + if echo $(FORMATS) | grep ps > /dev/null; then export SRC="$$SRC $(DOC).ps"; fi; \ + if echo $(FORMATS) | grep pdf > /dev/null; then export SRC="$$SRC $(DOC).pdf"; fi; \ + \ + # upload releases to both 0.10.X/ and head/ subdirectories \ + if test "x$(PACKAGE_VERSION_NANO)" = x0; then \ + export DIR=$(DOC_BASE)/gstreamer/$(VERSION)/$(DOC); \ + echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) mkdir -p $$DIR; \ + rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ + fi; \ + \ + export DIR=$(DOC_BASE)/gstreamer/head/$(DOC); \ + echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) mkdir -p $$DIR; \ + rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ + \ + if echo $(FORMATS) | grep html > /dev/null; then \ + echo "Un-preparing docs for upload (rebasing cross-references) ..." ; \ + gtkdoc-rebase --html-dir=$(builddir)/html ; \ + fi; \ + echo Done diff --git a/common/win32.mak b/common/win32.mak new file mode 100644 index 0000000..94afaec --- /dev/null +++ b/common/win32.mak @@ -0,0 +1,72 @@ +# various tests to make sure we dist the win32 stuff (for MSVC builds) right + +# the MANIFEST contains all win32 related files that should be disted +win32 = $(shell cat $(top_srcdir)/win32/MANIFEST) + +# wildcard is apparently not portable to other makes, hence the use of find +# these are library .def files with the symbols to export +win32defs = $(shell find $(top_srcdir)/win32/common -name '*.def') + +# wildcard is apparently not portable to other makes, hence the use of find +# these are files that need to be disted with CRLF line endings: +win32crlf = $(shell find $(top_srcdir)/win32 -name '*.dsw' -o -name '*.dsp') + +win32-debug: + @echo; \ + echo win32 = $(win32); \ + echo; \ + echo win32defs = $(win32defs); \ + echo; \ + echo win32crlf = $(win32crlf); \ + echo + +win32-check-crlf: + @echo Checking win32 files for CR LF line endings ...; \ + fail=0 ; \ + for each in $(win32crlf) ; do \ + result=`perl -e 'print grep(/\r\n/,<>)' "$$each" | wc -l`; \ + if test "$$result" = 0 ; then \ + echo $$each must be fixed to have CRLF line endings ; \ + fail=1; \ + fi ; \ + done ; \ + exit $$fail + +# make sure all symbols we export on linux are defined in the win32 .def too +# (don't care about other unixes for now, it's enough if it works on one of +# the linux build bots; we assume .so ) +check-exports: + @fail=0 ; \ + for l in $(win32defs); do \ + libbase=`basename "$$l" ".def"`; \ + libso=`find "$(top_builddir)" -name "$$libbase-@GST_MAJORMINOR@.so" | grep -v /_build/ | head -n1`; \ + libdef="$(top_srcdir)/win32/common/$$libbase.def"; \ + if test "x$$libso" != "x"; then \ + echo Checking symbols in $$libso; \ + if ! ($(top_srcdir)/common/check-exports $$libdef $$libso) ; then \ + fail=1; \ + fi; \ + fi; \ + done ; \ + if test $$fail != 0; then \ + echo '-----------------------------------------------------------'; \ + echo 'Run this to update the .def files:'; \ + echo 'make check-exports 2>&1 | patch -p1'; \ + echo '-----------------------------------------------------------'; \ + fi; \ + exit $$fail + +# complain about nonportable printf format strings (%lld, %llu, %zu etc.) +check-nonportable-print-format: + @fail=0 ; \ + loc=`find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'`; \ + if test "x$$loc" != "x"; then \ + echo "Please fix the following print format strings:" ; \ + find "$(top_srcdir)" -name '*.c' | xargs grep -n -e '%[0-9]*ll[udx]' -e '%[0-9]*z[udx]'; \ + fail=1; \ + fi; \ + exit $$fail + +dist-hook: check-exports win32-check-crlf + + diff --git a/compile b/compile new file mode 100755 index 0000000..c0096a7 --- /dev/null +++ b/compile @@ -0,0 +1,143 @@ +#! /bin/sh +# Wrapper for compilers which do not understand `-c -o'. + +scriptversion=2009-10-06.20; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2009 Free Software +# Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand `-c -o'. +Remove `-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file `INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; +esac + +ofile= +cfile= +eat= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as `compile cc -o foo foo.c'. + # So we strip `-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no `-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # `.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use `[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/config.h.in b/config.h.in new file mode 100644 index 0000000..65143a8 --- /dev/null +++ b/config.h.in @@ -0,0 +1,558 @@ +/* config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* Default audio sink */ +#undef DEFAULT_AUDIOSINK + +/* Default audio source */ +#undef DEFAULT_AUDIOSRC + +/* Default video sink */ +#undef DEFAULT_VIDEOSINK + +/* Default video source */ +#undef DEFAULT_VIDEOSRC + +/* Default visualizer */ +#undef DEFAULT_VISUALIZER + +/* Disable Orc */ +#undef DISABLE_ORC + +/* Define if an old libdts is used */ +#undef DTS_OLD + +/* Define to 1 if translation of program messages to the user's native + language is requested. */ +#undef ENABLE_NLS + +/* The x in 2.x */ +#undef FAAD2_MINOR_VERSION + +/* Define if AAC is using new api prefix */ +#undef FAAD_IS_NEAAC + +/* gettext package name */ +#undef GETTEXT_PACKAGE + +/* Define if GSM header in gsm/ subdir */ +#undef GSM_HEADER_IN_SUBDIR + +/* Extra platform specific plugin suffix */ +#undef GST_EXTRA_MODULE_SUFFIX + +/* Defined if gcov is enabled to force a rebuild due to config.h changing */ +#undef GST_GCOV_ENABLED + +/* Defined when registry scanning through fork is unsafe */ +#undef GST_HAVE_UNSAFE_FORK + +/* Default errorlevel to use */ +#undef GST_LEVEL_DEFAULT + +/* GStreamer license */ +#undef GST_LICENSE + +/* mjpegtools API evolution */ +#undef GST_MJPEGTOOLS_API + +/* package name in plugins */ +#undef GST_PACKAGE_NAME + +/* package origin */ +#undef GST_PACKAGE_ORIGIN + +/* GStreamer package release date/time for plugins as YYYY-MM-DD */ +#undef GST_PACKAGE_RELEASE_DATETIME + +/* Define to enable Windows ACM library (used by acm). */ +#undef HAVE_ACM + +/* Define to enable amrwb library (used by amrwbenc). */ +#undef HAVE_AMRWB + +/* Define to enable AirPort Express Wireless sink (used by apexsink). */ +#undef HAVE_APEXSINK + +/* Define to enable Apple video (used by applemedia). */ +#undef HAVE_APPLE_MEDIA + +/* Define to enable ASS/SSA renderer (used by assrender). */ +#undef HAVE_ASSRENDER + +/* Define to enable bz2 library (used by bz2). */ +#undef HAVE_BZ2 + +/* Define to enable cdaudio (used by cdaudio). */ +#undef HAVE_CDAUDIO + +/* Define to enable celt (used by celt). */ +#undef HAVE_CELT + +/* Define if libcelt 0.11 is installed */ +#undef HAVE_CELT_0_11 + +/* Define if libcelt 0.7 is installed */ +#undef HAVE_CELT_0_7 + +/* Define if libcelt 0.8 is installed */ +#undef HAVE_CELT_0_8 + +/* Define to 1 if you have the MacOS X function CFLocaleCopyCurrent in the + CoreFoundation framework. */ +#undef HAVE_CFLOCALECOPYCURRENT + +/* Define to 1 if you have the MacOS X function CFPreferencesCopyAppValue in + the CoreFoundation framework. */ +#undef HAVE_CFPREFERENCESCOPYAPPVALUE + +/* Define to enable Cog plugin (used by cog). */ +#undef HAVE_COG + +/* Define if the host CPU is an Alpha */ +#undef HAVE_CPU_ALPHA + +/* Define if the host CPU is an ARM */ +#undef HAVE_CPU_ARM + +/* Define if the host CPU is a CRIS */ +#undef HAVE_CPU_CRIS + +/* Define if the host CPU is a CRISv32 */ +#undef HAVE_CPU_CRISV32 + +/* Define if the host CPU is a HPPA */ +#undef HAVE_CPU_HPPA + +/* Define if the host CPU is an x86 */ +#undef HAVE_CPU_I386 + +/* Define if the host CPU is a IA64 */ +#undef HAVE_CPU_IA64 + +/* Define if the host CPU is a M68K */ +#undef HAVE_CPU_M68K + +/* Define if the host CPU is a MIPS */ +#undef HAVE_CPU_MIPS + +/* Define if the host CPU is a PowerPC */ +#undef HAVE_CPU_PPC + +/* Define if the host CPU is a 64 bit PowerPC */ +#undef HAVE_CPU_PPC64 + +/* Define if the host CPU is a S390 */ +#undef HAVE_CPU_S390 + +/* Define if the host CPU is a SPARC */ +#undef HAVE_CPU_SPARC + +/* Define if the host CPU is a x86_64 */ +#undef HAVE_CPU_X86_64 + +/* Define to enable Curl plugin (used by curl). */ +#undef HAVE_CURL + +/* Define to enable libdc1394 (used by dc1394). */ +#undef HAVE_DC1394 + +/* Define if the GNU dcgettext() function is already present or preinstalled. + */ +#undef HAVE_DCGETTEXT + +/* Define to enable decklink (used by decklink). */ +#undef HAVE_DECKLINK + +/* Define to enable dirac (used by dirac). */ +#undef HAVE_DIRAC + +/* Define to enable DirectDraw plug-in (used by directdrawsink). */ +#undef HAVE_DIRECTDRAW + +/* Define to enable directfb (used by dfbvideosink ). */ +#undef HAVE_DIRECTFB + +/* Define to enable DirectSound (used by directsoundsrc). */ +#undef HAVE_DIRECTSOUND + +/* Define to enable divx plugins (used by divx). */ +#undef HAVE_DIVX + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* define for working do while(0) macros */ +#undef HAVE_DOWHILE_MACROS + +/* Define to enable dts library (used by dtsdec). */ +#undef HAVE_DTS + +/* Define to enable DVB Source (used by dvb). */ +#undef HAVE_DVB + +/* Define to enable building of experimental plug-ins. */ +#undef HAVE_EXPERIMENTAL + +/* Define to enable building of plug-ins with external deps. */ +#undef HAVE_EXTERNAL + +/* Define to enable AAC encoder plug-in (used by faac). */ +#undef HAVE_FAAC + +/* Define to enable AAC decoder plug-in (used by faad). */ +#undef HAVE_FAAD + +/* Define to enable linux framebuffer (used by fbdevsink). */ +#undef HAVE_FBDEV + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* FIONREAD ioctl found in sys/filio.h */ +#undef HAVE_FIONREAD_IN_SYS_FILIO + +/* FIONREAD ioctl found in sys/ioclt.h */ +#undef HAVE_FIONREAD_IN_SYS_IOCTL + +/* Define to enable Flite plugin (used by flite). */ +#undef HAVE_FLITE + +/* Define to 1 if you have the `getpagesize' function. */ +#undef HAVE_GETPAGESIZE + +/* Define if the GNU gettext() function is already present or preinstalled. */ +#undef HAVE_GETTEXT + +/* Define to enable gme decoder (used by gme). */ +#undef HAVE_GME + +/* Define to 1 if you have the `gmtime_r' function. */ +#undef HAVE_GMTIME_R + +/* Define to enable GSettings plugin (used by gsettings). */ +#undef HAVE_GSETTINGS + +/* Define to enable GSM library (used by gsmenc gsmdec). */ +#undef HAVE_GSM + +/* Define if you have the iconv() function and it works. */ +#undef HAVE_ICONV + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define if building for Apple iOS */ +#undef HAVE_IOS + +/* Define to enable jp2k (used by jp2kdec jp2kenc). */ +#undef HAVE_JP2K + +/* Define to enable Kate (used by kate). */ +#undef HAVE_KATE + +/* Define to enable ladspa (used by ladspa). */ +#undef HAVE_LADSPA + +/* Define to 1 if you have the `divxdecore' library (-ldivxdecore). */ +#undef HAVE_LIBDIVXDECORE + +/* Define to 1 if you have the `divxencore' library (-ldivxencore). */ +#undef HAVE_LIBDIVXENCORE + +/* Define if gme 0.5.6 or newer is available */ +#undef HAVE_LIBGME_ACCURACY + +/* Define to enable mms protocol library (used by libmms). */ +#undef HAVE_LIBMMS + +/* Define to 1 if you have the `nsl' library (-lnsl). */ +#undef HAVE_LIBNSL + +/* Define to 1 if you have the `socket' library (-lsocket). */ +#undef HAVE_LIBSOCKET + +/* Define to enable Linear Systems SDI plugin (used by linsys). */ +#undef HAVE_LINSYS + +/* Define if we have liblrdf */ +#undef HAVE_LRDF + +/* Define to enable lv2 (used by lv2). */ +#undef HAVE_LV2 + +/* Define to 1 if you have the header file. */ +#undef HAVE_MEMORY_H + +/* Define to enable libmimic library (used by mimic). */ +#undef HAVE_MIMIC + +/* Define to 1 if you have a working `mmap' system call. */ +#undef HAVE_MMAP + +/* Define to enable modplug (used by modplug). */ +#undef HAVE_MODPLUG + +/* Define to enable mpeg2enc (used by mpeg2enc). */ +#undef HAVE_MPEG2ENC + +/* Define to enable mplex (used by mplex). */ +#undef HAVE_MPLEX + +/* Define to 1 if you have the header file. */ +#undef HAVE_MSACM_H + +/* Define to enable musepackdec (used by musepack). */ +#undef HAVE_MUSEPACK + +/* Define to enable musicbrainz tag generation (used by musicbrainz). */ +#undef HAVE_MUSICBRAINZ + +/* Define to enable MythTV client plugins (used by mythtvsrc). */ +#undef HAVE_MYTHTV + +/* Define to enable nas plug-in (used by nassink). */ +#undef HAVE_NAS + +/* Define to enable neon http client plugins (used by neonhttpsrc). */ +#undef HAVE_NEON + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_TCP_H + +/* Define to enable ofa plugins (used by ofa). */ +#undef HAVE_OFA + +/* Define to enable opencv plugins (used by opencv). */ +#undef HAVE_OPENCV + +/* Use Orc */ +#undef HAVE_ORC + +/* Defined if compiling for OSX */ +#undef HAVE_OSX + +/* Define to enable OSX video (used by osxvideosrc). */ +#undef HAVE_OSX_VIDEO + +/* Define to 1 if you have the header file. */ +#undef HAVE_PTHREAD_H + +/* Define to enable QuickTime wrapper (used by qtwrapper). */ +#undef HAVE_QUICKTIME + +/* Define if RDTSC is available */ +#undef HAVE_RDTSC + +/* Define to enable resindvd plugin (used by resindvd). */ +#undef HAVE_RESINDVD + +/* Define to enable rsvg decoder (used by rsvg). */ +#undef HAVE_RSVG + +/* Define to enable rtmp library (used by rtmp). */ +#undef HAVE_RTMP + +/* Define to enable Schroedinger video codec (used by schro). */ +#undef HAVE_SCHRO + +/* Define to enable SDL plug-in (used by sdlvideosink sdlaudiosink). */ +#undef HAVE_SDL + +/* Define to enable POSIX shared memory source and sink (used by shm). */ +#undef HAVE_SHM + +/* Define to enable sndfile plug-in (used by sfsrc sfsink). */ +#undef HAVE_SNDFILE + +/* Define to enable soundtouch plug-in (used by soundtouch). */ +#undef HAVE_SOUNDTOUCH + +/* Defined if the available libSoundTouch is >= 1.4 */ +#undef HAVE_SOUNDTOUCH_1_4 + +/* Define to enable spc decoder (used by spc). */ +#undef HAVE_SPC + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to enable swfdec plug-in (used by swfdec). */ +#undef HAVE_SWFDEC + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UTSNAME_H + +/* Define if libtiger is available */ +#undef HAVE_TIGER + +/* Define to enable timidity midi soft synth plugin (used by timidity). */ +#undef HAVE_TIMIDITY + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define if valgrind should be used */ +#undef HAVE_VALGRIND + +/* Define to enable Video CD (used by vcdsrc). */ +#undef HAVE_VCD + +/* Define to enable VDPAU (used by vdpau). */ +#undef HAVE_VDPAU + +/* Define to enable VP8 decoder (used by vp8). */ +#undef HAVE_VP8 + +/* Defined if the VP8 decoder is available */ +#undef HAVE_VP8_DECODER + +/* Defined if the VP8 encoder is available */ +#undef HAVE_VP8_ENCODER + +/* Define to enable wildmidi midi soft synth plugin (used by wildmidi). */ +#undef HAVE_WILDMIDI + +/* Have WildMidi 0.2.2 or earlier library */ +#undef HAVE_WILDMIDI_0_2_2 + +/* Defined if compiling for Windows */ +#undef HAVE_WIN32 + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINDOWS_H + +/* Define to enable Windows internet library (used by wininet). */ +#undef HAVE_WININET + +/* Define to 1 if you have the header file. */ +#undef HAVE_WININET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_WINSOCK2_H + +/* Define if you have X11 library */ +#undef HAVE_X11 + +/* Define to enable xvid plugins (used by xvid). */ +#undef HAVE_XVID + +/* Define to enable ZBar barcode detector (used by zbar). */ +#undef HAVE_ZBAR + +/* the host CPU */ +#undef HOST_CPU + +/* library dir */ +#undef LIBDIR + +/* gettext locale dir */ +#undef LOCALEDIR + +/* Define to the sub-directory in which libtool stores uninstalled libraries. + */ +#undef LT_OBJDIR + +/* Define if the old MusePack API is used */ +#undef MPC_IS_OLD_API + +/* Define to 1 if your C compiler doesn't accept -c and -o together. */ +#undef NO_MINUS_C_MINUS_O + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* directory where plugins are located */ +#undef PLUGINDIR + +/* The size of `char', as computed by sizeof. */ +#undef SIZEOF_CHAR + +/* The size of `int', as computed by sizeof. */ +#undef SIZEOF_INT + +/* The size of `long', as computed by sizeof. */ +#undef SIZEOF_LONG + +/* The size of `short', as computed by sizeof. */ +#undef SIZEOF_SHORT + +/* The size of `void*', as computed by sizeof. */ +#undef SIZEOF_VOIDP + +/* Define to 1 if you have the ANSI C header files. */ +#undef STDC_HEADERS + +/* Define location of timidity.cfg */ +#undef TIMIDITY_CFG + +/* Version number of package */ +#undef VERSION + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if the X Window System is missing or not being used. */ +#undef X_DISPLAY_MISSING + +/* We need at least WinXP SP2 for __stat64 */ +#undef __MSVCRT_VERSION__ diff --git a/config.rpath b/config.rpath new file mode 100755 index 0000000..c547c68 --- /dev/null +++ b/config.rpath @@ -0,0 +1,666 @@ +#! /bin/sh +# Output a system dependent set of variables, describing how to set the +# run time search path of shared libraries in an executable. +# +# Copyright 1996-2007 Free Software Foundation, Inc. +# Taken from GNU libtool, 2001 +# Originally by Gordon Matzigkeit , 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. +# +# The first argument passed to this file is the canonical host specification, +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# The environment variables CC, GCC, LDFLAGS, LD, with_gnu_ld +# should be set by the caller. +# +# The set of defined variables is at the end of this script. + +# Known limitations: +# - On IRIX 6.5 with CC="cc", the run time search patch must not be longer +# than 256 bytes, otherwise the compiler driver will dump core. The only +# known workaround is to choose shorter directory names for the build +# directory and/or the installation directory. + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a +shrext=.so + +host="$1" +host_cpu=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\1/'` +host_vendor=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\2/'` +host_os=`echo "$host" | sed 's/^\([^-]*\)-\([^-]*\)-\(.*\)$/\3/'` + +# Code taken from libtool.m4's _LT_CC_BASENAME. + +for cc_temp in $CC""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`echo "$cc_temp" | sed -e 's%^.*/%%'` + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_COMPILER_PIC. + +wl= +if test "$GCC" = yes; then + wl='-Wl,' +else + case "$host_os" in + aix*) + wl='-Wl,' + ;; + darwin*) + case $cc_basename in + xlc*) + wl='-Wl,' + ;; + esac + ;; + mingw* | cygwin* | pw32* | os2*) + ;; + hpux9* | hpux10* | hpux11*) + wl='-Wl,' + ;; + irix5* | irix6* | nonstopux*) + wl='-Wl,' + ;; + newsos6) + ;; + linux* | k*bsd*-gnu) + case $cc_basename in + icc* | ecc*) + wl='-Wl,' + ;; + pgcc | pgf77 | pgf90) + wl='-Wl,' + ;; + ccc*) + wl='-Wl,' + ;; + como) + wl='-lopt=' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + wl='-Wl,' + ;; + esac + ;; + esac + ;; + osf3* | osf4* | osf5*) + wl='-Wl,' + ;; + rdos*) + ;; + solaris*) + wl='-Wl,' + ;; + sunos4*) + wl='-Qoption ld ' + ;; + sysv4 | sysv4.2uw2* | sysv4.3*) + wl='-Wl,' + ;; + sysv4*MP*) + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + wl='-Wl,' + ;; + unicos*) + wl='-Wl,' + ;; + uts4*) + ;; + esac +fi + +# Code taken from libtool.m4's AC_LIBTOOL_PROG_LD_SHLIBS. + +hardcode_libdir_flag_spec= +hardcode_libdir_separator= +hardcode_direct=no +hardcode_minus_L=no + +case "$host_os" in + cygwin* | mingw* | pw32*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; +esac + +ld_shlibs=yes +if test "$with_gnu_ld" = yes; then + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + # Unlike libtool, we use -rpath here, not --rpath, since the documented + # option of GNU ld is called -rpath, not --rpath. + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + case "$host_os" in + aix3* | aix4* | aix5*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # Samuel A. Falvo II reports + # that the semantics of dynamic libraries on AmigaOS, at least up + # to version 4, is to share data among multiple programs linked + # with the same dynamic library. Since this doesn't match the + # behavior of shared libraries on other platforms, we cannot use + # them. + ld_shlibs=no + ;; + beos*) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + cygwin* | mingw* | pw32*) + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + if $LD --help 2>&1 | grep 'auto-import' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + interix[3-9]*) + hardcode_direct=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + gnu* | linux* | k*bsd*-gnu) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + netbsd*) + ;; + solaris*) + if $LD -v 2>&1 | grep 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + elif $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-rpath,$libdir`' + else + ld_shlibs=no + fi + ;; + esac + ;; + sunos4*) + hardcode_direct=yes + ;; + *) + if $LD --help 2>&1 | grep ': supported targets:.* elf' > /dev/null; then + : + else + ld_shlibs=no + fi + ;; + esac + if test "$ld_shlibs" = no; then + hardcode_libdir_flag_spec= + fi +else + case "$host_os" in + aix3*) + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + aix4* | aix5*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + else + aix_use_runtimelinking=no + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix5*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + fi + hardcode_direct=yes + hardcode_libdir_separator=':' + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && \ + strings "$collect2name" | grep resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + fi + # Begin _LT_AC_SYS_LIBPATH_AIX. + echo 'int main () { return 0; }' > conftest.c + ${CC} ${LDFLAGS} conftest.c -o conftest + aix_libpath=`dump -H conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest 2>/dev/null | sed -n -e '/Import File Strings/,/^$/ { /^0/ { s/^0 *\(.*\)$/\1/; p; } +}'` + fi + if test -z "$aix_libpath"; then + aix_libpath="/usr/lib:/lib" + fi + rm -f conftest.c conftest + # End _LT_AC_SYS_LIBPATH_AIX. + if test "$aix_use_runtimelinking" = yes; then + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + else + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + fi + fi + ;; + amigaos*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + # see comment about different semantics on the GNU ld section + ld_shlibs=no + ;; + bsdi[45]*) + ;; + cygwin* | mingw* | pw32*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + libext=lib + ;; + darwin* | rhapsody*) + hardcode_direct=no + if test "$GCC" = yes ; then + : + else + case $cc_basename in + xlc*) + ;; + *) + ld_shlibs=no + ;; + esac + fi + ;; + dgux*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + freebsd1*) + ld_shlibs=no + ;; + freebsd2.2*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + freebsd2*) + hardcode_direct=yes + hardcode_minus_L=yes + ;; + freebsd* | dragonfly*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + hpux9*) + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + hpux10*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + hpux11*) + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + ;; + *) + hardcode_direct=yes + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + irix5* | irix6* | nonstopux*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + netbsd*) + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + ;; + newsos6) + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + else + case "$host_os" in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + osf3*) + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + osf4* | osf5*) + if test "$GCC" = yes; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + # Both cc and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + hardcode_libdir_separator=: + ;; + solaris*) + hardcode_libdir_flag_spec='-R$libdir' + ;; + sunos4*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + ;; + sysv4) + case $host_vendor in + sni) + hardcode_direct=yes # is this really true??? + ;; + siemens) + hardcode_direct=no + ;; + motorola) + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + ;; + sysv4.3*) + ;; + sysv4*MP*) + if test -d /usr/nec; then + ld_shlibs=yes + fi + ;; + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + ;; + sysv5* | sco3.2v5* | sco5v6*) + hardcode_libdir_flag_spec='`test -z "$SCOABSPATH" && echo ${wl}-R,$libdir`' + hardcode_libdir_separator=':' + ;; + uts4*) + hardcode_libdir_flag_spec='-L$libdir' + ;; + *) + ld_shlibs=no + ;; + esac +fi + +# Check dynamic linker characteristics +# Code taken from libtool.m4's AC_LIBTOOL_SYS_DYNAMIC_LINKER. +# Unlike libtool.m4, here we don't care about _all_ names of the library, but +# only about the one the linker finds when passed -lNAME. This is the last +# element of library_names_spec in libtool.m4, or possibly two of them if the +# linker has special search rules. +library_names_spec= # the last element of library_names_spec in libtool.m4 +libname_spec='lib$name' +case "$host_os" in + aix3*) + library_names_spec='$libname.a' + ;; + aix4* | aix5*) + library_names_spec='$libname$shrext' + ;; + amigaos*) + library_names_spec='$libname.a' + ;; + beos*) + library_names_spec='$libname$shrext' + ;; + bsdi[45]*) + library_names_spec='$libname$shrext' + ;; + cygwin* | mingw* | pw32*) + shrext=.dll + library_names_spec='$libname.dll.a $libname.lib' + ;; + darwin* | rhapsody*) + shrext=.dylib + library_names_spec='$libname$shrext' + ;; + dgux*) + library_names_spec='$libname$shrext' + ;; + freebsd1*) + ;; + freebsd* | dragonfly*) + case "$host_os" in + freebsd[123]*) + library_names_spec='$libname$shrext$versuffix' ;; + *) + library_names_spec='$libname$shrext' ;; + esac + ;; + gnu*) + library_names_spec='$libname$shrext' + ;; + hpux9* | hpux10* | hpux11*) + case $host_cpu in + ia64*) + shrext=.so + ;; + hppa*64*) + shrext=.sl + ;; + *) + shrext=.sl + ;; + esac + library_names_spec='$libname$shrext' + ;; + interix[3-9]*) + library_names_spec='$libname$shrext' + ;; + irix5* | irix6* | nonstopux*) + library_names_spec='$libname$shrext' + case "$host_os" in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") libsuff= shlibsuff= ;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") libsuff=32 shlibsuff=N32 ;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") libsuff=64 shlibsuff=64 ;; + *) libsuff= shlibsuff= ;; + esac + ;; + esac + ;; + linux*oldld* | linux*aout* | linux*coff*) + ;; + linux* | k*bsd*-gnu) + library_names_spec='$libname$shrext' + ;; + knetbsd*-gnu) + library_names_spec='$libname$shrext' + ;; + netbsd*) + library_names_spec='$libname$shrext' + ;; + newsos6) + library_names_spec='$libname$shrext' + ;; + nto-qnx*) + library_names_spec='$libname$shrext' + ;; + openbsd*) + library_names_spec='$libname$shrext$versuffix' + ;; + os2*) + libname_spec='$name' + shrext=.dll + library_names_spec='$libname.a' + ;; + osf3* | osf4* | osf5*) + library_names_spec='$libname$shrext' + ;; + rdos*) + ;; + solaris*) + library_names_spec='$libname$shrext' + ;; + sunos4*) + library_names_spec='$libname$shrext$versuffix' + ;; + sysv4 | sysv4.3*) + library_names_spec='$libname$shrext' + ;; + sysv4*MP*) + library_names_spec='$libname$shrext' + ;; + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + library_names_spec='$libname$shrext' + ;; + uts4*) + library_names_spec='$libname$shrext' + ;; +esac + +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' +escaped_wl=`echo "X$wl" | sed -e 's/^X//' -e "$sed_quote_subst"` +shlibext=`echo "$shrext" | sed -e 's,^\.,,'` +escaped_libname_spec=`echo "X$libname_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_library_names_spec=`echo "X$library_names_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` +escaped_hardcode_libdir_flag_spec=`echo "X$hardcode_libdir_flag_spec" | sed -e 's/^X//' -e "$sed_quote_subst"` + +LC_ALL=C sed -e 's/^\([a-zA-Z0-9_]*\)=/acl_cv_\1=/' <. +# +# +# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, +# 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software +# Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + # We cannot yet assume a decent shell, so we have to provide a + # neutralization value for shells without unset; and this also + # works around shells that cannot unset nonexistent variables. + BASH_ENV=/dev/null + ENV=/dev/null + (unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV + export CONFIG_SHELL + exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer +$0: about your system, including any error possibly output +$0: before this message. Then install a modern shell, or +$0: manually run the script under such a shell if you do +$0: have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + + +# Check that we are running under the correct shell. +SHELL=${CONFIG_SHELL-/bin/sh} + +case X$lt_ECHO in +X*--fallback-echo) + # Remove one level of quotation (which was required for Make). + ECHO=`echo "$lt_ECHO" | sed 's,\\\\\$\\$0,'$0','` + ;; +esac + +ECHO=${lt_ECHO-echo} +if test "X$1" = X--no-reexec; then + # Discard the --no-reexec flag, and continue. + shift +elif test "X$1" = X--fallback-echo; then + # Avoid inline document here, it may be left over + : +elif test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' ; then + # Yippee, $ECHO works! + : +else + # Restart under the correct shell. + exec $SHELL "$0" --no-reexec ${1+"$@"} +fi + +if test "X$1" = X--fallback-echo; then + # used as fallback echo + shift + cat <<_LT_EOF +$* +_LT_EOF + exit 0 +fi + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +if test -z "$lt_ECHO"; then + if test "X${echo_test_string+set}" != Xset; then + # find a string as large as possible, as long as the shell can cope with it + for cmd in 'sed 50q "$0"' 'sed 20q "$0"' 'sed 10q "$0"' 'sed 2q "$0"' 'echo test'; do + # expected sizes: less than 2Kb, 1Kb, 512 bytes, 16 bytes, ... + if { echo_test_string=`eval $cmd`; } 2>/dev/null && + { test "X$echo_test_string" = "X$echo_test_string"; } 2>/dev/null + then + break + fi + done + fi + + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + : + else + # The Solaris, AIX, and Digital Unix default echo programs unquote + # backslashes. This makes it impossible to quote backslashes using + # echo "$something" | sed 's/\\/\\\\/g' + # + # So, first we look for a working echo in the user's PATH. + + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for dir in $PATH /usr/ucb; do + IFS="$lt_save_ifs" + if (test -f $dir/echo || test -f $dir/echo$ac_exeext) && + test "X`($dir/echo '\t') 2>/dev/null`" = 'X\t' && + echo_testing_string=`($dir/echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$dir/echo" + break + fi + done + IFS="$lt_save_ifs" + + if test "X$ECHO" = Xecho; then + # We didn't find a better echo, so look for alternatives. + if test "X`{ print -r '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ print -r "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # This shell has a builtin print -r that does the trick. + ECHO='print -r' + elif { test -f /bin/ksh || test -f /bin/ksh$ac_exeext; } && + test "X$CONFIG_SHELL" != X/bin/ksh; then + # If we have ksh, try running configure again with it. + ORIGINAL_CONFIG_SHELL=${CONFIG_SHELL-/bin/sh} + export ORIGINAL_CONFIG_SHELL + CONFIG_SHELL=/bin/ksh + export CONFIG_SHELL + exec $CONFIG_SHELL "$0" --no-reexec ${1+"$@"} + else + # Try using printf. + ECHO='printf %s\n' + if test "X`{ $ECHO '\t'; } 2>/dev/null`" = 'X\t' && + echo_testing_string=`{ $ECHO "$echo_test_string"; } 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + # Cool, printf works + : + elif echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($ORIGINAL_CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + CONFIG_SHELL=$ORIGINAL_CONFIG_SHELL + export CONFIG_SHELL + SHELL="$CONFIG_SHELL" + export SHELL + ECHO="$CONFIG_SHELL $0 --fallback-echo" + elif echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo '\t') 2>/dev/null` && + test "X$echo_testing_string" = 'X\t' && + echo_testing_string=`($CONFIG_SHELL "$0" --fallback-echo "$echo_test_string") 2>/dev/null` && + test "X$echo_testing_string" = "X$echo_test_string"; then + ECHO="$CONFIG_SHELL $0 --fallback-echo" + else + # maybe with a smaller string... + prev=: + + for cmd in 'echo test' 'sed 2q "$0"' 'sed 10q "$0"' 'sed 20q "$0"' 'sed 50q "$0"'; do + if { test "X$echo_test_string" = "X`eval $cmd`"; } 2>/dev/null + then + break + fi + prev="$cmd" + done + + if test "$prev" != 'sed 50q "$0"'; then + echo_test_string=`eval $prev` + export echo_test_string + exec ${ORIGINAL_CONFIG_SHELL-${CONFIG_SHELL-/bin/sh}} "$0" ${1+"$@"} + else + # Oops. We lost completely, so just stick with echo. + ECHO=echo + fi + fi + fi + fi + fi +fi + +# Copy echo and quote the copy suitably for passing to libtool from +# the Makefile, instead of quoting the original, which is used later. +lt_ECHO=$ECHO +if test "X$lt_ECHO" = "X$CONFIG_SHELL $0 --fallback-echo"; then + lt_ECHO="$CONFIG_SHELL \\\$\$0 --fallback-echo" +fi + + + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='GStreamer Bad Plug-ins' +PACKAGE_TARNAME='gst-plugins-bad' +PACKAGE_VERSION='0.10.22' +PACKAGE_STRING='GStreamer Bad Plug-ins 0.10.22' +PACKAGE_BUGREPORT='http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer' +PACKAGE_URL='' + +ac_unique_file="docs/plugins/gst-plugins-bad-plugins-docs.sgml" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +gt_needs= +ac_header_list= +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +GST_PLUGIN_LDFLAGS +GST_LIB_LDFLAGS +GST_ALL_LDFLAGS +GST_PLUGINS_BAD_CXXFLAGS +GST_PLUGINS_BAD_CFLAGS +GST_CXXFLAGS +GST_OPTION_CXXFLAGS +GST_OPTION_CFLAGS +DEPRECATED_CFLAGS +PROFILE_CFLAGS +USE_GSETTINGS_FALSE +USE_GSETTINGS_TRUE +GSETTINGS_RULES +GLIB_COMPILE_SCHEMAS +gsettingsschemadir +GSETTINGS_DISABLE_SCHEMAS_COMPILE +GSETTINGS_LIBS +GSETTINGS_CFLAGS +USE_RTMP_FALSE +USE_RTMP_TRUE +RTMP_LIBS +RTMP_CFLAGS +USE_VP8_FALSE +USE_VP8_TRUE +VPX_LIBS +HAVE_VPX +USE_ZBAR_FALSE +USE_ZBAR_TRUE +ZBAR_LIBS +ZBAR_CFLAGS +USE_SCHRO_FALSE +USE_SCHRO_TRUE +SCHRO_LIBS +SCHRO_CFLAGS +USE_VDPAU_FALSE +USE_VDPAU_TRUE +VDPAU_LIBS +VDPAU_CFLAGS +USE_ACM_FALSE +USE_ACM_TRUE +ACMMP3DEC_CFLAGS +ACMENC_CFLAGS +USE_WININET_FALSE +USE_WININET_TRUE +USE_DVB_FALSE +USE_DVB_TRUE +USE_XVID_FALSE +USE_XVID_TRUE +XVID_LIBS +USE_SWFDEC_FALSE +USE_SWFDEC_TRUE +SWFDEC_LIBS +SWFDEC_CFLAGS +USE_GME_FALSE +USE_GME_TRUE +GME_LIBS +USE_SPC_FALSE +USE_SPC_TRUE +SPC_LIBS +USE_SOUNDTOUCH_FALSE +USE_SOUNDTOUCH_TRUE +SOUNDTOUCH_LIBS +SOUNDTOUCH_CFLAGS +USE_SNDFILE_FALSE +USE_SNDFILE_TRUE +SNDFILE_LIBS +SNDFILE_CFLAGS +USE_SDL_FALSE +USE_SDL_TRUE +SDL_LIBS +SDL_CFLAGS +SDL_CONFIG +USE_WILDMIDI_FALSE +USE_WILDMIDI_TRUE +WILDMIDI_LIBS +WILDMIDI_CFLAGS +HAVE_WILDMIDI +USE_TIMIDITY_FALSE +USE_TIMIDITY_TRUE +TIMIDITY_LIBS +TIMIDITY_CFLAGS +USE_RSVG_FALSE +USE_RSVG_TRUE +RSVG_LIBS +RSVG_CFLAGS +USE_OPENCV_FALSE +USE_OPENCV_TRUE +OPENCV_LIBS +OPENCV_CFLAGS +USE_OFA_FALSE +USE_OFA_TRUE +OFA_LIBS +OFA_CFLAGS +USE_NEON_FALSE +USE_NEON_TRUE +NEON_LIBS +NEON_CFLAGS +USE_NAS_FALSE +USE_NAS_TRUE +NAS_LIBS +NAS_CFLAGS +HAVE_NAS +HAVE_X +X_EXTRA_LIBS +X_LIBS +X_PRE_LIBS +X_CFLAGS +XMKMF +USE_MYTHTV_FALSE +USE_MYTHTV_TRUE +GMYTH_LIBS +GMYTH_CFLAGS +USE_MUSICBRAINZ_FALSE +USE_MUSICBRAINZ_TRUE +MUSICBRAINZ_LIBS +MUSICBRAINZ_CFLAGS +USE_MUSEPACK_FALSE +USE_MUSEPACK_TRUE +MUSEPACK_LIBS +USE_MPLEX_FALSE +USE_MPLEX_TRUE +MPLEX_LDFLAGS +MPLEX_LIBS +MPLEX_CFLAGS +USE_MPEG2ENC_FALSE +USE_MPEG2ENC_TRUE +MPEG2ENC_LIBS +MPEG2ENC_CFLAGS +MJPEG_LIBS +MJPEG_CFLAGS +USE_MIMIC_FALSE +USE_MIMIC_TRUE +MIMIC_LIBS +MIMIC_CFLAGS +USE_MODPLUG_FALSE +USE_MODPLUG_TRUE +MODPLUG_LIBS +MODPLUG_CFLAGS +USE_LINSYS_FALSE +USE_LINSYS_TRUE +USE_LIBMMS_FALSE +USE_LIBMMS_TRUE +LIBMMS_LIBS +LIBMMS_CFLAGS +USE_LV2_FALSE +USE_LV2_TRUE +SLV2_LIBS +SLV2_CFLAGS +USE_LADSPA_FALSE +USE_LADSPA_TRUE +LRDF_LIBS +LRDF_CFLAGS +USE_KATE_FALSE +USE_KATE_TRUE +USE_TIGER_FALSE +USE_TIGER_TRUE +TIGER_LIBS +TIGER_CFLAGS +KATE_LIBS +KATE_CFLAGS +USE_JP2K_FALSE +USE_JP2K_TRUE +JP2K_LIBS +HAVE_JP2K +USE_GSM_FALSE +USE_GSM_TRUE +GSM_LIBS +HAVE_GSM +USE_FLITE_FALSE +USE_FLITE_TRUE +FLITE_LIBS +FLITE_CFLAGS +HAVE_FLITE +USE_FBDEV_FALSE +USE_FBDEV_TRUE +USE_FAAD_FALSE +USE_FAAD_TRUE +FAAD_IS_NEAAC +FAAD_LIBS +HAVE_FAAD +USE_FAAC_FALSE +USE_FAAC_TRUE +FAAC_LIBS +HAVE_FAAC +USE_RESINDVD_FALSE +USE_RESINDVD_TRUE +DVDNAV_LIBS +DVDNAV_CFLAGS +USE_DIVX_FALSE +USE_DIVX_TRUE +DIVXDEC_LIBS +DIVXENC_LIBS +USE_DTS_FALSE +USE_DTS_TRUE +DTS_LIBS +HAVE_DTS +USE_DIRAC_FALSE +USE_DIRAC_TRUE +DIRAC_LIBS +DIRAC_CFLAGS +USE_DIRECTFB_FALSE +USE_DIRECTFB_TRUE +DIRECTFB_LIBS +DIRECTFB_CFLAGS +USE_DECKLINK_FALSE +USE_DECKLINK_TRUE +DECKLINK_LIBS +DECKLINK_CXXFLAGS +USE_DC1394_FALSE +USE_DC1394_TRUE +LIBDC1394_LIBS +LIBDC1394_CFLAGS +USE_CURL_FALSE +USE_CURL_TRUE +CURL_LIBS +CURL_CFLAGS +USE_COG_FALSE +USE_COG_TRUE +COG_LIBS +COG_CFLAGS +USE_CELT_FALSE +USE_CELT_TRUE +CELT_0_11_LIBS +CELT_0_11_CFLAGS +CELT_0_8_LIBS +CELT_0_8_CFLAGS +CELT_0_7_LIBS +CELT_0_7_CFLAGS +CELT_LIBS +CELT_CFLAGS +USE_CDAUDIO_FALSE +USE_CDAUDIO_TRUE +CDAUDIO_CFLAGS +CDAUDIO_LIBS +CDAUDIO_CONFIG +USE_BZ2_FALSE +USE_BZ2_TRUE +BZ2_LIBS +HAVE_BZ2 +USE_APEXSINK_FALSE +USE_APEXSINK_TRUE +APEXSINK_LIBS +APEXSINK_CFLAGS +USE_AMRWB_FALSE +USE_AMRWB_TRUE +HAVE_AMRWB +AMRWB_LIBS +USE_ASSRENDER_FALSE +USE_ASSRENDER_TRUE +ASSRENDER_LIBS +ASSRENDER_CFLAGS +USE_VCD_FALSE +USE_VCD_TRUE +USE_SHM_FALSE +USE_SHM_TRUE +USE_QUICKTIME_FALSE +USE_QUICKTIME_TRUE +USE_OSX_VIDEO_FALSE +USE_OSX_VIDEO_TRUE +HAVE_IOS_FALSE +HAVE_IOS_TRUE +USE_APPLE_MEDIA_FALSE +USE_APPLE_MEDIA_TRUE +USE_DIRECTDRAW_FALSE +USE_DIRECTDRAW_TRUE +HAVE_DIRECTDRAW +DIRECTDRAW_LIBS +USE_DIRECTSOUND_FALSE +USE_DIRECTSOUND_TRUE +HAVE_DIRECTSOUND +DIRECTSOUND_LIBS +DIRECTX_LDFLAGS +DIRECTX_CFLAGS +XDG_LIBS +DCCP_LIBS +HAVE_WINSOCK2_H_FALSE +HAVE_WINSOCK2_H_TRUE +WIN32_LIBS +GIO_LIBS +GIO_CFLAGS +USE_PLUGIN_Y4M_FALSE +USE_PLUGIN_Y4M_TRUE +USE_PLUGIN_VMNC_FALSE +USE_PLUGIN_VMNC_TRUE +USE_PLUGIN_VIDEOSIGNAL_FALSE +USE_PLUGIN_VIDEOSIGNAL_TRUE +USE_PLUGIN_VIDEOPARSERS_FALSE +USE_PLUGIN_VIDEOPARSERS_TRUE +USE_PLUGIN_VIDEOMEASURE_FALSE +USE_PLUGIN_VIDEOMEASURE_TRUE +USE_PLUGIN_VIDEOMAXRATE_FALSE +USE_PLUGIN_VIDEOMAXRATE_TRUE +USE_PLUGIN_VIDEOFILTERS_FALSE +USE_PLUGIN_VIDEOFILTERS_TRUE +USE_PLUGIN_TTA_FALSE +USE_PLUGIN_TTA_TRUE +USE_PLUGIN_STEREO_FALSE +USE_PLUGIN_STEREO_TRUE +USE_PLUGIN_SUBENC_FALSE +USE_PLUGIN_SUBENC_TRUE +USE_PLUGIN_SPEED_FALSE +USE_PLUGIN_SPEED_TRUE +USE_PLUGIN_SIREN_FALSE +USE_PLUGIN_SIREN_TRUE +USE_PLUGIN_SEGMENTCLIP_FALSE +USE_PLUGIN_SEGMENTCLIP_TRUE +USE_PLUGIN_SDP_FALSE +USE_PLUGIN_SDP_TRUE +USE_PLUGIN_SDI_FALSE +USE_PLUGIN_SDI_TRUE +USE_PLUGIN_SCALETEMPO_FALSE +USE_PLUGIN_SCALETEMPO_TRUE +USE_PLUGIN_RTPVP8_FALSE +USE_PLUGIN_RTPVP8_TRUE +USE_PLUGIN_RTPMUX_FALSE +USE_PLUGIN_RTPMUX_TRUE +USE_PLUGIN_REAL_FALSE +USE_PLUGIN_REAL_TRUE +USE_PLUGIN_RAWPARSE_FALSE +USE_PLUGIN_RAWPARSE_TRUE +USE_PLUGIN_PNM_FALSE +USE_PLUGIN_PNM_TRUE +USE_PLUGIN_PCAPPARSE_FALSE +USE_PLUGIN_PCAPPARSE_TRUE +USE_PLUGIN_PATCHDETECT_FALSE +USE_PLUGIN_PATCHDETECT_TRUE +USE_PLUGIN_NUVDEMUX_FALSE +USE_PLUGIN_NUVDEMUX_TRUE +USE_PLUGIN_NSF_FALSE +USE_PLUGIN_NSF_TRUE +USE_PLUGIN_MXF_FALSE +USE_PLUGIN_MXF_TRUE +USE_PLUGIN_MVE_FALSE +USE_PLUGIN_MVE_TRUE +USE_PLUGIN_MPEGVIDEOPARSE_FALSE +USE_PLUGIN_MPEGVIDEOPARSE_TRUE +USE_PLUGIN_MPEG4VIDEOPARSE_FALSE +USE_PLUGIN_MPEG4VIDEOPARSE_TRUE +USE_PLUGIN_MPEGPSMUX_FALSE +USE_PLUGIN_MPEGPSMUX_TRUE +USE_PLUGIN_MPEGTSMUX_FALSE +USE_PLUGIN_MPEGTSMUX_TRUE +USE_PLUGIN_MPEGTSDEMUX_FALSE +USE_PLUGIN_MPEGTSDEMUX_TRUE +USE_PLUGIN_MPEGDEMUX_FALSE +USE_PLUGIN_MPEGDEMUX_TRUE +USE_PLUGIN_LIVEADDER_FALSE +USE_PLUGIN_LIVEADDER_TRUE +USE_PLUGIN_LIBRFB_FALSE +USE_PLUGIN_LIBRFB_TRUE +USE_PLUGIN_LEGACYRESAMPLE_FALSE +USE_PLUGIN_LEGACYRESAMPLE_TRUE +USE_PLUGIN_JPEGFORMAT_FALSE +USE_PLUGIN_JPEGFORMAT_TRUE +USE_PLUGIN_JP2KDECIMATOR_FALSE +USE_PLUGIN_JP2KDECIMATOR_TRUE +USE_PLUGIN_IVFPARSE_FALSE +USE_PLUGIN_IVFPARSE_TRUE +USE_PLUGIN_INVTELECINE_FALSE +USE_PLUGIN_INVTELECINE_TRUE +USE_PLUGIN_INTERLACE_FALSE +USE_PLUGIN_INTERLACE_TRUE +USE_PLUGIN_ID3TAG_FALSE +USE_PLUGIN_ID3TAG_TRUE +USE_PLUGIN_HLS_FALSE +USE_PLUGIN_HLS_TRUE +USE_PLUGIN_HDVPARSE_FALSE +USE_PLUGIN_HDVPARSE_TRUE +USE_PLUGIN_H264PARSE_FALSE +USE_PLUGIN_H264PARSE_TRUE +USE_PLUGIN_GEOMETRICTRANSFORM_FALSE +USE_PLUGIN_GEOMETRICTRANSFORM_TRUE +USE_PLUGIN_GAUDIEFFECTS_FALSE +USE_PLUGIN_GAUDIEFFECTS_TRUE +USE_PLUGIN_FREI0R_FALSE +USE_PLUGIN_FREI0R_TRUE +USE_PLUGIN_FREEZE_FALSE +USE_PLUGIN_FREEZE_TRUE +USE_PLUGIN_FIELDANALYSIS_FALSE +USE_PLUGIN_FIELDANALYSIS_TRUE +USE_PLUGIN_FESTIVAL_FALSE +USE_PLUGIN_FESTIVAL_TRUE +USE_PLUGIN_DVDSPU_FALSE +USE_PLUGIN_DVDSPU_TRUE +USE_PLUGIN_DVBSUBOVERLAY_FALSE +USE_PLUGIN_DVBSUBOVERLAY_TRUE +USE_PLUGIN_DTMF_FALSE +USE_PLUGIN_DTMF_TRUE +USE_PLUGIN_DEBUGUTILS_FALSE +USE_PLUGIN_DEBUGUTILS_TRUE +USE_PLUGIN_DCCP_FALSE +USE_PLUGIN_DCCP_TRUE +USE_PLUGIN_DATAURISRC_FALSE +USE_PLUGIN_DATAURISRC_TRUE +USE_PLUGIN_COLORSPACE_FALSE +USE_PLUGIN_COLORSPACE_TRUE +USE_PLUGIN_COLOREFFECTS_FALSE +USE_PLUGIN_COLOREFFECTS_TRUE +USE_PLUGIN_CDXAPARSE_FALSE +USE_PLUGIN_CDXAPARSE_TRUE +USE_PLUGIN_CAMERABIN2_FALSE +USE_PLUGIN_CAMERABIN2_TRUE +USE_PLUGIN_CAMERABIN_FALSE +USE_PLUGIN_CAMERABIN_TRUE +USE_PLUGIN_BAYER_FALSE +USE_PLUGIN_BAYER_TRUE +USE_PLUGIN_AUTOCONVERT_FALSE +USE_PLUGIN_AUTOCONVERT_TRUE +USE_PLUGIN_ASFMUX_FALSE +USE_PLUGIN_ASFMUX_TRUE +USE_PLUGIN_AIFF_FALSE +USE_PLUGIN_AIFF_TRUE +USE_PLUGIN_ADPCMENC_FALSE +USE_PLUGIN_ADPCMENC_TRUE +USE_PLUGIN_ADPCMDEC_FALSE +USE_PLUGIN_ADPCMDEC_TRUE +DEFAULT_VISUALIZER +DEFAULT_VIDEOSRC +DEFAULT_VIDEOSINK +DEFAULT_AUDIOSRC +DEFAULT_AUDIOSINK +GST_LEVEL_DEFAULT +ERROR_CXXFLAGS +WARNING_CXXFLAGS +ERROR_CFLAGS +WARNING_CFLAGS +plugindir +PLUGINDIR +LIBDIR +GST_LICENSE +HAVE_ORCC_FALSE +HAVE_ORCC_TRUE +HAVE_ORC_FALSE +HAVE_ORC_TRUE +ORCC_FLAGS +ORCC +ORC_LIBS +ORC_CFLAGS +USE_EXIF_FALSE +USE_EXIF_TRUE +EXIF_LIBS +EXIF_CFLAGS +HAVE_X11_FALSE +HAVE_X11_TRUE +HAVE_X11 +X11_LIBS +X11_CFLAGS +GMODULE_EXPORT_LIBS +GMODULE_EXPORT_CFLAGS +HAVE_GTK_FALSE +HAVE_GTK_TRUE +GTK_LIBS +GTK_CFLAGS +GSTPB_PREFIX +GST_PREFIX +GLIB_PREFIX +GST_PLUGINS_FFMPEG_DIR +GST_PLUGINS_FFMPEG_LIBS +GST_PLUGINS_FFMPEG_CFLAGS +GST_PLUGINS_UGLY_DIR +GST_PLUGINS_UGLY_LIBS +GST_PLUGINS_UGLY_CFLAGS +GST_PLUGINS_GOOD_DIR +GST_PLUGINS_GOOD_LIBS +GST_PLUGINS_GOOD_CFLAGS +GSTPB_PLUGINS_DIR +GST_PLUGINS_BASE_DIR +GST_PLUGINS_BASE_LIBS +GST_PLUGINS_BASE_CFLAGS +HAVE_GST_CHECK_FALSE +HAVE_GST_CHECK_TRUE +GST_CONTROLLER_LIBS +GST_CONTROLLER_CFLAGS +GST_CHECK_LIBS +GST_CHECK_CFLAGS +GST_GDP_LIBS +GST_GDP_CFLAGS +GST_BASE_LIBS +GST_BASE_CFLAGS +GST_PLUGINS_DIR +GST_TOOLS_DIR +GST_LIBS +GST_CFLAGS +GLIB_LIBS +GLIB_CFLAGS +GLIB_REQ +HAVE_PTHREAD_H_FALSE +HAVE_PTHREAD_H_TRUE +HAVE_UNISTD_H_FALSE +HAVE_UNISTD_H_TRUE +LIBM +ENABLE_PLUGIN_DOCS_FALSE +ENABLE_PLUGIN_DOCS_TRUE +pkgpyexecdir +pyexecdir +pkgpythondir +pythondir +PYTHON_PLATFORM +PYTHON_EXEC_PREFIX +PYTHON_PREFIX +PYTHON_VERSION +PYTHON +GTK_DOC_USE_LIBTOOL_FALSE +GTK_DOC_USE_LIBTOOL_TRUE +ENABLE_GTK_DOC_FALSE +ENABLE_GTK_DOC_TRUE +GTKDOC_CHECK +HTML_DIR +HAVE_VALGRIND_FALSE +HAVE_VALGRIND_TRUE +VALGRIND_PATH +am__fastdepOBJC_FALSE +am__fastdepOBJC_TRUE +OBJCDEPMODE +OBJC_LDFLAGS +ac_ct_OBJC +OBJC +HAVE_CXX +CXXCPP +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +ac_ct_CXX +CXX +HAVE_CPU_CRISV32_FALSE +HAVE_CPU_CRISV32_TRUE +HAVE_CPU_CRIS_FALSE +HAVE_CPU_CRIS_TRUE +HAVE_CPU_X86_64_FALSE +HAVE_CPU_X86_64_TRUE +HAVE_CPU_M68K_FALSE +HAVE_CPU_M68K_TRUE +HAVE_CPU_IA64_FALSE +HAVE_CPU_IA64_TRUE +HAVE_CPU_S390_FALSE +HAVE_CPU_S390_TRUE +HAVE_CPU_MIPS_FALSE +HAVE_CPU_MIPS_TRUE +HAVE_CPU_HPPA_FALSE +HAVE_CPU_HPPA_TRUE +HAVE_CPU_SPARC_FALSE +HAVE_CPU_SPARC_TRUE +HAVE_CPU_ARM_FALSE +HAVE_CPU_ARM_TRUE +HAVE_CPU_ALPHA_FALSE +HAVE_CPU_ALPHA_TRUE +HAVE_CPU_PPC64_FALSE +HAVE_CPU_PPC64_TRUE +HAVE_CPU_PPC_FALSE +HAVE_CPU_PPC_TRUE +HAVE_CPU_I386_FALSE +HAVE_CPU_I386_TRUE +BUILD_EXPERIMENTAL_FALSE +BUILD_EXPERIMENTAL_TRUE +USE_EXPERIMENTAL_FALSE +USE_EXPERIMENTAL_TRUE +BUILD_EXTERNAL_FALSE +BUILD_EXTERNAL_TRUE +USE_EXTERNAL_FALSE +USE_EXTERNAL_TRUE +GST_PLUGINS_SELECTED +GST_PLUGINS_ALL +GST_PACKAGE_ORIGIN +GST_PACKAGE_NAME +BUILD_EXAMPLES_FALSE +BUILD_EXAMPLES_TRUE +GST_GCOV_ENABLED_FALSE +GST_GCOV_ENABLED_TRUE +CCASFLAGS +FFLAGS +CXXFLAGS +GCOV +GCOV_LIBS +GCOV_CFLAGS +VALGRIND_LIBS +VALGRIND_CFLAGS +PKG_CONFIG +LOCALEDIR +GETTEXT_PACKAGE +POSUB +LTLIBINTL +LIBINTL +INTLLIBS +LTLIBICONV +LIBICONV +INTL_MACOSX_LIBS +XGETTEXT_EXTRA_OPTIONS +MSGMERGE +XGETTEXT_015 +XGETTEXT +GMSGFMT_015 +MSGFMT_015 +GMSGFMT +MSGFMT +GETTEXT_MACRO_VERSION +USE_NLS +ACLOCAL_AMFLAGS +CPP +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +lt_ECHO +RANLIB +AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +EGREP +GREP +SED +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__quote +am__include +DEPDIR +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +LIBTOOL +OBJDUMP +DLLTOOL +AS +GST_MAJORMINOR +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +PACKAGE_VERSION_RELEASE +PACKAGE_VERSION_NANO +PACKAGE_VERSION_MICRO +PACKAGE_VERSION_MINOR +PACKAGE_VERSION_MAJOR +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +AWK +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_maintainer_mode +enable_silent_rules +enable_shared +enable_static +with_pic +enable_fast_install +enable_dependency_tracking +with_gnu_ld +enable_libtool_lock +with_autoconf +with_autoheader +with_automake +with_aclocal +enable_nls +enable_rpath +with_libiconv_prefix +with_libintl_prefix +enable_debug +enable_profiling +enable_valgrind +enable_gcov +enable_examples +with_pkg_config_path +with_package_name +with_package_origin +with_plugins +enable_external +enable_experimental +with_html_dir +enable_gtk_doc +enable_gobject_cast_checks +enable_glib_asserts +with_gtk +enable_orc +with_default_audiosink +with_default_audiosrc +with_default_videosink +with_default_videosrc +with_default_visualizer +enable_adpcmdec +enable_adpcmenc +enable_aiff +enable_asfmux +enable_autoconvert +enable_bayer +enable_camerabin +enable_camerabin2 +enable_cdxaparse +enable_coloreffects +enable_colorspace +enable_dataurisrc +enable_dccp +enable_debugutils +enable_dtmf +enable_dvbsuboverlay +enable_dvdspu +enable_festival +enable_fieldanalysis +enable_freeze +enable_frei0r +enable_gaudieffects +enable_geometrictransform +enable_h264parse +enable_hdvparse +enable_hls +enable_id3tag +enable_interlace +enable_invtelecine +enable_ivfparse +enable_jp2kdecimator +enable_jpegformat +enable_legacyresample +enable_librfb +enable_liveadder +enable_mpegdemux +enable_mpegtsdemux +enable_mpegtsmux +enable_mpegpsmux +enable_mpeg4videoparse +enable_mpegvideoparse +enable_mve +enable_mxf +enable_nsf +enable_nuvdemux +enable_patchdetect +enable_pcapparse +enable_pnm +enable_rawparse +enable_real +enable_rtpmux +enable_rtpvp8 +enable_scaletempo +enable_sdi +enable_sdp +enable_segmentclip +enable_siren +enable_speed +enable_subenc +enable_stereo +enable_tta +enable_videofilters +enable_videomaxrate +enable_videomeasure +enable_videoparsers +enable_videosignal +enable_vmnc +enable_y4m +enable_directsound +enable_directdraw +enable_apple_media +enable_osx_video +enable_quicktime +enable_shm +enable_vcd +enable_assrender +enable_amrwb +enable_apexsink +enable_bz2 +enable_cdaudio +enable_celt +enable_cog +enable_curl +enable_dc1394 +enable_decklink +enable_directfb +enable_dirac +enable_dts +enable_divx +enable_resindvd +enable_faac +enable_faad +enable_fbdev +enable_flite +enable_gsm +enable_jp2k +enable_kate +enable_ladspa +enable_lv2 +enable_libmms +enable_linsys +enable_modplug +enable_mimic +enable_mpeg2enc +enable_mplex +enable_musepack +enable_musicbrainz +enable_mythtv +enable_nas +with_x +enable_neon +enable_ofa +enable_opencv +enable_rsvg +enable_timidity +enable_wildmidi +enable_sdl +with_sdl_prefix +with_sdl_exec_prefix +enable_sdltest +enable_sndfile +enable_soundtouch +enable_spc +enable_gme +enable_swfdec +enable_xvid +enable_dvb +enable_wininet +enable_acm +enable_vdpau +enable_schro +enable_zbar +enable_vp8 +enable_rtmp +enable_gsettings +enable_schemas_compile +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +VALGRIND_CFLAGS +VALGRIND_LIBS +CXX +CXXFLAGS +CCC +CXXCPP +GLIB_CFLAGS +GLIB_LIBS +GST_CFLAGS +GST_LIBS +GST_BASE_CFLAGS +GST_BASE_LIBS +GST_GDP_CFLAGS +GST_GDP_LIBS +GST_CHECK_CFLAGS +GST_CHECK_LIBS +GST_CONTROLLER_CFLAGS +GST_CONTROLLER_LIBS +GST_PLUGINS_BASE_CFLAGS +GST_PLUGINS_BASE_LIBS +GST_PLUGINS_GOOD_CFLAGS +GST_PLUGINS_GOOD_LIBS +GST_PLUGINS_UGLY_CFLAGS +GST_PLUGINS_UGLY_LIBS +GST_PLUGINS_FFMPEG_CFLAGS +GST_PLUGINS_FFMPEG_LIBS +GTK_CFLAGS +GTK_LIBS +GMODULE_EXPORT_CFLAGS +GMODULE_EXPORT_LIBS +X11_CFLAGS +X11_LIBS +EXIF_CFLAGS +EXIF_LIBS +ORC_CFLAGS +ORC_LIBS +GIO_CFLAGS +GIO_LIBS +ASSRENDER_CFLAGS +ASSRENDER_LIBS +APEXSINK_CFLAGS +APEXSINK_LIBS +CELT_CFLAGS +CELT_LIBS +CELT_0_7_CFLAGS +CELT_0_7_LIBS +CELT_0_8_CFLAGS +CELT_0_8_LIBS +CELT_0_11_CFLAGS +CELT_0_11_LIBS +COG_CFLAGS +COG_LIBS +CURL_CFLAGS +CURL_LIBS +LIBDC1394_CFLAGS +LIBDC1394_LIBS +DIRECTFB_CFLAGS +DIRECTFB_LIBS +DIRAC_CFLAGS +DIRAC_LIBS +DVDNAV_CFLAGS +DVDNAV_LIBS +KATE_CFLAGS +KATE_LIBS +TIGER_CFLAGS +TIGER_LIBS +LRDF_CFLAGS +LRDF_LIBS +SLV2_CFLAGS +SLV2_LIBS +LIBMMS_CFLAGS +LIBMMS_LIBS +MODPLUG_CFLAGS +MODPLUG_LIBS +MIMIC_CFLAGS +MIMIC_LIBS +MJPEG_CFLAGS +MJPEG_LIBS +MPEG2ENC_CFLAGS +MPEG2ENC_LIBS +MPLEX_CFLAGS +MPLEX_LIBS +MUSICBRAINZ_CFLAGS +MUSICBRAINZ_LIBS +GMYTH_CFLAGS +GMYTH_LIBS +XMKMF +NEON_CFLAGS +NEON_LIBS +OFA_CFLAGS +OFA_LIBS +OPENCV_CFLAGS +OPENCV_LIBS +RSVG_CFLAGS +RSVG_LIBS +TIMIDITY_CFLAGS +TIMIDITY_LIBS +SNDFILE_CFLAGS +SNDFILE_LIBS +SOUNDTOUCH_CFLAGS +SOUNDTOUCH_LIBS +SWFDEC_CFLAGS +SWFDEC_LIBS +VDPAU_CFLAGS +VDPAU_LIBS +SCHRO_CFLAGS +SCHRO_LIBS +ZBAR_CFLAGS +ZBAR_LIBS +RTMP_CFLAGS +RTMP_LIBS +GSETTINGS_CFLAGS +GSETTINGS_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + $as_echo "$as_me: WARNING: if you wanted to set the --build type, don't use --host. + If a cross compiler is detected then cross compile mode will be used" >&2 + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures GStreamer Bad Plug-ins 0.10.22 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/gst-plugins-bad] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +X features: + --x-includes=DIR X include files are in DIR + --x-libraries=DIR X library files are in DIR + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of GStreamer Bad Plug-ins 0.10.22:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode enable make rules and dependencies not useful + (and sometimes confusing) to the casual installer + --enable-silent-rules less verbose build output (undo: `make V=1') + --disable-silent-rules verbose build output (undo: `make V=0') + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-dependency-tracking speeds up one-time build + --enable-dependency-tracking do not reject slow dependency extractors + --disable-libtool-lock avoid locking (might break parallel builds) + --disable-nls do not use Native Language Support + --disable-rpath do not hardcode runtime library paths + --disable-debug disable addition of -g debugging info + --enable-profiling adds -pg to compiler commandline, for profiling + --disable-valgrind disable run-time valgrind detection + --enable-gcov compile with coverage profiling instrumentation (gcc + only) + --disable-examples disable building examples + --disable-external disable building of plug-ins with external deps + --enable-experimental enable building of experimental plug-ins + --enable-gtk-doc use gtk-doc to build documentation [[default=no]] + --enable-gobject-cast-checks=[no/auto/yes] + Enable GObject cast checks + --enable-glib-asserts=[no/auto/yes] + Enable GLib assertion + --enable-orc use Orc if installed + --disable-adpcmdec disable dependency-less adpcmdec plugin + --disable-adpcmenc disable dependency-less adpcmenc plugin + --disable-aiff disable dependency-less aiff plugin + --disable-asfmux disable dependency-less asfmux plugin + --disable-autoconvert disable dependency-less autoconvert plugin + --disable-bayer disable dependency-less bayer plugin + --disable-camerabin disable dependency-less camerabin plugin + --disable-camerabin2 disable dependency-less camerabin2 plugin + --disable-cdxaparse disable dependency-less cdxaparse plugin + --disable-coloreffects disable dependency-less coloreffects plugin + --disable-colorspace disable dependency-less colorspace plugin + --disable-dataurisrc disable dependency-less dataurisrc plugin + --disable-dccp disable dependency-less dccp plugin + --disable-debugutils disable dependency-less debugutils plugin + --disable-dtmf disable dependency-less dtmf plugin + --disable-dvbsuboverlay disable dependency-less dvbsuboverlay plugin + --disable-dvdspu disable dependency-less dvdspu plugin + --disable-festival disable dependency-less festival plugin + --disable-fieldanalysis disable dependency-less fieldanalysis plugin + --disable-freeze disable dependency-less freeze plugin + --disable-frei0r disable dependency-less frei0r plugin + --disable-gaudieffects disable dependency-less gaudieffects plugin + --disable-geometrictransform + disable dependency-less geometrictransform plugin + --disable-h264parse disable dependency-less h264parse plugin + --disable-hdvparse disable dependency-less hdvparse plugin + --disable-hls disable dependency-less hls plugin + --disable-id3tag disable dependency-less id3tag plugin + --disable-interlace disable dependency-less interlace plugin + --disable-invtelecine disable dependency-less invtelecine plugin + --disable-ivfparse disable dependency-less ivfparse plugin + --disable-jp2kdecimator disable dependency-less jp2kdecimator plugin + --disable-jpegformat disable dependency-less jpegformat plugin + --disable-legacyresample + disable dependency-less legacyresample plugin + --disable-librfb disable dependency-less librfb plugin + --disable-liveadder disable dependency-less liveadder plugin + --disable-mpegdemux disable dependency-less mpegdemux plugin + --disable-mpegtsdemux disable dependency-less mpegtsdemux plugin + --disable-mpegtsmux disable dependency-less mpegtsmux plugin + --disable-mpegpsmux disable dependency-less mpegpsmux plugin + --disable-mpeg4videoparse + disable dependency-less mpeg4videoparse plugin + --disable-mpegvideoparse + disable dependency-less mpegvideoparse plugin + --disable-mve disable dependency-less mve plugin + --disable-mxf disable dependency-less mxf plugin + --disable-nsf disable dependency-less nsf plugin + --disable-nuvdemux disable dependency-less nuvdemux plugin + --disable-patchdetect disable dependency-less patchdetect plugin + --disable-pcapparse disable dependency-less pcapparse plugin + --disable-pnm disable dependency-less pnm plugin + --disable-rawparse disable dependency-less rawparse plugin + --disable-real disable dependency-less real plugin + --disable-rtpmux disable dependency-less rtpmux plugin + --disable-rtpvp8 disable dependency-less rtpvp8 plugin + --disable-scaletempo disable dependency-less scaletempo plugin + --disable-sdi disable dependency-less sdi plugin + --disable-sdp disable dependency-less sdp plugin + --disable-segmentclip disable dependency-less segmentclip plugin + --disable-siren disable dependency-less siren plugin + --disable-speed disable dependency-less speed plugin + --disable-subenc disable dependency-less subenc plugin + --disable-stereo disable dependency-less stereo plugin + --disable-tta disable dependency-less tta plugin + --disable-videofilters disable dependency-less videofilters plugin + --disable-videomaxrate disable dependency-less videomaxrate plugin + --disable-videomeasure disable dependency-less videomeasure plugin + --disable-videoparsers disable dependency-less videoparsers plugin + --disable-videosignal disable dependency-less videosignal plugin + --disable-vmnc disable dependency-less vmnc plugin + --disable-y4m disable dependency-less y4m plugin + --disable-directsound disable DirectSound: directsoundsrc + --disable-directdraw disable DirectDraw plug-in: directdrawsink + --disable-apple_media disable Apple video: applemedia + --disable-osx_video disable OSX video: osxvideosrc + --disable-quicktime disable QuickTime wrapper: qtwrapper + --disable-shm disable POSIX shared memory source and sink: shm + --disable-vcd disable Video CD: vcdsrc + --disable-assrender disable ASS/SSA renderer: assrender + --disable-amrwb disable amrwb library: amrwbenc + --disable-apexsink disable AirPort Express Wireless sink: apexsink + --disable-bz2 disable bz2 library: bz2 + --disable-cdaudio disable cdaudio: cdaudio + --disable-celt disable celt: celt + --disable-cog disable Cog plugin: cog + --disable-curl disable Curl plugin: curl + --disable-dc1394 disable libdc1394: dc1394 + --disable-decklink disable decklink: decklink + --disable-directfb disable directfb: dfbvideosink + --disable-dirac disable dirac: dirac + --disable-dts disable dts library: dtsdec + --disable-divx disable divx plugins: divx + --disable-resindvd disable resindvd plugin: resindvd + --disable-faac disable AAC encoder plug-in: faac + --disable-faad disable AAC decoder plug-in: faad + --disable-fbdev disable linux framebuffer: fbdevsink + --disable-flite disable Flite plugin: flite + --disable-gsm disable GSM library: gsmenc gsmdec + --disable-jp2k disable jp2k: jp2kdec jp2kenc + --disable-kate disable Kate: kate + --disable-ladspa disable ladspa: ladspa + --disable-lv2 disable lv2: lv2 + --disable-libmms disable mms protocol library: libmms + --disable-linsys disable Linear Systems SDI plugin: linsys + --disable-modplug disable modplug: modplug + --disable-mimic disable libmimic library: mimic + --disable-mpeg2enc disable mpeg2enc: mpeg2enc + --disable-mplex disable mplex: mplex + --disable-musepack disable musepackdec: musepack + --disable-musicbrainz disable musicbrainz tag generation: musicbrainz + --disable-mythtv disable MythTV client plugins: mythtvsrc + --disable-nas disable nas plug-in: nassink + --disable-neon disable neon http client plugins: neonhttpsrc + --disable-ofa disable ofa plugins: ofa + --disable-opencv disable opencv plugins: opencv + --disable-rsvg disable rsvg decoder: rsvg + --disable-timidity disable timidity midi soft synth plugin: timidity + --disable-wildmidi disable wildmidi midi soft synth plugin: wildmidi + --disable-sdl disable SDL plug-in: sdlvideosink sdlaudiosink + --disable-sdltest do not try to compile and run a test SDL program + --disable-sndfile disable sndfile plug-in: sfsrc sfsink + --disable-soundtouch disable soundtouch plug-in: soundtouch + --disable-spc disable spc decoder: spc + --disable-gme disable gme decoder: gme + --disable-swfdec disable swfdec plug-in: swfdec + --disable-xvid disable xvid plugins: xvid + --disable-dvb disable DVB Source: dvb + --disable-wininet disable Windows internet library: wininet + --disable-acm disable Windows ACM library: acm + --disable-vdpau disable VDPAU: vdpau + --disable-schro disable Schroedinger video codec: schro + --disable-zbar disable ZBar barcode detector: zbar + --disable-vp8 disable VP8 decoder: vp8 + --disable-rtmp disable rtmp library: rtmp + --disable-gsettings disable GSettings plugin: gsettings + --disable-schemas-compile + Disable regeneration of gschemas.compiled on install + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-pic try to use only PIC/non-PIC objects [default=use + both] + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-autoconf use a different autoconf for regeneration of + Makefiles + --with-autoheader use a different autoheader for regeneration of + Makefiles + --with-automake use a different automake for regeneration of + Makefiles + --with-aclocal use a different aclocal for regeneration of + Makefiles + --with-gnu-ld assume the C compiler uses GNU ld default=no + --with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib + --without-libiconv-prefix don't search for libiconv in includedir and libdir + --with-libintl-prefix[=DIR] search for libintl in DIR/include and DIR/lib + --without-libintl-prefix don't search for libintl in includedir and libdir + --with-pkg-config-path colon-separated list of pkg-config(1) dirs + --with-package-name specify package name to use in plugins + --with-package-origin specify package origin URL to use in plugins + --with-plugins comma-separated list of dependencyless plug-ins to + compile + --with-html-dir=PATH path to installed docs + --with-gtk=3.0|2.0 which gtk+ version to compile against (default: 2.0) + --with-default-audiosink + specify default audio sink + --with-default-audiosrc specify default audio source + --with-default-videosink + specify default video sink + --with-default-videosrc specify default video source + --with-default-visualizer + specify default visualizer + --with-x use the X Window System + --with-sdl-prefix=PFX prefix where SDL is installed (optional) + --with-sdl-exec-prefix=PFX + exec prefix where SDL is installed (optional) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + VALGRIND_CFLAGS + C compiler flags for VALGRIND, overriding pkg-config + VALGRIND_LIBS + linker flags for VALGRIND, overriding pkg-config + CXX C++ compiler command + CXXFLAGS C++ compiler flags + CXXCPP C++ preprocessor + GLIB_CFLAGS C compiler flags for GLIB, overriding pkg-config + GLIB_LIBS linker flags for GLIB, overriding pkg-config + GST_CFLAGS C compiler flags for GST, overriding pkg-config + GST_LIBS linker flags for GST, overriding pkg-config + GST_BASE_CFLAGS + C compiler flags for GST_BASE, overriding pkg-config + GST_BASE_LIBS + linker flags for GST_BASE, overriding pkg-config + GST_GDP_CFLAGS + C compiler flags for GST_GDP, overriding pkg-config + GST_GDP_LIBS + linker flags for GST_GDP, overriding pkg-config + GST_CHECK_CFLAGS + C compiler flags for GST_CHECK, overriding pkg-config + GST_CHECK_LIBS + linker flags for GST_CHECK, overriding pkg-config + GST_CONTROLLER_CFLAGS + C compiler flags for GST_CONTROLLER, overriding pkg-config + GST_CONTROLLER_LIBS + linker flags for GST_CONTROLLER, overriding pkg-config + GST_PLUGINS_BASE_CFLAGS + C compiler flags for GST_PLUGINS_BASE, overriding pkg-config + GST_PLUGINS_BASE_LIBS + linker flags for GST_PLUGINS_BASE, overriding pkg-config + GST_PLUGINS_GOOD_CFLAGS + C compiler flags for GST_PLUGINS_GOOD, overriding pkg-config + GST_PLUGINS_GOOD_LIBS + linker flags for GST_PLUGINS_GOOD, overriding pkg-config + GST_PLUGINS_UGLY_CFLAGS + C compiler flags for GST_PLUGINS_UGLY, overriding pkg-config + GST_PLUGINS_UGLY_LIBS + linker flags for GST_PLUGINS_UGLY, overriding pkg-config + GST_PLUGINS_FFMPEG_CFLAGS + C compiler flags for GST_PLUGINS_FFMPEG, overriding pkg-config + GST_PLUGINS_FFMPEG_LIBS + linker flags for GST_PLUGINS_FFMPEG, overriding pkg-config + GTK_CFLAGS C compiler flags for GTK, overriding pkg-config + GTK_LIBS linker flags for GTK, overriding pkg-config + GMODULE_EXPORT_CFLAGS + C compiler flags for GMODULE_EXPORT, overriding pkg-config + GMODULE_EXPORT_LIBS + linker flags for GMODULE_EXPORT, overriding pkg-config + X11_CFLAGS C compiler flags for X11, overriding pkg-config + X11_LIBS linker flags for X11, overriding pkg-config + EXIF_CFLAGS C compiler flags for EXIF, overriding pkg-config + EXIF_LIBS linker flags for EXIF, overriding pkg-config + ORC_CFLAGS C compiler flags for ORC, overriding pkg-config + ORC_LIBS linker flags for ORC, overriding pkg-config + GIO_CFLAGS C compiler flags for GIO, overriding pkg-config + GIO_LIBS linker flags for GIO, overriding pkg-config + ASSRENDER_CFLAGS + C compiler flags for ASSRENDER, overriding pkg-config + ASSRENDER_LIBS + linker flags for ASSRENDER, overriding pkg-config + APEXSINK_CFLAGS + C compiler flags for APEXSINK, overriding pkg-config + APEXSINK_LIBS + linker flags for APEXSINK, overriding pkg-config + CELT_CFLAGS C compiler flags for CELT, overriding pkg-config + CELT_LIBS linker flags for CELT, overriding pkg-config + CELT_0_7_CFLAGS + C compiler flags for CELT_0_7, overriding pkg-config + CELT_0_7_LIBS + linker flags for CELT_0_7, overriding pkg-config + CELT_0_8_CFLAGS + C compiler flags for CELT_0_8, overriding pkg-config + CELT_0_8_LIBS + linker flags for CELT_0_8, overriding pkg-config + CELT_0_11_CFLAGS + C compiler flags for CELT_0_11, overriding pkg-config + CELT_0_11_LIBS + linker flags for CELT_0_11, overriding pkg-config + COG_CFLAGS C compiler flags for COG, overriding pkg-config + COG_LIBS linker flags for COG, overriding pkg-config + CURL_CFLAGS C compiler flags for CURL, overriding pkg-config + CURL_LIBS linker flags for CURL, overriding pkg-config + LIBDC1394_CFLAGS + C compiler flags for LIBDC1394, overriding pkg-config + LIBDC1394_LIBS + linker flags for LIBDC1394, overriding pkg-config + DIRECTFB_CFLAGS + C compiler flags for DIRECTFB, overriding pkg-config + DIRECTFB_LIBS + linker flags for DIRECTFB, overriding pkg-config + DIRAC_CFLAGS + C compiler flags for DIRAC, overriding pkg-config + DIRAC_LIBS linker flags for DIRAC, overriding pkg-config + DVDNAV_CFLAGS + C compiler flags for DVDNAV, overriding pkg-config + DVDNAV_LIBS linker flags for DVDNAV, overriding pkg-config + KATE_CFLAGS C compiler flags for KATE, overriding pkg-config + KATE_LIBS linker flags for KATE, overriding pkg-config + TIGER_CFLAGS + C compiler flags for TIGER, overriding pkg-config + TIGER_LIBS linker flags for TIGER, overriding pkg-config + LRDF_CFLAGS C compiler flags for LRDF, overriding pkg-config + LRDF_LIBS linker flags for LRDF, overriding pkg-config + SLV2_CFLAGS C compiler flags for SLV2, overriding pkg-config + SLV2_LIBS linker flags for SLV2, overriding pkg-config + LIBMMS_CFLAGS + C compiler flags for LIBMMS, overriding pkg-config + LIBMMS_LIBS linker flags for LIBMMS, overriding pkg-config + MODPLUG_CFLAGS + C compiler flags for MODPLUG, overriding pkg-config + MODPLUG_LIBS + linker flags for MODPLUG, overriding pkg-config + MIMIC_CFLAGS + C compiler flags for MIMIC, overriding pkg-config + MIMIC_LIBS linker flags for MIMIC, overriding pkg-config + MJPEG_CFLAGS + C compiler flags for MJPEG, overriding pkg-config + MJPEG_LIBS linker flags for MJPEG, overriding pkg-config + MPEG2ENC_CFLAGS + C compiler flags for MPEG2ENC, overriding pkg-config + MPEG2ENC_LIBS + linker flags for MPEG2ENC, overriding pkg-config + MPLEX_CFLAGS + C compiler flags for MPLEX, overriding pkg-config + MPLEX_LIBS linker flags for MPLEX, overriding pkg-config + MUSICBRAINZ_CFLAGS + C compiler flags for MUSICBRAINZ, overriding pkg-config + MUSICBRAINZ_LIBS + linker flags for MUSICBRAINZ, overriding pkg-config + GMYTH_CFLAGS + C compiler flags for GMYTH, overriding pkg-config + GMYTH_LIBS linker flags for GMYTH, overriding pkg-config + XMKMF Path to xmkmf, Makefile generator for X Window System + NEON_CFLAGS C compiler flags for NEON, overriding pkg-config + NEON_LIBS linker flags for NEON, overriding pkg-config + OFA_CFLAGS C compiler flags for OFA, overriding pkg-config + OFA_LIBS linker flags for OFA, overriding pkg-config + OPENCV_CFLAGS + C compiler flags for OPENCV, overriding pkg-config + OPENCV_LIBS linker flags for OPENCV, overriding pkg-config + RSVG_CFLAGS C compiler flags for RSVG, overriding pkg-config + RSVG_LIBS linker flags for RSVG, overriding pkg-config + TIMIDITY_CFLAGS + C compiler flags for TIMIDITY, overriding pkg-config + TIMIDITY_LIBS + linker flags for TIMIDITY, overriding pkg-config + SNDFILE_CFLAGS + C compiler flags for SNDFILE, overriding pkg-config + SNDFILE_LIBS + linker flags for SNDFILE, overriding pkg-config + SOUNDTOUCH_CFLAGS + C compiler flags for SOUNDTOUCH, overriding pkg-config + SOUNDTOUCH_LIBS + linker flags for SOUNDTOUCH, overriding pkg-config + SWFDEC_CFLAGS + C compiler flags for SWFDEC, overriding pkg-config + SWFDEC_LIBS linker flags for SWFDEC, overriding pkg-config + VDPAU_CFLAGS + C compiler flags for VDPAU, overriding pkg-config + VDPAU_LIBS linker flags for VDPAU, overriding pkg-config + SCHRO_CFLAGS + C compiler flags for SCHRO, overriding pkg-config + SCHRO_LIBS linker flags for SCHRO, overriding pkg-config + ZBAR_CFLAGS C compiler flags for ZBAR, overriding pkg-config + ZBAR_LIBS linker flags for ZBAR, overriding pkg-config + RTMP_CFLAGS C compiler flags for RTMP, overriding pkg-config + RTMP_LIBS linker flags for RTMP, overriding pkg-config + GSETTINGS_CFLAGS + C compiler flags for GSETTINGS, overriding pkg-config + GSETTINGS_LIBS + linker flags for GSETTINGS, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +GStreamer Bad Plug-ins configure 0.10.22 +generated by GNU Autoconf 2.67 + +Copyright (C) 2010 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_func + +# ac_fn_c_check_decl LINENO SYMBOL VAR INCLUDES +# --------------------------------------------- +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. +ac_fn_c_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +$as_echo_n "checking whether $as_decl_name is declared... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_decl + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + $as_test_x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval "test \"\${$3+set}\"" = set; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------------------------------------ ## +## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer ## +## ------------------------------------------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_type + +# ac_fn_c_compute_int LINENO EXPR VAR INCLUDES +# -------------------------------------------- +# Tries to find the compile-time value of EXPR in a program that includes +# INCLUDES, setting VAR accordingly. Returns whether the value could be +# computed +ac_fn_c_compute_int () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if test "$cross_compiling" = yes; then + # Depending upon the size, compute the lo and hi bounds. +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=0 ac_mid=0 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid; break +else + as_fn_arith $ac_mid + 1 && ac_lo=$as_val + if test $ac_lo -le $ac_mid; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid + 1 && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) < 0)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=-1 ac_mid=-1 + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) >= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_lo=$ac_mid; break +else + as_fn_arith '(' $ac_mid ')' - 1 && ac_hi=$as_val + if test $ac_mid -le $ac_hi; then + ac_lo= ac_hi= + break + fi + as_fn_arith 2 '*' $ac_mid && ac_mid=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + done +else + ac_lo= ac_hi= +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +# Binary search between lo and hi bounds. +while test "x$ac_lo" != "x$ac_hi"; do + as_fn_arith '(' $ac_hi - $ac_lo ')' / 2 + $ac_lo && ac_mid=$as_val + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main () +{ +static int test_array [1 - 2 * !(($2) <= $ac_mid)]; +test_array [0] = 0 + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_hi=$ac_mid +else + as_fn_arith '(' $ac_mid ')' + 1 && ac_lo=$as_val +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +done +case $ac_lo in #(( +?*) eval "$3=\$ac_lo"; ac_retval=0 ;; +'') ac_retval=1 ;; +esac + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +static long int longval () { return $2; } +static unsigned long int ulongval () { return $2; } +#include +#include +int +main () +{ + + FILE *f = fopen ("conftest.val", "w"); + if (! f) + return 1; + if (($2) < 0) + { + long int i = longval (); + if (i != ($2)) + return 1; + fprintf (f, "%ld", i); + } + else + { + unsigned long int i = ulongval (); + if (i != ($2)) + return 1; + fprintf (f, "%lu", i); + } + /* Do not output a trailing newline, as this causes \r\n confusion + on some platforms. */ + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + echo >>conftest.val; read $3 &5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_c_check_header_preproc + +# ac_fn_cxx_check_header_mongrel LINENO HEADER VAR INCLUDES +# --------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_cxx_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval "test \"\${$3+set}\"" = set; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_cxx_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------------------------------------ ## +## Report this to http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer ## +## ------------------------------------------------------------------------ ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval "test \"\${$3+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + +} # ac_fn_cxx_check_header_mongrel + +# ac_fn_cxx_try_run LINENO +# ------------------------ +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_cxx_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;} + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_run +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by GStreamer Bad Plug-ins $as_me 0.10.22, which was +generated by GNU Autoconf 2.67. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5 ; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +gt_needs="$gt_needs " +as_fn_append ac_header_list " stdlib.h" +as_fn_append ac_header_list " unistd.h" +as_fn_append ac_header_list " sys/param.h" +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + +am__api_version='1.11' + +ac_aux_dir= +for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + +# Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +$as_echo_n "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test "${ac_cv_path_install+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + # Account for people who put trailing slashes in PATH elements. +case $as_dir/ in #(( + ./ | .// | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then + if test $ac_prog = install && + grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test "${ac_cv_path_install+set}" = set; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +$as_echo_n "checking whether build environment is sane... " >&6; } +# Just in case +sleep 1 +echo timestamp > conftest.file +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5 ;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: \`$srcdir'" "$LINENO" 5 ;; +esac + +# Do `set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + rm -f conftest.file + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken +alias in your environment" "$LINENO" 5 + fi + + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` + +# expand $ac_aux_dir to an absolute path +am_aux_dir=`cd $ac_aux_dir && pwd` + +if test x"${MISSING+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; + *) + MISSING="\${SHELL} $am_aux_dir/missing" ;; + esac +fi +# Use eval to expand $SHELL +if eval "$MISSING --run true"; then + am_missing_run="$MISSING --run " +else + am_missing_run= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`missing' script is too old or missing" >&5 +$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using `strip' when the user +# run `make install-strip'. However `strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the `STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a thread-safe mkdir -p" >&5 +$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test "${ac_cv_path_mkdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue + case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir (GNU coreutils) '* | \ + 'mkdir (coreutils) '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test "${ac_cv_path_mkdir+set}" = set; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +$as_echo "$MKDIR_P" >&6; } + +mkdir_p="$MKDIR_P" +case $mkdir_p in + [\\/$]* | ?:[\\/]*) ;; + */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; +esac + +for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AWK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AWK="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +$as_echo "$AWK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$AWK" && break +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval "test \"\${ac_cv_prog_make_${ac_make}_set+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + SET_MAKE= +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='gst-plugins-bad' + VERSION='0.10.22' + + +cat >>confdefs.h <<_ACEOF +#define PACKAGE "$PACKAGE" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define VERSION "$VERSION" +_ACEOF + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# We need awk for the "check" target. The system "awk" is bad on +# some platforms. +# Always define AMTAR for backward compatibility. + +AMTAR=${AMTAR-"${am_missing_run}tar"} + +am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' + + + + + + + + PACKAGE_VERSION_MAJOR=$(echo 0.10.22 | cut -d'.' -f1) + PACKAGE_VERSION_MINOR=$(echo 0.10.22 | cut -d'.' -f2) + PACKAGE_VERSION_MICRO=$(echo 0.10.22 | cut -d'.' -f3) + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking nano version" >&5 +$as_echo_n "checking nano version... " >&6; } + + NANO=$(echo 0.10.22 | cut -d'.' -f4) + + if test x"$NANO" = x || test "x$NANO" = "x0" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: 0 (release)" >&5 +$as_echo "0 (release)" >&6; } + NANO=0 + PACKAGE_VERSION_RELEASE=1 + GST_GIT="no" + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NANO" >&5 +$as_echo "$NANO" >&6; } + PACKAGE_VERSION_RELEASE=0.`date +%Y%m%d.%H%M%S` + if test "x$NANO" != "x1" ; then + GST_GIT="no" + else + GST_GIT="yes" + fi + fi + PACKAGE_VERSION_NANO=$NANO + + + + + + +ac_config_headers="$ac_config_headers config.h" + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test "${enable_maintainer_mode+set}" = set; then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else + USE_MAINTAINER_MODE=no +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +$as_echo "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if test "${ac_cv_build+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5 ;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if test "${ac_cv_host+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5 ;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +# Check whether --enable-silent-rules was given. +if test "${enable_silent_rules+set}" = set; then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in +yes) AM_DEFAULT_VERBOSITY=0;; +no) AM_DEFAULT_VERBOSITY=1;; +*) AM_DEFAULT_VERBOSITY=0;; +esac +AM_BACKSLASH='\' + + +GST_MAJORMINOR=$GST_PLUGINS_BAD_VERSION_MAJOR.$GST_PLUGINS_BAD_VERSION_MINOR +GST_MAJORMINOR=0.10 + + + + case $host_os in + cygwin* | mingw*) + lt_cv_deplibs_check_method=pass_all + ;; + esac + + + +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AS="${ac_tool_prefix}as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +$as_echo "$AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AS="as" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +$as_echo "$ac_ct_AS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +$as_echo "$DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DLLTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +$as_echo "$ac_ct_DLLTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + +case `pwd` in + *\ * | *\ *) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +$as_echo "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.2.6b' +macro_revision='1.3017' + + + + + + + + + + + + + +ltmain="$ac_aux_dir/ltmain.sh" + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + + +am_make=${MAKE-make} +cat > confinc << 'END' +am__doit: + @echo this is the am__doit target +.PHONY: am__doit +END +# If we don't find an include directive, just comment out the code. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for style of include used by $am_make" >&5 +$as_echo_n "checking for style of include used by $am_make... " >&6; } +am__include="#" +am__quote= +_am_result=none +# First try GNU make style include. +echo "include confinc" > confmf +# Ignore all kinds of additional output from `make'. +case `$am_make -s -f confmf 2> /dev/null` in #( +*the\ am__doit\ target*) + am__include=include + am__quote= + _am_result=GNU + ;; +esac +# Now try BSD make style include. +if test "$am__include" = "#"; then + echo '.include "confinc"' > confmf + case `$am_make -s -f confmf 2> /dev/null` in #( + *the\ am__doit\ target*) + am__include=.include + am__quote="\"" + _am_result=BSD + ;; + esac +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_am_result" >&5 +$as_echo "$_am_result" >&6; } +rm -f confinc confmf + +# Check whether --enable-dependency-tracking was given. +if test "${enable_dependency_tracking+set}" = set; then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5 ; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5 ; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5 ; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if test "${ac_cv_objext+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5 ; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if test "${ac_cv_path_GREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if test "${ac_cv_path_EGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +$as_echo_n "checking for fgrep... " >&6; } +if test "${ac_cv_path_FGREP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in fgrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_FGREP" && $as_test_x "$ac_path_FGREP"; } || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +$as_echo "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +$as_echo_n "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test "${lt_cv_path_NM+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM="$NM" +else + lt_nm_to_check="${ac_tool_prefix}nm" + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + tmp_nm="$ac_dir/$lt_tmp_nm" + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext" ; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the `sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + case `"$tmp_nm" -B /dev/null 2>&1 | sed '1q'` in + */dev/null* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS="$lt_save_ifs" + done + : ${lt_cv_path_NM=no} +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +$as_echo "$lt_cv_path_NM" >&6; } +if test "$lt_cv_path_NM" != "no"; then + NM="$lt_cv_path_NM" +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$ac_tool_prefix"; then + for ac_prog in "dumpbin -symbols" "link -dump -symbols" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +$as_echo "$DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in "dumpbin -symbols" "link -dump -symbols" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DUMPBIN+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +$as_echo "$ac_ct_DUMPBIN" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + + if test "$DUMPBIN" != ":"; then + NM="$DUMPBIN" + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +$as_echo_n "checking the name lister ($NM) interface... " >&6; } +if test "${lt_cv_nm_interface+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:6698: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:6701: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:6704: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +$as_echo "$lt_cv_nm_interface" >&6; } + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +$as_echo_n "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +$as_echo "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +$as_echo_n "checking the maximum length of command line arguments... " >&6; } +if test "${lt_cv_sys_max_cmd_len+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + i=0 + teststring="ABCD" + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + netbsd* | freebsd* | openbsd* | darwin* | dragonfly*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8 ; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test "X"`$SHELL $0 --fallback-echo "X$teststring$teststring" 2>/dev/null` \ + = "XX$teststring$teststring"; } >/dev/null 2>&1 && + test $i != 17 # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n $lt_cv_sys_max_cmd_len ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +$as_echo "$lt_cv_sys_max_cmd_len" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none" >&5 +$as_echo "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands some XSI constructs" >&5 +$as_echo_n "checking whether the shell understands some XSI constructs... " >&6; } +# Try some XSI features +xsi_shell=no +( _lt_dummy="a/b/c" + test "${_lt_dummy##*/},${_lt_dummy%/*},"${_lt_dummy%"$_lt_dummy"}, \ + = c,a/b,, \ + && eval 'test $(( 1 + 1 )) -eq 2 \ + && test "${#_lt_dummy}" -eq 5' ) >/dev/null 2>&1 \ + && xsi_shell=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $xsi_shell" >&5 +$as_echo "$xsi_shell" >&6; } + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the shell understands \"+=\"" >&5 +$as_echo_n "checking whether the shell understands \"+=\"... " >&6; } +lt_shell_append=no +( foo=bar; set foo baz; eval "$1+=\$2" && test "$foo" = barbaz ) \ + >/dev/null 2>&1 \ + && lt_shell_append=yes +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_shell_append" >&5 +$as_echo "$lt_shell_append" >&6; } + + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +$as_echo_n "checking for $LD option to reload object files... " >&6; } +if test "${lt_cv_ld_reload_flag+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_reload_flag='-r' +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +$as_echo "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + darwin*) + if test "$GCC" = yes; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib ${wl}-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +$as_echo "$OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJDUMP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +$as_echo "$ac_ct_OBJDUMP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +$as_echo_n "checking how to recognize dependent libraries... " >&6; } +if test "${lt_cv_deplibs_check_method+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# `unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# which responds to the $file_magic_cmd with a given extended regex. +# If you have `file' or equivalent on your system and you're not sure +# whether `pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + lt_cv_deplibs_check_method='file_magic file format pei*-i386(.*architecture: i386)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - PA-RISC [0-9].[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9].[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +$as_echo "$lt_cv_deplibs_check_method" >&6; } +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_AR="${ac_tool_prefix}ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +$as_echo "$AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AR"; then + ac_ct_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_AR+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_AR="ar" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +$as_echo "$ac_ct_AR" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +else + AR="$ac_cv_prog_AR" +fi + +test -z "$AR" && AR=ar +test -z "$AR_FLAGS" && AR_FLAGS=cru + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +$as_echo "$STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_STRIP="strip" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +$as_echo "$ac_ct_STRIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +$as_echo "$RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_RANLIB+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +$as_echo "$ac_ct_RANLIB" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$oldlib" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +$as_echo_n "checking command to parse $NM output from $compiler object... " >&6; } +if test "${lt_cv_sys_global_symbol_pipe+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test "$host_cpu" = ia64; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n -e 's/^T .* \(.*\)$/extern int \1();/p' -e 's/^$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"\2\", (void *) \&\2},/p'" +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n -e 's/^: \([^ ]*\) $/ {\\\"\1\\\", (void *) 0},/p' -e 's/^$symcode* \([^ ]*\) \(lib[^ ]*\)$/ {\"\2\", (void *) \&\2},/p' -e 's/^$symcode* \([^ ]*\) \([^ ]*\)$/ {\"lib\2\", (void *) \&\2},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function + # and D for any global variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=0}; \$ 0~/\(\).*\|/{f=1}; {printf f ? \"T \" : \"D \"};"\ +" {split(\$ 0, a, /\||\r/); split(a[2], s)};"\ +" s[1]~/^[@?]/{print s[1], s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print t[1], substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist\""; } >&5 + (eval $NM conftest.$ac_objext \| $lt_cv_sys_global_symbol_pipe \> $nlist) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +const struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* \(.*\) \(.*\)$/ {\"\2\", (void *) \&\2},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_save_LIBS="$LIBS" + lt_save_CFLAGS="$CFLAGS" + LIBS="conftstm.$ac_objext" + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext}; then + pipe_works=yes + fi + LIBS="$lt_save_LIBS" + CFLAGS="$lt_save_CFLAGS" + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test "$pipe_works" = yes; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +$as_echo "failed" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +$as_echo "ok" >&6; } +fi + + + + + + + + + + + + + + + + + + + + + + + +# Check whether --enable-libtool-lock was given. +if test "${enable_libtool_lock+set}" = set; then : + enableval=$enable_libtool_lock; +fi + +test "x$enable_libtool_lock" != xno && enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE="32" + ;; + *ELF-64*) + HPUX_IA64_MODE="64" + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out which ABI we are using. + echo '#line 7907 "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test "$lt_cv_prog_gnu_ld" = yes; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|ppc*-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_i386" + ;; + ppc64-*linux*|powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + ppc*-*linux*|powerpc*-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -belf" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +$as_echo_n "checking whether the C compiler needs -belf... " >&6; } +if test "${lt_cv_cc_needs_belf+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_cc_needs_belf=yes +else + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +$as_echo "$lt_cv_cc_needs_belf" >&6; } + if test x"$lt_cv_cc_needs_belf" != x"yes"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS="$SAVE_CFLAGS" + fi + ;; +sparc*-*solaris*) + # Find out which ABI we are using. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) LD="${LD-ld} -m elf64_sparc" ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks="$enable_libtool_lock" + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +$as_echo "$DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_DSYMUTIL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +$as_echo "$ac_ct_DSYMUTIL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +$as_echo "$NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_NMEDIT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +$as_echo "$ac_ct_NMEDIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +$as_echo "$LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_LIPO+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_LIPO="lipo" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +$as_echo "$ac_ct_LIPO" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +$as_echo "$OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL="otool" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +$as_echo "$ac_ct_OTOOL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +$as_echo "$OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OTOOL64+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +$as_echo "$ac_ct_OTOOL64" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +$as_echo_n "checking for -single_module linker flag... " >&6; } +if test "${lt_cv_apple_cc_single_mod+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_apple_cc_single_mod=no + if test -z "${LT_MULTI_MODULE}"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + if test -f libconftest.dylib && test ! -s conftest.err && test $_lt_result = 0; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +$as_echo "$lt_cv_apple_cc_single_mod" >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +$as_echo_n "checking for -exported_symbols_list linker flag... " >&6; } +if test "${lt_cv_ld_exported_symbols_list+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + lt_cv_ld_exported_symbols_list=yes +else + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +$as_echo "$lt_cv_ld_exported_symbols_list" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='${wl}-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[91]*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + 10.[012]*) + _lt_dar_allow_undefined='${wl}-flat_namespace ${wl}-undefined ${wl}suppress' ;; + 10.*) + _lt_dar_allow_undefined='${wl}-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test "$lt_cv_apple_cc_single_mod" = "yes"; then + _lt_dar_single_mod='$single_module' + fi + if test "$lt_cv_ld_exported_symbols_list" = "yes"; then + _lt_dar_export_syms=' ${wl}-exported_symbols_list,$output_objdir/${libname}-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/${libname}-symbols.expsym ${lib}' + fi + if test "$DSYMUTIL" != ":"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test "${ac_cv_prog_CPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5 ; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if test "${ac_cv_header_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_header in dlfcn.h +do : + ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_DLFCN_H 1 +_ACEOF + +fi + +done + + + +# Set options + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test "${enable_shared+set}" = set; then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test "${enable_static+set}" = set; then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test "${with_pic+set}" = set; then : + withval=$with_pic; pic_mode="$withval" +else + pic_mode=default +fi + + +test -z "$pic_mode" && pic_mode=default + + + + + + + + # Check whether --enable-fast-install was given. +if test "${enable_fast_install+set}" = set; then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs="$IFS"; IFS="${IFS}$PATH_SEPARATOR," + for pkg in $enableval; do + IFS="$lt_save_ifs" + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS="$lt_save_ifs" + ;; + esac +else + enable_fast_install=yes +fi + + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS="$ltmain" + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +$as_echo_n "checking for objdir... " >&6; } +if test "${lt_cv_objdir+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +$as_echo "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +cat >>confdefs.h <<_ACEOF +#define LT_OBJDIR "$lt_cv_objdir/" +_ACEOF + + + + + + + + + + + + + + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a `.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld="$lt_cv_prog_gnu_ld" + +old_CC="$CC" +old_CFLAGS="$CFLAGS" + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +$as_echo_n "checking for ${ac_tool_prefix}file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/${ac_tool_prefix}file; then + lt_cv_path_MAGIC_CMD="$ac_dir/${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +$as_echo_n "checking for file... " >&6; } +if test "${lt_cv_path_MAGIC_CMD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD="$MAGIC_CMD" # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD="$MAGIC_CMD" + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f $ac_dir/file; then + lt_cv_path_MAGIC_CMD="$ac_dir/file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD="$lt_cv_path_MAGIC_CMD" + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS="$lt_save_ifs" + MAGIC_CMD="$lt_save_MAGIC_CMD" + ;; +esac +fi + +MAGIC_CMD="$lt_cv_path_MAGIC_CMD" +if test -n "$MAGIC_CMD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +$as_echo "$MAGIC_CMD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC="$CC" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test "$GCC" = yes; then + lt_prog_compiler_no_builtin_flag=' -fno-builtin' + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +$as_echo_n "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test "${lt_cv_prog_compiler_rtti_exceptions+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9434: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:9438: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +$as_echo "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test x"$lt_cv_prog_compiler_rtti_exceptions" = xyes; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + if test "$GCC" = yes; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='${wl}-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + # old Intel for x86_64 which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + pgcc* | pgf77* | pgf90* | pgf95*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl*) + # IBM XL C 8.0/Fortran 10.1 on PPC + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Sun\ F*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec ;then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic" >&5 +$as_echo "$lt_prog_compiler_pic" >&6; } + + + + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9773: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:9777: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works" = xyes; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +$as_echo "$lt_cv_prog_compiler_static_works" >&6; } + +if test x"$lt_cv_prog_compiler_static_works" = xyes; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9878: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:9882: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:9933: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:9937: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +$as_echo "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ` (' and `)$', so one must not match beginning or + # end of line. Example: `a|bc|.*d.*' will exclude the symbols `a' and `bc', + # as well as any symbol that contains `d'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test "$GCC" != yes; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + if test "$with_gnu_ld" = yes; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='${wl}' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec='${wl}--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test "$host_cpu" != ia64; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.9.1, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to modify your PATH +*** so that a non-GNU linker is found, and then restart. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test "$host_os" = linux-dietlibc; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test "$tmp_diet" = no + then + tmp_addflag= + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95*) # Portland Group f77 and f90 compilers + whole_archive_flag_spec='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + xl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + xlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec= + hardcode_libdir_flag_spec_ld='-rpath $libdir' + archive_cmds='$LD -shared $libobjs $deplibs $compiler_flags -soname $soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $compiler_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 can not +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test "$ld_shlibs" = no; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test "$GCC" = yes && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test $ld_flag = "-brtl" || test $ld_flag = "-Wl,-brtl"); then + aix_use_runtimelinking=yes + break + fi + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='${wl}-f,' + + if test "$GCC" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + link_all_deplibs=no + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' ${wl}-bernotok' + allow_undefined_flag=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + archive_cmds_need_lc=yes + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=".dll" + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `$ECHO "X$deplibs" | $Xsed -e '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + fix_srcfile_path='`cygpath -w "$srcfile"`' + enable_shared_with_static_runtimes=yes + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + whole_archive_flag_spec='' + link_all_deplibs=yes + allow_undefined_flag="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + freebsd1*) + ld_shlibs=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test "$GCC" = yes; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='${wl}-E' + ;; + + hpux10*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_flag_spec_ld='+b $libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test "$GCC" = yes -a "$with_gnu_ld" = no; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + fi + if test "$with_gnu_ld" = no; then + hardcode_libdir_flag_spec='${wl}+b ${wl}$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='${wl}-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test "$GCC" = yes; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -shared ${wl}-exported_symbol ${wl}foo ${wl}-update_registry ${wl}/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void) {} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations ${wl}-exports_file ${wl}$export_symbols -o $lib' + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS="$save_LDFLAGS" + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags ${wl}-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + export_dynamic_flag_spec='${wl}-E' + else + case $host_os in + openbsd[01].* | openbsd2.[0-7] | openbsd2.[0-7].*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-R$libdir' + ;; + *) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='${wl}-rpath,$libdir' + ;; + esac + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + archive_cmds='$ECHO "LIBRARY $libname INITINSTANCE" > $output_objdir/$libname.def~$ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~$ECHO DATA >> $output_objdir/$libname.def~$ECHO " SINGLE NONSHARED" >> $output_objdir/$libname.def~$ECHO EXPORTS >> $output_objdir/$libname.def~emxexp $libobjs >> $output_objdir/$libname.def~$CC -Zdll -Zcrtdll -o $lib $libobjs $deplibs $compiler_flags $output_objdir/$libname.def' + old_archive_from_new_cmds='emximp -o $output_objdir/$libname.a $output_objdir/$libname.def' + ;; + + osf3*) + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test "$GCC" = yes; then + allow_undefined_flag=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec='${wl}-rpath ${wl}$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared${allow_undefined_flag} $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared${allow_undefined_flag} ${wl}-input ${wl}$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test "$GCC" = yes; then + wlarc='${wl}' + archive_cmds='$CC -shared ${wl}-z ${wl}text ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared ${wl}-z ${wl}text ${wl}-M ${wl}$lib.exp ${wl}-h ${wl}$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='${wl}' + archive_cmds='$CC -G${allow_undefined_flag} -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. GCC discards it without `$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test "$GCC" = yes; then + whole_archive_flag_spec='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test "x$host_vendor" = xsequent; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G ${wl}-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='${wl}-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='${wl}-z,text' + allow_undefined_flag='${wl}-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='${wl}-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + if test "$GCC" = yes; then + archive_cmds='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test x$host_vendor = xsni; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='${wl}-Blargedynsym' + ;; + esac + fi + fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +$as_echo "$ld_shlibs" >&6; } +test "$ld_shlibs" = no && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + archive_cmds_need_lc=no + else + archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc" >&5 +$as_echo "$archive_cmds_need_lc" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +if test "$GCC" = yes; then + case $host_os in + darwin*) lt_awk_arg="/^libraries:/,/LR/" ;; + *) lt_awk_arg="/^libraries:/" ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$lt_search_path_spec" | $GREP ';' >/dev/null ; then + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e 's/;/ /g'` + else + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary. + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path/$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path/$lt_multi_os_dir" + else + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO $lt_tmp_lt_search_path_spec | awk ' +BEGIN {RS=" "; FS="/|\n";} { + lt_foo=""; + lt_count=0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo="/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + sys_lib_search_path_spec=`$ECHO $lt_search_path_spec` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test "X$hardcode_automatic" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, )" != no && + test "$hardcode_minus_L" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +$as_echo "$hardcode_action" >&6; } + +if test "$hardcode_action" = relink || + test "$inherit_rpath" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test "x$enable_dlopen" != xyes; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen="load_add_on" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen="LoadLibrary" + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen="dlopen" + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + + lt_cv_dlopen="dyld" + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +$as_echo_n "checking for shl_load in -ldld... " >&6; } +if test "${ac_cv_lib_dld_shl_load+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shl_load (); +int +main () +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_shl_load=yes +else + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +$as_echo "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = x""yes; then : + lt_cv_dlopen="shl_load" lt_cv_dlopen_libs="-ldld" +else + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-ldl" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +$as_echo_n "checking for dlopen in -lsvld... " >&6; } +if test "${ac_cv_lib_svld_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_svld_dlopen=yes +else + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +$as_echo "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = x""yes; then : + lt_cv_dlopen="dlopen" lt_cv_dlopen_libs="-lsvld" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +$as_echo_n "checking for dld_link in -ldld... " >&6; } +if test "${ac_cv_lib_dld_dld_link+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dld_link (); +int +main () +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dld_dld_link=yes +else + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +$as_echo "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = x""yes; then : + lt_cv_dlopen="dld_link" lt_cv_dlopen_libs="-ldld" +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test "x$lt_cv_dlopen" != xno; then + enable_dlopen=yes + else + enable_dlopen=no + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS="$CPPFLAGS" + test "x$ac_cv_header_dlfcn_h" = xyes && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS="$LDFLAGS" + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS="$LIBS" + LIBS="$lt_cv_dlopen_libs $LIBS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +$as_echo_n "checking whether a program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 12317 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +$as_echo "$lt_cv_dlopen_self" >&6; } + + if test "x$lt_cv_dlopen_self" = xyes; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +$as_echo_n "checking whether a statically linked program can dlopen itself... " >&6; } +if test "${lt_cv_dlopen_self_static+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line 12413 "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +void fnord() { int i=42;} +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest${ac_exeext} 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +$as_echo "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS="$save_CPPFLAGS" + LDFLAGS="$save_LDFLAGS" + LIBS="$save_LIBS" + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +$as_echo_n "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP" ; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + fi + ;; + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report which library types will actually be built + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +$as_echo_n "checking if libtool supports shared libraries... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +$as_echo "$can_build_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +$as_echo_n "checking whether to build shared libraries... " >&6; } + test "$can_build_shared" = "no" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test "$enable_shared" = yes && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test "$host_cpu" != ia64 && test "$aix_use_runtimelinking" = no ; then + test "$enable_shared" = yes && enable_static=no + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +$as_echo "$enable_shared" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +$as_echo_n "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test "$enable_shared" = yes || enable_static=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +$as_echo "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC="$lt_save_CC" + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + + +GST_REQ=0.10.33 +GSTPB_REQ=0.10.33 + + + + +# Check whether --with-autoconf was given. +if test "${with_autoconf+set}" = set; then : + withval=$with_autoconf; + unset AUTOCONF + +AUTOCONF=${AUTOCONF-"${am_missing_run}${withval}"} + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $AUTOCONF as autoconf" >&5 +$as_echo "$as_me: Using $AUTOCONF as autoconf" >&6;} + +fi + + + +# Check whether --with-autoheader was given. +if test "${with_autoheader+set}" = set; then : + withval=$with_autoheader; + unset AUTOHEADER + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}${withval}"} + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $AUTOHEADER as autoheader" >&5 +$as_echo "$as_me: Using $AUTOHEADER as autoheader" >&6;} + +fi + + + +# Check whether --with-automake was given. +if test "${with_automake+set}" = set; then : + withval=$with_automake; + unset AUTOMAKE + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}${withval}"} + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $AUTOMAKE as automake" >&5 +$as_echo "$as_me: Using $AUTOMAKE as automake" >&6;} + +fi + + + +# Check whether --with-aclocal was given. +if test "${with_aclocal+set}" = set; then : + withval=$with_aclocal; + unset ACLOCAL + +ACLOCAL=${ACLOCAL-"${am_missing_run}${withval}"} + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $ACLOCAL as aclocal" >&5 +$as_echo "$as_me: Using $ACLOCAL as aclocal" >&6;} + +fi + + + +ACLOCAL_AMFLAGS="-I m4 -I common/m4" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether NLS is requested" >&5 +$as_echo_n "checking whether NLS is requested... " >&6; } + # Check whether --enable-nls was given. +if test "${enable_nls+set}" = set; then : + enableval=$enable_nls; USE_NLS=$enableval +else + USE_NLS=yes +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + + + + + GETTEXT_MACRO_VERSION=0.17 + + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgfmt", so it can be a program name with args. +set dummy msgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGFMT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGFMT="$MSGFMT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --statistics /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --statistics /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_MSGFMT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGFMT" && ac_cv_path_MSGFMT=":" + ;; +esac +fi +MSGFMT="$ac_cv_path_MSGFMT" +if test "$MSGFMT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGFMT" >&5 +$as_echo "$MSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + # Extract the first word of "gmsgfmt", so it can be a program name with args. +set dummy gmsgfmt; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GMSGFMT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GMSGFMT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMSGFMT="$GMSGFMT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GMSGFMT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GMSGFMT" && ac_cv_path_GMSGFMT="$MSGFMT" + ;; +esac +fi +GMSGFMT=$ac_cv_path_GMSGFMT +if test -n "$GMSGFMT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMSGFMT" >&5 +$as_echo "$GMSGFMT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + case `$MSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) MSGFMT_015=: ;; + *) MSGFMT_015=$MSGFMT ;; + esac + + case `$GMSGFMT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) GMSGFMT_015=: ;; + *) GMSGFMT_015=$GMSGFMT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "xgettext", so it can be a program name with args. +set dummy xgettext; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_XGETTEXT+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case "$XGETTEXT" in + [\\/]* | ?:[\\/]*) + ac_cv_path_XGETTEXT="$XGETTEXT" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null >&5 2>&1 && + (if $ac_dir/$ac_word --omit-header --copyright-holder= --msgid-bugs-address= /dev/null 2>&1 >/dev/null | grep usage >/dev/null; then exit 1; else exit 0; fi); then + ac_cv_path_XGETTEXT="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_XGETTEXT" && ac_cv_path_XGETTEXT=":" + ;; +esac +fi +XGETTEXT="$ac_cv_path_XGETTEXT" +if test "$XGETTEXT" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XGETTEXT" >&5 +$as_echo "$XGETTEXT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + rm -f messages.po + + case `$XGETTEXT --version | sed 1q | sed -e 's,^[^0-9]*,,'` in + '' | 0.[0-9] | 0.[0-9].* | 0.1[0-4] | 0.1[0-4].*) XGETTEXT_015=: ;; + *) XGETTEXT_015=$XGETTEXT ;; + esac + + + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi + +# Find out how to test for executable files. Don't use a zero-byte file, +# as systems may use methods other than mode bits to determine executability. +cat >conf$$.file <<_ASEOF +#! /bin/sh +exit 0 +_ASEOF +chmod +x conf$$.file +if test -x conf$$.file >/dev/null 2>&1; then + ac_executable_p="test -x" +else + ac_executable_p="test -f" +fi +rm -f conf$$.file + +# Extract the first word of "msgmerge", so it can be a program name with args. +set dummy msgmerge; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_MSGMERGE+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case "$MSGMERGE" in + [\\/]* | ?:[\\/]*) + ac_cv_path_MSGMERGE="$MSGMERGE" # Let the user override the test with a path. + ;; + *) + ac_save_IFS="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$ac_save_IFS" + test -z "$ac_dir" && ac_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if $ac_executable_p "$ac_dir/$ac_word$ac_exec_ext"; then + echo "$as_me: trying $ac_dir/$ac_word..." >&5 + if $ac_dir/$ac_word --update -q /dev/null /dev/null >&5 2>&1; then + ac_cv_path_MSGMERGE="$ac_dir/$ac_word$ac_exec_ext" + break 2 + fi + fi + done + done + IFS="$ac_save_IFS" + test -z "$ac_cv_path_MSGMERGE" && ac_cv_path_MSGMERGE=":" + ;; +esac +fi +MSGMERGE="$ac_cv_path_MSGMERGE" +if test "$MSGMERGE" != ":"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MSGMERGE" >&5 +$as_echo "$MSGMERGE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$localedir" || localedir='${datadir}/locale' + + + test -n "${XGETTEXT_EXTRA_OPTIONS+set}" || XGETTEXT_EXTRA_OPTIONS= + + + ac_config_commands="$ac_config_commands po-directories" + + + + if test "X$prefix" = "XNONE"; then + acl_final_prefix="$ac_default_prefix" + else + acl_final_prefix="$prefix" + fi + if test "X$exec_prefix" = "XNONE"; then + acl_final_exec_prefix='${prefix}' + else + acl_final_exec_prefix="$exec_prefix" + fi + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + eval acl_final_exec_prefix=\"$acl_final_exec_prefix\" + prefix="$acl_save_prefix" + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +# Prepare PATH_SEPARATOR. +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + echo "#! /bin/sh" >conf$$.sh + echo "exit 0" >>conf$$.sh + chmod +x conf$$.sh + if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then + PATH_SEPARATOR=';' + else + PATH_SEPARATOR=: + fi + rm -f conf$$.sh +fi +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by GCC" >&5 +$as_echo_n "checking for ld used by GCC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | [A-Za-z]:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the path of ld + ac_prog=`echo $ac_prog| sed 's%\\\\%/%g'` + while echo $ac_prog | grep "$re_direlt" > /dev/null 2>&1; do + ac_prog=`echo $ac_prog| sed "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${acl_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + IFS="${IFS= }"; ac_save_ifs="$IFS"; IFS="${IFS}${PATH_SEPARATOR-:}" + for ac_dir in $PATH; do + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + acl_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some GNU ld's only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$acl_cv_path_LD" -v 2>&1 < /dev/null` in + *GNU* | *'with BFD'*) + test "$with_gnu_ld" != no && break ;; + *) + test "$with_gnu_ld" != yes && break ;; + esac + fi + done + IFS="$ac_save_ifs" +else + acl_cv_path_LD="$LD" # Let the user override the test with a path. +fi +fi + +LD="$acl_cv_path_LD" +if test -n "$LD"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LD" >&5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${acl_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU ld's only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$acl_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$acl_cv_prog_gnu_ld + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shared library run path origin" >&5 +$as_echo_n "checking for shared library run path origin... " >&6; } +if test "${acl_cv_rpath+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + CC="$CC" GCC="$GCC" LDFLAGS="$LDFLAGS" LD="$LD" with_gnu_ld="$with_gnu_ld" \ + ${CONFIG_SHELL-/bin/sh} "$ac_aux_dir/config.rpath" "$host" > conftest.sh + . ./conftest.sh + rm -f ./conftest.sh + acl_cv_rpath=done + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $acl_cv_rpath" >&5 +$as_echo "$acl_cv_rpath" >&6; } + wl="$acl_cv_wl" + acl_libext="$acl_cv_libext" + acl_shlibext="$acl_cv_shlibext" + acl_libname_spec="$acl_cv_libname_spec" + acl_library_names_spec="$acl_cv_library_names_spec" + acl_hardcode_libdir_flag_spec="$acl_cv_hardcode_libdir_flag_spec" + acl_hardcode_libdir_separator="$acl_cv_hardcode_libdir_separator" + acl_hardcode_direct="$acl_cv_hardcode_direct" + acl_hardcode_minus_L="$acl_cv_hardcode_minus_L" + # Check whether --enable-rpath was given. +if test "${enable_rpath+set}" = set; then : + enableval=$enable_rpath; : +else + enable_rpath=yes +fi + + + + acl_libdirstem=lib + searchpath=`(LC_ALL=C $CC -print-search-dirs) 2>/dev/null | sed -n -e 's,^libraries: ,,p' | sed -e 's,^=,,'` + if test -n "$searchpath"; then + acl_save_IFS="${IFS= }"; IFS=":" + for searchdir in $searchpath; do + if test -d "$searchdir"; then + case "$searchdir" in + */lib64/ | */lib64 ) acl_libdirstem=lib64 ;; + *) searchdir=`cd "$searchdir" && pwd` + case "$searchdir" in + */lib64 ) acl_libdirstem=lib64 ;; + esac ;; + esac + fi + done + IFS="$acl_save_IFS" + fi + + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libiconv-prefix was given. +if test "${with_libiconv_prefix+set}" = set; then : + withval=$with_libiconv_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBICONV= + LTLIBICONV= + INCICONV= + LIBICONV_PREFIX= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='iconv ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBICONV="${LIBICONV}${LIBICONV:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_so" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }$found_a" + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + LIBICONV_PREFIX="$basedir" + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCICONV="${INCICONV}${INCICONV:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBICONV="${LIBICONV}${LIBICONV:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBICONV; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBICONV="${LIBICONV}${LIBICONV:+ }$dep" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }$dep" + ;; + esac + done + fi + else + LIBICONV="${LIBICONV}${LIBICONV:+ }-l$name" + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBICONV="${LIBICONV}${LIBICONV:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBICONV="${LTLIBICONV}${LTLIBICONV:+ }-R$found_dir" + done + fi + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFPreferencesCopyAppValue" >&5 +$as_echo_n "checking for CFPreferencesCopyAppValue... " >&6; } +if test "${gt_cv_func_CFPreferencesCopyAppValue+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFPreferencesCopyAppValue(NULL, NULL) + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFPreferencesCopyAppValue=yes +else + gt_cv_func_CFPreferencesCopyAppValue=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFPreferencesCopyAppValue" >&5 +$as_echo "$gt_cv_func_CFPreferencesCopyAppValue" >&6; } + if test $gt_cv_func_CFPreferencesCopyAppValue = yes; then + +$as_echo "#define HAVE_CFPREFERENCESCOPYAPPVALUE 1" >>confdefs.h + + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for CFLocaleCopyCurrent" >&5 +$as_echo_n "checking for CFLocaleCopyCurrent... " >&6; } +if test "${gt_cv_func_CFLocaleCopyCurrent+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + gt_save_LIBS="$LIBS" + LIBS="$LIBS -Wl,-framework -Wl,CoreFoundation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +CFLocaleCopyCurrent(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + gt_cv_func_CFLocaleCopyCurrent=yes +else + gt_cv_func_CFLocaleCopyCurrent=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$gt_save_LIBS" +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_cv_func_CFLocaleCopyCurrent" >&5 +$as_echo "$gt_cv_func_CFLocaleCopyCurrent" >&6; } + if test $gt_cv_func_CFLocaleCopyCurrent = yes; then + +$as_echo "#define HAVE_CFLOCALECOPYCURRENT 1" >>confdefs.h + + fi + INTL_MACOSX_LIBS= + if test $gt_cv_func_CFPreferencesCopyAppValue = yes || test $gt_cv_func_CFLocaleCopyCurrent = yes; then + INTL_MACOSX_LIBS="-Wl,-framework -Wl,CoreFoundation" + fi + + + + + + + LIBINTL= + LTLIBINTL= + POSUB= + + case " $gt_needs " in + *" need-formatstring-macros "*) gt_api_version=3 ;; + *" need-ngettext "*) gt_api_version=2 ;; + *) gt_api_version=1 ;; + esac + gt_func_gnugettext_libc="gt_cv_func_gnugettext${gt_api_version}_libc" + gt_func_gnugettext_libintl="gt_cv_func_gnugettext${gt_api_version}_libintl" + + if test "$USE_NLS" = "yes"; then + gt_use_preinstalled_gnugettext=no + + + if test $gt_api_version -ge 3; then + gt_revision_test_code=' +#ifndef __GNU_GETTEXT_SUPPORTED_REVISION +#define __GNU_GETTEXT_SUPPORTED_REVISION(major) ((major) == 0 ? 0 : -1) +#endif +typedef int array [2 * (__GNU_GETTEXT_SUPPORTED_REVISION(0) >= 1) - 1]; +' + else + gt_revision_test_code= + fi + if test $gt_api_version -ge 2; then + gt_expression_test_code=' + * ngettext ("", "", 0)' + else + gt_expression_test_code= + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libc" >&5 +$as_echo_n "checking for GNU gettext in libc... " >&6; } +if eval "test \"\${$gt_func_gnugettext_libc+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern int *_nl_domain_bindings; +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_domain_bindings + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libc=yes" +else + eval "$gt_func_gnugettext_libc=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$gt_func_gnugettext_libc + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" != "yes"; }; then + + + + + + am_save_CPPFLAGS="$CPPFLAGS" + + for element in $INCICONV; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for iconv" >&5 +$as_echo_n "checking for iconv... " >&6; } +if test "${am_cv_func_iconv+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + am_cv_func_iconv="no, consider installing GNU libiconv" + am_cv_lib_iconv=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if test "$am_cv_func_iconv" != yes; then + am_save_LIBS="$LIBS" + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +int +main () +{ +iconv_t cd = iconv_open("",""); + iconv(cd,NULL,NULL,NULL,NULL); + iconv_close(cd); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + am_cv_lib_iconv=yes + am_cv_func_iconv=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$am_save_LIBS" + fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv" >&5 +$as_echo "$am_cv_func_iconv" >&6; } + if test "$am_cv_func_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for working iconv" >&5 +$as_echo_n "checking for working iconv... " >&6; } +if test "${am_cv_func_iconv_works+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + am_save_LIBS="$LIBS" + if test $am_cv_lib_iconv = yes; then + LIBS="$LIBS $LIBICONV" + fi + if test "$cross_compiling" = yes; then : + case "$host_os" in + aix* | hpux*) am_cv_func_iconv_works="guessing no" ;; + *) am_cv_func_iconv_works="guessing yes" ;; + esac +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main () +{ + /* Test against AIX 5.1 bug: Failures are not distinguishable from successful + returns. */ + { + iconv_t cd_utf8_to_88591 = iconv_open ("ISO8859-1", "UTF-8"); + if (cd_utf8_to_88591 != (iconv_t)(-1)) + { + static const char input[] = "\342\202\254"; /* EURO SIGN */ + char buf[10]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_utf8_to_88591, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if (res == 0) + return 1; + } + } +#if 0 /* This bug could be worked around by the caller. */ + /* Test against HP-UX 11.11 bug: Positive return value instead of 0. */ + { + iconv_t cd_88591_to_utf8 = iconv_open ("utf8", "iso88591"); + if (cd_88591_to_utf8 != (iconv_t)(-1)) + { + static const char input[] = "\304rger mit b\366sen B\374bchen ohne Augenma\337"; + char buf[50]; + const char *inptr = input; + size_t inbytesleft = strlen (input); + char *outptr = buf; + size_t outbytesleft = sizeof (buf); + size_t res = iconv (cd_88591_to_utf8, + (char **) &inptr, &inbytesleft, + &outptr, &outbytesleft); + if ((int)res > 0) + return 1; + } + } +#endif + /* Test against HP-UX 11.11 bug: No converter from EUC-JP to UTF-8 is + provided. */ + if (/* Try standardized names. */ + iconv_open ("UTF-8", "EUC-JP") == (iconv_t)(-1) + /* Try IRIX, OSF/1 names. */ + && iconv_open ("UTF-8", "eucJP") == (iconv_t)(-1) + /* Try AIX names. */ + && iconv_open ("UTF-8", "IBM-eucJP") == (iconv_t)(-1) + /* Try HP-UX names. */ + && iconv_open ("utf8", "eucJP") == (iconv_t)(-1)) + return 1; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + am_cv_func_iconv_works=yes +else + am_cv_func_iconv_works=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$am_save_LIBS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_func_iconv_works" >&5 +$as_echo "$am_cv_func_iconv_works" >&6; } + case "$am_cv_func_iconv_works" in + *no) am_func_iconv=no am_cv_lib_iconv=no ;; + *) am_func_iconv=yes ;; + esac + else + am_func_iconv=no am_cv_lib_iconv=no + fi + if test "$am_func_iconv" = yes; then + +$as_echo "#define HAVE_ICONV 1" >>confdefs.h + + fi + if test "$am_cv_lib_iconv" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libiconv" >&5 +$as_echo_n "checking how to link with libiconv... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBICONV" >&5 +$as_echo "$LIBICONV" >&6; } + else + CPPFLAGS="$am_save_CPPFLAGS" + LIBICONV= + LTLIBICONV= + fi + + + + + + + + + use_additional=yes + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + +# Check whether --with-libintl-prefix was given. +if test "${with_libintl_prefix+set}" = set; then : + withval=$with_libintl_prefix; + if test "X$withval" = "Xno"; then + use_additional=no + else + if test "X$withval" = "X"; then + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + + eval additional_includedir=\"$includedir\" + eval additional_libdir=\"$libdir\" + + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + else + additional_includedir="$withval/include" + additional_libdir="$withval/$acl_libdirstem" + fi + fi + +fi + + LIBINTL= + LTLIBINTL= + INCINTL= + LIBINTL_PREFIX= + rpathdirs= + ltrpathdirs= + names_already_handled= + names_next_round='intl ' + while test -n "$names_next_round"; do + names_this_round="$names_next_round" + names_next_round= + for name in $names_this_round; do + already_handled= + for n in $names_already_handled; do + if test "$n" = "$name"; then + already_handled=yes + break + fi + done + if test -z "$already_handled"; then + names_already_handled="$names_already_handled $name" + uppername=`echo "$name" | sed -e 'y|abcdefghijklmnopqrstuvwxyz./-|ABCDEFGHIJKLMNOPQRSTUVWXYZ___|'` + eval value=\"\$HAVE_LIB$uppername\" + if test -n "$value"; then + if test "$value" = yes; then + eval value=\"\$LIB$uppername\" + test -z "$value" || LIBINTL="${LIBINTL}${LIBINTL:+ }$value" + eval value=\"\$LTLIB$uppername\" + test -z "$value" || LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$value" + else + : + fi + else + found_dir= + found_la= + found_so= + found_a= + eval libname=\"$acl_libname_spec\" # typically: libname=lib$name + if test -n "$acl_shlibext"; then + shrext=".$acl_shlibext" # typically: shrext=.so + else + shrext= + fi + if test $use_additional = yes; then + dir="$additional_libdir" + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + fi + if test "X$found_dir" = "X"; then + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + case "$x" in + -L*) + dir=`echo "X$x" | sed -e 's/^X-L//'` + if test -n "$acl_shlibext"; then + if test -f "$dir/$libname$shrext"; then + found_dir="$dir" + found_so="$dir/$libname$shrext" + else + if test "$acl_library_names_spec" = '$libname$shrext$versuffix'; then + ver=`(cd "$dir" && \ + for f in "$libname$shrext".*; do echo "$f"; done \ + | sed -e "s,^$libname$shrext\\\\.,," \ + | sort -t '.' -n -r -k1,1 -k2,2 -k3,3 -k4,4 -k5,5 \ + | sed 1q ) 2>/dev/null` + if test -n "$ver" && test -f "$dir/$libname$shrext.$ver"; then + found_dir="$dir" + found_so="$dir/$libname$shrext.$ver" + fi + else + eval library_names=\"$acl_library_names_spec\" + for f in $library_names; do + if test -f "$dir/$f"; then + found_dir="$dir" + found_so="$dir/$f" + break + fi + done + fi + fi + fi + if test "X$found_dir" = "X"; then + if test -f "$dir/$libname.$acl_libext"; then + found_dir="$dir" + found_a="$dir/$libname.$acl_libext" + fi + fi + if test "X$found_dir" != "X"; then + if test -f "$dir/$libname.la"; then + found_la="$dir/$libname.la" + fi + fi + ;; + esac + if test "X$found_dir" != "X"; then + break + fi + done + fi + if test "X$found_dir" != "X"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$found_dir -l$name" + if test "X$found_so" != "X"; then + if test "$enable_rpath" = no || test "X$found_dir" = "X/usr/$acl_libdirstem"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $found_dir" + fi + if test "$acl_hardcode_direct" = yes; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + if test -n "$acl_hardcode_libdir_flag_spec" && test "$acl_hardcode_minus_L" = no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $found_dir" + fi + else + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$found_dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir" + fi + if test "$acl_hardcode_minus_L" != no; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_so" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + fi + fi + fi + fi + else + if test "X$found_a" != "X"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }$found_a" + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$found_dir -l$name" + fi + fi + additional_includedir= + case "$found_dir" in + */$acl_libdirstem | */$acl_libdirstem/) + basedir=`echo "X$found_dir" | sed -e 's,^X,,' -e "s,/$acl_libdirstem/"'*$,,'` + LIBINTL_PREFIX="$basedir" + additional_includedir="$basedir/include" + ;; + esac + if test "X$additional_includedir" != "X"; then + if test "X$additional_includedir" != "X/usr/include"; then + haveit= + if test "X$additional_includedir" = "X/usr/local/include"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + for x in $CPPFLAGS $INCINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-I$additional_includedir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_includedir"; then + INCINTL="${INCINTL}${INCINTL:+ }-I$additional_includedir" + fi + fi + fi + fi + fi + if test -n "$found_la"; then + save_libdir="$libdir" + case "$found_la" in + */* | *\\*) . "$found_la" ;; + *) . "./$found_la" ;; + esac + libdir="$save_libdir" + for dep in $dependency_libs; do + case "$dep" in + -L*) + additional_libdir=`echo "X$dep" | sed -e 's/^X-L//'` + if test "X$additional_libdir" != "X/usr/$acl_libdirstem"; then + haveit= + if test "X$additional_libdir" = "X/usr/local/$acl_libdirstem"; then + if test -n "$GCC"; then + case $host_os in + linux* | gnu* | k*bsd*-gnu) haveit=yes;; + esac + fi + fi + if test -z "$haveit"; then + haveit= + for x in $LDFLAGS $LIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LIBINTL="${LIBINTL}${LIBINTL:+ }-L$additional_libdir" + fi + fi + haveit= + for x in $LDFLAGS $LTLIBINTL; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X-L$additional_libdir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + if test -d "$additional_libdir"; then + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-L$additional_libdir" + fi + fi + fi + fi + ;; + -R*) + dir=`echo "X$dep" | sed -e 's/^X-R//'` + if test "$enable_rpath" != no; then + haveit= + for x in $rpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + rpathdirs="$rpathdirs $dir" + fi + haveit= + for x in $ltrpathdirs; do + if test "X$x" = "X$dir"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + ltrpathdirs="$ltrpathdirs $dir" + fi + fi + ;; + -l*) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's/^X-l//'` + ;; + *.la) + names_next_round="$names_next_round "`echo "X$dep" | sed -e 's,^X.*/,,' -e 's,^lib,,' -e 's,\.la$,,'` + ;; + *) + LIBINTL="${LIBINTL}${LIBINTL:+ }$dep" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }$dep" + ;; + esac + done + fi + else + LIBINTL="${LIBINTL}${LIBINTL:+ }-l$name" + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-l$name" + fi + fi + fi + done + done + if test "X$rpathdirs" != "X"; then + if test -n "$acl_hardcode_libdir_separator"; then + alldirs= + for found_dir in $rpathdirs; do + alldirs="${alldirs}${alldirs:+$acl_hardcode_libdir_separator}$found_dir" + done + acl_save_libdir="$libdir" + libdir="$alldirs" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + else + for found_dir in $rpathdirs; do + acl_save_libdir="$libdir" + libdir="$found_dir" + eval flag=\"$acl_hardcode_libdir_flag_spec\" + libdir="$acl_save_libdir" + LIBINTL="${LIBINTL}${LIBINTL:+ }$flag" + done + fi + fi + if test "X$ltrpathdirs" != "X"; then + for found_dir in $ltrpathdirs; do + LTLIBINTL="${LTLIBINTL}${LTLIBINTL:+ }-R$found_dir" + done + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU gettext in libintl" >&5 +$as_echo_n "checking for GNU gettext in libintl... " >&6; } +if eval "test \"\${$gt_func_gnugettext_libintl+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + gt_save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $INCINTL" + gt_save_LIBS="$LIBS" + LIBS="$LIBS $LIBINTL" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$gt_func_gnugettext_libintl=yes" +else + eval "$gt_func_gnugettext_libintl=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" != yes; } && test -n "$LIBICONV"; then + LIBS="$LIBS $LIBICONV" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +$gt_revision_test_code +extern int _nl_msg_cat_cntr; +extern +#ifdef __cplusplus +"C" +#endif +const char *_nl_expand_alias (const char *); +int +main () +{ +bindtextdomain ("", ""); +return * gettext ("")$gt_expression_test_code + _nl_msg_cat_cntr + *_nl_expand_alias ("") + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBINTL="$LIBINTL $LIBICONV" + LTLIBINTL="$LTLIBINTL $LTLIBICONV" + eval "$gt_func_gnugettext_libintl=yes" + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + fi + CPPFLAGS="$gt_save_CPPFLAGS" + LIBS="$gt_save_LIBS" +fi +eval ac_res=\$$gt_func_gnugettext_libintl + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + fi + + if { eval "gt_val=\$$gt_func_gnugettext_libc"; test "$gt_val" = "yes"; } \ + || { { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; } \ + && test "$PACKAGE" != gettext-runtime \ + && test "$PACKAGE" != gettext-tools; }; then + gt_use_preinstalled_gnugettext=yes + else + LIBINTL= + LTLIBINTL= + INCINTL= + fi + + + + if test -n "$INTL_MACOSX_LIBS"; then + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + LIBINTL="$LIBINTL $INTL_MACOSX_LIBS" + LTLIBINTL="$LTLIBINTL $INTL_MACOSX_LIBS" + fi + fi + + if test "$gt_use_preinstalled_gnugettext" = "yes" \ + || test "$nls_cv_use_gnu_gettext" = "yes"; then + +$as_echo "#define ENABLE_NLS 1" >>confdefs.h + + else + USE_NLS=no + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to use NLS" >&5 +$as_echo_n "checking whether to use NLS... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $USE_NLS" >&5 +$as_echo "$USE_NLS" >&6; } + if test "$USE_NLS" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking where the gettext function comes from" >&5 +$as_echo_n "checking where the gettext function comes from... " >&6; } + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + gt_source="external libintl" + else + gt_source="libc" + fi + else + gt_source="included intl directory" + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $gt_source" >&5 +$as_echo "$gt_source" >&6; } + fi + + if test "$USE_NLS" = "yes"; then + + if test "$gt_use_preinstalled_gnugettext" = "yes"; then + if { eval "gt_val=\$$gt_func_gnugettext_libintl"; test "$gt_val" = "yes"; }; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to link with libintl" >&5 +$as_echo_n "checking how to link with libintl... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBINTL" >&5 +$as_echo "$LIBINTL" >&6; } + + for element in $INCINTL; do + haveit= + for x in $CPPFLAGS; do + + acl_save_prefix="$prefix" + prefix="$acl_final_prefix" + acl_save_exec_prefix="$exec_prefix" + exec_prefix="$acl_final_exec_prefix" + eval x=\"$x\" + exec_prefix="$acl_save_exec_prefix" + prefix="$acl_save_prefix" + + if test "X$x" = "X$element"; then + haveit=yes + break + fi + done + if test -z "$haveit"; then + CPPFLAGS="${CPPFLAGS}${CPPFLAGS:+ }$element" + fi + done + + fi + + +$as_echo "#define HAVE_GETTEXT 1" >>confdefs.h + + +$as_echo "#define HAVE_DCGETTEXT 1" >>confdefs.h + + fi + + POSUB=po + fi + + + + INTLLIBS="$LIBINTL" + + + + + + + + if test "$USE_NLS" = "yes"; then + GETTEXT_PACKAGE=gst-plugins-bad-$GST_MAJORMINOR + else + GETTEXT_PACKAGE=NULL + fi + + +cat >>confdefs.h <<_ACEOF +#define GETTEXT_PACKAGE "$GETTEXT_PACKAGE" +_ACEOF + + + + EXP_VAR=LOCALEDIR + FROM_VAR=$datadir/locale + + prefix_save=$prefix + exec_prefix_save=$exec_prefix + + if test "x$prefix" = "xNONE"; then + prefix="$ac_default_prefix" + fi + if test "x$exec_prefix" = "xNONE"; then + exec_prefix=$prefix + fi + + full_var="$FROM_VAR" + while true; do + new_full_var="`eval echo $full_var`" + if test "x$new_full_var" = "x$full_var"; then break; fi + full_var=$new_full_var + done + + full_var=$new_full_var + LOCALEDIR="$full_var" + + + prefix=$prefix_save + exec_prefix=$exec_prefix_save + + +cat >>confdefs.h <<_ACEOF +#define LOCALEDIR "$LOCALEDIR" +_ACEOF + + + + + + # Check whether --enable-debug was given. +if test "${enable_debug+set}" = set; then : + enableval=$enable_debug; + case "${enableval}" in + yes) USE_DEBUG=yes ;; + no) USE_DEBUG=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debug" "$LINENO" 5 ;; + esac + +else + USE_DEBUG=yes +fi + + + # Check whether --enable-profiling was given. +if test "${enable_profiling+set}" = set; then : + enableval=$enable_profiling; + case "${enableval}" in + yes) USE_PROFILING=yes ;; + no) USE_PROFILING=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-profiling" "$LINENO" 5 ;; + esac + +else + USE_PROFILING=no +fi + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi + + # Check whether --enable-valgrind was given. +if test "${enable_valgrind+set}" = set; then : + enableval=$enable_valgrind; + case "${enableval}" in + yes) USE_VALGRIND="$USE_DEBUG" ;; + no) USE_VALGRIND=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-valgrind" "$LINENO" 5 ;; + esac + +else + USE_VALGRIND="$USE_DEBUG" +fi + VALGRIND_REQ="3.0" + if test "x$USE_VALGRIND" = xyes; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VALGRIND" >&5 +$as_echo_n "checking for VALGRIND... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$VALGRIND_CFLAGS"; then + pkg_cv_VALGRIND_CFLAGS="$VALGRIND_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= \$VALGRIND_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind >= $VALGRIND_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_CFLAGS=`$PKG_CONFIG --cflags "valgrind >= $VALGRIND_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$VALGRIND_LIBS"; then + pkg_cv_VALGRIND_LIBS="$VALGRIND_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"valgrind >= \$VALGRIND_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "valgrind >= $VALGRIND_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VALGRIND_LIBS=`$PKG_CONFIG --libs "valgrind >= $VALGRIND_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "valgrind >= $VALGRIND_REQ"` + else + VALGRIND_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "valgrind >= $VALGRIND_REQ"` + fi + # Put the nasty error message in config.log where it belongs + echo "$VALGRIND_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + USE_VALGRIND="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +elif test $pkg_failed = untried; then + + USE_VALGRIND="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +else + VALGRIND_CFLAGS=$pkg_cv_VALGRIND_CFLAGS + VALGRIND_LIBS=$pkg_cv_VALGRIND_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + USE_VALGRIND="yes" +fi + fi + if test "x$USE_VALGRIND" = xyes; then + +$as_echo "#define HAVE_VALGRIND 1" >>confdefs.h + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using extra code paths for valgrind" >&5 +$as_echo "$as_me: Using extra code paths for valgrind" >&6;} + fi + + + # Check whether --enable-gcov was given. +if test "${enable_gcov+set}" = set; then : + enableval=$enable_gcov; enable_gcov=$enableval +else + enable_gcov=no +fi + + if test x$enable_gcov = xyes ; then + if test "x$GCC" != "xyes" + then + as_fn_error $? "gcov only works if gcc is used" "$LINENO" 5 + fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands \"-fprofile-arcs\"" >&5 +$as_echo_n "checking to see if compiler understands \"-fprofile-arcs\"... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS "-fprofile-arcs"" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + GCOV_CFLAGS="$GCOV_CFLAGS -fprofile-arcs" + true + else + true + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands \"-ftest-coverage\"" >&5 +$as_echo_n "checking to see if compiler understands \"-ftest-coverage\"... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS "-ftest-coverage"" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + GCOV_CFLAGS="$GCOV_CFLAGS -ftest-coverage" + true + else + true + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + GCOV_CFLAGS=`echo "$GCOV_CFLAGS" | sed -e 's/-O[0-9]*//g'` + GCOV_LIBS=-lgcov + + + GCOV=`echo $CC | sed s/gcc/gcov/g` + + + GST_GCOV_ENABLED=yes + +cat >>confdefs.h <<_ACEOF +#define GST_GCOV_ENABLED 1 +_ACEOF + + if test "x$GST_GCOV_ENABLED" = "xyes" + then + CFLAGS="-O0" + + CXXFLAGS="-O0" + + FFLAGS="-O0" + + CCASFLAGS="-O0" + + { $as_echo "$as_me:${as_lineno-$LINENO}: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&5 +$as_echo "$as_me: gcov enabled, setting CFLAGS and friends to $CFLAGS" >&6;} + fi + fi + if test x$enable_gcov = xyes; then + GST_GCOV_ENABLED_TRUE= + GST_GCOV_ENABLED_FALSE='#' +else + GST_GCOV_ENABLED_TRUE='#' + GST_GCOV_ENABLED_FALSE= +fi + + + + + # Check whether --enable-examples was given. +if test "${enable_examples+set}" = set; then : + enableval=$enable_examples; + case "${enableval}" in + yes) BUILD_EXAMPLES=yes ;; + no) BUILD_EXAMPLES=no ;; + *) as_fn_error $? "bad value ${enableval} for --disable-examples" "$LINENO" 5 ;; + esac + +else + BUILD_EXAMPLES=yes +fi + if test "x$BUILD_EXAMPLES" = "xyes"; then + BUILD_EXAMPLES_TRUE= + BUILD_EXAMPLES_FALSE='#' +else + BUILD_EXAMPLES_TRUE='#' + BUILD_EXAMPLES_FALSE= +fi + + + + + +# Check whether --with-pkg-config-path was given. +if test "${with_pkg_config_path+set}" = set; then : + withval=$with_pkg_config_path; + export PKG_CONFIG_PATH=${withval} + { $as_echo "$as_me:${as_lineno-$LINENO}: Set PKG_CONFIG_PATH to $PKG_CONFIG_PATH" >&5 +$as_echo "$as_me: Set PKG_CONFIG_PATH to $PKG_CONFIG_PATH" >&6;} + +fi + + + + +# Check whether --with-package-name was given. +if test "${with_package_name+set}" = set; then : + withval=$with_package_name; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-package-name" "$LINENO" 5 ;; + *) GST_PACKAGE_NAME="${withval}" ;; + esac + +else + + P= + if test "x$P" = "x" + then + P=$PACKAGE_NAME + fi + + if test "x$PACKAGE_VERSION_NANO" = "x0" + then + GST_PACKAGE_NAME="$P source release" + else + if test "x$PACKAGE_VERSION_NANO" = "x1" + then + GST_PACKAGE_NAME="$P git" + else + GST_PACKAGE_NAME="$P prerelease" + fi + fi + + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $GST_PACKAGE_NAME as package name" >&5 +$as_echo "$as_me: Using $GST_PACKAGE_NAME as package name" >&6;} + +cat >>confdefs.h <<_ACEOF +#define GST_PACKAGE_NAME "$GST_PACKAGE_NAME" +_ACEOF + + + + + +# Check whether --with-package-origin was given. +if test "${with_package_origin+set}" = set; then : + withval=$with_package_origin; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-package-origin" "$LINENO" 5 ;; + *) GST_PACKAGE_ORIGIN="${withval}" ;; + esac + +else + GST_PACKAGE_ORIGIN="Unknown package origin" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $GST_PACKAGE_ORIGIN as package origin" >&5 +$as_echo "$as_me: Using $GST_PACKAGE_ORIGIN as package origin" >&6;} + +cat >>confdefs.h <<_ACEOF +#define GST_PACKAGE_ORIGIN "$GST_PACKAGE_ORIGIN" +_ACEOF + + + + + + +# Check whether --with-plugins was given. +if test "${with_plugins+set}" = set; then : + withval=$with_plugins; WITH_PLUGINS=$withval +else + WITH_PLUGINS= +fi + + + GST_PLUGINS_ALL="" + GST_PLUGINS_SELECTED="" + + + + + + + echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: building of plug-ins with external deps ***" >&5 +$as_echo "$as_me: *** checking feature: building of plug-ins with external deps ***" >&6;} +if test "x" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ***" >&5 +$as_echo "$as_me: *** for plug-ins: ***" >&6;} +fi +NOUSE= +if test "x$USE_EXTERNAL" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-external was given. +if test "${enable_external+set}" = set; then : + enableval=$enable_external; case "${enableval}" in + yes) USE_EXTERNAL=yes;; + no) USE_EXTERNAL=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-external" "$LINENO" 5 ;; + esac +else + USE_EXTERNAL=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_EXTERNAL="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_EXTERNAL = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_EXTERNAL=no + HAVE_EXTERNAL=yes + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_EXTERNAL = xno; then + USE_EXTERNAL=no + else + : + fi +fi +if test x$USE_EXTERNAL = xyes; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: building external plug-ins" >&5 +$as_echo "$as_me: building external plug-ins" >&6;} + BUILD_EXTERNAL="yes" + + if test "x" != "x"; then + GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_EXTERNAL /**/" >>confdefs.h + +else + : + if test "x" != "x"; then + GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: all plug-ins with external dependencies will not be built" >&5 +$as_echo "$as_me: WARNING: all plug-ins with external dependencies will not be built" >&2;} + BUILD_EXTERNAL="no" + +fi + if test x$USE_EXTERNAL = xyes; then + USE_EXTERNAL_TRUE= + USE_EXTERNAL_FALSE='#' +else + USE_EXTERNAL_TRUE='#' + USE_EXTERNAL_FALSE= +fi + + + # make BUILD_EXTERNAL available to Makefile.am + if test "x$BUILD_EXTERNAL" = "xyes"; then + BUILD_EXTERNAL_TRUE= + BUILD_EXTERNAL_FALSE='#' +else + BUILD_EXTERNAL_TRUE='#' + BUILD_EXTERNAL_FALSE= +fi + + + + + echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: building of experimental plug-ins ***" >&5 +$as_echo "$as_me: *** checking feature: building of experimental plug-ins ***" >&6;} +if test "x" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ***" >&5 +$as_echo "$as_me: *** for plug-ins: ***" >&6;} +fi +NOUSE= +if test "x$USE_EXPERIMENTAL" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-experimental was given. +if test "${enable_experimental+set}" = set; then : + enableval=$enable_experimental; case "${enableval}" in + yes) USE_EXPERIMENTAL=yes;; + no) USE_EXPERIMENTAL=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-experimental" "$LINENO" 5 ;; + esac +else + USE_EXPERIMENTAL=no +fi + +if test "x$NOUSE" = "xyes"; then + USE_EXPERIMENTAL="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_EXPERIMENTAL = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_EXPERIMENTAL=no + HAVE_EXPERIMENTAL=yes + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_EXPERIMENTAL = xno; then + USE_EXPERIMENTAL=no + else + : + fi +fi +if test x$USE_EXPERIMENTAL = xyes; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: building experimental plug-ins" >&5 +$as_echo "$as_me: WARNING: building experimental plug-ins" >&2;} + BUILD_EXPERIMENTAL="yes" + + if test "x" != "x"; then + GST_PLUGINS_YES="\t\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_EXPERIMENTAL /**/" >>confdefs.h + +else + : + if test "x" != "x"; then + GST_PLUGINS_NO="\t\n$GST_PLUGINS_NO" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: not building experimental plug-ins" >&5 +$as_echo "$as_me: not building experimental plug-ins" >&6;} + BUILD_EXPERIMENTAL="no" + +fi + if test x$USE_EXPERIMENTAL = xyes; then + USE_EXPERIMENTAL_TRUE= + USE_EXPERIMENTAL_FALSE='#' +else + USE_EXPERIMENTAL_TRUE='#' + USE_EXPERIMENTAL_FALSE= +fi + + + # make BUILD_EXPERIMENTAL available to Makefile.am + if test "x$BUILD_EXPERIMENTAL" = "xyes"; then + BUILD_EXPERIMENTAL_TRUE= + BUILD_EXPERIMENTAL_FALSE='#' +else + BUILD_EXPERIMENTAL_TRUE='#' + BUILD_EXPERIMENTAL_FALSE= +fi + + + + + + + case $host_os in + rhapsody*) + +cat >>confdefs.h <<_ACEOF +#define GST_EXTRA_MODULE_SUFFIX ".dylib" +_ACEOF + + ;; + darwin*) + +cat >>confdefs.h <<_ACEOF +#define GST_EXTRA_MODULE_SUFFIX ".dylib" +_ACEOF + + +cat >>confdefs.h <<_ACEOF +#define HAVE_OSX 1 +_ACEOF + + ;; + cygwin*) + +cat >>confdefs.h <<_ACEOF +#define GST_HAVE_UNSAFE_FORK 1 +_ACEOF + + ;; + mingw* | msvc* | mks*) + +cat >>confdefs.h <<_ACEOF +#define HAVE_WIN32 1 +_ACEOF + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + return __MSVCRT_VERSION__; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + #if __MSVCRT_VERSION__ < 0x0601 + #error "MSVCRT too old" + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: MSVCRT version looks ok" >&5 +$as_echo "$as_me: MSVCRT version looks ok" >&6;} + +else + + as_fn_error $? "MSVCRT version too old, need at least WinXP SP2" "$LINENO" 5 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: Setting MSVCRT version to 0x0601" >&5 +$as_echo "$as_me: Setting MSVCRT version to 0x0601" >&6;} + +cat >>confdefs.h <<_ACEOF +#define __MSVCRT_VERSION__ 0x0601 +_ACEOF + + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ;; + *) + ;; + esac + + + + + + case "x${host_cpu}" in + xi?86 | xk? | xi?86_64) + case $host_os in + solaris*) + ac_fn_c_check_decl "$LINENO" "__i386" "ac_cv_have_decl___i386" "$ac_includes_default" +if test "x$ac_cv_have_decl___i386" = x""yes; then : + I386_ABI="yes" +else + I386_ABI="no" +fi + + ac_fn_c_check_decl "$LINENO" "__amd64" "ac_cv_have_decl___amd64" "$ac_includes_default" +if test "x$ac_cv_have_decl___amd64" = x""yes; then : + AMD64_ABI="yes" +else + AMD64_ABI="no" +fi + + + if test "x$I386_ABI" = "xyes" ; then + HAVE_CPU_I386=yes + +$as_echo "#define HAVE_CPU_I386 1" >>confdefs.h + + fi + if test "x$AMD64_ABI" = "xyes" ; then + HAVE_CPU_X86_64=yes + +$as_echo "#define HAVE_CPU_X86_64 1" >>confdefs.h + + fi + ;; + *) + HAVE_CPU_I386=yes + +$as_echo "#define HAVE_CPU_I386 1" >>confdefs.h + + + case "x${host_cpu}" in + xi386 | xi486) ;; + *) + +$as_echo "#define HAVE_RDTSC 1" >>confdefs.h + ;; + esac + ;; + esac + ;; + xpowerpc) + HAVE_CPU_PPC=yes + +$as_echo "#define HAVE_CPU_PPC 1" >>confdefs.h + ;; + xpowerpc64) + HAVE_CPU_PPC64=yes + +$as_echo "#define HAVE_CPU_PPC64 1" >>confdefs.h + ;; + xalpha*) + HAVE_CPU_ALPHA=yes + +$as_echo "#define HAVE_CPU_ALPHA 1" >>confdefs.h + ;; + xarm*) + HAVE_CPU_ARM=yes + +$as_echo "#define HAVE_CPU_ARM 1" >>confdefs.h + ;; + xsparc*) + HAVE_CPU_SPARC=yes + +$as_echo "#define HAVE_CPU_SPARC 1" >>confdefs.h + ;; + xmips*) + HAVE_CPU_MIPS=yes + +$as_echo "#define HAVE_CPU_MIPS 1" >>confdefs.h + ;; + xhppa*) + HAVE_CPU_HPPA=yes + +$as_echo "#define HAVE_CPU_HPPA 1" >>confdefs.h + ;; + xs390*) + HAVE_CPU_S390=yes + +$as_echo "#define HAVE_CPU_S390 1" >>confdefs.h + ;; + xia64*) + HAVE_CPU_IA64=yes + +$as_echo "#define HAVE_CPU_IA64 1" >>confdefs.h + ;; + xm68k*) + HAVE_CPU_M68K=yes + +$as_echo "#define HAVE_CPU_M68K 1" >>confdefs.h + ;; + xx86_64) + HAVE_CPU_X86_64=yes + +$as_echo "#define HAVE_CPU_X86_64 1" >>confdefs.h + ;; + xcris) + HAVE_CPU_CRIS=yes + +$as_echo "#define HAVE_CPU_CRIS 1" >>confdefs.h + ;; + xcrisv32) + HAVE_CPU_CRISV32=yes + +$as_echo "#define HAVE_CPU_CRISV32 1" >>confdefs.h + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + + if test "x$HAVE_CPU_I386" = "xyes"; then + HAVE_CPU_I386_TRUE= + HAVE_CPU_I386_FALSE='#' +else + HAVE_CPU_I386_TRUE='#' + HAVE_CPU_I386_FALSE= +fi + + if test "x$HAVE_CPU_PPC" = "xyes"; then + HAVE_CPU_PPC_TRUE= + HAVE_CPU_PPC_FALSE='#' +else + HAVE_CPU_PPC_TRUE='#' + HAVE_CPU_PPC_FALSE= +fi + + if test "x$HAVE_CPU_PPC64" = "xyes"; then + HAVE_CPU_PPC64_TRUE= + HAVE_CPU_PPC64_FALSE='#' +else + HAVE_CPU_PPC64_TRUE='#' + HAVE_CPU_PPC64_FALSE= +fi + + if test "x$HAVE_CPU_ALPHA" = "xyes"; then + HAVE_CPU_ALPHA_TRUE= + HAVE_CPU_ALPHA_FALSE='#' +else + HAVE_CPU_ALPHA_TRUE='#' + HAVE_CPU_ALPHA_FALSE= +fi + + if test "x$HAVE_CPU_ARM" = "xyes"; then + HAVE_CPU_ARM_TRUE= + HAVE_CPU_ARM_FALSE='#' +else + HAVE_CPU_ARM_TRUE='#' + HAVE_CPU_ARM_FALSE= +fi + + if test "x$HAVE_CPU_SPARC" = "xyes"; then + HAVE_CPU_SPARC_TRUE= + HAVE_CPU_SPARC_FALSE='#' +else + HAVE_CPU_SPARC_TRUE='#' + HAVE_CPU_SPARC_FALSE= +fi + + if test "x$HAVE_CPU_HPPA" = "xyes"; then + HAVE_CPU_HPPA_TRUE= + HAVE_CPU_HPPA_FALSE='#' +else + HAVE_CPU_HPPA_TRUE='#' + HAVE_CPU_HPPA_FALSE= +fi + + if test "x$HAVE_CPU_MIPS" = "xyes"; then + HAVE_CPU_MIPS_TRUE= + HAVE_CPU_MIPS_FALSE='#' +else + HAVE_CPU_MIPS_TRUE='#' + HAVE_CPU_MIPS_FALSE= +fi + + if test "x$HAVE_CPU_S390" = "xyes"; then + HAVE_CPU_S390_TRUE= + HAVE_CPU_S390_FALSE='#' +else + HAVE_CPU_S390_TRUE='#' + HAVE_CPU_S390_FALSE= +fi + + if test "x$HAVE_CPU_IA64" = "xyes"; then + HAVE_CPU_IA64_TRUE= + HAVE_CPU_IA64_FALSE='#' +else + HAVE_CPU_IA64_TRUE='#' + HAVE_CPU_IA64_FALSE= +fi + + if test "x$HAVE_CPU_M68K" = "xyes"; then + HAVE_CPU_M68K_TRUE= + HAVE_CPU_M68K_FALSE='#' +else + HAVE_CPU_M68K_TRUE='#' + HAVE_CPU_M68K_FALSE= +fi + + if test "x$HAVE_CPU_X86_64" = "xyes"; then + HAVE_CPU_X86_64_TRUE= + HAVE_CPU_X86_64_FALSE='#' +else + HAVE_CPU_X86_64_TRUE='#' + HAVE_CPU_X86_64_FALSE= +fi + + if test "x$HAVE_CPU_CRIS" = "xyes"; then + HAVE_CPU_CRIS_TRUE= + HAVE_CPU_CRIS_FALSE='#' +else + HAVE_CPU_CRIS_TRUE='#' + HAVE_CPU_CRIS_FALSE= +fi + + if test "x$HAVE_CPU_CRISV32" = "xyes"; then + HAVE_CPU_CRISV32_TRUE= + HAVE_CPU_CRISV32_FALSE='#' +else + HAVE_CPU_CRISV32_TRUE='#' + HAVE_CPU_CRISV32_FALSE= +fi + + + +cat >>confdefs.h <<_ACEOF +#define HOST_CPU "$host_cpu" +_ACEOF + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +$as_echo_n "checking whether byte ordering is bigendian... " >&6; } +if test "${ac_cv_c_bigendian+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main () +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main () +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_c_bigendian=yes +else + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes; then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main () +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main () +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_c_bigendian=no +else + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +$as_echo "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + $as_echo "#define WORDS_BIGENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +$as_echo "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + as_fn_error $? "unknown endianness + presetting ac_cv_c_bigendian=no (or yes) will help" "$LINENO" 5 ;; + esac + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5 ; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if test "${ac_cv_c_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if test "${ac_cv_prog_cc_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CC" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + + case $ac_cv_prog_cc_stdc in #( + no) : + ac_cv_prog_cc_c99=no; ac_cv_prog_cc_c89=no ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if test "${ac_cv_prog_cc_c99+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if test "${ac_cv_prog_cc_c89+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 +else + ac_cv_prog_cc_stdc=no +fi + +fi + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO Standard C" >&5 +$as_echo_n "checking for $CC option to accept ISO Standard C... " >&6; } + if test "${ac_cv_prog_cc_stdc+set}" = set; then : + $as_echo_n "(cached) " >&6 +fi + + case $ac_cv_prog_cc_stdc in #( + no) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; #( + '') : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; #( + *) : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_stdc" >&5 +$as_echo "$ac_cv_prog_cc_stdc" >&6; } ;; +esac + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + +if test -n "$CXX" && ( test "X$CXX" != "Xno" && + ( (test "X$CXX" = "Xg++" && `g++ -v >/dev/null 2>&1` ) || + (test "X$CXX" != "Xg++"))) ; then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +$as_echo_n "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if test "${ac_cv_prog_CXXCPP+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CXXCPP needs to be expanded + for CXXCPP in "$CXX -E" "/lib/cpp" + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +$as_echo "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +_lt_caught_CXX_error=yes; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_flag_spec_ld_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test "$_lt_caught_CXX_error" != yes; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + compiler=$CC + compiler_CXX=$CC + for cc_temp in $compiler""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac +done +cc_basename=`$ECHO "X$cc_temp" | $Xsed -e 's%.*/%%' -e "s%^$host_alias-%%"` + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test "$GXX" = yes; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test "$GXX" = yes; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test "${with_gnu_ld+set}" = set; then : + withval=$with_gnu_ld; test "$withval" = no || with_gnu_ld=yes +else + with_gnu_ld=no +fi + +ac_prog=ld +if test "$GCC" = yes; then + # Check if gcc -print-prog-name=ld gives a path. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +$as_echo_n "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD="$ac_prog" + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test "$with_gnu_ld" = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +$as_echo_n "checking for GNU ld... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +$as_echo_n "checking for non-GNU ld... " >&6; } +fi +if test "${lt_cv_path_LD+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$LD"; then + lt_save_ifs="$IFS"; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS="$lt_save_ifs" + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD="$ac_dir/$ac_prog" + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +$as_echo "$LD" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +$as_echo_n "checking if the linker ($LD) is GNU ld... " >&6; } +if test "${lt_cv_prog_gnu_ld+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +$as_echo "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test "$with_gnu_ld" = yes; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='${wl}' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test "$host_cpu" = ia64; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag="" + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # need to do runtime linking. + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='${wl}-f,' + + if test "$GXX" = yes; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`${CC} -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test "$aix_use_runtimelinking" = yes; then + shared_flag="$shared_flag "'${wl}-G' + fi + else + # not using gcc + if test "$host_cpu" = ia64; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test "$aix_use_runtimelinking" = yes; then + shared_flag='${wl}-G' + else + shared_flag='${wl}-bM:SRE' + fi + fi + fi + + export_dynamic_flag_spec_CXX='${wl}-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test "$aix_use_runtimelinking" = yes; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag_CXX='-berok' + # Determine the default libpath from the value encoded in an empty + # executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags `if test "x${allow_undefined_flag}" != "x"; then $ECHO "X${wl}${allow_undefined_flag}" | $Xsed; else :; fi` '"\${wl}$exp_sym_flag:\$export_symbols $shared_flag" + else + if test "$host_cpu" = ia64; then + hardcode_libdir_flag_spec_CXX='${wl}-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\${wl}$no_entry_flag"' $compiler_flags ${wl}${allow_undefined_flag} '"\${wl}$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + +lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\(.*\)$/\1/ + p + } + }' +aix_libpath=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +# Check for a 64-bit object if we didn't find anything. +if test -z "$aix_libpath"; then + aix_libpath=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +if test -z "$aix_libpath"; then aix_libpath="/usr/lib:/lib"; fi + + hardcode_libdir_flag_spec_CXX='${wl}-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' ${wl}-bernotok' + allow_undefined_flag_CXX=' ${wl}-berok' + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + archive_cmds_need_lc_CXX=yes + # This is similar to how AIX traditionally builds its shared + # libraries. + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs ${wl}-bnoentry $compiler_flags ${wl}-bE:$export_symbols${allow_undefined_flag}~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$soname' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file (1st line + # is EXPORTS), use it as is; otherwise, prepend... + archive_expsym_cmds_CXX='if test "x`$SED 1q $export_symbols`" = xEXPORTS; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname ${wl}--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + whole_archive_flag_spec_CXX='' + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX="$_lt_dar_allow_undefined" + case $cc_basename in + ifort*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test "$_lt_dar_can_shared" = "yes"; then + output_verbose_link_cmd=echo + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod${_lt_dsymutil}" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring ${_lt_dar_single_mod}${_lt_dar_export_syms}${_lt_dsymutil}" + module_expsym_cmds_CXX="sed -e 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags${_lt_dar_export_syms}${_lt_dsymutil}" + if test "$lt_cv_apple_cc_single_mod" != "yes"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dsymutil}" + archive_expsym_cmds_CXX="sed 's,^,_,' < \$export_symbols > \$output_objdir/\${libname}-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \${lib}-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \${lib}-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring${_lt_dar_export_syms}${_lt_dsymutil}" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd[12]*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + gnu*) + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='${wl}-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib -fPIC ${wl}+b ${wl}$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test $output_objdir/$soname = $lib || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test $with_gnu_ld = no; then + hardcode_libdir_flag_spec_CXX='${wl}+b ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='${wl}-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP "\-L"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes; then + if test $with_gnu_ld = no; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC ${wl}+h ${wl}$soname ${wl}+b ${wl}$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s,^,_," $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags ${wl}-h,$soname ${wl}--retain-symbols-file,$output_objdir/$soname.expsym ${wl}--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test "$GXX" = yes; then + if test "$with_gnu_ld" = no; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib ${wl}-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive$convenience ${wl}--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5]* | *pgcpp\ [1-5]*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | $NL2SP` $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + *) # Version 6 will use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname ${wl}-retain-symbols-file ${wl}$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}--rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + whole_archive_flag_spec_CXX='${wl}--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $wl$soname -o $lib ${wl}-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + xl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + export_dynamic_flag_spec_CXX='${wl}--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname -o $lib' + if test "x$supports_anon_versioning" = xyes; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags ${wl}-soname $wl$soname ${wl}-version-script ${wl}$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file ${wl}$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='${wl}--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; $ECHO \"$new_convenience\"` ${wl}--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd2*) + # C++ shared libraries are fairly broken + ld_shlibs_CXX=no + ;; + + openbsd*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='${wl}-E' + whole_archive_flag_spec_CXX="$wlarc"'--whole-archive$convenience '"$wlarc"'--no-whole-archive' + fi + output_verbose_link_cmd=echo + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\${tempext}\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='${wl}-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname $soname `test -n "$verstring" && $ECHO "X${wl}-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname ${wl}-input ${wl}$lib.exp `test -n "$verstring" && $ECHO "X-set_version $verstring" | $Xsed` -update_registry ${output_objdir}/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`$ECHO "X$templist" | $Xsed -e "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list=""; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; $ECHO "X$list" | $Xsed' + ;; + *) + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + allow_undefined_flag_CXX=' ${wl}-expect_unresolved ${wl}\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "X${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib ${allow_undefined_flag} $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-msym ${wl}-soname ${wl}$soname `test -n "$verstring" && $ECHO "${wl}-set_version ${wl}$verstring" | $Xsed` ${wl}-update_registry ${wl}${output_objdir}/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='${wl}-rpath ${wl}$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G${allow_undefined_flag} -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G${allow_undefined_flag} ${wl}-M ${wl}$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands `-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='echo' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test "$GXX" = yes && test "$with_gnu_ld" = no; then + no_undefined_flag_CXX=' ${wl}-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + else + # g++ 2.7 appears to require `-G' NOT `-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $LDFLAGS $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags ${wl}-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib ${wl}-M $wl$lib.exp -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP "\-L"' + fi + + hardcode_libdir_flag_spec_CXX='${wl}-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='${wl}-z ${wl}allextract$convenience ${wl}-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='${wl}-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We can NOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='${wl}-z,text' + allow_undefined_flag_CXX='${wl}-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='${wl}-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='${wl}-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared ${wl}-Bexport:$export_symbols ${wl}-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } + test "$ld_shlibs_CXX" = no && can_build_shared=no + + GCC_CXX="$GXX" + LD_CXX="$LD" + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test $p = "-L" || + test $p = "-R"; then + prev=$p + continue + else + prev= + fi + + if test "$pre_test_object_deps_done" = no; then + case $p in + -L* | -R*) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX="${prev}${p}" + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} ${prev}${p}" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX="${prev}${p}" + else + postdeps_CXX="${postdeps_CXX} ${prev}${p}" + fi + fi + ;; + + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test "$pre_test_object_deps_done" = no; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX="$p" + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX="$p" + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; + +linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; + +solaris*) + case $cc_basename in + CC*) + # The more standards-conforming stlport4 library is + # incompatible with the Cstd library. Avoid specifying + # it if it's in CXXFLAGS. Ignore libCrun as + # -library=stlport4 depends on it. + case " $CXX $CXXFLAGS " in + *" -library=stlport4 "*) + solaris_use_stlport4=yes + ;; + esac + + # Adding this requires a known-good setup of shared libraries for + # Sun compiler versions before 5.6, else PIC objects from an old + # archive will be linked into the output, leading to subtle bugs. + if test "$solaris_use_stlport4" != yes; then + postdeps_CXX='-library=Cstd -library=Crun' + fi + ;; + esac + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | ${SED} -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +$as_echo_n "checking for $compiler option to produce PIC... " >&6; } + + # C++ specific cases for pic, static, wl, etc. + if test "$GXX" = yes; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the `-m68020' flag to GCC prevents building anything better, + # like `-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test "$host_cpu" = ia64; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + if test "$host_cpu" != ia64; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='${wl}-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64 which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC*) + # IBM XL 8.0 on PPC + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms which do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_prog_compiler_pic_CXX" >&5 +$as_echo "$lt_prog_compiler_pic_CXX" >&6; } + + + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +$as_echo_n "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if test "${lt_cv_prog_compiler_pic_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:19749: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:19753: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_pic_works_CXX" = xyes; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +$as_echo_n "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test "${lt_cv_prog_compiler_static_works_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "X$_lt_linker_boilerplate" | $Xsed -e '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS="$save_LDFLAGS" + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test x"$lt_cv_prog_compiler_static_works_CXX" = xyes; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:19848: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:19852: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +$as_echo_n "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test "${lt_cv_prog_compiler_c_o_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:19900: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:19904: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "X$_lt_compiler_boilerplate" | $Xsed -e '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +$as_echo "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links="nottested" +if test "$lt_cv_prog_compiler_c_o_CXX" = no && test "$need_locks" != no; then + # do not overwrite the value of need_locks provided by the user + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +$as_echo_n "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +$as_echo "$hard_links" >&6; } + if test "$hard_links" = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&5 +$as_echo "$as_me: WARNING: \`$CC' does not support \`-c -o', so \`make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +$as_echo_n "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to AIX nm, but means don't demangle with GNU nm + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='$NM -BCpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B")) && (substr(\$ 3,1,1) != ".")) { print \$ 3 } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX="$ltdll_cmds" + ;; + cygwin* | mingw* | cegcc*) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;/^.*[ ]__nm__/s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + ;; + linux* | k*bsd*-gnu) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +$as_echo "$ld_shlibs_CXX" >&6; } +test "$ld_shlibs_CXX" = no && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test "$enable_shared" = yes && test "$GCC" = yes; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +$as_echo_n "checking whether -lc should be explicitly linked in... " >&6; } + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + archive_cmds_need_lc_CXX=no + else + archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $archive_cmds_need_lc_CXX" >&5 +$as_echo "$archive_cmds_need_lc_CXX" >&6; } + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +$as_echo_n "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=".so" +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +case $host_os in +aix3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='${libname}${release}${shared_ext}$major' + ;; + +aix[4-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test "$host_cpu" = ia64; then + # AIX 5 supports IA64 + library_names_spec='${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext}$versuffix $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line `#! .'. This would cause the generated library to + # depend on `.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | ${CC} -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # AIX (on Power*) has no versioning support, so currently we can not hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + if test "$aix_use_runtimelinking" = yes; then + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + else + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='${libname}${release}.a $libname.a' + soname_spec='${libname}${release}${shared_ext}$major' + fi + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`$ECHO "X$lib" | $Xsed -e '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; test $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='${libname}${shared_ext}' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=".dll" + need_version=no + need_lib_prefix=no + + case $GCC,$host_os in + yes,cygwin* | yes,mingw* | yes,pw32* | yes,cegcc*) + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \${file}`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\${base_file}'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo ${libname} | sed -e 's/^lib/cyg/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec="/usr/lib /lib/w32api /lib /usr/local/lib" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + sys_lib_search_path_spec=`$CC -print-search-dirs | $GREP "^libraries:" | $SED -e "s/^libraries://" -e "s,=/,/,g"` + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH printed by + # mingw gcc, but we are running on Cygwin. Gcc prints its search + # path with ; separators, and with drive letters. We can handle the + # drive letters (cygwin fileutils understands them), so leave them, + # especially as we might pass files found there to a mingw objdump, + # which wouldn't understand a cygwinified path. Ahh. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo ${libname} | sed -e 's/^lib/pw/'``echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext}' + ;; + esac + ;; + + *) + library_names_spec='${libname}`echo ${release} | $SED -e 's/[.]/-/g'`${versuffix}${shared_ext} $libname.lib' + ;; + esac + dynamic_linker='Win32 ld.exe' + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${major}$shared_ext ${libname}$shared_ext' + soname_spec='${libname}${release}${major}$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname$shared_ext' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd1*) + dynamic_linker=no + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[123]*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='${libname}${release}${shared_ext}$versuffix $libname${shared_ext}$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +gnu*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}${major} ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + if test "X$HPUX_IA64_MODE" = X32; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + fi + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555. + postinstall_cmds='chmod 555 $lib' + ;; + +interix[3-9]*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test "$lt_cv_prog_gnu_ld" = yes; then + version_type=linux + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${release}${shared_ext} $libname${shared_ext}' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib${libsuff} /lib${libsuff} /usr/local/lib${libsuff}" + sys_lib_dlsearch_path_spec="/usr/lib${libsuff} /lib${libsuff}" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +# This must be Linux ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + # Some binutils ld are patched to set DT_RUNPATH + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO"; then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null; then : + shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Append ld.so.conf contents to the search path + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd*) + version_type=sunos + sys_lib_dlsearch_path_spec="/usr/lib" + need_lib_prefix=no + # Some older versions of OpenBSD (3.3 at least) *do* need versioned libs. + case $host_os in + openbsd3.3 | openbsd3.3.*) need_version=yes ;; + *) need_version=no ;; + esac + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`" || test "$host_os-$host_cpu" = "openbsd2.8-powerpc"; then + case $host_os in + openbsd2.[89] | openbsd2.[89].*) + shlibpath_overrides_runpath=no + ;; + *) + shlibpath_overrides_runpath=yes + ;; + esac + else + shlibpath_overrides_runpath=yes + fi + ;; + +os2*) + libname_spec='$name' + shrext_cmds=".dll" + need_lib_prefix=no + library_names_spec='$libname${shared_ext} $libname.a' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=LIBPATH + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='${libname}${release}${shared_ext}$major' + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec="$sys_lib_search_path_spec" + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${shared_ext}$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test "$with_gnu_ld" = yes; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec ;then + version_type=linux + library_names_spec='$libname${shared_ext}.$versuffix $libname${shared_ext}.$major $libname${shared_ext}' + soname_spec='$libname${shared_ext}.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=freebsd-elf + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext} $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test "$with_gnu_ld" = yes; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major $libname${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +$as_echo "$dynamic_linker" >&6; } +test "$dynamic_linker" = no && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test "$GCC" = yes; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test "${lt_cv_sys_lib_search_path_spec+set}" = set; then + sys_lib_search_path_spec="$lt_cv_sys_lib_search_path_spec" +fi +if test "${lt_cv_sys_lib_dlsearch_path_spec+set}" = set; then + sys_lib_dlsearch_path_spec="$lt_cv_sys_lib_dlsearch_path_spec" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +$as_echo_n "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test "X$hardcode_automatic_CXX" = "Xyes" ; then + + # We can hardcode non-existent directories. + if test "$hardcode_direct_CXX" != no && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" != no && + test "$hardcode_minus_L_CXX" != no; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +$as_echo "$hardcode_action_CXX" >&6; } + +if test "$hardcode_action_CXX" = relink || + test "$inherit_rpath_CXX" = yes; then + # Fast installation is not supported + enable_fast_install=no +elif test "$shlibpath_overrides_runpath" = yes || + test "$enable_shared" = no; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test "$_lt_caught_CXX_error" != yes + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Extract the first word of "$CXX", so it can be a program name with args. +set dummy $CXX; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_HAVE_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$HAVE_CXX"; then + ac_cv_prog_HAVE_CXX="$HAVE_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_HAVE_CXX="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_HAVE_CXX" && ac_cv_prog_HAVE_CXX="no" +fi +fi +HAVE_CXX=$ac_cv_prog_HAVE_CXX +if test -n "$HAVE_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_CXX" >&5 +$as_echo "$HAVE_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in objcc objc gcc cc CC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_OBJC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$OBJC"; then + ac_cv_prog_OBJC="$OBJC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_OBJC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJC=$ac_cv_prog_OBJC +if test -n "$OBJC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OBJC" >&5 +$as_echo "$OBJC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$OBJC" && break + done +fi +if test -z "$OBJC"; then + ac_ct_OBJC=$OBJC + for ac_prog in objcc objc gcc cc CC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_OBJC+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_OBJC"; then + ac_cv_prog_ac_ct_OBJC="$ac_ct_OBJC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_OBJC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJC=$ac_cv_prog_ac_ct_OBJC +if test -n "$ac_ct_OBJC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJC" >&5 +$as_echo "$ac_ct_OBJC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_OBJC" && break +done + + if test "x$ac_ct_OBJC" = x; then + OBJC="none" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJC=$ac_ct_OBJC + fi +fi + + +OBJC_LDFLAGS="-lobjc" + +if test "x$OBJC" != xnone ; then + +depcc="$OBJC" am_compiler_list='gcc3 gcc' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_OBJC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_OBJC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_OBJC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_OBJC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_OBJC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_OBJC_dependencies_compiler_type" >&6; } +OBJCDEPMODE=depmode=$am_cv_OBJC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_OBJC_dependencies_compiler_type" = gcc3; then + am__fastdepOBJC_TRUE= + am__fastdepOBJC_FALSE='#' +else + am__fastdepOBJC_TRUE='#' + am__fastdepOBJC_FALSE= +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if Objective C compiler works" >&5 +$as_echo_n "checking if Objective C compiler works... " >&6; } + cat >>conftest.m < +@interface Moo:Object +{ +} +- moo; +int main(); +@end + +@implementation Moo +- moo +{ + exit(0); +} + +int main() +{ + id moo; + moo = [Moo new]; + [moo moo]; + return 1; +} +@end +EOF + ${OBJC} conftest.m ${OBJC_LDFLAGS} >&5 2>&5 + if test -f a.out -o -f a.exe ; then + result=yes + else + result=no + echo failed program is: >&5 + cat conftest.m >&5 + fi + rm -f conftest.m a.out a.exe + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $result" >&5 +$as_echo "$result" >&6; } +else + +depcc="$OBJC" am_compiler_list='gcc3 gcc' + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_OBJC_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_OBJC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_OBJC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_OBJC_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_OBJC_dependencies_compiler_type" >&5 +$as_echo "$am_cv_OBJC_dependencies_compiler_type" >&6; } +OBJCDEPMODE=depmode=$am_cv_OBJC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_OBJC_dependencies_compiler_type" = gcc3; then + am__fastdepOBJC_TRUE= + am__fastdepOBJC_FALSE='#' +else + am__fastdepOBJC_TRUE='#' + am__fastdepOBJC_FALSE= +fi + + +fi + + + +if test "x$CC" != xcc; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC and cc understand -c and -o together" >&5 +$as_echo_n "checking whether $CC and cc understand -c and -o together... " >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether cc understands -c and -o together" >&5 +$as_echo_n "checking whether cc understands -c and -o together... " >&6; } +fi +set dummy $CC; ac_cc=`$as_echo "$2" | + sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +if eval "test \"\${ac_cv_prog_cc_${ac_cc}_c_o+set}\"" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +# Make sure it works both with $CC and with simple cc. +# We do the test twice because some compilers refuse to overwrite an +# existing .o file with -o, though they will create one. +ac_try='$CC -c conftest.$ac_ext -o conftest2.$ac_objext >&5' +rm -f conftest2.* +if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; +then + eval ac_cv_prog_cc_${ac_cc}_c_o=yes + if test "x$CC" != xcc; then + # Test first that cc exists at all. + if { ac_try='cc -c conftest.$ac_ext >&5' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + ac_try='cc -c conftest.$ac_ext -o conftest2.$ac_objext >&5' + rm -f conftest2.* + if { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && + test -f conftest2.$ac_objext && { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; + then + # cc works too. + : + else + # cc exists but doesn't like -o. + eval ac_cv_prog_cc_${ac_cc}_c_o=no + fi + fi + fi +else + eval ac_cv_prog_cc_${ac_cc}_c_o=no +fi +rm -f core conftest* + +fi +if eval test \$ac_cv_prog_cc_${ac_cc}_c_o = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +$as_echo "#define NO_MINUS_C_MINUS_O 1" >>confdefs.h + +fi + +# FIXME: we rely on the cache variable name because +# there is no other way. +set dummy $CC +am_cc=`echo $2 | sed 's/[^a-zA-Z0-9_]/_/g;s/^[0-9]/_/'` +eval am_t=\$ac_cv_prog_cc_${am_cc}_c_o +if test "$am_t" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working do while(0) macros" >&5 +$as_echo_n "checking for working do while(0) macros... " >&6; } +if test "${_cv_g_support_dowhile_macros+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + #define STMT_START do + #define STMT_END while(0) + #define STMT_TEST STMT_START { i = 0; } STMT_END + int main(void) { int i = 1; STMT_TEST; return i; } + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + _cv_g_support_dowhile_macros=yes +else + _cv_g_support_dowhile_macros=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_g_support_dowhile_macros" >&5 +$as_echo "$_cv_g_support_dowhile_macros" >&6; } +if test x$_cv_g_support_dowhile_macros = xyes; then + +$as_echo "#define HAVE_DOWHILE_MACROS 1" >>confdefs.h + +fi + + +# Extract the first word of "valgrind", so it can be a program name with args. +set dummy valgrind; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_VALGRIND_PATH+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $VALGRIND_PATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_VALGRIND_PATH="$VALGRIND_PATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_VALGRIND_PATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_VALGRIND_PATH" && ac_cv_path_VALGRIND_PATH="no" + ;; +esac +fi +VALGRIND_PATH=$ac_cv_path_VALGRIND_PATH +if test -n "$VALGRIND_PATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $VALGRIND_PATH" >&5 +$as_echo "$VALGRIND_PATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test ! "x$VALGRIND_PATH" = "xno"; then + HAVE_VALGRIND_TRUE= + HAVE_VALGRIND_FALSE='#' +else + HAVE_VALGRIND_TRUE='#' + HAVE_VALGRIND_FALSE= +fi + + + + +# Check whether --with-html-dir was given. +if test "${with_html_dir+set}" = set; then : + withval=$with_html_dir; +else + with_html_dir='${datadir}/gtk-doc/html' +fi + + HTML_DIR="$with_html_dir" + + + # Check whether --enable-gtk-doc was given. +if test "${enable_gtk_doc+set}" = set; then : + enableval=$enable_gtk_doc; +else + enable_gtk_doc=no +fi + + + if test x$enable_gtk_doc = xyes; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk-doc >= 1.3\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk-doc >= 1.3") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + : +else + as_fn_error $? "You need to have gtk-doc >= 1.3 installed to build gtk-doc" "$LINENO" 5 +fi + if test -z "$SED"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +$as_echo_n "checking for a sed that does not truncate output... " >&6; } +if test "${ac_cv_path_SED+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" + { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +$as_echo "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + + fi + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build gtk-doc documentation" >&5 +$as_echo_n "checking whether to build gtk-doc documentation... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $enable_gtk_doc" >&5 +$as_echo "$enable_gtk_doc" >&6; } + + for ac_prog in gtkdoc-check +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GTKDOC_CHECK+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GTKDOC_CHECK in + [\\/]* | ?:[\\/]*) + ac_cv_path_GTKDOC_CHECK="$GTKDOC_CHECK" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GTKDOC_CHECK="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GTKDOC_CHECK=$ac_cv_path_GTKDOC_CHECK +if test -n "$GTKDOC_CHECK"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTKDOC_CHECK" >&5 +$as_echo "$GTKDOC_CHECK" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$GTKDOC_CHECK" && break +done + + + if test x$enable_gtk_doc = xyes; then + ENABLE_GTK_DOC_TRUE= + ENABLE_GTK_DOC_FALSE='#' +else + ENABLE_GTK_DOC_TRUE='#' + ENABLE_GTK_DOC_FALSE= +fi + + if test -n "$LIBTOOL"; then + GTK_DOC_USE_LIBTOOL_TRUE= + GTK_DOC_USE_LIBTOOL_FALSE='#' +else + GTK_DOC_USE_LIBTOOL_TRUE='#' + GTK_DOC_USE_LIBTOOL_FALSE= +fi + + + + + PYTHON_CANDIDATES="python python2.2 python2.1 python2.0 python2 \ + python1.6 python1.5" + + { $as_echo "$as_me:${as_lineno-$LINENO}: Looking for Python version >= 2.1" >&5 +$as_echo "$as_me: Looking for Python version >= 2.1" >&6;} + prog=" +import sys, string +minver = '2.1' +# split string by '.' and convert to numeric +minver_info = map(string.atoi, string.split(minver, '.')) +# we can now do comparisons on the two lists: +if sys.version_info >= tuple(minver_info): + sys.exit(0) +else: + sys.exit(1)" + + python_good=false + for python_candidate in $PYTHON_CANDIDATES; do + unset PYTHON + # Extract the first word of "$python_candidate", so it can be a program name with args. +set dummy $python_candidate; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PYTHON+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PYTHON in + [\\/]* | ?:[\\/]*) + ac_cv_path_PYTHON="$PYTHON" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PYTHON="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PYTHON=$ac_cv_path_PYTHON +if test -n "$PYTHON"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PYTHON" >&5 +$as_echo "$PYTHON" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + 1> /dev/null 2> /dev/null + + if test "x$PYTHON" = "x"; then continue; fi + + if $PYTHON -c "$prog" 1>&5 2>&5; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking \"$PYTHON\":" >&5 +$as_echo_n "checking \"$PYTHON\":... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: okay" >&5 +$as_echo "okay" >&6; } + python_good=true + break; + else + unset ac_cv_path_PYTHON + fi + done + + + if test "$python_good" != "true"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: No suitable version of python found" >&5 +$as_echo "$as_me: WARNING: No suitable version of python found" >&2;} + PYTHON= + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking local Python configuration" >&5 +$as_echo_n "checking local Python configuration... " >&6; } + + + + PYTHON_VERSION=`$PYTHON -c "import sys; print sys.version[:3]"` + + + + + PYTHON_PREFIX='${prefix}' + + + PYTHON_EXEC_PREFIX='${exec_prefix}' + + + + PYTHON_PLATFORM=`$PYTHON -c "import sys; print sys.platform"` + + + + + + pythondir=$PYTHON_PREFIX"/lib/python"$PYTHON_VERSION/site-packages + + + + pkgpythondir=\${pythondir}/$PACKAGE + + + + pyexecdir=$PYTHON_EXEC_PREFIX"/lib/python"$PYTHON_VERSION/site-packages + + + + pkgpyexecdir=\${pyexecdir}/$PACKAGE + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: looks good" >&5 +$as_echo "looks good" >&6; } + + fi + + + + build_plugin_docs=no + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether to build plugin documentation" >&5 +$as_echo_n "checking whether to build plugin documentation... " >&6; } + if test x$enable_gtk_doc = xyes; then + build_plugin_docs=yes + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no (gtk-doc disabled or not available)" >&5 +$as_echo "no (gtk-doc disabled or not available)" >&6; } + fi + + if test x$build_plugin_docs = xyes; then + ENABLE_PLUGIN_DOCS_TRUE= + ENABLE_PLUGIN_DOCS_FALSE='#' +else + ENABLE_PLUGIN_DOCS_TRUE='#' + ENABLE_PLUGIN_DOCS_FALSE= +fi + + + + +LIBM= +case $host in +*-*-beos* | *-*-cygwin* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _mwvalidcheckl in -lmw" >&5 +$as_echo_n "checking for _mwvalidcheckl in -lmw... " >&6; } +if test "${ac_cv_lib_mw__mwvalidcheckl+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lmw $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char _mwvalidcheckl (); +int +main () +{ +return _mwvalidcheckl (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_mw__mwvalidcheckl=yes +else + ac_cv_lib_mw__mwvalidcheckl=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_mw__mwvalidcheckl" >&5 +$as_echo "$ac_cv_lib_mw__mwvalidcheckl" >&6; } +if test "x$ac_cv_lib_mw__mwvalidcheckl" = x""yes; then : + LIBM="-lmw" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = x""yes; then : + LIBM="$LIBM -lm" +fi + + ;; +*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for cos in -lm" >&5 +$as_echo_n "checking for cos in -lm... " >&6; } +if test "${ac_cv_lib_m_cos+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char cos (); +int +main () +{ +return cos (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_m_cos=yes +else + ac_cv_lib_m_cos=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_m_cos" >&5 +$as_echo "$ac_cv_lib_m_cos" >&6; } +if test "x$ac_cv_lib_m_cos" = x""yes; then : + LIBM="-lm" +fi + + ;; +esac + + + + + + + + for ac_header in $ac_header_list +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + + + + + + + +for ac_func in getpagesize +do : + ac_fn_c_check_func "$LINENO" "getpagesize" "ac_cv_func_getpagesize" +if test "x$ac_cv_func_getpagesize" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETPAGESIZE 1 +_ACEOF + +fi +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for working mmap" >&5 +$as_echo_n "checking for working mmap... " >&6; } +if test "${ac_cv_func_mmap_fixed_mapped+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test "$cross_compiling" = yes; then : + ac_cv_func_mmap_fixed_mapped=no +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +/* malloc might have been renamed as rpl_malloc. */ +#undef malloc + +/* Thanks to Mike Haertel and Jim Avera for this test. + Here is a matrix of mmap possibilities: + mmap private not fixed + mmap private fixed at somewhere currently unmapped + mmap private fixed at somewhere already mapped + mmap shared not fixed + mmap shared fixed at somewhere currently unmapped + mmap shared fixed at somewhere already mapped + For private mappings, we should verify that changes cannot be read() + back from the file, nor mmap's back from the file at a different + address. (There have been systems where private was not correctly + implemented like the infamous i386 svr4.0, and systems where the + VM page cache was not coherent with the file system buffer cache + like early versions of FreeBSD and possibly contemporary NetBSD.) + For shared mappings, we should conversely verify that changes get + propagated back to all the places they're supposed to be. + + Grep wants private fixed already mapped. + The main things grep needs to know about mmap are: + * does it exist and is it safe to write into the mmap'd area + * how to use it (BSD variants) */ + +#include +#include + +#if !defined STDC_HEADERS && !defined HAVE_STDLIB_H +char *malloc (); +#endif + +/* This mess was copied from the GNU getpagesize.h. */ +#ifndef HAVE_GETPAGESIZE +# ifdef _SC_PAGESIZE +# define getpagesize() sysconf(_SC_PAGESIZE) +# else /* no _SC_PAGESIZE */ +# ifdef HAVE_SYS_PARAM_H +# include +# ifdef EXEC_PAGESIZE +# define getpagesize() EXEC_PAGESIZE +# else /* no EXEC_PAGESIZE */ +# ifdef NBPG +# define getpagesize() NBPG * CLSIZE +# ifndef CLSIZE +# define CLSIZE 1 +# endif /* no CLSIZE */ +# else /* no NBPG */ +# ifdef NBPC +# define getpagesize() NBPC +# else /* no NBPC */ +# ifdef PAGESIZE +# define getpagesize() PAGESIZE +# endif /* PAGESIZE */ +# endif /* no NBPC */ +# endif /* no NBPG */ +# endif /* no EXEC_PAGESIZE */ +# else /* no HAVE_SYS_PARAM_H */ +# define getpagesize() 8192 /* punt totally */ +# endif /* no HAVE_SYS_PARAM_H */ +# endif /* no _SC_PAGESIZE */ + +#endif /* no HAVE_GETPAGESIZE */ + +int +main () +{ + char *data, *data2, *data3; + const char *cdata2; + int i, pagesize; + int fd, fd2; + + pagesize = getpagesize (); + + /* First, make a file with some known garbage in it. */ + data = (char *) malloc (pagesize); + if (!data) + return 1; + for (i = 0; i < pagesize; ++i) + *(data + i) = rand (); + umask (0); + fd = creat ("conftest.mmap", 0600); + if (fd < 0) + return 2; + if (write (fd, data, pagesize) != pagesize) + return 3; + close (fd); + + /* Next, check that the tail of a page is zero-filled. File must have + non-zero length, otherwise we risk SIGBUS for entire page. */ + fd2 = open ("conftest.txt", O_RDWR | O_CREAT | O_TRUNC, 0600); + if (fd2 < 0) + return 4; + cdata2 = ""; + if (write (fd2, cdata2, 1) != 1) + return 5; + data2 = (char *) mmap (0, pagesize, PROT_READ | PROT_WRITE, MAP_SHARED, fd2, 0L); + if (data2 == MAP_FAILED) + return 6; + for (i = 0; i < pagesize; ++i) + if (*(data2 + i)) + return 7; + close (fd2); + if (munmap (data2, pagesize)) + return 8; + + /* Next, try to mmap the file at a fixed address which already has + something else allocated at it. If we can, also make sure that + we see the same garbage. */ + fd = open ("conftest.mmap", O_RDWR); + if (fd < 0) + return 9; + if (data2 != mmap (data2, pagesize, PROT_READ | PROT_WRITE, + MAP_PRIVATE | MAP_FIXED, fd, 0L)) + return 10; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data2 + i)) + return 11; + + /* Finally, make sure that changes to the mapped area do not + percolate back to the file as seen by read(). (This is a bug on + some variants of i386 svr4.0.) */ + for (i = 0; i < pagesize; ++i) + *(data2 + i) = *(data2 + i) + 1; + data3 = (char *) malloc (pagesize); + if (!data3) + return 12; + if (read (fd, data3, pagesize) != pagesize) + return 13; + for (i = 0; i < pagesize; ++i) + if (*(data + i) != *(data3 + i)) + return 14; + close (fd); + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_func_mmap_fixed_mapped=yes +else + ac_cv_func_mmap_fixed_mapped=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_func_mmap_fixed_mapped" >&5 +$as_echo "$ac_cv_func_mmap_fixed_mapped" >&6; } +if test $ac_cv_func_mmap_fixed_mapped = yes; then + +$as_echo "#define HAVE_MMAP 1" >>confdefs.h + +fi +rm -f conftest.mmap conftest.txt + + + +for ac_header in unistd.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$ac_includes_default" +if test "x$ac_cv_header_unistd_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_UNISTD_H 1 +_ACEOF + HAVE_UNISTD_H=yes +fi + +done + + if test "x$HAVE_UNISTD_H" = "xyes"; then + HAVE_UNISTD_H_TRUE= + HAVE_UNISTD_H_FALSE='#' +else + HAVE_UNISTD_H_TRUE='#' + HAVE_UNISTD_H_FALSE= +fi + + +if test "x$HAVE_UNISTD_H" != "xyes"; then + GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//` +fi + +for ac_header in sys/time.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_TIME_H 1 +_ACEOF + +fi + +done + + +# ------ AX CREATE STDINT H ------------------------------------- +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint types" >&5 +$as_echo_n "checking for stdint types... " >&6; } +ac_stdint_h=`echo _stdint.h` +# try to shortcircuit - if the default include path of the compiler +# can find a "stdint.h" header then we assume that all compilers can. +if test "${ac_cv_header_stdint_t+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + +old_CXXFLAGS="$CXXFLAGS" ; CXXFLAGS="" +old_CPPFLAGS="$CPPFLAGS" ; CPPFLAGS="" +old_CFLAGS="$CFLAGS" ; CFLAGS="" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int_least32_t v = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_stdint_result="(assuming C99 compatible system)" + ac_cv_header_stdint_t="stdint.h"; +else + ac_cv_header_stdint_t="" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +if test "$GCC" = "yes" && test ".$ac_cv_header_stdint_t" = "."; then +CFLAGS="-std=c99" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int_least32_t v = 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: your GCC compiler has a defunct stdint.h for its default-mode" >&5 +$as_echo "$as_me: WARNING: your GCC compiler has a defunct stdint.h for its default-mode" >&2;} +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +CXXFLAGS="$old_CXXFLAGS" +CPPFLAGS="$old_CPPFLAGS" +CFLAGS="$old_CFLAGS" +fi + + +v="... $ac_cv_header_stdint_h" +if test "$ac_stdint_h" = "stdint.h" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (are you sure you want them in ./stdint.h?)" >&5 +$as_echo "(are you sure you want them in ./stdint.h?)" >&6; } +elif test "$ac_stdint_h" = "inttypes.h" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (are you sure you want them in ./inttypes.h?)" >&5 +$as_echo "(are you sure you want them in ./inttypes.h?)" >&6; } +elif test "_$ac_cv_header_stdint_t" = "_" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (putting them into $ac_stdint_h)$v" >&5 +$as_echo "(putting them into $ac_stdint_h)$v" >&6; } +else + ac_cv_header_stdint="$ac_cv_header_stdint_t" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint (shortcircuit)" >&5 +$as_echo "$ac_cv_header_stdint (shortcircuit)" >&6; } +fi + +if test "_$ac_cv_header_stdint_t" = "_" ; then # can not shortcircuit.. + + +inttype_headers=`echo | sed -e 's/,/ /g'` + +ac_cv_stdint_result="(no helpful system typedefs seen)" + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5 +$as_echo_n "checking for stdint uintptr_t... " >&6; } +if test "${ac_cv_header_stdint_x+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_header_stdint_x="" # the 1997 typedefs (inttypes.h) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 +$as_echo "(..)" >&6; } + for i in stdint.h inttypes.h sys/inttypes.h $inttype_headers + do + unset ac_cv_type_uintptr_t + unset ac_cv_type_uint64_t + ac_fn_c_check_type "$LINENO" "uintptr_t" "ac_cv_type_uintptr_t" "#include <$i> +" +if test "x$ac_cv_type_uintptr_t" = x""yes; then : + ac_cv_header_stdint_x=$i +else + continue +fi + + ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> +" +if test "x$ac_cv_type_uint64_t" = x""yes; then : + and64="/uint64_t" +else + and64="" +fi + + ac_cv_stdint_result="(seen uintptr_t$and64 in $i)" + break + done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uintptr_t" >&5 +$as_echo_n "checking for stdint uintptr_t... " >&6; } + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_x" >&5 +$as_echo "$ac_cv_header_stdint_x" >&6; } + + +if test "_$ac_cv_header_stdint_x" = "_" ; then + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5 +$as_echo_n "checking for stdint uint32_t... " >&6; } +if test "${ac_cv_header_stdint_o+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_header_stdint_o="" # the 1995 typedefs (sys/inttypes.h) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 +$as_echo "(..)" >&6; } + for i in inttypes.h sys/inttypes.h stdint.h $inttype_headers + do + unset ac_cv_type_uint32_t + unset ac_cv_type_uint64_t + ac_fn_c_check_type "$LINENO" "uint32_t" "ac_cv_type_uint32_t" "#include <$i> +" +if test "x$ac_cv_type_uint32_t" = x""yes; then : + ac_cv_header_stdint_o=$i +else + continue +fi + + ac_fn_c_check_type "$LINENO" "uint64_t" "ac_cv_type_uint64_t" "#include<$i> +" +if test "x$ac_cv_type_uint64_t" = x""yes; then : + and64="/uint64_t" +else + and64="" +fi + + ac_cv_stdint_result="(seen uint32_t$and64 in $i)" + break + break; + done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint uint32_t" >&5 +$as_echo_n "checking for stdint uint32_t... " >&6; } + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_o" >&5 +$as_echo "$ac_cv_header_stdint_o" >&6; } + +fi + +if test "_$ac_cv_header_stdint_x" = "_" ; then +if test "_$ac_cv_header_stdint_o" = "_" ; then + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5 +$as_echo_n "checking for stdint u_int32_t... " >&6; } +if test "${ac_cv_header_stdint_u+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + ac_cv_header_stdint_u="" # the BSD typedefs (sys/types.h) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 +$as_echo "(..)" >&6; } + for i in sys/types.h inttypes.h sys/inttypes.h $inttype_headers ; do + unset ac_cv_type_u_int32_t + unset ac_cv_type_u_int64_t + ac_fn_c_check_type "$LINENO" "u_int32_t" "ac_cv_type_u_int32_t" "#include <$i> +" +if test "x$ac_cv_type_u_int32_t" = x""yes; then : + ac_cv_header_stdint_u=$i +else + continue +fi + + ac_fn_c_check_type "$LINENO" "u_int64_t" "ac_cv_type_u_int64_t" "#include<$i> +" +if test "x$ac_cv_type_u_int64_t" = x""yes; then : + and64="/u_int64_t" +else + and64="" +fi + + ac_cv_stdint_result="(seen u_int32_t$and64 in $i)" + break + break; + done + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint u_int32_t" >&5 +$as_echo_n "checking for stdint u_int32_t... " >&6; } + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdint_u" >&5 +$as_echo "$ac_cv_header_stdint_u" >&6; } + +fi fi + +if test "_$ac_cv_header_stdint_x" = "_" ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for stdint datatype model" >&5 +$as_echo_n "checking for stdint datatype model... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: (..)" >&5 +$as_echo "(..)" >&6; } + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of char" >&5 +$as_echo_n "checking size of char... " >&6; } +if test "${ac_cv_sizeof_char+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (char))" "ac_cv_sizeof_char" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_char" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (char) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_char=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_char" >&5 +$as_echo "$ac_cv_sizeof_char" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_CHAR $ac_cv_sizeof_char +_ACEOF + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of short" >&5 +$as_echo_n "checking size of short... " >&6; } +if test "${ac_cv_sizeof_short+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (short))" "ac_cv_sizeof_short" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_short" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (short) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_short=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_short" >&5 +$as_echo "$ac_cv_sizeof_short" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_SHORT $ac_cv_sizeof_short +_ACEOF + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of int" >&5 +$as_echo_n "checking size of int... " >&6; } +if test "${ac_cv_sizeof_int+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (int))" "ac_cv_sizeof_int" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_int" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (int) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_int=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_int" >&5 +$as_echo "$ac_cv_sizeof_int" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_INT $ac_cv_sizeof_int +_ACEOF + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of long" >&5 +$as_echo_n "checking size of long... " >&6; } +if test "${ac_cv_sizeof_long+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (long))" "ac_cv_sizeof_long" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_long" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (long) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_long=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_long" >&5 +$as_echo "$ac_cv_sizeof_long" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_LONG $ac_cv_sizeof_long +_ACEOF + + + # The cast to long int works around a bug in the HP C Compiler +# version HP92453-01 B.11.11.23709.GP, which incorrectly rejects +# declarations like `int a3[[(sizeof (unsigned char)) >= 0]];'. +# This bug is HP SR number 8606223364. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking size of void*" >&5 +$as_echo_n "checking size of void*... " >&6; } +if test "${ac_cv_sizeof_voidp+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (void*))" "ac_cv_sizeof_voidp" "$ac_includes_default"; then : + +else + if test "$ac_cv_type_voidp" = yes; then + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot compute sizeof (void*) +See \`config.log' for more details" "$LINENO" 5 ; } + else + ac_cv_sizeof_voidp=0 + fi +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sizeof_voidp" >&5 +$as_echo "$ac_cv_sizeof_voidp" >&6; } + + + +cat >>confdefs.h <<_ACEOF +#define SIZEOF_VOIDP $ac_cv_sizeof_voidp +_ACEOF + + + ac_cv_char_data_model="" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_char" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_short" + ac_cv_char_data_model="$ac_cv_char_data_model$ac_cv_sizeof_int" + ac_cv_long_data_model="" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_int" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_long" + ac_cv_long_data_model="$ac_cv_long_data_model$ac_cv_sizeof_voidp" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking data model" >&5 +$as_echo_n "checking data model... " >&6; } + case "$ac_cv_char_data_model/$ac_cv_long_data_model" in + 122/242) ac_cv_data_model="IP16" ; n="standard 16bit machine" ;; + 122/244) ac_cv_data_model="LP32" ; n="standard 32bit machine" ;; + 122/*) ac_cv_data_model="i16" ; n="unusual int16 model" ;; + 124/444) ac_cv_data_model="ILP32" ; n="standard 32bit unixish" ;; + 124/488) ac_cv_data_model="LP64" ; n="standard 64bit unixish" ;; + 124/448) ac_cv_data_model="LLP64" ; n="unusual 64bit unixish" ;; + 124/*) ac_cv_data_model="i32" ; n="unusual int32 model" ;; + 128/888) ac_cv_data_model="ILP64" ; n="unusual 64bit numeric" ;; + 128/*) ac_cv_data_model="i64" ; n="unusual int64 model" ;; + 222/*2) ac_cv_data_model="DSP16" ; n="strict 16bit dsptype" ;; + 333/*3) ac_cv_data_model="DSP24" ; n="strict 24bit dsptype" ;; + 444/*4) ac_cv_data_model="DSP32" ; n="strict 32bit dsptype" ;; + 666/*6) ac_cv_data_model="DSP48" ; n="strict 48bit dsptype" ;; + 888/*8) ac_cv_data_model="DSP64" ; n="strict 64bit dsptype" ;; + 222/*|333/*|444/*|666/*|888/*) : + ac_cv_data_model="iDSP" ; n="unusual dsptype" ;; + *) ac_cv_data_model="none" ; n="very unusual model" ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_data_model ($ac_cv_long_data_model, $n)" >&5 +$as_echo "$ac_cv_data_model ($ac_cv_long_data_model, $n)" >&6; } + +fi + +if test "_$ac_cv_header_stdint_x" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_x" +elif test "_$ac_cv_header_stdint_o" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_o" +elif test "_$ac_cv_header_stdint_u" != "_" ; then + ac_cv_header_stdint="$ac_cv_header_stdint_u" +else + ac_cv_header_stdint="stddef.h" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for extra inttypes in chosen header" >&5 +$as_echo_n "checking for extra inttypes in chosen header... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: ($ac_cv_header_stdint)" >&5 +$as_echo "($ac_cv_header_stdint)" >&6; } +unset ac_cv_type_int_least32_t +unset ac_cv_type_int_fast32_t +ac_fn_c_check_type "$LINENO" "int_least32_t" "ac_cv_type_int_least32_t" "#include <$ac_cv_header_stdint> +" +if test "x$ac_cv_type_int_least32_t" = x""yes; then : + +fi + +ac_fn_c_check_type "$LINENO" "int_fast32_t" "ac_cv_type_int_fast32_t" "#include<$ac_cv_header_stdint> +" +if test "x$ac_cv_type_int_fast32_t" = x""yes; then : + +fi + +ac_fn_c_check_type "$LINENO" "intmax_t" "ac_cv_type_intmax_t" "#include <$ac_cv_header_stdint> +" +if test "x$ac_cv_type_intmax_t" = x""yes; then : + +fi + + +fi # shortcircut to system "stdint.h" +# ------------------ PREPARE VARIABLES ------------------------------ +if test "$GCC" = "yes" ; then +ac_cv_stdint_message="using gnu compiler "`$CC --version | head -1` +else +ac_cv_stdint_message="using $CC" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&5 +$as_echo "make use of $ac_cv_header_stdint in $ac_stdint_h $ac_cv_stdint_result" >&6; } + +# ----------------- DONE inttypes.h checks START header ------------- +ac_config_commands="$ac_config_commands $ac_stdint_h" + + + +for ac_header in pthread.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "pthread.h" "ac_cv_header_pthread_h" "$ac_includes_default" +if test "x$ac_cv_header_pthread_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PTHREAD_H 1 +_ACEOF + HAVE_PTHREAD_H=yes +fi + +done + + if test "x$HAVE_PTHREAD_H" = "xyes"; then + HAVE_PTHREAD_H_TRUE= + HAVE_PTHREAD_H_FALSE='#' +else + HAVE_PTHREAD_H_TRUE='#' + HAVE_PTHREAD_H_FALSE= +fi + + +if test "x$HAVE_PTHREAD_H" != "xyes"; then + GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//` +fi + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/ioctl.h" >&5 +$as_echo_n "checking for FIONREAD in sys/ioctl.h... " >&6; } + if test "${_cv_gst_fionread_in_sys_ioctl+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int +main () +{ + +int x = FIONREAD; +if ( x ) + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + _cv_gst_fionread_in_sys_ioctl="yes" +else + _cv_gst_fionread_in_sys_ioctl="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gst_fionread_in_sys_ioctl" >&5 +$as_echo "$_cv_gst_fionread_in_sys_ioctl" >&6; } + + if test "$_cv_gst_fionread_in_sys_ioctl" = "yes"; then + +$as_echo "#define HAVE_FIONREAD_IN_SYS_IOCTL 1" >>confdefs.h + + + else + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for FIONREAD in sys/filio.h" >&5 +$as_echo_n "checking for FIONREAD in sys/filio.h... " >&6; } + if test "${_cv_gst_fionread_in_sys_filio+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + +int +main () +{ + + int x = FIONREAD; + if ( x ) + return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + _cv_gst_fionread_in_sys_filio="yes" +else + _cv_gst_fionread_in_sys_filio="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $_cv_gst_fionread_in_sys_filio" >&5 +$as_echo "$_cv_gst_fionread_in_sys_filio" >&6; } + + if test "$_cv_gst_fionread_in_sys_filio" = "yes"; then + +$as_echo "#define HAVE_FIONREAD_IN_SYS_FILIO 1" >>confdefs.h + + fi + + fi + + + + + +for ac_func in gmtime_r +do : + ac_fn_c_check_func "$LINENO" "gmtime_r" "ac_cv_func_gmtime_r" +if test "x$ac_cv_func_gmtime_r" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GMTIME_R 1 +_ACEOF + +fi +done + + +for ac_header in sys/utsname.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/utsname.h" "ac_cv_header_sys_utsname_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_utsname_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_UTSNAME_H 1 +_ACEOF + +fi + +done + + + +ac_fn_c_check_func "$LINENO" "socket" "ac_cv_func_socket" +if test "x$ac_cv_func_socket" = x""yes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket in -lsocket" >&5 +$as_echo_n "checking for socket in -lsocket... " >&6; } +if test "${ac_cv_lib_socket_socket+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_socket=yes +else + ac_cv_lib_socket_socket=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_socket" >&5 +$as_echo "$ac_cv_lib_socket_socket" >&6; } +if test "x$ac_cv_lib_socket_socket" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBSOCKET 1 +_ACEOF + + LIBS="-lsocket $LIBS" + +fi + +fi + +ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = x""yes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBNSL 1 +_ACEOF + + LIBS="-lnsl $LIBS" + +fi + +fi + + + + + + GLIB_REQ=2.22 + if test "x$GLIB_REQ" = "x" + then + as_fn_error $? "Please specify a required version for GLib 2.0" "$LINENO" 5 + fi + + + + which="glib-2.0 >= $GLIB_REQ gobject-2.0 gthread-2.0 gmodule-no-export-2.0" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GLIB" >&5 +$as_echo_n "checking for GLIB... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GLIB_CFLAGS"; then + pkg_cv_GLIB_CFLAGS="$GLIB_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GLIB_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GLIB_LIBS"; then + pkg_cv_GLIB_LIBS="$GLIB_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GLIB_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GLIB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + GLIB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GLIB_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GLIB="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$GLIB_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $GLIB_PKG_ERRORS" >&5 +$as_echo "$as_me: $GLIB_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GLIB="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$GLIB_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $GLIB_PKG_ERRORS" >&5 +$as_echo "$as_me: $GLIB_PKG_ERRORS" >&6;} + fi + +else + GLIB_CFLAGS=$pkg_cv_GLIB_CFLAGS + GLIB_LIBS=$pkg_cv_GLIB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GLIB="yes" + +fi + + + + if test "x$HAVE_GLIB" = "xno"; then + as_fn_error $? "This package requires GLib >= $GLIB_REQ to compile." "$LINENO" 5 + fi + + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_THREADS_MANDATORY" + + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_DEPRECATED" + fi + + # Check whether --enable-gobject-cast-checks was given. +if test "${enable_gobject_cast_checks+set}" = set; then : + enableval=$enable_gobject_cast_checks; +else + enable_gobject_cast_checks=auto +fi + + + if test "x$enable_gobject_cast_checks" = "xauto"; then + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + enable_gobject_cast_checks=yes + else + enable_gobject_cast_checks=no + fi + fi + + if test "x$enable_gobject_cast_checks" = "xno"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_CAST_CHECKS" + fi + + # Check whether --enable-glib-asserts was given. +if test "${enable_glib_asserts+set}" = set; then : + enableval=$enable_glib_asserts; +else + enable_glib_assertions=auto +fi + + + if test "x$enable_glib_assertions" = "xauto"; then + if test "x$PACKAGE_VERSION_NANO" = "x1"; then + enable_glib_assertions=yes + else + enable_glib_assertions=no + fi + fi + + if test "x$enable_glib_assertions" = "xno"; then + GLIB_EXTRA_CFLAGS="$GLIB_EXTRA_CFLAGS -DG_DISABLE_ASSERT" + fi + + + GIVEN_CFLAGS=$GLIB_CFLAGS + INCLUDE_DIRS=`echo | cpp -v 2>&1` + + INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` + for dir in $INCLUDE_DIRS; do + GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` + done + GLIB_CFLAGS=$GIVEN_CFLAGS + + + + + + module=gstreamer-$GST_MAJORMINOR + minver=$GST_REQ + name="GStreamer" + required=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST" >&5 +$as_echo_n "checking for GST... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_CFLAGS"; then + pkg_cv_GST_CFLAGS="$GST_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_LIBS"; then + pkg_cv_GST_LIBS="$GST_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_CFLAGS=$pkg_cv_GST_CFLAGS + GST_LIBS=$pkg_cv_GST_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST="yes" + +fi + + + if test -z $GST_TOOLS_DIR; then + GST_TOOLS_DIR=`$PKG_CONFIG --variable=toolsdir gstreamer-$GST_MAJORMINOR` + if test -z $GST_TOOLS_DIR; then + as_fn_error $? "no tools dir set in GStreamer pkg-config file, core upgrade needed." "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer tools in $GST_TOOLS_DIR" >&5 +$as_echo "$as_me: using GStreamer tools in $GST_TOOLS_DIR" >&6;} + + + if test -z $GST_PLUGINS_DIR; then + GST_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-$GST_MAJORMINOR` + if test -z $GST_PLUGINS_DIR; then + as_fn_error $? "no pluginsdir set in GStreamer pkg-config file, core upgrade needed." "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer plug-ins in $GST_PLUGINS_DIR" >&5 +$as_echo "$as_me: using GStreamer plug-ins in $GST_PLUGINS_DIR" >&6;} + + + + + module=gstreamer-base-$GST_MAJORMINOR + minver=$GST_REQ + name="GStreamer Base Libraries" + required=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_BASE" >&5 +$as_echo_n "checking for GST_BASE... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_BASE_CFLAGS"; then + pkg_cv_GST_BASE_CFLAGS="$GST_BASE_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_BASE_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_BASE_LIBS"; then + pkg_cv_GST_BASE_LIBS="$GST_BASE_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_BASE_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_BASE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_BASE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_BASE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_BASE_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_BASE_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_BASE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_BASE_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_BASE_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_BASE_CFLAGS=$pkg_cv_GST_BASE_CFLAGS + GST_BASE_LIBS=$pkg_cv_GST_BASE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_BASE="yes" + +fi + + + + + + module=gstreamer-dataprotocol-$GST_MAJORMINOR + minver=$GST_REQ + name="GStreamer Data Protocol Library" + required=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_GDP" >&5 +$as_echo_n "checking for GST_GDP... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_GDP_CFLAGS"; then + pkg_cv_GST_GDP_CFLAGS="$GST_GDP_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_GDP_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_GDP_LIBS"; then + pkg_cv_GST_GDP_LIBS="$GST_GDP_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_GDP_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_GDP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_GDP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_GDP_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_GDP="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_GDP_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_GDP_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_GDP="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_GDP_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_GDP_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_GDP_CFLAGS=$pkg_cv_GST_GDP_CFLAGS + GST_GDP_LIBS=$pkg_cv_GST_GDP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_GDP="yes" + +fi + + + + + + module=gstreamer-check-$GST_MAJORMINOR + minver=$GST_REQ + name="GStreamer Check unittest Library" + required=no + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_CHECK" >&5 +$as_echo_n "checking for GST_CHECK... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_CHECK_CFLAGS"; then + pkg_cv_GST_CHECK_CFLAGS="$GST_CHECK_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_CHECK_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_CHECK_LIBS"; then + pkg_cv_GST_CHECK_LIBS="$GST_CHECK_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_CHECK_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_CHECK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_CHECK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_CHECK_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_CHECK="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_CHECK_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_CHECK_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_CHECK="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_CHECK_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_CHECK_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_CHECK_CFLAGS=$pkg_cv_GST_CHECK_CFLAGS + GST_CHECK_LIBS=$pkg_cv_GST_CHECK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_CHECK="yes" + +fi + + + + + + module=gstreamer-controller-$GST_MAJORMINOR + minver=$GST_REQ + name="GStreamer Controller Library" + required=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_CONTROLLER" >&5 +$as_echo_n "checking for GST_CONTROLLER... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_CONTROLLER_CFLAGS"; then + pkg_cv_GST_CONTROLLER_CFLAGS="$GST_CONTROLLER_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_CONTROLLER_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_CONTROLLER_LIBS"; then + pkg_cv_GST_CONTROLLER_LIBS="$GST_CONTROLLER_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_CONTROLLER_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_CONTROLLER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_CONTROLLER_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_CONTROLLER="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_CONTROLLER_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_CONTROLLER_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_CONTROLLER="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_CONTROLLER_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_CONTROLLER_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_CONTROLLER_CFLAGS=$pkg_cv_GST_CONTROLLER_CFLAGS + GST_CONTROLLER_LIBS=$pkg_cv_GST_CONTROLLER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_CONTROLLER="yes" + +fi + + + + if test "x$HAVE_GST_CHECK" = "xyes"; then + HAVE_GST_CHECK_TRUE= + HAVE_GST_CHECK_FALSE='#' +else + HAVE_GST_CHECK_TRUE='#' + HAVE_GST_CHECK_FALSE= +fi + + + + + module=gstreamer-plugins-base-$GST_MAJORMINOR + minver=$GSTPB_REQ + name="GStreamer Base Plugins" + required=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_PLUGINS_BASE" >&5 +$as_echo_n "checking for GST_PLUGINS_BASE... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_BASE_CFLAGS"; then + pkg_cv_GST_PLUGINS_BASE_CFLAGS="$GST_PLUGINS_BASE_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_BASE_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_BASE_LIBS"; then + pkg_cv_GST_PLUGINS_BASE_LIBS="$GST_PLUGINS_BASE_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_BASE_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_PLUGINS_BASE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_PLUGINS_BASE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_PLUGINS_BASE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_PLUGINS_BASE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_BASE_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_BASE_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_PLUGINS_BASE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_BASE_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_BASE_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_PLUGINS_BASE_CFLAGS=$pkg_cv_GST_PLUGINS_BASE_CFLAGS + GST_PLUGINS_BASE_LIBS=$pkg_cv_GST_PLUGINS_BASE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_PLUGINS_BASE="yes" + +fi + + + + if test "x$HAVE_GST_PLUGINS_BASE" = "xyes"; then + if test -z $GSTPB_PLUGINS_DIR; then + GSTPB_PLUGINS_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-base-$GST_MAJORMINOR` + if test -z $GSTPB_PLUGINS_DIR; then + as_fn_error $? "no pluginsdir set in GStreamer Base Plugins pkg-config file" "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR" >&5 +$as_echo "$as_me: using GStreamer Base Plugins in $GSTPB_PLUGINS_DIR" >&6;} + GST_PLUGINS_BASE_DIR="$GSTPB_PLUGINS_DIR/gst:$GSTPB_PLUGINS_DIR/sys:$GSTPB_PLUGINS_DIR/ext" + + + fi + + + + + module=gstreamer-plugins-good-$GST_MAJORMINOR + minver=0.10.25 + name="GStreamer Good Plugins" + required=no + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_PLUGINS_GOOD" >&5 +$as_echo_n "checking for GST_PLUGINS_GOOD... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_GOOD_CFLAGS"; then + pkg_cv_GST_PLUGINS_GOOD_CFLAGS="$GST_PLUGINS_GOOD_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_GOOD_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_GOOD_LIBS"; then + pkg_cv_GST_PLUGINS_GOOD_LIBS="$GST_PLUGINS_GOOD_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_GOOD_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_PLUGINS_GOOD_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_PLUGINS_GOOD_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_PLUGINS_GOOD_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_PLUGINS_GOOD="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_GOOD_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_GOOD_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_PLUGINS_GOOD="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_GOOD_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_GOOD_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_PLUGINS_GOOD_CFLAGS=$pkg_cv_GST_PLUGINS_GOOD_CFLAGS + GST_PLUGINS_GOOD_LIBS=$pkg_cv_GST_PLUGINS_GOOD_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_PLUGINS_GOOD="yes" + +fi + + + + if test "x$HAVE_GST_PLUGINS_GOOD" = "xyes"; then + if test -z $GST_PLUGINS_GOOD_DIR; then + GST_PLUGINS_GOOD_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-good-$GST_MAJORMINOR` + if test -z $GST_PLUGINS_GOOD_DIR; then + as_fn_error $? "no pluginsdir set in GStreamer Good Plugins pkg-config file" "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer Good Plugins in $GST_PLUGINS_GOOD_DIR" >&5 +$as_echo "$as_me: using GStreamer Good Plugins in $GST_PLUGINS_GOOD_DIR" >&6;} + GST_PLUGINS_GOOD_DIR="$GST_PLUGINS_GOOD_DIR/gst:$GST_PLUGINS_GOOD_DIR/sys:$GST_PLUGINS_GOOD_DIR/ext" + + fi + + + + module=gstreamer-plugins-ugly-$GST_MAJORMINOR + minver=0.10.16 + name="GStreamer Ugly Plugins" + required=no + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_PLUGINS_UGLY" >&5 +$as_echo_n "checking for GST_PLUGINS_UGLY... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_UGLY_CFLAGS"; then + pkg_cv_GST_PLUGINS_UGLY_CFLAGS="$GST_PLUGINS_UGLY_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_UGLY_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_UGLY_LIBS"; then + pkg_cv_GST_PLUGINS_UGLY_LIBS="$GST_PLUGINS_UGLY_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_UGLY_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_PLUGINS_UGLY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_PLUGINS_UGLY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_PLUGINS_UGLY_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_PLUGINS_UGLY="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_UGLY_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_UGLY_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_PLUGINS_UGLY="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_UGLY_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_UGLY_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_PLUGINS_UGLY_CFLAGS=$pkg_cv_GST_PLUGINS_UGLY_CFLAGS + GST_PLUGINS_UGLY_LIBS=$pkg_cv_GST_PLUGINS_UGLY_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_PLUGINS_UGLY="yes" + +fi + + + + if test "x$HAVE_GST_PLUGINS_UGLY" = "xyes"; then + if test -z $GST_PLUGINS_UGLY_DIR; then + GST_PLUGINS_UGLY_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ugly-$GST_MAJORMINOR` + if test -z $GST_PLUGINS_UGLY_DIR; then + as_fn_error $? "no pluginsdir set in GStreamer Ugly Plugins pkg-config file" "$LINENO" 5 + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer Ugly Plugins in $GST_PLUGINS_UGLY_DIR" >&5 +$as_echo "$as_me: using GStreamer Ugly Plugins in $GST_PLUGINS_UGLY_DIR" >&6;} + GST_PLUGINS_UGLY_DIR="$GST_PLUGINS_UGLY_DIR/gst:$GST_PLUGINS_UGLY_DIR/sys:$GST_PLUGINS_UGLY_DIR/ext" + + fi + + + + module=gstreamer-plugins-ffmpeg-$GST_MAJORMINOR + minver=0.10.11 + name="GStreamer FFmpeg Plugins" + required=no + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GST_PLUGINS_FFMPEG" >&5 +$as_echo_n "checking for GST_PLUGINS_FFMPEG... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_FFMPEG_CFLAGS"; then + pkg_cv_GST_PLUGINS_FFMPEG_CFLAGS="$GST_PLUGINS_FFMPEG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_FFMPEG_CFLAGS=`$PKG_CONFIG --cflags "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GST_PLUGINS_FFMPEG_LIBS"; then + pkg_cv_GST_PLUGINS_FFMPEG_LIBS="$GST_PLUGINS_FFMPEG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$module >= \$minver\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$module >= $minver") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GST_PLUGINS_FFMPEG_LIBS=`$PKG_CONFIG --libs "$module >= $minver" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GST_PLUGINS_FFMPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$module >= $minver"` + else + GST_PLUGINS_FFMPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$module >= $minver"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GST_PLUGINS_FFMPEG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GST_PLUGINS_FFMPEG="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_FFMPEG_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_FFMPEG_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GST_PLUGINS_FFMPEG="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: $GST_PLUGINS_FFMPEG_PKG_ERRORS" >&5 +$as_echo "$as_me: $GST_PLUGINS_FFMPEG_PKG_ERRORS" >&6;} + if test "x$required" = "xyes"; then + as_fn_error $? "no $module >= $minver ($name) found" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: no $module >= $minver ($name) found" >&5 +$as_echo "$as_me: no $module >= $minver ($name) found" >&6;} + fi + +else + GST_PLUGINS_FFMPEG_CFLAGS=$pkg_cv_GST_PLUGINS_FFMPEG_CFLAGS + GST_PLUGINS_FFMPEG_LIBS=$pkg_cv_GST_PLUGINS_FFMPEG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GST_PLUGINS_FFMPEG="yes" + +fi + + + + if test "x$HAVE_GST_PLUGINS_FFMPEG" = "xyes"; then + if test -z $GST_PLUGINS_FFMPEG_DIR; then + GST_PLUGINS_FFMPEG_DIR=`$PKG_CONFIG --variable=pluginsdir gstreamer-plugins-ffmpeg-$GST_MAJORMINOR` + if test -z $GST_PLUGINS_FFMPEG_DIR; then + as_fn_error $? "no pluginsdir set in GStreamer FFmpeg Plugins pkg-config file" "$LINENO" 5 + fi + fi + GST_PLUGINS_FFMPEG_DIR="$GST_PLUGINS_FFMPEG_DIR/ext/ffmpeg" + { $as_echo "$as_me:${as_lineno-$LINENO}: using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR" >&5 +$as_echo "$as_me: using GStreamer FFmpeg Plugins in $GST_PLUGINS_FFMPEG_DIR" >&6;} + + fi + + +GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" +GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`" +GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`" + + + + +HAVE_GTK=NO +GTK2_REQ=2.14.0 +GTK3_REQ=2.91.3 +if test "x$BUILD_EXAMPLES" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking which gtk+ version to compile examples against (optional)" >&5 +$as_echo_n "checking which gtk+ version to compile examples against (optional)... " >&6; } + +# Check whether --with-gtk was given. +if test "${with_gtk+set}" = set; then : + withval=$with_gtk; case "$with_gtk" in + 2.0) GTK_REQ=$GTK2_REQ ;; + 3.0) GTK_REQ=$GTK3_REQ ;; + *) as_fn_error $? "invalid gtk+ version specified" "$LINENO" 5 ;; + esac +else + with_gtk=2.0 + GTK_REQ=$GTK2_REQ +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $with_gtk (>= $GTK_REQ)" >&5 +$as_echo "$with_gtk (>= $GTK_REQ)" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GTK" >&5 +$as_echo_n "checking for GTK... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GTK_CFLAGS"; then + pkg_cv_GTK_CFLAGS="$GTK_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_CFLAGS=`$PKG_CONFIG --cflags "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GTK_LIBS"; then + pkg_cv_GTK_LIBS="$GTK_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gtk+-x11-\$with_gtk >= \$GTK_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GTK_LIBS=`$PKG_CONFIG --libs "gtk+-x11-$with_gtk >= $GTK_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GTK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"` + else + GTK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gtk+-x11-$with_gtk >= $GTK_REQ"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GTK_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_GTK=no +elif test $pkg_failed = untried; then + HAVE_GTK=no +else + GTK_CFLAGS=$pkg_cv_GTK_CFLAGS + GTK_LIBS=$pkg_cv_GTK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_GTK=yes +fi + + +fi + if test "x$HAVE_GTK" = "xyes"; then + HAVE_GTK_TRUE= + HAVE_GTK_FALSE='#' +else + HAVE_GTK_TRUE='#' + HAVE_GTK_FALSE= +fi + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMODULE_EXPORT" >&5 +$as_echo_n "checking for GMODULE_EXPORT... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GMODULE_EXPORT_CFLAGS"; then + pkg_cv_GMODULE_EXPORT_CFLAGS="$GMODULE_EXPORT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GMODULE_EXPORT_CFLAGS=`$PKG_CONFIG --cflags "gmodule-export-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GMODULE_EXPORT_LIBS"; then + pkg_cv_GMODULE_EXPORT_LIBS="$GMODULE_EXPORT_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmodule-export-2.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gmodule-export-2.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GMODULE_EXPORT_LIBS=`$PKG_CONFIG --libs "gmodule-export-2.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GMODULE_EXPORT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gmodule-export-2.0"` + else + GMODULE_EXPORT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmodule-export-2.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GMODULE_EXPORT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_GMODULE_EXPORT=no +elif test $pkg_failed = untried; then + HAVE_GMODULE_EXPORT=no +else + GMODULE_EXPORT_CFLAGS=$pkg_cv_GMODULE_EXPORT_CFLAGS + GMODULE_EXPORT_LIBS=$pkg_cv_GMODULE_EXPORT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_GMODULE_EXPORT=yes +fi + +HAVE_X11=NO + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X11" >&5 +$as_echo_n "checking for X11... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$X11_CFLAGS"; then + pkg_cv_X11_CFLAGS="$X11_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$X11_LIBS"; then + pkg_cv_X11_LIBS="$X11_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"x11\""; } >&5 + ($PKG_CONFIG --exists --print-errors "x11") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11"` + else + X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11"` + fi + # Put the nasty error message in config.log where it belongs + echo "$X11_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_X11=no +elif test $pkg_failed = untried; then + HAVE_X11=no +else + X11_CFLAGS=$pkg_cv_X11_CFLAGS + X11_LIBS=$pkg_cv_X11_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_X11=yes +fi + + + + if test "x$HAVE_X11" = "xyes"; then + HAVE_X11_TRUE= + HAVE_X11_FALSE='#' +else + HAVE_X11_TRUE='#' + HAVE_X11_FALSE= +fi + +if test "x$HAVE_X11" = "xyes"; then + +$as_echo "#define HAVE_X11 1" >>confdefs.h + +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for EXIF" >&5 +$as_echo_n "checking for EXIF... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$EXIF_CFLAGS"; then + pkg_cv_EXIF_CFLAGS="$EXIF_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexif >= 0.6.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libexif >= 0.6.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_EXIF_CFLAGS=`$PKG_CONFIG --cflags "libexif >= 0.6.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$EXIF_LIBS"; then + pkg_cv_EXIF_LIBS="$EXIF_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libexif >= 0.6.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libexif >= 0.6.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_EXIF_LIBS=`$PKG_CONFIG --libs "libexif >= 0.6.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + EXIF_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libexif >= 0.6.16"` + else + EXIF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libexif >= 0.6.16"` + fi + # Put the nasty error message in config.log where it belongs + echo "$EXIF_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_EXIF="no" +elif test $pkg_failed = untried; then + HAVE_EXIF="no" +else + EXIF_CFLAGS=$pkg_cv_EXIF_CFLAGS + EXIF_LIBS=$pkg_cv_EXIF_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_EXIF="yes" +fi + + + if test "x$HAVE_EXIF" = "xyes"; then + USE_EXIF_TRUE= + USE_EXIF_FALSE='#' +else + USE_EXIF_TRUE='#' + USE_EXIF_FALSE= +fi + + + + ORC_REQ=0.4.11 + + # Check whether --enable-orc was given. +if test "${enable_orc+set}" = set; then : + enableval=$enable_orc; case "${enableval}" in + auto) enable_orc=auto ;; + yes) enable_orc=yes ;; + no) enable_orc=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-orc" "$LINENO" 5 ;; + esac + +else + enable_orc=auto +fi + + if test "x$enable_orc" != "xno" ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ORC" >&5 +$as_echo_n "checking for ORC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$ORC_CFLAGS"; then + pkg_cv_ORC_CFLAGS="$ORC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"orc-0.4 >= \$ORC_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "orc-0.4 >= $ORC_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ORC_CFLAGS=`$PKG_CONFIG --cflags "orc-0.4 >= $ORC_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$ORC_LIBS"; then + pkg_cv_ORC_LIBS="$ORC_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"orc-0.4 >= \$ORC_REQ\""; } >&5 + ($PKG_CONFIG --exists --print-errors "orc-0.4 >= $ORC_REQ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ORC_LIBS=`$PKG_CONFIG --libs "orc-0.4 >= $ORC_REQ" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ORC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "orc-0.4 >= $ORC_REQ"` + else + ORC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "orc-0.4 >= $ORC_REQ"` + fi + # Put the nasty error message in config.log where it belongs + echo "$ORC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + if test "x$enable_orc" = "xyes" ; then + as_fn_error $? "--enable-orc specified, but Orc >= $ORC_REQ not found" "$LINENO" 5 + fi + +$as_echo "#define DISABLE_ORC 1" >>confdefs.h + + HAVE_ORC=no + HAVE_ORCC=no + +elif test $pkg_failed = untried; then + + if test "x$enable_orc" = "xyes" ; then + as_fn_error $? "--enable-orc specified, but Orc >= $ORC_REQ not found" "$LINENO" 5 + fi + +$as_echo "#define DISABLE_ORC 1" >>confdefs.h + + HAVE_ORC=no + HAVE_ORCC=no + +else + ORC_CFLAGS=$pkg_cv_ORC_CFLAGS + ORC_LIBS=$pkg_cv_ORC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_ORC 1" >>confdefs.h + + if test "x$ORCC" = "x" ; then + ORCC=`$PKG_CONFIG --variable=orcc orc-0.4` + fi + + ORCC_FLAGS="--compat $ORC_REQ" + + HAVE_ORC=yes + HAVE_ORCC=yes + if test "x$cross_compiling" = "xyes" ; then + HAVE_ORCC=no + fi + +fi + else + +$as_echo "#define DISABLE_ORC 1" >>confdefs.h + + HAVE_ORC=no + HAVE_ORCC=no + fi + if test "x$HAVE_ORC" = "xyes"; then + HAVE_ORC_TRUE= + HAVE_ORC_FALSE='#' +else + HAVE_ORC_TRUE='#' + HAVE_ORC_FALSE= +fi + + if test "x$HAVE_ORCC" = "xyes"; then + HAVE_ORCC_TRUE= + HAVE_ORCC_FALSE='#' +else + HAVE_ORCC_TRUE='#' + HAVE_ORCC_FALSE= +fi + + + + +GST_LICENSE="LGPL" + +cat >>confdefs.h <<_ACEOF +#define GST_LICENSE "$GST_LICENSE" +_ACEOF + + + + + EXP_VAR=LIBDIR + FROM_VAR=$libdir + + prefix_save=$prefix + exec_prefix_save=$exec_prefix + + if test "x$prefix" = "xNONE"; then + prefix="$ac_default_prefix" + fi + if test "x$exec_prefix" = "xNONE"; then + exec_prefix=$prefix + fi + + full_var="$FROM_VAR" + while true; do + new_full_var="`eval echo $full_var`" + if test "x$new_full_var" = "x$full_var"; then break; fi + full_var=$new_full_var + done + + full_var=$new_full_var + LIBDIR="$full_var" + + + prefix=$prefix_save + exec_prefix=$exec_prefix_save + + +cat >>confdefs.h <<_ACEOF +#define LIBDIR "$LIBDIR" +_ACEOF + + + + + EXP_VAR=PLUGINDIR + FROM_VAR=${libdir}/gstreamer-$GST_MAJORMINOR + + prefix_save=$prefix + exec_prefix_save=$exec_prefix + + if test "x$prefix" = "xNONE"; then + prefix="$ac_default_prefix" + fi + if test "x$exec_prefix" = "xNONE"; then + exec_prefix=$prefix + fi + + full_var="$FROM_VAR" + while true; do + new_full_var="`eval echo $full_var`" + if test "x$new_full_var" = "x$full_var"; then break; fi + full_var=$new_full_var + done + + full_var=$new_full_var + PLUGINDIR="$full_var" + + + prefix=$prefix_save + exec_prefix=$exec_prefix_save + + +cat >>confdefs.h <<_ACEOF +#define PLUGINDIR "$PLUGINDIR" +_ACEOF + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $PLUGINDIR as the plugin install location" >&5 +$as_echo "$as_me: Using $PLUGINDIR as the plugin install location" >&6;} + + plugindir="\$(libdir)/gstreamer-$GST_MAJORMINOR" + + + + + if test "x$PACKAGE_VERSION_NANO" = "x0"; then + + if test "xyes" = "xno" -o "xyes" = "x"; then + GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"` + elif test "xyes" = "xyes"; then + if ( echo yes | grep -e '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=yes + else + YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file" $PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO "${srcdir}/gst-plugins-bad.doap" `; + if test "x$YYYY_MM_DD" != "x"; then + GST_PACKAGE_RELEASE_DATETIME=$YYYY_MM_DD + else + as_fn_error $? "SET_PACKAGE_RELEASE_DATETIME: could not extract + release date for release version $PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO from \"${srcdir}/gst-plugins-bad.doap\" " "$LINENO" 5 + GST_PACKAGE_RELEASE_DATETIME="" + fi + fi + elif ( echo yes | grep -e '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&5 +$as_echo "$as_me: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&2;} + GST_PACKAGE_RELEASE_DATETIME="" + fi + + if test "x$GST_PACKAGE_RELEASE_DATETIME" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Invalid package release date time: $GST_PACKAGE_RELEASE_DATETIME" >&5 +$as_echo "$as_me: WARNING: Invalid package release date time: $GST_PACKAGE_RELEASE_DATETIME" >&2;} + else + { $as_echo "$as_me:${as_lineno-$LINENO}: Setting GST_PACKAGE_RELEASE_DATETIME to $GST_PACKAGE_RELEASE_DATETIME" >&5 +$as_echo "$as_me: Setting GST_PACKAGE_RELEASE_DATETIME to $GST_PACKAGE_RELEASE_DATETIME" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define GST_PACKAGE_RELEASE_DATETIME "$GST_PACKAGE_RELEASE_DATETIME" +_ACEOF + + fi + + else + + if test "xno" = "xno" -o "xno" = "x"; then + GST_PACKAGE_RELEASE_DATETIME=`date -u "+%Y-%m-%dT%H:%MZ"` + elif test "xno" = "xyes"; then + if ( echo no | grep -e '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=no + else + YYYY_MM_DD=`sh "${srcdir}/common/extract-release-date-from-doap-file" `; + if test "x$YYYY_MM_DD" != "x"; then + GST_PACKAGE_RELEASE_DATETIME=$YYYY_MM_DD + else + as_fn_error $? "SET_PACKAGE_RELEASE_DATETIME: could not extract + release date for release version from " "$LINENO" 5 + GST_PACKAGE_RELEASE_DATETIME="" + fi + fi + elif ( echo no | grep -e '^201-90-9-0-10-9-0-30-9' >/dev/null ) ; then + GST_PACKAGE_RELEASE_DATETIME=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&5 +$as_echo "$as_me: WARNING: SET_PACKAGE_RELEASE_DATETIME: invalid first argument" >&2;} + GST_PACKAGE_RELEASE_DATETIME="" + fi + + if test "x$GST_PACKAGE_RELEASE_DATETIME" = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Invalid package release date time: $GST_PACKAGE_RELEASE_DATETIME" >&5 +$as_echo "$as_me: WARNING: Invalid package release date time: $GST_PACKAGE_RELEASE_DATETIME" >&2;} + else + { $as_echo "$as_me:${as_lineno-$LINENO}: Setting GST_PACKAGE_RELEASE_DATETIME to $GST_PACKAGE_RELEASE_DATETIME" >&5 +$as_echo "$as_me: Setting GST_PACKAGE_RELEASE_DATETIME to $GST_PACKAGE_RELEASE_DATETIME" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define GST_PACKAGE_RELEASE_DATETIME "$GST_PACKAGE_RELEASE_DATETIME" +_ACEOF + + fi + + fi + + + + + + + WARNING_CFLAGS="" + ERROR_CFLAGS="" + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wall" >&5 +$as_echo_n "checking to see if compiler understands -Wall... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wall" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CFLAGS="$WARNING_CFLAGS -Wall" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wdeclaration-after-statement" >&5 +$as_echo_n "checking to see if compiler understands -Wdeclaration-after-statement... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wdeclaration-after-statement" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CFLAGS="$WARNING_CFLAGS -Wdeclaration-after-statement" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wvla" >&5 +$as_echo_n "checking to see if compiler understands -Wvla... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wvla" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CFLAGS="$WARNING_CFLAGS -Wvla" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Wpointer-arith" >&5 +$as_echo_n "checking to see if compiler understands -Wpointer-arith... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Wpointer-arith" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CFLAGS="$WARNING_CFLAGS -Wpointer-arith" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + if test "x$GST_GIT" != "xno" + then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -Werror" >&5 +$as_echo_n "checking to see if compiler understands -Werror... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -Werror" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -Werror" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + if test "x$ERROR_CFLAGS" = "x" + then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -errwarn=%all" >&5 +$as_echo_n "checking to see if compiler understands -errwarn=%all... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + + ERROR_CFLAGS="-errwarn=%all" + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' \ + 'no%E_LOOP_NOT_ENTERED_AT_TOP' + do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -errwarn=%all,$f" >&5 +$as_echo_n "checking to see if compiler understands -errwarn=%all,$f... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -errwarn=%all,$f" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + + ERROR_CFLAGS="$ERROR_CFLAGS,$f" + + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + done + + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 < 2.19.8\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 < 2.19.8") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands -fno-strict-aliasing" >&5 +$as_echo_n "checking to see if compiler understands -fno-strict-aliasing... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-strict-aliasing" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CFLAGS="$ERROR_CFLAGS -fno-strict-aliasing" + true + else + + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + +fi + fi + fi + + if test "x + -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls + -Wwrite-strings -Wformat-security -Wold-style-definition + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar + -Wnested-externs" != "x" + then + UNSUPPORTED="" + list=" + -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls + -Wwrite-strings -Wformat-security -Wold-style-definition + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar + -Wnested-externs" + for each in $list + do + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if compiler understands $each" >&5 +$as_echo_n "checking to see if compiler understands $each... " >&6; } + + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $each" + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS="$save_CFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CFLAGS="$WARNING_CFLAGS $each" + true + else + UNSUPPORTED="$UNSUPPORTED $each" + true + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + done + if test "X$UNSUPPORTED" != X ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: unsupported compiler flags: $UNSUPPORTED" >&5 +$as_echo "$as_me: unsupported compiler flags: $UNSUPPORTED" >&6;} + fi + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: set WARNING_CFLAGS to $WARNING_CFLAGS" >&5 +$as_echo "$as_me: set WARNING_CFLAGS to $WARNING_CFLAGS" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: set ERROR_CFLAGS to $ERROR_CFLAGS" >&5 +$as_echo "$as_me: set ERROR_CFLAGS to $ERROR_CFLAGS" >&6;} + + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands " >&5 +$as_echo_n "checking to see if c++ compiler understands ... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS " + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + + + + ERROR_CXXFLAGS="" + WARNING_CXXFLAGS="" + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -Wall" >&5 +$as_echo_n "checking to see if c++ compiler understands -Wall... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Wall" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CXXFLAGS="$WARNING_CXXFLAGS -Wall" + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + if test "x$GST_GIT" != "xno" + then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -Werror" >&5 +$as_echo_n "checking to see if c++ compiler understands -Werror... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Werror" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Werror" + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + if test "x$ERROR_CXXFLAGS" != "x" + then + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -Wno-non-virtual-dtor" >&5 +$as_echo_n "checking to see if c++ compiler understands -Wno-non-virtual-dtor... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Wno-non-virtual-dtor" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -Wno-non-virtual-dtor" + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"glib-2.0 < 2.19.8\""; } >&5 + ($PKG_CONFIG --exists --print-errors "glib-2.0 < 2.19.8") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -fno-strict-aliasing" >&5 +$as_echo_n "checking to see if c++ compiler understands -fno-strict-aliasing... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -fno-strict-aliasing" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -fno-strict-aliasing" + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + +fi + else + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -errwarn=%all" >&5 +$as_echo_n "checking to see if c++ compiler understands -errwarn=%all... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -errwarn=%all" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS -errwarn=%all" + true + else + + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + if test "x$ERROR_CXXFLAGS" != "x"; then + for f in 'no%E_EMPTY_DECLARATION' \ + 'no%E_STATEMENT_NOT_REACHED' \ + 'no%E_ARGUEMENT_MISMATCH' \ + 'no%E_MACRO_REDEFINED' \ + 'no%E_LOOP_NOT_ENTERED_AT_TOP' + do + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands -errwarn=%all,$f" >&5 +$as_echo_n "checking to see if c++ compiler understands -errwarn=%all,$f... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -errwarn=%all,$f" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + ERROR_CXXFLAGS="$ERROR_CXXFLAGS + true + else + $f" + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + done + fi + fi + fi + + if test "x + -Wmissing-declarations -Wredundant-decls + -Wwrite-strings -Wformat-nonliteral -Wformat-security + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar " != "x" + then + UNSUPPORTED="" + list=" + -Wmissing-declarations -Wredundant-decls + -Wwrite-strings -Wformat-nonliteral -Wformat-security + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar " + for each in $list + do + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking to see if c++ compiler understands $each" >&5 +$as_echo_n "checking to see if c++ compiler understands $each... " >&6; } + + save_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $each" + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + flag_ok=yes +else + flag_ok=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CPPFLAGS="$save_CPPFLAGS" + + if test "X$flag_ok" = Xyes ; then + WARNING_CXXFLAGS="$WARNING_CXXFLAGS $each" + true + else + UNSUPPORTED="$UNSUPPORTED $each" + true + fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag_ok" >&5 +$as_echo "$flag_ok" >&6; } + + done + if test "X$UNSUPPORTED" != X ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: unsupported compiler flags: $UNSUPPORTED" >&5 +$as_echo "$as_me: unsupported compiler flags: $UNSUPPORTED" >&6;} + fi + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: set WARNING_CXXFLAGS to $WARNING_CXXFLAGS" >&5 +$as_echo "$as_me: set WARNING_CXXFLAGS to $WARNING_CXXFLAGS" >&6;} + { $as_echo "$as_me:${as_lineno-$LINENO}: set ERROR_CXXFLAGS to $ERROR_CXXFLAGS" >&5 +$as_echo "$as_me: set ERROR_CXXFLAGS to $ERROR_CXXFLAGS" >&6;} + + + + if test "x$GST_GIT" = "xyes"; then + GST_LEVEL_DEFAULT=GST_LEVEL_ERROR + else + GST_LEVEL_DEFAULT=GST_LEVEL_NONE + fi + +cat >>confdefs.h <<_ACEOF +#define GST_LEVEL_DEFAULT $GST_LEVEL_DEFAULT +_ACEOF + + + + + + DEFAULT_AUDIOSINK="autoaudiosink" + DEFAULT_VIDEOSINK="autovideosink" + DEFAULT_AUDIOSRC="alsasrc" + DEFAULT_VIDEOSRC="v4l2src" + DEFAULT_VISUALIZER="goom" + case "$host" in + *-sun-* | *pc-solaris* ) + DEFAULT_AUDIOSRC="sunaudiosrc" + ;; + *-darwin* ) + DEFAULT_AUDIOSRC="osxaudiosrc" + ;; + esac + + +# Check whether --with-default-audiosink was given. +if test "${with_default_audiosink+set}" = set; then : + withval=$with_default_audiosink; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-audiosink" "$LINENO" 5 ;; + *) DEFAULT_AUDIOSINK="${withval}" ;; + esac + +else + + DEFAULT_AUDIOSINK="$DEFAULT_AUDIOSINK" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $DEFAULT_AUDIOSINK as default audio sink" >&5 +$as_echo "$as_me: Using $DEFAULT_AUDIOSINK as default audio sink" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_AUDIOSINK "$DEFAULT_AUDIOSINK" +_ACEOF + + + +# Check whether --with-default-audiosrc was given. +if test "${with_default_audiosrc+set}" = set; then : + withval=$with_default_audiosrc; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-audiosrc" "$LINENO" 5 ;; + *) DEFAULT_AUDIOSRC="${withval}" ;; + esac + +else + + DEFAULT_AUDIOSRC="$DEFAULT_AUDIOSRC" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $DEFAULT_AUDIOSRC as default audio source" >&5 +$as_echo "$as_me: Using $DEFAULT_AUDIOSRC as default audio source" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_AUDIOSRC "$DEFAULT_AUDIOSRC" +_ACEOF + + + +# Check whether --with-default-videosink was given. +if test "${with_default_videosink+set}" = set; then : + withval=$with_default_videosink; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-videosink" "$LINENO" 5 ;; + *) DEFAULT_VIDEOSINK="${withval}" ;; + esac + +else + + DEFAULT_VIDEOSINK="$DEFAULT_VIDEOSINK" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $DEFAULT_VIDEOSINK as default video sink" >&5 +$as_echo "$as_me: Using $DEFAULT_VIDEOSINK as default video sink" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_VIDEOSINK "$DEFAULT_VIDEOSINK" +_ACEOF + + + +# Check whether --with-default-videosrc was given. +if test "${with_default_videosrc+set}" = set; then : + withval=$with_default_videosrc; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-videosrc" "$LINENO" 5 ;; + *) DEFAULT_VIDEOSRC="${withval}" ;; + esac + +else + + DEFAULT_VIDEOSRC="$DEFAULT_VIDEOSRC" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $DEFAULT_VIDEOSRC as default video source" >&5 +$as_echo "$as_me: Using $DEFAULT_VIDEOSRC as default video source" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_VIDEOSRC "$DEFAULT_VIDEOSRC" +_ACEOF + + + +# Check whether --with-default-visualizer was given. +if test "${with_default_visualizer+set}" = set; then : + withval=$with_default_visualizer; + case "${withval}" in + yes) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; + no) as_fn_error $? "bad value ${withval} for --with-default-visualizer" "$LINENO" 5 ;; + *) DEFAULT_VISUALIZER="${withval}" ;; + esac + +else + + DEFAULT_VISUALIZER="$DEFAULT_VISUALIZER" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: Using $DEFAULT_VISUALIZER as default visualizer" >&5 +$as_echo "$as_me: Using $DEFAULT_VISUALIZER as default visualizer" >&6;} + + +cat >>confdefs.h <<_ACEOF +#define DEFAULT_VISUALIZER "$DEFAULT_VISUALIZER" +_ACEOF + + + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL adpcmdec" + + + + # Check whether --enable-adpcmdec was given. +if test "${enable_adpcmdec+set}" = set; then : + enableval=$enable_adpcmdec; + case "${enableval}" in + yes) gst_use_adpcmdec=yes ;; + no) gst_use_adpcmdec=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-adpcmdec" "$LINENO" 5 ;; + esac + +else + gst_use_adpcmdec=yes +fi + + if test x$gst_use_adpcmdec = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin adpcmdec" >&5 +$as_echo "$as_me: disabling dependency-less plugin adpcmdec" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS adpcmdec" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " adpcmdec " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED adpcmdec" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " adpcmdec " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ adpcmdec / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " adpcmdec " > /dev/null; then + USE_PLUGIN_ADPCMDEC_TRUE= + USE_PLUGIN_ADPCMDEC_FALSE='#' +else + USE_PLUGIN_ADPCMDEC_TRUE='#' + USE_PLUGIN_ADPCMDEC_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL adpcmenc" + + + + # Check whether --enable-adpcmenc was given. +if test "${enable_adpcmenc+set}" = set; then : + enableval=$enable_adpcmenc; + case "${enableval}" in + yes) gst_use_adpcmenc=yes ;; + no) gst_use_adpcmenc=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-adpcmenc" "$LINENO" 5 ;; + esac + +else + gst_use_adpcmenc=yes +fi + + if test x$gst_use_adpcmenc = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin adpcmenc" >&5 +$as_echo "$as_me: disabling dependency-less plugin adpcmenc" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS adpcmenc" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " adpcmenc " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED adpcmenc" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " adpcmenc " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ adpcmenc / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " adpcmenc " > /dev/null; then + USE_PLUGIN_ADPCMENC_TRUE= + USE_PLUGIN_ADPCMENC_FALSE='#' +else + USE_PLUGIN_ADPCMENC_TRUE='#' + USE_PLUGIN_ADPCMENC_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL aiff" + + + + # Check whether --enable-aiff was given. +if test "${enable_aiff+set}" = set; then : + enableval=$enable_aiff; + case "${enableval}" in + yes) gst_use_aiff=yes ;; + no) gst_use_aiff=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-aiff" "$LINENO" 5 ;; + esac + +else + gst_use_aiff=yes +fi + + if test x$gst_use_aiff = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin aiff" >&5 +$as_echo "$as_me: disabling dependency-less plugin aiff" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS aiff" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " aiff " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED aiff" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " aiff " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ aiff / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " aiff " > /dev/null; then + USE_PLUGIN_AIFF_TRUE= + USE_PLUGIN_AIFF_FALSE='#' +else + USE_PLUGIN_AIFF_TRUE='#' + USE_PLUGIN_AIFF_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL asfmux" + + + + # Check whether --enable-asfmux was given. +if test "${enable_asfmux+set}" = set; then : + enableval=$enable_asfmux; + case "${enableval}" in + yes) gst_use_asfmux=yes ;; + no) gst_use_asfmux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-asfmux" "$LINENO" 5 ;; + esac + +else + gst_use_asfmux=yes +fi + + if test x$gst_use_asfmux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin asfmux" >&5 +$as_echo "$as_me: disabling dependency-less plugin asfmux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS asfmux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " asfmux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED asfmux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " asfmux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ asfmux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " asfmux " > /dev/null; then + USE_PLUGIN_ASFMUX_TRUE= + USE_PLUGIN_ASFMUX_FALSE='#' +else + USE_PLUGIN_ASFMUX_TRUE='#' + USE_PLUGIN_ASFMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL autoconvert" + + + + # Check whether --enable-autoconvert was given. +if test "${enable_autoconvert+set}" = set; then : + enableval=$enable_autoconvert; + case "${enableval}" in + yes) gst_use_autoconvert=yes ;; + no) gst_use_autoconvert=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-autoconvert" "$LINENO" 5 ;; + esac + +else + gst_use_autoconvert=yes +fi + + if test x$gst_use_autoconvert = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin autoconvert" >&5 +$as_echo "$as_me: disabling dependency-less plugin autoconvert" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS autoconvert" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " autoconvert " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED autoconvert" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " autoconvert " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ autoconvert / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " autoconvert " > /dev/null; then + USE_PLUGIN_AUTOCONVERT_TRUE= + USE_PLUGIN_AUTOCONVERT_FALSE='#' +else + USE_PLUGIN_AUTOCONVERT_TRUE='#' + USE_PLUGIN_AUTOCONVERT_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL bayer" + + + + # Check whether --enable-bayer was given. +if test "${enable_bayer+set}" = set; then : + enableval=$enable_bayer; + case "${enableval}" in + yes) gst_use_bayer=yes ;; + no) gst_use_bayer=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-bayer" "$LINENO" 5 ;; + esac + +else + gst_use_bayer=yes +fi + + if test x$gst_use_bayer = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin bayer" >&5 +$as_echo "$as_me: disabling dependency-less plugin bayer" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS bayer" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " bayer " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED bayer" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " bayer " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ bayer / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " bayer " > /dev/null; then + USE_PLUGIN_BAYER_TRUE= + USE_PLUGIN_BAYER_FALSE='#' +else + USE_PLUGIN_BAYER_TRUE='#' + USE_PLUGIN_BAYER_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL camerabin" + + + + # Check whether --enable-camerabin was given. +if test "${enable_camerabin+set}" = set; then : + enableval=$enable_camerabin; + case "${enableval}" in + yes) gst_use_camerabin=yes ;; + no) gst_use_camerabin=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-camerabin" "$LINENO" 5 ;; + esac + +else + gst_use_camerabin=yes +fi + + if test x$gst_use_camerabin = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin camerabin" >&5 +$as_echo "$as_me: disabling dependency-less plugin camerabin" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS camerabin" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " camerabin " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED camerabin" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " camerabin " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ camerabin / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " camerabin " > /dev/null; then + USE_PLUGIN_CAMERABIN_TRUE= + USE_PLUGIN_CAMERABIN_FALSE='#' +else + USE_PLUGIN_CAMERABIN_TRUE='#' + USE_PLUGIN_CAMERABIN_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL camerabin2" + + + + # Check whether --enable-camerabin2 was given. +if test "${enable_camerabin2+set}" = set; then : + enableval=$enable_camerabin2; + case "${enableval}" in + yes) gst_use_camerabin2=yes ;; + no) gst_use_camerabin2=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-camerabin2" "$LINENO" 5 ;; + esac + +else + gst_use_camerabin2=yes +fi + + if test x$gst_use_camerabin2 = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin camerabin2" >&5 +$as_echo "$as_me: disabling dependency-less plugin camerabin2" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS camerabin2" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " camerabin2 " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED camerabin2" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " camerabin2 " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ camerabin2 / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " camerabin2 " > /dev/null; then + USE_PLUGIN_CAMERABIN2_TRUE= + USE_PLUGIN_CAMERABIN2_FALSE='#' +else + USE_PLUGIN_CAMERABIN2_TRUE='#' + USE_PLUGIN_CAMERABIN2_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL cdxaparse" + + + + # Check whether --enable-cdxaparse was given. +if test "${enable_cdxaparse+set}" = set; then : + enableval=$enable_cdxaparse; + case "${enableval}" in + yes) gst_use_cdxaparse=yes ;; + no) gst_use_cdxaparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-cdxaparse" "$LINENO" 5 ;; + esac + +else + gst_use_cdxaparse=yes +fi + + if test x$gst_use_cdxaparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin cdxaparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin cdxaparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS cdxaparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " cdxaparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED cdxaparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " cdxaparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ cdxaparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " cdxaparse " > /dev/null; then + USE_PLUGIN_CDXAPARSE_TRUE= + USE_PLUGIN_CDXAPARSE_FALSE='#' +else + USE_PLUGIN_CDXAPARSE_TRUE='#' + USE_PLUGIN_CDXAPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL coloreffects" + + + + # Check whether --enable-coloreffects was given. +if test "${enable_coloreffects+set}" = set; then : + enableval=$enable_coloreffects; + case "${enableval}" in + yes) gst_use_coloreffects=yes ;; + no) gst_use_coloreffects=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-coloreffects" "$LINENO" 5 ;; + esac + +else + gst_use_coloreffects=yes +fi + + if test x$gst_use_coloreffects = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin coloreffects" >&5 +$as_echo "$as_me: disabling dependency-less plugin coloreffects" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS coloreffects" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " coloreffects " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED coloreffects" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " coloreffects " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ coloreffects / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " coloreffects " > /dev/null; then + USE_PLUGIN_COLOREFFECTS_TRUE= + USE_PLUGIN_COLOREFFECTS_FALSE='#' +else + USE_PLUGIN_COLOREFFECTS_TRUE='#' + USE_PLUGIN_COLOREFFECTS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL colorspace" + + + + # Check whether --enable-colorspace was given. +if test "${enable_colorspace+set}" = set; then : + enableval=$enable_colorspace; + case "${enableval}" in + yes) gst_use_colorspace=yes ;; + no) gst_use_colorspace=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-colorspace" "$LINENO" 5 ;; + esac + +else + gst_use_colorspace=yes +fi + + if test x$gst_use_colorspace = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin colorspace" >&5 +$as_echo "$as_me: disabling dependency-less plugin colorspace" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS colorspace" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " colorspace " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED colorspace" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " colorspace " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ colorspace / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " colorspace " > /dev/null; then + USE_PLUGIN_COLORSPACE_TRUE= + USE_PLUGIN_COLORSPACE_FALSE='#' +else + USE_PLUGIN_COLORSPACE_TRUE='#' + USE_PLUGIN_COLORSPACE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dataurisrc" + + + + # Check whether --enable-dataurisrc was given. +if test "${enable_dataurisrc+set}" = set; then : + enableval=$enable_dataurisrc; + case "${enableval}" in + yes) gst_use_dataurisrc=yes ;; + no) gst_use_dataurisrc=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dataurisrc" "$LINENO" 5 ;; + esac + +else + gst_use_dataurisrc=yes +fi + + if test x$gst_use_dataurisrc = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dataurisrc" >&5 +$as_echo "$as_me: disabling dependency-less plugin dataurisrc" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dataurisrc" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dataurisrc " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dataurisrc" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dataurisrc " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dataurisrc / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dataurisrc " > /dev/null; then + USE_PLUGIN_DATAURISRC_TRUE= + USE_PLUGIN_DATAURISRC_FALSE='#' +else + USE_PLUGIN_DATAURISRC_TRUE='#' + USE_PLUGIN_DATAURISRC_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dccp" + + + + # Check whether --enable-dccp was given. +if test "${enable_dccp+set}" = set; then : + enableval=$enable_dccp; + case "${enableval}" in + yes) gst_use_dccp=yes ;; + no) gst_use_dccp=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dccp" "$LINENO" 5 ;; + esac + +else + gst_use_dccp=yes +fi + + if test x$gst_use_dccp = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dccp" >&5 +$as_echo "$as_me: disabling dependency-less plugin dccp" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dccp" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dccp " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dccp" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dccp " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dccp / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dccp " > /dev/null; then + USE_PLUGIN_DCCP_TRUE= + USE_PLUGIN_DCCP_FALSE='#' +else + USE_PLUGIN_DCCP_TRUE='#' + USE_PLUGIN_DCCP_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL debugutils" + + + + # Check whether --enable-debugutils was given. +if test "${enable_debugutils+set}" = set; then : + enableval=$enable_debugutils; + case "${enableval}" in + yes) gst_use_debugutils=yes ;; + no) gst_use_debugutils=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-debugutils" "$LINENO" 5 ;; + esac + +else + gst_use_debugutils=yes +fi + + if test x$gst_use_debugutils = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin debugutils" >&5 +$as_echo "$as_me: disabling dependency-less plugin debugutils" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS debugutils" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " debugutils " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED debugutils" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " debugutils " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ debugutils / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " debugutils " > /dev/null; then + USE_PLUGIN_DEBUGUTILS_TRUE= + USE_PLUGIN_DEBUGUTILS_FALSE='#' +else + USE_PLUGIN_DEBUGUTILS_TRUE='#' + USE_PLUGIN_DEBUGUTILS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dtmf" + + + + # Check whether --enable-dtmf was given. +if test "${enable_dtmf+set}" = set; then : + enableval=$enable_dtmf; + case "${enableval}" in + yes) gst_use_dtmf=yes ;; + no) gst_use_dtmf=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dtmf" "$LINENO" 5 ;; + esac + +else + gst_use_dtmf=yes +fi + + if test x$gst_use_dtmf = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dtmf" >&5 +$as_echo "$as_me: disabling dependency-less plugin dtmf" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dtmf" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dtmf" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dtmf " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dtmf / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dtmf " > /dev/null; then + USE_PLUGIN_DTMF_TRUE= + USE_PLUGIN_DTMF_FALSE='#' +else + USE_PLUGIN_DTMF_TRUE='#' + USE_PLUGIN_DTMF_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dvbsuboverlay" + + + + # Check whether --enable-dvbsuboverlay was given. +if test "${enable_dvbsuboverlay+set}" = set; then : + enableval=$enable_dvbsuboverlay; + case "${enableval}" in + yes) gst_use_dvbsuboverlay=yes ;; + no) gst_use_dvbsuboverlay=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvbsuboverlay" "$LINENO" 5 ;; + esac + +else + gst_use_dvbsuboverlay=yes +fi + + if test x$gst_use_dvbsuboverlay = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dvbsuboverlay" >&5 +$as_echo "$as_me: disabling dependency-less plugin dvbsuboverlay" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dvbsuboverlay" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dvbsuboverlay " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dvbsuboverlay" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dvbsuboverlay " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dvbsuboverlay / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dvbsuboverlay " > /dev/null; then + USE_PLUGIN_DVBSUBOVERLAY_TRUE= + USE_PLUGIN_DVBSUBOVERLAY_FALSE='#' +else + USE_PLUGIN_DVBSUBOVERLAY_TRUE='#' + USE_PLUGIN_DVBSUBOVERLAY_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL dvdspu" + + + + # Check whether --enable-dvdspu was given. +if test "${enable_dvdspu+set}" = set; then : + enableval=$enable_dvdspu; + case "${enableval}" in + yes) gst_use_dvdspu=yes ;; + no) gst_use_dvdspu=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvdspu" "$LINENO" 5 ;; + esac + +else + gst_use_dvdspu=yes +fi + + if test x$gst_use_dvdspu = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin dvdspu" >&5 +$as_echo "$as_me: disabling dependency-less plugin dvdspu" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS dvdspu" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " dvdspu " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED dvdspu" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " dvdspu " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dvdspu / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " dvdspu " > /dev/null; then + USE_PLUGIN_DVDSPU_TRUE= + USE_PLUGIN_DVDSPU_FALSE='#' +else + USE_PLUGIN_DVDSPU_TRUE='#' + USE_PLUGIN_DVDSPU_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL festival" + + + + # Check whether --enable-festival was given. +if test "${enable_festival+set}" = set; then : + enableval=$enable_festival; + case "${enableval}" in + yes) gst_use_festival=yes ;; + no) gst_use_festival=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-festival" "$LINENO" 5 ;; + esac + +else + gst_use_festival=yes +fi + + if test x$gst_use_festival = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin festival" >&5 +$as_echo "$as_me: disabling dependency-less plugin festival" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS festival" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " festival " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED festival" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " festival " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ festival / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " festival " > /dev/null; then + USE_PLUGIN_FESTIVAL_TRUE= + USE_PLUGIN_FESTIVAL_FALSE='#' +else + USE_PLUGIN_FESTIVAL_TRUE='#' + USE_PLUGIN_FESTIVAL_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL fieldanalysis" + + + + # Check whether --enable-fieldanalysis was given. +if test "${enable_fieldanalysis+set}" = set; then : + enableval=$enable_fieldanalysis; + case "${enableval}" in + yes) gst_use_fieldanalysis=yes ;; + no) gst_use_fieldanalysis=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-fieldanalysis" "$LINENO" 5 ;; + esac + +else + gst_use_fieldanalysis=yes +fi + + if test x$gst_use_fieldanalysis = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin fieldanalysis" >&5 +$as_echo "$as_me: disabling dependency-less plugin fieldanalysis" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS fieldanalysis" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " fieldanalysis " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED fieldanalysis" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " fieldanalysis " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ fieldanalysis / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " fieldanalysis " > /dev/null; then + USE_PLUGIN_FIELDANALYSIS_TRUE= + USE_PLUGIN_FIELDANALYSIS_FALSE='#' +else + USE_PLUGIN_FIELDANALYSIS_TRUE='#' + USE_PLUGIN_FIELDANALYSIS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL freeze" + + + + # Check whether --enable-freeze was given. +if test "${enable_freeze+set}" = set; then : + enableval=$enable_freeze; + case "${enableval}" in + yes) gst_use_freeze=yes ;; + no) gst_use_freeze=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-freeze" "$LINENO" 5 ;; + esac + +else + gst_use_freeze=yes +fi + + if test x$gst_use_freeze = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin freeze" >&5 +$as_echo "$as_me: disabling dependency-less plugin freeze" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS freeze" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " freeze " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED freeze" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " freeze " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ freeze / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " freeze " > /dev/null; then + USE_PLUGIN_FREEZE_TRUE= + USE_PLUGIN_FREEZE_FALSE='#' +else + USE_PLUGIN_FREEZE_TRUE='#' + USE_PLUGIN_FREEZE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL frei0r" + + + + # Check whether --enable-frei0r was given. +if test "${enable_frei0r+set}" = set; then : + enableval=$enable_frei0r; + case "${enableval}" in + yes) gst_use_frei0r=yes ;; + no) gst_use_frei0r=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-frei0r" "$LINENO" 5 ;; + esac + +else + gst_use_frei0r=yes +fi + + if test x$gst_use_frei0r = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin frei0r" >&5 +$as_echo "$as_me: disabling dependency-less plugin frei0r" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS frei0r" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " frei0r " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED frei0r" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " frei0r " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ frei0r / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " frei0r " > /dev/null; then + USE_PLUGIN_FREI0R_TRUE= + USE_PLUGIN_FREI0R_FALSE='#' +else + USE_PLUGIN_FREI0R_TRUE='#' + USE_PLUGIN_FREI0R_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL gaudieffects" + + + + # Check whether --enable-gaudieffects was given. +if test "${enable_gaudieffects+set}" = set; then : + enableval=$enable_gaudieffects; + case "${enableval}" in + yes) gst_use_gaudieffects=yes ;; + no) gst_use_gaudieffects=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-gaudieffects" "$LINENO" 5 ;; + esac + +else + gst_use_gaudieffects=yes +fi + + if test x$gst_use_gaudieffects = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin gaudieffects" >&5 +$as_echo "$as_me: disabling dependency-less plugin gaudieffects" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS gaudieffects" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " gaudieffects " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED gaudieffects" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " gaudieffects " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ gaudieffects / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " gaudieffects " > /dev/null; then + USE_PLUGIN_GAUDIEFFECTS_TRUE= + USE_PLUGIN_GAUDIEFFECTS_FALSE='#' +else + USE_PLUGIN_GAUDIEFFECTS_TRUE='#' + USE_PLUGIN_GAUDIEFFECTS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL geometrictransform" + + + + # Check whether --enable-geometrictransform was given. +if test "${enable_geometrictransform+set}" = set; then : + enableval=$enable_geometrictransform; + case "${enableval}" in + yes) gst_use_geometrictransform=yes ;; + no) gst_use_geometrictransform=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-geometrictransform" "$LINENO" 5 ;; + esac + +else + gst_use_geometrictransform=yes +fi + + if test x$gst_use_geometrictransform = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin geometrictransform" >&5 +$as_echo "$as_me: disabling dependency-less plugin geometrictransform" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS geometrictransform" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " geometrictransform " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED geometrictransform" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " geometrictransform " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ geometrictransform / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " geometrictransform " > /dev/null; then + USE_PLUGIN_GEOMETRICTRANSFORM_TRUE= + USE_PLUGIN_GEOMETRICTRANSFORM_FALSE='#' +else + USE_PLUGIN_GEOMETRICTRANSFORM_TRUE='#' + USE_PLUGIN_GEOMETRICTRANSFORM_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL h264parse" + + + + # Check whether --enable-h264parse was given. +if test "${enable_h264parse+set}" = set; then : + enableval=$enable_h264parse; + case "${enableval}" in + yes) gst_use_h264parse=yes ;; + no) gst_use_h264parse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-h264parse" "$LINENO" 5 ;; + esac + +else + gst_use_h264parse=yes +fi + + if test x$gst_use_h264parse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin h264parse" >&5 +$as_echo "$as_me: disabling dependency-less plugin h264parse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS h264parse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " h264parse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED h264parse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " h264parse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ h264parse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " h264parse " > /dev/null; then + USE_PLUGIN_H264PARSE_TRUE= + USE_PLUGIN_H264PARSE_FALSE='#' +else + USE_PLUGIN_H264PARSE_TRUE='#' + USE_PLUGIN_H264PARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL hdvparse" + + + + # Check whether --enable-hdvparse was given. +if test "${enable_hdvparse+set}" = set; then : + enableval=$enable_hdvparse; + case "${enableval}" in + yes) gst_use_hdvparse=yes ;; + no) gst_use_hdvparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-hdvparse" "$LINENO" 5 ;; + esac + +else + gst_use_hdvparse=yes +fi + + if test x$gst_use_hdvparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin hdvparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin hdvparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS hdvparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " hdvparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED hdvparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " hdvparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ hdvparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " hdvparse " > /dev/null; then + USE_PLUGIN_HDVPARSE_TRUE= + USE_PLUGIN_HDVPARSE_FALSE='#' +else + USE_PLUGIN_HDVPARSE_TRUE='#' + USE_PLUGIN_HDVPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL hls" + + + + # Check whether --enable-hls was given. +if test "${enable_hls+set}" = set; then : + enableval=$enable_hls; + case "${enableval}" in + yes) gst_use_hls=yes ;; + no) gst_use_hls=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-hls" "$LINENO" 5 ;; + esac + +else + gst_use_hls=yes +fi + + if test x$gst_use_hls = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin hls" >&5 +$as_echo "$as_me: disabling dependency-less plugin hls" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS hls" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " hls " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED hls" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " hls " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ hls / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " hls " > /dev/null; then + USE_PLUGIN_HLS_TRUE= + USE_PLUGIN_HLS_FALSE='#' +else + USE_PLUGIN_HLS_TRUE='#' + USE_PLUGIN_HLS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL id3tag" + + + + # Check whether --enable-id3tag was given. +if test "${enable_id3tag+set}" = set; then : + enableval=$enable_id3tag; + case "${enableval}" in + yes) gst_use_id3tag=yes ;; + no) gst_use_id3tag=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-id3tag" "$LINENO" 5 ;; + esac + +else + gst_use_id3tag=yes +fi + + if test x$gst_use_id3tag = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin id3tag" >&5 +$as_echo "$as_me: disabling dependency-less plugin id3tag" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS id3tag" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " id3tag " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED id3tag" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " id3tag " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ id3tag / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " id3tag " > /dev/null; then + USE_PLUGIN_ID3TAG_TRUE= + USE_PLUGIN_ID3TAG_FALSE='#' +else + USE_PLUGIN_ID3TAG_TRUE='#' + USE_PLUGIN_ID3TAG_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL interlace" + + + + # Check whether --enable-interlace was given. +if test "${enable_interlace+set}" = set; then : + enableval=$enable_interlace; + case "${enableval}" in + yes) gst_use_interlace=yes ;; + no) gst_use_interlace=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-interlace" "$LINENO" 5 ;; + esac + +else + gst_use_interlace=yes +fi + + if test x$gst_use_interlace = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin interlace" >&5 +$as_echo "$as_me: disabling dependency-less plugin interlace" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS interlace" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " interlace " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED interlace" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " interlace " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ interlace / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " interlace " > /dev/null; then + USE_PLUGIN_INTERLACE_TRUE= + USE_PLUGIN_INTERLACE_FALSE='#' +else + USE_PLUGIN_INTERLACE_TRUE='#' + USE_PLUGIN_INTERLACE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL invtelecine" + + + + # Check whether --enable-invtelecine was given. +if test "${enable_invtelecine+set}" = set; then : + enableval=$enable_invtelecine; + case "${enableval}" in + yes) gst_use_invtelecine=yes ;; + no) gst_use_invtelecine=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-invtelecine" "$LINENO" 5 ;; + esac + +else + gst_use_invtelecine=yes +fi + + if test x$gst_use_invtelecine = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin invtelecine" >&5 +$as_echo "$as_me: disabling dependency-less plugin invtelecine" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS invtelecine" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " invtelecine " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED invtelecine" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " invtelecine " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ invtelecine / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " invtelecine " > /dev/null; then + USE_PLUGIN_INVTELECINE_TRUE= + USE_PLUGIN_INVTELECINE_FALSE='#' +else + USE_PLUGIN_INVTELECINE_TRUE='#' + USE_PLUGIN_INVTELECINE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL ivfparse" + + + + # Check whether --enable-ivfparse was given. +if test "${enable_ivfparse+set}" = set; then : + enableval=$enable_ivfparse; + case "${enableval}" in + yes) gst_use_ivfparse=yes ;; + no) gst_use_ivfparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-ivfparse" "$LINENO" 5 ;; + esac + +else + gst_use_ivfparse=yes +fi + + if test x$gst_use_ivfparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin ivfparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin ivfparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS ivfparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " ivfparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED ivfparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " ivfparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ ivfparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " ivfparse " > /dev/null; then + USE_PLUGIN_IVFPARSE_TRUE= + USE_PLUGIN_IVFPARSE_FALSE='#' +else + USE_PLUGIN_IVFPARSE_TRUE='#' + USE_PLUGIN_IVFPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL jp2kdecimator" + + + + # Check whether --enable-jp2kdecimator was given. +if test "${enable_jp2kdecimator+set}" = set; then : + enableval=$enable_jp2kdecimator; + case "${enableval}" in + yes) gst_use_jp2kdecimator=yes ;; + no) gst_use_jp2kdecimator=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jp2kdecimator" "$LINENO" 5 ;; + esac + +else + gst_use_jp2kdecimator=yes +fi + + if test x$gst_use_jp2kdecimator = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin jp2kdecimator" >&5 +$as_echo "$as_me: disabling dependency-less plugin jp2kdecimator" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS jp2kdecimator" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " jp2kdecimator " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED jp2kdecimator" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " jp2kdecimator " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ jp2kdecimator / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " jp2kdecimator " > /dev/null; then + USE_PLUGIN_JP2KDECIMATOR_TRUE= + USE_PLUGIN_JP2KDECIMATOR_FALSE='#' +else + USE_PLUGIN_JP2KDECIMATOR_TRUE='#' + USE_PLUGIN_JP2KDECIMATOR_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL jpegformat" + + + + # Check whether --enable-jpegformat was given. +if test "${enable_jpegformat+set}" = set; then : + enableval=$enable_jpegformat; + case "${enableval}" in + yes) gst_use_jpegformat=yes ;; + no) gst_use_jpegformat=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-jpegformat" "$LINENO" 5 ;; + esac + +else + gst_use_jpegformat=yes +fi + + if test x$gst_use_jpegformat = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin jpegformat" >&5 +$as_echo "$as_me: disabling dependency-less plugin jpegformat" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS jpegformat" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " jpegformat " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED jpegformat" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " jpegformat " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ jpegformat / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " jpegformat " > /dev/null; then + USE_PLUGIN_JPEGFORMAT_TRUE= + USE_PLUGIN_JPEGFORMAT_FALSE='#' +else + USE_PLUGIN_JPEGFORMAT_TRUE='#' + USE_PLUGIN_JPEGFORMAT_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL legacyresample" + + + + # Check whether --enable-legacyresample was given. +if test "${enable_legacyresample+set}" = set; then : + enableval=$enable_legacyresample; + case "${enableval}" in + yes) gst_use_legacyresample=yes ;; + no) gst_use_legacyresample=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-legacyresample" "$LINENO" 5 ;; + esac + +else + gst_use_legacyresample=yes +fi + + if test x$gst_use_legacyresample = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin legacyresample" >&5 +$as_echo "$as_me: disabling dependency-less plugin legacyresample" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS legacyresample" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " legacyresample " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED legacyresample" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " legacyresample " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ legacyresample / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " legacyresample " > /dev/null; then + USE_PLUGIN_LEGACYRESAMPLE_TRUE= + USE_PLUGIN_LEGACYRESAMPLE_FALSE='#' +else + USE_PLUGIN_LEGACYRESAMPLE_TRUE='#' + USE_PLUGIN_LEGACYRESAMPLE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL librfb" + + + + # Check whether --enable-librfb was given. +if test "${enable_librfb+set}" = set; then : + enableval=$enable_librfb; + case "${enableval}" in + yes) gst_use_librfb=yes ;; + no) gst_use_librfb=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-librfb" "$LINENO" 5 ;; + esac + +else + gst_use_librfb=yes +fi + + if test x$gst_use_librfb = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin librfb" >&5 +$as_echo "$as_me: disabling dependency-less plugin librfb" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS librfb" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " librfb " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED librfb" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " librfb " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ librfb / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " librfb " > /dev/null; then + USE_PLUGIN_LIBRFB_TRUE= + USE_PLUGIN_LIBRFB_FALSE='#' +else + USE_PLUGIN_LIBRFB_TRUE='#' + USE_PLUGIN_LIBRFB_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL liveadder" + + + + # Check whether --enable-liveadder was given. +if test "${enable_liveadder+set}" = set; then : + enableval=$enable_liveadder; + case "${enableval}" in + yes) gst_use_liveadder=yes ;; + no) gst_use_liveadder=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-liveadder" "$LINENO" 5 ;; + esac + +else + gst_use_liveadder=yes +fi + + if test x$gst_use_liveadder = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin liveadder" >&5 +$as_echo "$as_me: disabling dependency-less plugin liveadder" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS liveadder" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " liveadder " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED liveadder" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " liveadder " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ liveadder / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " liveadder " > /dev/null; then + USE_PLUGIN_LIVEADDER_TRUE= + USE_PLUGIN_LIVEADDER_FALSE='#' +else + USE_PLUGIN_LIVEADDER_TRUE='#' + USE_PLUGIN_LIVEADDER_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpegdemux" + + + + # Check whether --enable-mpegdemux was given. +if test "${enable_mpegdemux+set}" = set; then : + enableval=$enable_mpegdemux; + case "${enableval}" in + yes) gst_use_mpegdemux=yes ;; + no) gst_use_mpegdemux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegdemux" "$LINENO" 5 ;; + esac + +else + gst_use_mpegdemux=yes +fi + + if test x$gst_use_mpegdemux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpegdemux" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpegdemux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpegdemux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpegdemux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpegdemux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpegdemux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpegdemux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpegdemux " > /dev/null; then + USE_PLUGIN_MPEGDEMUX_TRUE= + USE_PLUGIN_MPEGDEMUX_FALSE='#' +else + USE_PLUGIN_MPEGDEMUX_TRUE='#' + USE_PLUGIN_MPEGDEMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpegtsdemux" + + + + # Check whether --enable-mpegtsdemux was given. +if test "${enable_mpegtsdemux+set}" = set; then : + enableval=$enable_mpegtsdemux; + case "${enableval}" in + yes) gst_use_mpegtsdemux=yes ;; + no) gst_use_mpegtsdemux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsdemux" "$LINENO" 5 ;; + esac + +else + gst_use_mpegtsdemux=yes +fi + + if test x$gst_use_mpegtsdemux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpegtsdemux" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpegtsdemux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpegtsdemux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpegtsdemux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpegtsdemux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpegtsdemux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpegtsdemux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpegtsdemux " > /dev/null; then + USE_PLUGIN_MPEGTSDEMUX_TRUE= + USE_PLUGIN_MPEGTSDEMUX_FALSE='#' +else + USE_PLUGIN_MPEGTSDEMUX_TRUE='#' + USE_PLUGIN_MPEGTSDEMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpegtsmux" + + + + # Check whether --enable-mpegtsmux was given. +if test "${enable_mpegtsmux+set}" = set; then : + enableval=$enable_mpegtsmux; + case "${enableval}" in + yes) gst_use_mpegtsmux=yes ;; + no) gst_use_mpegtsmux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegtsmux" "$LINENO" 5 ;; + esac + +else + gst_use_mpegtsmux=yes +fi + + if test x$gst_use_mpegtsmux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpegtsmux" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpegtsmux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpegtsmux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpegtsmux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpegtsmux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpegtsmux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpegtsmux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpegtsmux " > /dev/null; then + USE_PLUGIN_MPEGTSMUX_TRUE= + USE_PLUGIN_MPEGTSMUX_FALSE='#' +else + USE_PLUGIN_MPEGTSMUX_TRUE='#' + USE_PLUGIN_MPEGTSMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpegpsmux" + + + + # Check whether --enable-mpegpsmux was given. +if test "${enable_mpegpsmux+set}" = set; then : + enableval=$enable_mpegpsmux; + case "${enableval}" in + yes) gst_use_mpegpsmux=yes ;; + no) gst_use_mpegpsmux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegpsmux" "$LINENO" 5 ;; + esac + +else + gst_use_mpegpsmux=yes +fi + + if test x$gst_use_mpegpsmux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpegpsmux" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpegpsmux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpegpsmux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpegpsmux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpegpsmux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpegpsmux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpegpsmux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpegpsmux " > /dev/null; then + USE_PLUGIN_MPEGPSMUX_TRUE= + USE_PLUGIN_MPEGPSMUX_FALSE='#' +else + USE_PLUGIN_MPEGPSMUX_TRUE='#' + USE_PLUGIN_MPEGPSMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpeg4videoparse" + + + + # Check whether --enable-mpeg4videoparse was given. +if test "${enable_mpeg4videoparse+set}" = set; then : + enableval=$enable_mpeg4videoparse; + case "${enableval}" in + yes) gst_use_mpeg4videoparse=yes ;; + no) gst_use_mpeg4videoparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpeg4videoparse" "$LINENO" 5 ;; + esac + +else + gst_use_mpeg4videoparse=yes +fi + + if test x$gst_use_mpeg4videoparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpeg4videoparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpeg4videoparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpeg4videoparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpeg4videoparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpeg4videoparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpeg4videoparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpeg4videoparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpeg4videoparse " > /dev/null; then + USE_PLUGIN_MPEG4VIDEOPARSE_TRUE= + USE_PLUGIN_MPEG4VIDEOPARSE_FALSE='#' +else + USE_PLUGIN_MPEG4VIDEOPARSE_TRUE='#' + USE_PLUGIN_MPEG4VIDEOPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mpegvideoparse" + + + + # Check whether --enable-mpegvideoparse was given. +if test "${enable_mpegvideoparse+set}" = set; then : + enableval=$enable_mpegvideoparse; + case "${enableval}" in + yes) gst_use_mpegvideoparse=yes ;; + no) gst_use_mpegvideoparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpegvideoparse" "$LINENO" 5 ;; + esac + +else + gst_use_mpegvideoparse=yes +fi + + if test x$gst_use_mpegvideoparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mpegvideoparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin mpegvideoparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mpegvideoparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mpegvideoparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mpegvideoparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mpegvideoparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mpegvideoparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mpegvideoparse " > /dev/null; then + USE_PLUGIN_MPEGVIDEOPARSE_TRUE= + USE_PLUGIN_MPEGVIDEOPARSE_FALSE='#' +else + USE_PLUGIN_MPEGVIDEOPARSE_TRUE='#' + USE_PLUGIN_MPEGVIDEOPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mve" + + + + # Check whether --enable-mve was given. +if test "${enable_mve+set}" = set; then : + enableval=$enable_mve; + case "${enableval}" in + yes) gst_use_mve=yes ;; + no) gst_use_mve=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mve" "$LINENO" 5 ;; + esac + +else + gst_use_mve=yes +fi + + if test x$gst_use_mve = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mve" >&5 +$as_echo "$as_me: disabling dependency-less plugin mve" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mve" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mve " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mve" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mve " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mve / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mve " > /dev/null; then + USE_PLUGIN_MVE_TRUE= + USE_PLUGIN_MVE_FALSE='#' +else + USE_PLUGIN_MVE_TRUE='#' + USE_PLUGIN_MVE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL mxf" + + + + # Check whether --enable-mxf was given. +if test "${enable_mxf+set}" = set; then : + enableval=$enable_mxf; + case "${enableval}" in + yes) gst_use_mxf=yes ;; + no) gst_use_mxf=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-mxf" "$LINENO" 5 ;; + esac + +else + gst_use_mxf=yes +fi + + if test x$gst_use_mxf = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin mxf" >&5 +$as_echo "$as_me: disabling dependency-less plugin mxf" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS mxf" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " mxf " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED mxf" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " mxf " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ mxf / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " mxf " > /dev/null; then + USE_PLUGIN_MXF_TRUE= + USE_PLUGIN_MXF_FALSE='#' +else + USE_PLUGIN_MXF_TRUE='#' + USE_PLUGIN_MXF_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL nsf" + + + + # Check whether --enable-nsf was given. +if test "${enable_nsf+set}" = set; then : + enableval=$enable_nsf; + case "${enableval}" in + yes) gst_use_nsf=yes ;; + no) gst_use_nsf=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-nsf" "$LINENO" 5 ;; + esac + +else + gst_use_nsf=yes +fi + + if test x$gst_use_nsf = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin nsf" >&5 +$as_echo "$as_me: disabling dependency-less plugin nsf" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS nsf" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " nsf " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED nsf" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " nsf " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ nsf / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " nsf " > /dev/null; then + USE_PLUGIN_NSF_TRUE= + USE_PLUGIN_NSF_FALSE='#' +else + USE_PLUGIN_NSF_TRUE='#' + USE_PLUGIN_NSF_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL nuvdemux" + + + + # Check whether --enable-nuvdemux was given. +if test "${enable_nuvdemux+set}" = set; then : + enableval=$enable_nuvdemux; + case "${enableval}" in + yes) gst_use_nuvdemux=yes ;; + no) gst_use_nuvdemux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-nuvdemux" "$LINENO" 5 ;; + esac + +else + gst_use_nuvdemux=yes +fi + + if test x$gst_use_nuvdemux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin nuvdemux" >&5 +$as_echo "$as_me: disabling dependency-less plugin nuvdemux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS nuvdemux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " nuvdemux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED nuvdemux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " nuvdemux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ nuvdemux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " nuvdemux " > /dev/null; then + USE_PLUGIN_NUVDEMUX_TRUE= + USE_PLUGIN_NUVDEMUX_FALSE='#' +else + USE_PLUGIN_NUVDEMUX_TRUE='#' + USE_PLUGIN_NUVDEMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL patchdetect" + + + + # Check whether --enable-patchdetect was given. +if test "${enable_patchdetect+set}" = set; then : + enableval=$enable_patchdetect; + case "${enableval}" in + yes) gst_use_patchdetect=yes ;; + no) gst_use_patchdetect=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-patchdetect" "$LINENO" 5 ;; + esac + +else + gst_use_patchdetect=yes +fi + + if test x$gst_use_patchdetect = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin patchdetect" >&5 +$as_echo "$as_me: disabling dependency-less plugin patchdetect" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS patchdetect" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " patchdetect " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED patchdetect" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " patchdetect " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ patchdetect / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " patchdetect " > /dev/null; then + USE_PLUGIN_PATCHDETECT_TRUE= + USE_PLUGIN_PATCHDETECT_FALSE='#' +else + USE_PLUGIN_PATCHDETECT_TRUE='#' + USE_PLUGIN_PATCHDETECT_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL pcapparse" + + + + # Check whether --enable-pcapparse was given. +if test "${enable_pcapparse+set}" = set; then : + enableval=$enable_pcapparse; + case "${enableval}" in + yes) gst_use_pcapparse=yes ;; + no) gst_use_pcapparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-pcapparse" "$LINENO" 5 ;; + esac + +else + gst_use_pcapparse=yes +fi + + if test x$gst_use_pcapparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin pcapparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin pcapparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS pcapparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " pcapparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED pcapparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " pcapparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ pcapparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " pcapparse " > /dev/null; then + USE_PLUGIN_PCAPPARSE_TRUE= + USE_PLUGIN_PCAPPARSE_FALSE='#' +else + USE_PLUGIN_PCAPPARSE_TRUE='#' + USE_PLUGIN_PCAPPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL pnm" + + + + # Check whether --enable-pnm was given. +if test "${enable_pnm+set}" = set; then : + enableval=$enable_pnm; + case "${enableval}" in + yes) gst_use_pnm=yes ;; + no) gst_use_pnm=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-pnm" "$LINENO" 5 ;; + esac + +else + gst_use_pnm=yes +fi + + if test x$gst_use_pnm = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin pnm" >&5 +$as_echo "$as_me: disabling dependency-less plugin pnm" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS pnm" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " pnm " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED pnm" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " pnm " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ pnm / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " pnm " > /dev/null; then + USE_PLUGIN_PNM_TRUE= + USE_PLUGIN_PNM_FALSE='#' +else + USE_PLUGIN_PNM_TRUE='#' + USE_PLUGIN_PNM_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL rawparse" + + + + # Check whether --enable-rawparse was given. +if test "${enable_rawparse+set}" = set; then : + enableval=$enable_rawparse; + case "${enableval}" in + yes) gst_use_rawparse=yes ;; + no) gst_use_rawparse=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rawparse" "$LINENO" 5 ;; + esac + +else + gst_use_rawparse=yes +fi + + if test x$gst_use_rawparse = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin rawparse" >&5 +$as_echo "$as_me: disabling dependency-less plugin rawparse" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS rawparse" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " rawparse " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED rawparse" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " rawparse " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ rawparse / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " rawparse " > /dev/null; then + USE_PLUGIN_RAWPARSE_TRUE= + USE_PLUGIN_RAWPARSE_FALSE='#' +else + USE_PLUGIN_RAWPARSE_TRUE='#' + USE_PLUGIN_RAWPARSE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL real" + + + + # Check whether --enable-real was given. +if test "${enable_real+set}" = set; then : + enableval=$enable_real; + case "${enableval}" in + yes) gst_use_real=yes ;; + no) gst_use_real=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-real" "$LINENO" 5 ;; + esac + +else + gst_use_real=yes +fi + + if test x$gst_use_real = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin real" >&5 +$as_echo "$as_me: disabling dependency-less plugin real" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS real" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " real " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED real" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " real " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ real / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " real " > /dev/null; then + USE_PLUGIN_REAL_TRUE= + USE_PLUGIN_REAL_FALSE='#' +else + USE_PLUGIN_REAL_TRUE='#' + USE_PLUGIN_REAL_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL rtpmux" + + + + # Check whether --enable-rtpmux was given. +if test "${enable_rtpmux+set}" = set; then : + enableval=$enable_rtpmux; + case "${enableval}" in + yes) gst_use_rtpmux=yes ;; + no) gst_use_rtpmux=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtpmux" "$LINENO" 5 ;; + esac + +else + gst_use_rtpmux=yes +fi + + if test x$gst_use_rtpmux = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin rtpmux" >&5 +$as_echo "$as_me: disabling dependency-less plugin rtpmux" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS rtpmux" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " rtpmux " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED rtpmux" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " rtpmux " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ rtpmux / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " rtpmux " > /dev/null; then + USE_PLUGIN_RTPMUX_TRUE= + USE_PLUGIN_RTPMUX_FALSE='#' +else + USE_PLUGIN_RTPMUX_TRUE='#' + USE_PLUGIN_RTPMUX_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL rtpvp8" + + + + # Check whether --enable-rtpvp8 was given. +if test "${enable_rtpvp8+set}" = set; then : + enableval=$enable_rtpvp8; + case "${enableval}" in + yes) gst_use_rtpvp8=yes ;; + no) gst_use_rtpvp8=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtpvp8" "$LINENO" 5 ;; + esac + +else + gst_use_rtpvp8=yes +fi + + if test x$gst_use_rtpvp8 = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin rtpvp8" >&5 +$as_echo "$as_me: disabling dependency-less plugin rtpvp8" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS rtpvp8" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " rtpvp8 " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED rtpvp8" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " rtpvp8 " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ rtpvp8 / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " rtpvp8 " > /dev/null; then + USE_PLUGIN_RTPVP8_TRUE= + USE_PLUGIN_RTPVP8_FALSE='#' +else + USE_PLUGIN_RTPVP8_TRUE='#' + USE_PLUGIN_RTPVP8_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL scaletempo" + + + + # Check whether --enable-scaletempo was given. +if test "${enable_scaletempo+set}" = set; then : + enableval=$enable_scaletempo; + case "${enableval}" in + yes) gst_use_scaletempo=yes ;; + no) gst_use_scaletempo=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-scaletempo" "$LINENO" 5 ;; + esac + +else + gst_use_scaletempo=yes +fi + + if test x$gst_use_scaletempo = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin scaletempo" >&5 +$as_echo "$as_me: disabling dependency-less plugin scaletempo" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS scaletempo" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " scaletempo " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED scaletempo" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " scaletempo " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ scaletempo / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " scaletempo " > /dev/null; then + USE_PLUGIN_SCALETEMPO_TRUE= + USE_PLUGIN_SCALETEMPO_FALSE='#' +else + USE_PLUGIN_SCALETEMPO_TRUE='#' + USE_PLUGIN_SCALETEMPO_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL sdi" + + + + # Check whether --enable-sdi was given. +if test "${enable_sdi+set}" = set; then : + enableval=$enable_sdi; + case "${enableval}" in + yes) gst_use_sdi=yes ;; + no) gst_use_sdi=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdi" "$LINENO" 5 ;; + esac + +else + gst_use_sdi=yes +fi + + if test x$gst_use_sdi = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin sdi" >&5 +$as_echo "$as_me: disabling dependency-less plugin sdi" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS sdi" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " sdi " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED sdi" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " sdi " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ sdi / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " sdi " > /dev/null; then + USE_PLUGIN_SDI_TRUE= + USE_PLUGIN_SDI_FALSE='#' +else + USE_PLUGIN_SDI_TRUE='#' + USE_PLUGIN_SDI_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL sdp" + + + + # Check whether --enable-sdp was given. +if test "${enable_sdp+set}" = set; then : + enableval=$enable_sdp; + case "${enableval}" in + yes) gst_use_sdp=yes ;; + no) gst_use_sdp=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdp" "$LINENO" 5 ;; + esac + +else + gst_use_sdp=yes +fi + + if test x$gst_use_sdp = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin sdp" >&5 +$as_echo "$as_me: disabling dependency-less plugin sdp" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS sdp" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " sdp " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED sdp" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " sdp " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ sdp / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " sdp " > /dev/null; then + USE_PLUGIN_SDP_TRUE= + USE_PLUGIN_SDP_FALSE='#' +else + USE_PLUGIN_SDP_TRUE='#' + USE_PLUGIN_SDP_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL segmentclip" + + + + # Check whether --enable-segmentclip was given. +if test "${enable_segmentclip+set}" = set; then : + enableval=$enable_segmentclip; + case "${enableval}" in + yes) gst_use_segmentclip=yes ;; + no) gst_use_segmentclip=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-segmentclip" "$LINENO" 5 ;; + esac + +else + gst_use_segmentclip=yes +fi + + if test x$gst_use_segmentclip = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin segmentclip" >&5 +$as_echo "$as_me: disabling dependency-less plugin segmentclip" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS segmentclip" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " segmentclip " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED segmentclip" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " segmentclip " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ segmentclip / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " segmentclip " > /dev/null; then + USE_PLUGIN_SEGMENTCLIP_TRUE= + USE_PLUGIN_SEGMENTCLIP_FALSE='#' +else + USE_PLUGIN_SEGMENTCLIP_TRUE='#' + USE_PLUGIN_SEGMENTCLIP_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL siren" + + + + # Check whether --enable-siren was given. +if test "${enable_siren+set}" = set; then : + enableval=$enable_siren; + case "${enableval}" in + yes) gst_use_siren=yes ;; + no) gst_use_siren=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-siren" "$LINENO" 5 ;; + esac + +else + gst_use_siren=yes +fi + + if test x$gst_use_siren = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin siren" >&5 +$as_echo "$as_me: disabling dependency-less plugin siren" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS siren" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " siren " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED siren" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " siren " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ siren / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " siren " > /dev/null; then + USE_PLUGIN_SIREN_TRUE= + USE_PLUGIN_SIREN_FALSE='#' +else + USE_PLUGIN_SIREN_TRUE='#' + USE_PLUGIN_SIREN_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL speed" + + + + # Check whether --enable-speed was given. +if test "${enable_speed+set}" = set; then : + enableval=$enable_speed; + case "${enableval}" in + yes) gst_use_speed=yes ;; + no) gst_use_speed=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-speed" "$LINENO" 5 ;; + esac + +else + gst_use_speed=yes +fi + + if test x$gst_use_speed = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin speed" >&5 +$as_echo "$as_me: disabling dependency-less plugin speed" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS speed" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " speed " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED speed" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " speed " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ speed / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " speed " > /dev/null; then + USE_PLUGIN_SPEED_TRUE= + USE_PLUGIN_SPEED_FALSE='#' +else + USE_PLUGIN_SPEED_TRUE='#' + USE_PLUGIN_SPEED_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL subenc" + + + + # Check whether --enable-subenc was given. +if test "${enable_subenc+set}" = set; then : + enableval=$enable_subenc; + case "${enableval}" in + yes) gst_use_subenc=yes ;; + no) gst_use_subenc=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-subenc" "$LINENO" 5 ;; + esac + +else + gst_use_subenc=yes +fi + + if test x$gst_use_subenc = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin subenc" >&5 +$as_echo "$as_me: disabling dependency-less plugin subenc" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS subenc" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " subenc " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED subenc" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " subenc " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ subenc / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " subenc " > /dev/null; then + USE_PLUGIN_SUBENC_TRUE= + USE_PLUGIN_SUBENC_FALSE='#' +else + USE_PLUGIN_SUBENC_TRUE='#' + USE_PLUGIN_SUBENC_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL stereo" + + + + # Check whether --enable-stereo was given. +if test "${enable_stereo+set}" = set; then : + enableval=$enable_stereo; + case "${enableval}" in + yes) gst_use_stereo=yes ;; + no) gst_use_stereo=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-stereo" "$LINENO" 5 ;; + esac + +else + gst_use_stereo=yes +fi + + if test x$gst_use_stereo = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin stereo" >&5 +$as_echo "$as_me: disabling dependency-less plugin stereo" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS stereo" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " stereo " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED stereo" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " stereo " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ stereo / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " stereo " > /dev/null; then + USE_PLUGIN_STEREO_TRUE= + USE_PLUGIN_STEREO_FALSE='#' +else + USE_PLUGIN_STEREO_TRUE='#' + USE_PLUGIN_STEREO_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL tta" + + + + # Check whether --enable-tta was given. +if test "${enable_tta+set}" = set; then : + enableval=$enable_tta; + case "${enableval}" in + yes) gst_use_tta=yes ;; + no) gst_use_tta=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-tta" "$LINENO" 5 ;; + esac + +else + gst_use_tta=yes +fi + + if test x$gst_use_tta = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin tta" >&5 +$as_echo "$as_me: disabling dependency-less plugin tta" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS tta" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " tta " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED tta" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " tta " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ tta / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " tta " > /dev/null; then + USE_PLUGIN_TTA_TRUE= + USE_PLUGIN_TTA_FALSE='#' +else + USE_PLUGIN_TTA_TRUE='#' + USE_PLUGIN_TTA_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL videofilters" + + + + # Check whether --enable-videofilters was given. +if test "${enable_videofilters+set}" = set; then : + enableval=$enable_videofilters; + case "${enableval}" in + yes) gst_use_videofilters=yes ;; + no) gst_use_videofilters=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videofilters" "$LINENO" 5 ;; + esac + +else + gst_use_videofilters=yes +fi + + if test x$gst_use_videofilters = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin videofilters" >&5 +$as_echo "$as_me: disabling dependency-less plugin videofilters" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS videofilters" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " videofilters " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED videofilters" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " videofilters " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ videofilters / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " videofilters " > /dev/null; then + USE_PLUGIN_VIDEOFILTERS_TRUE= + USE_PLUGIN_VIDEOFILTERS_FALSE='#' +else + USE_PLUGIN_VIDEOFILTERS_TRUE='#' + USE_PLUGIN_VIDEOFILTERS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL videomaxrate" + + + + # Check whether --enable-videomaxrate was given. +if test "${enable_videomaxrate+set}" = set; then : + enableval=$enable_videomaxrate; + case "${enableval}" in + yes) gst_use_videomaxrate=yes ;; + no) gst_use_videomaxrate=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videomaxrate" "$LINENO" 5 ;; + esac + +else + gst_use_videomaxrate=yes +fi + + if test x$gst_use_videomaxrate = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin videomaxrate" >&5 +$as_echo "$as_me: disabling dependency-less plugin videomaxrate" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS videomaxrate" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " videomaxrate " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED videomaxrate" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " videomaxrate " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ videomaxrate / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " videomaxrate " > /dev/null; then + USE_PLUGIN_VIDEOMAXRATE_TRUE= + USE_PLUGIN_VIDEOMAXRATE_FALSE='#' +else + USE_PLUGIN_VIDEOMAXRATE_TRUE='#' + USE_PLUGIN_VIDEOMAXRATE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL videomeasure" + + + + # Check whether --enable-videomeasure was given. +if test "${enable_videomeasure+set}" = set; then : + enableval=$enable_videomeasure; + case "${enableval}" in + yes) gst_use_videomeasure=yes ;; + no) gst_use_videomeasure=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videomeasure" "$LINENO" 5 ;; + esac + +else + gst_use_videomeasure=yes +fi + + if test x$gst_use_videomeasure = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin videomeasure" >&5 +$as_echo "$as_me: disabling dependency-less plugin videomeasure" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS videomeasure" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " videomeasure " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED videomeasure" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " videomeasure " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ videomeasure / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " videomeasure " > /dev/null; then + USE_PLUGIN_VIDEOMEASURE_TRUE= + USE_PLUGIN_VIDEOMEASURE_FALSE='#' +else + USE_PLUGIN_VIDEOMEASURE_TRUE='#' + USE_PLUGIN_VIDEOMEASURE_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL videoparsers" + + + + # Check whether --enable-videoparsers was given. +if test "${enable_videoparsers+set}" = set; then : + enableval=$enable_videoparsers; + case "${enableval}" in + yes) gst_use_videoparsers=yes ;; + no) gst_use_videoparsers=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videoparsers" "$LINENO" 5 ;; + esac + +else + gst_use_videoparsers=yes +fi + + if test x$gst_use_videoparsers = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin videoparsers" >&5 +$as_echo "$as_me: disabling dependency-less plugin videoparsers" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS videoparsers" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " videoparsers " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED videoparsers" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " videoparsers " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ videoparsers / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " videoparsers " > /dev/null; then + USE_PLUGIN_VIDEOPARSERS_TRUE= + USE_PLUGIN_VIDEOPARSERS_FALSE='#' +else + USE_PLUGIN_VIDEOPARSERS_TRUE='#' + USE_PLUGIN_VIDEOPARSERS_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL videosignal" + + + + # Check whether --enable-videosignal was given. +if test "${enable_videosignal+set}" = set; then : + enableval=$enable_videosignal; + case "${enableval}" in + yes) gst_use_videosignal=yes ;; + no) gst_use_videosignal=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-videosignal" "$LINENO" 5 ;; + esac + +else + gst_use_videosignal=yes +fi + + if test x$gst_use_videosignal = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin videosignal" >&5 +$as_echo "$as_me: disabling dependency-less plugin videosignal" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS videosignal" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " videosignal " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED videosignal" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " videosignal " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ videosignal / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " videosignal " > /dev/null; then + USE_PLUGIN_VIDEOSIGNAL_TRUE= + USE_PLUGIN_VIDEOSIGNAL_FALSE='#' +else + USE_PLUGIN_VIDEOSIGNAL_TRUE='#' + USE_PLUGIN_VIDEOSIGNAL_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL vmnc" + + + + # Check whether --enable-vmnc was given. +if test "${enable_vmnc+set}" = set; then : + enableval=$enable_vmnc; + case "${enableval}" in + yes) gst_use_vmnc=yes ;; + no) gst_use_vmnc=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-vmnc" "$LINENO" 5 ;; + esac + +else + gst_use_vmnc=yes +fi + + if test x$gst_use_vmnc = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin vmnc" >&5 +$as_echo "$as_me: disabling dependency-less plugin vmnc" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS vmnc" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " vmnc " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED vmnc" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " vmnc " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ vmnc / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " vmnc " > /dev/null; then + USE_PLUGIN_VMNC_TRUE= + USE_PLUGIN_VMNC_FALSE='#' +else + USE_PLUGIN_VMNC_TRUE='#' + USE_PLUGIN_VMNC_FALSE= +fi + + + + GST_PLUGINS_ALL="$GST_PLUGINS_ALL y4m" + + + + # Check whether --enable-y4m was given. +if test "${enable_y4m+set}" = set; then : + enableval=$enable_y4m; + case "${enableval}" in + yes) gst_use_y4m=yes ;; + no) gst_use_y4m=no ;; + *) as_fn_error $? "bad value ${enableval} for --enable-y4m" "$LINENO" 5 ;; + esac + +else + gst_use_y4m=yes +fi + + if test x$gst_use_y4m = xno; then + { $as_echo "$as_me:${as_lineno-$LINENO}: disabling dependency-less plugin y4m" >&5 +$as_echo "$as_me: disabling dependency-less plugin y4m" >&6;} + WITHOUT_PLUGINS="$WITHOUT_PLUGINS y4m" + fi + + + if [ -z "$WITH_PLUGINS" ] || echo " $WITH_PLUGINS " | tr , ' ' | grep -i " y4m " > /dev/null; then + GST_PLUGINS_SELECTED="$GST_PLUGINS_SELECTED y4m" + fi + if echo " $WITHOUT_PLUGINS " | tr , ' ' | grep -i " y4m " > /dev/null; then + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ y4m / /'` + fi + if echo " $GST_PLUGINS_SELECTED " | grep -i " y4m " > /dev/null; then + USE_PLUGIN_Y4M_TRUE= + USE_PLUGIN_Y4M_FALSE='#' +else + USE_PLUGIN_Y4M_TRUE='#' + USE_PLUGIN_Y4M_FALSE= +fi + + + + +if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not building real plugin, only works on 32bit and 64bit x86 platforms" >&5 +$as_echo "$as_me: WARNING: Not building real plugin, only works on 32bit and 64bit x86 platforms" >&2;} + + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ real / /'` + if false; then + USE_PLUGIN_REAL_TRUE= + USE_PLUGIN_REAL_FALSE='#' +else + USE_PLUGIN_REAL_TRUE='#' + USE_PLUGIN_REAL_FALSE= +fi + + +fi + +if test "x$BUILD_EXPERIMENTAL" != "xyes"; then + + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ camerabin2 / /'` + if false; then + USE_PLUGIN_CAMERABIN2_TRUE= + USE_PLUGIN_CAMERABIN2_FALSE='#' +else + USE_PLUGIN_CAMERABIN2_TRUE='#' + USE_PLUGIN_CAMERABIN2_FALSE= +fi + + +fi + +# This will always succeed because we depend on GLib >= 2.16 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GIO" >&5 +$as_echo_n "checking for GIO... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GIO_CFLAGS"; then + pkg_cv_GIO_CFLAGS="$GIO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIO_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GIO_LIBS"; then + pkg_cv_GIO_LIBS="$GIO_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gio-2.0 >= 2.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gio-2.0 >= 2.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GIO_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GIO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gio-2.0 >= 2.16"` + else + GIO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gio-2.0 >= 2.16"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GIO_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_GIO=no +elif test $pkg_failed = untried; then + HAVE_GIO=no +else + GIO_CFLAGS=$pkg_cv_GIO_CFLAGS + GIO_LIBS=$pkg_cv_GIO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_GIO=yes +fi + + + +for ac_header in sys/socket.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYS_SOCKET_H 1 +_ACEOF + HAVE_SYS_SOCKET_H=yes +fi + +done + +for ac_header in winsock2.h +do : + ac_fn_c_check_header_mongrel "$LINENO" "winsock2.h" "ac_cv_header_winsock2_h" "$ac_includes_default" +if test "x$ac_cv_header_winsock2_h" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_WINSOCK2_H 1 +_ACEOF + HAVE_WINSOCK2_H=yes +fi + +done + + +if test "x$HAVE_WINSOCK2_H" = "xyes"; then + WIN32_LIBS="-lws2_32" + +fi + + if test "x$HAVE_WINSOCK2_H" = "xyes"; then + HAVE_WINSOCK2_H_TRUE= + HAVE_WINSOCK2_H_FALSE='#' +else + HAVE_WINSOCK2_H_TRUE='#' + HAVE_WINSOCK2_H_FALSE= +fi + + +if test "x$HAVE_WINSOCK2_H" = "xyes"; then + DCCP_LIBS="$DCCP_LIBS -lws2_32" + XDG_LIBS="$XDG_LIBS -lws2_32" + + +fi + +if test "x$HAVE_PTHREAD_H" = "xyes"; then + DCCP_LIBS="$DCCP_LIBS -lpthread" + +fi + +if test "x$HAVE_PTHREAD_H" != "xyes"; then + + GST_PLUGINS_SELECTED=`echo " $GST_PLUGINS_SELECTED " | $SED -e 's/ dccp / /'` + if false; then + USE_PLUGIN_DCCP_TRUE= + USE_PLUGIN_DCCP_FALSE='#' +else + USE_PLUGIN_DCCP_TRUE='#' + USE_PLUGIN_DCCP_FALSE= +fi + + +fi + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: DirectSound ***" >&5 +$as_echo "$as_me: *** checking feature: DirectSound ***" >&6;} +if test "xdirectsoundsrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: directsoundsrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: directsoundsrc ***" >&6;} +fi +NOUSE= +if test "x$USE_DIRECTSOUND" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-directsound was given. +if test "${enable_directsound+set}" = set; then : + enableval=$enable_directsound; case "${enableval}" in + yes) USE_DIRECTSOUND=yes;; + no) USE_DIRECTSOUND=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-directsound" "$LINENO" 5 ;; + esac +else + USE_DIRECTSOUND=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIRECTSOUND="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** directsoundsrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** directsoundsrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIRECTSOUND = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DIRECTSOUND=no + + HAVE_DIRECTSOUND="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -ldsound -ldxerr9 -luser32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DirectSound LDFLAGS" >&5 +$as_echo_n "checking for DirectSound LDFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include + +int main () +{ + DXGetErrorString9 (0); + DirectSoundCreate(NULL, NULL, NULL); + + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + HAVE_DIRECTSOUND="yes" +else + HAVE_DIRECTSOUND="no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_DIRECTSOUND" >&5 +$as_echo "$HAVE_DIRECTSOUND" >&6; } + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECTSOUND" = "xyes"; then + DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32" + + + + fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DIRECTSOUND = xno; then + USE_DIRECTSOUND=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: directsoundsrc" >&5 +$as_echo "$as_me: *** These plugins will be built: directsoundsrc" >&6;} + fi +fi +if test x$USE_DIRECTSOUND = xyes; then + : + if test "xdirectsoundsrc" != "x"; then + GST_PLUGINS_YES="\tdirectsoundsrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIRECTSOUND /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: directsoundsrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: directsoundsrc" >&6;} + if test "xdirectsoundsrc" != "x"; then + GST_PLUGINS_NO="\tdirectsoundsrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIRECTSOUND = xyes; then + USE_DIRECTSOUND_TRUE= + USE_DIRECTSOUND_FALSE='#' +else + USE_DIRECTSOUND_TRUE='#' + USE_DIRECTSOUND_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: DirectDraw plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: DirectDraw plug-in ***" >&6;} +if test "xdirectdrawsink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: directdrawsink ***" >&5 +$as_echo "$as_me: *** for plug-ins: directdrawsink ***" >&6;} +fi +NOUSE= +if test "x$USE_DIRECTDRAW" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-directdraw was given. +if test "${enable_directdraw+set}" = set; then : + enableval=$enable_directdraw; case "${enableval}" in + yes) USE_DIRECTDRAW=yes;; + no) USE_DIRECTDRAW=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-directdraw" "$LINENO" 5 ;; + esac +else + USE_DIRECTDRAW=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIRECTDRAW="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** directdrawsink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** directdrawsink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIRECTDRAW = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DIRECTDRAW=no + + HAVE_DIRECTDRAW="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -lddraw -lgdi32" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for DirectDraw LDFLAGS" >&5 +$as_echo_n "checking for DirectDraw LDFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +int main () +{ + GetStockObject(0); + DirectDrawCreate(NULL, NULL, NULL); + + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + HAVE_DIRECTDRAW="yes" +else + HAVE_DIRECTDRAW="no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_DIRECTDRAW" >&5 +$as_echo "$HAVE_DIRECTDRAW" >&6; } + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECTDRAW" = "xyes"; then + DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32" + + + + fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DIRECTDRAW = xno; then + USE_DIRECTDRAW=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: directdrawsink" >&5 +$as_echo "$as_me: *** These plugins will be built: directdrawsink" >&6;} + fi +fi +if test x$USE_DIRECTDRAW = xyes; then + : + if test "xdirectdrawsink" != "x"; then + GST_PLUGINS_YES="\tdirectdrawsink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIRECTDRAW /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: directdrawsink" >&5 +$as_echo "$as_me: *** These plugins will not be built: directdrawsink" >&6;} + if test "xdirectdrawsink" != "x"; then + GST_PLUGINS_NO="\tdirectdrawsink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIRECTDRAW = xyes; then + USE_DIRECTDRAW_TRUE= + USE_DIRECTDRAW_FALSE='#' +else + USE_DIRECTDRAW_TRUE='#' + USE_DIRECTDRAW_FALSE= +fi + + + +HAVE_APPLE_MEDIA="no" +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Apple video ***" >&5 +$as_echo "$as_me: *** checking feature: Apple video ***" >&6;} +if test "xapplemedia" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: applemedia ***" >&5 +$as_echo "$as_me: *** for plug-ins: applemedia ***" >&6;} +fi +NOUSE= +if test "x$USE_APPLE_MEDIA" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-apple_media was given. +if test "${enable_apple_media+set}" = set; then : + enableval=$enable_apple_media; case "${enableval}" in + yes) USE_APPLE_MEDIA=yes;; + no) USE_APPLE_MEDIA=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-apple_media" "$LINENO" 5 ;; + esac +else + USE_APPLE_MEDIA=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_APPLE_MEDIA="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** applemedia pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** applemedia pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_APPLE_MEDIA = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_APPLE_MEDIA=no + + ac_fn_c_check_header_mongrel "$LINENO" "SystemConfiguration/SystemConfiguration.h" "ac_cv_header_SystemConfiguration_SystemConfiguration_h" "$ac_includes_default" +if test "x$ac_cv_header_SystemConfiguration_SystemConfiguration_h" = x""yes; then : + HAVE_APPLE_MEDIA="yes" +else + HAVE_APPLE_MEDIA="no" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_APPLE_MEDIA = xno; then + USE_APPLE_MEDIA=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: applemedia" >&5 +$as_echo "$as_me: *** These plugins will be built: applemedia" >&6;} + fi +fi +if test x$USE_APPLE_MEDIA = xyes; then + : + if test "xapplemedia" != "x"; then + GST_PLUGINS_YES="\tapplemedia\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_APPLE_MEDIA /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: applemedia" >&5 +$as_echo "$as_me: *** These plugins will not be built: applemedia" >&6;} + if test "xapplemedia" != "x"; then + GST_PLUGINS_NO="\tapplemedia\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_APPLE_MEDIA = xyes; then + USE_APPLE_MEDIA_TRUE= + USE_APPLE_MEDIA_FALSE='#' +else + USE_APPLE_MEDIA_TRUE='#' + USE_APPLE_MEDIA_FALSE= +fi + + +case "$host" in + *-*darwin*) + ;; + *) + HAVE_APPLE_MEDIA="no" + ;; +esac +HAVE_IOS="no" +if test "x$HAVE_APPLE_MEDIA" = "xyes"; then + ac_fn_c_check_header_preproc "$LINENO" "MobileCoreServices/MobileCoreServices.h" "ac_cv_header_MobileCoreServices_MobileCoreServices_h" +if test "x$ac_cv_header_MobileCoreServices_MobileCoreServices_h" = x""yes; then : + HAVE_IOS="yes" +else + HAVE_IOS="no" +fi + + +fi + + if test "x$HAVE_IOS" = "xyes"; then + HAVE_IOS_TRUE= + HAVE_IOS_FALSE='#' +else + HAVE_IOS_TRUE='#' + HAVE_IOS_FALSE= +fi + +if test "x$HAVE_IOS" = "xyes"; then + +$as_echo "#define HAVE_IOS 1" >>confdefs.h + +fi + +HAVE_OSX_VIDEO="no" +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: OSX video ***" >&5 +$as_echo "$as_me: *** checking feature: OSX video ***" >&6;} +if test "xosxvideosrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: osxvideosrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: osxvideosrc ***" >&6;} +fi +NOUSE= +if test "x$USE_OSX_VIDEO" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-osx_video was given. +if test "${enable_osx_video+set}" = set; then : + enableval=$enable_osx_video; case "${enableval}" in + yes) USE_OSX_VIDEO=yes;; + no) USE_OSX_VIDEO=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-osx_video" "$LINENO" 5 ;; + esac +else + USE_OSX_VIDEO=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_OSX_VIDEO="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** osxvideosrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** osxvideosrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_OSX_VIDEO = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_OSX_VIDEO=no + + ac_fn_c_check_type "$LINENO" "SeqGrabComponent" "ac_cv_type_SeqGrabComponent" "#include +" +if test "x$ac_cv_type_SeqGrabComponent" = x""yes; then : + HAVE_OSX_VIDEO="yes" +else + HAVE_OSX_VIDEO="no" +fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_OSX_VIDEO = xno; then + USE_OSX_VIDEO=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: osxvideosrc" >&5 +$as_echo "$as_me: *** These plugins will be built: osxvideosrc" >&6;} + fi +fi +if test x$USE_OSX_VIDEO = xyes; then + : + if test "xosxvideosrc" != "x"; then + GST_PLUGINS_YES="\tosxvideosrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_OSX_VIDEO /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: osxvideosrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: osxvideosrc" >&6;} + if test "xosxvideosrc" != "x"; then + GST_PLUGINS_NO="\tosxvideosrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_OSX_VIDEO = xyes; then + USE_OSX_VIDEO_TRUE= + USE_OSX_VIDEO_FALSE='#' +else + USE_OSX_VIDEO_TRUE='#' + USE_OSX_VIDEO_FALSE= +fi + + +case "$host" in + *-*darwin*) + ;; + *) + HAVE_OSX_VIDEO="no" + ;; +esac + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: QuickTime wrapper ***" >&5 +$as_echo "$as_me: *** checking feature: QuickTime wrapper ***" >&6;} +if test "xqtwrapper" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: qtwrapper ***" >&5 +$as_echo "$as_me: *** for plug-ins: qtwrapper ***" >&6;} +fi +NOUSE= +if test "x$USE_QUICKTIME" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-quicktime was given. +if test "${enable_quicktime+set}" = set; then : + enableval=$enable_quicktime; case "${enableval}" in + yes) USE_QUICKTIME=yes;; + no) USE_QUICKTIME=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-quicktime" "$LINENO" 5 ;; + esac +else + USE_QUICKTIME=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_QUICKTIME="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** qtwrapper pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** qtwrapper pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_QUICKTIME = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_QUICKTIME=no + + ac_fn_c_check_type "$LINENO" "SampleReferenceRecord" "ac_cv_type_SampleReferenceRecord" "#include +" +if test "x$ac_cv_type_SampleReferenceRecord" = x""yes; then : + HAVE_QUICKTIME="yes" +else + HAVE_QUICKTIME="no" +fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_QUICKTIME = xno; then + USE_QUICKTIME=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: qtwrapper" >&5 +$as_echo "$as_me: *** These plugins will be built: qtwrapper" >&6;} + fi +fi +if test x$USE_QUICKTIME = xyes; then + : + if test "xqtwrapper" != "x"; then + GST_PLUGINS_YES="\tqtwrapper\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_QUICKTIME /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: qtwrapper" >&5 +$as_echo "$as_me: *** These plugins will not be built: qtwrapper" >&6;} + if test "xqtwrapper" != "x"; then + GST_PLUGINS_NO="\tqtwrapper\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_QUICKTIME = xyes; then + USE_QUICKTIME_TRUE= + USE_QUICKTIME_FALSE='#' +else + USE_QUICKTIME_TRUE='#' + USE_QUICKTIME_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: POSIX shared memory source and sink ***" >&5 +$as_echo "$as_me: *** checking feature: POSIX shared memory source and sink ***" >&6;} +if test "xshm" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: shm ***" >&5 +$as_echo "$as_me: *** for plug-ins: shm ***" >&6;} +fi +NOUSE= +if test "x$USE_SHM" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-shm was given. +if test "${enable_shm+set}" = set; then : + enableval=$enable_shm; case "${enableval}" in + yes) USE_SHM=yes;; + no) USE_SHM=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-shm" "$LINENO" 5 ;; + esac +else + USE_SHM=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SHM="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** shm pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** shm pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SHM = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SHM=no + + if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shm_open in -lrt" >&5 +$as_echo_n "checking for shm_open in -lrt... " >&6; } +if test "${ac_cv_lib_rt_shm_open+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lrt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shm_open (); +int +main () +{ +return shm_open (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_rt_shm_open=yes +else + ac_cv_lib_rt_shm_open=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_rt_shm_open" >&5 +$as_echo "$ac_cv_lib_rt_shm_open" >&6; } +if test "x$ac_cv_lib_rt_shm_open" = x""yes; then : + ac_fn_c_check_decl "$LINENO" "MSG_NOSIGNAL" "ac_cv_have_decl_MSG_NOSIGNAL" " +#include + +" +if test "x$ac_cv_have_decl_MSG_NOSIGNAL" = x""yes; then : + HAVE_SHM=yes +else + HAVE_SHM=no +fi + +else + HAVE_SHM=no +fi + + else + HAVE_SHM=no + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SHM = xno; then + USE_SHM=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: shm" >&5 +$as_echo "$as_me: *** These plugins will be built: shm" >&6;} + fi +fi +if test x$USE_SHM = xyes; then + : + if test "xshm" != "x"; then + GST_PLUGINS_YES="\tshm\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SHM /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: shm" >&5 +$as_echo "$as_me: *** These plugins will not be built: shm" >&6;} + if test "xshm" != "x"; then + GST_PLUGINS_NO="\tshm\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SHM = xyes; then + USE_SHM_TRUE= + USE_SHM_FALSE='#' +else + USE_SHM_TRUE='#' + USE_SHM_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Video CD ***" >&5 +$as_echo "$as_me: *** checking feature: Video CD ***" >&6;} +if test "xvcdsrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: vcdsrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: vcdsrc ***" >&6;} +fi +NOUSE= +if test "x$USE_VCD" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-vcd was given. +if test "${enable_vcd+set}" = set; then : + enableval=$enable_vcd; case "${enableval}" in + yes) USE_VCD=yes;; + no) USE_VCD=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-vcd" "$LINENO" 5 ;; + esac +else + USE_VCD=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_VCD="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** vcdsrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** vcdsrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_VCD = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_VCD=no + + ac_fn_c_check_header_mongrel "$LINENO" "linux/cdrom.h" "ac_cv_header_linux_cdrom_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_cdrom_h" = x""yes; then : + HAVE_VCD="yes" +else + HAVE_VCD="no" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_VCD = xno; then + USE_VCD=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: vcdsrc" >&5 +$as_echo "$as_me: *** These plugins will be built: vcdsrc" >&6;} + fi +fi +if test x$USE_VCD = xyes; then + : + if test "xvcdsrc" != "x"; then + GST_PLUGINS_YES="\tvcdsrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_VCD /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: vcdsrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: vcdsrc" >&6;} + if test "xvcdsrc" != "x"; then + GST_PLUGINS_NO="\tvcdsrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_VCD = xyes; then + USE_VCD_TRUE= + USE_VCD_FALSE='#' +else + USE_VCD_TRUE='#' + USE_VCD_FALSE= +fi + + + + +if test "x$BUILD_EXTERNAL" = "xyes"; then + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: ASS/SSA renderer ***" >&5 +$as_echo "$as_me: *** checking feature: ASS/SSA renderer ***" >&6;} +if test "xassrender" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: assrender ***" >&5 +$as_echo "$as_me: *** for plug-ins: assrender ***" >&6;} +fi +NOUSE= +if test "x$USE_ASSRENDER" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-assrender was given. +if test "${enable_assrender+set}" = set; then : + enableval=$enable_assrender; case "${enableval}" in + yes) USE_ASSRENDER=yes;; + no) USE_ASSRENDER=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-assrender" "$LINENO" 5 ;; + esac +else + USE_ASSRENDER=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_ASSRENDER="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** assrender pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** assrender pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_ASSRENDER = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_ASSRENDER=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ASSRENDER" >&5 +$as_echo_n "checking for ASSRENDER... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$ASSRENDER_CFLAGS"; then + pkg_cv_ASSRENDER_CFLAGS="$ASSRENDER_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libass >= 0.9.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libass >= 0.9.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ASSRENDER_CFLAGS=`$PKG_CONFIG --cflags "libass >= 0.9.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$ASSRENDER_LIBS"; then + pkg_cv_ASSRENDER_LIBS="$ASSRENDER_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libass >= 0.9.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libass >= 0.9.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ASSRENDER_LIBS=`$PKG_CONFIG --libs "libass >= 0.9.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ASSRENDER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libass >= 0.9.4"` + else + ASSRENDER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libass >= 0.9.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$ASSRENDER_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_ASSRENDER="no" + +elif test $pkg_failed = untried; then + + HAVE_ASSRENDER="no" + +else + ASSRENDER_CFLAGS=$pkg_cv_ASSRENDER_CFLAGS + ASSRENDER_LIBS=$pkg_cv_ASSRENDER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_ASSRENDER="yes" +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_ASSRENDER = xno; then + USE_ASSRENDER=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: assrender" >&5 +$as_echo "$as_me: *** These plugins will be built: assrender" >&6;} + fi +fi +if test x$USE_ASSRENDER = xyes; then + : + if test "xassrender" != "x"; then + GST_PLUGINS_YES="\tassrender\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_ASSRENDER /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: assrender" >&5 +$as_echo "$as_me: *** These plugins will not be built: assrender" >&6;} + if test "xassrender" != "x"; then + GST_PLUGINS_NO="\tassrender\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_ASSRENDER = xyes; then + USE_ASSRENDER_TRUE= + USE_ASSRENDER_FALSE='#' +else + USE_ASSRENDER_TRUE='#' + USE_ASSRENDER_FALSE= +fi + + + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: amrwb library ***" >&5 +$as_echo "$as_me: *** checking feature: amrwb library ***" >&6;} +if test "xamrwbenc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: amrwbenc ***" >&5 +$as_echo "$as_me: *** for plug-ins: amrwbenc ***" >&6;} +fi +NOUSE= +if test "x$USE_AMRWB" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-amrwb was given. +if test "${enable_amrwb+set}" = set; then : + enableval=$enable_amrwb; case "${enableval}" in + yes) USE_AMRWB=yes;; + no) USE_AMRWB=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-amrwb" "$LINENO" 5 ;; + esac +else + USE_AMRWB=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_AMRWB="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** amrwbenc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** amrwbenc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_AMRWB = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_AMRWB=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for GP3E_IF_encode in -lamrwb" >&5 +$as_echo_n "checking for GP3E_IF_encode in -lamrwb... " >&6; } +if test "${ac_cv_lib_amrwb_GP3E_IF_encode+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lamrwb $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char GP3E_IF_encode (); +int +main () +{ +return GP3E_IF_encode (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_amrwb_GP3E_IF_encode=yes +else + ac_cv_lib_amrwb_GP3E_IF_encode=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_amrwb_GP3E_IF_encode" >&5 +$as_echo "$ac_cv_lib_amrwb_GP3E_IF_encode" >&6; } +if test "x$ac_cv_lib_amrwb_GP3E_IF_encode" = x""yes; then : + HAVE_AMRWB=yes +else + HAVE_AMRWB=no +fi + + if test "x$HAVE_AMRWB" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "amrwb/enc.h" "ac_cv_header_amrwb_enc_h" "$ac_includes_default" +if test "x$ac_cv_header_amrwb_enc_h" = x""yes; then : + : +else + HAVE_AMRWB=no +fi + + + if test "x$HAVE_AMRWB" = "xyes"; then + AMRWB_LIBS="-lamrwb" + + else + : + fi + else + : + fi + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_AMRWB = xno; then + USE_AMRWB=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: amrwbenc" >&5 +$as_echo "$as_me: *** These plugins will be built: amrwbenc" >&6;} + fi +fi +if test x$USE_AMRWB = xyes; then + : + if test "xamrwbenc" != "x"; then + GST_PLUGINS_YES="\tamrwbenc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_AMRWB /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: amrwbenc" >&5 +$as_echo "$as_me: *** These plugins will not be built: amrwbenc" >&6;} + if test "xamrwbenc" != "x"; then + GST_PLUGINS_NO="\tamrwbenc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_AMRWB = xyes; then + USE_AMRWB_TRUE= + USE_AMRWB_FALSE='#' +else + USE_AMRWB_TRUE='#' + USE_AMRWB_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: AirPort Express Wireless sink ***" >&5 +$as_echo "$as_me: *** checking feature: AirPort Express Wireless sink ***" >&6;} +if test "xapexsink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: apexsink ***" >&5 +$as_echo "$as_me: *** for plug-ins: apexsink ***" >&6;} +fi +NOUSE= +if test "x$USE_APEXSINK" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-apexsink was given. +if test "${enable_apexsink+set}" = set; then : + enableval=$enable_apexsink; case "${enableval}" in + yes) USE_APEXSINK=yes;; + no) USE_APEXSINK=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-apexsink" "$LINENO" 5 ;; + esac +else + USE_APEXSINK=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_APEXSINK="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** apexsink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** apexsink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_APEXSINK = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_APEXSINK=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for APEXSINK" >&5 +$as_echo_n "checking for APEXSINK... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$APEXSINK_CFLAGS"; then + pkg_cv_APEXSINK_CFLAGS="$APEXSINK_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" openssl >= 0.9.5 libcrypto \""; } >&5 + ($PKG_CONFIG --exists --print-errors " openssl >= 0.9.5 libcrypto ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_APEXSINK_CFLAGS=`$PKG_CONFIG --cflags " openssl >= 0.9.5 libcrypto " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$APEXSINK_LIBS"; then + pkg_cv_APEXSINK_LIBS="$APEXSINK_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \" openssl >= 0.9.5 libcrypto \""; } >&5 + ($PKG_CONFIG --exists --print-errors " openssl >= 0.9.5 libcrypto ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_APEXSINK_LIBS=`$PKG_CONFIG --libs " openssl >= 0.9.5 libcrypto " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + APEXSINK_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors " openssl >= 0.9.5 libcrypto "` + else + APEXSINK_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors " openssl >= 0.9.5 libcrypto "` + fi + # Put the nasty error message in config.log where it belongs + echo "$APEXSINK_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + APEXSINK="no" + +elif test $pkg_failed = untried; then + + APEXSINK="no" + +else + APEXSINK_CFLAGS=$pkg_cv_APEXSINK_CFLAGS + APEXSINK_LIBS=$pkg_cv_APEXSINK_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_APEXSINK="yes" + saved_LIBS="$LIBS" + LIBS="" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing socket" >&5 +$as_echo_n "checking for library containing socket... " >&6; } +if test "${ac_cv_search_socket+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char socket (); +int +main () +{ +return socket (); + ; + return 0; +} +_ACEOF +for ac_lib in '' socket; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_socket=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_socket+set}" = set; then : + break +fi +done +if test "${ac_cv_search_socket+set}" = set; then : + +else + ac_cv_search_socket=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_socket" >&5 +$as_echo "$ac_cv_search_socket" >&6; } +ac_res=$ac_cv_search_socket +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + APEXSINK="no" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing gethostbyname" >&5 +$as_echo_n "checking for library containing gethostbyname... " >&6; } +if test "${ac_cv_search_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +for ac_lib in '' nsl; do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO"; then : + ac_cv_search_gethostbyname=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext + if test "${ac_cv_search_gethostbyname+set}" = set; then : + break +fi +done +if test "${ac_cv_search_gethostbyname+set}" = set; then : + +else + ac_cv_search_gethostbyname=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_gethostbyname" >&5 +$as_echo "$ac_cv_search_gethostbyname" >&6; } +ac_res=$ac_cv_search_gethostbyname +if test "$ac_res" != no; then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + +else + APEXSINK="no" +fi + + APEXSINK_LIBS="$APEXSINK_LIBS $LIBS" + LIBS="$saved_LIBS" + + + +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_APEXSINK = xno; then + USE_APEXSINK=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: apexsink" >&5 +$as_echo "$as_me: *** These plugins will be built: apexsink" >&6;} + fi +fi +if test x$USE_APEXSINK = xyes; then + : + if test "xapexsink" != "x"; then + GST_PLUGINS_YES="\tapexsink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_APEXSINK /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: apexsink" >&5 +$as_echo "$as_me: *** These plugins will not be built: apexsink" >&6;} + if test "xapexsink" != "x"; then + GST_PLUGINS_NO="\tapexsink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_APEXSINK = xyes; then + USE_APEXSINK_TRUE= + USE_APEXSINK_FALSE='#' +else + USE_APEXSINK_TRUE='#' + USE_APEXSINK_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: bz2 library ***" >&5 +$as_echo "$as_me: *** checking feature: bz2 library ***" >&6;} +if test "xbz2" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: bz2 ***" >&5 +$as_echo "$as_me: *** for plug-ins: bz2 ***" >&6;} +fi +NOUSE= +if test "x$USE_BZ2" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-bz2 was given. +if test "${enable_bz2+set}" = set; then : + enableval=$enable_bz2; case "${enableval}" in + yes) USE_BZ2=yes;; + no) USE_BZ2=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-bz2" "$LINENO" 5 ;; + esac +else + USE_BZ2=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_BZ2="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** bz2 pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** bz2 pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_BZ2 = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_BZ2=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for BZ2_bzCompress in -lbz2" >&5 +$as_echo_n "checking for BZ2_bzCompress in -lbz2... " >&6; } +if test "${ac_cv_lib_bz2_BZ2_bzCompress+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbz2 $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char BZ2_bzCompress (); +int +main () +{ +return BZ2_bzCompress (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bz2_BZ2_bzCompress=yes +else + ac_cv_lib_bz2_BZ2_bzCompress=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bz2_BZ2_bzCompress" >&5 +$as_echo "$ac_cv_lib_bz2_BZ2_bzCompress" >&6; } +if test "x$ac_cv_lib_bz2_BZ2_bzCompress" = x""yes; then : + HAVE_BZ2=yes +else + HAVE_BZ2=no +fi + + if test "x$HAVE_BZ2" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "bzlib.h" "ac_cv_header_bzlib_h" "$ac_includes_default" +if test "x$ac_cv_header_bzlib_h" = x""yes; then : + : +else + HAVE_BZ2=no +fi + + + if test "x$HAVE_BZ2" = "xyes"; then + BZ2_LIBS="-lbz2" + else + : + fi + else + : + fi + + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_BZ2 = xno; then + USE_BZ2=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: bz2" >&5 +$as_echo "$as_me: *** These plugins will be built: bz2" >&6;} + fi +fi +if test x$USE_BZ2 = xyes; then + : + if test "xbz2" != "x"; then + GST_PLUGINS_YES="\tbz2\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_BZ2 /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: bz2" >&5 +$as_echo "$as_me: *** These plugins will not be built: bz2" >&6;} + if test "xbz2" != "x"; then + GST_PLUGINS_NO="\tbz2\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_BZ2 = xyes; then + USE_BZ2_TRUE= + USE_BZ2_FALSE='#' +else + USE_BZ2_TRUE='#' + USE_BZ2_FALSE= +fi + + + +#dnl *** cairo *** +#translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true) +#AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [ +# PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [ +# HAVE_CAIRO=no +# ]) +# AC_SUBST(CAIRO_CFLAGS) +# AC_SUBST(CAIRO_LIBS) +#]) + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: cdaudio ***" >&5 +$as_echo "$as_me: *** checking feature: cdaudio ***" >&6;} +if test "xcdaudio" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: cdaudio ***" >&5 +$as_echo "$as_me: *** for plug-ins: cdaudio ***" >&6;} +fi +NOUSE= +if test "x$USE_CDAUDIO" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-cdaudio was given. +if test "${enable_cdaudio+set}" = set; then : + enableval=$enable_cdaudio; case "${enableval}" in + yes) USE_CDAUDIO=yes;; + no) USE_CDAUDIO=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-cdaudio" "$LINENO" 5 ;; + esac +else + USE_CDAUDIO=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_CDAUDIO="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** cdaudio pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** cdaudio pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_CDAUDIO = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_CDAUDIO=no + + + # Extract the first word of "libcdaudio-config", so it can be a program name with args. +set dummy libcdaudio-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_CDAUDIO_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $CDAUDIO_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_CDAUDIO_CONFIG="$CDAUDIO_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_CDAUDIO_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_CDAUDIO_CONFIG" && ac_cv_path_CDAUDIO_CONFIG="no" + ;; +esac +fi +CDAUDIO_CONFIG=$ac_cv_path_CDAUDIO_CONFIG +if test -n "$CDAUDIO_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CDAUDIO_CONFIG" >&5 +$as_echo "$CDAUDIO_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x$CDAUDIO_CONFIG = xno; then + CDAUDIO_LIBS= + CDAUDIO_CFLAGS= + HAVE_CDAUDIO=no + else + if libcdaudio-config --plugin-libs &> /dev/null; then + CDAUDIO_LIBS=`libcdaudio-config --plugin-libs ` + else + CDAUDIO_LIBS=`libcdaudio-config --libs ` + fi + CDAUDIO_CFLAGS=`libcdaudio-config --cflags ` + HAVE_CDAUDIO=yes + fi + + + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_CDAUDIO = xno; then + USE_CDAUDIO=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: cdaudio" >&5 +$as_echo "$as_me: *** These plugins will be built: cdaudio" >&6;} + fi +fi +if test x$USE_CDAUDIO = xyes; then + : + if test "xcdaudio" != "x"; then + GST_PLUGINS_YES="\tcdaudio\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_CDAUDIO /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: cdaudio" >&5 +$as_echo "$as_me: *** These plugins will not be built: cdaudio" >&6;} + if test "xcdaudio" != "x"; then + GST_PLUGINS_NO="\tcdaudio\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_CDAUDIO = xyes; then + USE_CDAUDIO_TRUE= + USE_CDAUDIO_FALSE='#' +else + USE_CDAUDIO_TRUE='#' + USE_CDAUDIO_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: celt ***" >&5 +$as_echo "$as_me: *** checking feature: celt ***" >&6;} +if test "xcelt" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: celt ***" >&5 +$as_echo "$as_me: *** for plug-ins: celt ***" >&6;} +fi +NOUSE= +if test "x$USE_CELT" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-celt was given. +if test "${enable_celt+set}" = set; then : + enableval=$enable_celt; case "${enableval}" in + yes) USE_CELT=yes;; + no) USE_CELT=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-celt" "$LINENO" 5 ;; + esac +else + USE_CELT=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_CELT="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** celt pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** celt pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_CELT = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_CELT=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CELT" >&5 +$as_echo_n "checking for CELT... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_CFLAGS"; then + pkg_cv_CELT_CFLAGS="$CELT_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.5.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.5.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_CFLAGS=`$PKG_CONFIG --cflags "celt >= 0.5.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_LIBS"; then + pkg_cv_CELT_LIBS="$CELT_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.5.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.5.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_LIBS=`$PKG_CONFIG --libs "celt >= 0.5.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CELT_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "celt >= 0.5.0"` + else + CELT_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "celt >= 0.5.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CELT_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_CELT="no" + +elif test $pkg_failed = untried; then + + HAVE_CELT="no" + +else + CELT_CFLAGS=$pkg_cv_CELT_CFLAGS + CELT_LIBS=$pkg_cv_CELT_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_CELT 1" >>confdefs.h + + HAVE_CELT="yes" + +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CELT_0_7" >&5 +$as_echo_n "checking for CELT_0_7... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_7_CFLAGS"; then + pkg_cv_CELT_0_7_CFLAGS="$CELT_0_7_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.7.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.7.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_7_CFLAGS=`$PKG_CONFIG --cflags "celt >= 0.7.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_7_LIBS"; then + pkg_cv_CELT_0_7_LIBS="$CELT_0_7_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.7.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.7.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_7_LIBS=`$PKG_CONFIG --libs "celt >= 0.7.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CELT_0_7_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "celt >= 0.7.0"` + else + CELT_0_7_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "celt >= 0.7.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CELT_0_7_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + true + +elif test $pkg_failed = untried; then + + true + +else + CELT_0_7_CFLAGS=$pkg_cv_CELT_0_7_CFLAGS + CELT_0_7_LIBS=$pkg_cv_CELT_0_7_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_CELT_0_7 1" >>confdefs.h + + +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CELT_0_8" >&5 +$as_echo_n "checking for CELT_0_8... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_8_CFLAGS"; then + pkg_cv_CELT_0_8_CFLAGS="$CELT_0_8_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.8.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.8.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_8_CFLAGS=`$PKG_CONFIG --cflags "celt >= 0.8.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_8_LIBS"; then + pkg_cv_CELT_0_8_LIBS="$CELT_0_8_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.8.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.8.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_8_LIBS=`$PKG_CONFIG --libs "celt >= 0.8.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CELT_0_8_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "celt >= 0.8.0"` + else + CELT_0_8_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "celt >= 0.8.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CELT_0_8_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + true + +elif test $pkg_failed = untried; then + + true + +else + CELT_0_8_CFLAGS=$pkg_cv_CELT_0_8_CFLAGS + CELT_0_8_LIBS=$pkg_cv_CELT_0_8_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_CELT_0_8 1" >>confdefs.h + + +fi + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CELT_0_11" >&5 +$as_echo_n "checking for CELT_0_11... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_11_CFLAGS"; then + pkg_cv_CELT_0_11_CFLAGS="$CELT_0_11_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.11.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.11.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_11_CFLAGS=`$PKG_CONFIG --cflags "celt >= 0.11.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$CELT_0_11_LIBS"; then + pkg_cv_CELT_0_11_LIBS="$CELT_0_11_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"celt >= 0.11.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "celt >= 0.11.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CELT_0_11_LIBS=`$PKG_CONFIG --libs "celt >= 0.11.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CELT_0_11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "celt >= 0.11.0"` + else + CELT_0_11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "celt >= 0.11.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CELT_0_11_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + true + +elif test $pkg_failed = untried; then + + true + +else + CELT_0_11_CFLAGS=$pkg_cv_CELT_0_11_CFLAGS + CELT_0_11_LIBS=$pkg_cv_CELT_0_11_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + +$as_echo "#define HAVE_CELT_0_11 1" >>confdefs.h + + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_CELT = xno; then + USE_CELT=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: celt" >&5 +$as_echo "$as_me: *** These plugins will be built: celt" >&6;} + fi +fi +if test x$USE_CELT = xyes; then + : + if test "xcelt" != "x"; then + GST_PLUGINS_YES="\tcelt\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_CELT /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: celt" >&5 +$as_echo "$as_me: *** These plugins will not be built: celt" >&6;} + if test "xcelt" != "x"; then + GST_PLUGINS_NO="\tcelt\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_CELT = xyes; then + USE_CELT_TRUE= + USE_CELT_FALSE='#' +else + USE_CELT_TRUE='#' + USE_CELT_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Cog plugin ***" >&5 +$as_echo "$as_me: *** checking feature: Cog plugin ***" >&6;} +if test "xcog" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: cog ***" >&5 +$as_echo "$as_me: *** for plug-ins: cog ***" >&6;} +fi +NOUSE= +if test "x$USE_COG" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-cog was given. +if test "${enable_cog+set}" = set; then : + enableval=$enable_cog; case "${enableval}" in + yes) USE_COG=yes;; + no) USE_COG=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-cog" "$LINENO" 5 ;; + esac +else + USE_COG=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_COG="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** cog pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** cog pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_COG = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_COG=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for COG" >&5 +$as_echo_n "checking for COG... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$COG_CFLAGS"; then + pkg_cv_COG_CFLAGS="$COG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpng >= 1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_COG_CFLAGS=`$PKG_CONFIG --cflags "libpng >= 1.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$COG_LIBS"; then + pkg_cv_COG_LIBS="$COG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpng >= 1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpng >= 1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_COG_LIBS=`$PKG_CONFIG --libs "libpng >= 1.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + COG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libpng >= 1.2"` + else + COG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libpng >= 1.2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$COG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_COG="no" + +elif test $pkg_failed = untried; then + + HAVE_COG="no" + +else + COG_CFLAGS=$pkg_cv_COG_CFLAGS + COG_LIBS=$pkg_cv_COG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_COG="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_COG = xno; then + USE_COG=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: cog" >&5 +$as_echo "$as_me: *** These plugins will be built: cog" >&6;} + fi +fi +if test x$USE_COG = xyes; then + : + if test "xcog" != "x"; then + GST_PLUGINS_YES="\tcog\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_COG /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: cog" >&5 +$as_echo "$as_me: *** These plugins will not be built: cog" >&6;} + if test "xcog" != "x"; then + GST_PLUGINS_NO="\tcog\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_COG = xyes; then + USE_COG_TRUE= + USE_COG_FALSE='#' +else + USE_COG_TRUE='#' + USE_COG_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Curl plugin ***" >&5 +$as_echo "$as_me: *** checking feature: Curl plugin ***" >&6;} +if test "xcurl" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: curl ***" >&5 +$as_echo "$as_me: *** for plug-ins: curl ***" >&6;} +fi +NOUSE= +if test "x$USE_CURL" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-curl was given. +if test "${enable_curl+set}" = set; then : + enableval=$enable_curl; case "${enableval}" in + yes) USE_CURL=yes;; + no) USE_CURL=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-curl" "$LINENO" 5 ;; + esac +else + USE_CURL=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_CURL="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** curl pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** curl pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_CURL = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_CURL=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CURL" >&5 +$as_echo_n "checking for CURL... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$CURL_CFLAGS"; then + pkg_cv_CURL_CFLAGS="$CURL_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.21.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcurl >= 7.21.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURL_CFLAGS=`$PKG_CONFIG --cflags "libcurl >= 7.21.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$CURL_LIBS"; then + pkg_cv_CURL_LIBS="$CURL_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcurl >= 7.21.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcurl >= 7.21.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CURL_LIBS=`$PKG_CONFIG --libs "libcurl >= 7.21.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CURL_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libcurl >= 7.21.0"` + else + CURL_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libcurl >= 7.21.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$CURL_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_CURL="no" + +elif test $pkg_failed = untried; then + + HAVE_CURL="no" + +else + CURL_CFLAGS=$pkg_cv_CURL_CFLAGS + CURL_LIBS=$pkg_cv_CURL_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_CURL="yes" + for ac_header in unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +else + HAVE_CURL="no" +fi + +done + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for socket support needed by curlsink" >&5 +$as_echo_n "checking for socket support needed by curlsink... " >&6; } + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $HAVE_CURL" >&5 +$as_echo "$HAVE_CURL" >&6; } + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_CURL = xno; then + USE_CURL=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: curl" >&5 +$as_echo "$as_me: *** These plugins will be built: curl" >&6;} + fi +fi +if test x$USE_CURL = xyes; then + : + if test "xcurl" != "x"; then + GST_PLUGINS_YES="\tcurl\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_CURL /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: curl" >&5 +$as_echo "$as_me: *** These plugins will not be built: curl" >&6;} + if test "xcurl" != "x"; then + GST_PLUGINS_NO="\tcurl\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_CURL = xyes; then + USE_CURL_TRUE= + USE_CURL_FALSE='#' +else + USE_CURL_TRUE='#' + USE_CURL_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: libdc1394 ***" >&5 +$as_echo "$as_me: *** checking feature: libdc1394 ***" >&6;} +if test "xdc1394" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: dc1394 ***" >&5 +$as_echo "$as_me: *** for plug-ins: dc1394 ***" >&6;} +fi +NOUSE= +if test "x$USE_DC1394" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-dc1394 was given. +if test "${enable_dc1394+set}" = set; then : + enableval=$enable_dc1394; case "${enableval}" in + yes) USE_DC1394=yes;; + no) USE_DC1394=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-dc1394" "$LINENO" 5 ;; + esac +else + USE_DC1394=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DC1394="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** dc1394 pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** dc1394 pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DC1394 = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DC1394=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBDC1394" >&5 +$as_echo_n "checking for LIBDC1394... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$LIBDC1394_CFLAGS"; then + pkg_cv_LIBDC1394_CFLAGS="$LIBDC1394_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdc1394-2 >= 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdc1394-2 >= 2.0.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBDC1394_CFLAGS=`$PKG_CONFIG --cflags "libdc1394-2 >= 2.0.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$LIBDC1394_LIBS"; then + pkg_cv_LIBDC1394_LIBS="$LIBDC1394_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libdc1394-2 >= 2.0.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libdc1394-2 >= 2.0.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBDC1394_LIBS=`$PKG_CONFIG --libs "libdc1394-2 >= 2.0.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBDC1394_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libdc1394-2 >= 2.0.0"` + else + LIBDC1394_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libdc1394-2 >= 2.0.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBDC1394_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_DC1394="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +elif test $pkg_failed = untried; then + + HAVE_DC1394="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +else + LIBDC1394_CFLAGS=$pkg_cv_LIBDC1394_CFLAGS + LIBDC1394_LIBS=$pkg_cv_LIBDC1394_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then + HAVE_DC1394="yes" + else + HAVE_DC1394="no" + fi + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DC1394 = xno; then + USE_DC1394=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: dc1394" >&5 +$as_echo "$as_me: *** These plugins will be built: dc1394" >&6;} + fi +fi +if test x$USE_DC1394 = xyes; then + : + if test "xdc1394" != "x"; then + GST_PLUGINS_YES="\tdc1394\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DC1394 /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: dc1394" >&5 +$as_echo "$as_me: *** These plugins will not be built: dc1394" >&6;} + if test "xdc1394" != "x"; then + GST_PLUGINS_NO="\tdc1394\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DC1394 = xyes; then + USE_DC1394_TRUE= + USE_DC1394_FALSE='#' +else + USE_DC1394_TRUE='#' + USE_DC1394_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: decklink ***" >&5 +$as_echo "$as_me: *** checking feature: decklink ***" >&6;} +if test "xdecklink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: decklink ***" >&5 +$as_echo "$as_me: *** for plug-ins: decklink ***" >&6;} +fi +NOUSE= +if test "x$USE_DECKLINK" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-decklink was given. +if test "${enable_decklink+set}" = set; then : + enableval=$enable_decklink; case "${enableval}" in + yes) USE_DECKLINK=yes;; + no) USE_DECKLINK=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-decklink" "$LINENO" 5 ;; + esac +else + USE_DECKLINK=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DECKLINK="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** decklink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** decklink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DECKLINK = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DECKLINK=no + + HAVE_DECKLINK=no + case "$host" in + *-*linux*) + if test "x$HAVE_PTHREAD_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if test "${ac_cv_lib_dl_dlopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = x""yes; then : + + HAVE_DECKLINK=yes + DECKLINK_CXXFLAGS= + DECKLINK_LIBS="-lpthread -ldl" + +fi + + fi + ;; + *) + HAVE_DECKLINK=no + ;; + esac + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DECKLINK = xno; then + USE_DECKLINK=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: decklink" >&5 +$as_echo "$as_me: *** These plugins will be built: decklink" >&6;} + fi +fi +if test x$USE_DECKLINK = xyes; then + : + if test "xdecklink" != "x"; then + GST_PLUGINS_YES="\tdecklink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DECKLINK /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: decklink" >&5 +$as_echo "$as_me: *** These plugins will not be built: decklink" >&6;} + if test "xdecklink" != "x"; then + GST_PLUGINS_NO="\tdecklink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DECKLINK = xyes; then + USE_DECKLINK_TRUE= + USE_DECKLINK_FALSE='#' +else + USE_DECKLINK_TRUE='#' + USE_DECKLINK_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: directfb ***" >&5 +$as_echo "$as_me: *** checking feature: directfb ***" >&6;} +if test "xdfbvideosink " != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: dfbvideosink ***" >&5 +$as_echo "$as_me: *** for plug-ins: dfbvideosink ***" >&6;} +fi +NOUSE= +if test "x$USE_DIRECTFB" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-directfb was given. +if test "${enable_directfb+set}" = set; then : + enableval=$enable_directfb; case "${enableval}" in + yes) USE_DIRECTFB=yes;; + no) USE_DIRECTFB=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-directfb" "$LINENO" 5 ;; + esac +else + USE_DIRECTFB=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIRECTFB="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** dfbvideosink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** dfbvideosink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIRECTFB = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DIRECTFB=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRECTFB" >&5 +$as_echo_n "checking for DIRECTFB... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$DIRECTFB_CFLAGS"; then + pkg_cv_DIRECTFB_CFLAGS="$DIRECTFB_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DIRECTFB_CFLAGS=`$PKG_CONFIG --cflags "directfb >= 0.9.24" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$DIRECTFB_LIBS"; then + pkg_cv_DIRECTFB_LIBS="$DIRECTFB_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"directfb >= 0.9.24\""; } >&5 + ($PKG_CONFIG --exists --print-errors "directfb >= 0.9.24") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DIRECTFB_LIBS=`$PKG_CONFIG --libs "directfb >= 0.9.24" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "directfb >= 0.9.24"` + else + DIRECTFB_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "directfb >= 0.9.24"` + fi + # Put the nasty error message in config.log where it belongs + echo "$DIRECTFB_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_DIRECTFB="no" + +elif test $pkg_failed = untried; then + + HAVE_DIRECTFB="no" + +else + DIRECTFB_CFLAGS=$pkg_cv_DIRECTFB_CFLAGS + DIRECTFB_LIBS=$pkg_cv_DIRECTFB_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_DIRECTFB="yes" +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DIRECTFB = xno; then + USE_DIRECTFB=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: dfbvideosink " >&5 +$as_echo "$as_me: *** These plugins will be built: dfbvideosink " >&6;} + fi +fi +if test x$USE_DIRECTFB = xyes; then + : + if test "xdfbvideosink " != "x"; then + GST_PLUGINS_YES="\tdfbvideosink \n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIRECTFB /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: dfbvideosink " >&5 +$as_echo "$as_me: *** These plugins will not be built: dfbvideosink " >&6;} + if test "xdfbvideosink " != "x"; then + GST_PLUGINS_NO="\tdfbvideosink \n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIRECTFB = xyes; then + USE_DIRECTFB_TRUE= + USE_DIRECTFB_FALSE='#' +else + USE_DIRECTFB_TRUE='#' + USE_DIRECTFB_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: dirac ***" >&5 +$as_echo "$as_me: *** checking feature: dirac ***" >&6;} +if test "xdirac" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: dirac ***" >&5 +$as_echo "$as_me: *** for plug-ins: dirac ***" >&6;} +fi +NOUSE= +if test "x$USE_DIRAC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-dirac was given. +if test "${enable_dirac+set}" = set; then : + enableval=$enable_dirac; case "${enableval}" in + yes) USE_DIRAC=yes;; + no) USE_DIRAC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-dirac" "$LINENO" 5 ;; + esac +else + USE_DIRAC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIRAC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** dirac pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** dirac pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIRAC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DIRAC=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DIRAC" >&5 +$as_echo_n "checking for DIRAC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$DIRAC_CFLAGS"; then + pkg_cv_DIRAC_CFLAGS="$DIRAC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dirac >= 0.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dirac >= 0.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DIRAC_CFLAGS=`$PKG_CONFIG --cflags "dirac >= 0.10" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$DIRAC_LIBS"; then + pkg_cv_DIRAC_LIBS="$DIRAC_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dirac >= 0.10\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dirac >= 0.10") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DIRAC_LIBS=`$PKG_CONFIG --libs "dirac >= 0.10" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + DIRAC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "dirac >= 0.10"` + else + DIRAC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dirac >= 0.10"` + fi + # Put the nasty error message in config.log where it belongs + echo "$DIRAC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_DIRAC="no" + +elif test $pkg_failed = untried; then + + HAVE_DIRAC="no" + +else + DIRAC_CFLAGS=$pkg_cv_DIRAC_CFLAGS + DIRAC_LIBS=$pkg_cv_DIRAC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_DIRAC="yes" +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DIRAC = xno; then + USE_DIRAC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: dirac" >&5 +$as_echo "$as_me: *** These plugins will be built: dirac" >&6;} + fi +fi +if test x$USE_DIRAC = xyes; then + : + if test "xdirac" != "x"; then + GST_PLUGINS_YES="\tdirac\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIRAC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: dirac" >&5 +$as_echo "$as_me: *** These plugins will not be built: dirac" >&6;} + if test "xdirac" != "x"; then + GST_PLUGINS_NO="\tdirac\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIRAC = xyes; then + USE_DIRAC_TRUE= + USE_DIRAC_FALSE='#' +else + USE_DIRAC_TRUE='#' + USE_DIRAC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: dts library ***" >&5 +$as_echo "$as_me: *** checking feature: dts library ***" >&6;} +if test "xdtsdec" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: dtsdec ***" >&5 +$as_echo "$as_me: *** for plug-ins: dtsdec ***" >&6;} +fi +NOUSE= +if test "x$USE_DTS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-dts was given. +if test "${enable_dts+set}" = set; then : + enableval=$enable_dts; case "${enableval}" in + yes) USE_DTS=yes;; + no) USE_DTS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-dts" "$LINENO" 5 ;; + esac +else + USE_DTS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DTS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** dtsdec pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** dtsdec pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DTS = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DTS=no + + HAVE_DTS="yes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dca_init in -ldca" >&5 +$as_echo_n "checking for dca_init in -ldca... " >&6; } +if test "${ac_cv_lib_dca_dca_init+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldca $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dca_init (); +int +main () +{ +return dca_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dca_dca_init=yes +else + ac_cv_lib_dca_dca_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dca_dca_init" >&5 +$as_echo "$ac_cv_lib_dca_dca_init" >&6; } +if test "x$ac_cv_lib_dca_dca_init" = x""yes; then : + HAVE_DTS=yes +else + HAVE_DTS=no +fi + + if test "x$HAVE_DTS" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "dca.h" "ac_cv_header_dca_h" "$ac_includes_default" +if test "x$ac_cv_header_dca_h" = x""yes; then : + : +else + HAVE_DTS=no +fi + + + if test "x$HAVE_DTS" = "xyes"; then + DTS_LIBS="-ldca $LIBM" + else + HAVE_DTS="no" + fi + else + HAVE_DTS="no" + fi + + + + if test $HAVE_DTS = "no"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dts_init in -ldts_pic" >&5 +$as_echo_n "checking for dts_init in -ldts_pic... " >&6; } +if test "${ac_cv_lib_dts_pic_dts_init+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldts_pic $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dts_init (); +int +main () +{ +return dts_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dts_pic_dts_init=yes +else + ac_cv_lib_dts_pic_dts_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dts_pic_dts_init" >&5 +$as_echo "$ac_cv_lib_dts_pic_dts_init" >&6; } +if test "x$ac_cv_lib_dts_pic_dts_init" = x""yes; then : + HAVE_DTS=yes +else + HAVE_DTS=no +fi + + if test "x$HAVE_DTS" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "dts.h" "ac_cv_header_dts_h" "$ac_includes_default" +if test "x$ac_cv_header_dts_h" = x""yes; then : + : +else + HAVE_DTS=no +fi + + + if test "x$HAVE_DTS" = "xyes"; then + DTS_LIBS="-ldts_pic $LIBM" + +$as_echo "#define DTS_OLD 1" >>confdefs.h + + + else + : + fi + else + : + fi + + + + fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DTS = xno; then + USE_DTS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: dtsdec" >&5 +$as_echo "$as_me: *** These plugins will be built: dtsdec" >&6;} + fi +fi +if test x$USE_DTS = xyes; then + : + if test "xdtsdec" != "x"; then + GST_PLUGINS_YES="\tdtsdec\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DTS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: dtsdec" >&5 +$as_echo "$as_me: *** These plugins will not be built: dtsdec" >&6;} + if test "xdtsdec" != "x"; then + GST_PLUGINS_NO="\tdtsdec\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DTS = xyes; then + USE_DTS_TRUE= + USE_DTS_FALSE='#' +else + USE_DTS_TRUE='#' + USE_DTS_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: divx plugins ***" >&5 +$as_echo "$as_me: *** checking feature: divx plugins ***" >&6;} +if test "xdivx" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: divx ***" >&5 +$as_echo "$as_me: *** for plug-ins: divx ***" >&6;} +fi +NOUSE= +if test "x$USE_DIVX" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-divx was given. +if test "${enable_divx+set}" = set; then : + enableval=$enable_divx; case "${enableval}" in + yes) USE_DIVX=yes;; + no) USE_DIVX=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-divx" "$LINENO" 5 ;; + esac +else + USE_DIVX=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DIVX="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** divx pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** divx pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DIVX = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DIVX=no + + HAVE_DIVX=yes + ac_fn_c_check_header_mongrel "$LINENO" "encore2.h" "ac_cv_header_encore2_h" "$ac_includes_default" +if test "x$ac_cv_header_encore2_h" = x""yes; then : + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Divx4linux encore headers not found" >&5 +$as_echo "$as_me: WARNING: Divx4linux encore headers not found" >&2;} + HAVE_DIVX=no + +fi + + + if test x$HAVE_DIVX = xyes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for valid divx4linux encore version" >&5 +$as_echo_n "checking Checking for valid divx4linux encore version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if ENCORE_VERSION != 20021024 +#error Wrong version of divx encore libraries +#endif + +int +main () +{ + +return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + HAVE_DIVX=yes + +else + + HAVE_DIVX=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Wrong version of divx4linux installed" >&5 +$as_echo "$as_me: WARNING: Wrong version of divx4linux installed" >&2;} + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + if test x$HAVE_DIVX = xyes ; then + ac_fn_c_check_header_mongrel "$LINENO" "decore.h" "ac_cv_header_decore_h" "$ac_includes_default" +if test "x$ac_cv_header_decore_h" = x""yes; then : + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Divx4linux decoder headers not found" >&5 +$as_echo "$as_me: WARNING: Divx4linux decoder headers not found" >&2;} + HAVE_DIVX=no + +fi + + + fi + if test x$HAVE_DIVX = xyes ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for valid divx4linux decore version" >&5 +$as_echo_n "checking Checking for valid divx4linux decore version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#if DECORE_VERSION != 20021112 +#error Wrong version of divx decore libraries +#endif + +int +main () +{ + +return 0; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + HAVE_DIVX=yes + +else + + HAVE_DIVX=no + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Wrong version of divx4linux installed" >&5 +$as_echo "$as_me: WARNING: Wrong version of divx4linux installed" >&2;} + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + LIBS="$LIBM" + if test x$HAVE_DIVX = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for encore in -ldivxencore" >&5 +$as_echo_n "checking for encore in -ldivxencore... " >&6; } +if test "${ac_cv_lib_divxencore_encore+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldivxencore $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char encore (); +int +main () +{ +return encore (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_divxencore_encore=yes +else + ac_cv_lib_divxencore_encore=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_divxencore_encore" >&5 +$as_echo "$ac_cv_lib_divxencore_encore" >&6; } +if test "x$ac_cv_lib_divxencore_encore" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDIVXENCORE 1 +_ACEOF + + LIBS="-ldivxencore $LIBS" + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Divx4linux encore libs not found" >&5 +$as_echo "$as_me: WARNING: Divx4linux encore libs not found" >&2;} + HAVE_DIVX=no + +fi + + fi + if test x$HAVE_DIVX = xyes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for decore in -ldivxdecore" >&5 +$as_echo_n "checking for decore in -ldivxdecore... " >&6; } +if test "${ac_cv_lib_divxdecore_decore+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldivxdecore $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char decore (); +int +main () +{ +return decore (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_divxdecore_decore=yes +else + ac_cv_lib_divxdecore_decore=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_divxdecore_decore" >&5 +$as_echo "$ac_cv_lib_divxdecore_decore" >&6; } +if test "x$ac_cv_lib_divxdecore_decore" = x""yes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_LIBDIVXDECORE 1 +_ACEOF + + LIBS="-ldivxdecore $LIBS" + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Divx4linux decore libs not found" >&5 +$as_echo "$as_me: WARNING: Divx4linux decore libs not found" >&2;} + HAVE_DIVX=no + +fi + + fi + if test x$HAVE_DIVX = xyes; then + DIVXENC_LIBS="-ldivxencore $LIBM" + DIVXDEC_LIBS="-ldivxdecore $LIBM" + + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DIVX = xno; then + USE_DIVX=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: divx" >&5 +$as_echo "$as_me: *** These plugins will be built: divx" >&6;} + fi +fi +if test x$USE_DIVX = xyes; then + : + if test "xdivx" != "x"; then + GST_PLUGINS_YES="\tdivx\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DIVX /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: divx" >&5 +$as_echo "$as_me: *** These plugins will not be built: divx" >&6;} + if test "xdivx" != "x"; then + GST_PLUGINS_NO="\tdivx\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DIVX = xyes; then + USE_DIVX_TRUE= + USE_DIVX_FALSE='#' +else + USE_DIVX_TRUE='#' + USE_DIVX_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: resindvd plugin ***" >&5 +$as_echo "$as_me: *** checking feature: resindvd plugin ***" >&6;} +if test "xresindvd" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: resindvd ***" >&5 +$as_echo "$as_me: *** for plug-ins: resindvd ***" >&6;} +fi +NOUSE= +if test "x$USE_RESINDVD" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-resindvd was given. +if test "${enable_resindvd+set}" = set; then : + enableval=$enable_resindvd; case "${enableval}" in + yes) USE_RESINDVD=yes;; + no) USE_RESINDVD=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-resindvd" "$LINENO" 5 ;; + esac +else + USE_RESINDVD=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_RESINDVD="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** resindvd pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** resindvd pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_RESINDVD = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_RESINDVD=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for DVDNAV" >&5 +$as_echo_n "checking for DVDNAV... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$DVDNAV_CFLAGS"; then + pkg_cv_DVDNAV_CFLAGS="$DVDNAV_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav >= 4.1.2 dvdread >= 4.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav >= 4.1.2 dvdread >= 4.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DVDNAV_CFLAGS=`$PKG_CONFIG --cflags "dvdnav >= 4.1.2 dvdread >= 4.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$DVDNAV_LIBS"; then + pkg_cv_DVDNAV_LIBS="$DVDNAV_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"dvdnav >= 4.1.2 dvdread >= 4.1.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "dvdnav >= 4.1.2 dvdread >= 4.1.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_DVDNAV_LIBS=`$PKG_CONFIG --libs "dvdnav >= 4.1.2 dvdread >= 4.1.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "dvdnav >= 4.1.2 dvdread >= 4.1.2"` + else + DVDNAV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "dvdnav >= 4.1.2 dvdread >= 4.1.2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$DVDNAV_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_RESINDVD="no" + +elif test $pkg_failed = untried; then + + HAVE_RESINDVD="no" + +else + DVDNAV_CFLAGS=$pkg_cv_DVDNAV_CFLAGS + DVDNAV_LIBS=$pkg_cv_DVDNAV_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_RESINDVD="yes" +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_RESINDVD = xno; then + USE_RESINDVD=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: resindvd" >&5 +$as_echo "$as_me: *** These plugins will be built: resindvd" >&6;} + fi +fi +if test x$USE_RESINDVD = xyes; then + : + if test "xresindvd" != "x"; then + GST_PLUGINS_YES="\tresindvd\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_RESINDVD /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: resindvd" >&5 +$as_echo "$as_me: *** These plugins will not be built: resindvd" >&6;} + if test "xresindvd" != "x"; then + GST_PLUGINS_NO="\tresindvd\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_RESINDVD = xyes; then + USE_RESINDVD_TRUE= + USE_RESINDVD_FALSE='#' +else + USE_RESINDVD_TRUE='#' + USE_RESINDVD_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: AAC encoder plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: AAC encoder plug-in ***" >&6;} +if test "xfaac" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: faac ***" >&5 +$as_echo "$as_me: *** for plug-ins: faac ***" >&6;} +fi +NOUSE= +if test "x$USE_FAAC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-faac was given. +if test "${enable_faac+set}" = set; then : + enableval=$enable_faac; case "${enableval}" in + yes) USE_FAAC=yes;; + no) USE_FAAC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-faac" "$LINENO" 5 ;; + esac +else + USE_FAAC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_FAAC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** faac pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** faac pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_FAAC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_FAAC=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for faacEncOpen in -lfaac" >&5 +$as_echo_n "checking for faacEncOpen in -lfaac... " >&6; } +if test "${ac_cv_lib_faac_faacEncOpen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfaac $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char faacEncOpen (); +int +main () +{ +return faacEncOpen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_faac_faacEncOpen=yes +else + ac_cv_lib_faac_faacEncOpen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_faac_faacEncOpen" >&5 +$as_echo "$ac_cv_lib_faac_faacEncOpen" >&6; } +if test "x$ac_cv_lib_faac_faacEncOpen" = x""yes; then : + HAVE_FAAC=yes +else + HAVE_FAAC=no +fi + + if test "x$HAVE_FAAC" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "faac.h" "ac_cv_header_faac_h" "$ac_includes_default" +if test "x$ac_cv_header_faac_h" = x""yes; then : + : +else + HAVE_FAAC=no +fi + + + if test "x$HAVE_FAAC" = "xyes"; then + FAAC_LIBS="-lfaac $LIBM" + else + : + fi + else + : + fi + + + + + GIVEN_CFLAGS=$FAAC_CFLAGS + INCLUDE_DIRS=`echo | cpp -v 2>&1` + + INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` + for dir in $INCLUDE_DIRS; do + GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` + done + FAAC_CFLAGS=$GIVEN_CFLAGS + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_FAAC = xno; then + USE_FAAC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: faac" >&5 +$as_echo "$as_me: *** These plugins will be built: faac" >&6;} + fi +fi +if test x$USE_FAAC = xyes; then + : + if test "xfaac" != "x"; then + GST_PLUGINS_YES="\tfaac\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_FAAC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: faac" >&5 +$as_echo "$as_me: *** These plugins will not be built: faac" >&6;} + if test "xfaac" != "x"; then + GST_PLUGINS_NO="\tfaac\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_FAAC = xyes; then + USE_FAAC_TRUE= + USE_FAAC_FALSE='#' +else + USE_FAAC_TRUE='#' + USE_FAAC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: AAC decoder plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: AAC decoder plug-in ***" >&6;} +if test "xfaad" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: faad ***" >&5 +$as_echo "$as_me: *** for plug-ins: faad ***" >&6;} +fi +NOUSE= +if test "x$USE_FAAD" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-faad was given. +if test "${enable_faad+set}" = set; then : + enableval=$enable_faad; case "${enableval}" in + yes) USE_FAAD=yes;; + no) USE_FAAD=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-faad" "$LINENO" 5 ;; + esac +else + USE_FAAD=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_FAAD="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** faad pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** faad pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_FAAD = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_FAAD=no + + HAVE_FAAD="yes" + faad_hdr="" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for faacDecOpen in -lfaad" >&5 +$as_echo_n "checking for faacDecOpen in -lfaad... " >&6; } +if test "${ac_cv_lib_faad_faacDecOpen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfaad $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char faacDecOpen (); +int +main () +{ +return faacDecOpen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_faad_faacDecOpen=yes +else + ac_cv_lib_faad_faacDecOpen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_faad_faacDecOpen" >&5 +$as_echo "$ac_cv_lib_faad_faacDecOpen" >&6; } +if test "x$ac_cv_lib_faad_faacDecOpen" = x""yes; then : + HAVE_FAAD=yes +else + HAVE_FAAD=no +fi + + if test "x$HAVE_FAAD" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "faad.h" "ac_cv_header_faad_h" "$ac_includes_default" +if test "x$ac_cv_header_faad_h" = x""yes; then : + : +else + HAVE_FAAD=no +fi + + + if test "x$HAVE_FAAD" = "xyes"; then + FAAD_LIBS="-lfaad $LIBM" + else + HAVE_FAAD="no" + fi + else + HAVE_FAAD="no" + fi + + + + if test $HAVE_FAAD = "no"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for NeAACDecOpen in -lfaad" >&5 +$as_echo_n "checking for NeAACDecOpen in -lfaad... " >&6; } +if test "${ac_cv_lib_faad_NeAACDecOpen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lfaad $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char NeAACDecOpen (); +int +main () +{ +return NeAACDecOpen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_faad_NeAACDecOpen=yes +else + ac_cv_lib_faad_NeAACDecOpen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_faad_NeAACDecOpen" >&5 +$as_echo "$ac_cv_lib_faad_NeAACDecOpen" >&6; } +if test "x$ac_cv_lib_faad_NeAACDecOpen" = x""yes; then : + HAVE_FAAD=yes +else + HAVE_FAAD=no +fi + + if test "x$HAVE_FAAD" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "neaacdec.h" "ac_cv_header_neaacdec_h" "$ac_includes_default" +if test "x$ac_cv_header_neaacdec_h" = x""yes; then : + : +else + HAVE_FAAD=no +fi + + + if test "x$HAVE_FAAD" = "xyes"; then + FAAD_LIBS="-lfaad $LIBM" + +$as_echo "#define FAAD_IS_NEAAC 1" >>confdefs.h + + faad_hdr="neaacdec.h" + + else + + HAVE_FAAD="no" + + fi + else + + HAVE_FAAD="no" + + fi + + + + else + faad_hdr="faad.h" + fi + if test $HAVE_FAAD = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for FAAD >= 2.0" >&5 +$as_echo_n "checking Checking for FAAD >= 2.0... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE) + #error Not faad2 + #else + /* Release candidate of 2.0 is not good enough for us. This field + * was added only in 2.0 final and does not exist in 2.0-RC3 */ + faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1; + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + + HAVE_FAAD="yes" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking FAAD2 version in $faad_hdr" >&5 +$as_echo_n "checking Checking FAAD2 version in $faad_hdr... " >&6; } + for minor in 10 9 8 7 6 5 0; do + if test x$faad2_minor_version = "x"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include <$faad_hdr> + GST_CHECK_FAAD_VERSION FAAD2_VERSION + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "GST_CHECK_FAAD_VERSION \"2\.$minor\"" >/dev/null 2>&1; then : + + faad2_minor_version=$minor + +fi +rm -f conftest* + + fi + done + if test x$faad2_minor_version = "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no idea" >&5 +$as_echo "no idea" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: 2.$faad2_minor_version" >&5 +$as_echo "2.$faad2_minor_version" >&6; } + +cat >>confdefs.h <<_ACEOF +#define FAAD2_MINOR_VERSION $faad2_minor_version +_ACEOF + + fi + +else + + HAVE_FAAD="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + fi + + GIVEN_CFLAGS=$FAAD_CFLAGS + INCLUDE_DIRS=`echo | cpp -v 2>&1` + + INCLUDE_DIRS=`echo $INCLUDE_DIRS | sed -e 's/.*<...> search starts here://' | sed -e 's/End of search list.*//'` + for dir in $INCLUDE_DIRS; do + GIVEN_CFLAGS=`echo $GIVEN_CFLAGS | sed -e "s#-I$dir ##"` + done + FAAD_CFLAGS=$GIVEN_CFLAGS + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_FAAD = xno; then + USE_FAAD=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: faad" >&5 +$as_echo "$as_me: *** These plugins will be built: faad" >&6;} + fi +fi +if test x$USE_FAAD = xyes; then + : + if test "xfaad" != "x"; then + GST_PLUGINS_YES="\tfaad\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_FAAD /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: faad" >&5 +$as_echo "$as_me: *** These plugins will not be built: faad" >&6;} + if test "xfaad" != "x"; then + GST_PLUGINS_NO="\tfaad\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_FAAD = xyes; then + USE_FAAD_TRUE= + USE_FAAD_FALSE='#' +else + USE_FAAD_TRUE='#' + USE_FAAD_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: linux framebuffer ***" >&5 +$as_echo "$as_me: *** checking feature: linux framebuffer ***" >&6;} +if test "xfbdevsink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: fbdevsink ***" >&5 +$as_echo "$as_me: *** for plug-ins: fbdevsink ***" >&6;} +fi +NOUSE= +if test "x$USE_FBDEV" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-fbdev was given. +if test "${enable_fbdev+set}" = set; then : + enableval=$enable_fbdev; case "${enableval}" in + yes) USE_FBDEV=yes;; + no) USE_FBDEV=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-fbdev" "$LINENO" 5 ;; + esac +else + USE_FBDEV=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_FBDEV="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** fbdevsink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** fbdevsink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_FBDEV = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_FBDEV=no + + if test "x$HAVE_FBDEV" != "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "linux/fb.h" "ac_cv_header_linux_fb_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_fb_h" = x""yes; then : + HAVE_FBDEV=yes +else + HAVE_FBDEV=no +fi + + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_FBDEV = xno; then + USE_FBDEV=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: fbdevsink" >&5 +$as_echo "$as_me: *** These plugins will be built: fbdevsink" >&6;} + fi +fi +if test x$USE_FBDEV = xyes; then + : + if test "xfbdevsink" != "x"; then + GST_PLUGINS_YES="\tfbdevsink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_FBDEV /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: fbdevsink" >&5 +$as_echo "$as_me: *** These plugins will not be built: fbdevsink" >&6;} + if test "xfbdevsink" != "x"; then + GST_PLUGINS_NO="\tfbdevsink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_FBDEV = xyes; then + USE_FBDEV_TRUE= + USE_FBDEV_FALSE='#' +else + USE_FBDEV_TRUE='#' + USE_FBDEV_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Flite plugin ***" >&5 +$as_echo "$as_me: *** checking feature: Flite plugin ***" >&6;} +if test "xflite" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: flite ***" >&5 +$as_echo "$as_me: *** for plug-ins: flite ***" >&6;} +fi +NOUSE= +if test "x$USE_FLITE" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-flite was given. +if test "${enable_flite+set}" = set; then : + enableval=$enable_flite; case "${enableval}" in + yes) USE_FLITE=yes;; + no) USE_FLITE=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-flite" "$LINENO" 5 ;; + esac +else + USE_FLITE=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_FLITE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** flite pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** flite pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_FLITE = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_FLITE=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for flite_init in -lflite" >&5 +$as_echo_n "checking for flite_init in -lflite... " >&6; } +if test "${ac_cv_lib_flite_flite_init+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lflite $LIBM $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char flite_init (); +int +main () +{ +return flite_init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_flite_flite_init=yes +else + ac_cv_lib_flite_flite_init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_flite_flite_init" >&5 +$as_echo "$ac_cv_lib_flite_flite_init" >&6; } +if test "x$ac_cv_lib_flite_flite_init" = x""yes; then : + HAVE_FLITE=yes +else + HAVE_FLITE=no +fi + + if test "x$HAVE_FLITE" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "flite/flite.h" "ac_cv_header_flite_flite_h" "$ac_includes_default" +if test "x$ac_cv_header_flite_flite_h" = x""yes; then : + : +else + HAVE_FLITE=no +fi + + + if test "x$HAVE_FLITE" = "xyes"; then + FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM" + else + : + fi + else + : + fi + + + + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_FLITE = xno; then + USE_FLITE=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: flite" >&5 +$as_echo "$as_me: *** These plugins will be built: flite" >&6;} + fi +fi +if test x$USE_FLITE = xyes; then + : + if test "xflite" != "x"; then + GST_PLUGINS_YES="\tflite\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_FLITE /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: flite" >&5 +$as_echo "$as_me: *** These plugins will not be built: flite" >&6;} + if test "xflite" != "x"; then + GST_PLUGINS_NO="\tflite\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_FLITE = xyes; then + USE_FLITE_TRUE= + USE_FLITE_FALSE='#' +else + USE_FLITE_TRUE='#' + USE_FLITE_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: GSM library ***" >&5 +$as_echo "$as_me: *** checking feature: GSM library ***" >&6;} +if test "xgsmenc gsmdec" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gsmenc gsmdec ***" >&5 +$as_echo "$as_me: *** for plug-ins: gsmenc gsmdec ***" >&6;} +fi +NOUSE= +if test "x$USE_GSM" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-gsm was given. +if test "${enable_gsm+set}" = set; then : + enableval=$enable_gsm; case "${enableval}" in + yes) USE_GSM=yes;; + no) USE_GSM=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-gsm" "$LINENO" 5 ;; + esac +else + USE_GSM=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_GSM="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gsmenc gsmdec pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** gsmenc gsmdec pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_GSM = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_GSM=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gsm_create in -lgsm" >&5 +$as_echo_n "checking for gsm_create in -lgsm... " >&6; } +if test "${ac_cv_lib_gsm_gsm_create+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgsm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gsm_create (); +int +main () +{ +return gsm_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gsm_gsm_create=yes +else + ac_cv_lib_gsm_gsm_create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsm_gsm_create" >&5 +$as_echo "$ac_cv_lib_gsm_gsm_create" >&6; } +if test "x$ac_cv_lib_gsm_gsm_create" = x""yes; then : + HAVE_GSM=yes +else + HAVE_GSM=no +fi + + if test "x$HAVE_GSM" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "gsm.h" "ac_cv_header_gsm_h" "$ac_includes_default" +if test "x$ac_cv_header_gsm_h" = x""yes; then : + : +else + HAVE_GSM=no +fi + + + if test "x$HAVE_GSM" = "xyes"; then + GSM_LIBS="-lgsm" + else + : + fi + else + : + fi + + + + if test $HAVE_GSM != "yes"; then + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gsm_create in -lgsm" >&5 +$as_echo_n "checking for gsm_create in -lgsm... " >&6; } +if test "${ac_cv_lib_gsm_gsm_create+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgsm $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gsm_create (); +int +main () +{ +return gsm_create (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gsm_gsm_create=yes +else + ac_cv_lib_gsm_gsm_create=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gsm_gsm_create" >&5 +$as_echo "$ac_cv_lib_gsm_gsm_create" >&6; } +if test "x$ac_cv_lib_gsm_gsm_create" = x""yes; then : + HAVE_GSM=yes +else + HAVE_GSM=no +fi + + if test "x$HAVE_GSM" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "gsm/gsm.h" "ac_cv_header_gsm_gsm_h" "$ac_includes_default" +if test "x$ac_cv_header_gsm_gsm_h" = x""yes; then : + : +else + HAVE_GSM=no +fi + + + if test "x$HAVE_GSM" = "xyes"; then + GSM_LIBS="-lgsm" + else + : + fi + else + : + fi + + + + if test $HAVE_GSM = "yes"; then + +$as_echo "#define GSM_HEADER_IN_SUBDIR 1" >>confdefs.h + + fi + fi + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_GSM = xno; then + USE_GSM=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gsmenc gsmdec" >&5 +$as_echo "$as_me: *** These plugins will be built: gsmenc gsmdec" >&6;} + fi +fi +if test x$USE_GSM = xyes; then + : + if test "xgsmenc gsmdec" != "x"; then + GST_PLUGINS_YES="\tgsmenc gsmdec\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_GSM /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gsmenc gsmdec" >&5 +$as_echo "$as_me: *** These plugins will not be built: gsmenc gsmdec" >&6;} + if test "xgsmenc gsmdec" != "x"; then + GST_PLUGINS_NO="\tgsmenc gsmdec\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_GSM = xyes; then + USE_GSM_TRUE= + USE_GSM_FALSE='#' +else + USE_GSM_TRUE='#' + USE_GSM_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: jp2k ***" >&5 +$as_echo "$as_me: *** checking feature: jp2k ***" >&6;} +if test "xjp2kdec jp2kenc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: jp2kdec jp2kenc ***" >&5 +$as_echo "$as_me: *** for plug-ins: jp2kdec jp2kenc ***" >&6;} +fi +NOUSE= +if test "x$USE_JP2K" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-jp2k was given. +if test "${enable_jp2k+set}" = set; then : + enableval=$enable_jp2k; case "${enableval}" in + yes) USE_JP2K=yes;; + no) USE_JP2K=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-jp2k" "$LINENO" 5 ;; + esac +else + USE_JP2K=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_JP2K="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** jp2kdec jp2kenc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** jp2kdec jp2kenc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_JP2K = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_JP2K=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for jas_stream_fopen in -ljasper" >&5 +$as_echo_n "checking for jas_stream_fopen in -ljasper... " >&6; } +if test "${ac_cv_lib_jasper_jas_stream_fopen+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ljasper $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char jas_stream_fopen (); +int +main () +{ +return jas_stream_fopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_jasper_jas_stream_fopen=yes +else + ac_cv_lib_jasper_jas_stream_fopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_jasper_jas_stream_fopen" >&5 +$as_echo "$ac_cv_lib_jasper_jas_stream_fopen" >&6; } +if test "x$ac_cv_lib_jasper_jas_stream_fopen" = x""yes; then : + HAVE_JP2K=yes +else + HAVE_JP2K=no +fi + + if test "x$HAVE_JP2K" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "jasper/jasper.h" "ac_cv_header_jasper_jasper_h" "$ac_includes_default" +if test "x$ac_cv_header_jasper_jasper_h" = x""yes; then : + : +else + HAVE_JP2K=no +fi + + + if test "x$HAVE_JP2K" = "xyes"; then + JP2K_LIBS="-ljasper" + else + : + fi + else + : + fi + + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_JP2K = xno; then + USE_JP2K=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: jp2kdec jp2kenc" >&5 +$as_echo "$as_me: *** These plugins will be built: jp2kdec jp2kenc" >&6;} + fi +fi +if test x$USE_JP2K = xyes; then + : + if test "xjp2kdec jp2kenc" != "x"; then + GST_PLUGINS_YES="\tjp2kdec jp2kenc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_JP2K /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: jp2kdec jp2kenc" >&5 +$as_echo "$as_me: *** These plugins will not be built: jp2kdec jp2kenc" >&6;} + if test "xjp2kdec jp2kenc" != "x"; then + GST_PLUGINS_NO="\tjp2kdec jp2kenc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_JP2K = xyes; then + USE_JP2K_TRUE= + USE_JP2K_FALSE='#' +else + USE_JP2K_TRUE='#' + USE_JP2K_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Kate ***" >&5 +$as_echo "$as_me: *** checking feature: Kate ***" >&6;} +if test "xkate" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: kate ***" >&5 +$as_echo "$as_me: *** for plug-ins: kate ***" >&6;} +fi +NOUSE= +if test "x$USE_KATE" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-kate was given. +if test "${enable_kate+set}" = set; then : + enableval=$enable_kate; case "${enableval}" in + yes) USE_KATE=yes;; + no) USE_KATE=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-kate" "$LINENO" 5 ;; + esac +else + USE_KATE=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_KATE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** kate pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** kate pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_KATE = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_KATE=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for KATE" >&5 +$as_echo_n "checking for KATE... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$KATE_CFLAGS"; then + pkg_cv_KATE_CFLAGS="$KATE_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"kate >= 0.1.7\""; } >&5 + ($PKG_CONFIG --exists --print-errors "kate >= 0.1.7") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_KATE_CFLAGS=`$PKG_CONFIG --cflags "kate >= 0.1.7" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$KATE_LIBS"; then + pkg_cv_KATE_LIBS="$KATE_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"kate >= 0.1.7\""; } >&5 + ($PKG_CONFIG --exists --print-errors "kate >= 0.1.7") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_KATE_LIBS=`$PKG_CONFIG --libs "kate >= 0.1.7" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + KATE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "kate >= 0.1.7"` + else + KATE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "kate >= 0.1.7"` + fi + # Put the nasty error message in config.log where it belongs + echo "$KATE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_KATE="no" + +elif test $pkg_failed = untried; then + + HAVE_KATE="no" + +else + KATE_CFLAGS=$pkg_cv_KATE_CFLAGS + KATE_LIBS=$pkg_cv_KATE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_KATE="yes" +fi + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIGER" >&5 +$as_echo_n "checking for TIGER... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$TIGER_CFLAGS"; then + pkg_cv_TIGER_CFLAGS="$TIGER_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tiger >= 0.3.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "tiger >= 0.3.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIGER_CFLAGS=`$PKG_CONFIG --cflags "tiger >= 0.3.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$TIGER_LIBS"; then + pkg_cv_TIGER_LIBS="$TIGER_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"tiger >= 0.3.2\""; } >&5 + ($PKG_CONFIG --exists --print-errors "tiger >= 0.3.2") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIGER_LIBS=`$PKG_CONFIG --libs "tiger >= 0.3.2" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TIGER_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "tiger >= 0.3.2"` + else + TIGER_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "tiger >= 0.3.2"` + fi + # Put the nasty error message in config.log where it belongs + echo "$TIGER_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_TIGER="no" + + +elif test $pkg_failed = untried; then + + HAVE_TIGER="no" + + +else + TIGER_CFLAGS=$pkg_cv_TIGER_CFLAGS + TIGER_LIBS=$pkg_cv_TIGER_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_TIGER="yes" + +$as_echo "#define HAVE_TIGER 1" >>confdefs.h + + +fi + if test "x$HAVE_TIGER" = "xyes"; then + USE_TIGER_TRUE= + USE_TIGER_FALSE='#' +else + USE_TIGER_TRUE='#' + USE_TIGER_FALSE= +fi + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_KATE = xno; then + USE_KATE=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: kate" >&5 +$as_echo "$as_me: *** These plugins will be built: kate" >&6;} + fi +fi +if test x$USE_KATE = xyes; then + : + if test "xkate" != "x"; then + GST_PLUGINS_YES="\tkate\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_KATE /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: kate" >&5 +$as_echo "$as_me: *** These plugins will not be built: kate" >&6;} + if test "xkate" != "x"; then + GST_PLUGINS_NO="\tkate\n$GST_PLUGINS_NO" + fi + if false; then + USE_TIGER_TRUE= + USE_TIGER_FALSE='#' +else + USE_TIGER_TRUE='#' + USE_TIGER_FALSE= +fi + +fi + if test x$USE_KATE = xyes; then + USE_KATE_TRUE= + USE_KATE_FALSE='#' +else + USE_KATE_TRUE='#' + USE_KATE_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: ladspa ***" >&5 +$as_echo "$as_me: *** checking feature: ladspa ***" >&6;} +if test "xladspa" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ladspa ***" >&5 +$as_echo "$as_me: *** for plug-ins: ladspa ***" >&6;} +fi +NOUSE= +if test "x$USE_LADSPA" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-ladspa was given. +if test "${enable_ladspa+set}" = set; then : + enableval=$enable_ladspa; case "${enableval}" in + yes) USE_LADSPA=yes;; + no) USE_LADSPA=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-ladspa" "$LINENO" 5 ;; + esac +else + USE_LADSPA=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_LADSPA="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** ladspa pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** ladspa pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_LADSPA = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_LADSPA=no + + ac_fn_c_check_header_mongrel "$LINENO" "ladspa.h" "ac_cv_header_ladspa_h" "$ac_includes_default" +if test "x$ac_cv_header_ladspa_h" = x""yes; then : + HAVE_LADSPA="yes" +else + HAVE_LADSPA="no" +fi + + + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LRDF" >&5 +$as_echo_n "checking for LRDF... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$LRDF_CFLAGS"; then + pkg_cv_LRDF_CFLAGS="$LRDF_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lrdf\""; } >&5 + ($PKG_CONFIG --exists --print-errors "lrdf") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LRDF_CFLAGS=`$PKG_CONFIG --cflags "lrdf" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$LRDF_LIBS"; then + pkg_cv_LRDF_LIBS="$LRDF_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"lrdf\""; } >&5 + ($PKG_CONFIG --exists --print-errors "lrdf") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LRDF_LIBS=`$PKG_CONFIG --libs "lrdf" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LRDF_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "lrdf"` + else + LRDF_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "lrdf"` + fi + # Put the nasty error message in config.log where it belongs + echo "$LRDF_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_LRDF=no +elif test $pkg_failed = untried; then + HAVE_LRDF=no +else + LRDF_CFLAGS=$pkg_cv_LRDF_CFLAGS + LRDF_LIBS=$pkg_cv_LRDF_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_LRDF=yes +fi + if test $HAVE_LRDF = "yes"; then + +$as_echo "#define HAVE_LRDF 1" >>confdefs.h + + fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_LADSPA = xno; then + USE_LADSPA=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: ladspa" >&5 +$as_echo "$as_me: *** These plugins will be built: ladspa" >&6;} + fi +fi +if test x$USE_LADSPA = xyes; then + : + if test "xladspa" != "x"; then + GST_PLUGINS_YES="\tladspa\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_LADSPA /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: ladspa" >&5 +$as_echo "$as_me: *** These plugins will not be built: ladspa" >&6;} + if test "xladspa" != "x"; then + GST_PLUGINS_NO="\tladspa\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_LADSPA = xyes; then + USE_LADSPA_TRUE= + USE_LADSPA_FALSE='#' +else + USE_LADSPA_TRUE='#' + USE_LADSPA_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: lv2 ***" >&5 +$as_echo "$as_me: *** checking feature: lv2 ***" >&6;} +if test "xlv2" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: lv2 ***" >&5 +$as_echo "$as_me: *** for plug-ins: lv2 ***" >&6;} +fi +NOUSE= +if test "x$USE_LV2" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-lv2 was given. +if test "${enable_lv2+set}" = set; then : + enableval=$enable_lv2; case "${enableval}" in + yes) USE_LV2=yes;; + no) USE_LV2=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-lv2" "$LINENO" 5 ;; + esac +else + USE_LV2=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_LV2="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** lv2 pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** lv2 pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_LV2 = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_LV2=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SLV2" >&5 +$as_echo_n "checking for SLV2... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SLV2_CFLAGS"; then + pkg_cv_SLV2_CFLAGS="$SLV2_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"slv2 >= 0.6.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "slv2 >= 0.6.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SLV2_CFLAGS=`$PKG_CONFIG --cflags "slv2 >= 0.6.6" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SLV2_LIBS"; then + pkg_cv_SLV2_LIBS="$SLV2_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"slv2 >= 0.6.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "slv2 >= 0.6.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SLV2_LIBS=`$PKG_CONFIG --libs "slv2 >= 0.6.6" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SLV2_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "slv2 >= 0.6.6"` + else + SLV2_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "slv2 >= 0.6.6"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SLV2_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_LV2="no" +elif test $pkg_failed = untried; then + HAVE_LV2="no" +else + SLV2_CFLAGS=$pkg_cv_SLV2_CFLAGS + SLV2_LIBS=$pkg_cv_SLV2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_LV2="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_LV2 = xno; then + USE_LV2=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: lv2" >&5 +$as_echo "$as_me: *** These plugins will be built: lv2" >&6;} + fi +fi +if test x$USE_LV2 = xyes; then + : + if test "xlv2" != "x"; then + GST_PLUGINS_YES="\tlv2\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_LV2 /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: lv2" >&5 +$as_echo "$as_me: *** These plugins will not be built: lv2" >&6;} + if test "xlv2" != "x"; then + GST_PLUGINS_NO="\tlv2\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_LV2 = xyes; then + USE_LV2_TRUE= + USE_LV2_FALSE='#' +else + USE_LV2_TRUE='#' + USE_LV2_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mms protocol library ***" >&5 +$as_echo "$as_me: *** checking feature: mms protocol library ***" >&6;} +if test "xlibmms" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: libmms ***" >&5 +$as_echo "$as_me: *** for plug-ins: libmms ***" >&6;} +fi +NOUSE= +if test "x$USE_LIBMMS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-libmms was given. +if test "${enable_libmms+set}" = set; then : + enableval=$enable_libmms; case "${enableval}" in + yes) USE_LIBMMS=yes;; + no) USE_LIBMMS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-libmms" "$LINENO" 5 ;; + esac +else + USE_LIBMMS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_LIBMMS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** libmms pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** libmms pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_LIBMMS = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_LIBMMS=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for LIBMMS" >&5 +$as_echo_n "checking for LIBMMS... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$LIBMMS_CFLAGS"; then + pkg_cv_LIBMMS_CFLAGS="$LIBMMS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmms >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmms >= 0.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBMMS_CFLAGS=`$PKG_CONFIG --cflags "libmms >= 0.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$LIBMMS_LIBS"; then + pkg_cv_LIBMMS_LIBS="$LIBMMS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmms >= 0.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmms >= 0.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_LIBMMS_LIBS=`$PKG_CONFIG --libs "libmms >= 0.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + LIBMMS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmms >= 0.4"` + else + LIBMMS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmms >= 0.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$LIBMMS_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_LIBMMS="no" + +elif test $pkg_failed = untried; then + + HAVE_LIBMMS="no" + +else + LIBMMS_CFLAGS=$pkg_cv_LIBMMS_CFLAGS + LIBMMS_LIBS=$pkg_cv_LIBMMS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_LIBMMS="yes" +fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_LIBMMS = xno; then + USE_LIBMMS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: libmms" >&5 +$as_echo "$as_me: *** These plugins will be built: libmms" >&6;} + fi +fi +if test x$USE_LIBMMS = xyes; then + : + if test "xlibmms" != "x"; then + GST_PLUGINS_YES="\tlibmms\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_LIBMMS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: libmms" >&5 +$as_echo "$as_me: *** These plugins will not be built: libmms" >&6;} + if test "xlibmms" != "x"; then + GST_PLUGINS_NO="\tlibmms\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_LIBMMS = xyes; then + USE_LIBMMS_TRUE= + USE_LIBMMS_FALSE='#' +else + USE_LIBMMS_TRUE='#' + USE_LIBMMS_FALSE= +fi + + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Linear Systems SDI plugin ***" >&5 +$as_echo "$as_me: *** checking feature: Linear Systems SDI plugin ***" >&6;} +if test "xlinsys" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: linsys ***" >&5 +$as_echo "$as_me: *** for plug-ins: linsys ***" >&6;} +fi +NOUSE= +if test "x$USE_LINSYS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-linsys was given. +if test "${enable_linsys+set}" = set; then : + enableval=$enable_linsys; case "${enableval}" in + yes) USE_LINSYS=yes;; + no) USE_LINSYS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-linsys" "$LINENO" 5 ;; + esac +else + USE_LINSYS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_LINSYS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** linsys pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** linsys pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_LINSYS = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_LINSYS=no + + case "$host" in + *-*linux*) + HAVE_LINSYS=yes + ;; + *) + HAVE_LINSYS=no + ;; + esac + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_LINSYS = xno; then + USE_LINSYS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: linsys" >&5 +$as_echo "$as_me: *** These plugins will be built: linsys" >&6;} + fi +fi +if test x$USE_LINSYS = xyes; then + : + if test "xlinsys" != "x"; then + GST_PLUGINS_YES="\tlinsys\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_LINSYS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: linsys" >&5 +$as_echo "$as_me: *** These plugins will not be built: linsys" >&6;} + if test "xlinsys" != "x"; then + GST_PLUGINS_NO="\tlinsys\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_LINSYS = xyes; then + USE_LINSYS_TRUE= + USE_LINSYS_FALSE='#' +else + USE_LINSYS_TRUE='#' + USE_LINSYS_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: modplug ***" >&5 +$as_echo "$as_me: *** checking feature: modplug ***" >&6;} +if test "xmodplug" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: modplug ***" >&5 +$as_echo "$as_me: *** for plug-ins: modplug ***" >&6;} +fi +NOUSE= +if test "x$USE_MODPLUG" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-modplug was given. +if test "${enable_modplug+set}" = set; then : + enableval=$enable_modplug; case "${enableval}" in + yes) USE_MODPLUG=yes;; + no) USE_MODPLUG=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-modplug" "$LINENO" 5 ;; + esac +else + USE_MODPLUG=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MODPLUG="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** modplug pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** modplug pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MODPLUG = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MODPLUG=no + + if test "x$HAVE_CXX" != "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Not compiling modplug plugin as it requires a C++ compiler" >&5 +$as_echo "$as_me: WARNING: Not compiling modplug plugin as it requires a C++ compiler" >&2;} + HAVE_MODPLUG="no" + else + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MODPLUG" >&5 +$as_echo_n "checking for MODPLUG... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MODPLUG_CFLAGS"; then + pkg_cv_MODPLUG_CFLAGS="$MODPLUG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmodplug") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MODPLUG_CFLAGS=`$PKG_CONFIG --cflags "libmodplug" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MODPLUG_LIBS"; then + pkg_cv_MODPLUG_LIBS="$MODPLUG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmodplug\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmodplug") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MODPLUG_LIBS=`$PKG_CONFIG --libs "libmodplug" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MODPLUG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmodplug"` + else + MODPLUG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmodplug"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MODPLUG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_MODPLUG="no" +elif test $pkg_failed = untried; then + HAVE_MODPLUG="no" +else + MODPLUG_CFLAGS=$pkg_cv_MODPLUG_CFLAGS + MODPLUG_LIBS=$pkg_cv_MODPLUG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_MODPLUG="yes" +fi + fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MODPLUG = xno; then + USE_MODPLUG=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: modplug" >&5 +$as_echo "$as_me: *** These plugins will be built: modplug" >&6;} + fi +fi +if test x$USE_MODPLUG = xyes; then + : + if test "xmodplug" != "x"; then + GST_PLUGINS_YES="\tmodplug\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MODPLUG /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: modplug" >&5 +$as_echo "$as_me: *** These plugins will not be built: modplug" >&6;} + if test "xmodplug" != "x"; then + GST_PLUGINS_NO="\tmodplug\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MODPLUG = xyes; then + USE_MODPLUG_TRUE= + USE_MODPLUG_FALSE='#' +else + USE_MODPLUG_TRUE='#' + USE_MODPLUG_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: libmimic library ***" >&5 +$as_echo "$as_me: *** checking feature: libmimic library ***" >&6;} +if test "xmimic" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mimic ***" >&5 +$as_echo "$as_me: *** for plug-ins: mimic ***" >&6;} +fi +NOUSE= +if test "x$USE_MIMIC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-mimic was given. +if test "${enable_mimic+set}" = set; then : + enableval=$enable_mimic; case "${enableval}" in + yes) USE_MIMIC=yes;; + no) USE_MIMIC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-mimic" "$LINENO" 5 ;; + esac +else + USE_MIMIC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MIMIC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mimic pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** mimic pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MIMIC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MIMIC=no + + MIMDEC_REQUIRED=1.0 + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MIMIC" >&5 +$as_echo_n "checking for MIMIC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MIMIC_CFLAGS"; then + pkg_cv_MIMIC_CFLAGS="$MIMIC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmimic >= \$MIMDEC_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmimic >= $MIMDEC_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MIMIC_CFLAGS=`$PKG_CONFIG --cflags "libmimic >= $MIMDEC_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MIMIC_LIBS"; then + pkg_cv_MIMIC_LIBS="$MIMIC_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmimic >= \$MIMDEC_REQUIRED\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmimic >= $MIMDEC_REQUIRED") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MIMIC_LIBS=`$PKG_CONFIG --libs "libmimic >= $MIMDEC_REQUIRED" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MIMIC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmimic >= $MIMDEC_REQUIRED"` + else + MIMIC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmimic >= $MIMDEC_REQUIRED"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MIMIC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_MIMIC=no +elif test $pkg_failed = untried; then + HAVE_MIMIC=no +else + MIMIC_CFLAGS=$pkg_cv_MIMIC_CFLAGS + MIMIC_LIBS=$pkg_cv_MIMIC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_MIMIC=yes +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MIMIC = xno; then + USE_MIMIC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mimic" >&5 +$as_echo "$as_me: *** These plugins will be built: mimic" >&6;} + fi +fi +if test x$USE_MIMIC = xyes; then + : + if test "xmimic" != "x"; then + GST_PLUGINS_YES="\tmimic\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MIMIC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mimic" >&5 +$as_echo "$as_me: *** These plugins will not be built: mimic" >&6;} + if test "xmimic" != "x"; then + GST_PLUGINS_NO="\tmimic\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MIMIC = xyes; then + USE_MIMIC_TRUE= + USE_MIMIC_FALSE='#' +else + USE_MIMIC_TRUE='#' + USE_MIMIC_FALSE= +fi + + + +echo +if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + mjpegtools_api=10601 + +else + + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.8.0 mjpegtools < 1.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.8.0 mjpegtools < 1.9.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + + mjpegtools_api=10800 + +else + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MJPEG" >&5 +$as_echo_n "checking for MJPEG... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MJPEG_CFLAGS"; then + pkg_cv_MJPEG_CFLAGS="$MJPEG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MJPEG_CFLAGS=`$PKG_CONFIG --cflags "mjpegtools >= 1.9.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MJPEG_LIBS"; then + pkg_cv_MJPEG_LIBS="$MJPEG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MJPEG_LIBS=`$PKG_CONFIG --libs "mjpegtools >= 1.9.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MJPEG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mjpegtools >= 1.9.0"` + else + MJPEG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mjpegtools >= 1.9.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MJPEG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + mjpegtools_api=0 + +elif test $pkg_failed = untried; then + + mjpegtools_api=0 + +else + MJPEG_CFLAGS=$pkg_cv_MJPEG_CFLAGS + MJPEG_LIBS=$pkg_cv_MJPEG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + OLD_CFLAGS="$CFLAGS" + OLD_LIBS="$LIBS" + CFLAGS="$MJPEG_CFLAGS" + LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM -lpthread" + ac_fn_c_check_func "$LINENO" "mjpeg_loglev_t" "ac_cv_func_mjpeg_loglev_t" +if test "x$ac_cv_func_mjpeg_loglev_t" = x""yes; then : + + mjpegtools_api=10903 + +else + + mjpegtools_api=10900 + +fi + + CFLAGS="$OLD_CFLAGS" + LIBS="$OLD_LIBS" + +fi + +fi + +fi + +cat >>confdefs.h <<_ACEOF +#define GST_MJPEGTOOLS_API $mjpegtools_api +_ACEOF + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mpeg2enc ***" >&5 +$as_echo "$as_me: *** checking feature: mpeg2enc ***" >&6;} +if test "xmpeg2enc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mpeg2enc ***" >&5 +$as_echo "$as_me: *** for plug-ins: mpeg2enc ***" >&6;} +fi +NOUSE= +if test "x$USE_MPEG2ENC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-mpeg2enc was given. +if test "${enable_mpeg2enc+set}" = set; then : + enableval=$enable_mpeg2enc; case "${enableval}" in + yes) USE_MPEG2ENC=yes;; + no) USE_MPEG2ENC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-mpeg2enc" "$LINENO" 5 ;; + esac +else + USE_MPEG2ENC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MPEG2ENC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mpeg2enc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** mpeg2enc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MPEG2ENC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MPEG2ENC=no + + HAVE_MPEG2ENC="no" + if test x$HAVE_CXX = xyes ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPEG2ENC" >&5 +$as_echo_n "checking for MPEG2ENC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MPEG2ENC_CFLAGS"; then + pkg_cv_MPEG2ENC_CFLAGS="$MPEG2ENC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.6.1.93\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.6.1.93") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MPEG2ENC_CFLAGS=`$PKG_CONFIG --cflags "mjpegtools >= 1.6.1.93" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MPEG2ENC_LIBS"; then + pkg_cv_MPEG2ENC_LIBS="$MPEG2ENC_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.6.1.93\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.6.1.93") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MPEG2ENC_LIBS=`$PKG_CONFIG --libs "mjpegtools >= 1.6.1.93" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MPEG2ENC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mjpegtools >= 1.6.1.93"` + else + MPEG2ENC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mjpegtools >= 1.6.1.93"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MPEG2ENC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_MPEG2ENC="no" + +elif test $pkg_failed = untried; then + + HAVE_MPEG2ENC="no" + +else + MPEG2ENC_CFLAGS=$pkg_cv_MPEG2ENC_CFLAGS + MPEG2ENC_LIBS=$pkg_cv_MPEG2ENC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + touch config.h + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + OLD_CPPFLAGS="$CPPFLAGS" + CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS" + CPPFLAGS="$CPPFLAGS_GOOD -I." + mpeg2enc_headers_ok=no + ac_fn_cxx_check_header_mongrel "$LINENO" "mpeg2encoder.hh" "ac_cv_header_mpeg2encoder_hh" "$ac_includes_default" +if test "x$ac_cv_header_mpeg2encoder_hh" = x""yes; then : + + MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPEG2ENC_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for valid mpeg2enc objects" >&5 +$as_echo_n "checking for valid mpeg2enc objects... " >&6; } + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5 ; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include + #include + + int + main (int argc, + char *argv[]) + { + MPEG2EncOptions *options = new MPEG2EncOptions (); + MPEG2Encoder *encoder = new MPEG2Encoder (*options); + return 0; + } + +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + if test "$mjpegtools_api" -ge "10800"; then + ac_fn_cxx_check_header_mongrel "$LINENO" "mpeg2syntaxcodes.h" "ac_cv_header_mpeg2syntaxcodes_h" "$ac_includes_default" +if test "x$ac_cv_header_mpeg2syntaxcodes_h" = x""yes; then : + + mpeg2enc_headers_ok=yes + +else + + mpeg2enc_headers_ok=no + +fi + + + else + mpeg2enc_headers_ok=yes + fi + if test "x$mpeg2enc_headers_ok" = "xyes"; then + HAVE_MPEG2ENC="yes" + fi + CPP_FLAGS="$CPPFLAGS_GOOD" + + + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$OLD_LIBS" + +fi + + + + CPPFLAGS="$OLD_CPPFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MPEG2ENC = xno; then + USE_MPEG2ENC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mpeg2enc" >&5 +$as_echo "$as_me: *** These plugins will be built: mpeg2enc" >&6;} + fi +fi +if test x$USE_MPEG2ENC = xyes; then + : + if test "xmpeg2enc" != "x"; then + GST_PLUGINS_YES="\tmpeg2enc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MPEG2ENC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mpeg2enc" >&5 +$as_echo "$as_me: *** These plugins will not be built: mpeg2enc" >&6;} + if test "xmpeg2enc" != "x"; then + GST_PLUGINS_NO="\tmpeg2enc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MPEG2ENC = xyes; then + USE_MPEG2ENC_TRUE= + USE_MPEG2ENC_FALSE='#' +else + USE_MPEG2ENC_TRUE='#' + USE_MPEG2ENC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: mplex ***" >&5 +$as_echo "$as_me: *** checking feature: mplex ***" >&6;} +if test "xmplex" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mplex ***" >&5 +$as_echo "$as_me: *** for plug-ins: mplex ***" >&6;} +fi +NOUSE= +if test "x$USE_MPLEX" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-mplex was given. +if test "${enable_mplex+set}" = set; then : + enableval=$enable_mplex; case "${enableval}" in + yes) USE_MPLEX=yes;; + no) USE_MPLEX=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-mplex" "$LINENO" 5 ;; + esac +else + USE_MPLEX=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MPLEX="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mplex pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** mplex pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MPLEX = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MPLEX=no + + HAVE_MPLEX="no" + if test x$HAVE_CXX = xyes ; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MPLEX" >&5 +$as_echo_n "checking for MPLEX... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MPLEX_CFLAGS"; then + pkg_cv_MPLEX_CFLAGS="$MPLEX_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MPLEX_CFLAGS=`$PKG_CONFIG --cflags "mjpegtools >= 1.9.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MPLEX_LIBS"; then + pkg_cv_MPLEX_LIBS="$MPLEX_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"mjpegtools >= 1.9.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "mjpegtools >= 1.9.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MPLEX_LIBS=`$PKG_CONFIG --libs "mjpegtools >= 1.9.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MPLEX_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "mjpegtools >= 1.9.0"` + else + MPLEX_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "mjpegtools >= 1.9.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MPLEX_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_MPLEX="no" +elif test $pkg_failed = untried; then + HAVE_MPLEX="no" +else + MPLEX_CFLAGS=$pkg_cv_MPLEX_CFLAGS + MPLEX_LIBS=$pkg_cv_MPLEX_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + OLD_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS" + ac_fn_cxx_check_header_mongrel "$LINENO" "interact.hpp" "ac_cv_header_interact_hpp" "$ac_includes_default" +if test "x$ac_cv_header_interact_hpp" = x""yes; then : + + MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPLEX_LIBS" + OLD_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for valid mplex objects" >&5 +$as_echo_n "checking for valid mplex objects... " >&6; } + if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5 ; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#include +#include +int +main (int argc, + char *argv[]) +{ + class TestOutputStream : public OutputStream { + public: + TestOutputStream () : OutputStream () { } + void Write (uint8_t *a, unsigned int b) { } + void NextSegment () { } + uint64_t SegmentSize () { } + void Close () { } + int Open () { } +}; + MultiplexJob *job = new MultiplexJob (); + vector inputs; + job->SetupInputStreams (inputs); + TestOutputStream *out = new TestOutputStream (); + Multiplexor *mux = new Multiplexor(*job, *out, NULL); + return 0; +} + +_ACEOF +if ac_fn_cxx_try_run "$LINENO"; then : + + HAVE_MPLEX="yes" + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + LIBS="$OLD_LIBS" + LDFLAGS="$OLD_LDFLAGS" + +fi + + + CPPFLAGS="$OLD_CPPFLAGS" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +fi + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MPLEX = xno; then + USE_MPLEX=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mplex" >&5 +$as_echo "$as_me: *** These plugins will be built: mplex" >&6;} + fi +fi +if test x$USE_MPLEX = xyes; then + : + if test "xmplex" != "x"; then + GST_PLUGINS_YES="\tmplex\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MPLEX /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mplex" >&5 +$as_echo "$as_me: *** These plugins will not be built: mplex" >&6;} + if test "xmplex" != "x"; then + GST_PLUGINS_NO="\tmplex\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MPLEX = xyes; then + USE_MPLEX_TRUE= + USE_MPLEX_FALSE='#' +else + USE_MPLEX_TRUE='#' + USE_MPLEX_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: musepackdec ***" >&5 +$as_echo "$as_me: *** checking feature: musepackdec ***" >&6;} +if test "xmusepack" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: musepack ***" >&5 +$as_echo "$as_me: *** for plug-ins: musepack ***" >&6;} +fi +NOUSE= +if test "x$USE_MUSEPACK" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-musepack was given. +if test "${enable_musepack+set}" = set; then : + enableval=$enable_musepack; case "${enableval}" in + yes) USE_MUSEPACK=yes;; + no) USE_MUSEPACK=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-musepack" "$LINENO" 5 ;; + esac +else + USE_MUSEPACK=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MUSEPACK="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** musepack pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** musepack pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MUSEPACK = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MUSEPACK=no + + ac_fn_c_check_header_mongrel "$LINENO" "mpc/mpcdec.h" "ac_cv_header_mpc_mpcdec_h" "$ac_includes_default" +if test "x$ac_cv_header_mpc_mpcdec_h" = x""yes; then : + + HAVE_MUSEPACK="yes" + MUSEPACK_LIBS="-lmpcdec" + + +else + ac_fn_c_check_header_mongrel "$LINENO" "mpcdec/mpcdec.h" "ac_cv_header_mpcdec_mpcdec_h" "$ac_includes_default" +if test "x$ac_cv_header_mpcdec_mpcdec_h" = x""yes; then : + + HAVE_MUSEPACK="yes" + MUSEPACK_LIBS="-lmpcdec" + +$as_echo "#define MPC_IS_OLD_API 1" >>confdefs.h + + + +else + HAVE_MUSEPACK="no" +fi + + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MUSEPACK = xno; then + USE_MUSEPACK=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: musepack" >&5 +$as_echo "$as_me: *** These plugins will be built: musepack" >&6;} + fi +fi +if test x$USE_MUSEPACK = xyes; then + : + if test "xmusepack" != "x"; then + GST_PLUGINS_YES="\tmusepack\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MUSEPACK /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: musepack" >&5 +$as_echo "$as_me: *** These plugins will not be built: musepack" >&6;} + if test "xmusepack" != "x"; then + GST_PLUGINS_NO="\tmusepack\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MUSEPACK = xyes; then + USE_MUSEPACK_TRUE= + USE_MUSEPACK_FALSE='#' +else + USE_MUSEPACK_TRUE='#' + USE_MUSEPACK_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: musicbrainz tag generation ***" >&5 +$as_echo "$as_me: *** checking feature: musicbrainz tag generation ***" >&6;} +if test "xmusicbrainz" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: musicbrainz ***" >&5 +$as_echo "$as_me: *** for plug-ins: musicbrainz ***" >&6;} +fi +NOUSE= +if test "x$USE_MUSICBRAINZ" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-musicbrainz was given. +if test "${enable_musicbrainz+set}" = set; then : + enableval=$enable_musicbrainz; case "${enableval}" in + yes) USE_MUSICBRAINZ=yes;; + no) USE_MUSICBRAINZ=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-musicbrainz" "$LINENO" 5 ;; + esac +else + USE_MUSICBRAINZ=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MUSICBRAINZ="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** musicbrainz pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** musicbrainz pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MUSICBRAINZ = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MUSICBRAINZ=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for MUSICBRAINZ" >&5 +$as_echo_n "checking for MUSICBRAINZ... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$MUSICBRAINZ_CFLAGS"; then + pkg_cv_MUSICBRAINZ_CFLAGS="$MUSICBRAINZ_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmusicbrainz >= 2.1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmusicbrainz >= 2.1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MUSICBRAINZ_CFLAGS=`$PKG_CONFIG --cflags "libmusicbrainz >= 2.1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$MUSICBRAINZ_LIBS"; then + pkg_cv_MUSICBRAINZ_LIBS="$MUSICBRAINZ_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libmusicbrainz >= 2.1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libmusicbrainz >= 2.1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_MUSICBRAINZ_LIBS=`$PKG_CONFIG --libs "libmusicbrainz >= 2.1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + MUSICBRAINZ_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libmusicbrainz >= 2.1.0"` + else + MUSICBRAINZ_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libmusicbrainz >= 2.1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$MUSICBRAINZ_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_MUSICBRAINZ="no" +elif test $pkg_failed = untried; then + HAVE_MUSICBRAINZ="no" +else + MUSICBRAINZ_CFLAGS=$pkg_cv_MUSICBRAINZ_CFLAGS + MUSICBRAINZ_LIBS=$pkg_cv_MUSICBRAINZ_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_MUSICBRAINZ="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MUSICBRAINZ = xno; then + USE_MUSICBRAINZ=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: musicbrainz" >&5 +$as_echo "$as_me: *** These plugins will be built: musicbrainz" >&6;} + fi +fi +if test x$USE_MUSICBRAINZ = xyes; then + : + if test "xmusicbrainz" != "x"; then + GST_PLUGINS_YES="\tmusicbrainz\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MUSICBRAINZ /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: musicbrainz" >&5 +$as_echo "$as_me: *** These plugins will not be built: musicbrainz" >&6;} + if test "xmusicbrainz" != "x"; then + GST_PLUGINS_NO="\tmusicbrainz\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MUSICBRAINZ = xyes; then + USE_MUSICBRAINZ_TRUE= + USE_MUSICBRAINZ_FALSE='#' +else + USE_MUSICBRAINZ_TRUE='#' + USE_MUSICBRAINZ_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: MythTV client plugins ***" >&5 +$as_echo "$as_me: *** checking feature: MythTV client plugins ***" >&6;} +if test "xmythtvsrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: mythtvsrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: mythtvsrc ***" >&6;} +fi +NOUSE= +if test "x$USE_MYTHTV" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-mythtv was given. +if test "${enable_mythtv+set}" = set; then : + enableval=$enable_mythtv; case "${enableval}" in + yes) USE_MYTHTV=yes;; + no) USE_MYTHTV=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-mythtv" "$LINENO" 5 ;; + esac +else + USE_MYTHTV=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_MYTHTV="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** mythtvsrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** mythtvsrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_MYTHTV = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_MYTHTV=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GMYTH" >&5 +$as_echo_n "checking for GMYTH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GMYTH_CFLAGS"; then + pkg_cv_GMYTH_CFLAGS="$GMYTH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmyth >= 0.4 gmyth <= 0.7.99\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gmyth >= 0.4 gmyth <= 0.7.99") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GMYTH_CFLAGS=`$PKG_CONFIG --cflags "gmyth >= 0.4 gmyth <= 0.7.99" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GMYTH_LIBS"; then + pkg_cv_GMYTH_LIBS="$GMYTH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"gmyth >= 0.4 gmyth <= 0.7.99\""; } >&5 + ($PKG_CONFIG --exists --print-errors "gmyth >= 0.4 gmyth <= 0.7.99") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GMYTH_LIBS=`$PKG_CONFIG --libs "gmyth >= 0.4 gmyth <= 0.7.99" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GMYTH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "gmyth >= 0.4 gmyth <= 0.7.99"` + else + GMYTH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "gmyth >= 0.4 gmyth <= 0.7.99"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GMYTH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_MYTHTV="no" + +elif test $pkg_failed = untried; then + + HAVE_MYTHTV="no" + +else + GMYTH_CFLAGS=$pkg_cv_GMYTH_CFLAGS + GMYTH_LIBS=$pkg_cv_GMYTH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_MYTHTV="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_MYTHTV = xno; then + USE_MYTHTV=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: mythtvsrc" >&5 +$as_echo "$as_me: *** These plugins will be built: mythtvsrc" >&6;} + fi +fi +if test x$USE_MYTHTV = xyes; then + : + if test "xmythtvsrc" != "x"; then + GST_PLUGINS_YES="\tmythtvsrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_MYTHTV /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: mythtvsrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: mythtvsrc" >&6;} + if test "xmythtvsrc" != "x"; then + GST_PLUGINS_NO="\tmythtvsrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_MYTHTV = xyes; then + USE_MYTHTV_TRUE= + USE_MYTHTV_FALSE='#' +else + USE_MYTHTV_TRUE='#' + USE_MYTHTV_FALSE= +fi + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for X" >&5 +$as_echo_n "checking for X... " >&6; } + + +# Check whether --with-x was given. +if test "${with_x+set}" = set; then : + withval=$with_x; +fi + +# $have_x is `yes', `no', `disabled', or empty when we do not yet know. +if test "x$with_x" = xno; then + # The user explicitly disabled X. + have_x=disabled +else + case $x_includes,$x_libraries in #( + *\'*) as_fn_error $? "cannot use X directory names containing '" "$LINENO" 5 ;; #( + *,NONE | NONE,*) if test "${ac_cv_have_x+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + # One or both of the vars are not set, and there is no cached value. +ac_x_includes=no ac_x_libraries=no +rm -f -r conftest.dir +if mkdir conftest.dir; then + cd conftest.dir + cat >Imakefile <<'_ACEOF' +incroot: + @echo incroot='${INCROOT}' +usrlibdir: + @echo usrlibdir='${USRLIBDIR}' +libdir: + @echo libdir='${LIBDIR}' +_ACEOF + if (export CC; ${XMKMF-xmkmf}) >/dev/null 2>/dev/null && test -f Makefile; then + # GNU make sometimes prints "make[1]: Entering ...", which would confuse us. + for ac_var in incroot usrlibdir libdir; do + eval "ac_im_$ac_var=\`\${MAKE-make} $ac_var 2>/dev/null | sed -n 's/^$ac_var=//p'\`" + done + # Open Windows xmkmf reportedly sets LIBDIR instead of USRLIBDIR. + for ac_extension in a so sl dylib la dll; do + if test ! -f "$ac_im_usrlibdir/libX11.$ac_extension" && + test -f "$ac_im_libdir/libX11.$ac_extension"; then + ac_im_usrlibdir=$ac_im_libdir; break + fi + done + # Screen out bogus values from the imake configuration. They are + # bogus both because they are the default anyway, and because + # using them would break gcc on systems where it needs fixed includes. + case $ac_im_incroot in + /usr/include) ac_x_includes= ;; + *) test -f "$ac_im_incroot/X11/Xos.h" && ac_x_includes=$ac_im_incroot;; + esac + case $ac_im_usrlibdir in + /usr/lib | /usr/lib64 | /lib | /lib64) ;; + *) test -d "$ac_im_usrlibdir" && ac_x_libraries=$ac_im_usrlibdir ;; + esac + fi + cd .. + rm -f -r conftest.dir +fi + +# Standard set of common directories for X headers. +# Check X11 before X11Rn because it is often a symlink to the current release. +ac_x_header_dirs=' +/usr/X11/include +/usr/X11R7/include +/usr/X11R6/include +/usr/X11R5/include +/usr/X11R4/include + +/usr/include/X11 +/usr/include/X11R7 +/usr/include/X11R6 +/usr/include/X11R5 +/usr/include/X11R4 + +/usr/local/X11/include +/usr/local/X11R7/include +/usr/local/X11R6/include +/usr/local/X11R5/include +/usr/local/X11R4/include + +/usr/local/include/X11 +/usr/local/include/X11R7 +/usr/local/include/X11R6 +/usr/local/include/X11R5 +/usr/local/include/X11R4 + +/usr/X386/include +/usr/x386/include +/usr/XFree86/include/X11 + +/usr/include +/usr/local/include +/usr/unsupported/include +/usr/athena/include +/usr/local/x11r5/include +/usr/lpp/Xamples/include + +/usr/openwin/include +/usr/openwin/share/include' + +if test "$ac_x_includes" = no; then + # Guess where to find include files, by looking for Xlib.h. + # First, try using that file with no special directory specified. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # We can compile using X headers with no special include directory. +ac_x_includes= +else + for ac_dir in $ac_x_header_dirs; do + if test -r "$ac_dir/X11/Xlib.h"; then + ac_x_includes=$ac_dir + break + fi +done +fi +rm -f conftest.err conftest.i conftest.$ac_ext +fi # $ac_x_includes = no + +if test "$ac_x_libraries" = no; then + # Check for the libraries. + # See if we find them without any special options. + # Don't add to $LIBS permanently. + ac_save_LIBS=$LIBS + LIBS="-lX11 $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +XrmInitialize () + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + LIBS=$ac_save_LIBS +# We can link X programs with no special library path. +ac_x_libraries= +else + LIBS=$ac_save_LIBS +for ac_dir in `$as_echo "$ac_x_includes $ac_x_header_dirs" | sed s/include/lib/g` +do + # Don't even attempt the hair of trying to link an X program! + for ac_extension in a so sl dylib la dll; do + if test -r "$ac_dir/libX11.$ac_extension"; then + ac_x_libraries=$ac_dir + break 2 + fi + done +done +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi # $ac_x_libraries = no + +case $ac_x_includes,$ac_x_libraries in #( + no,* | *,no | *\'*) + # Didn't find X, or a directory has "'" in its name. + ac_cv_have_x="have_x=no";; #( + *) + # Record where we found X for the cache. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$ac_x_includes'\ + ac_x_libraries='$ac_x_libraries'" +esac +fi +;; #( + *) have_x=yes;; + esac + eval "$ac_cv_have_x" +fi # $with_x != no + +if test "$have_x" != yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $have_x" >&5 +$as_echo "$have_x" >&6; } + no_x=yes +else + # If each of the values was on the command line, it overrides each guess. + test "x$x_includes" = xNONE && x_includes=$ac_x_includes + test "x$x_libraries" = xNONE && x_libraries=$ac_x_libraries + # Update the cache value to reflect the command line values. + ac_cv_have_x="have_x=yes\ + ac_x_includes='$x_includes'\ + ac_x_libraries='$x_libraries'" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: libraries $x_libraries, headers $x_includes" >&5 +$as_echo "libraries $x_libraries, headers $x_includes" >&6; } +fi + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: nas plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: nas plug-in ***" >&6;} +if test "xnassink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: nassink ***" >&5 +$as_echo "$as_me: *** for plug-ins: nassink ***" >&6;} +fi +NOUSE= +if test "x$USE_NAS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-nas was given. +if test "${enable_nas+set}" = set; then : + enableval=$enable_nas; case "${enableval}" in + yes) USE_NAS=yes;; + no) USE_NAS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-nas" "$LINENO" 5 ;; + esac +else + USE_NAS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_NAS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** nassink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** nassink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_NAS = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_NAS=no + + HAVE_NAS="no" + + if test "$no_x" = yes; then + # Not all programs may use this symbol, but it does not hurt to define it. + +$as_echo "#define X_DISPLAY_MISSING 1" >>confdefs.h + + X_CFLAGS= X_PRE_LIBS= X_LIBS= X_EXTRA_LIBS= +else + if test -n "$x_includes"; then + X_CFLAGS="$X_CFLAGS -I$x_includes" + fi + + # It would also be nice to do this for all -L options, not just this one. + if test -n "$x_libraries"; then + X_LIBS="$X_LIBS -L$x_libraries" + # For Solaris; some versions of Sun CC require a space after -R and + # others require no space. Words are not sufficient . . . . + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether -R must be followed by a space" >&5 +$as_echo_n "checking whether -R must be followed by a space... " >&6; } + ac_xsave_LIBS=$LIBS; LIBS="$LIBS -R$x_libraries" + ac_xsave_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + X_LIBS="$X_LIBS -R$x_libraries" +else + LIBS="$ac_xsave_LIBS -R $x_libraries" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + X_LIBS="$X_LIBS -R $x_libraries" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: neither works" >&5 +$as_echo "neither works" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + ac_c_werror_flag=$ac_xsave_c_werror_flag + LIBS=$ac_xsave_LIBS + fi + + # Check for system-dependent libraries X programs must link with. + # Do this before checking for the system-independent R6 libraries + # (-lICE), since we may need -lsocket or whatever for X linking. + + if test "$ISC" = yes; then + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl_s -linet" + else + # Martyn Johnson says this is needed for Ultrix, if the X + # libraries were built with DECnet support. And Karl Berry says + # the Alpha needs dnet_stub (dnet does not exist). + ac_xsave_LIBS="$LIBS"; LIBS="$LIBS $X_LIBS -lX11" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char XOpenDisplay (); +int +main () +{ +return XOpenDisplay (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet... " >&6; } +if test "${ac_cv_lib_dnet_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_dnet_ntoa=yes +else + ac_cv_lib_dnet_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet" +fi + + if test $ac_cv_lib_dnet_dnet_ntoa = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dnet_ntoa in -ldnet_stub" >&5 +$as_echo_n "checking for dnet_ntoa in -ldnet_stub... " >&6; } +if test "${ac_cv_lib_dnet_stub_dnet_ntoa+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldnet_stub $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dnet_ntoa (); +int +main () +{ +return dnet_ntoa (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dnet_stub_dnet_ntoa=yes +else + ac_cv_lib_dnet_stub_dnet_ntoa=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dnet_stub_dnet_ntoa" >&5 +$as_echo "$ac_cv_lib_dnet_stub_dnet_ntoa" >&6; } +if test "x$ac_cv_lib_dnet_stub_dnet_ntoa" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -ldnet_stub" +fi + + fi +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$ac_xsave_LIBS" + + # msh@cis.ufl.edu says -lnsl (and -lsocket) are needed for his 386/AT, + # to get the SysV transport functions. + # Chad R. Larson says the Pyramis MIS-ES running DC/OSx (SVR4) + # needs -lnsl. + # The nsl library prevents programs from opening the X display + # on Irix 5.2, according to T.E. Dickey. + # The functions gethostbyname, getservbyname, and inet_addr are + # in -lbsd on LynxOS 3.0.1/i386, according to Lars Hecking. + ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = x""yes; then : + +fi + + if test $ac_cv_func_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +$as_echo_n "checking for gethostbyname in -lnsl... " >&6; } +if test "${ac_cv_lib_nsl_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_nsl_gethostbyname=yes +else + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +$as_echo "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lnsl" +fi + + if test $ac_cv_lib_nsl_gethostbyname = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lbsd" >&5 +$as_echo_n "checking for gethostbyname in -lbsd... " >&6; } +if test "${ac_cv_lib_bsd_gethostbyname+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lbsd $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname (); +int +main () +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_bsd_gethostbyname=yes +else + ac_cv_lib_bsd_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_bsd_gethostbyname" >&5 +$as_echo "$ac_cv_lib_bsd_gethostbyname" >&6; } +if test "x$ac_cv_lib_bsd_gethostbyname" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lbsd" +fi + + fi + fi + + # lieder@skyler.mavd.honeywell.com says without -lsocket, + # socket/setsockopt and other routines are undefined under SCO ODT + # 2.0. But -lsocket is broken on IRIX 5.2 (and is not necessary + # on later versions), says Simon Leinen: it contains gethostby* + # variants that don't use the name server (or something). -lsocket + # must be given before -lnsl if both are needed. We assume that + # if connect needs -lnsl, so does gethostbyname. + ac_fn_c_check_func "$LINENO" "connect" "ac_cv_func_connect" +if test "x$ac_cv_func_connect" = x""yes; then : + +fi + + if test $ac_cv_func_connect = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for connect in -lsocket" >&5 +$as_echo_n "checking for connect in -lsocket... " >&6; } +if test "${ac_cv_lib_socket_connect+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char connect (); +int +main () +{ +return connect (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_socket_connect=yes +else + ac_cv_lib_socket_connect=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_connect" >&5 +$as_echo "$ac_cv_lib_socket_connect" >&6; } +if test "x$ac_cv_lib_socket_connect" = x""yes; then : + X_EXTRA_LIBS="-lsocket $X_EXTRA_LIBS" +fi + + fi + + # Guillermo Gomez says -lposix is necessary on A/UX. + ac_fn_c_check_func "$LINENO" "remove" "ac_cv_func_remove" +if test "x$ac_cv_func_remove" = x""yes; then : + +fi + + if test $ac_cv_func_remove = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for remove in -lposix" >&5 +$as_echo_n "checking for remove in -lposix... " >&6; } +if test "${ac_cv_lib_posix_remove+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lposix $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char remove (); +int +main () +{ +return remove (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_posix_remove=yes +else + ac_cv_lib_posix_remove=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_posix_remove" >&5 +$as_echo "$ac_cv_lib_posix_remove" >&6; } +if test "x$ac_cv_lib_posix_remove" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lposix" +fi + + fi + + # BSDI BSD/OS 2.1 needs -lipc for XOpenDisplay. + ac_fn_c_check_func "$LINENO" "shmat" "ac_cv_func_shmat" +if test "x$ac_cv_func_shmat" = x""yes; then : + +fi + + if test $ac_cv_func_shmat = no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for shmat in -lipc" >&5 +$as_echo_n "checking for shmat in -lipc... " >&6; } +if test "${ac_cv_lib_ipc_shmat+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lipc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char shmat (); +int +main () +{ +return shmat (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ipc_shmat=yes +else + ac_cv_lib_ipc_shmat=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ipc_shmat" >&5 +$as_echo "$ac_cv_lib_ipc_shmat" >&6; } +if test "x$ac_cv_lib_ipc_shmat" = x""yes; then : + X_EXTRA_LIBS="$X_EXTRA_LIBS -lipc" +fi + + fi + fi + + # Check for libraries that X11R6 Xt/Xaw programs need. + ac_save_LDFLAGS=$LDFLAGS + test -n "$x_libraries" && LDFLAGS="$LDFLAGS -L$x_libraries" + # SM needs ICE to (dynamically) link under SunOS 4.x (so we have to + # check for ICE first), but we must link in the order -lSM -lICE or + # we get undefined symbols. So assume we have SM if we have ICE. + # These have to be linked with before -lX11, unlike the other + # libraries we check for below, so use a different variable. + # John Interrante, Karl Berry + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for IceConnectionNumber in -lICE" >&5 +$as_echo_n "checking for IceConnectionNumber in -lICE... " >&6; } +if test "${ac_cv_lib_ICE_IceConnectionNumber+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lICE $X_EXTRA_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IceConnectionNumber (); +int +main () +{ +return IceConnectionNumber (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_ICE_IceConnectionNumber=yes +else + ac_cv_lib_ICE_IceConnectionNumber=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_ICE_IceConnectionNumber" >&5 +$as_echo "$ac_cv_lib_ICE_IceConnectionNumber" >&6; } +if test "x$ac_cv_lib_ICE_IceConnectionNumber" = x""yes; then : + X_PRE_LIBS="$X_PRE_LIBS -lSM -lICE" +fi + + LDFLAGS=$ac_save_LDFLAGS + +fi + + ac_cflags_save="$CFLAGS" + ac_cppflags_save="$CPPFLAGS" + CFLAGS="$CFLAGS $X_CFLAGS" + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + ac_fn_c_check_header_mongrel "$LINENO" "X11/Xlib.h" "ac_cv_header_X11_Xlib_h" "$ac_includes_default" +if test "x$ac_cv_header_X11_Xlib_h" = x""yes; then : + HAVE_X="yes" +else + HAVE_X="no" +fi + + + + if test "x$HAVE_X" = "xno" + then + { $as_echo "$as_me:${as_lineno-$LINENO}: cannot find X11 development files" >&5 +$as_echo "$as_me: cannot find X11 development files" >&6;} + else + X_LIBS="$X_LIBS $X_PRE_LIBS $X_EXTRA_LIBS" + X_LIBS="$X_LIBS -lX11" + + + fi + + + CFLAGS="$ac_cflags_save" + CPPFLAGS="$ac_cppflags_save" + + if test "x$HAVE_X" = "xyes"; then + save_cppflags=$CFLAGS + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for AuOpenServer in -laudio" >&5 +$as_echo_n "checking for AuOpenServer in -laudio... " >&6; } +if test "${ac_cv_lib_audio_AuOpenServer+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-laudio $X_LIBS $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char AuOpenServer (); +int +main () +{ +return AuOpenServer (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_audio_AuOpenServer=yes +else + ac_cv_lib_audio_AuOpenServer=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_audio_AuOpenServer" >&5 +$as_echo "$ac_cv_lib_audio_AuOpenServer" >&6; } +if test "x$ac_cv_lib_audio_AuOpenServer" = x""yes; then : + HAVE_NAS=yes +else + HAVE_NAS=no +fi + + if test "x$HAVE_NAS" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "audio/audiolib.h" "ac_cv_header_audio_audiolib_h" "$ac_includes_default" +if test "x$ac_cv_header_audio_audiolib_h" = x""yes; then : + : +else + HAVE_NAS=no +fi + + + if test "x$HAVE_NAS" = "xyes"; then + NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS" + else + : + fi + else + : + fi + + + + CPPFLAGS="$save_cppflags" + fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_NAS = xno; then + USE_NAS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: nassink" >&5 +$as_echo "$as_me: *** These plugins will be built: nassink" >&6;} + fi +fi +if test x$USE_NAS = xyes; then + : + if test "xnassink" != "x"; then + GST_PLUGINS_YES="\tnassink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_NAS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: nassink" >&5 +$as_echo "$as_me: *** These plugins will not be built: nassink" >&6;} + if test "xnassink" != "x"; then + GST_PLUGINS_NO="\tnassink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_NAS = xyes; then + USE_NAS_TRUE= + USE_NAS_FALSE='#' +else + USE_NAS_TRUE='#' + USE_NAS_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: neon http client plugins ***" >&5 +$as_echo "$as_me: *** checking feature: neon http client plugins ***" >&6;} +if test "xneonhttpsrc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: neonhttpsrc ***" >&5 +$as_echo "$as_me: *** for plug-ins: neonhttpsrc ***" >&6;} +fi +NOUSE= +if test "x$USE_NEON" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-neon was given. +if test "${enable_neon+set}" = set; then : + enableval=$enable_neon; case "${enableval}" in + yes) USE_NEON=yes;; + no) USE_NEON=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-neon" "$LINENO" 5 ;; + esac +else + USE_NEON=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_NEON="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** neonhttpsrc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** neonhttpsrc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_NEON = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_NEON=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for NEON" >&5 +$as_echo_n "checking for NEON... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$NEON_CFLAGS"; then + pkg_cv_NEON_CFLAGS="$NEON_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"neon >= 0.27.0 neon <= 0.29.99\""; } >&5 + ($PKG_CONFIG --exists --print-errors "neon >= 0.27.0 neon <= 0.29.99") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NEON_CFLAGS=`$PKG_CONFIG --cflags "neon >= 0.27.0 neon <= 0.29.99" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$NEON_LIBS"; then + pkg_cv_NEON_LIBS="$NEON_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"neon >= 0.27.0 neon <= 0.29.99\""; } >&5 + ($PKG_CONFIG --exists --print-errors "neon >= 0.27.0 neon <= 0.29.99") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_NEON_LIBS=`$PKG_CONFIG --libs "neon >= 0.27.0 neon <= 0.29.99" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + NEON_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "neon >= 0.27.0 neon <= 0.29.99"` + else + NEON_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "neon >= 0.27.0 neon <= 0.29.99"` + fi + # Put the nasty error message in config.log where it belongs + echo "$NEON_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_NEON="no" + +elif test $pkg_failed = untried; then + + HAVE_NEON="no" + +else + NEON_CFLAGS=$pkg_cv_NEON_CFLAGS + NEON_LIBS=$pkg_cv_NEON_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_NEON="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_NEON = xno; then + USE_NEON=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: neonhttpsrc" >&5 +$as_echo "$as_me: *** These plugins will be built: neonhttpsrc" >&6;} + fi +fi +if test x$USE_NEON = xyes; then + : + if test "xneonhttpsrc" != "x"; then + GST_PLUGINS_YES="\tneonhttpsrc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_NEON /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: neonhttpsrc" >&5 +$as_echo "$as_me: *** These plugins will not be built: neonhttpsrc" >&6;} + if test "xneonhttpsrc" != "x"; then + GST_PLUGINS_NO="\tneonhttpsrc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_NEON = xyes; then + USE_NEON_TRUE= + USE_NEON_FALSE='#' +else + USE_NEON_TRUE='#' + USE_NEON_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: ofa plugins ***" >&5 +$as_echo "$as_me: *** checking feature: ofa plugins ***" >&6;} +if test "xofa" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: ofa ***" >&5 +$as_echo "$as_me: *** for plug-ins: ofa ***" >&6;} +fi +NOUSE= +if test "x$USE_OFA" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-ofa was given. +if test "${enable_ofa+set}" = set; then : + enableval=$enable_ofa; case "${enableval}" in + yes) USE_OFA=yes;; + no) USE_OFA=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-ofa" "$LINENO" 5 ;; + esac +else + USE_OFA=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_OFA="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** ofa pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** ofa pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_OFA = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_OFA=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OFA" >&5 +$as_echo_n "checking for OFA... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$OFA_CFLAGS"; then + pkg_cv_OFA_CFLAGS="$OFA_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libofa >= 0.9.3\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libofa >= 0.9.3") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OFA_CFLAGS=`$PKG_CONFIG --cflags "libofa >= 0.9.3" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$OFA_LIBS"; then + pkg_cv_OFA_LIBS="$OFA_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libofa >= 0.9.3\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libofa >= 0.9.3") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OFA_LIBS=`$PKG_CONFIG --libs "libofa >= 0.9.3" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + OFA_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libofa >= 0.9.3"` + else + OFA_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libofa >= 0.9.3"` + fi + # Put the nasty error message in config.log where it belongs + echo "$OFA_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_OFA="no" + +elif test $pkg_failed = untried; then + + HAVE_OFA="no" + +else + OFA_CFLAGS=$pkg_cv_OFA_CFLAGS + OFA_LIBS=$pkg_cv_OFA_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_OFA="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_OFA = xno; then + USE_OFA=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: ofa" >&5 +$as_echo "$as_me: *** These plugins will be built: ofa" >&6;} + fi +fi +if test x$USE_OFA = xyes; then + : + if test "xofa" != "x"; then + GST_PLUGINS_YES="\tofa\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_OFA /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: ofa" >&5 +$as_echo "$as_me: *** These plugins will not be built: ofa" >&6;} + if test "xofa" != "x"; then + GST_PLUGINS_NO="\tofa\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_OFA = xyes; then + USE_OFA_TRUE= + USE_OFA_FALSE='#' +else + USE_OFA_TRUE='#' + USE_OFA_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: opencv plugins ***" >&5 +$as_echo "$as_me: *** checking feature: opencv plugins ***" >&6;} +if test "xopencv" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: opencv ***" >&5 +$as_echo "$as_me: *** for plug-ins: opencv ***" >&6;} +fi +NOUSE= +if test "x$USE_OPENCV" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-opencv was given. +if test "${enable_opencv+set}" = set; then : + enableval=$enable_opencv; case "${enableval}" in + yes) USE_OPENCV=yes;; + no) USE_OPENCV=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-opencv" "$LINENO" 5 ;; + esac +else + USE_OPENCV=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_OPENCV="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** opencv pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** opencv pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_OPENCV = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_OPENCV=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for OPENCV" >&5 +$as_echo_n "checking for OPENCV... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$OPENCV_CFLAGS"; then + pkg_cv_OPENCV_CFLAGS="$OPENCV_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv <= 2.2.0 \""; } >&5 + ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv <= 2.2.0 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPENCV_CFLAGS=`$PKG_CONFIG --cflags "opencv >= 2.0.0 opencv <= 2.2.0 " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$OPENCV_LIBS"; then + pkg_cv_OPENCV_LIBS="$OPENCV_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"opencv >= 2.0.0 opencv <= 2.2.0 \""; } >&5 + ($PKG_CONFIG --exists --print-errors "opencv >= 2.0.0 opencv <= 2.2.0 ") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_OPENCV_LIBS=`$PKG_CONFIG --libs "opencv >= 2.0.0 opencv <= 2.2.0 " 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + OPENCV_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv <= 2.2.0 "` + else + OPENCV_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "opencv >= 2.0.0 opencv <= 2.2.0 "` + fi + # Put the nasty error message in config.log where it belongs + echo "$OPENCV_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_OPENCV="no" + +elif test $pkg_failed = untried; then + + HAVE_OPENCV="no" + +else + OPENCV_CFLAGS=$pkg_cv_OPENCV_CFLAGS + OPENCV_LIBS=$pkg_cv_OPENCV_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +$as_echo "$CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_prog_ac_ct_CXX+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +$as_echo "$ac_ct_CXX" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C++ compiler" >&5 +$as_echo_n "checking whether we are using the GNU C++ compiler... " >&6; } +if test "${ac_cv_cxx_compiler_gnu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +$as_echo "$ac_cv_cxx_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+set} +ac_save_CXXFLAGS=$CXXFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +$as_echo_n "checking whether $CXX accepts -g... " >&6; } +if test "${ac_cv_prog_cxx_g+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +else + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + +else + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +$as_echo "$ac_cv_prog_cxx_g" >&6; } +if test "$ac_test_CXXFLAGS" = set; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +depcc="$CXX" am_compiler_list= + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +$as_echo_n "checking dependency style of $depcc... " >&6; } +if test "${am_cv_CXX_dependencies_compiler_type+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named `D' -- because `-MD' means `put the output + # in D'. + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with + # Solaris 8's {/usr,}/bin/sh. + touch sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with `-c' and `-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle `-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # after this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvisualcpp | msvcmsys) + # This compiler won't grok `-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +$as_echo "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + OLD_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$OPENCV_CFLAGS + ac_fn_cxx_check_header_mongrel "$LINENO" "highgui.h" "ac_cv_header_highgui_h" "$ac_includes_default" +if test "x$ac_cv_header_highgui_h" = x""yes; then : + HAVE_HIGHGUI="yes" +else + HAVE_HIGHGUI="no" +fi + + + ac_fn_cxx_check_header_mongrel "$LINENO" "cvaux.h" "ac_cv_header_cvaux_h" "$ac_includes_default" +if test "x$ac_cv_header_cvaux_h" = x""yes; then : + HAVE_CVAUX="yes" +else + HAVE_CVAUX="no" +fi + + + CPPFLAGS=$OLD_CPPFLAGS + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test "x$HAVE_HIGHGUI" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: highgui.h could not be found." >&5 +$as_echo "highgui.h could not be found." >&6; } + HAVE_OPENCV="no" + elif test "x$HAVE_CVAUX" = "xno"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: cvaux.h could not be found." >&5 +$as_echo "cvaux.h could not be found." >&6; } + HAVE_OPENCV="no" + else + HAVE_OPENCV="yes" + fi + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_OPENCV = xno; then + USE_OPENCV=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: opencv" >&5 +$as_echo "$as_me: *** These plugins will be built: opencv" >&6;} + fi +fi +if test x$USE_OPENCV = xyes; then + : + if test "xopencv" != "x"; then + GST_PLUGINS_YES="\topencv\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_OPENCV /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: opencv" >&5 +$as_echo "$as_me: *** These plugins will not be built: opencv" >&6;} + if test "xopencv" != "x"; then + GST_PLUGINS_NO="\topencv\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_OPENCV = xyes; then + USE_OPENCV_TRUE= + USE_OPENCV_FALSE='#' +else + USE_OPENCV_TRUE='#' + USE_OPENCV_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: rsvg decoder ***" >&5 +$as_echo "$as_me: *** checking feature: rsvg decoder ***" >&6;} +if test "xrsvg" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: rsvg ***" >&5 +$as_echo "$as_me: *** for plug-ins: rsvg ***" >&6;} +fi +NOUSE= +if test "x$USE_RSVG" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-rsvg was given. +if test "${enable_rsvg+set}" = set; then : + enableval=$enable_rsvg; case "${enableval}" in + yes) USE_RSVG=yes;; + no) USE_RSVG=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-rsvg" "$LINENO" 5 ;; + esac +else + USE_RSVG=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_RSVG="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** rsvg pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** rsvg pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_RSVG = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_RSVG=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RSVG" >&5 +$as_echo_n "checking for RSVG... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$RSVG_CFLAGS"; then + pkg_cv_RSVG_CFLAGS="$RSVG_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14 cairo\""; } >&5 + ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14 cairo") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_RSVG_CFLAGS=`$PKG_CONFIG --cflags "librsvg-2.0 >= 2.14 cairo" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$RSVG_LIBS"; then + pkg_cv_RSVG_LIBS="$RSVG_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"librsvg-2.0 >= 2.14 cairo\""; } >&5 + ($PKG_CONFIG --exists --print-errors "librsvg-2.0 >= 2.14 cairo") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_RSVG_LIBS=`$PKG_CONFIG --libs "librsvg-2.0 >= 2.14 cairo" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + RSVG_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14 cairo"` + else + RSVG_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "librsvg-2.0 >= 2.14 cairo"` + fi + # Put the nasty error message in config.log where it belongs + echo "$RSVG_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_RSVG="no" + +elif test $pkg_failed = untried; then + + HAVE_RSVG="no" + +else + RSVG_CFLAGS=$pkg_cv_RSVG_CFLAGS + RSVG_LIBS=$pkg_cv_RSVG_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_RSVG="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_RSVG = xno; then + USE_RSVG=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: rsvg" >&5 +$as_echo "$as_me: *** These plugins will be built: rsvg" >&6;} + fi +fi +if test x$USE_RSVG = xyes; then + : + if test "xrsvg" != "x"; then + GST_PLUGINS_YES="\trsvg\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_RSVG /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: rsvg" >&5 +$as_echo "$as_me: *** These plugins will not be built: rsvg" >&6;} + if test "xrsvg" != "x"; then + GST_PLUGINS_NO="\trsvg\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_RSVG = xyes; then + USE_RSVG_TRUE= + USE_RSVG_FALSE='#' +else + USE_RSVG_TRUE='#' + USE_RSVG_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: timidity midi soft synth plugin ***" >&5 +$as_echo "$as_me: *** checking feature: timidity midi soft synth plugin ***" >&6;} +if test "xtimidity" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: timidity ***" >&5 +$as_echo "$as_me: *** for plug-ins: timidity ***" >&6;} +fi +NOUSE= +if test "x$USE_TIMIDITY" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-timidity was given. +if test "${enable_timidity+set}" = set; then : + enableval=$enable_timidity; case "${enableval}" in + yes) USE_TIMIDITY=yes;; + no) USE_TIMIDITY=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-timidity" "$LINENO" 5 ;; + esac +else + USE_TIMIDITY=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_TIMIDITY="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** timidity pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** timidity pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_TIMIDITY = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_TIMIDITY=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for TIMIDITY" >&5 +$as_echo_n "checking for TIMIDITY... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$TIMIDITY_CFLAGS"; then + pkg_cv_TIMIDITY_CFLAGS="$TIMIDITY_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtimidity\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtimidity") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIMIDITY_CFLAGS=`$PKG_CONFIG --cflags "libtimidity" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$TIMIDITY_LIBS"; then + pkg_cv_TIMIDITY_LIBS="$TIMIDITY_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libtimidity\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libtimidity") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_TIMIDITY_LIBS=`$PKG_CONFIG --libs "libtimidity" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + TIMIDITY_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libtimidity"` + else + TIMIDITY_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libtimidity"` + fi + # Put the nasty error message in config.log where it belongs + echo "$TIMIDITY_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_TIMIDITY="no" + +elif test $pkg_failed = untried; then + + HAVE_TIMIDITY="no" + +else + TIMIDITY_CFLAGS=$pkg_cv_TIMIDITY_CFLAGS + TIMIDITY_LIBS=$pkg_cv_TIMIDITY_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_TIMIDITY="yes", + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for timidity.cfg" >&5 +$as_echo_n "checking for timidity.cfg... " >&6; } + timidity_cfg="" + if test -r /etc/timidity.cfg; then + timidity_cfg=/etc/timidity.cfg + elif test -r /etc/timidity/timidity.cfg; then + timidity_cfg=/etc/timidity/timidity.cfg + elif test -r /usr/share/timidity/timidity.cfg; then + timidity_cfg=/usr/share/timidity/timidity.cfg + elif test -r /usr/local/share/timidity/timidity.cfg; then + timidity_cfg=/usr/local/share/timidity/timidity.cfg + fi + if test "x$timidity_cfg" != "x"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $timidity_cfg" >&5 +$as_echo "$timidity_cfg" >&6; } + +cat >>confdefs.h <<_ACEOF +#define TIMIDITY_CFG "$timidity_cfg" +_ACEOF + + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + fi + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_TIMIDITY = xno; then + USE_TIMIDITY=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: timidity" >&5 +$as_echo "$as_me: *** These plugins will be built: timidity" >&6;} + fi +fi +if test x$USE_TIMIDITY = xyes; then + : + if test "xtimidity" != "x"; then + GST_PLUGINS_YES="\ttimidity\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_TIMIDITY /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: timidity" >&5 +$as_echo "$as_me: *** These plugins will not be built: timidity" >&6;} + if test "xtimidity" != "x"; then + GST_PLUGINS_NO="\ttimidity\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_TIMIDITY = xyes; then + USE_TIMIDITY_TRUE= + USE_TIMIDITY_FALSE='#' +else + USE_TIMIDITY_TRUE='#' + USE_TIMIDITY_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: wildmidi midi soft synth plugin ***" >&5 +$as_echo "$as_me: *** checking feature: wildmidi midi soft synth plugin ***" >&6;} +if test "xwildmidi" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: wildmidi ***" >&5 +$as_echo "$as_me: *** for plug-ins: wildmidi ***" >&6;} +fi +NOUSE= +if test "x$USE_WILDMIDI" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-wildmidi was given. +if test "${enable_wildmidi+set}" = set; then : + enableval=$enable_wildmidi; case "${enableval}" in + yes) USE_WILDMIDI=yes;; + no) USE_WILDMIDI=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-wildmidi" "$LINENO" 5 ;; + esac +else + USE_WILDMIDI=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_WILDMIDI="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** wildmidi pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** wildmidi pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_WILDMIDI = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_WILDMIDI=no + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WildMidi_Init in -lWildMidi" >&5 +$as_echo_n "checking for WildMidi_Init in -lWildMidi... " >&6; } +if test "${ac_cv_lib_WildMidi_WildMidi_Init+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lWildMidi $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char WildMidi_Init (); +int +main () +{ +return WildMidi_Init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_WildMidi_WildMidi_Init=yes +else + ac_cv_lib_WildMidi_WildMidi_Init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_WildMidi_WildMidi_Init" >&5 +$as_echo "$ac_cv_lib_WildMidi_WildMidi_Init" >&6; } +if test "x$ac_cv_lib_WildMidi_WildMidi_Init" = x""yes; then : + HAVE_WILDMIDI=yes +else + HAVE_WILDMIDI=no +fi + + if test "x$HAVE_WILDMIDI" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "wildmidi_lib.h" "ac_cv_header_wildmidi_lib_h" "$ac_includes_default" +if test "x$ac_cv_header_wildmidi_lib_h" = x""yes; then : + : +else + HAVE_WILDMIDI=no +fi + + + if test "x$HAVE_WILDMIDI" = "xyes"; then + WILDMIDI_LIBS="-lWildMidi" + else + : + fi + else + : + fi + + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for WildMidi_LoadSamples in -lWildMidi" >&5 +$as_echo_n "checking for WildMidi_LoadSamples in -lWildMidi... " >&6; } +if test "${ac_cv_lib_WildMidi_WildMidi_LoadSamples+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lWildMidi $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char WildMidi_LoadSamples (); +int +main () +{ +return WildMidi_LoadSamples (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_WildMidi_WildMidi_LoadSamples=yes +else + ac_cv_lib_WildMidi_WildMidi_LoadSamples=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_WildMidi_WildMidi_LoadSamples" >&5 +$as_echo "$ac_cv_lib_WildMidi_WildMidi_LoadSamples" >&6; } +if test "x$ac_cv_lib_WildMidi_WildMidi_LoadSamples" = x""yes; then : + +$as_echo "#define HAVE_WILDMIDI_0_2_2 1" >>confdefs.h + +fi + + + if test "x$HAVE_WILDMIDI" = "xyes"; then + WILDMIDI_CFLAGS= + WILDMIDI_LIBS=-lWildMidi + { $as_echo "$as_me:${as_lineno-$LINENO}: compiling gstWildMidi" >&5 +$as_echo "$as_me: compiling gstWildMidi" >&6;} + else + WILDMIDI_CFLAGS= + WILDMIDI_LIBS= + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: no WildMidi library found (libWildMidi)" >&5 +$as_echo "$as_me: WARNING: no WildMidi library found (libWildMidi)" >&2;} + fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_WILDMIDI = xno; then + USE_WILDMIDI=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: wildmidi" >&5 +$as_echo "$as_me: *** These plugins will be built: wildmidi" >&6;} + fi +fi +if test x$USE_WILDMIDI = xyes; then + : + if test "xwildmidi" != "x"; then + GST_PLUGINS_YES="\twildmidi\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_WILDMIDI /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: wildmidi" >&5 +$as_echo "$as_me: *** These plugins will not be built: wildmidi" >&6;} + if test "xwildmidi" != "x"; then + GST_PLUGINS_NO="\twildmidi\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_WILDMIDI = xyes; then + USE_WILDMIDI_TRUE= + USE_WILDMIDI_FALSE='#' +else + USE_WILDMIDI_TRUE='#' + USE_WILDMIDI_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: SDL plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: SDL plug-in ***" >&6;} +if test "xsdlvideosink sdlaudiosink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: sdlvideosink sdlaudiosink ***" >&5 +$as_echo "$as_me: *** for plug-ins: sdlvideosink sdlaudiosink ***" >&6;} +fi +NOUSE= +if test "x$USE_SDL" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-sdl was given. +if test "${enable_sdl+set}" = set; then : + enableval=$enable_sdl; case "${enableval}" in + yes) USE_SDL=yes;; + no) USE_SDL=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-sdl" "$LINENO" 5 ;; + esac +else + USE_SDL=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SDL="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** sdlvideosink sdlaudiosink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** sdlvideosink sdlaudiosink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SDL = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SDL=no + + +# Check whether --with-sdl-prefix was given. +if test "${with_sdl_prefix+set}" = set; then : + withval=$with_sdl_prefix; sdl_prefix="$withval" +else + sdl_prefix="" +fi + + + +# Check whether --with-sdl-exec-prefix was given. +if test "${with_sdl_exec_prefix+set}" = set; then : + withval=$with_sdl_exec_prefix; sdl_exec_prefix="$withval" +else + sdl_exec_prefix="" +fi + + +# Check whether --enable-sdltest was given. +if test "${enable_sdltest+set}" = set; then : + enableval=$enable_sdltest; +else + enable_sdltest=yes +fi + + + if test x$sdl_exec_prefix != x ; then + sdl_args="$sdl_args --exec-prefix=$sdl_exec_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_exec_prefix/bin/sdl-config + fi + fi + if test x$sdl_prefix != x ; then + sdl_args="$sdl_args --prefix=$sdl_prefix" + if test x${SDL_CONFIG+set} != xset ; then + SDL_CONFIG=$sdl_prefix/bin/sdl-config + fi + fi + + # Extract the first word of "sdl-config", so it can be a program name with args. +set dummy sdl-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_SDL_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $SDL_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_SDL_CONFIG="$SDL_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_SDL_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_SDL_CONFIG" && ac_cv_path_SDL_CONFIG="no" + ;; +esac +fi +SDL_CONFIG=$ac_cv_path_SDL_CONFIG +if test -n "$SDL_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $SDL_CONFIG" >&5 +$as_echo "$SDL_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + min_sdl_version=0.11.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for SDL - version >= $min_sdl_version" >&5 +$as_echo_n "checking for SDL - version >= $min_sdl_version... " >&6; } + no_sdl="" + if test "$SDL_CONFIG" = "no" ; then + no_sdl=yes + else + SDL_CFLAGS=`$SDL_CONFIG $sdlconf_args --cflags` + SDL_LIBS=`$SDL_CONFIG $sdlconf_args --libs` + SDL_STATIC_LIBS=`$SDL_CONFIG $sdlconf_args --static-libs` + + + sdl_major_version=`$SDL_CONFIG $sdl_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\1/'` + sdl_minor_version=`$SDL_CONFIG $sdl_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\2/'` + sdl_micro_version=`$SDL_CONFIG $sdl_config_args --version | \ + sed 's/\([0-9]*\).\([0-9]*\).\([0-9]*\)/\3/'` + if test "x$enable_sdltest" = "xyes" ; then + ac_save_CFLAGS="$CFLAGS" + ac_save_LIBS="$LIBS" + CFLAGS="$CFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_STATIC_LIBS" + rm -f conf.sdltest + if test "$cross_compiling" = yes; then : + echo $ac_n "cross compiling; assumed OK... $ac_c" +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include "SDL.h" + +char* +my_strdup (char *str) +{ + char *new_str; + + if (str) + { + new_str = (char *)malloc ((strlen (str) + 1) * sizeof(char)); + strcpy (new_str, str); + } + else + new_str = NULL; + + return new_str; +} + +int main (int argc, char *argv[]) +{ + int major, minor, micro; + char *tmp_version; + + /* This hangs on some systems (?) + system ("touch conf.sdltest"); + */ + { FILE *fp = fopen("conf.sdltest", "a"); if ( fp ) fclose(fp); } + + /* HP/UX 9 (%@#!) writes to sscanf strings */ + tmp_version = my_strdup("$min_sdl_version"); + if (sscanf(tmp_version, "%d.%d.%d", &major, &minor, µ) != 3) { + printf("%s, bad version string\n", "$min_sdl_version"); + exit(1); + } + + if (($sdl_major_version > major) || + (($sdl_major_version == major) && ($sdl_minor_version > minor)) || + (($sdl_major_version == major) && ($sdl_minor_version == minor) && ($sdl_micro_version >= micro))) + { + return 0; + } + else + { + printf("\n*** 'sdl-config --version' returned %d.%d.%d, but the minimum version\n", $sdl_major_version, $sdl_minor_version, $sdl_micro_version); + printf("*** of SDL required is %d.%d.%d. If sdl-config is correct, then it is\n", major, minor, micro); + printf("*** best to upgrade to the required version.\n"); + printf("*** If sdl-config was wrong, set the environment variable SDL_CONFIG\n"); + printf("*** to point to the correct copy of sdl-config, and remove the file\n"); + printf("*** config.cache before re-running configure\n"); + return 1; + } +} + + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + no_sdl=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + if test "x$no_sdl" = x ; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SDL=yes + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + if test "$SDL_CONFIG" = "no" ; then + echo "*** The sdl-config script installed by SDL could not be found" + echo "*** If SDL was installed in PREFIX, make sure PREFIX/bin is in" + echo "*** your path, or set the SDL_CONFIG environment variable to the" + echo "*** full path to sdl-config." + else + if test -f conf.sdltest ; then + : + else + echo "*** Could not run SDL test program, checking why..." + CFLAGS="$CFLAGS $SDL_CFLAGS" + LIBS="$LIBS $SDL_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include "SDL.h" + +int main(int argc, char *argv[]) +{ return 0; } +#undef main +#define main K_and_R_C_main + +int +main () +{ + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + echo "*** The test program compiled, but did not run. This usually means" + echo "*** that the run-time linker is not finding SDL or finding the wrong" + echo "*** version of SDL. If it is not finding SDL, you'll need to set your" + echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" + echo "*** to the installed location Also, make sure you have run ldconfig if that" + echo "*** is required on your system" + echo "***" + echo "*** If you have an old version installed, it is best to remove it, although" + echo "*** you may also be able to get things to work by modifying LD_LIBRARY_PATH" +else + echo "*** The test program failed to compile or link. See the file config.log for the" + echo "*** exact error that occured. This usually means SDL was incorrectly installed" + echo "*** or that you have moved SDL since it was installed. In the latter case, you" + echo "*** may want to edit the sdl-config script: $SDL_CONFIG" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$ac_save_CFLAGS" + LIBS="$ac_save_LIBS" + fi + fi + SDL_CFLAGS="" + SDL_LIBS="" + HAVE_SDL=no + fi + + + rm -f conf.sdltest + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SDL = xno; then + USE_SDL=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: sdlvideosink sdlaudiosink" >&5 +$as_echo "$as_me: *** These plugins will be built: sdlvideosink sdlaudiosink" >&6;} + fi +fi +if test x$USE_SDL = xyes; then + : + if test "xsdlvideosink sdlaudiosink" != "x"; then + GST_PLUGINS_YES="\tsdlvideosink sdlaudiosink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SDL /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: sdlvideosink sdlaudiosink" >&5 +$as_echo "$as_me: *** These plugins will not be built: sdlvideosink sdlaudiosink" >&6;} + if test "xsdlvideosink sdlaudiosink" != "x"; then + GST_PLUGINS_NO="\tsdlvideosink sdlaudiosink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SDL = xyes; then + USE_SDL_TRUE= + USE_SDL_FALSE='#' +else + USE_SDL_TRUE='#' + USE_SDL_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: sndfile plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: sndfile plug-in ***" >&6;} +if test "xsfsrc sfsink" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: sfsrc sfsink ***" >&5 +$as_echo "$as_me: *** for plug-ins: sfsrc sfsink ***" >&6;} +fi +NOUSE= +if test "x$USE_SNDFILE" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-sndfile was given. +if test "${enable_sndfile+set}" = set; then : + enableval=$enable_sndfile; case "${enableval}" in + yes) USE_SNDFILE=yes;; + no) USE_SNDFILE=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-sndfile" "$LINENO" 5 ;; + esac +else + USE_SNDFILE=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SNDFILE="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** sfsrc sfsink pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** sfsrc sfsink pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SNDFILE = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SNDFILE=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SNDFILE" >&5 +$as_echo_n "checking for SNDFILE... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SNDFILE_CFLAGS"; then + pkg_cv_SNDFILE_CFLAGS="$SNDFILE_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SNDFILE_CFLAGS=`$PKG_CONFIG --cflags "sndfile >= 1.0.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SNDFILE_LIBS"; then + pkg_cv_SNDFILE_LIBS="$SNDFILE_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"sndfile >= 1.0.16\""; } >&5 + ($PKG_CONFIG --exists --print-errors "sndfile >= 1.0.16") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SNDFILE_LIBS=`$PKG_CONFIG --libs "sndfile >= 1.0.16" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SNDFILE_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "sndfile >= 1.0.16"` + else + SNDFILE_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "sndfile >= 1.0.16"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SNDFILE_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SNDFILE="no" +elif test $pkg_failed = untried; then + HAVE_SNDFILE="no" +else + SNDFILE_CFLAGS=$pkg_cv_SNDFILE_CFLAGS + SNDFILE_LIBS=$pkg_cv_SNDFILE_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SNDFILE="yes" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SNDFILE = xno; then + USE_SNDFILE=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: sfsrc sfsink" >&5 +$as_echo "$as_me: *** These plugins will be built: sfsrc sfsink" >&6;} + fi +fi +if test x$USE_SNDFILE = xyes; then + : + if test "xsfsrc sfsink" != "x"; then + GST_PLUGINS_YES="\tsfsrc sfsink\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SNDFILE /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: sfsrc sfsink" >&5 +$as_echo "$as_me: *** These plugins will not be built: sfsrc sfsink" >&6;} + if test "xsfsrc sfsink" != "x"; then + GST_PLUGINS_NO="\tsfsrc sfsink\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SNDFILE = xyes; then + USE_SNDFILE_TRUE= + USE_SNDFILE_FALSE='#' +else + USE_SNDFILE_TRUE='#' + USE_SNDFILE_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: soundtouch plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: soundtouch plug-in ***" >&6;} +if test "xsoundtouch" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: soundtouch ***" >&5 +$as_echo "$as_me: *** for plug-ins: soundtouch ***" >&6;} +fi +NOUSE= +if test "x$USE_SOUNDTOUCH" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-soundtouch was given. +if test "${enable_soundtouch+set}" = set; then : + enableval=$enable_soundtouch; case "${enableval}" in + yes) USE_SOUNDTOUCH=yes;; + no) USE_SOUNDTOUCH=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-soundtouch" "$LINENO" 5 ;; + esac +else + USE_SOUNDTOUCH=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SOUNDTOUCH="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** soundtouch pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** soundtouch pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SOUNDTOUCH = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SOUNDTOUCH=no + + HAVE_SOUNDTOUCH_1_4=yes + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.0"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.0"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.0"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"soundtouch-1.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "soundtouch-1.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "soundtouch-1.0" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "soundtouch-1.0"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "soundtouch-1.0"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch >= 1.4\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch >= 1.4") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch >= 1.4" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch >= 1.4"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +elif test $pkg_failed = untried; then + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SOUNDTOUCH" >&5 +$as_echo_n "checking for SOUNDTOUCH... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_CFLAGS"; then + pkg_cv_SOUNDTOUCH_CFLAGS="$SOUNDTOUCH_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_CFLAGS=`$PKG_CONFIG --cflags "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SOUNDTOUCH_LIBS"; then + pkg_cv_SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libSoundTouch\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libSoundTouch") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SOUNDTOUCH_LIBS=`$PKG_CONFIG --libs "libSoundTouch" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libSoundTouch"` + else + SOUNDTOUCH_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libSoundTouch"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SOUNDTOUCH_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + HAVE_SOUNDTOUCH=no +elif test $pkg_failed = untried; then + HAVE_SOUNDTOUCH=no +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM" +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi +else + SOUNDTOUCH_CFLAGS=$pkg_cv_SOUNDTOUCH_CFLAGS + SOUNDTOUCH_LIBS=$pkg_cv_SOUNDTOUCH_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SOUNDTOUCH=yes +fi + + + if test "x$HAVE_CXX" != "xyes"; then + USE_SOUNDTOUCH=false + { $as_echo "$as_me:${as_lineno-$LINENO}: Not building soundtouch plugin: no C++ compiler found" >&5 +$as_echo "$as_me: Not building soundtouch plugin: no C++ compiler found" >&6;} + fi + if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then + +$as_echo "#define HAVE_SOUNDTOUCH_1_4 1" >>confdefs.h + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SOUNDTOUCH = xno; then + USE_SOUNDTOUCH=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: soundtouch" >&5 +$as_echo "$as_me: *** These plugins will be built: soundtouch" >&6;} + fi +fi +if test x$USE_SOUNDTOUCH = xyes; then + : + if test "xsoundtouch" != "x"; then + GST_PLUGINS_YES="\tsoundtouch\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SOUNDTOUCH /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: soundtouch" >&5 +$as_echo "$as_me: *** These plugins will not be built: soundtouch" >&6;} + if test "xsoundtouch" != "x"; then + GST_PLUGINS_NO="\tsoundtouch\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SOUNDTOUCH = xyes; then + USE_SOUNDTOUCH_TRUE= + USE_SOUNDTOUCH_FALSE='#' +else + USE_SOUNDTOUCH_TRUE='#' + USE_SOUNDTOUCH_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: spc decoder ***" >&5 +$as_echo "$as_me: *** checking feature: spc decoder ***" >&6;} +if test "xspc" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: spc ***" >&5 +$as_echo "$as_me: *** for plug-ins: spc ***" >&6;} +fi +NOUSE= +if test "x$USE_SPC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-spc was given. +if test "${enable_spc+set}" = set; then : + enableval=$enable_spc; case "${enableval}" in + yes) USE_SPC=yes;; + no) USE_SPC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-spc" "$LINENO" 5 ;; + esac +else + USE_SPC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SPC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** spc pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** spc pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SPC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SPC=no + + ac_fn_c_check_header_mongrel "$LINENO" "openspc.h" "ac_cv_header_openspc_h" "$ac_includes_default" +if test "x$ac_cv_header_openspc_h" = x""yes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OSPC_Init in -lopenspc" >&5 +$as_echo_n "checking for OSPC_Init in -lopenspc... " >&6; } +if test "${ac_cv_lib_openspc_OSPC_Init+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lopenspc $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char OSPC_Init (); +int +main () +{ +return OSPC_Init (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_openspc_OSPC_Init=yes +else + ac_cv_lib_openspc_OSPC_Init=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_openspc_OSPC_Init" >&5 +$as_echo "$ac_cv_lib_openspc_OSPC_Init" >&6; } +if test "x$ac_cv_lib_openspc_OSPC_Init" = x""yes; then : + + SPC_LIBS="-lopenspc" + + HAVE_SPC=yes + +else + + HAVE_SPC=no + +fi + + +else + + HAVE_SPC=no + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SPC = xno; then + USE_SPC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: spc" >&5 +$as_echo "$as_me: *** These plugins will be built: spc" >&6;} + fi +fi +if test x$USE_SPC = xyes; then + : + if test "xspc" != "x"; then + GST_PLUGINS_YES="\tspc\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SPC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: spc" >&5 +$as_echo "$as_me: *** These plugins will not be built: spc" >&6;} + if test "xspc" != "x"; then + GST_PLUGINS_NO="\tspc\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SPC = xyes; then + USE_SPC_TRUE= + USE_SPC_FALSE='#' +else + USE_SPC_TRUE='#' + USE_SPC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: gme decoder ***" >&5 +$as_echo "$as_me: *** checking feature: gme decoder ***" >&6;} +if test "xgme" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gme ***" >&5 +$as_echo "$as_me: *** for plug-ins: gme ***" >&6;} +fi +NOUSE= +if test "x$USE_GME" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-gme was given. +if test "${enable_gme+set}" = set; then : + enableval=$enable_gme; case "${enableval}" in + yes) USE_GME=yes;; + no) USE_GME=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-gme" "$LINENO" 5 ;; + esac +else + USE_GME=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_GME="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gme pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** gme pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_GME = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_GME=no + + ac_fn_c_check_header_mongrel "$LINENO" "gme/gme.h" "ac_cv_header_gme_gme_h" "$ac_includes_default" +if test "x$ac_cv_header_gme_gme_h" = x""yes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gme_new_emu in -lgme" >&5 +$as_echo_n "checking for gme_new_emu in -lgme... " >&6; } +if test "${ac_cv_lib_gme_gme_new_emu+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgme $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gme_new_emu (); +int +main () +{ +return gme_new_emu (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gme_gme_new_emu=yes +else + ac_cv_lib_gme_gme_new_emu=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gme_gme_new_emu" >&5 +$as_echo "$ac_cv_lib_gme_gme_new_emu" >&6; } +if test "x$ac_cv_lib_gme_gme_new_emu" = x""yes; then : + + GME_LIBS="-lgme" + + HAVE_GME=yes + +else + + HAVE_GME=no + +fi + + +else + + HAVE_GME=no + +fi + + + + if test "x$HAVE_GME" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gme_enable_accuracy in -lgme" >&5 +$as_echo_n "checking for gme_enable_accuracy in -lgme... " >&6; } +if test "${ac_cv_lib_gme_gme_enable_accuracy+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lgme $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gme_enable_accuracy (); +int +main () +{ +return gme_enable_accuracy (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_gme_gme_enable_accuracy=yes +else + ac_cv_lib_gme_gme_enable_accuracy=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_gme_gme_enable_accuracy" >&5 +$as_echo "$ac_cv_lib_gme_gme_enable_accuracy" >&6; } +if test "x$ac_cv_lib_gme_gme_enable_accuracy" = x""yes; then : + + +$as_echo "#define HAVE_LIBGME_ACCURACY 1" >>confdefs.h + + +fi + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_GME = xno; then + USE_GME=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gme" >&5 +$as_echo "$as_me: *** These plugins will be built: gme" >&6;} + fi +fi +if test x$USE_GME = xyes; then + : + if test "xgme" != "x"; then + GST_PLUGINS_YES="\tgme\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_GME /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gme" >&5 +$as_echo "$as_me: *** These plugins will not be built: gme" >&6;} + if test "xgme" != "x"; then + GST_PLUGINS_NO="\tgme\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_GME = xyes; then + USE_GME_TRUE= + USE_GME_FALSE='#' +else + USE_GME_TRUE='#' + USE_GME_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: swfdec plug-in ***" >&5 +$as_echo "$as_me: *** checking feature: swfdec plug-in ***" >&6;} +if test "xswfdec" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: swfdec ***" >&5 +$as_echo "$as_me: *** for plug-ins: swfdec ***" >&6;} +fi +NOUSE= +if test "x$USE_SWFDEC" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-swfdec was given. +if test "${enable_swfdec+set}" = set; then : + enableval=$enable_swfdec; case "${enableval}" in + yes) USE_SWFDEC=yes;; + no) USE_SWFDEC=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-swfdec" "$LINENO" 5 ;; + esac +else + USE_SWFDEC=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SWFDEC="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** swfdec pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** swfdec pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SWFDEC = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SWFDEC=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SWFDEC" >&5 +$as_echo_n "checking for SWFDEC... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SWFDEC_CFLAGS"; then + pkg_cv_SWFDEC_CFLAGS="$SWFDEC_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"swfdec-0.3 >= 0.3.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "swfdec-0.3 >= 0.3.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SWFDEC_CFLAGS=`$PKG_CONFIG --cflags "swfdec-0.3 >= 0.3.6" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SWFDEC_LIBS"; then + pkg_cv_SWFDEC_LIBS="$SWFDEC_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"swfdec-0.3 >= 0.3.6\""; } >&5 + ($PKG_CONFIG --exists --print-errors "swfdec-0.3 >= 0.3.6") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SWFDEC_LIBS=`$PKG_CONFIG --libs "swfdec-0.3 >= 0.3.6" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SWFDEC_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "swfdec-0.3 >= 0.3.6"` + else + SWFDEC_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "swfdec-0.3 >= 0.3.6"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SWFDEC_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_SWFDEC=no + +elif test $pkg_failed = untried; then + + HAVE_SWFDEC=no + +else + SWFDEC_CFLAGS=$pkg_cv_SWFDEC_CFLAGS + SWFDEC_LIBS=$pkg_cv_SWFDEC_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_SWFDEC=yes +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SWFDEC = xno; then + USE_SWFDEC=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: swfdec" >&5 +$as_echo "$as_me: *** These plugins will be built: swfdec" >&6;} + fi +fi +if test x$USE_SWFDEC = xyes; then + : + if test "xswfdec" != "x"; then + GST_PLUGINS_YES="\tswfdec\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SWFDEC /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: swfdec" >&5 +$as_echo "$as_me: *** These plugins will not be built: swfdec" >&6;} + if test "xswfdec" != "x"; then + GST_PLUGINS_NO="\tswfdec\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SWFDEC = xyes; then + USE_SWFDEC_TRUE= + USE_SWFDEC_FALSE='#' +else + USE_SWFDEC_TRUE='#' + USE_SWFDEC_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: xvid plugins ***" >&5 +$as_echo "$as_me: *** checking feature: xvid plugins ***" >&6;} +if test "xxvid" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: xvid ***" >&5 +$as_echo "$as_me: *** for plug-ins: xvid ***" >&6;} +fi +NOUSE= +if test "x$USE_XVID" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-xvid was given. +if test "${enable_xvid+set}" = set; then : + enableval=$enable_xvid; case "${enableval}" in + yes) USE_XVID=yes;; + no) USE_XVID=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-xvid" "$LINENO" 5 ;; + esac +else + USE_XVID=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_XVID="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** xvid pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** xvid pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_XVID = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_XVID=no + + HAVE_XVID=no + ac_fn_c_check_header_mongrel "$LINENO" "xvid.h" "ac_cv_header_xvid_h" "$ac_includes_default" +if test "x$ac_cv_header_xvid_h" = x""yes; then : + + OLD_LIBS="$LIBS" + LIBS="-lpthread $LIBM" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xvid_encore in -lxvidcore" >&5 +$as_echo_n "checking for xvid_encore in -lxvidcore... " >&6; } +if test "${ac_cv_lib_xvidcore_xvid_encore+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lxvidcore $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xvid_encore (); +int +main () +{ +return xvid_encore (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_xvidcore_xvid_encore=yes +else + ac_cv_lib_xvidcore_xvid_encore=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xvidcore_xvid_encore" >&5 +$as_echo "$ac_cv_lib_xvidcore_xvid_encore" >&6; } +if test "x$ac_cv_lib_xvidcore_xvid_encore" = x""yes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xvid_decore in -lxvidcore" >&5 +$as_echo_n "checking for xvid_decore in -lxvidcore... " >&6; } +if test "${ac_cv_lib_xvidcore_xvid_decore+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lxvidcore $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xvid_decore (); +int +main () +{ +return xvid_decore (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_xvidcore_xvid_decore=yes +else + ac_cv_lib_xvidcore_xvid_decore=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xvidcore_xvid_decore" >&5 +$as_echo "$ac_cv_lib_xvidcore_xvid_decore" >&6; } +if test "x$ac_cv_lib_xvidcore_xvid_decore" = x""yes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for xvid_global in -lxvidcore" >&5 +$as_echo_n "checking for xvid_global in -lxvidcore... " >&6; } +if test "${ac_cv_lib_xvidcore_xvid_global+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lxvidcore $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char xvid_global (); +int +main () +{ +return xvid_global (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_xvidcore_xvid_global=yes +else + ac_cv_lib_xvidcore_xvid_global=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_xvidcore_xvid_global" >&5 +$as_echo "$ac_cv_lib_xvidcore_xvid_global" >&6; } +if test "x$ac_cv_lib_xvidcore_xvid_global" = x""yes; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for uptodate XviD API version" >&5 +$as_echo_n "checking for uptodate XviD API version... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ + + #if XVID_API_MAJOR(XVID_API) != 4 + #error "Incompatible XviD API version" + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + XVID_LIBS="-lxvidcore $LIBM" + + HAVE_XVID=yes + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +fi + + +fi + + +fi + + LIBS="$OLD_LIBS" + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_XVID = xno; then + USE_XVID=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: xvid" >&5 +$as_echo "$as_me: *** These plugins will be built: xvid" >&6;} + fi +fi +if test x$USE_XVID = xyes; then + : + if test "xxvid" != "x"; then + GST_PLUGINS_YES="\txvid\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_XVID /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: xvid" >&5 +$as_echo "$as_me: *** These plugins will not be built: xvid" >&6;} + if test "xxvid" != "x"; then + GST_PLUGINS_NO="\txvid\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_XVID = xyes; then + USE_XVID_TRUE= + USE_XVID_FALSE='#' +else + USE_XVID_TRUE='#' + USE_XVID_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: DVB Source ***" >&5 +$as_echo "$as_me: *** checking feature: DVB Source ***" >&6;} +if test "xdvb" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: dvb ***" >&5 +$as_echo "$as_me: *** for plug-ins: dvb ***" >&6;} +fi +NOUSE= +if test "x$USE_DVB" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-dvb was given. +if test "${enable_dvb+set}" = set; then : + enableval=$enable_dvb; case "${enableval}" in + yes) USE_DVB=yes;; + no) USE_DVB=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-dvb" "$LINENO" 5 ;; + esac +else + USE_DVB=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_DVB="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** dvb pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** dvb pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_DVB = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_DVB=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for up to date dvb installation" >&5 +$as_echo_n "checking Checking for up to date dvb installation... " >&6; } + ac_fn_c_check_header_mongrel "$LINENO" "linux/dvb/frontend.h" "ac_cv_header_linux_dvb_frontend_h" "$ac_includes_default" +if test "x$ac_cv_header_linux_dvb_frontend_h" = x""yes; then : + HAVE_DVB="yes" +else + HAVE_DVB="no" +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_DVB = xno; then + USE_DVB=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: dvb" >&5 +$as_echo "$as_me: *** These plugins will be built: dvb" >&6;} + fi +fi +if test x$USE_DVB = xyes; then + : + if test "xdvb" != "x"; then + GST_PLUGINS_YES="\tdvb\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_DVB /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: dvb" >&5 +$as_echo "$as_me: *** These plugins will not be built: dvb" >&6;} + if test "xdvb" != "x"; then + GST_PLUGINS_NO="\tdvb\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_DVB = xyes; then + USE_DVB_TRUE= + USE_DVB_FALSE='#' +else + USE_DVB_TRUE='#' + USE_DVB_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Windows internet library ***" >&5 +$as_echo "$as_me: *** checking feature: Windows internet library ***" >&6;} +if test "xwininet" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: wininet ***" >&5 +$as_echo "$as_me: *** for plug-ins: wininet ***" >&6;} +fi +NOUSE= +if test "x$USE_WININET" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-wininet was given. +if test "${enable_wininet+set}" = set; then : + enableval=$enable_wininet; case "${enableval}" in + yes) USE_WININET=yes;; + no) USE_WININET=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-wininet" "$LINENO" 5 ;; + esac +else + USE_WININET=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_WININET="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** wininet pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** wininet pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_WININET = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_WININET=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for windows internet support" >&5 +$as_echo_n "checking Checking for windows internet support... " >&6; } + for ac_header in windows.h wininet.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + HAVE_WININET="yes" +else + HAVE_WININET="no" +fi + +done + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_WININET = xno; then + USE_WININET=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: wininet" >&5 +$as_echo "$as_me: *** These plugins will be built: wininet" >&6;} + fi +fi +if test x$USE_WININET = xyes; then + : + if test "xwininet" != "x"; then + GST_PLUGINS_YES="\twininet\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_WININET /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: wininet" >&5 +$as_echo "$as_me: *** These plugins will not be built: wininet" >&6;} + if test "xwininet" != "x"; then + GST_PLUGINS_NO="\twininet\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_WININET = xyes; then + USE_WININET_TRUE= + USE_WININET_FALSE='#' +else + USE_WININET_TRUE='#' + USE_WININET_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Windows ACM library ***" >&5 +$as_echo "$as_me: *** checking feature: Windows ACM library ***" >&6;} +if test "xacm" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: acm ***" >&5 +$as_echo "$as_me: *** for plug-ins: acm ***" >&6;} +fi +NOUSE= +if test "x$USE_ACM" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-acm was given. +if test "${enable_acm+set}" = set; then : + enableval=$enable_acm; case "${enableval}" in + yes) USE_ACM=yes;; + no) USE_ACM=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-acm" "$LINENO" 5 ;; + esac +else + USE_ACM=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_ACM="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** acm pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** acm pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_ACM = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_ACM=no + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Checking for ACM support" >&5 +$as_echo_n "checking Checking for ACM support... " >&6; } + for ac_header in windows.h msacm.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +#include +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + HAVE_ACM="yes" + + + +else + HAVE_ACM="no" +fi + +done + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_ACM = xno; then + USE_ACM=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: acm" >&5 +$as_echo "$as_me: *** These plugins will be built: acm" >&6;} + fi +fi +if test x$USE_ACM = xyes; then + : + if test "xacm" != "x"; then + GST_PLUGINS_YES="\tacm\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_ACM /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: acm" >&5 +$as_echo "$as_me: *** These plugins will not be built: acm" >&6;} + if test "xacm" != "x"; then + GST_PLUGINS_NO="\tacm\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_ACM = xyes; then + USE_ACM_TRUE= + USE_ACM_FALSE='#' +else + USE_ACM_TRUE='#' + USE_ACM_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: VDPAU ***" >&5 +$as_echo "$as_me: *** checking feature: VDPAU ***" >&6;} +if test "xvdpau" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: vdpau ***" >&5 +$as_echo "$as_me: *** for plug-ins: vdpau ***" >&6;} +fi +NOUSE= +if test "x$USE_VDPAU" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-vdpau was given. +if test "${enable_vdpau+set}" = set; then : + enableval=$enable_vdpau; case "${enableval}" in + yes) USE_VDPAU=yes;; + no) USE_VDPAU=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-vdpau" "$LINENO" 5 ;; + esac +else + USE_VDPAU=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_VDPAU="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** vdpau pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** vdpau pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_VDPAU = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_VDPAU=no + + VDPAU_CFLAGS= + VDPAU_LIBS=-lvdpau + HAVE_VDPAU=no + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for VDPAU" >&5 +$as_echo_n "checking for VDPAU... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$VDPAU_CFLAGS"; then + pkg_cv_VDPAU_CFLAGS="$VDPAU_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vdpau\""; } >&5 + ($PKG_CONFIG --exists --print-errors "vdpau") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VDPAU_CFLAGS=`$PKG_CONFIG --cflags "vdpau" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$VDPAU_LIBS"; then + pkg_cv_VDPAU_LIBS="$VDPAU_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"vdpau\""; } >&5 + ($PKG_CONFIG --exists --print-errors "vdpau") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_VDPAU_LIBS=`$PKG_CONFIG --libs "vdpau" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + VDPAU_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "vdpau"` + else + VDPAU_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "vdpau"` + fi + # Put the nasty error message in config.log where it belongs + echo "$VDPAU_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + if test "$HAVE_VDPAU" = "no"; then + saved_CPPFLAGS="$CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau.h" "ac_cv_header_vdpau_vdpau_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_h" = x""yes; then : + HAVE_VDPAU_H=yes +fi + + + + if test -z "$HAVE_VDPAU_H"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: VDPAU header not in standard path. Checking /usr/include/nvidia" >&5 +$as_echo "$as_me: VDPAU header not in standard path. Checking /usr/include/nvidia" >&6;} + unset ac_cv_header_vdpau_vdpau_h + unset ac_cv_header_vdpau_vdpau_x11_h + VDPAU_CFLAGS="-I/usr/include/nvidia" + VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau" + CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau.h" "ac_cv_header_vdpau_vdpau_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_h" = x""yes; then : + HAVE_VDPAU_H=yes +fi + + + fi + + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau_x11.h" "ac_cv_header_vdpau_vdpau_x11_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_x11_h" = x""yes; then : + HAVE_VDPAU_X11_H=yes +fi + + + + if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: VDPAU headers found. Checking libraries" >&5 +$as_echo "$as_me: VDPAU headers found. Checking libraries" >&6;} + saved_LIBS="$LIBS" + LIBS="$VDPAU_LIBS $saved_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vdp_device_create_x11 in -lvdpau" >&5 +$as_echo_n "checking for vdp_device_create_x11 in -lvdpau... " >&6; } +if test "${ac_cv_lib_vdpau_vdp_device_create_x11+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvdpau $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vdp_device_create_x11 (); +int +main () +{ +return vdp_device_create_x11 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vdpau_vdp_device_create_x11=yes +else + ac_cv_lib_vdpau_vdp_device_create_x11=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vdpau_vdp_device_create_x11" >&5 +$as_echo "$ac_cv_lib_vdpau_vdp_device_create_x11" >&6; } +if test "x$ac_cv_lib_vdpau_vdp_device_create_x11" = x""yes; then : + HAVE_VDPAU="yes" +fi + + LIBS="$saved_LIBS" + fi + fi + +elif test $pkg_failed = untried; then + + if test "$HAVE_VDPAU" = "no"; then + saved_CPPFLAGS="$CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau.h" "ac_cv_header_vdpau_vdpau_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_h" = x""yes; then : + HAVE_VDPAU_H=yes +fi + + + + if test -z "$HAVE_VDPAU_H"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: VDPAU header not in standard path. Checking /usr/include/nvidia" >&5 +$as_echo "$as_me: VDPAU header not in standard path. Checking /usr/include/nvidia" >&6;} + unset ac_cv_header_vdpau_vdpau_h + unset ac_cv_header_vdpau_vdpau_x11_h + VDPAU_CFLAGS="-I/usr/include/nvidia" + VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau" + CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS" + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau.h" "ac_cv_header_vdpau_vdpau_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_h" = x""yes; then : + HAVE_VDPAU_H=yes +fi + + + fi + + ac_fn_c_check_header_mongrel "$LINENO" "vdpau/vdpau_x11.h" "ac_cv_header_vdpau_vdpau_x11_h" "$ac_includes_default" +if test "x$ac_cv_header_vdpau_vdpau_x11_h" = x""yes; then : + HAVE_VDPAU_X11_H=yes +fi + + + + if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: VDPAU headers found. Checking libraries" >&5 +$as_echo "$as_me: VDPAU headers found. Checking libraries" >&6;} + saved_LIBS="$LIBS" + LIBS="$VDPAU_LIBS $saved_LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vdp_device_create_x11 in -lvdpau" >&5 +$as_echo_n "checking for vdp_device_create_x11 in -lvdpau... " >&6; } +if test "${ac_cv_lib_vdpau_vdp_device_create_x11+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvdpau $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vdp_device_create_x11 (); +int +main () +{ +return vdp_device_create_x11 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vdpau_vdp_device_create_x11=yes +else + ac_cv_lib_vdpau_vdp_device_create_x11=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vdpau_vdp_device_create_x11" >&5 +$as_echo "$ac_cv_lib_vdpau_vdp_device_create_x11" >&6; } +if test "x$ac_cv_lib_vdpau_vdp_device_create_x11" = x""yes; then : + HAVE_VDPAU="yes" +fi + + LIBS="$saved_LIBS" + fi + fi + +else + VDPAU_CFLAGS=$pkg_cv_VDPAU_CFLAGS + VDPAU_LIBS=$pkg_cv_VDPAU_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + HAVE_VDPAU="yes" +fi + + if test "$HAVE_VDPAU" = "yes"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: Found up to date VDPAU installation" >&5 +$as_echo "$as_me: Found up to date VDPAU installation" >&6;} + + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_VDPAU = xno; then + USE_VDPAU=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: vdpau" >&5 +$as_echo "$as_me: *** These plugins will be built: vdpau" >&6;} + fi +fi +if test x$USE_VDPAU = xyes; then + : + if test "xvdpau" != "x"; then + GST_PLUGINS_YES="\tvdpau\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_VDPAU /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: vdpau" >&5 +$as_echo "$as_me: *** These plugins will not be built: vdpau" >&6;} + if test "xvdpau" != "x"; then + GST_PLUGINS_NO="\tvdpau\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_VDPAU = xyes; then + USE_VDPAU_TRUE= + USE_VDPAU_FALSE='#' +else + USE_VDPAU_TRUE='#' + USE_VDPAU_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: Schroedinger video codec ***" >&5 +$as_echo "$as_me: *** checking feature: Schroedinger video codec ***" >&6;} +if test "xschro" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: schro ***" >&5 +$as_echo "$as_me: *** for plug-ins: schro ***" >&6;} +fi +NOUSE= +if test "x$USE_SCHRO" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-schro was given. +if test "${enable_schro+set}" = set; then : + enableval=$enable_schro; case "${enableval}" in + yes) USE_SCHRO=yes;; + no) USE_SCHRO=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-schro" "$LINENO" 5 ;; + esac +else + USE_SCHRO=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_SCHRO="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** schro pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** schro pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_SCHRO = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_SCHRO=no + + + which="schroedinger-1.0 >= 1.0.7" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SCHRO" >&5 +$as_echo_n "checking for SCHRO... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$SCHRO_CFLAGS"; then + pkg_cv_SCHRO_CFLAGS="$SCHRO_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SCHRO_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$SCHRO_LIBS"; then + pkg_cv_SCHRO_LIBS="$SCHRO_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_SCHRO_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + SCHRO_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + SCHRO_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$SCHRO_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_SCHRO="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$SCHRO_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $SCHRO_PKG_ERRORS" >&5 +$as_echo "$as_me: $SCHRO_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_SCHRO="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$SCHRO_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $SCHRO_PKG_ERRORS" >&5 +$as_echo "$as_me: $SCHRO_PKG_ERRORS" >&6;} + fi + +else + SCHRO_CFLAGS=$pkg_cv_SCHRO_CFLAGS + SCHRO_LIBS=$pkg_cv_SCHRO_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_SCHRO="yes" + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_SCHRO = xno; then + USE_SCHRO=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: schro" >&5 +$as_echo "$as_me: *** These plugins will be built: schro" >&6;} + fi +fi +if test x$USE_SCHRO = xyes; then + : + if test "xschro" != "x"; then + GST_PLUGINS_YES="\tschro\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_SCHRO /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: schro" >&5 +$as_echo "$as_me: *** These plugins will not be built: schro" >&6;} + if test "xschro" != "x"; then + GST_PLUGINS_NO="\tschro\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_SCHRO = xyes; then + USE_SCHRO_TRUE= + USE_SCHRO_FALSE='#' +else + USE_SCHRO_TRUE='#' + USE_SCHRO_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: ZBar barcode detector ***" >&5 +$as_echo "$as_me: *** checking feature: ZBar barcode detector ***" >&6;} +if test "xzbar" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: zbar ***" >&5 +$as_echo "$as_me: *** for plug-ins: zbar ***" >&6;} +fi +NOUSE= +if test "x$USE_ZBAR" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-zbar was given. +if test "${enable_zbar+set}" = set; then : + enableval=$enable_zbar; case "${enableval}" in + yes) USE_ZBAR=yes;; + no) USE_ZBAR=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-zbar" "$LINENO" 5 ;; + esac +else + USE_ZBAR=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_ZBAR="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** zbar pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** zbar pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_ZBAR = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_ZBAR=no + + + which="zbar >= 0.9" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ZBAR" >&5 +$as_echo_n "checking for ZBAR... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$ZBAR_CFLAGS"; then + pkg_cv_ZBAR_CFLAGS="$ZBAR_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZBAR_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$ZBAR_LIBS"; then + pkg_cv_ZBAR_LIBS="$ZBAR_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ZBAR_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ZBAR_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + ZBAR_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$ZBAR_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_ZBAR="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$ZBAR_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $ZBAR_PKG_ERRORS" >&5 +$as_echo "$as_me: $ZBAR_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_ZBAR="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$ZBAR_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $ZBAR_PKG_ERRORS" >&5 +$as_echo "$as_me: $ZBAR_PKG_ERRORS" >&6;} + fi + +else + ZBAR_CFLAGS=$pkg_cv_ZBAR_CFLAGS + ZBAR_LIBS=$pkg_cv_ZBAR_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_ZBAR="yes" + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_ZBAR = xno; then + USE_ZBAR=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: zbar" >&5 +$as_echo "$as_me: *** These plugins will be built: zbar" >&6;} + fi +fi +if test x$USE_ZBAR = xyes; then + : + if test "xzbar" != "x"; then + GST_PLUGINS_YES="\tzbar\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_ZBAR /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: zbar" >&5 +$as_echo "$as_me: *** These plugins will not be built: zbar" >&6;} + if test "xzbar" != "x"; then + GST_PLUGINS_NO="\tzbar\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_ZBAR = xyes; then + USE_ZBAR_TRUE= + USE_ZBAR_FALSE='#' +else + USE_ZBAR_TRUE='#' + USE_ZBAR_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: VP8 decoder ***" >&5 +$as_echo "$as_me: *** checking feature: VP8 decoder ***" >&6;} +if test "xvp8" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: vp8 ***" >&5 +$as_echo "$as_me: *** for plug-ins: vp8 ***" >&6;} +fi +NOUSE= +if test "x$USE_VP8" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-vp8 was given. +if test "${enable_vp8+set}" = set; then : + enableval=$enable_vp8; case "${enableval}" in + yes) USE_VP8=yes;; + no) USE_VP8=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-vp8" "$LINENO" 5 ;; + esac +else + USE_VP8=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_VP8="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** vp8 pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** vp8 pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_VP8 = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_VP8=no + + VPX_LIBS="" + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_version in -lvpx" >&5 +$as_echo_n "checking for vpx_codec_version in -lvpx... " >&6; } +if test "${ac_cv_lib_vpx_vpx_codec_version+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvpx $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vpx_codec_version (); +int +main () +{ +return vpx_codec_version (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vpx_vpx_codec_version=yes +else + ac_cv_lib_vpx_vpx_codec_version=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vpx_vpx_codec_version" >&5 +$as_echo "$ac_cv_lib_vpx_vpx_codec_version" >&6; } +if test "x$ac_cv_lib_vpx_vpx_codec_version" = x""yes; then : + HAVE_VPX=yes +else + HAVE_VPX=no +fi + + if test "x$HAVE_VPX" = "xyes"; then + ac_fn_c_check_header_mongrel "$LINENO" "vpx/vpx_codec.h" "ac_cv_header_vpx_vpx_codec_h" "$ac_includes_default" +if test "x$ac_cv_header_vpx_vpx_codec_h" = x""yes; then : + : +else + HAVE_VPX=no +fi + + + if test "x$HAVE_VPX" = "xyes"; then + + HAVE_VP8_ENCODER=no + HAVE_VP8_DECODER=no + + OLD_LIBS="$LIBS" + LIBS="$LIBS $LIBM -lpthread" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp8_cx_algo in -lvpx" >&5 +$as_echo_n "checking for vpx_codec_vp8_cx_algo in -lvpx... " >&6; } +if test "${ac_cv_lib_vpx_vpx_codec_vp8_cx_algo+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvpx $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vpx_codec_vp8_cx_algo (); +int +main () +{ +return vpx_codec_vp8_cx_algo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vpx_vpx_codec_vp8_cx_algo=yes +else + ac_cv_lib_vpx_vpx_codec_vp8_cx_algo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vpx_vpx_codec_vp8_cx_algo" >&5 +$as_echo "$ac_cv_lib_vpx_vpx_codec_vp8_cx_algo" >&6; } +if test "x$ac_cv_lib_vpx_vpx_codec_vp8_cx_algo" = x""yes; then : + + HAVE_VP8=yes + +$as_echo "#define HAVE_VP8_ENCODER 1" >>confdefs.h + + VPX_LIBS="-lvpx" + +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for vpx_codec_vp8_dx_algo in -lvpx" >&5 +$as_echo_n "checking for vpx_codec_vp8_dx_algo in -lvpx... " >&6; } +if test "${ac_cv_lib_vpx_vpx_codec_vp8_dx_algo+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lvpx $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char vpx_codec_vp8_dx_algo (); +int +main () +{ +return vpx_codec_vp8_dx_algo (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_vpx_vpx_codec_vp8_dx_algo=yes +else + ac_cv_lib_vpx_vpx_codec_vp8_dx_algo=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_vpx_vpx_codec_vp8_dx_algo" >&5 +$as_echo "$ac_cv_lib_vpx_vpx_codec_vp8_dx_algo" >&6; } +if test "x$ac_cv_lib_vpx_vpx_codec_vp8_dx_algo" = x""yes; then : + + HAVE_VP8=yes + +$as_echo "#define HAVE_VP8_DECODER 1" >>confdefs.h + + VPX_LIBS="-lvpx" + +fi + + LIBS="$OLD_LIBS" + + else + : + fi + else + : + fi + + + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_VP8 = xno; then + USE_VP8=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: vp8" >&5 +$as_echo "$as_me: *** These plugins will be built: vp8" >&6;} + fi +fi +if test x$USE_VP8 = xyes; then + : + if test "xvp8" != "x"; then + GST_PLUGINS_YES="\tvp8\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_VP8 /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: vp8" >&5 +$as_echo "$as_me: *** These plugins will not be built: vp8" >&6;} + if test "xvp8" != "x"; then + GST_PLUGINS_NO="\tvp8\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_VP8 = xyes; then + USE_VP8_TRUE= + USE_VP8_FALSE='#' +else + USE_VP8_TRUE='#' + USE_VP8_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: rtmp library ***" >&5 +$as_echo "$as_me: *** checking feature: rtmp library ***" >&6;} +if test "xrtmp" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: rtmp ***" >&5 +$as_echo "$as_me: *** for plug-ins: rtmp ***" >&6;} +fi +NOUSE= +if test "x$USE_RTMP" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-rtmp was given. +if test "${enable_rtmp+set}" = set; then : + enableval=$enable_rtmp; case "${enableval}" in + yes) USE_RTMP=yes;; + no) USE_RTMP=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-rtmp" "$LINENO" 5 ;; + esac +else + USE_RTMP=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_RTMP="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** rtmp pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** rtmp pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_RTMP = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_RTMP=no + + + which="librtmp" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for RTMP" >&5 +$as_echo_n "checking for RTMP... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$RTMP_CFLAGS"; then + pkg_cv_RTMP_CFLAGS="$RTMP_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_RTMP_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$RTMP_LIBS"; then + pkg_cv_RTMP_LIBS="$RTMP_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_RTMP_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + RTMP_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + RTMP_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$RTMP_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_RTMP="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$RTMP_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $RTMP_PKG_ERRORS" >&5 +$as_echo "$as_me: $RTMP_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_RTMP="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$RTMP_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $RTMP_PKG_ERRORS" >&5 +$as_echo "$as_me: $RTMP_PKG_ERRORS" >&6;} + fi + +else + RTMP_CFLAGS=$pkg_cv_RTMP_CFLAGS + RTMP_LIBS=$pkg_cv_RTMP_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_RTMP="yes" + +fi + + + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_RTMP = xno; then + USE_RTMP=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: rtmp" >&5 +$as_echo "$as_me: *** These plugins will be built: rtmp" >&6;} + fi +fi +if test x$USE_RTMP = xyes; then + : + if test "xrtmp" != "x"; then + GST_PLUGINS_YES="\trtmp\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_RTMP /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: rtmp" >&5 +$as_echo "$as_me: *** These plugins will not be built: rtmp" >&6;} + if test "xrtmp" != "x"; then + GST_PLUGINS_NO="\trtmp\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_RTMP = xyes; then + USE_RTMP_TRUE= + USE_RTMP_FALSE='#' +else + USE_RTMP_TRUE='#' + USE_RTMP_FALSE= +fi + + + +echo +{ $as_echo "$as_me:${as_lineno-$LINENO}: *** checking feature: GSettings plugin ***" >&5 +$as_echo "$as_me: *** checking feature: GSettings plugin ***" >&6;} +if test "xgsettings" != "x" +then + { $as_echo "$as_me:${as_lineno-$LINENO}: *** for plug-ins: gsettings ***" >&5 +$as_echo "$as_me: *** for plug-ins: gsettings ***" >&6;} +fi +NOUSE= +if test "x$USE_GSETTINGS" = "xno"; then + NOUSE="yes" +fi +# Check whether --enable-gsettings was given. +if test "${enable_gsettings+set}" = set; then : + enableval=$enable_gsettings; case "${enableval}" in + yes) USE_GSETTINGS=yes;; + no) USE_GSETTINGS=no;; + *) as_fn_error $? "bad value ${enableval} for --enable-gsettings" "$LINENO" 5 ;; + esac +else + USE_GSETTINGS=yes +fi + +if test "x$NOUSE" = "xyes"; then + USE_GSETTINGS="no" + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: *** gsettings pre-configured not to be built" >&5 +$as_echo "$as_me: WARNING: *** gsettings pre-configured not to be built" >&2;} +fi +NOUSE= + + +if test x$USE_GSETTINGS = xyes; then + + gst_check_save_LIBS=$LIBS + gst_check_save_LDFLAGS=$LDFLAGS + gst_check_save_CFLAGS=$CFLAGS + gst_check_save_CPPFLAGS=$CPPFLAGS + gst_check_save_CXXFLAGS=$CXXFLAGS + + HAVE_GSETTINGS=no + + + which="gio-2.0 >= 2.25.0" + required="no" + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for GSETTINGS" >&5 +$as_echo_n "checking for GSETTINGS... " >&6; } + +if test -n "$PKG_CONFIG"; then + if test -n "$GSETTINGS_CFLAGS"; then + pkg_cv_GSETTINGS_CFLAGS="$GSETTINGS_CFLAGS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GSETTINGS_CFLAGS=`$PKG_CONFIG --cflags "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi +if test -n "$PKG_CONFIG"; then + if test -n "$GSETTINGS_LIBS"; then + pkg_cv_GSETTINGS_LIBS="$GSETTINGS_LIBS" + else + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"\$which\""; } >&5 + ($PKG_CONFIG --exists --print-errors "$which") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_GSETTINGS_LIBS=`$PKG_CONFIG --libs "$which" 2>/dev/null` +else + pkg_failed=yes +fi + fi +else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + GSETTINGS_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "$which"` + else + GSETTINGS_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "$which"` + fi + # Put the nasty error message in config.log where it belongs + echo "$GSETTINGS_PKG_ERRORS" >&5 + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + HAVE_GSETTINGS="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$GSETTINGS_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $GSETTINGS_PKG_ERRORS" >&5 +$as_echo "$as_me: $GSETTINGS_PKG_ERRORS" >&6;} + fi + +elif test $pkg_failed = untried; then + + HAVE_GSETTINGS="no" + if test "x$required" = "xyes"; then + as_fn_error $? "$GSETTINGS_PKG_ERRORS" "$LINENO" 5 + else + { $as_echo "$as_me:${as_lineno-$LINENO}: $GSETTINGS_PKG_ERRORS" >&5 +$as_echo "$as_me: $GSETTINGS_PKG_ERRORS" >&6;} + fi + +else + GSETTINGS_CFLAGS=$pkg_cv_GSETTINGS_CFLAGS + GSETTINGS_LIBS=$pkg_cv_GSETTINGS_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + + HAVE_GSETTINGS="yes" + +fi + + + if test "x$HAVE_GSETTINGS" = "xyes"; then + + + # Check whether --enable-schemas-compile was given. +if test "${enable_schemas_compile+set}" = set; then : + enableval=$enable_schemas_compile; case ${enableval} in + yes) GSETTINGS_DISABLE_SCHEMAS_COMPILE="" ;; + no) GSETTINGS_DISABLE_SCHEMAS_COMPILE="1" ;; + *) as_fn_error $? "bad value ${enableval} for --enable-schemas-compile" "$LINENO" 5 ;; + esac +fi + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.16 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi + +fi + gsettingsschemadir=${datadir}/glib-2.0/schemas + + if test x$cross_compiling != xyes; then + GLIB_COMPILE_SCHEMAS=`$PKG_CONFIG --variable glib_compile_schemas gio-2.0` + else + # Extract the first word of "glib-compile-schemas", so it can be a program name with args. +set dummy glib-compile-schemas; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if test "${ac_cv_path_GLIB_COMPILE_SCHEMAS+set}" = set; then : + $as_echo_n "(cached) " >&6 +else + case $GLIB_COMPILE_SCHEMAS in + [\\/]* | ?:[\\/]*) + ac_cv_path_GLIB_COMPILE_SCHEMAS="$GLIB_COMPILE_SCHEMAS" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then + ac_cv_path_GLIB_COMPILE_SCHEMAS="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GLIB_COMPILE_SCHEMAS=$ac_cv_path_GLIB_COMPILE_SCHEMAS +if test -n "$GLIB_COMPILE_SCHEMAS"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GLIB_COMPILE_SCHEMAS" >&5 +$as_echo "$GLIB_COMPILE_SCHEMAS" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi + + if test "x$GLIB_COMPILE_SCHEMAS" = "x"; then + as_fn_error $? "glib-compile-schemas not found." "$LINENO" 5 + else + : + fi + + GSETTINGS_RULES=' +.PHONY : uninstall-gsettings-schemas install-gsettings-schemas clean-gsettings-schemas + +mostlyclean-am: clean-gsettings-schemas + +gsettings__enum_file = $(addsuffix .enums.xml,$(gsettings_ENUM_NAMESPACE)) + +%.gschema.valid: %.gschema.xml $(gsettings__enum_file) + $(AM_V_GEN) if test -f "$<"; then d=; else d="$(srcdir)/"; fi; $(GLIB_COMPILE_SCHEMAS) --strict --dry-run $(addprefix --schema-file=,$(gsettings__enum_file)) --schema-file=$${d}$< && touch $@ + +all-am: $(gsettings_SCHEMAS:.xml=.valid) +uninstall-am: uninstall-gsettings-schemas +install-data-am: install-gsettings-schemas + +.SECONDARY: $(gsettings_SCHEMAS) + +install-gsettings-schemas: $(gsettings_SCHEMAS) $(gsettings__enum_file) + @$(NORMAL_INSTALL) + if test -n "$^"; then \ + test -z "$(gsettingsschemadir)" || $(MKDIR_P) "$(DESTDIR)$(gsettingsschemadir)"; \ + $(INSTALL_DATA) $^ "$(DESTDIR)$(gsettingsschemadir)"; \ + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir); \ + fi + +uninstall-gsettings-schemas: + @$(NORMAL_UNINSTALL) + @list='\''$(gsettings_SCHEMAS) $(gsettings__enum_file)'\''; test -n "$(gsettingsschemadir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e '\''s|^.*/||'\''`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '\''$(DESTDIR)$(gsettingsschemadir)'\'' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(gsettingsschemadir)" && rm -f $$files + test -n "$(GSETTINGS_DISABLE_SCHEMAS_COMPILE)$(DESTDIR)" || $(GLIB_COMPILE_SCHEMAS) $(gsettingsschemadir) + +clean-gsettings-schemas: + rm -f $(gsettings_SCHEMAS:.xml=.valid) $(gsettings__enum_file) + +ifdef gsettings_ENUM_NAMESPACE +$(gsettings__enum_file): $(gsettings_ENUM_FILES) + $(AM_V_GEN) glib-mkenums --comments '\'''\'' --fhead "" --vhead " <@type@ id='\''$(gsettings_ENUM_NAMESPACE).@EnumName@'\''>" --vprod " " --vtail " " --ftail "" $^ > $@.tmp && mv $@.tmp $@ +endif +' + + + + + + + fi + + + LIBS=$gst_check_save_LIBS + LDFLAGS=$gst_check_save_LDFLAGS + CFLAGS=$gst_check_save_CFLAGS + CPPFLAGS=$gst_check_save_CPPFLAGS + CXXFLAGS=$gst_check_save_CXXFLAGS + + if test x$HAVE_GSETTINGS = xno; then + USE_GSETTINGS=no + else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will be built: gsettings" >&5 +$as_echo "$as_me: *** These plugins will be built: gsettings" >&6;} + fi +fi +if test x$USE_GSETTINGS = xyes; then + : + if test "xgsettings" != "x"; then + GST_PLUGINS_YES="\tgsettings\n$GST_PLUGINS_YES" + fi + +$as_echo "#define HAVE_GSETTINGS /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: *** These plugins will not be built: gsettings" >&5 +$as_echo "$as_me: *** These plugins will not be built: gsettings" >&6;} + if test "xgsettings" != "x"; then + GST_PLUGINS_NO="\tgsettings\n$GST_PLUGINS_NO" + fi + : +fi + if test x$USE_GSETTINGS = xyes; then + USE_GSETTINGS_TRUE= + USE_GSETTINGS_FALSE='#' +else + USE_GSETTINGS_TRUE='#' + USE_GSETTINGS_FALSE= +fi + + + +else + + + if false; then + USE_ASSRENDER_TRUE= + USE_ASSRENDER_FALSE='#' +else + USE_ASSRENDER_TRUE='#' + USE_ASSRENDER_FALSE= +fi + + if false; then + USE_AMRWB_TRUE= + USE_AMRWB_FALSE='#' +else + USE_AMRWB_TRUE='#' + USE_AMRWB_FALSE= +fi + + if false; then + USE_APEXSINK_TRUE= + USE_APEXSINK_FALSE='#' +else + USE_APEXSINK_TRUE='#' + USE_APEXSINK_FALSE= +fi + + if false; then + USE_BZ2_TRUE= + USE_BZ2_FALSE='#' +else + USE_BZ2_TRUE='#' + USE_BZ2_FALSE= +fi + + if false; then + USE_CDAUDIO_TRUE= + USE_CDAUDIO_FALSE='#' +else + USE_CDAUDIO_TRUE='#' + USE_CDAUDIO_FALSE= +fi + + if false; then + USE_CELT_TRUE= + USE_CELT_FALSE='#' +else + USE_CELT_TRUE='#' + USE_CELT_FALSE= +fi + + if false; then + USE_COG_TRUE= + USE_COG_FALSE='#' +else + USE_COG_TRUE='#' + USE_COG_FALSE= +fi + + if false; then + USE_CURL_TRUE= + USE_CURL_FALSE='#' +else + USE_CURL_TRUE='#' + USE_CURL_FALSE= +fi + + if false; then + USE_DC1394_TRUE= + USE_DC1394_FALSE='#' +else + USE_DC1394_TRUE='#' + USE_DC1394_FALSE= +fi + + if false; then + USE_DECKLINK_TRUE= + USE_DECKLINK_FALSE='#' +else + USE_DECKLINK_TRUE='#' + USE_DECKLINK_FALSE= +fi + + if false; then + USE_DIRECTFB_TRUE= + USE_DIRECTFB_FALSE='#' +else + USE_DIRECTFB_TRUE='#' + USE_DIRECTFB_FALSE= +fi + + if false; then + USE_DIRAC_TRUE= + USE_DIRAC_FALSE='#' +else + USE_DIRAC_TRUE='#' + USE_DIRAC_FALSE= +fi + + if false; then + USE_DTS_TRUE= + USE_DTS_FALSE='#' +else + USE_DTS_TRUE='#' + USE_DTS_FALSE= +fi + + if false; then + USE_DIVX_TRUE= + USE_DIVX_FALSE='#' +else + USE_DIVX_TRUE='#' + USE_DIVX_FALSE= +fi + + if false; then + USE_EXIF_TRUE= + USE_EXIF_FALSE='#' +else + USE_EXIF_TRUE='#' + USE_EXIF_FALSE= +fi + + if false; then + USE_RESINDVD_TRUE= + USE_RESINDVD_FALSE='#' +else + USE_RESINDVD_TRUE='#' + USE_RESINDVD_FALSE= +fi + + if false; then + USE_FAAC_TRUE= + USE_FAAC_FALSE='#' +else + USE_FAAC_TRUE='#' + USE_FAAC_FALSE= +fi + + if false; then + USE_FAAD_TRUE= + USE_FAAD_FALSE='#' +else + USE_FAAD_TRUE='#' + USE_FAAD_FALSE= +fi + + if false; then + USE_FBDEV_TRUE= + USE_FBDEV_FALSE='#' +else + USE_FBDEV_TRUE='#' + USE_FBDEV_FALSE= +fi + + if false; then + USE_FLITE_TRUE= + USE_FLITE_FALSE='#' +else + USE_FLITE_TRUE='#' + USE_FLITE_FALSE= +fi + + if false; then + USE_GSM_TRUE= + USE_GSM_FALSE='#' +else + USE_GSM_TRUE='#' + USE_GSM_FALSE= +fi + + if false; then + USE_JP2K_TRUE= + USE_JP2K_FALSE='#' +else + USE_JP2K_TRUE='#' + USE_JP2K_FALSE= +fi + + if false; then + USE_KATE_TRUE= + USE_KATE_FALSE='#' +else + USE_KATE_TRUE='#' + USE_KATE_FALSE= +fi + + if false; then + USE_TIGER_TRUE= + USE_TIGER_FALSE='#' +else + USE_TIGER_TRUE='#' + USE_TIGER_FALSE= +fi + + if false; then + USE_LADSPA_TRUE= + USE_LADSPA_FALSE='#' +else + USE_LADSPA_TRUE='#' + USE_LADSPA_FALSE= +fi + + if false; then + USE_LV2_TRUE= + USE_LV2_FALSE='#' +else + USE_LV2_TRUE='#' + USE_LV2_FALSE= +fi + + if false; then + USE_LIBMMS_TRUE= + USE_LIBMMS_FALSE='#' +else + USE_LIBMMS_TRUE='#' + USE_LIBMMS_FALSE= +fi + + if false; then + USE_LINSYS_TRUE= + USE_LINSYS_FALSE='#' +else + USE_LINSYS_TRUE='#' + USE_LINSYS_FALSE= +fi + + if false; then + USE_MODPLUG_TRUE= + USE_MODPLUG_FALSE='#' +else + USE_MODPLUG_TRUE='#' + USE_MODPLUG_FALSE= +fi + + if false; then + USE_MIMIC_TRUE= + USE_MIMIC_FALSE='#' +else + USE_MIMIC_TRUE='#' + USE_MIMIC_FALSE= +fi + + if false; then + USE_MPEG2ENC_TRUE= + USE_MPEG2ENC_FALSE='#' +else + USE_MPEG2ENC_TRUE='#' + USE_MPEG2ENC_FALSE= +fi + + if false; then + USE_MPLEX_TRUE= + USE_MPLEX_FALSE='#' +else + USE_MPLEX_TRUE='#' + USE_MPLEX_FALSE= +fi + + if false; then + USE_MUSEPACK_TRUE= + USE_MUSEPACK_FALSE='#' +else + USE_MUSEPACK_TRUE='#' + USE_MUSEPACK_FALSE= +fi + + if false; then + USE_MUSICBRAINZ_TRUE= + USE_MUSICBRAINZ_FALSE='#' +else + USE_MUSICBRAINZ_TRUE='#' + USE_MUSICBRAINZ_FALSE= +fi + + if false; then + USE_MYTHTV_TRUE= + USE_MYTHTV_FALSE='#' +else + USE_MYTHTV_TRUE='#' + USE_MYTHTV_FALSE= +fi + + if false; then + USE_NAS_TRUE= + USE_NAS_FALSE='#' +else + USE_NAS_TRUE='#' + USE_NAS_FALSE= +fi + + if false; then + USE_NEON_TRUE= + USE_NEON_FALSE='#' +else + USE_NEON_TRUE='#' + USE_NEON_FALSE= +fi + + if false; then + USE_OFA_TRUE= + USE_OFA_FALSE='#' +else + USE_OFA_TRUE='#' + USE_OFA_FALSE= +fi + + if false; then + USE_OPENCV_TRUE= + USE_OPENCV_FALSE='#' +else + USE_OPENCV_TRUE='#' + USE_OPENCV_FALSE= +fi + + if false; then + USE_RSVG_TRUE= + USE_RSVG_FALSE='#' +else + USE_RSVG_TRUE='#' + USE_RSVG_FALSE= +fi + + if false; then + USE_TIMIDITY_TRUE= + USE_TIMIDITY_FALSE='#' +else + USE_TIMIDITY_TRUE='#' + USE_TIMIDITY_FALSE= +fi + + if false; then + USE_WILDMIDI_TRUE= + USE_WILDMIDI_FALSE='#' +else + USE_WILDMIDI_TRUE='#' + USE_WILDMIDI_FALSE= +fi + + if false; then + USE_SDL_TRUE= + USE_SDL_FALSE='#' +else + USE_SDL_TRUE='#' + USE_SDL_FALSE= +fi + + if false; then + USE_SNDFILE_TRUE= + USE_SNDFILE_FALSE='#' +else + USE_SNDFILE_TRUE='#' + USE_SNDFILE_FALSE= +fi + + if false; then + USE_SOUNDTOUCH_TRUE= + USE_SOUNDTOUCH_FALSE='#' +else + USE_SOUNDTOUCH_TRUE='#' + USE_SOUNDTOUCH_FALSE= +fi + + if false; then + USE_SPC_TRUE= + USE_SPC_FALSE='#' +else + USE_SPC_TRUE='#' + USE_SPC_FALSE= +fi + + if false; then + USE_GME_TRUE= + USE_GME_FALSE='#' +else + USE_GME_TRUE='#' + USE_GME_FALSE= +fi + + if false; then + USE_GSETTINGS_TRUE= + USE_GSETTINGS_FALSE='#' +else + USE_GSETTINGS_TRUE='#' + USE_GSETTINGS_FALSE= +fi + + if false; then + USE_SWFDEC_TRUE= + USE_SWFDEC_FALSE='#' +else + USE_SWFDEC_TRUE='#' + USE_SWFDEC_FALSE= +fi + + if false; then + USE_XVID_TRUE= + USE_XVID_FALSE='#' +else + USE_XVID_TRUE='#' + USE_XVID_FALSE= +fi + + if false; then + USE_DVB_TRUE= + USE_DVB_FALSE='#' +else + USE_DVB_TRUE='#' + USE_DVB_FALSE= +fi + + if false; then + USE_WININET_TRUE= + USE_WININET_FALSE='#' +else + USE_WININET_TRUE='#' + USE_WININET_FALSE= +fi + + if false; then + USE_ACM_TRUE= + USE_ACM_FALSE='#' +else + USE_ACM_TRUE='#' + USE_ACM_FALSE= +fi + + if false; then + USE_VDPAU_TRUE= + USE_VDPAU_FALSE='#' +else + USE_VDPAU_TRUE='#' + USE_VDPAU_FALSE= +fi + + if false; then + USE_SCHRO_TRUE= + USE_SCHRO_FALSE='#' +else + USE_SCHRO_TRUE='#' + USE_SCHRO_FALSE= +fi + + if false; then + USE_ZBAR_TRUE= + USE_ZBAR_FALSE='#' +else + USE_ZBAR_TRUE='#' + USE_ZBAR_FALSE= +fi + + if false; then + USE_VP8_TRUE= + USE_VP8_FALSE='#' +else + USE_VP8_TRUE='#' + USE_VP8_FALSE= +fi + + if false; then + USE_RTMP_TRUE= + USE_RTMP_FALSE='#' +else + USE_RTMP_TRUE='#' + USE_RTMP_FALSE= +fi + + +fi + + +if test "x$USE_DEBUG" = xyes; then + PROFILE_CFLAGS="-g" +fi + + +if test "x$PACKAGE_VERSION_NANO" = "x1"; then + DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED" +else + DEPRECATED_CFLAGS="" +fi + + +GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" +GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" + + + +GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)" +GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)" + + + +GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" +GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" + + + +GST_ALL_LDFLAGS="-no-undefined" + + +GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*" + + +GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^_*gst_plugin_desc.*' $GST_ALL_LDFLAGS" + + + + +ac_config_files="$ac_config_files Makefile common/Makefile common/m4/Makefile gst-plugins-bad.spec gst/Makefile gst/adpcmdec/Makefile gst/adpcmenc/Makefile gst/aiff/Makefile gst/asfmux/Makefile gst/autoconvert/Makefile gst/bayer/Makefile gst/camerabin/Makefile gst/camerabin2/Makefile gst/cdxaparse/Makefile gst/colorspace/Makefile gst/coloreffects/Makefile gst/dataurisrc/Makefile gst/dccp/Makefile gst/debugutils/Makefile gst/dtmf/Makefile gst/dvbsuboverlay/Makefile gst/dvdspu/Makefile gst/festival/Makefile gst/fieldanalysis/Makefile gst/freeze/Makefile gst/frei0r/Makefile gst/gaudieffects/Makefile gst/geometrictransform/Makefile gst/h264parse/Makefile gst/hdvparse/Makefile gst/hls/Makefile gst/id3tag/Makefile gst/interlace/Makefile gst/invtelecine/Makefile gst/ivfparse/Makefile gst/jp2kdecimator/Makefile gst/jpegformat/Makefile gst/legacyresample/Makefile gst/librfb/Makefile gst/liveadder/Makefile gst/mpegdemux/Makefile gst/mpegtsdemux/Makefile gst/mpegtsmux/Makefile gst/mpegtsmux/tsmux/Makefile gst/mpegpsmux/Makefile gst/mpeg4videoparse/Makefile gst/mpegvideoparse/Makefile gst/mve/Makefile gst/mxf/Makefile gst/nsf/Makefile gst/nuvdemux/Makefile gst/patchdetect/Makefile gst/pcapparse/Makefile gst/pnm/Makefile gst/rawparse/Makefile gst/real/Makefile gst/rtpmux/Makefile gst/rtpvp8/Makefile gst/scaletempo/Makefile gst/sdi/Makefile gst/sdp/Makefile gst/segmentclip/Makefile gst/siren/Makefile gst/speed/Makefile gst/subenc/Makefile gst/stereo/Makefile gst/tta/Makefile gst/videofilters/Makefile gst/videomaxrate/Makefile gst/videomeasure/Makefile gst/videoparsers/Makefile gst/videosignal/Makefile gst/vmnc/Makefile gst/y4m/Makefile gst-libs/Makefile gst-libs/gst/Makefile gst-libs/gst/basecamerabinsrc/Makefile gst-libs/gst/interfaces/Makefile gst-libs/gst/signalprocessor/Makefile gst-libs/gst/video/Makefile sys/Makefile sys/dshowdecwrapper/Makefile sys/acmenc/Makefile sys/acmmp3dec/Makefile sys/applemedia/Makefile sys/decklink/Makefile sys/directdraw/Makefile sys/directsound/Makefile sys/dshowsrcwrapper/Makefile sys/dshowvideosink/Makefile sys/dvb/Makefile sys/fbdev/Makefile sys/linsys/Makefile sys/osxvideo/Makefile sys/qtwrapper/Makefile sys/shm/Makefile sys/vcd/Makefile sys/vdpau/Makefile sys/vdpau/gstvdp/Makefile sys/vdpau/basevideodecoder/Makefile sys/wasapi/Makefile sys/wininet/Makefile sys/winks/Makefile sys/winscreencap/Makefile tests/Makefile tests/check/Makefile tests/files/Makefile tests/examples/Makefile tests/examples/camerabin/Makefile tests/examples/camerabin2/Makefile tests/examples/directfb/Makefile tests/examples/mxf/Makefile tests/examples/scaletempo/Makefile tests/icles/Makefile ext/amrwbenc/Makefile ext/assrender/Makefile ext/apexsink/Makefile ext/bz2/Makefile ext/cdaudio/Makefile ext/celt/Makefile ext/cog/Makefile ext/curl/Makefile ext/dc1394/Makefile ext/dirac/Makefile ext/directfb/Makefile ext/divx/Makefile ext/dts/Makefile ext/faac/Makefile ext/faad/Makefile ext/flite/Makefile ext/gsm/Makefile ext/jp2k/Makefile ext/kate/Makefile ext/ladspa/Makefile ext/lv2/Makefile ext/libmms/Makefile ext/Makefile ext/modplug/Makefile ext/mpeg2enc/Makefile ext/mimic/Makefile ext/mplex/Makefile ext/musepack/Makefile ext/musicbrainz/Makefile ext/mythtv/Makefile ext/nas/Makefile ext/neon/Makefile ext/ofa/Makefile ext/opencv/Makefile ext/rsvg/Makefile ext/resindvd/Makefile ext/rtmp/Makefile ext/schroedinger/Makefile ext/sdl/Makefile ext/sndfile/Makefile ext/soundtouch/Makefile ext/gme/Makefile ext/gsettings/Makefile ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml ext/spc/Makefile ext/swfdec/Makefile ext/timidity/Makefile ext/vp8/Makefile ext/xvid/Makefile ext/zbar/Makefile po/Makefile.in docs/Makefile docs/plugins/Makefile docs/version.entities pkgconfig/Makefile pkgconfig/gstreamer-plugins-bad.pc pkgconfig/gstreamer-plugins-bad-uninstalled.pc tools/Makefile m4/Makefile win32/common/config.h" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + test "x$cache_file" != "x/dev/null" && + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + cat confcache >$cache_file + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GST_GCOV_ENABLED_TRUE}" && test -z "${GST_GCOV_ENABLED_FALSE}"; then + as_fn_error $? "conditional \"GST_GCOV_ENABLED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_EXAMPLES_TRUE}" && test -z "${BUILD_EXAMPLES_FALSE}"; then + as_fn_error $? "conditional \"BUILD_EXAMPLES\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_EXTERNAL_TRUE}" && test -z "${USE_EXTERNAL_FALSE}"; then + as_fn_error $? "conditional \"USE_EXTERNAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_EXTERNAL_TRUE}" && test -z "${BUILD_EXTERNAL_FALSE}"; then + as_fn_error $? "conditional \"BUILD_EXTERNAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_EXPERIMENTAL_TRUE}" && test -z "${USE_EXPERIMENTAL_FALSE}"; then + as_fn_error $? "conditional \"USE_EXPERIMENTAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${BUILD_EXPERIMENTAL_TRUE}" && test -z "${BUILD_EXPERIMENTAL_FALSE}"; then + as_fn_error $? "conditional \"BUILD_EXPERIMENTAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${HAVE_CPU_I386_TRUE}" && test -z "${HAVE_CPU_I386_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_I386\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_PPC_TRUE}" && test -z "${HAVE_CPU_PPC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_PPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_PPC64_TRUE}" && test -z "${HAVE_CPU_PPC64_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_PPC64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_ALPHA_TRUE}" && test -z "${HAVE_CPU_ALPHA_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_ALPHA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_ARM_TRUE}" && test -z "${HAVE_CPU_ARM_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_ARM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_SPARC_TRUE}" && test -z "${HAVE_CPU_SPARC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_SPARC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_HPPA_TRUE}" && test -z "${HAVE_CPU_HPPA_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_HPPA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_MIPS_TRUE}" && test -z "${HAVE_CPU_MIPS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_MIPS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_S390_TRUE}" && test -z "${HAVE_CPU_S390_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_S390\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_IA64_TRUE}" && test -z "${HAVE_CPU_IA64_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_IA64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_M68K_TRUE}" && test -z "${HAVE_CPU_M68K_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_M68K\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_X86_64_TRUE}" && test -z "${HAVE_CPU_X86_64_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_X86_64\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_CRIS_TRUE}" && test -z "${HAVE_CPU_CRIS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_CRIS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_CPU_CRISV32_TRUE}" && test -z "${HAVE_CPU_CRISV32_FALSE}"; then + as_fn_error $? "conditional \"HAVE_CPU_CRISV32\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepOBJC_TRUE}" && test -z "${am__fastdepOBJC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepOBJC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_VALGRIND_TRUE}" && test -z "${HAVE_VALGRIND_FALSE}"; then + as_fn_error $? "conditional \"HAVE_VALGRIND\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_GTK_DOC_TRUE}" && test -z "${ENABLE_GTK_DOC_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_GTK_DOC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${GTK_DOC_USE_LIBTOOL_TRUE}" && test -z "${GTK_DOC_USE_LIBTOOL_FALSE}"; then + as_fn_error $? "conditional \"GTK_DOC_USE_LIBTOOL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${ENABLE_PLUGIN_DOCS_TRUE}" && test -z "${ENABLE_PLUGIN_DOCS_FALSE}"; then + as_fn_error $? "conditional \"ENABLE_PLUGIN_DOCS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_UNISTD_H_TRUE}" && test -z "${HAVE_UNISTD_H_FALSE}"; then + as_fn_error $? "conditional \"HAVE_UNISTD_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_PTHREAD_H_TRUE}" && test -z "${HAVE_PTHREAD_H_FALSE}"; then + as_fn_error $? "conditional \"HAVE_PTHREAD_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GST_CHECK_TRUE}" && test -z "${HAVE_GST_CHECK_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GST_CHECK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_GTK_TRUE}" && test -z "${HAVE_GTK_FALSE}"; then + as_fn_error $? "conditional \"HAVE_GTK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_X11_TRUE}" && test -z "${HAVE_X11_FALSE}"; then + as_fn_error $? "conditional \"HAVE_X11\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_EXIF_TRUE}" && test -z "${USE_EXIF_FALSE}"; then + as_fn_error $? "conditional \"USE_EXIF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_ORC_TRUE}" && test -z "${HAVE_ORC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_ORC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_ORCC_TRUE}" && test -z "${HAVE_ORCC_FALSE}"; then + as_fn_error $? "conditional \"HAVE_ORCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_ADPCMDEC_TRUE}" && test -z "${USE_PLUGIN_ADPCMDEC_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_ADPCMDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_ADPCMENC_TRUE}" && test -z "${USE_PLUGIN_ADPCMENC_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_ADPCMENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_AIFF_TRUE}" && test -z "${USE_PLUGIN_AIFF_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_AIFF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_ASFMUX_TRUE}" && test -z "${USE_PLUGIN_ASFMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_ASFMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_AUTOCONVERT_TRUE}" && test -z "${USE_PLUGIN_AUTOCONVERT_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_AUTOCONVERT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_BAYER_TRUE}" && test -z "${USE_PLUGIN_BAYER_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_BAYER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_CAMERABIN_TRUE}" && test -z "${USE_PLUGIN_CAMERABIN_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_CAMERABIN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_CAMERABIN2_TRUE}" && test -z "${USE_PLUGIN_CAMERABIN2_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_CAMERABIN2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_CDXAPARSE_TRUE}" && test -z "${USE_PLUGIN_CDXAPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_CDXAPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_COLOREFFECTS_TRUE}" && test -z "${USE_PLUGIN_COLOREFFECTS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_COLOREFFECTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_COLORSPACE_TRUE}" && test -z "${USE_PLUGIN_COLORSPACE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_COLORSPACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DATAURISRC_TRUE}" && test -z "${USE_PLUGIN_DATAURISRC_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DATAURISRC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DCCP_TRUE}" && test -z "${USE_PLUGIN_DCCP_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DCCP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DEBUGUTILS_TRUE}" && test -z "${USE_PLUGIN_DEBUGUTILS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DEBUGUTILS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DTMF_TRUE}" && test -z "${USE_PLUGIN_DTMF_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DTMF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DVBSUBOVERLAY_TRUE}" && test -z "${USE_PLUGIN_DVBSUBOVERLAY_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DVBSUBOVERLAY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DVDSPU_TRUE}" && test -z "${USE_PLUGIN_DVDSPU_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DVDSPU\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_FESTIVAL_TRUE}" && test -z "${USE_PLUGIN_FESTIVAL_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FESTIVAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_FIELDANALYSIS_TRUE}" && test -z "${USE_PLUGIN_FIELDANALYSIS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FIELDANALYSIS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_FREEZE_TRUE}" && test -z "${USE_PLUGIN_FREEZE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FREEZE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_FREI0R_TRUE}" && test -z "${USE_PLUGIN_FREI0R_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_FREI0R\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_GAUDIEFFECTS_TRUE}" && test -z "${USE_PLUGIN_GAUDIEFFECTS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_GAUDIEFFECTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_GEOMETRICTRANSFORM_TRUE}" && test -z "${USE_PLUGIN_GEOMETRICTRANSFORM_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_GEOMETRICTRANSFORM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_H264PARSE_TRUE}" && test -z "${USE_PLUGIN_H264PARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_H264PARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_HDVPARSE_TRUE}" && test -z "${USE_PLUGIN_HDVPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_HDVPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_HLS_TRUE}" && test -z "${USE_PLUGIN_HLS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_HLS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_ID3TAG_TRUE}" && test -z "${USE_PLUGIN_ID3TAG_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_ID3TAG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_INTERLACE_TRUE}" && test -z "${USE_PLUGIN_INTERLACE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_INTERLACE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_INVTELECINE_TRUE}" && test -z "${USE_PLUGIN_INVTELECINE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_INVTELECINE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_IVFPARSE_TRUE}" && test -z "${USE_PLUGIN_IVFPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_IVFPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_JP2KDECIMATOR_TRUE}" && test -z "${USE_PLUGIN_JP2KDECIMATOR_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_JP2KDECIMATOR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_JPEGFORMAT_TRUE}" && test -z "${USE_PLUGIN_JPEGFORMAT_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_JPEGFORMAT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_LEGACYRESAMPLE_TRUE}" && test -z "${USE_PLUGIN_LEGACYRESAMPLE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_LEGACYRESAMPLE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_LIBRFB_TRUE}" && test -z "${USE_PLUGIN_LIBRFB_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_LIBRFB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_LIVEADDER_TRUE}" && test -z "${USE_PLUGIN_LIVEADDER_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_LIVEADDER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEGDEMUX_TRUE}" && test -z "${USE_PLUGIN_MPEGDEMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEGDEMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEGTSDEMUX_TRUE}" && test -z "${USE_PLUGIN_MPEGTSDEMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEGTSDEMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEGTSMUX_TRUE}" && test -z "${USE_PLUGIN_MPEGTSMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEGTSMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEGPSMUX_TRUE}" && test -z "${USE_PLUGIN_MPEGPSMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEGPSMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEG4VIDEOPARSE_TRUE}" && test -z "${USE_PLUGIN_MPEG4VIDEOPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEG4VIDEOPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MPEGVIDEOPARSE_TRUE}" && test -z "${USE_PLUGIN_MPEGVIDEOPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MPEGVIDEOPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MVE_TRUE}" && test -z "${USE_PLUGIN_MVE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MVE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_MXF_TRUE}" && test -z "${USE_PLUGIN_MXF_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_MXF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_NSF_TRUE}" && test -z "${USE_PLUGIN_NSF_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_NSF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_NUVDEMUX_TRUE}" && test -z "${USE_PLUGIN_NUVDEMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_NUVDEMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_PATCHDETECT_TRUE}" && test -z "${USE_PLUGIN_PATCHDETECT_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_PATCHDETECT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_PCAPPARSE_TRUE}" && test -z "${USE_PLUGIN_PCAPPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_PCAPPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_PNM_TRUE}" && test -z "${USE_PLUGIN_PNM_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_PNM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_RAWPARSE_TRUE}" && test -z "${USE_PLUGIN_RAWPARSE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_RAWPARSE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_REAL_TRUE}" && test -z "${USE_PLUGIN_REAL_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_REAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_RTPMUX_TRUE}" && test -z "${USE_PLUGIN_RTPMUX_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_RTPMUX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_RTPVP8_TRUE}" && test -z "${USE_PLUGIN_RTPVP8_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_RTPVP8\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SCALETEMPO_TRUE}" && test -z "${USE_PLUGIN_SCALETEMPO_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SCALETEMPO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SDI_TRUE}" && test -z "${USE_PLUGIN_SDI_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SDI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SDP_TRUE}" && test -z "${USE_PLUGIN_SDP_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SDP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SEGMENTCLIP_TRUE}" && test -z "${USE_PLUGIN_SEGMENTCLIP_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SEGMENTCLIP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SIREN_TRUE}" && test -z "${USE_PLUGIN_SIREN_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SIREN\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SPEED_TRUE}" && test -z "${USE_PLUGIN_SPEED_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SPEED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_SUBENC_TRUE}" && test -z "${USE_PLUGIN_SUBENC_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_SUBENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_STEREO_TRUE}" && test -z "${USE_PLUGIN_STEREO_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_STEREO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_TTA_TRUE}" && test -z "${USE_PLUGIN_TTA_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_TTA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VIDEOFILTERS_TRUE}" && test -z "${USE_PLUGIN_VIDEOFILTERS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VIDEOFILTERS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VIDEOMAXRATE_TRUE}" && test -z "${USE_PLUGIN_VIDEOMAXRATE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VIDEOMAXRATE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VIDEOMEASURE_TRUE}" && test -z "${USE_PLUGIN_VIDEOMEASURE_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VIDEOMEASURE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VIDEOPARSERS_TRUE}" && test -z "${USE_PLUGIN_VIDEOPARSERS_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VIDEOPARSERS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VIDEOSIGNAL_TRUE}" && test -z "${USE_PLUGIN_VIDEOSIGNAL_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VIDEOSIGNAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_VMNC_TRUE}" && test -z "${USE_PLUGIN_VMNC_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_VMNC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_Y4M_TRUE}" && test -z "${USE_PLUGIN_Y4M_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_Y4M\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_REAL_TRUE}" && test -z "${USE_PLUGIN_REAL_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_REAL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_CAMERABIN2_TRUE}" && test -z "${USE_PLUGIN_CAMERABIN2_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_CAMERABIN2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_WINSOCK2_H_TRUE}" && test -z "${HAVE_WINSOCK2_H_FALSE}"; then + as_fn_error $? "conditional \"HAVE_WINSOCK2_H\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_PLUGIN_DCCP_TRUE}" && test -z "${USE_PLUGIN_DCCP_FALSE}"; then + as_fn_error $? "conditional \"USE_PLUGIN_DCCP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRECTSOUND_TRUE}" && test -z "${USE_DIRECTSOUND_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRECTSOUND\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRECTDRAW_TRUE}" && test -z "${USE_DIRECTDRAW_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRECTDRAW\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_APPLE_MEDIA_TRUE}" && test -z "${USE_APPLE_MEDIA_FALSE}"; then + as_fn_error $? "conditional \"USE_APPLE_MEDIA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${HAVE_IOS_TRUE}" && test -z "${HAVE_IOS_FALSE}"; then + as_fn_error $? "conditional \"HAVE_IOS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_OSX_VIDEO_TRUE}" && test -z "${USE_OSX_VIDEO_FALSE}"; then + as_fn_error $? "conditional \"USE_OSX_VIDEO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_QUICKTIME_TRUE}" && test -z "${USE_QUICKTIME_FALSE}"; then + as_fn_error $? "conditional \"USE_QUICKTIME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SHM_TRUE}" && test -z "${USE_SHM_FALSE}"; then + as_fn_error $? "conditional \"USE_SHM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VCD_TRUE}" && test -z "${USE_VCD_FALSE}"; then + as_fn_error $? "conditional \"USE_VCD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ASSRENDER_TRUE}" && test -z "${USE_ASSRENDER_FALSE}"; then + as_fn_error $? "conditional \"USE_ASSRENDER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_AMRWB_TRUE}" && test -z "${USE_AMRWB_FALSE}"; then + as_fn_error $? "conditional \"USE_AMRWB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_APEXSINK_TRUE}" && test -z "${USE_APEXSINK_FALSE}"; then + as_fn_error $? "conditional \"USE_APEXSINK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_BZ2_TRUE}" && test -z "${USE_BZ2_FALSE}"; then + as_fn_error $? "conditional \"USE_BZ2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CDAUDIO_TRUE}" && test -z "${USE_CDAUDIO_FALSE}"; then + as_fn_error $? "conditional \"USE_CDAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CELT_TRUE}" && test -z "${USE_CELT_FALSE}"; then + as_fn_error $? "conditional \"USE_CELT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_COG_TRUE}" && test -z "${USE_COG_FALSE}"; then + as_fn_error $? "conditional \"USE_COG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CURL_TRUE}" && test -z "${USE_CURL_FALSE}"; then + as_fn_error $? "conditional \"USE_CURL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DC1394_TRUE}" && test -z "${USE_DC1394_FALSE}"; then + as_fn_error $? "conditional \"USE_DC1394\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DECKLINK_TRUE}" && test -z "${USE_DECKLINK_FALSE}"; then + as_fn_error $? "conditional \"USE_DECKLINK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRECTFB_TRUE}" && test -z "${USE_DIRECTFB_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRECTFB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRAC_TRUE}" && test -z "${USE_DIRAC_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRAC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DTS_TRUE}" && test -z "${USE_DTS_FALSE}"; then + as_fn_error $? "conditional \"USE_DTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIVX_TRUE}" && test -z "${USE_DIVX_FALSE}"; then + as_fn_error $? "conditional \"USE_DIVX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RESINDVD_TRUE}" && test -z "${USE_RESINDVD_FALSE}"; then + as_fn_error $? "conditional \"USE_RESINDVD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FAAC_TRUE}" && test -z "${USE_FAAC_FALSE}"; then + as_fn_error $? "conditional \"USE_FAAC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FAAD_TRUE}" && test -z "${USE_FAAD_FALSE}"; then + as_fn_error $? "conditional \"USE_FAAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FBDEV_TRUE}" && test -z "${USE_FBDEV_FALSE}"; then + as_fn_error $? "conditional \"USE_FBDEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FLITE_TRUE}" && test -z "${USE_FLITE_FALSE}"; then + as_fn_error $? "conditional \"USE_FLITE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GSM_TRUE}" && test -z "${USE_GSM_FALSE}"; then + as_fn_error $? "conditional \"USE_GSM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_JP2K_TRUE}" && test -z "${USE_JP2K_FALSE}"; then + as_fn_error $? "conditional \"USE_JP2K\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_TIGER_TRUE}" && test -z "${USE_TIGER_FALSE}"; then + as_fn_error $? "conditional \"USE_TIGER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_TIGER_TRUE}" && test -z "${USE_TIGER_FALSE}"; then + as_fn_error $? "conditional \"USE_TIGER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_KATE_TRUE}" && test -z "${USE_KATE_FALSE}"; then + as_fn_error $? "conditional \"USE_KATE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LADSPA_TRUE}" && test -z "${USE_LADSPA_FALSE}"; then + as_fn_error $? "conditional \"USE_LADSPA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LV2_TRUE}" && test -z "${USE_LV2_FALSE}"; then + as_fn_error $? "conditional \"USE_LV2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LIBMMS_TRUE}" && test -z "${USE_LIBMMS_FALSE}"; then + as_fn_error $? "conditional \"USE_LIBMMS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LINSYS_TRUE}" && test -z "${USE_LINSYS_FALSE}"; then + as_fn_error $? "conditional \"USE_LINSYS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MODPLUG_TRUE}" && test -z "${USE_MODPLUG_FALSE}"; then + as_fn_error $? "conditional \"USE_MODPLUG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MIMIC_TRUE}" && test -z "${USE_MIMIC_FALSE}"; then + as_fn_error $? "conditional \"USE_MIMIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MPEG2ENC_TRUE}" && test -z "${USE_MPEG2ENC_FALSE}"; then + as_fn_error $? "conditional \"USE_MPEG2ENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MPLEX_TRUE}" && test -z "${USE_MPLEX_FALSE}"; then + as_fn_error $? "conditional \"USE_MPLEX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MUSEPACK_TRUE}" && test -z "${USE_MUSEPACK_FALSE}"; then + as_fn_error $? "conditional \"USE_MUSEPACK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MUSICBRAINZ_TRUE}" && test -z "${USE_MUSICBRAINZ_FALSE}"; then + as_fn_error $? "conditional \"USE_MUSICBRAINZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MYTHTV_TRUE}" && test -z "${USE_MYTHTV_FALSE}"; then + as_fn_error $? "conditional \"USE_MYTHTV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_NAS_TRUE}" && test -z "${USE_NAS_FALSE}"; then + as_fn_error $? "conditional \"USE_NAS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_NEON_TRUE}" && test -z "${USE_NEON_FALSE}"; then + as_fn_error $? "conditional \"USE_NEON\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_OFA_TRUE}" && test -z "${USE_OFA_FALSE}"; then + as_fn_error $? "conditional \"USE_OFA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_OPENCV_TRUE}" && test -z "${USE_OPENCV_FALSE}"; then + as_fn_error $? "conditional \"USE_OPENCV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RSVG_TRUE}" && test -z "${USE_RSVG_FALSE}"; then + as_fn_error $? "conditional \"USE_RSVG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_TIMIDITY_TRUE}" && test -z "${USE_TIMIDITY_FALSE}"; then + as_fn_error $? "conditional \"USE_TIMIDITY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_WILDMIDI_TRUE}" && test -z "${USE_WILDMIDI_FALSE}"; then + as_fn_error $? "conditional \"USE_WILDMIDI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SDL_TRUE}" && test -z "${USE_SDL_FALSE}"; then + as_fn_error $? "conditional \"USE_SDL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SNDFILE_TRUE}" && test -z "${USE_SNDFILE_FALSE}"; then + as_fn_error $? "conditional \"USE_SNDFILE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SOUNDTOUCH_TRUE}" && test -z "${USE_SOUNDTOUCH_FALSE}"; then + as_fn_error $? "conditional \"USE_SOUNDTOUCH\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SPC_TRUE}" && test -z "${USE_SPC_FALSE}"; then + as_fn_error $? "conditional \"USE_SPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GME_TRUE}" && test -z "${USE_GME_FALSE}"; then + as_fn_error $? "conditional \"USE_GME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SWFDEC_TRUE}" && test -z "${USE_SWFDEC_FALSE}"; then + as_fn_error $? "conditional \"USE_SWFDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_XVID_TRUE}" && test -z "${USE_XVID_FALSE}"; then + as_fn_error $? "conditional \"USE_XVID\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DVB_TRUE}" && test -z "${USE_DVB_FALSE}"; then + as_fn_error $? "conditional \"USE_DVB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_WININET_TRUE}" && test -z "${USE_WININET_FALSE}"; then + as_fn_error $? "conditional \"USE_WININET\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ACM_TRUE}" && test -z "${USE_ACM_FALSE}"; then + as_fn_error $? "conditional \"USE_ACM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VDPAU_TRUE}" && test -z "${USE_VDPAU_FALSE}"; then + as_fn_error $? "conditional \"USE_VDPAU\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SCHRO_TRUE}" && test -z "${USE_SCHRO_FALSE}"; then + as_fn_error $? "conditional \"USE_SCHRO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ZBAR_TRUE}" && test -z "${USE_ZBAR_FALSE}"; then + as_fn_error $? "conditional \"USE_ZBAR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VP8_TRUE}" && test -z "${USE_VP8_FALSE}"; then + as_fn_error $? "conditional \"USE_VP8\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RTMP_TRUE}" && test -z "${USE_RTMP_FALSE}"; then + as_fn_error $? "conditional \"USE_RTMP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GSETTINGS_TRUE}" && test -z "${USE_GSETTINGS_FALSE}"; then + as_fn_error $? "conditional \"USE_GSETTINGS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ASSRENDER_TRUE}" && test -z "${USE_ASSRENDER_FALSE}"; then + as_fn_error $? "conditional \"USE_ASSRENDER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_AMRWB_TRUE}" && test -z "${USE_AMRWB_FALSE}"; then + as_fn_error $? "conditional \"USE_AMRWB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_APEXSINK_TRUE}" && test -z "${USE_APEXSINK_FALSE}"; then + as_fn_error $? "conditional \"USE_APEXSINK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_BZ2_TRUE}" && test -z "${USE_BZ2_FALSE}"; then + as_fn_error $? "conditional \"USE_BZ2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CDAUDIO_TRUE}" && test -z "${USE_CDAUDIO_FALSE}"; then + as_fn_error $? "conditional \"USE_CDAUDIO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CELT_TRUE}" && test -z "${USE_CELT_FALSE}"; then + as_fn_error $? "conditional \"USE_CELT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_COG_TRUE}" && test -z "${USE_COG_FALSE}"; then + as_fn_error $? "conditional \"USE_COG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CURL_TRUE}" && test -z "${USE_CURL_FALSE}"; then + as_fn_error $? "conditional \"USE_CURL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DC1394_TRUE}" && test -z "${USE_DC1394_FALSE}"; then + as_fn_error $? "conditional \"USE_DC1394\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DECKLINK_TRUE}" && test -z "${USE_DECKLINK_FALSE}"; then + as_fn_error $? "conditional \"USE_DECKLINK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRECTFB_TRUE}" && test -z "${USE_DIRECTFB_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRECTFB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIRAC_TRUE}" && test -z "${USE_DIRAC_FALSE}"; then + as_fn_error $? "conditional \"USE_DIRAC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DTS_TRUE}" && test -z "${USE_DTS_FALSE}"; then + as_fn_error $? "conditional \"USE_DTS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DIVX_TRUE}" && test -z "${USE_DIVX_FALSE}"; then + as_fn_error $? "conditional \"USE_DIVX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_EXIF_TRUE}" && test -z "${USE_EXIF_FALSE}"; then + as_fn_error $? "conditional \"USE_EXIF\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RESINDVD_TRUE}" && test -z "${USE_RESINDVD_FALSE}"; then + as_fn_error $? "conditional \"USE_RESINDVD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FAAC_TRUE}" && test -z "${USE_FAAC_FALSE}"; then + as_fn_error $? "conditional \"USE_FAAC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FAAD_TRUE}" && test -z "${USE_FAAD_FALSE}"; then + as_fn_error $? "conditional \"USE_FAAD\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FBDEV_TRUE}" && test -z "${USE_FBDEV_FALSE}"; then + as_fn_error $? "conditional \"USE_FBDEV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_FLITE_TRUE}" && test -z "${USE_FLITE_FALSE}"; then + as_fn_error $? "conditional \"USE_FLITE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GSM_TRUE}" && test -z "${USE_GSM_FALSE}"; then + as_fn_error $? "conditional \"USE_GSM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_JP2K_TRUE}" && test -z "${USE_JP2K_FALSE}"; then + as_fn_error $? "conditional \"USE_JP2K\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_KATE_TRUE}" && test -z "${USE_KATE_FALSE}"; then + as_fn_error $? "conditional \"USE_KATE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_TIGER_TRUE}" && test -z "${USE_TIGER_FALSE}"; then + as_fn_error $? "conditional \"USE_TIGER\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LADSPA_TRUE}" && test -z "${USE_LADSPA_FALSE}"; then + as_fn_error $? "conditional \"USE_LADSPA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LV2_TRUE}" && test -z "${USE_LV2_FALSE}"; then + as_fn_error $? "conditional \"USE_LV2\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LIBMMS_TRUE}" && test -z "${USE_LIBMMS_FALSE}"; then + as_fn_error $? "conditional \"USE_LIBMMS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_LINSYS_TRUE}" && test -z "${USE_LINSYS_FALSE}"; then + as_fn_error $? "conditional \"USE_LINSYS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MODPLUG_TRUE}" && test -z "${USE_MODPLUG_FALSE}"; then + as_fn_error $? "conditional \"USE_MODPLUG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MIMIC_TRUE}" && test -z "${USE_MIMIC_FALSE}"; then + as_fn_error $? "conditional \"USE_MIMIC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MPEG2ENC_TRUE}" && test -z "${USE_MPEG2ENC_FALSE}"; then + as_fn_error $? "conditional \"USE_MPEG2ENC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MPLEX_TRUE}" && test -z "${USE_MPLEX_FALSE}"; then + as_fn_error $? "conditional \"USE_MPLEX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MUSEPACK_TRUE}" && test -z "${USE_MUSEPACK_FALSE}"; then + as_fn_error $? "conditional \"USE_MUSEPACK\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MUSICBRAINZ_TRUE}" && test -z "${USE_MUSICBRAINZ_FALSE}"; then + as_fn_error $? "conditional \"USE_MUSICBRAINZ\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_MYTHTV_TRUE}" && test -z "${USE_MYTHTV_FALSE}"; then + as_fn_error $? "conditional \"USE_MYTHTV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_NAS_TRUE}" && test -z "${USE_NAS_FALSE}"; then + as_fn_error $? "conditional \"USE_NAS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_NEON_TRUE}" && test -z "${USE_NEON_FALSE}"; then + as_fn_error $? "conditional \"USE_NEON\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_OFA_TRUE}" && test -z "${USE_OFA_FALSE}"; then + as_fn_error $? "conditional \"USE_OFA\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_OPENCV_TRUE}" && test -z "${USE_OPENCV_FALSE}"; then + as_fn_error $? "conditional \"USE_OPENCV\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RSVG_TRUE}" && test -z "${USE_RSVG_FALSE}"; then + as_fn_error $? "conditional \"USE_RSVG\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_TIMIDITY_TRUE}" && test -z "${USE_TIMIDITY_FALSE}"; then + as_fn_error $? "conditional \"USE_TIMIDITY\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_WILDMIDI_TRUE}" && test -z "${USE_WILDMIDI_FALSE}"; then + as_fn_error $? "conditional \"USE_WILDMIDI\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SDL_TRUE}" && test -z "${USE_SDL_FALSE}"; then + as_fn_error $? "conditional \"USE_SDL\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SNDFILE_TRUE}" && test -z "${USE_SNDFILE_FALSE}"; then + as_fn_error $? "conditional \"USE_SNDFILE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SOUNDTOUCH_TRUE}" && test -z "${USE_SOUNDTOUCH_FALSE}"; then + as_fn_error $? "conditional \"USE_SOUNDTOUCH\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SPC_TRUE}" && test -z "${USE_SPC_FALSE}"; then + as_fn_error $? "conditional \"USE_SPC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GME_TRUE}" && test -z "${USE_GME_FALSE}"; then + as_fn_error $? "conditional \"USE_GME\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_GSETTINGS_TRUE}" && test -z "${USE_GSETTINGS_FALSE}"; then + as_fn_error $? "conditional \"USE_GSETTINGS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SWFDEC_TRUE}" && test -z "${USE_SWFDEC_FALSE}"; then + as_fn_error $? "conditional \"USE_SWFDEC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_XVID_TRUE}" && test -z "${USE_XVID_FALSE}"; then + as_fn_error $? "conditional \"USE_XVID\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_DVB_TRUE}" && test -z "${USE_DVB_FALSE}"; then + as_fn_error $? "conditional \"USE_DVB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_WININET_TRUE}" && test -z "${USE_WININET_FALSE}"; then + as_fn_error $? "conditional \"USE_WININET\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ACM_TRUE}" && test -z "${USE_ACM_FALSE}"; then + as_fn_error $? "conditional \"USE_ACM\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VDPAU_TRUE}" && test -z "${USE_VDPAU_FALSE}"; then + as_fn_error $? "conditional \"USE_VDPAU\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_SCHRO_TRUE}" && test -z "${USE_SCHRO_FALSE}"; then + as_fn_error $? "conditional \"USE_SCHRO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_ZBAR_TRUE}" && test -z "${USE_ZBAR_FALSE}"; then + as_fn_error $? "conditional \"USE_ZBAR\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_VP8_TRUE}" && test -z "${USE_VP8_FALSE}"; then + as_fn_error $? "conditional \"USE_VP8\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_RTMP_TRUE}" && test -z "${USE_RTMP_FALSE}"; then + as_fn_error $? "conditional \"USE_RTMP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: ${CONFIG_STATUS=./config.status} +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -p'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -p' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -p' + fi +else + as_ln_s='cp -p' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +if test -x / >/dev/null 2>&1; then + as_test_x='test -x' +else + if ls -dL / >/dev/null 2>&1; then + as_ls_L_option=L + else + as_ls_L_option= + fi + as_test_x=' + eval sh -c '\'' + if test -d "$1"; then + test -d "$1/."; + else + case $1 in #( + -*)set "./$1";; + esac; + case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in #(( + ???[sx]*):;;*)false;;esac;fi + '\'' sh + ' +fi +as_executable_p=$as_test_x + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by GStreamer Bad Plug-ins $as_me 0.10.22, which was +generated by GNU Autoconf 2.67. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +GStreamer Bad Plug-ins config.status 0.10.22 +configured by $0, generated by GNU Autoconf 2.67, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2010 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +AS='`$ECHO "X$AS" | $Xsed -e "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "X$DLLTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "X$OBJDUMP" | $Xsed -e "$delay_single_quote_subst"`' +macro_version='`$ECHO "X$macro_version" | $Xsed -e "$delay_single_quote_subst"`' +macro_revision='`$ECHO "X$macro_revision" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared='`$ECHO "X$enable_shared" | $Xsed -e "$delay_single_quote_subst"`' +enable_static='`$ECHO "X$enable_static" | $Xsed -e "$delay_single_quote_subst"`' +pic_mode='`$ECHO "X$pic_mode" | $Xsed -e "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "X$enable_fast_install" | $Xsed -e "$delay_single_quote_subst"`' +host_alias='`$ECHO "X$host_alias" | $Xsed -e "$delay_single_quote_subst"`' +host='`$ECHO "X$host" | $Xsed -e "$delay_single_quote_subst"`' +host_os='`$ECHO "X$host_os" | $Xsed -e "$delay_single_quote_subst"`' +build_alias='`$ECHO "X$build_alias" | $Xsed -e "$delay_single_quote_subst"`' +build='`$ECHO "X$build" | $Xsed -e "$delay_single_quote_subst"`' +build_os='`$ECHO "X$build_os" | $Xsed -e "$delay_single_quote_subst"`' +SED='`$ECHO "X$SED" | $Xsed -e "$delay_single_quote_subst"`' +Xsed='`$ECHO "X$Xsed" | $Xsed -e "$delay_single_quote_subst"`' +GREP='`$ECHO "X$GREP" | $Xsed -e "$delay_single_quote_subst"`' +EGREP='`$ECHO "X$EGREP" | $Xsed -e "$delay_single_quote_subst"`' +FGREP='`$ECHO "X$FGREP" | $Xsed -e "$delay_single_quote_subst"`' +LD='`$ECHO "X$LD" | $Xsed -e "$delay_single_quote_subst"`' +NM='`$ECHO "X$NM" | $Xsed -e "$delay_single_quote_subst"`' +LN_S='`$ECHO "X$LN_S" | $Xsed -e "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "X$max_cmd_len" | $Xsed -e "$delay_single_quote_subst"`' +ac_objext='`$ECHO "X$ac_objext" | $Xsed -e "$delay_single_quote_subst"`' +exeext='`$ECHO "X$exeext" | $Xsed -e "$delay_single_quote_subst"`' +lt_unset='`$ECHO "X$lt_unset" | $Xsed -e "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "X$lt_SP2NL" | $Xsed -e "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "X$lt_NL2SP" | $Xsed -e "$delay_single_quote_subst"`' +reload_flag='`$ECHO "X$reload_flag" | $Xsed -e "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "X$reload_cmds" | $Xsed -e "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "X$deplibs_check_method" | $Xsed -e "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "X$file_magic_cmd" | $Xsed -e "$delay_single_quote_subst"`' +AR='`$ECHO "X$AR" | $Xsed -e "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "X$AR_FLAGS" | $Xsed -e "$delay_single_quote_subst"`' +STRIP='`$ECHO "X$STRIP" | $Xsed -e "$delay_single_quote_subst"`' +RANLIB='`$ECHO "X$RANLIB" | $Xsed -e "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "X$old_postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "X$old_postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "X$old_archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +CC='`$ECHO "X$CC" | $Xsed -e "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "X$CFLAGS" | $Xsed -e "$delay_single_quote_subst"`' +compiler='`$ECHO "X$compiler" | $Xsed -e "$delay_single_quote_subst"`' +GCC='`$ECHO "X$GCC" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "X$lt_cv_sys_global_symbol_pipe" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "X$lt_cv_sys_global_symbol_to_cdecl" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "X$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +objdir='`$ECHO "X$objdir" | $Xsed -e "$delay_single_quote_subst"`' +SHELL='`$ECHO "X$SHELL" | $Xsed -e "$delay_single_quote_subst"`' +ECHO='`$ECHO "X$ECHO" | $Xsed -e "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "X$MAGIC_CMD" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "X$lt_prog_compiler_no_builtin_flag" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "X$lt_prog_compiler_wl" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "X$lt_prog_compiler_pic" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "X$lt_prog_compiler_static" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "X$lt_cv_prog_compiler_c_o" | $Xsed -e "$delay_single_quote_subst"`' +need_locks='`$ECHO "X$need_locks" | $Xsed -e "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "X$DSYMUTIL" | $Xsed -e "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "X$NMEDIT" | $Xsed -e "$delay_single_quote_subst"`' +LIPO='`$ECHO "X$LIPO" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL='`$ECHO "X$OTOOL" | $Xsed -e "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "X$OTOOL64" | $Xsed -e "$delay_single_quote_subst"`' +libext='`$ECHO "X$libext" | $Xsed -e "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "X$shrext_cmds" | $Xsed -e "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "X$extract_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "X$archive_cmds_need_lc" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "X$enable_shared_with_static_runtimes" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "X$export_dynamic_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "X$whole_archive_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "X$compiler_needs_object" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "X$old_archive_from_new_cmds" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "X$old_archive_from_expsyms_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "X$archive_cmds" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "X$archive_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds='`$ECHO "X$module_cmds" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "X$module_expsym_cmds" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "X$with_gnu_ld" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "X$allow_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "X$no_undefined_flag" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "X$hardcode_libdir_flag_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld='`$ECHO "X$hardcode_libdir_flag_spec_ld" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "X$hardcode_libdir_separator" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "X$hardcode_direct" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "X$hardcode_direct_absolute" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "X$hardcode_minus_L" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "X$hardcode_shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "X$hardcode_automatic" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "X$inherit_rpath" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "X$link_all_deplibs" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path='`$ECHO "X$fix_srcfile_path" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "X$always_export_symbols" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "X$export_symbols_cmds" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "X$exclude_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "X$include_expsyms" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "X$prelink_cmds" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "X$file_list_spec" | $Xsed -e "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "X$variables_saved_for_relink" | $Xsed -e "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "X$need_lib_prefix" | $Xsed -e "$delay_single_quote_subst"`' +need_version='`$ECHO "X$need_version" | $Xsed -e "$delay_single_quote_subst"`' +version_type='`$ECHO "X$version_type" | $Xsed -e "$delay_single_quote_subst"`' +runpath_var='`$ECHO "X$runpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "X$shlibpath_var" | $Xsed -e "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "X$shlibpath_overrides_runpath" | $Xsed -e "$delay_single_quote_subst"`' +libname_spec='`$ECHO "X$libname_spec" | $Xsed -e "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "X$library_names_spec" | $Xsed -e "$delay_single_quote_subst"`' +soname_spec='`$ECHO "X$soname_spec" | $Xsed -e "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "X$postinstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "X$postuninstall_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "X$finish_cmds" | $Xsed -e "$delay_single_quote_subst"`' +finish_eval='`$ECHO "X$finish_eval" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "X$hardcode_into_libs" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "X$sys_lib_search_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +sys_lib_dlsearch_path_spec='`$ECHO "X$sys_lib_dlsearch_path_spec" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "X$hardcode_action" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "X$enable_dlopen" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "X$enable_dlopen_self" | $Xsed -e "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "X$enable_dlopen_self_static" | $Xsed -e "$delay_single_quote_subst"`' +old_striplib='`$ECHO "X$old_striplib" | $Xsed -e "$delay_single_quote_subst"`' +striplib='`$ECHO "X$striplib" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "X$compiler_lib_search_dirs" | $Xsed -e "$delay_single_quote_subst"`' +predep_objects='`$ECHO "X$predep_objects" | $Xsed -e "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "X$postdep_objects" | $Xsed -e "$delay_single_quote_subst"`' +predeps='`$ECHO "X$predeps" | $Xsed -e "$delay_single_quote_subst"`' +postdeps='`$ECHO "X$postdeps" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "X$compiler_lib_search_path" | $Xsed -e "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "X$LD_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "X$old_archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "X$compiler_CXX" | $Xsed -e "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "X$GCC_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "X$lt_prog_compiler_no_builtin_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "X$lt_prog_compiler_wl_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "X$lt_prog_compiler_pic_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "X$lt_prog_compiler_static_CXX" | $Xsed -e "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "X$lt_cv_prog_compiler_c_o_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "X$archive_cmds_need_lc_CXX" | $Xsed -e "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "X$enable_shared_with_static_runtimes_CXX" | $Xsed -e "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "X$export_dynamic_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "X$whole_archive_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "X$compiler_needs_object_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "X$old_archive_from_new_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "X$old_archive_from_expsyms_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "X$archive_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "X$archive_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "X$module_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "X$module_expsym_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "X$with_gnu_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "X$allow_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "X$no_undefined_flag_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "X$hardcode_libdir_flag_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_ld_CXX='`$ECHO "X$hardcode_libdir_flag_spec_ld_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "X$hardcode_libdir_separator_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "X$hardcode_direct_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "X$hardcode_direct_absolute_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "X$hardcode_minus_L_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "X$hardcode_shlibpath_var_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "X$hardcode_automatic_CXX" | $Xsed -e "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "X$inherit_rpath_CXX" | $Xsed -e "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "X$link_all_deplibs_CXX" | $Xsed -e "$delay_single_quote_subst"`' +fix_srcfile_path_CXX='`$ECHO "X$fix_srcfile_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "X$always_export_symbols_CXX" | $Xsed -e "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "X$export_symbols_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "X$exclude_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "X$include_expsyms_CXX" | $Xsed -e "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "X$prelink_cmds_CXX" | $Xsed -e "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "X$file_list_spec_CXX" | $Xsed -e "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "X$hardcode_action_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "X$compiler_lib_search_dirs_CXX" | $Xsed -e "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "X$predep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "X$postdep_objects_CXX" | $Xsed -e "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "X$predeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "X$postdeps_CXX" | $Xsed -e "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "X$compiler_lib_search_path_CXX" | $Xsed -e "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# Quote evaled strings. +for var in SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +AR \ +AR_FLAGS \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +SHELL \ +ECHO \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_wl \ +lt_prog_compiler_pic \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_flag_spec_ld \ +hardcode_libdir_separator \ +fix_srcfile_path \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_flag_spec_ld_CXX \ +hardcode_libdir_separator_CXX \ +fix_srcfile_path_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +sys_lib_dlsearch_path_spec \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX; do + case \`eval \\\\\$ECHO "X\\\\\$\$var"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"X\\\$\$var\\" | \\\$Xsed -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Fix-up fallback echo if it was mangled by the above quoting rules. +case \$lt_ECHO in +*'\\\$0 --fallback-echo"') lt_ECHO=\`\$ECHO "X\$lt_ECHO" | \$Xsed -e 's/\\\\\\\\\\\\\\\$0 --fallback-echo"\$/\$0 --fallback-echo"/'\` + ;; +esac + +ac_aux_dir='$ac_aux_dir' +xsi_shell='$xsi_shell' +lt_shell_append='$lt_shell_append' + +# See if we are running on zsh, and set the options which allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + TIMESTAMP='$TIMESTAMP' + RM='$RM' + ofile='$ofile' + + + + + +# Capture the value of obsolete ALL_LINGUAS because we need it to compute + # POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES, CATALOGS. But hide it + # from automake < 1.5. + eval 'OBSOLETE_ALL_LINGUAS''="$ALL_LINGUAS"' + # Capture the value of LINGUAS because we need it to compute CATALOGS. + LINGUAS="${LINGUAS-%UNSET%}" + +# variables for create stdint.h replacement +PACKAGE="$PACKAGE" +VERSION="$VERSION" +ac_stdint_h="$ac_stdint_h" +_ac_stdint_h=`$as_echo "_$PACKAGE-$ac_stdint_h" | $as_tr_cpp` +ac_cv_stdint_message="$ac_cv_stdint_message" +ac_cv_header_stdint_t="$ac_cv_header_stdint_t" +ac_cv_header_stdint_x="$ac_cv_header_stdint_x" +ac_cv_header_stdint_o="$ac_cv_header_stdint_o" +ac_cv_header_stdint_u="$ac_cv_header_stdint_u" +ac_cv_type_uint64_t="$ac_cv_type_uint64_t" +ac_cv_type_u_int64_t="$ac_cv_type_u_int64_t" +ac_cv_char_data_model="$ac_cv_char_data_model" +ac_cv_long_data_model="$ac_cv_long_data_model" +ac_cv_type_int_least32_t="$ac_cv_type_int_least32_t" +ac_cv_type_int_fast32_t="$ac_cv_type_int_fast32_t" +ac_cv_type_intmax_t="$ac_cv_type_intmax_t" + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "po-directories") CONFIG_COMMANDS="$CONFIG_COMMANDS po-directories" ;; + "$ac_stdint_h") CONFIG_COMMANDS="$CONFIG_COMMANDS $ac_stdint_h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "common/Makefile") CONFIG_FILES="$CONFIG_FILES common/Makefile" ;; + "common/m4/Makefile") CONFIG_FILES="$CONFIG_FILES common/m4/Makefile" ;; + "gst-plugins-bad.spec") CONFIG_FILES="$CONFIG_FILES gst-plugins-bad.spec" ;; + "gst/Makefile") CONFIG_FILES="$CONFIG_FILES gst/Makefile" ;; + "gst/adpcmdec/Makefile") CONFIG_FILES="$CONFIG_FILES gst/adpcmdec/Makefile" ;; + "gst/adpcmenc/Makefile") CONFIG_FILES="$CONFIG_FILES gst/adpcmenc/Makefile" ;; + "gst/aiff/Makefile") CONFIG_FILES="$CONFIG_FILES gst/aiff/Makefile" ;; + "gst/asfmux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/asfmux/Makefile" ;; + "gst/autoconvert/Makefile") CONFIG_FILES="$CONFIG_FILES gst/autoconvert/Makefile" ;; + "gst/bayer/Makefile") CONFIG_FILES="$CONFIG_FILES gst/bayer/Makefile" ;; + "gst/camerabin/Makefile") CONFIG_FILES="$CONFIG_FILES gst/camerabin/Makefile" ;; + "gst/camerabin2/Makefile") CONFIG_FILES="$CONFIG_FILES gst/camerabin2/Makefile" ;; + "gst/cdxaparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/cdxaparse/Makefile" ;; + "gst/colorspace/Makefile") CONFIG_FILES="$CONFIG_FILES gst/colorspace/Makefile" ;; + "gst/coloreffects/Makefile") CONFIG_FILES="$CONFIG_FILES gst/coloreffects/Makefile" ;; + "gst/dataurisrc/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dataurisrc/Makefile" ;; + "gst/dccp/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dccp/Makefile" ;; + "gst/debugutils/Makefile") CONFIG_FILES="$CONFIG_FILES gst/debugutils/Makefile" ;; + "gst/dtmf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dtmf/Makefile" ;; + "gst/dvbsuboverlay/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dvbsuboverlay/Makefile" ;; + "gst/dvdspu/Makefile") CONFIG_FILES="$CONFIG_FILES gst/dvdspu/Makefile" ;; + "gst/festival/Makefile") CONFIG_FILES="$CONFIG_FILES gst/festival/Makefile" ;; + "gst/fieldanalysis/Makefile") CONFIG_FILES="$CONFIG_FILES gst/fieldanalysis/Makefile" ;; + "gst/freeze/Makefile") CONFIG_FILES="$CONFIG_FILES gst/freeze/Makefile" ;; + "gst/frei0r/Makefile") CONFIG_FILES="$CONFIG_FILES gst/frei0r/Makefile" ;; + "gst/gaudieffects/Makefile") CONFIG_FILES="$CONFIG_FILES gst/gaudieffects/Makefile" ;; + "gst/geometrictransform/Makefile") CONFIG_FILES="$CONFIG_FILES gst/geometrictransform/Makefile" ;; + "gst/h264parse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/h264parse/Makefile" ;; + "gst/hdvparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/hdvparse/Makefile" ;; + "gst/hls/Makefile") CONFIG_FILES="$CONFIG_FILES gst/hls/Makefile" ;; + "gst/id3tag/Makefile") CONFIG_FILES="$CONFIG_FILES gst/id3tag/Makefile" ;; + "gst/interlace/Makefile") CONFIG_FILES="$CONFIG_FILES gst/interlace/Makefile" ;; + "gst/invtelecine/Makefile") CONFIG_FILES="$CONFIG_FILES gst/invtelecine/Makefile" ;; + "gst/ivfparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/ivfparse/Makefile" ;; + "gst/jp2kdecimator/Makefile") CONFIG_FILES="$CONFIG_FILES gst/jp2kdecimator/Makefile" ;; + "gst/jpegformat/Makefile") CONFIG_FILES="$CONFIG_FILES gst/jpegformat/Makefile" ;; + "gst/legacyresample/Makefile") CONFIG_FILES="$CONFIG_FILES gst/legacyresample/Makefile" ;; + "gst/librfb/Makefile") CONFIG_FILES="$CONFIG_FILES gst/librfb/Makefile" ;; + "gst/liveadder/Makefile") CONFIG_FILES="$CONFIG_FILES gst/liveadder/Makefile" ;; + "gst/mpegdemux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegdemux/Makefile" ;; + "gst/mpegtsdemux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegtsdemux/Makefile" ;; + "gst/mpegtsmux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegtsmux/Makefile" ;; + "gst/mpegtsmux/tsmux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegtsmux/tsmux/Makefile" ;; + "gst/mpegpsmux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegpsmux/Makefile" ;; + "gst/mpeg4videoparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpeg4videoparse/Makefile" ;; + "gst/mpegvideoparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mpegvideoparse/Makefile" ;; + "gst/mve/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mve/Makefile" ;; + "gst/mxf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/mxf/Makefile" ;; + "gst/nsf/Makefile") CONFIG_FILES="$CONFIG_FILES gst/nsf/Makefile" ;; + "gst/nuvdemux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/nuvdemux/Makefile" ;; + "gst/patchdetect/Makefile") CONFIG_FILES="$CONFIG_FILES gst/patchdetect/Makefile" ;; + "gst/pcapparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/pcapparse/Makefile" ;; + "gst/pnm/Makefile") CONFIG_FILES="$CONFIG_FILES gst/pnm/Makefile" ;; + "gst/rawparse/Makefile") CONFIG_FILES="$CONFIG_FILES gst/rawparse/Makefile" ;; + "gst/real/Makefile") CONFIG_FILES="$CONFIG_FILES gst/real/Makefile" ;; + "gst/rtpmux/Makefile") CONFIG_FILES="$CONFIG_FILES gst/rtpmux/Makefile" ;; + "gst/rtpvp8/Makefile") CONFIG_FILES="$CONFIG_FILES gst/rtpvp8/Makefile" ;; + "gst/scaletempo/Makefile") CONFIG_FILES="$CONFIG_FILES gst/scaletempo/Makefile" ;; + "gst/sdi/Makefile") CONFIG_FILES="$CONFIG_FILES gst/sdi/Makefile" ;; + "gst/sdp/Makefile") CONFIG_FILES="$CONFIG_FILES gst/sdp/Makefile" ;; + "gst/segmentclip/Makefile") CONFIG_FILES="$CONFIG_FILES gst/segmentclip/Makefile" ;; + "gst/siren/Makefile") CONFIG_FILES="$CONFIG_FILES gst/siren/Makefile" ;; + "gst/speed/Makefile") CONFIG_FILES="$CONFIG_FILES gst/speed/Makefile" ;; + "gst/subenc/Makefile") CONFIG_FILES="$CONFIG_FILES gst/subenc/Makefile" ;; + "gst/stereo/Makefile") CONFIG_FILES="$CONFIG_FILES gst/stereo/Makefile" ;; + "gst/tta/Makefile") CONFIG_FILES="$CONFIG_FILES gst/tta/Makefile" ;; + "gst/videofilters/Makefile") CONFIG_FILES="$CONFIG_FILES gst/videofilters/Makefile" ;; + "gst/videomaxrate/Makefile") CONFIG_FILES="$CONFIG_FILES gst/videomaxrate/Makefile" ;; + "gst/videomeasure/Makefile") CONFIG_FILES="$CONFIG_FILES gst/videomeasure/Makefile" ;; + "gst/videoparsers/Makefile") CONFIG_FILES="$CONFIG_FILES gst/videoparsers/Makefile" ;; + "gst/videosignal/Makefile") CONFIG_FILES="$CONFIG_FILES gst/videosignal/Makefile" ;; + "gst/vmnc/Makefile") CONFIG_FILES="$CONFIG_FILES gst/vmnc/Makefile" ;; + "gst/y4m/Makefile") CONFIG_FILES="$CONFIG_FILES gst/y4m/Makefile" ;; + "gst-libs/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/Makefile" ;; + "gst-libs/gst/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/Makefile" ;; + "gst-libs/gst/basecamerabinsrc/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/basecamerabinsrc/Makefile" ;; + "gst-libs/gst/interfaces/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/interfaces/Makefile" ;; + "gst-libs/gst/signalprocessor/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/signalprocessor/Makefile" ;; + "gst-libs/gst/video/Makefile") CONFIG_FILES="$CONFIG_FILES gst-libs/gst/video/Makefile" ;; + "sys/Makefile") CONFIG_FILES="$CONFIG_FILES sys/Makefile" ;; + "sys/dshowdecwrapper/Makefile") CONFIG_FILES="$CONFIG_FILES sys/dshowdecwrapper/Makefile" ;; + "sys/acmenc/Makefile") CONFIG_FILES="$CONFIG_FILES sys/acmenc/Makefile" ;; + "sys/acmmp3dec/Makefile") CONFIG_FILES="$CONFIG_FILES sys/acmmp3dec/Makefile" ;; + "sys/applemedia/Makefile") CONFIG_FILES="$CONFIG_FILES sys/applemedia/Makefile" ;; + "sys/decklink/Makefile") CONFIG_FILES="$CONFIG_FILES sys/decklink/Makefile" ;; + "sys/directdraw/Makefile") CONFIG_FILES="$CONFIG_FILES sys/directdraw/Makefile" ;; + "sys/directsound/Makefile") CONFIG_FILES="$CONFIG_FILES sys/directsound/Makefile" ;; + "sys/dshowsrcwrapper/Makefile") CONFIG_FILES="$CONFIG_FILES sys/dshowsrcwrapper/Makefile" ;; + "sys/dshowvideosink/Makefile") CONFIG_FILES="$CONFIG_FILES sys/dshowvideosink/Makefile" ;; + "sys/dvb/Makefile") CONFIG_FILES="$CONFIG_FILES sys/dvb/Makefile" ;; + "sys/fbdev/Makefile") CONFIG_FILES="$CONFIG_FILES sys/fbdev/Makefile" ;; + "sys/linsys/Makefile") CONFIG_FILES="$CONFIG_FILES sys/linsys/Makefile" ;; + "sys/osxvideo/Makefile") CONFIG_FILES="$CONFIG_FILES sys/osxvideo/Makefile" ;; + "sys/qtwrapper/Makefile") CONFIG_FILES="$CONFIG_FILES sys/qtwrapper/Makefile" ;; + "sys/shm/Makefile") CONFIG_FILES="$CONFIG_FILES sys/shm/Makefile" ;; + "sys/vcd/Makefile") CONFIG_FILES="$CONFIG_FILES sys/vcd/Makefile" ;; + "sys/vdpau/Makefile") CONFIG_FILES="$CONFIG_FILES sys/vdpau/Makefile" ;; + "sys/vdpau/gstvdp/Makefile") CONFIG_FILES="$CONFIG_FILES sys/vdpau/gstvdp/Makefile" ;; + "sys/vdpau/basevideodecoder/Makefile") CONFIG_FILES="$CONFIG_FILES sys/vdpau/basevideodecoder/Makefile" ;; + "sys/wasapi/Makefile") CONFIG_FILES="$CONFIG_FILES sys/wasapi/Makefile" ;; + "sys/wininet/Makefile") CONFIG_FILES="$CONFIG_FILES sys/wininet/Makefile" ;; + "sys/winks/Makefile") CONFIG_FILES="$CONFIG_FILES sys/winks/Makefile" ;; + "sys/winscreencap/Makefile") CONFIG_FILES="$CONFIG_FILES sys/winscreencap/Makefile" ;; + "tests/Makefile") CONFIG_FILES="$CONFIG_FILES tests/Makefile" ;; + "tests/check/Makefile") CONFIG_FILES="$CONFIG_FILES tests/check/Makefile" ;; + "tests/files/Makefile") CONFIG_FILES="$CONFIG_FILES tests/files/Makefile" ;; + "tests/examples/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/Makefile" ;; + "tests/examples/camerabin/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/camerabin/Makefile" ;; + "tests/examples/camerabin2/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/camerabin2/Makefile" ;; + "tests/examples/directfb/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/directfb/Makefile" ;; + "tests/examples/mxf/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/mxf/Makefile" ;; + "tests/examples/scaletempo/Makefile") CONFIG_FILES="$CONFIG_FILES tests/examples/scaletempo/Makefile" ;; + "tests/icles/Makefile") CONFIG_FILES="$CONFIG_FILES tests/icles/Makefile" ;; + "ext/amrwbenc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/amrwbenc/Makefile" ;; + "ext/assrender/Makefile") CONFIG_FILES="$CONFIG_FILES ext/assrender/Makefile" ;; + "ext/apexsink/Makefile") CONFIG_FILES="$CONFIG_FILES ext/apexsink/Makefile" ;; + "ext/bz2/Makefile") CONFIG_FILES="$CONFIG_FILES ext/bz2/Makefile" ;; + "ext/cdaudio/Makefile") CONFIG_FILES="$CONFIG_FILES ext/cdaudio/Makefile" ;; + "ext/celt/Makefile") CONFIG_FILES="$CONFIG_FILES ext/celt/Makefile" ;; + "ext/cog/Makefile") CONFIG_FILES="$CONFIG_FILES ext/cog/Makefile" ;; + "ext/curl/Makefile") CONFIG_FILES="$CONFIG_FILES ext/curl/Makefile" ;; + "ext/dc1394/Makefile") CONFIG_FILES="$CONFIG_FILES ext/dc1394/Makefile" ;; + "ext/dirac/Makefile") CONFIG_FILES="$CONFIG_FILES ext/dirac/Makefile" ;; + "ext/directfb/Makefile") CONFIG_FILES="$CONFIG_FILES ext/directfb/Makefile" ;; + "ext/divx/Makefile") CONFIG_FILES="$CONFIG_FILES ext/divx/Makefile" ;; + "ext/dts/Makefile") CONFIG_FILES="$CONFIG_FILES ext/dts/Makefile" ;; + "ext/faac/Makefile") CONFIG_FILES="$CONFIG_FILES ext/faac/Makefile" ;; + "ext/faad/Makefile") CONFIG_FILES="$CONFIG_FILES ext/faad/Makefile" ;; + "ext/flite/Makefile") CONFIG_FILES="$CONFIG_FILES ext/flite/Makefile" ;; + "ext/gsm/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gsm/Makefile" ;; + "ext/jp2k/Makefile") CONFIG_FILES="$CONFIG_FILES ext/jp2k/Makefile" ;; + "ext/kate/Makefile") CONFIG_FILES="$CONFIG_FILES ext/kate/Makefile" ;; + "ext/ladspa/Makefile") CONFIG_FILES="$CONFIG_FILES ext/ladspa/Makefile" ;; + "ext/lv2/Makefile") CONFIG_FILES="$CONFIG_FILES ext/lv2/Makefile" ;; + "ext/libmms/Makefile") CONFIG_FILES="$CONFIG_FILES ext/libmms/Makefile" ;; + "ext/Makefile") CONFIG_FILES="$CONFIG_FILES ext/Makefile" ;; + "ext/modplug/Makefile") CONFIG_FILES="$CONFIG_FILES ext/modplug/Makefile" ;; + "ext/mpeg2enc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mpeg2enc/Makefile" ;; + "ext/mimic/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mimic/Makefile" ;; + "ext/mplex/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mplex/Makefile" ;; + "ext/musepack/Makefile") CONFIG_FILES="$CONFIG_FILES ext/musepack/Makefile" ;; + "ext/musicbrainz/Makefile") CONFIG_FILES="$CONFIG_FILES ext/musicbrainz/Makefile" ;; + "ext/mythtv/Makefile") CONFIG_FILES="$CONFIG_FILES ext/mythtv/Makefile" ;; + "ext/nas/Makefile") CONFIG_FILES="$CONFIG_FILES ext/nas/Makefile" ;; + "ext/neon/Makefile") CONFIG_FILES="$CONFIG_FILES ext/neon/Makefile" ;; + "ext/ofa/Makefile") CONFIG_FILES="$CONFIG_FILES ext/ofa/Makefile" ;; + "ext/opencv/Makefile") CONFIG_FILES="$CONFIG_FILES ext/opencv/Makefile" ;; + "ext/rsvg/Makefile") CONFIG_FILES="$CONFIG_FILES ext/rsvg/Makefile" ;; + "ext/resindvd/Makefile") CONFIG_FILES="$CONFIG_FILES ext/resindvd/Makefile" ;; + "ext/rtmp/Makefile") CONFIG_FILES="$CONFIG_FILES ext/rtmp/Makefile" ;; + "ext/schroedinger/Makefile") CONFIG_FILES="$CONFIG_FILES ext/schroedinger/Makefile" ;; + "ext/sdl/Makefile") CONFIG_FILES="$CONFIG_FILES ext/sdl/Makefile" ;; + "ext/sndfile/Makefile") CONFIG_FILES="$CONFIG_FILES ext/sndfile/Makefile" ;; + "ext/soundtouch/Makefile") CONFIG_FILES="$CONFIG_FILES ext/soundtouch/Makefile" ;; + "ext/gme/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gme/Makefile" ;; + "ext/gsettings/Makefile") CONFIG_FILES="$CONFIG_FILES ext/gsettings/Makefile" ;; + "ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml") CONFIG_FILES="$CONFIG_FILES ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml" ;; + "ext/spc/Makefile") CONFIG_FILES="$CONFIG_FILES ext/spc/Makefile" ;; + "ext/swfdec/Makefile") CONFIG_FILES="$CONFIG_FILES ext/swfdec/Makefile" ;; + "ext/timidity/Makefile") CONFIG_FILES="$CONFIG_FILES ext/timidity/Makefile" ;; + "ext/vp8/Makefile") CONFIG_FILES="$CONFIG_FILES ext/vp8/Makefile" ;; + "ext/xvid/Makefile") CONFIG_FILES="$CONFIG_FILES ext/xvid/Makefile" ;; + "ext/zbar/Makefile") CONFIG_FILES="$CONFIG_FILES ext/zbar/Makefile" ;; + "po/Makefile.in") CONFIG_FILES="$CONFIG_FILES po/Makefile.in" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "docs/plugins/Makefile") CONFIG_FILES="$CONFIG_FILES docs/plugins/Makefile" ;; + "docs/version.entities") CONFIG_FILES="$CONFIG_FILES docs/version.entities" ;; + "pkgconfig/Makefile") CONFIG_FILES="$CONFIG_FILES pkgconfig/Makefile" ;; + "pkgconfig/gstreamer-plugins-bad.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-plugins-bad.pc" ;; + "pkgconfig/gstreamer-plugins-bad-uninstalled.pc") CONFIG_FILES="$CONFIG_FILES pkgconfig/gstreamer-plugins-bad-uninstalled.pc" ;; + "tools/Makefile") CONFIG_FILES="$CONFIG_FILES tools/Makefile" ;; + "m4/Makefile") CONFIG_FILES="$CONFIG_FILES m4/Makefile" ;; + "win32/common/config.h") CONFIG_FILES="$CONFIG_FILES win32/common/config.h" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers + test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= + trap 'exit_status=$? + { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -n "$tmp" && test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_t=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_t"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$tmp/stdin" + case $ac_file in + -) cat "$tmp/out" && rm -f "$tmp/out";; + *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" + } >"$tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { $as_echo "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +$as_echo "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Autoconf 2.62 quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + case $CONFIG_FILES in + *\'*) eval set x "$CONFIG_FILES" ;; + *) set x $CONFIG_FILES ;; + esac + shift + for mf + do + # Strip MF so we end up with the name of the file. + mf=`echo "$mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile or not. + # We used to match only the files named `Makefile.in', but + # some people rename them; so instead we look at the file content. + # Grep'ing the first line is not enough: some people post-process + # each Makefile.in and add a new line on top of each file to say so. + # Grep'ing the whole file is not good either: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then + dirpart=`$as_dirname -- "$mf" || +$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$mf" : 'X\(//\)[^/]' \| \ + X"$mf" : 'X\(//\)$' \| \ + X"$mf" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + else + continue + fi + # Extract the definition of DEPDIR, am__include, and am__quote + # from the Makefile without running `make'. + DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` + test -z "$DEPDIR" && continue + am__include=`sed -n 's/^am__include = //p' < "$mf"` + test -z "am__include" && continue + am__quote=`sed -n 's/^am__quote = //p' < "$mf"` + # When using ansi2knr, U may be empty or an underscore; expand it + U=`sed -n 's/^U = //p' < "$mf"` + # Find all dependency output files, they are included files with + # $(DEPDIR) in their names. We invoke sed twice because it is the + # simplest approach to changing $(DEPDIR) to its actual value in the + # expansion. + for file in `sed -n " + s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ + sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do + # Make sure the directory exists. + test -f "$dirpart/$file" && continue + fdir=`$as_dirname -- "$file" || +$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$file" : 'X\(//\)[^/]' \| \ + X"$file" : 'X\(//\)$' \| \ + X"$file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir=$dirpart/$fdir; as_fn_mkdir_p + # echo "creating $dirpart/$file" + echo '# dummy' > "$dirpart/$file" + done + done +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options which allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}" ; then + setopt NO_GLOB_SUBST + fi + + cfgfile="${ofile}T" + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL + +# `$ECHO "$ofile" | sed 's%^.*/%%'` - Provide generalized library-building support services. +# Generated automatically by $as_me ($PACKAGE$TIMESTAMP) $VERSION +# Libtool was configured on host `(hostname || uname -n) 2>/dev/null | sed 1q`: +# NOTE: Changes made to this file will be lost: look at ltmain.sh. +# +# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, +# 2006, 2007, 2008 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is part of GNU Libtool. +# +# GNU Libtool is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation; either version 2 of +# the License, or (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GNU Libtool; see the file COPYING. If not, a copy +# can be downloaded from http://www.gnu.org/licenses/gpl.html, or +# obtained by writing to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. + + +# The names of the tagged configurations supported by this script. +available_tags="CXX " + +# ### BEGIN LIBTOOL CONFIG + +# Assembler program. +AS=$AS + +# DLL creation program. +DLLTOOL=$DLLTOOL + +# Object dumper program. +OBJDUMP=$OBJDUMP + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method == "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# The archiver. +AR=$lt_AR +AR_FLAGS=$lt_AR_FLAGS + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that does not interpret backslashes. +ECHO=$lt_ECHO + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_sys_lib_dlsearch_path_spec + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test "X${COLLECT_NAMES+set}" != Xset; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + +ltmain="$ac_aux_dir/ltmain.sh" + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '/^# Generated shell functions inserted here/q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + case $xsi_shell in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac +} + +# func_basename file +func_basename () +{ + func_basename_result="${1##*/}" +} + +# func_dirname_and_basename file append nondir_replacement +# perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# Implementation must be kept synchronized with func_dirname +# and func_basename. For efficiency, we do not delegate to +# those functions but instead duplicate the functionality here. +func_dirname_and_basename () +{ + case ${1} in + */*) func_dirname_result="${1%/*}${2}" ;; + * ) func_dirname_result="${3}" ;; + esac + func_basename_result="${1##*/}" +} + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +func_stripname () +{ + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary parameter first. + func_stripname_result=${3} + func_stripname_result=${func_stripname_result#"${1}"} + func_stripname_result=${func_stripname_result%"${2}"} +} + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=${1%%=*} + func_opt_split_arg=${1#*=} +} + +# func_lo2o object +func_lo2o () +{ + case ${1} in + *.lo) func_lo2o_result=${1%.lo}.${objext} ;; + *) func_lo2o_result=${1} ;; + esac +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=${1%.*}.lo +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=$(( $* )) +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=${#1} +} + +_LT_EOF + ;; + *) # Bourne compatible functions. + cat << \_LT_EOF >> "$cfgfile" + +# func_dirname file append nondir_replacement +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +func_dirname () +{ + # Extract subdirectory from the argument. + func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"` + if test "X$func_dirname_result" = "X${1}"; then + func_dirname_result="${3}" + else + func_dirname_result="$func_dirname_result${2}" + fi +} + +# func_basename file +func_basename () +{ + func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"` +} + + +# func_stripname prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# func_strip_suffix prefix name +func_stripname () +{ + case ${2} in + .*) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%\\\\${2}\$%%"`;; + *) func_stripname_result=`$ECHO "X${3}" \ + | $Xsed -e "s%^${1}%%" -e "s%${2}\$%%"`;; + esac +} + +# sed scripts: +my_sed_long_opt='1s/^\(-[^=]*\)=.*/\1/;q' +my_sed_long_arg='1s/^-[^=]*=//' + +# func_opt_split +func_opt_split () +{ + func_opt_split_opt=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_opt"` + func_opt_split_arg=`$ECHO "X${1}" | $Xsed -e "$my_sed_long_arg"` +} + +# func_lo2o object +func_lo2o () +{ + func_lo2o_result=`$ECHO "X${1}" | $Xsed -e "$lo2o"` +} + +# func_xform libobj-or-source +func_xform () +{ + func_xform_result=`$ECHO "X${1}" | $Xsed -e 's/\.[^.]*$/.lo/'` +} + +# func_arith arithmetic-term... +func_arith () +{ + func_arith_result=`expr "$@"` +} + +# func_len string +# STRING may not start with a hyphen. +func_len () +{ + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` +} + +_LT_EOF +esac + +case $lt_shell_append in + yes) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1+=\$2" +} +_LT_EOF + ;; + *) + cat << \_LT_EOF >> "$cfgfile" + +# func_append var value +# Append VALUE to the end of shell variable VAR. +func_append () +{ + eval "$1=\$$1\$2" +} + +_LT_EOF + ;; + esac + + + sed -n '/^# Generated shell functions inserted here/,$p' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# If ld is used when linking, flag to hardcode \$libdir into a binary +# during linking. This must work even if \$libdir does not exist. +hardcode_libdir_flag_spec_ld=$lt_hardcode_libdir_flag_spec_ld_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\${shared_ext} during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \${shlibpath_var} if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Fix the shell variable \$srcfile for the compiler. +fix_srcfile_path=$lt_fix_srcfile_path_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + "po-directories":C) + for ac_file in $CONFIG_FILES; do + # Support "outfile[:infile[:infile...]]" + case "$ac_file" in + *:*) ac_file=`echo "$ac_file"|sed 's%:.*%%'` ;; + esac + # PO directories have a Makefile.in generated from Makefile.in.in. + case "$ac_file" in */Makefile.in) + # Adjust a relative srcdir. + ac_dir=`echo "$ac_file"|sed 's%/[^/][^/]*$%%'` + ac_dir_suffix="/`echo "$ac_dir"|sed 's%^\./%%'`" + ac_dots=`echo "$ac_dir_suffix"|sed 's%/[^/]*%../%g'` + # In autoconf-2.13 it is called $ac_given_srcdir. + # In autoconf-2.50 it is called $srcdir. + test -n "$ac_given_srcdir" || ac_given_srcdir="$srcdir" + case "$ac_given_srcdir" in + .) top_srcdir=`echo $ac_dots|sed 's%/$%%'` ;; + /*) top_srcdir="$ac_given_srcdir" ;; + *) top_srcdir="$ac_dots$ac_given_srcdir" ;; + esac + # Treat a directory as a PO directory if and only if it has a + # POTFILES.in file. This allows packages to have multiple PO + # directories under different names or in different locations. + if test -f "$ac_given_srcdir/$ac_dir/POTFILES.in"; then + rm -f "$ac_dir/POTFILES" + test -n "$as_me" && echo "$as_me: creating $ac_dir/POTFILES" || echo "creating $ac_dir/POTFILES" + cat "$ac_given_srcdir/$ac_dir/POTFILES.in" | sed -e "/^#/d" -e "/^[ ]*\$/d" -e "s,.*, $top_srcdir/& \\\\," | sed -e "\$s/\(.*\) \\\\/\1/" > "$ac_dir/POTFILES" + POMAKEFILEDEPS="POTFILES.in" + # ALL_LINGUAS, POFILES, UPDATEPOFILES, DUMMYPOFILES, GMOFILES depend + # on $ac_dir but don't depend on user-specified configuration + # parameters. + if test -f "$ac_given_srcdir/$ac_dir/LINGUAS"; then + # The LINGUAS file contains the set of available languages. + if test -n "$OBSOLETE_ALL_LINGUAS"; then + test -n "$as_me" && echo "$as_me: setting ALL_LINGUAS in configure.in is obsolete" || echo "setting ALL_LINGUAS in configure.in is obsolete" + fi + ALL_LINGUAS_=`sed -e "/^#/d" -e "s/#.*//" "$ac_given_srcdir/$ac_dir/LINGUAS"` + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$ALL_LINGUAS_' + POMAKEFILEDEPS="$POMAKEFILEDEPS LINGUAS" + else + # The set of available languages was given in configure.in. + # Hide the ALL_LINGUAS assigment from automake < 1.5. + eval 'ALL_LINGUAS''=$OBSOLETE_ALL_LINGUAS' + fi + # Compute POFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).po) + # Compute UPDATEPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).po-update) + # Compute DUMMYPOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(lang).nop) + # Compute GMOFILES + # as $(foreach lang, $(ALL_LINGUAS), $(srcdir)/$(lang).gmo) + case "$ac_given_srcdir" in + .) srcdirpre= ;; + *) srcdirpre='$(srcdir)/' ;; + esac + POFILES= + UPDATEPOFILES= + DUMMYPOFILES= + GMOFILES= + for lang in $ALL_LINGUAS; do + POFILES="$POFILES $srcdirpre$lang.po" + UPDATEPOFILES="$UPDATEPOFILES $lang.po-update" + DUMMYPOFILES="$DUMMYPOFILES $lang.nop" + GMOFILES="$GMOFILES $srcdirpre$lang.gmo" + done + # CATALOGS depends on both $ac_dir and the user's LINGUAS + # environment variable. + INST_LINGUAS= + if test -n "$ALL_LINGUAS"; then + for presentlang in $ALL_LINGUAS; do + useit=no + if test "%UNSET%" != "$LINGUAS"; then + desiredlanguages="$LINGUAS" + else + desiredlanguages="$ALL_LINGUAS" + fi + for desiredlang in $desiredlanguages; do + # Use the presentlang catalog if desiredlang is + # a. equal to presentlang, or + # b. a variant of presentlang (because in this case, + # presentlang can be used as a fallback for messages + # which are not translated in the desiredlang catalog). + case "$desiredlang" in + "$presentlang"*) useit=yes;; + esac + done + if test $useit = yes; then + INST_LINGUAS="$INST_LINGUAS $presentlang" + fi + done + fi + CATALOGS= + if test -n "$INST_LINGUAS"; then + for lang in $INST_LINGUAS; do + CATALOGS="$CATALOGS $lang.gmo" + done + fi + test -n "$as_me" && echo "$as_me: creating $ac_dir/Makefile" || echo "creating $ac_dir/Makefile" + sed -e "/^POTFILES =/r $ac_dir/POTFILES" -e "/^# Makevars/r $ac_given_srcdir/$ac_dir/Makevars" -e "s|@POFILES@|$POFILES|g" -e "s|@UPDATEPOFILES@|$UPDATEPOFILES|g" -e "s|@DUMMYPOFILES@|$DUMMYPOFILES|g" -e "s|@GMOFILES@|$GMOFILES|g" -e "s|@CATALOGS@|$CATALOGS|g" -e "s|@POMAKEFILEDEPS@|$POMAKEFILEDEPS|g" "$ac_dir/Makefile.in" > "$ac_dir/Makefile" + for f in "$ac_given_srcdir/$ac_dir"/Rules-*; do + if test -f "$f"; then + case "$f" in + *.orig | *.bak | *~) ;; + *) cat "$f" >> "$ac_dir/Makefile" ;; + esac + fi + done + fi + ;; + esac + done ;; + "$ac_stdint_h":C) +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_stdint_h : $_ac_stdint_h" >&5 +$as_echo "$as_me: creating $ac_stdint_h : $_ac_stdint_h" >&6;} +ac_stdint=$tmp/_stdint.h + +echo "#ifndef" $_ac_stdint_h >$ac_stdint +echo "#define" $_ac_stdint_h "1" >>$ac_stdint +echo "#ifndef" _GENERATED_STDINT_H >>$ac_stdint +echo "#define" _GENERATED_STDINT_H '"'$PACKAGE $VERSION'"' >>$ac_stdint +echo "/* generated $ac_cv_stdint_message */" >>$ac_stdint +if test "_$ac_cv_header_stdint_t" != "_" ; then +echo "#define _STDINT_HAVE_STDINT_H" "1" >>$ac_stdint +echo "#include " >>$ac_stdint +echo "#endif" >>$ac_stdint +echo "#endif" >>$ac_stdint +else + +cat >>$ac_stdint < +#else +#include + +/* .................... configured part ............................ */ + +STDINT_EOF + +echo "/* whether we have a C99 compatible stdint header file */" >>$ac_stdint +if test "_$ac_cv_header_stdint_x" != "_" ; then + ac_header="$ac_cv_header_stdint_x" + echo "#define _STDINT_HEADER_INTPTR" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_INTPTR */" >>$ac_stdint +fi + +echo "/* whether we have a C96 compatible inttypes header file */" >>$ac_stdint +if test "_$ac_cv_header_stdint_o" != "_" ; then + ac_header="$ac_cv_header_stdint_o" + echo "#define _STDINT_HEADER_UINT32" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_UINT32 */" >>$ac_stdint +fi + +echo "/* whether we have a BSD compatible inet types header */" >>$ac_stdint +if test "_$ac_cv_header_stdint_u" != "_" ; then + ac_header="$ac_cv_header_stdint_u" + echo "#define _STDINT_HEADER_U_INT32" '"'"$ac_header"'"' >>$ac_stdint +else + echo "/* #undef _STDINT_HEADER_U_INT32 */" >>$ac_stdint +fi + +echo "" >>$ac_stdint + +if test "_$ac_header" != "_" ; then if test "$ac_header" != "stddef.h" ; then + echo "#include <$ac_header>" >>$ac_stdint + echo "" >>$ac_stdint +fi fi + +echo "/* which 64bit typedef has been found */" >>$ac_stdint +if test "$ac_cv_type_uint64_t" = "yes" ; then +echo "#define _STDINT_HAVE_UINT64_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_UINT64_T */" >>$ac_stdint +fi +if test "$ac_cv_type_u_int64_t" = "yes" ; then +echo "#define _STDINT_HAVE_U_INT64_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_U_INT64_T */" >>$ac_stdint +fi +echo "" >>$ac_stdint + +echo "/* which type model has been detected */" >>$ac_stdint +if test "_$ac_cv_char_data_model" != "_" ; then +echo "#define _STDINT_CHAR_MODEL" "$ac_cv_char_data_model" >>$ac_stdint +echo "#define _STDINT_LONG_MODEL" "$ac_cv_long_data_model" >>$ac_stdint +else +echo "/* #undef _STDINT_CHAR_MODEL // skipped */" >>$ac_stdint +echo "/* #undef _STDINT_LONG_MODEL // skipped */" >>$ac_stdint +fi +echo "" >>$ac_stdint + +echo "/* whether int_least types were detected */" >>$ac_stdint +if test "$ac_cv_type_int_least32_t" = "yes"; then +echo "#define _STDINT_HAVE_INT_LEAST32_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INT_LEAST32_T */" >>$ac_stdint +fi +echo "/* whether int_fast types were detected */" >>$ac_stdint +if test "$ac_cv_type_int_fast32_t" = "yes"; then +echo "#define _STDINT_HAVE_INT_FAST32_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INT_FAST32_T */" >>$ac_stdint +fi +echo "/* whether intmax_t type was detected */" >>$ac_stdint +if test "$ac_cv_type_intmax_t" = "yes"; then +echo "#define _STDINT_HAVE_INTMAX_T" "1" >>$ac_stdint +else +echo "/* #undef _STDINT_HAVE_INTMAX_T */" >>$ac_stdint +fi +echo "" >>$ac_stdint + + cat >>$ac_stdint <= 199901L +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef long long int64_t; +typedef unsigned long long uint64_t; + +#elif !defined __STRICT_ANSI__ +#if defined _MSC_VER || defined __WATCOMC__ || defined __BORLANDC__ +#define _HAVE_UINT64_T +typedef __int64 int64_t; +typedef unsigned __int64 uint64_t; + +#elif defined __GNUC__ || defined __MWERKS__ || defined __ELF__ +/* note: all ELF-systems seem to have loff-support which needs 64-bit */ +#if !defined _NO_LONGLONG +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef long long int64_t; +typedef unsigned long long uint64_t; +#endif + +#elif defined __alpha || (defined __mips && defined _ABIN32) +#if !defined _NO_LONGLONG +typedef long int64_t; +typedef unsigned long uint64_t; +#endif + /* compiler/cpu type to define int64_t */ +#endif +#endif +#endif + +#if defined _STDINT_HAVE_U_INT_TYPES +/* int8_t int16_t int32_t defined by inet code, redeclare the u_intXX types */ +typedef u_int8_t uint8_t; +typedef u_int16_t uint16_t; +typedef u_int32_t uint32_t; + +/* glibc compatibility */ +#ifndef __int8_t_defined +#define __int8_t_defined +#endif +#endif + +#ifdef _STDINT_NEED_INT_MODEL_T +/* we must guess all the basic types. Apart from byte-adressable system, */ +/* there a few 32-bit-only dsp-systems that we guard with BYTE_MODEL 8-} */ +/* (btw, those nibble-addressable systems are way off, or so we assume) */ + + +#if defined _STDINT_BYTE_MODEL +#if _STDINT_LONG_MODEL+0 == 242 +/* 2:4:2 = IP16 = a normal 16-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned long uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef long int32_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL == 444 +/* 2:4:4 = LP32 = a 32-bit system derived from a 16-bit */ +/* 4:4:4 = ILP32 = a normal 32-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 484 || _STDINT_LONG_MODEL+0 == 488 +/* 4:8:4 = IP32 = a 32-bit system prepared for 64-bit */ +/* 4:8:8 = LP64 = a normal 64-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +/* this system has a "long" of 64bit */ +#ifndef _HAVE_UINT64_T +#define _HAVE_UINT64_T +typedef unsigned long uint64_t; +typedef long int64_t; +#endif +#elif _STDINT_LONG_MODEL+0 == 448 +/* LLP64 a 64-bit system derived from a 32-bit system */ +typedef unsigned char uint8_t; +typedef unsigned short uint16_t; +typedef unsigned int uint32_t; +#ifndef __int8_t_defined +#define __int8_t_defined +typedef char int8_t; +typedef short int16_t; +typedef int int32_t; +#endif +/* assuming the system has a "long long" */ +#ifndef _HAVE_UINT64_T +#define _HAVE_UINT64_T +#define _HAVE_LONGLONG_UINT64_T +typedef unsigned long long uint64_t; +typedef long long int64_t; +#endif +#else +#define _STDINT_NO_INT32_T +#endif +#else +#define _STDINT_NO_INT8_T +#define _STDINT_NO_INT32_T +#endif +#endif + +/* + * quote from SunOS-5.8 sys/inttypes.h: + * Use at your own risk. As of February 1996, the committee is squarely + * behind the fixed sized types; the "least" and "fast" types are still being + * discussed. The probability that the "fast" types may be removed before + * the standard is finalized is high enough that they are not currently + * implemented. + */ + +#if defined _STDINT_NEED_INT_LEAST_T +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +#ifdef _HAVE_UINT64_T +typedef int64_t int_least64_t; +#endif + +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +#ifdef _HAVE_UINT64_T +typedef uint64_t uint_least64_t; +#endif + /* least types */ +#endif + +#if defined _STDINT_NEED_INT_FAST_T +typedef int8_t int_fast8_t; +typedef int int_fast16_t; +typedef int32_t int_fast32_t; +#ifdef _HAVE_UINT64_T +typedef int64_t int_fast64_t; +#endif + +typedef uint8_t uint_fast8_t; +typedef unsigned uint_fast16_t; +typedef uint32_t uint_fast32_t; +#ifdef _HAVE_UINT64_T +typedef uint64_t uint_fast64_t; +#endif + /* fast types */ +#endif + +#ifdef _STDINT_NEED_INTMAX_T +#ifdef _HAVE_UINT64_T +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; +#else +typedef long intmax_t; +typedef unsigned long uintmax_t; +#endif +#endif + +#ifdef _STDINT_NEED_INTPTR_T +#ifndef __intptr_t_defined +#define __intptr_t_defined +/* we encourage using "long" to store pointer values, never use "int" ! */ +#if _STDINT_LONG_MODEL+0 == 242 || _STDINT_LONG_MODEL+0 == 484 +typedef unsigned int uintptr_t; +typedef int intptr_t; +#elif _STDINT_LONG_MODEL+0 == 244 || _STDINT_LONG_MODEL+0 == 444 +typedef unsigned long uintptr_t; +typedef long intptr_t; +#elif _STDINT_LONG_MODEL+0 == 448 && defined _HAVE_UINT64_T +typedef uint64_t uintptr_t; +typedef int64_t intptr_t; +#else /* matches typical system types ILP32 and LP64 - but not IP16 or LLP64 */ +typedef unsigned long uintptr_t; +typedef long intptr_t; +#endif +#endif +#endif + +/* The ISO C99 standard specifies that in C++ implementations these + should only be defined if explicitly requested. */ +#if !defined __cplusplus || defined __STDC_CONSTANT_MACROS +#ifndef UINT32_C + +/* Signed. */ +# define INT8_C(c) c +# define INT16_C(c) c +# define INT32_C(c) c +# ifdef _HAVE_LONGLONG_UINT64_T +# define INT64_C(c) c ## L +# else +# define INT64_C(c) c ## LL +# endif + +/* Unsigned. */ +# define UINT8_C(c) c ## U +# define UINT16_C(c) c ## U +# define UINT32_C(c) c ## U +# ifdef _HAVE_LONGLONG_UINT64_T +# define UINT64_C(c) c ## UL +# else +# define UINT64_C(c) c ## ULL +# endif + +/* Maximal type. */ +# ifdef _HAVE_LONGLONG_UINT64_T +# define INTMAX_C(c) c ## L +# define UINTMAX_C(c) c ## UL +# else +# define INTMAX_C(c) c ## LL +# define UINTMAX_C(c) c ## ULL +# endif + + /* literalnumbers */ +#endif +#endif + +/* These limits are merily those of a two complement byte-oriented system */ + +/* Minimum of signed integral types. */ +# define INT8_MIN (-128) +# define INT16_MIN (-32767-1) +# define INT32_MIN (-2147483647-1) +# define INT64_MIN (-__INT64_C(9223372036854775807)-1) +/* Maximum of signed integral types. */ +# define INT8_MAX (127) +# define INT16_MAX (32767) +# define INT32_MAX (2147483647) +# define INT64_MAX (__INT64_C(9223372036854775807)) + +/* Maximum of unsigned integral types. */ +# define UINT8_MAX (255) +# define UINT16_MAX (65535) +# define UINT32_MAX (4294967295U) +# define UINT64_MAX (__UINT64_C(18446744073709551615)) + +/* Minimum of signed integral types having a minimum size. */ +# define INT_LEAST8_MIN INT8_MIN +# define INT_LEAST16_MIN INT16_MIN +# define INT_LEAST32_MIN INT32_MIN +# define INT_LEAST64_MIN INT64_MIN +/* Maximum of signed integral types having a minimum size. */ +# define INT_LEAST8_MAX INT8_MAX +# define INT_LEAST16_MAX INT16_MAX +# define INT_LEAST32_MAX INT32_MAX +# define INT_LEAST64_MAX INT64_MAX + +/* Maximum of unsigned integral types having a minimum size. */ +# define UINT_LEAST8_MAX UINT8_MAX +# define UINT_LEAST16_MAX UINT16_MAX +# define UINT_LEAST32_MAX UINT32_MAX +# define UINT_LEAST64_MAX UINT64_MAX + + /* shortcircuit*/ +#endif + /* once */ +#endif +#endif +STDINT_EOF +fi + if cmp -s $ac_stdint_h $ac_stdint 2>/dev/null; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_stdint_h is unchanged" >&5 +$as_echo "$as_me: $ac_stdint_h is unchanged" >&6;} + else + ac_dir=`$as_dirname -- "$ac_stdint_h" || +$as_expr X"$ac_stdint_h" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_stdint_h" : 'X\(//\)[^/]' \| \ + X"$ac_stdint_h" : 'X\(//\)$' \| \ + X"$ac_stdint_h" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_stdint_h" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + rm -f $ac_stdint_h + mv $ac_stdint $ac_stdint_h + fi + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + + + +printf "configure: *** Plug-ins without external dependencies that will be built:\n" +( for i in $GST_PLUGINS_SELECTED; do printf '\t'$i'\n'; done ) | sort +printf "\n" + +printf "configure: *** Plug-ins without external dependencies that will NOT be built:\n" +( for i in $GST_PLUGINS_ALL; do + case " $GST_PLUGINS_SELECTED " in + *\ $i\ *) + ;; + *) + printf '\t'$i'\n' + ;; + esac + done ) | sort +printf "\n" + +if test "x$BUILD_EXTERNAL" = "xno"; then + printf "configure: *** No plug-ins with external dependencies will be built\n" +else + printf "configure: *** Plug-ins with dependencies that will be built:" + printf "$GST_PLUGINS_YES\n" | sort + printf "\n" + printf "configure: *** Plug-ins with dependencies that will NOT be built:" + printf "$GST_PLUGINS_NO\n" | sort + printf "\n" +fi + + + if test "$HAVE_ORC" = yes ; then + printf "configure: *** Orc acceleration enabled.\n" + else + if test "x$enable_orc" = "xno" ; then + printf "configure: *** Orc acceleration disabled by --disable-orc. Slower code paths\n" + printf " will be used.\n" + else + printf "configure: *** Orc acceleration disabled. Requires Orc >= $ORC_REQ, which was\n" + printf " not found. Slower code paths will be used.\n" + fi + fi + printf "\n" + + diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..a72e7b0 --- /dev/null +++ b/configure.ac @@ -0,0 +1,1930 @@ +AC_PREREQ(2.60) + +dnl initialize autoconf +dnl when going to/from release please set the nano (fourth number) right ! +dnl releases only do Wall, cvs and prerelease does Werror too +AC_INIT(GStreamer Bad Plug-ins, 0.10.22, + http://bugzilla.gnome.org/enter_bug.cgi?product=GStreamer, + gst-plugins-bad) + +AG_GST_INIT + +dnl initialize automake +AM_INIT_AUTOMAKE([-Wno-portability 1.10]) + +dnl define PACKAGE_VERSION_* variables +AS_VERSION + +dnl check if this is a release version +AS_NANO(GST_GIT="no", GST_GIT="yes") + +dnl can autoconf find the source ? +AC_CONFIG_SRCDIR([docs/plugins/gst-plugins-bad-plugins-docs.sgml]) + +dnl define the output header for config +AM_CONFIG_HEADER([config.h]) + +dnl AM_MAINTAINER_MODE only provides the option to configure to enable it +AM_MAINTAINER_MODE + +dnl sets host_* variables +AC_CANONICAL_HOST + +dnl use pretty build output with automake >= 1.11 +m4_ifdef([AM_SILENT_RULES],[AM_SILENT_RULES([yes])], + [AM_DEFAULT_VERBOSITY=1 + AC_SUBST(AM_DEFAULT_VERBOSITY)]) + +dnl our libraries and install dirs use major.minor as a version +GST_MAJORMINOR=$GST_PLUGINS_BAD_VERSION_MAJOR.$GST_PLUGINS_BAD_VERSION_MINOR +dnl we override it here if we need to for the release candidate of new series +GST_MAJORMINOR=0.10 +AC_SUBST(GST_MAJORMINOR) + +AG_GST_LIBTOOL_PREPARE + +dnl FIXME: this macro doesn't actually work; +dnl the generated libtool script has no support for the listed tags. +dnl So this needs to be fixed first if we want to use this +dnl AS_LIBTOOL_TAGS([CXX]) + +AC_LIBTOOL_WIN32_DLL +AM_PROG_LIBTOOL + +dnl *** required versions of GStreamer stuff *** +GST_REQ=0.10.33 +GSTPB_REQ=0.10.33 + +dnl *** autotools stuff **** + +dnl allow for different autotools +AS_AUTOTOOLS_ALTERNATE + +dnl Add parameters for aclocal +AC_SUBST(ACLOCAL_AMFLAGS, "-I m4 -I common/m4") + +dnl set up gettext +dnl the version check needs to stay here because autopoint greps for it +AM_GNU_GETTEXT_VERSION([0.17]) +AM_GNU_GETTEXT([external]) +AG_GST_GETTEXT([gst-plugins-bad-$GST_MAJORMINOR]) + +dnl *** check for arguments to configure *** + +AG_GST_ARG_DEBUG +AG_GST_ARG_PROFILING +AG_GST_ARG_VALGRIND +AG_GST_ARG_GCOV + +AG_GST_ARG_EXAMPLES + +AG_GST_ARG_WITH_PKG_CONFIG_PATH +AG_GST_ARG_WITH_PACKAGE_NAME +AG_GST_ARG_WITH_PACKAGE_ORIGIN + +AG_GST_ARG_WITH_PLUGINS + +AG_GST_ARG_ENABLE_EXTERNAL + +AG_GST_ARG_ENABLE_EXPERIMENTAL + +dnl *** checks for platform *** +AG_GST_PLATFORM + +dnl * hardware/architecture * + +dnl common/m4/gst-arch.m4 +dnl check CPU type +AG_GST_ARCH + +dnl Determine endianness +AC_C_BIGENDIAN + +dnl *** checks for programs *** + +dnl find a compiler +AC_PROG_CC +AC_PROG_CC_STDC + +dnl determine c++ compiler +AC_PROG_CXX +dnl determine if c++ is available on this system +AC_CHECK_PROG(HAVE_CXX, $CXX, yes, no) + +AS_PROG_OBJC + +dnl check if the compiler supports '-c' and '-o' options +AM_PROG_CC_C_O + +dnl check if the compiler supports do while(0) macros +AG_GST_CHECK_DOWHILE_MACROS + +AC_PATH_PROG(VALGRIND_PATH, valgrind, no) +AM_CONDITIONAL(HAVE_VALGRIND, test ! "x$VALGRIND_PATH" = "xno") + +dnl check for documentation tools +GTK_DOC_CHECK([1.3]) +AS_PATH_PYTHON([2.1]) +AG_GST_PLUGIN_DOCS([1.3],[2.1]) + +dnl *** checks for libraries *** + +dnl check for libm, for sin() etc. +AC_CHECK_LIBM +AC_SUBST(LIBM) + +AC_FUNC_MMAP + +dnl *** checks for header files *** + +AC_CHECK_HEADERS([unistd.h], HAVE_UNISTD_H=yes) +AM_CONDITIONAL(HAVE_UNISTD_H, test "x$HAVE_UNISTD_H" = "xyes") + +if test "x$HAVE_UNISTD_H" != "xyes"; then + GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/festival//` +fi + +dnl used by camerabin +AC_CHECK_HEADERS([sys/time.h]) + +dnl used by ext/dts +AX_CREATE_STDINT_H + +AC_CHECK_HEADERS([pthread.h], HAVE_PTHREAD_H=yes) +AM_CONDITIONAL(HAVE_PTHREAD_H, test "x$HAVE_PTHREAD_H" = "xyes") + +if test "x$HAVE_PTHREAD_H" != "xyes"; then + GST_PLUGINS_SELECTED=`echo $GST_PLUGINS_SELECTED | $SED -e s/dccp//` +fi + +dnl *** checks for types/defines *** + +dnl Check for FIONREAD ioctl declaration +dnl used in gst/dccp +GST_CHECK_FIONREAD + +dnl *** checks for structures *** + +dnl *** checks for compiler characteristics *** + +dnl *** checks for library functions *** +AC_CHECK_FUNCS([gmtime_r]) + +dnl *** checks for headers *** +AC_CHECK_HEADERS([sys/utsname.h]) + +dnl *** checks for dependency libraries *** + +dnl *** checks for socket and nsl libraries *** +AC_CHECK_FUNC(socket,,[AC_CHECK_LIB(socket,socket)]) +AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) + +dnl GLib is required +AG_GST_GLIB_CHECK([2.22]) + +dnl checks for gstreamer +dnl uninstalled is selected preferentially -- see pkg-config(1) +AG_GST_CHECK_GST($GST_MAJORMINOR, [$GST_REQ], yes) +AG_GST_CHECK_GST_BASE($GST_MAJORMINOR, [$GST_REQ], yes) +AG_GST_CHECK_GST_GDP($GST_MAJORMINOR, [$GST_REQ], yes) +AG_GST_CHECK_GST_CHECK($GST_MAJORMINOR, [$GST_REQ], no) +AG_GST_CHECK_GST_CONTROLLER($GST_MAJORMINOR, [$GST_REQ], yes) +AM_CONDITIONAL(HAVE_GST_CHECK, test "x$HAVE_GST_CHECK" = "xyes") + +AG_GST_CHECK_GST_PLUGINS_BASE($GST_MAJORMINOR, [$GSTPB_REQ], yes) + +dnl check for uninstalled plugin directories for unit tests +AG_GST_CHECK_GST_PLUGINS_GOOD($GST_MAJORMINOR, [0.10.25]) +AG_GST_CHECK_GST_PLUGINS_UGLY($GST_MAJORMINOR, [0.10.16]) +AG_GST_CHECK_GST_PLUGINS_FFMPEG($GST_MAJORMINOR, [0.10.11]) + +dnl Check for documentation xrefs +GLIB_PREFIX="`$PKG_CONFIG --variable=prefix glib-2.0`" +GST_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-$GST_MAJORMINOR`" +GSTPB_PREFIX="`$PKG_CONFIG --variable=prefix gstreamer-plugins-base-$GST_MAJORMINOR`" +AC_SUBST(GLIB_PREFIX) +AC_SUBST(GST_PREFIX) +AC_SUBST(GSTPB_PREFIX) + +dnl GTK is optional and used in examples +HAVE_GTK=NO +GTK2_REQ=2.14.0 +GTK3_REQ=2.91.3 +if test "x$BUILD_EXAMPLES" = "xyes"; then + AC_MSG_CHECKING([which gtk+ version to compile examples against (optional)]) + AC_ARG_WITH([gtk], + AC_HELP_STRING([--with-gtk=3.0|2.0], + [which gtk+ version to compile against (default: 2.0)]), + [case "$with_gtk" in + 2.0) GTK_REQ=$GTK2_REQ ;; + 3.0) GTK_REQ=$GTK3_REQ ;; + *) AC_MSG_ERROR([invalid gtk+ version specified]);; + esac], + [with_gtk=2.0 + GTK_REQ=$GTK2_REQ]) + AC_MSG_RESULT([$with_gtk (>= $GTK_REQ)]) + PKG_CHECK_MODULES(GTK, gtk+-x11-$with_gtk >= $GTK_REQ, HAVE_GTK=yes, HAVE_GTK=no) + AC_SUBST(GTK_LIBS) + AC_SUBST(GTK_CFLAGS) +fi +AM_CONDITIONAL(HAVE_GTK, test "x$HAVE_GTK" = "xyes") + +dnl Needed for GtkBuilder to autoconnect signals +PKG_CHECK_MODULES(GMODULE_EXPORT, gmodule-export-2.0, HAVE_GMODULE_EXPORT=yes, HAVE_GMODULE_EXPORT=no) + +dnl x11 is optional for librfb +HAVE_X11=NO +PKG_CHECK_MODULES(X11, x11, HAVE_X11=yes, HAVE_X11=no) +AC_SUBST(X11_LIBS) +AC_SUBST(X11_CFLAGS) +AC_SUBST(HAVE_X11) +AM_CONDITIONAL(HAVE_X11, test "x$HAVE_X11" = "xyes") +if test "x$HAVE_X11" = "xyes"; then + AC_DEFINE(HAVE_X11, 1, [Define if you have X11 library]) +fi + +dnl exif (used on jifmux tests) **** +PKG_CHECK_MODULES(EXIF, libexif >= 0.6.16, HAVE_EXIF="yes", HAVE_EXIF="no") +AC_SUBST(EXIF_LIBS) +AC_SUBST(EXIF_CFLAGS) +AM_CONDITIONAL(USE_EXIF, test "x$HAVE_EXIF" = "xyes") + +dnl Orc +ORC_CHECK([0.4.11]) + +dnl set license and copyright notice +GST_LICENSE="LGPL" +AC_DEFINE_UNQUOTED(GST_LICENSE, "$GST_LICENSE", [GStreamer license]) +AC_SUBST(GST_LICENSE) + +dnl define LIBDIR so we can inform people where we live +AS_AC_EXPAND(LIBDIR, $libdir) +AC_DEFINE_UNQUOTED(LIBDIR, "$LIBDIR", [library dir]) + +dnl set location of plugin directory +AG_GST_SET_PLUGINDIR + +dnl set release date/time +AG_GST_SET_PACKAGE_RELEASE_DATETIME_WITH_NANO([$PACKAGE_VERSION_NANO], + ["${srcdir}/gst-plugins-bad.doap"], + [$PACKAGE_VERSION_MAJOR.$PACKAGE_VERSION_MINOR.$PACKAGE_VERSION_MICRO]) + +dnl define an ERROR_CFLAGS Makefile variable +dnl -Waggregate-return - libexif returns aggregates +dnl -Wundef - Windows headers check _MSC_VER unconditionally +AG_GST_SET_ERROR_CFLAGS($GST_GIT, [ + -Wmissing-declarations -Wmissing-prototypes -Wredundant-decls + -Wwrite-strings -Wformat-security -Wold-style-definition + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar + -Wnested-externs]) + +dnl define an ERROR_CXXFLAGS Makefile variable +AG_GST_SET_ERROR_CXXFLAGS($GST_GIT, [ + -Wmissing-declarations -Wredundant-decls + -Wwrite-strings -Wformat-nonliteral -Wformat-security + -Winit-self -Wmissing-include-dirs -Waddress -Wno-multichar ]) + +dnl define correct level for debugging messages +AG_GST_SET_LEVEL_DEFAULT($GST_GIT) + +dnl used in examples +AG_GST_DEFAULT_ELEMENTS + +dnl *** plug-ins to include *** + +dnl these are all the gst plug-ins, compilable without additional libs +AG_GST_CHECK_PLUGIN(adpcmdec) +AG_GST_CHECK_PLUGIN(adpcmenc) +AG_GST_CHECK_PLUGIN(aiff) +AG_GST_CHECK_PLUGIN(asfmux) +AG_GST_CHECK_PLUGIN(autoconvert) +AG_GST_CHECK_PLUGIN(bayer) +AG_GST_CHECK_PLUGIN(camerabin) +AG_GST_CHECK_PLUGIN(camerabin2) +AG_GST_CHECK_PLUGIN(cdxaparse) +AG_GST_CHECK_PLUGIN(coloreffects) +AG_GST_CHECK_PLUGIN(colorspace) +AG_GST_CHECK_PLUGIN(dataurisrc) +AG_GST_CHECK_PLUGIN(dccp) +AG_GST_CHECK_PLUGIN(debugutils) +AG_GST_CHECK_PLUGIN(dtmf) +AG_GST_CHECK_PLUGIN(dvbsuboverlay) +AG_GST_CHECK_PLUGIN(dvdspu) +AG_GST_CHECK_PLUGIN(festival) +AG_GST_CHECK_PLUGIN(fieldanalysis) +AG_GST_CHECK_PLUGIN(freeze) +AG_GST_CHECK_PLUGIN(frei0r) +AG_GST_CHECK_PLUGIN(gaudieffects) +AG_GST_CHECK_PLUGIN(geometrictransform) +AG_GST_CHECK_PLUGIN(h264parse) +AG_GST_CHECK_PLUGIN(hdvparse) +AG_GST_CHECK_PLUGIN(hls) +AG_GST_CHECK_PLUGIN(id3tag) +AG_GST_CHECK_PLUGIN(interlace) +AG_GST_CHECK_PLUGIN(invtelecine) +AG_GST_CHECK_PLUGIN(ivfparse) +AG_GST_CHECK_PLUGIN(jp2kdecimator) +AG_GST_CHECK_PLUGIN(jpegformat) +AG_GST_CHECK_PLUGIN(legacyresample) +AG_GST_CHECK_PLUGIN(librfb) +AG_GST_CHECK_PLUGIN(liveadder) +AG_GST_CHECK_PLUGIN(mpegdemux) +AG_GST_CHECK_PLUGIN(mpegtsdemux) +AG_GST_CHECK_PLUGIN(mpegtsmux) +AG_GST_CHECK_PLUGIN(mpegpsmux) +AG_GST_CHECK_PLUGIN(mpeg4videoparse) +AG_GST_CHECK_PLUGIN(mpegvideoparse) +AG_GST_CHECK_PLUGIN(mve) +AG_GST_CHECK_PLUGIN(mxf) +AG_GST_CHECK_PLUGIN(nsf) +AG_GST_CHECK_PLUGIN(nuvdemux) +AG_GST_CHECK_PLUGIN(patchdetect) +AG_GST_CHECK_PLUGIN(pcapparse) +AG_GST_CHECK_PLUGIN(pnm) +AG_GST_CHECK_PLUGIN(rawparse) +AG_GST_CHECK_PLUGIN(real) +AG_GST_CHECK_PLUGIN(rtpmux) +AG_GST_CHECK_PLUGIN(rtpvp8) +AG_GST_CHECK_PLUGIN(scaletempo) +AG_GST_CHECK_PLUGIN(sdi) +AG_GST_CHECK_PLUGIN(sdp) +AG_GST_CHECK_PLUGIN(segmentclip) +AG_GST_CHECK_PLUGIN(siren) +AG_GST_CHECK_PLUGIN(speed) +AG_GST_CHECK_PLUGIN(subenc) +AG_GST_CHECK_PLUGIN(stereo) +AG_GST_CHECK_PLUGIN(tta) +AG_GST_CHECK_PLUGIN(videofilters) +AG_GST_CHECK_PLUGIN(videomaxrate) +AG_GST_CHECK_PLUGIN(videomeasure) +AG_GST_CHECK_PLUGIN(videoparsers) +AG_GST_CHECK_PLUGIN(videosignal) +AG_GST_CHECK_PLUGIN(vmnc) +AG_GST_CHECK_PLUGIN(y4m) + +dnl *** plug-ins to exclude *** + +dnl real plugin only works on i386 and x86_64 for the time being. +if test "x$HAVE_CPU_I386" != "xyes" && test "x$HAVE_CPU_X86_64" != "xyes"; then + AC_MSG_WARN([Not building real plugin, only works on 32bit and 64bit x86 platforms]) + AG_GST_DISABLE_PLUGIN(real) +fi + +dnl disable experimental plug-ins +if test "x$BUILD_EXPERIMENTAL" != "xyes"; then + AG_GST_DISABLE_PLUGIN(camerabin2) +fi + +# This will always succeed because we depend on GLib >= 2.16 +PKG_CHECK_MODULES(GIO, gio-2.0 >= 2.16, HAVE_GIO=yes, HAVE_GIO=no) +AC_SUBST(GIO_CFLAGS) +AC_SUBST(GIO_LIBS) + +dnl disable gst plugins we might not be able to build on this +dnl platform: librfb (ugly but minimally invasive) +dnl FIXME: maybe move to sys, or make work with winsock2 +AC_CHECK_HEADERS([sys/socket.h], HAVE_SYS_SOCKET_H=yes) +AC_CHECK_HEADERS([winsock2.h], HAVE_WINSOCK2_H=yes) + +if test "x$HAVE_WINSOCK2_H" = "xyes"; then + WIN32_LIBS="-lws2_32" + AC_SUBST(WIN32_LIBS) +fi + +dnl needed for festival +AM_CONDITIONAL(HAVE_WINSOCK2_H, test "x$HAVE_WINSOCK2_H" = "xyes") + +if test "x$HAVE_WINSOCK2_H" = "xyes"; then + DCCP_LIBS="$DCCP_LIBS -lws2_32" + XDG_LIBS="$XDG_LIBS -lws2_32" + AC_SUBST(DCCP_LIBS) + AC_SUBST(XDG_LIBS) +fi + +if test "x$HAVE_PTHREAD_H" = "xyes"; then + DCCP_LIBS="$DCCP_LIBS -lpthread" + AC_SUBST(DCCP_LIBS) +fi + +if test "x$HAVE_PTHREAD_H" != "xyes"; then + AG_GST_DISABLE_PLUGIN(dccp) +fi + +dnl *** sys plug-ins *** + +dnl DirectSound +translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTSOUND, true) +AG_GST_CHECK_FEATURE(DIRECTSOUND, [DirectSound], directsoundsrc, [ + HAVE_DIRECTSOUND="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -ldsound -ldxerr9 -luser32" + AC_MSG_CHECKING(for DirectSound LDFLAGS) + AC_LINK_IFELSE([ +#include +#include +#include + +int main () +{ + DXGetErrorString9 (0); + DirectSoundCreate(NULL, NULL, NULL); + + return 0; +} +], + [HAVE_DIRECTSOUND="yes"], + [HAVE_DIRECTSOUND="no"]) + AC_MSG_RESULT($HAVE_DIRECTSOUND) + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECTSOUND" = "xyes"; then + dnl this is much more than we want + DIRECTSOUND_LIBS="-ldsound -ldxerr9 -luser32" + AC_SUBST(DIRECTX_CFLAGS) + AC_SUBST(DIRECTX_LDFLAGS) + AC_SUBST(DIRECTSOUND_LIBS) + fi + AC_SUBST(HAVE_DIRECTSOUND) +]) + +dnl DirectDraw +translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTDRAW, true) +AG_GST_CHECK_FEATURE(DIRECTDRAW, [DirectDraw plug-in], directdrawsink, [ + HAVE_DIRECTDRAW="no" + save_CFLAGS="$CFLAGS" + save_LDFLAGS="$LDFLAGS" + save_LIBS="$LIBS" + CFLAGS="$CFLAGS $DIRECTX_CFLAGS" + LDFLAGS="$LDFLAGS $DIRECTX_LDFLAGS" + LIBS="$LIBS -lddraw -lgdi32" + AC_MSG_CHECKING(for DirectDraw LDFLAGS) + AC_LINK_IFELSE([ +#include +#include + +int main () +{ + GetStockObject(0); + DirectDrawCreate(NULL, NULL, NULL); + + return 0; +} +], + [HAVE_DIRECTDRAW="yes"], + [HAVE_DIRECTDRAW="no"]) + AC_MSG_RESULT($HAVE_DIRECTDRAW) + CFLAGS=$save_CFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + + if test "x$HAVE_DIRECTDRAW" = "xyes"; then + dnl this is much more than we want + DIRECTDRAW_LIBS="-lddraw -ldxguid -lgdi32" + AC_SUBST(DIRECTX_CFLAGS) + AC_SUBST(DIRECTX_LDFLAGS) + AC_SUBST(DIRECTDRAW_LIBS) + fi + AC_SUBST(HAVE_DIRECTDRAW) +]) + +dnl *** AppleMedia (OS X and iOS) *** +translit(dnm, m, l) AM_CONDITIONAL(USE_APPLE_MEDIA, true) +HAVE_APPLE_MEDIA="no" +dnl SystemConfiguration.h is common to OS X and iOS, so we check for that +AG_GST_CHECK_FEATURE(APPLE_MEDIA, [Apple video], applemedia, [ + AC_CHECK_HEADER(SystemConfiguration/SystemConfiguration.h, HAVE_APPLE_MEDIA="yes", HAVE_APPLE_MEDIA="no") +]) +dnl in case header SystemConfiguration/SystemConfiguration.h is found on other platforms +case "$host" in + *-*darwin*) + ;; + *) + HAVE_APPLE_MEDIA="no" + ;; +esac +HAVE_IOS="no" +if test "x$HAVE_APPLE_MEDIA" = "xyes"; then + AC_CHECK_HEADER(MobileCoreServices/MobileCoreServices.h, HAVE_IOS="yes", HAVE_IOS="no", [-]) +fi + +AM_CONDITIONAL(HAVE_IOS, test "x$HAVE_IOS" = "xyes") +if test "x$HAVE_IOS" = "xyes"; then + AC_DEFINE(HAVE_IOS, 1, [Define if building for Apple iOS]) +fi + +dnl *** OS X videosrc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OSX_VIDEO, true) +HAVE_OSX_VIDEO="no" +AG_GST_CHECK_FEATURE(OSX_VIDEO, [OSX video], osxvideosrc, [ + AC_CHECK_TYPE([SeqGrabComponent], HAVE_OSX_VIDEO="yes", HAVE_OSX_VIDEO="no", + [#include ]) +]) +dnl in case header Quicktime/Quicktime.h is found on other platforms +case "$host" in + *-*darwin*) + ;; + *) + HAVE_OSX_VIDEO="no" + ;; +esac + +dnl check for QuickTime +translit(dnm, m, l) AM_CONDITIONAL(USE_QUICKTIME, true) +AG_GST_CHECK_FEATURE(QUICKTIME, [QuickTime wrapper], qtwrapper, [ + AC_CHECK_TYPE([SampleReferenceRecord], HAVE_QUICKTIME="yes", HAVE_QUICKTIME="no", + [#include ]) +]) + +dnl check for shm_open (for shm plugin) +translit(dnm, m, l) AM_CONDITIONAL(USE_SHM, true) +AG_GST_CHECK_FEATURE(SHM, [POSIX shared memory source and sink], shm, [ + if test "x$HAVE_SYS_SOCKET_H" = "xyes"; then + AC_CHECK_LIB([rt], [shm_open], + AC_CHECK_DECL([MSG_NOSIGNAL], HAVE_SHM=yes, HAVE_SHM=no, [ +#include + ]), + HAVE_SHM=no) + else + HAVE_SHM=no + fi +]) + +dnl check for Video CD +translit(dnm, m, l) AM_CONDITIONAL(USE_VCD, true) +AG_GST_CHECK_FEATURE(VCD, [Video CD], vcdsrc, [ + AC_CHECK_HEADER(linux/cdrom.h, HAVE_VCD="yes", HAVE_VCD="no") +]) + +dnl *** ext plug-ins *** +dnl keep this list sorted alphabetically ! + +if test "x$BUILD_EXTERNAL" = "xyes"; then + +dnl *** assrender *** +translit(dnm, m, l) AM_CONDITIONAL(USE_ASSRENDER, true) +AG_GST_CHECK_FEATURE(ASSRENDER, [ASS/SSA renderer], assrender, [ + PKG_CHECK_MODULES(ASSRENDER, libass >= 0.9.4, [ + HAVE_ASSRENDER="yes" ], [ + HAVE_ASSRENDER="no" + ]) +]) +AC_SUBST(ASSRENDER_CFLAGS) +AC_SUBST(ASSRENDER_LIBS) + +dnl *** amrwb *** +translit(dnm, m, l) AM_CONDITIONAL(USE_AMRWB, true) +AG_GST_CHECK_FEATURE(AMRWB, [amrwb library], amrwbenc, [ + AG_GST_CHECK_LIBHEADER(AMRWB, amrwb, + GP3E_IF_encode, , + amrwb/enc.h, + AMRWB_LIBS="-lamrwb" + AC_SUBST(AMRWB_LIBS)) +]) + +dnl *** apexsink *** +translit(dnm, m, l) AM_CONDITIONAL(USE_APEXSINK, true) +AG_GST_CHECK_FEATURE(APEXSINK, [AirPort Express Wireless sink], apexsink, [ + PKG_CHECK_MODULES(APEXSINK, [ openssl >= 0.9.5 libcrypto ], [ + HAVE_APEXSINK="yes" + saved_LIBS="$LIBS" + LIBS="" + AC_SEARCH_LIBS(socket, [socket], [ ], [ APEXSINK="no" ]) + AC_SEARCH_LIBS(gethostbyname, [nsl], [ ], [ APEXSINK="no" ]) + APEXSINK_LIBS="$APEXSINK_LIBS $LIBS" + LIBS="$saved_LIBS" + AC_SUBST(APEXSINK_CFLAGS) + AC_SUBST(APEXSINK_LIBS) + ], [ + APEXSINK="no" + ]) +]) + +dnl *** BZ2 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_BZ2, true) +AG_GST_CHECK_FEATURE(BZ2, [bz2 library], bz2, [ + AG_GST_CHECK_LIBHEADER(BZ2, bz2, BZ2_bzCompress, ,bzlib.h, BZ2_LIBS="-lbz2") + AC_SUBST(BZ2_LIBS) +]) + +#dnl *** cairo *** +#translit(dnm, m, l) AM_CONDITIONAL(USE_CAIRO, true) +#AG_GST_CHECK_FEATURE(CAIRO, [cairo plug-in], cairo, [ +# PKG_CHECK_MODULES(CAIRO, cairo >= 1.0 glitz-glx, HAVE_CAIRO=yes, [ +# HAVE_CAIRO=no +# ]) +# AC_SUBST(CAIRO_CFLAGS) +# AC_SUBST(CAIRO_LIBS) +#]) + +dnl *** cdaudio *** +translit(dnm, m, l) AM_CONDITIONAL(USE_CDAUDIO, true) +AG_GST_CHECK_FEATURE(CDAUDIO, [cdaudio], cdaudio, [ + AG_GST_CHECK_CONFIGPROG(CDAUDIO, libcdaudio-config) + AC_SUBST(CDAUDIO_CFLAGS) + AC_SUBST(CDAUDIO_LIBS) +]) + +dnl *** celt *** +translit(dnm, m, l) AM_CONDITIONAL(USE_CELT, true) +AG_GST_CHECK_FEATURE(CELT, [celt], celt, [ + PKG_CHECK_MODULES(CELT, celt >= 0.5.0, [ + AC_DEFINE([HAVE_CELT], 1, [Define if libcelt 0.5 is installed]) + HAVE_CELT="yes" + ], [ + HAVE_CELT="no" + ]) + + PKG_CHECK_MODULES(CELT_0_7, celt >= 0.7.0, [ + AC_DEFINE([HAVE_CELT_0_7], 1, [Define if libcelt 0.7 is installed]) + ], [ + dnl to prevent an error + true + ]) + + PKG_CHECK_MODULES(CELT_0_8, celt >= 0.8.0, [ + AC_DEFINE([HAVE_CELT_0_8], 1, [Define if libcelt 0.8 is installed]) + ], [ + dnl to prevent an error + true + ]) + + PKG_CHECK_MODULES(CELT_0_11, celt >= 0.11.0, [ + AC_DEFINE([HAVE_CELT_0_11], 1, [Define if libcelt 0.11 is installed]) + ], [ + dnl to prevent an error + true + ]) + AC_SUBST(CELT_CFLAGS) + AC_SUBST(CELT_LIBS) +]) + +dnl *** Cog *** +translit(dnm, m, l) AM_CONDITIONAL(USE_COG, true) +AG_GST_CHECK_FEATURE(COG, [Cog plugin], cog, [ + PKG_CHECK_MODULES(COG, libpng >= 1.2, HAVE_COG="yes", [ + HAVE_COG="no" + ]) + AC_SUBST(COG_CFLAGS) + AC_SUBST(COG_LIBS) +]) + +dnl *** Curl *** +translit(dnm, m, l) AM_CONDITIONAL(USE_CURL, true) +AG_GST_CHECK_FEATURE(CURL, [Curl plugin], curl, [ + PKG_CHECK_MODULES(CURL, libcurl >= 7.21.0, [ + HAVE_CURL="yes" + AC_CHECK_HEADERS([unistd.h sys/socket.h sys/types.h netinet/in.h netinet/ip.h netinet/tcp.h fcntl.h], + [ ], [HAVE_CURL="no"]) + AC_MSG_CHECKING([for socket support needed by curlsink]) + AC_MSG_RESULT($HAVE_CURL) + ], [ + HAVE_CURL="no" + ]) + AC_SUBST(CURL_CFLAGS) + AC_SUBST(CURL_LIBS) +]) + +dnl *** dc1394 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DC1394, true) +AG_GST_CHECK_FEATURE(DC1394, [libdc1394], dc1394, [ + PKG_CHECK_MODULES(LIBDC1394, libdc1394-2 >= 2.0.0, [ + if test -z "`$PKG_CONFIG --modversion libdc1394-2 | grep 2.0.0-rc`"; then + HAVE_DC1394="yes" + else + HAVE_DC1394="no" + fi + ], [ + HAVE_DC1394="no" + AC_MSG_RESULT(no) + ]) + AC_SUBST(LIBDC1394_CFLAGS) + AC_SUBST(LIBDC1394_LIBS) +]) + +dnl *** decklink *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DECKLINK, true) +AG_GST_CHECK_FEATURE(DECKLINK, [decklink], decklink, [ + HAVE_DECKLINK=no + case "$host" in + *-*linux*) + if test "x$HAVE_PTHREAD_H" = "xyes"; then + AC_CHECK_LIB(dl, dlopen, + [ + HAVE_DECKLINK=yes + DECKLINK_CXXFLAGS= + DECKLINK_LIBS="-lpthread -ldl" + ]) + fi + ;; + *) + HAVE_DECKLINK=no + ;; + esac + + AC_SUBST(DECKLINK_CXXFLAGS) + AC_SUBST(DECKLINK_LIBS) +]) + +dnl **** DirectFB **** +translit(dnm, m, l) AM_CONDITIONAL(USE_DIRECTFB, true) +AG_GST_CHECK_FEATURE(DIRECTFB, [directfb], dfbvideosink , [ + PKG_CHECK_MODULES(DIRECTFB, directfb >= 0.9.24, HAVE_DIRECTFB="yes", [ + HAVE_DIRECTFB="no" + ]) +]) + +dnl **** Dirac **** +translit(dnm, m, l) AM_CONDITIONAL(USE_DIRAC, true) +AG_GST_CHECK_FEATURE(DIRAC, [dirac], dirac, [ + PKG_CHECK_MODULES(DIRAC, dirac >= 0.10, HAVE_DIRAC="yes", [ + HAVE_DIRAC="no" + ]) +]) + +dnl *** DTS *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DTS, true) +AG_GST_CHECK_FEATURE(DTS, [dts library], dtsdec, [ + HAVE_DTS="yes" + AG_GST_CHECK_LIBHEADER(DTS, dca, dca_init, $LIBM, dca.h, + DTS_LIBS="-ldca $LIBM", HAVE_DTS="no") + if test $HAVE_DTS = "no"; then + AG_GST_CHECK_LIBHEADER(DTS, dts_pic, dts_init, $LIBM, dts.h, + [ DTS_LIBS="-ldts_pic $LIBM" + AC_DEFINE(DTS_OLD, 1, [Define if an old libdts is used]) + ]) + fi + AC_SUBST(DTS_LIBS) +]) + +dnl *** DIVX *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DIVX, true) +AG_GST_CHECK_FEATURE(DIVX, [divx plugins], divx, [ + HAVE_DIVX=yes + AC_CHECK_HEADER(encore2.h, , [ + AC_MSG_WARN([Divx4linux encore headers not found]) + HAVE_DIVX=no + ]) + if [ test x$HAVE_DIVX = xyes ]; then + AC_MSG_CHECKING([Checking for valid divx4linux encore version]) + AC_TRY_COMPILE([ +#include +#if ENCORE_VERSION != 20021024 +#error Wrong version of divx encore libraries +#endif + ], [ +return 0; + ], [ + HAVE_DIVX=yes + ], [ + HAVE_DIVX=no + AC_MSG_WARN([Wrong version of divx4linux installed]) + ]) + fi + if [ test x$HAVE_DIVX = xyes ]; then + AC_CHECK_HEADER(decore.h, , [ + AC_MSG_WARN([Divx4linux decoder headers not found]) + HAVE_DIVX=no + ]) + fi + if [ test x$HAVE_DIVX = xyes ]; then + AC_MSG_CHECKING([Checking for valid divx4linux decore version]) + AC_TRY_COMPILE([ +#include +#if DECORE_VERSION != 20021112 +#error Wrong version of divx decore libraries +#endif + ], [ +return 0; + ], [ + HAVE_DIVX=yes + ], [ + HAVE_DIVX=no + AC_MSG_WARN([Wrong version of divx4linux installed]) + ]) + fi + LIBS="$LIBM" + if test x$HAVE_DIVX = xyes; then + AC_CHECK_LIB(divxencore, encore, , [ + AC_MSG_WARN([Divx4linux encore libs not found]) + HAVE_DIVX=no + ]) + fi + if test x$HAVE_DIVX = xyes; then + AC_CHECK_LIB(divxdecore, decore, , [ + AC_MSG_WARN([Divx4linux decore libs not found]) + HAVE_DIVX=no + ]) + fi + if test x$HAVE_DIVX = xyes; then + DIVXENC_LIBS="-ldivxencore $LIBM" + DIVXDEC_LIBS="-ldivxdecore $LIBM" + AC_SUBST(DIVXENC_LIBS) + AC_SUBST(DIVXDEC_LIBS) + fi +]) + +dnl *** resindvd *** +translit(dnm, m, l) AM_CONDITIONAL(USE_RESINDVD, true) +AG_GST_CHECK_FEATURE(RESINDVD, [resindvd plugin], resindvd, [ + PKG_CHECK_MODULES(DVDNAV, dvdnav >= 4.1.2 dvdread >= 4.1.2, HAVE_RESINDVD="yes", [ + HAVE_RESINDVD="no" + ]) +]) + +dnl **** Free AAC Encoder (FAAC) **** +translit(dnm, m, l) AM_CONDITIONAL(USE_FAAC, true) +AG_GST_CHECK_FEATURE(FAAC, [AAC encoder plug-in], faac, [ + AG_GST_CHECK_LIBHEADER(FAAC, faac, faacEncOpen, $LIBM, faac.h, + FAAC_LIBS="-lfaac $LIBM") + AS_SCRUB_INCLUDE(FAAC_CFLAGS) + AC_SUBST(FAAC_LIBS) +]) + +dnl **** Free AAC Decoder (FAAD) **** +translit(dnm, m, l) AM_CONDITIONAL(USE_FAAD, true) +AG_GST_CHECK_FEATURE(FAAD, [AAC decoder plug-in], faad, [ + HAVE_FAAD="yes" + faad_hdr="" + AG_GST_CHECK_LIBHEADER(FAAD, faad, faacDecOpen, $LIBM, faad.h, + FAAD_LIBS="-lfaad $LIBM", HAVE_FAAD="no") + if test $HAVE_FAAD = "no"; then + AG_GST_CHECK_LIBHEADER(FAAD, faad, NeAACDecOpen, $LIBM, neaacdec.h, + [ FAAD_LIBS="-lfaad $LIBM" + AC_DEFINE(FAAD_IS_NEAAC, 1, [Define if AAC is using new api prefix]) + faad_hdr="neaacdec.h" + ], [ + HAVE_FAAD="no" + ],) + else + faad_hdr="faad.h" + fi + if test $HAVE_FAAD = "yes"; then + AC_MSG_CHECKING([Checking for FAAD >= 2.0]) + AC_TRY_COMPILE([#include ], [ + #if !defined(FAAD2_VERSION) || !defined(FAAD_FMT_DOUBLE) + #error Not faad2 + #else + /* Release candidate of 2.0 is not good enough for us. This field + * was added only in 2.0 final and does not exist in 2.0-RC3 */ + faacDecConfiguration conf; conf.dontUpSampleImplicitSBR = 1; + #endif + ], [ + HAVE_FAAD="yes" + + AC_MSG_CHECKING([Checking FAAD2 version in $faad_hdr]) + for minor in 10 9 8 7 6 5 0; do + if test x$faad2_minor_version = "x"; then + AC_EGREP_CPP([GST_CHECK_FAAD_VERSION \"2\.$minor\"], [ + #include <$faad_hdr> + GST_CHECK_FAAD_VERSION FAAD2_VERSION + ], [ + faad2_minor_version=$minor + ]) + fi + done + if test x$faad2_minor_version = "x"; then + AC_MSG_RESULT([no idea]) + else + AC_MSG_RESULT([2.$faad2_minor_version]) + AC_DEFINE_UNQUOTED([FAAD2_MINOR_VERSION], [$faad2_minor_version], [The x in 2.x]) + fi + ], [ + HAVE_FAAD="no" + ]) + fi + AS_SCRUB_INCLUDE(FAAD_CFLAGS) + AC_SUBST(FAAD_LIBS) + AC_SUBST(FAAD_IS_NEAAC) +]) + +dnl *** fbdev *** +translit(dnm, m, l) AM_CONDITIONAL(USE_FBDEV, true) +AG_GST_CHECK_FEATURE(FBDEV, [linux framebuffer], fbdevsink, [ + if test "x$HAVE_FBDEV" != "xyes"; then + AC_CHECK_HEADER([linux/fb.h], HAVE_FBDEV=yes, HAVE_FBDEV=no) + fi +]) + +dnl *** flite *** +translit(dnm, m, l) AM_CONDITIONAL(USE_FLITE, true) +AG_GST_CHECK_FEATURE(FLITE, [Flite plugin], flite, [ + AG_GST_CHECK_LIBHEADER(FLITE, flite, flite_init, $LIBM, flite/flite.h, + FLITE_LIBS="-lflite -lflite_cmu_us_kal -lflite_usenglish -lflite_cmulex $LIBM") + + AC_SUBST(FLITE_CFLAGS) + AC_SUBST(FLITE_LIBS) +]) + +dnl *** gsm *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GSM, true) +AG_GST_CHECK_FEATURE(GSM, [GSM library], gsmenc gsmdec, [ + AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm.h, GSM_LIBS="-lgsm") + if test $HAVE_GSM != "yes"; then + AG_GST_CHECK_LIBHEADER(GSM, gsm, gsm_create, , gsm/gsm.h, GSM_LIBS="-lgsm") + if test $HAVE_GSM = "yes"; then + AC_DEFINE(GSM_HEADER_IN_SUBDIR, 1, [Define if GSM header in gsm/ subdir]) + fi + fi + AC_SUBST(GSM_LIBS) +]) + +dnl *** jp2k *** +translit(dnm, m, l) AM_CONDITIONAL(USE_JP2K, true) +AG_GST_CHECK_FEATURE(JP2K, [jp2k], jp2kdec jp2kenc, [ + AG_GST_CHECK_LIBHEADER(JP2K, jasper, jas_stream_fopen, , jasper/jasper.h, + JP2K_LIBS="-ljasper") + AC_SUBST(JP2K_LIBS) +]) + +dnl *** kate *** +translit(dnm, m, l) AM_CONDITIONAL(USE_KATE, true) +AG_GST_CHECK_FEATURE(KATE, [Kate], kate, [ + PKG_CHECK_MODULES(KATE, kate >= 0.1.7, HAVE_KATE="yes", [ + HAVE_KATE="no" + ]) + AC_SUBST(KATE_CFLAGS) + AC_SUBST(KATE_LIBS) + PKG_CHECK_MODULES(TIGER, tiger >= 0.3.2, + [ + HAVE_TIGER="yes" + AC_DEFINE(HAVE_TIGER, 1, [Define if libtiger is available]) + ], + [ + HAVE_TIGER="no" + ] + ) + AM_CONDITIONAL(USE_TIGER, test "x$HAVE_TIGER" = "xyes") + AC_SUBST(TIGER_CFLAGS) + AC_SUBST(TIGER_LIBS) +],,,[AM_CONDITIONAL(USE_TIGER, false)]) + +dnl *** ladspa *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LADSPA, true) +AG_GST_CHECK_FEATURE(LADSPA, [ladspa], ladspa, [ + AC_CHECK_HEADER(ladspa.h, HAVE_LADSPA="yes", HAVE_LADSPA="no") + + PKG_CHECK_MODULES(LRDF, lrdf, HAVE_LRDF=yes, HAVE_LRDF=no) + if test $HAVE_LRDF = "yes"; then + AC_DEFINE(HAVE_LRDF, 1, [Define if we have liblrdf]) + fi + AC_SUBST(LRDF_LIBS) + AC_SUBST(LRDF_CFLAGS) +]) + +dnl *** LV2 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LV2, true) +AG_GST_CHECK_FEATURE(LV2, [lv2], lv2, [ + PKG_CHECK_MODULES(SLV2, slv2 >= 0.6.6, HAVE_LV2="yes", HAVE_LV2="no") + AC_SUBST(SLV2_CFLAGS) + AC_SUBST(SLV2_LIBS) +]) + +dnl *** libmms *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LIBMMS, true) +AG_GST_CHECK_FEATURE(LIBMMS, [mms protocol library], libmms, [ + dnl check with pkg-config first + PKG_CHECK_MODULES(LIBMMS, libmms >= 0.4, HAVE_LIBMMS="yes", [ + HAVE_LIBMMS="no" + ]) +]) +AC_SUBST(LIBMMS_LIBS) + +dnl *** linsys *** +translit(dnm, m, l) AM_CONDITIONAL(USE_LINSYS, true) +AG_GST_CHECK_FEATURE(LINSYS, [Linear Systems SDI plugin], linsys, [ + case "$host" in + *-*linux*) + HAVE_LINSYS=yes + ;; + *) + HAVE_LINSYS=no + ;; + esac +]) + +dnl *** modplug *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MODPLUG, true) +AG_GST_CHECK_FEATURE(MODPLUG, modplug, modplug, [ + if test "x$HAVE_CXX" != "xyes"; then + AC_MSG_WARN([Not compiling modplug plugin as it requires a C++ compiler]) + HAVE_MODPLUG="no" + else + PKG_CHECK_MODULES(MODPLUG, libmodplug, HAVE_MODPLUG="yes", HAVE_MODPLUG="no") + fi + AC_SUBST(MODPLUG_CFLAGS) + AC_SUBST(MODPLUG_LIBS) +]) + +dnl *** mimic *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MIMIC, true) +AG_GST_CHECK_FEATURE(MIMIC, [libmimic library], mimic, [ + MIMDEC_REQUIRED=1.0 + PKG_CHECK_MODULES(MIMIC, libmimic >= $MIMDEC_REQUIRED, + HAVE_MIMIC=yes, HAVE_MIMIC=no) + AC_SUBST(MIMIC_CFLAGS) + AC_SUBST(MIMIC_LIBS) +]) + +dnl *** mjpegtools version info *** +dnl some may prefer older version (given quirks above) +dnl hm, no version info seems available within mjpegtools headers +dnl and API really moves along +echo +PKG_CHECK_EXISTS(mjpegtools >= 1.6.1.93 mjpegtools < 1.8.0, [ + mjpegtools_api=10601 +], [ + PKG_CHECK_EXISTS(mjpegtools >= 1.8.0 mjpegtools < 1.9.0, [ + mjpegtools_api=10800 + ], [ + PKG_CHECK_MODULES(MJPEG, mjpegtools >= 1.9.0, [ + dnl logging API changed in release candidates + OLD_CFLAGS="$CFLAGS" + OLD_LIBS="$LIBS" + CFLAGS="$MJPEG_CFLAGS" + LIBS="$LIBS $MJPEG_LIBS -lmjpegutils $LIBM -lpthread" + AC_CHECK_FUNC(mjpeg_loglev_t, [ + mjpegtools_api=10903 + ], [ + mjpegtools_api=10900 + ]) + CFLAGS="$OLD_CFLAGS" + LIBS="$OLD_LIBS" + ], [ + mjpegtools_api=0 + ]) + ]) +]) +AC_DEFINE_UNQUOTED(GST_MJPEGTOOLS_API, $mjpegtools_api, + [mjpegtools API evolution]) + +dnl *** mpeg2enc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPEG2ENC, true) +AG_GST_CHECK_FEATURE(MPEG2ENC, [mpeg2enc], mpeg2enc, [ + HAVE_MPEG2ENC="no" + dnl we require a c++ compiler for this one + if [ test x$HAVE_CXX = xyes ]; then + dnl libmpeg2enc was first included in mjpegtools-1.6.2-rc3 (1.6.1.92) + dnl since many distros include mjpegtools specifically without mplex + dnl and mpeg2enc, we check for mpeg2enc on its own, too. + PKG_CHECK_MODULES(MPEG2ENC, mjpegtools >= 1.6.1.93, [ + dnl HACK because mpeg2enc 1.8.0 header files have a spurious 'include config.h' + touch config.h + dnl switch over to c++ to test things + AC_LANG_CPLUSPLUS + OLD_CPPFLAGS="$CPPFLAGS" + dnl HACK as above + CPPFLAGS_GOOD="$CPPFLAGS $MPEG2ENC_CFLAGS" + CPPFLAGS="$CPPFLAGS_GOOD -I." + dnl check headers + mpeg2enc_headers_ok=no + AC_CHECK_HEADER([mpeg2encoder.hh], [ + MPEG2ENC_LIBS="$MPEG2ENC_LIBS -lmpeg2encpp $LIBM -lpthread" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPEG2ENC_LIBS" + AC_MSG_CHECKING([for valid mpeg2enc objects]) + AC_TRY_RUN([ + #include + #include + + int + main (int argc, + char *argv[]) + { + MPEG2EncOptions *options = new MPEG2EncOptions (); + MPEG2Encoder *encoder = new MPEG2Encoder (*options); + return 0; + } + ],[ + AC_MSG_RESULT(yes) + dnl so far so good, let's check more things: + dnl mjpegtools-1.8.0 does not install the required + dnl mpeg2syntaxcodes.h header by default, and a new release + dnl is not in sight, so check for this oversight in case + dnl distros or folks have fixed this themselves + if test "$mjpegtools_api" -ge "10800"; then + AC_CHECK_HEADER([mpeg2syntaxcodes.h], [ + mpeg2enc_headers_ok=yes + ], [ + mpeg2enc_headers_ok=no + ]) + else + mpeg2enc_headers_ok=yes + fi + if test "x$mpeg2enc_headers_ok" = "xyes"; then + HAVE_MPEG2ENC="yes" + fi + CPP_FLAGS="$CPPFLAGS_GOOD" + AC_SUBST(MPEG2ENC_CFLAGS) + AC_SUBST(MPEG2ENC_LIBS) + ], [ + AC_MSG_RESULT(no) + ]) + LIBS="$OLD_LIBS" + ]) + + CPPFLAGS="$OLD_CPPFLAGS" + AC_LANG_C + ], [ + HAVE_MPEG2ENC="no" + ]) + fi +]) + +dnl *** mplex *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MPLEX, true) +AG_GST_CHECK_FEATURE(MPLEX, [mplex], mplex, [ + HAVE_MPLEX="no" + dnl we require a c++ compiler for this one + if [ test x$HAVE_CXX = xyes ]; then + dnl libmplex was first included in mjpegtools-1.6.2-rc4 (1.6.1.93) + dnl since many distros include mjpegtools specifically without mplex + dnl and mpeg2enc, we check for mplex on its own, too. + dnl libmplex < 1.9rc? has fuzzy ABI, valgrind and other problems + PKG_CHECK_MODULES(MPLEX, mjpegtools >= 1.9.0, [ + dnl switch over to c++ to test things + AC_LANG_CPLUSPLUS + OLD_CPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS $MPLEX_CFLAGS" + AC_CHECK_HEADER(interact.hpp, [ + MPLEX_LIBS="$MPLEX_LIBS -lmplex2 $LIBM" + OLD_LIBS="$LIBS" + LIBS="$LIBS $MPLEX_LIBS" + OLD_LDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS $MPLEX_LDFLAGS" + dnl older libmplex uses off_t SegmentSize (), which leads to fuzzy ABI; + dnl don't want this here + AC_MSG_CHECKING([for valid mplex objects]) + AC_TRY_RUN([ + +#include +#include +#include +int +main (int argc, + char *argv[]) +{ + class TestOutputStream : public OutputStream { + public: + TestOutputStream () : OutputStream () { } + void Write (uint8_t *a, unsigned int b) { } + void NextSegment () { } + uint64_t SegmentSize () { } + void Close () { } + int Open () { } +}; + MultiplexJob *job = new MultiplexJob (); + vector inputs; + job->SetupInputStreams (inputs); + TestOutputStream *out = new TestOutputStream (); + Multiplexor *mux = new Multiplexor(*job, *out, NULL); + return 0; +} + ],[ + HAVE_MPLEX="yes" + AC_SUBST(MPLEX_CFLAGS) + AC_SUBST(MPLEX_LIBS) + AC_SUBST(MPLEX_LDFLAGS) + AC_MSG_RESULT(yes) + ], AC_MSG_RESULT(no)) + LIBS="$OLD_LIBS" + LDFLAGS="$OLD_LDFLAGS" + ]) + CPPFLAGS="$OLD_CPPFLAGS" + AC_LANG_C + ], HAVE_MPLEX="no") + fi +]) + +dnl *** musepack *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MUSEPACK, true) +AG_GST_CHECK_FEATURE(MUSEPACK, [musepackdec], musepack, [ + AC_CHECK_HEADER([mpc/mpcdec.h], [ + HAVE_MUSEPACK="yes" + MUSEPACK_LIBS="-lmpcdec" + AC_SUBST(MUSEPACK_LIBS) + ], [AC_CHECK_HEADER([mpcdec/mpcdec.h], [ + HAVE_MUSEPACK="yes" + MUSEPACK_LIBS="-lmpcdec" + AC_DEFINE(MPC_IS_OLD_API, 1, [Define if the old MusePack API is used]) + AC_SUBST(MUSEPACK_LIBS) + ], [HAVE_MUSEPACK="no"])]) +]) + +dnl *** musicbrainz *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MUSICBRAINZ, true) +AG_GST_CHECK_FEATURE(MUSICBRAINZ, [musicbrainz tag generation], musicbrainz, [ + PKG_CHECK_MODULES(MUSICBRAINZ, libmusicbrainz >= 2.1.0, HAVE_MUSICBRAINZ="yes", HAVE_MUSICBRAINZ="no") + AC_SUBST(MUSICBRAINZ_CFLAGS) + AC_SUBST(MUSICBRAINZ_LIBS) +]) + +dnl *** MythTV *** +translit(dnm, m, l) AM_CONDITIONAL(USE_MYTHTV, true) +AG_GST_CHECK_FEATURE(MYTHTV, [MythTV client plugins], mythtvsrc, [ + PKG_CHECK_MODULES(GMYTH, gmyth >= 0.4 gmyth <= 0.7.99, HAVE_MYTHTV="yes", [ + HAVE_MYTHTV="no" + ]) + AC_SUBST(GMYTH_CFLAGS) + AC_SUBST(GMYTH_LIBS) +]) + +dnl *** nas *** +translit(dnm, m, l) AM_CONDITIONAL(USE_NAS, true) +AG_GST_CHECK_FEATURE(NAS, [nas plug-in], nassink, [ + HAVE_NAS="no" + AG_GST_CHECK_X + if test "x$HAVE_X" = "xyes"; then + save_cppflags=$CFLAGS + CPPFLAGS="$CPPFLAGS $X_CFLAGS" + AG_GST_CHECK_LIBHEADER(NAS, audio, AuOpenServer, $X_LIBS, audio/audiolib.h, + NAS_LIBS="$X_LIBS -laudio" NAS_CFLAGS="$X_CFLAGS") + CPPFLAGS="$save_cppflags" + fi + AC_SUBST(NAS_CFLAGS) + AC_SUBST(NAS_LIBS) +]) + +dnl *** neon *** +translit(dnm, m, l) AM_CONDITIONAL(USE_NEON, true) +AG_GST_CHECK_FEATURE(NEON, [neon http client plugins], neonhttpsrc, [ + PKG_CHECK_MODULES(NEON, neon >= 0.27.0 neon <= 0.29.99, HAVE_NEON="yes", [ + HAVE_NEON="no" + ]) + AC_SUBST(NEON_CFLAGS) + AC_SUBST(NEON_LIBS) +]) + +dnl *** ofa *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OFA, true) +AG_GST_CHECK_FEATURE(OFA, [ofa plugins], ofa, [ + PKG_CHECK_MODULES(OFA, libofa >= 0.9.3, HAVE_OFA="yes", [ + HAVE_OFA="no" + ]) + AC_SUBST(OFA_CFLAGS) + AC_SUBST(OFA_LIBS) +]) + +dnl *** opencv *** +translit(dnm, m, l) AM_CONDITIONAL(USE_OPENCV, true) +AG_GST_CHECK_FEATURE(OPENCV, [opencv plugins], opencv, [ + dnl we specify a max. version too because we set CV_NO_BACKWARD_COMPATIBILITY + dnl and don't want the build to break when a new opencv version comes out. + dnl Need to adjust this upwards once we know that our code compiles fine with + dnl a new version and the no-backward-compatibility define. (There doesn't + dnl seem to be a switch to suppress the warnings the cvcompat.h header + dnl causes.) + PKG_CHECK_MODULES(OPENCV, opencv >= 2.0.0 opencv <= 2.2.0 , [ + AC_PROG_CXX + AC_LANG_CPLUSPLUS + OLD_CPPFLAGS=$CPPFLAGS + CPPFLAGS=$OPENCV_CFLAGS + AC_CHECK_HEADER(highgui.h, HAVE_HIGHGUI="yes", HAVE_HIGHGUI="no") + AC_CHECK_HEADER(cvaux.h, HAVE_CVAUX="yes", HAVE_CVAUX="no") + CPPFLAGS=$OLD_CPPFLAGS + AC_LANG_C + if test "x$HAVE_HIGHGUI" = "xno"; then + AC_MSG_RESULT(highgui.h could not be found.) + HAVE_OPENCV="no" + elif test "x$HAVE_CVAUX" = "xno"; then + AC_MSG_RESULT(cvaux.h could not be found.) + HAVE_OPENCV="no" + else + HAVE_OPENCV="yes" + fi + ], [ + HAVE_OPENCV="no" + ]) + AC_SUBST(OPENCV_CFLAGS) + AC_SUBST(OPENCV_LIBS) +]) + +dnl *** rsvg *** +translit(dnm, m, l) AM_CONDITIONAL(USE_RSVG, true) +AG_GST_CHECK_FEATURE(RSVG, [rsvg decoder], rsvg, [ + PKG_CHECK_MODULES(RSVG, librsvg-2.0 >= 2.14 cairo, HAVE_RSVG="yes", [ + HAVE_RSVG="no" + ]) + AC_SUBST(RSVG_CFLAGS) + AC_SUBST(RSVG_LIBS) +]) + +dnl *** timidity *** +translit(dnm, m, l) AM_CONDITIONAL(USE_TIMIDITY, true) +AG_GST_CHECK_FEATURE(TIMIDITY, [timidity midi soft synth plugin], timidity, [ + PKG_CHECK_MODULES(TIMIDITY, libtimidity, [ + HAVE_TIMIDITY="yes", + AC_MSG_CHECKING([for timidity.cfg]) + timidity_cfg="" + if test -r /etc/timidity.cfg; then + timidity_cfg=/etc/timidity.cfg + elif test -r /etc/timidity/timidity.cfg; then + timidity_cfg=/etc/timidity/timidity.cfg + elif test -r /usr/share/timidity/timidity.cfg; then + timidity_cfg=/usr/share/timidity/timidity.cfg + elif test -r /usr/local/share/timidity/timidity.cfg; then + timidity_cfg=/usr/local/share/timidity/timidity.cfg + fi + if test "x$timidity_cfg" != "x"; then + AC_MSG_RESULT($timidity_cfg) + AC_DEFINE_UNQUOTED(TIMIDITY_CFG, "$timidity_cfg", [Define location of timidity.cfg]) + else + AC_MSG_RESULT([not found]) + fi + ], [ + HAVE_TIMIDITY="no" + ]) + AC_SUBST(TIMIDITY_CFLAGS) + AC_SUBST(TIMIDITY_LIBS) +]) + +dnl *** wildmidi *** +translit(dnm, m, l) AM_CONDITIONAL(USE_WILDMIDI, true) +AG_GST_CHECK_FEATURE(WILDMIDI, [wildmidi midi soft synth plugin], wildmidi, [ + AG_GST_CHECK_LIBHEADER(WILDMIDI, WildMidi, + WildMidi_Init, , + wildmidi_lib.h, + WILDMIDI_LIBS="-lWildMidi") + AC_CHECK_LIB(WildMidi, WildMidi_LoadSamples, AC_DEFINE(HAVE_WILDMIDI_0_2_2, [1], [Have WildMidi 0.2.2 or earlier library])) + + if test "x$HAVE_WILDMIDI" = "xyes"; then + WILDMIDI_CFLAGS= + WILDMIDI_LIBS=-lWildMidi + AC_MSG_NOTICE(compiling gstWildMidi) + else + WILDMIDI_CFLAGS= + WILDMIDI_LIBS= + AC_MSG_WARN(no WildMidi library found (libWildMidi)) + fi + AC_SUBST(WILDMIDI_CFLAGS) + AC_SUBST(WILDMIDI_LIBS) +]) + +dnl *** SDL *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SDL, true) +AG_GST_CHECK_FEATURE(SDL, [SDL plug-in], sdlvideosink sdlaudiosink, [ + AM_PATH_SDL(, HAVE_SDL=yes, HAVE_SDL=no) +]) + +dnl *** sndfile *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SNDFILE, true) +AG_GST_CHECK_FEATURE(SNDFILE, [sndfile plug-in], sfsrc sfsink, [ + PKG_CHECK_MODULES(SNDFILE, sndfile >= 1.0.16, HAVE_SNDFILE="yes", HAVE_SNDFILE="no") + AC_SUBST(SNDFILE_CFLAGS) + AC_SUBST(SNDFILE_LIBS) +]) + +dnl *** soundtouch *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SOUNDTOUCH, true) +AG_GST_CHECK_FEATURE(SOUNDTOUCH, [soundtouch plug-in], soundtouch, [ + dnl We only need -lBPM on soundtouch < 1.4 + dnl We check for libSoundTouch since Debian used it before upstream + dnl added a pkgconfig file. + HAVE_SOUNDTOUCH_1_4=yes + PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch, + [HAVE_SOUNDTOUCH=yes], + [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.4, + [HAVE_SOUNDTOUCH=yes], + [PKG_CHECK_MODULES(SOUNDTOUCH, soundtouch-1.0, + [HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], + [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch >= 1.4, + [HAVE_SOUNDTOUCH=yes], + [PKG_CHECK_MODULES(SOUNDTOUCH, libSoundTouch, + [HAVE_SOUNDTOUCH=yes + HAVE_SOUNDTOUCH_1_4=no + SOUNDTOUCH_LIBS="$SOUNDTOUCH_LIBS -lBPM"], + HAVE_SOUNDTOUCH=no)])])])]) + AC_SUBST(SOUNDTOUCH_CFLAGS) + AC_SUBST(SOUNDTOUCH_LIBS) + if test "x$HAVE_CXX" != "xyes"; then + USE_SOUNDTOUCH=false + AC_MSG_NOTICE([Not building soundtouch plugin: no C++ compiler found]) + fi + if test "x$HAVE_SOUNDTOUCH" = "xyes" -a "x$HAVE_SOUNDTOUCH_1_4" = "xyes"; then + AC_DEFINE([HAVE_SOUNDTOUCH_1_4], [1], + [Defined if the available libSoundTouch is >= 1.4]) + fi +]) + +dnl *** spc *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SPC, true) +AG_GST_CHECK_FEATURE(SPC, [spc decoder], spc, [ + AC_CHECK_HEADER(openspc.h, [ + AC_CHECK_LIB(openspc, OSPC_Init, [ + SPC_LIBS="-lopenspc" + AC_SUBST(SPC_LIBS) + HAVE_SPC=yes + ], [ + HAVE_SPC=no + ]) + ], [ + HAVE_SPC=no + ]) +]) + +dnl *** gme *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GME, true) +AG_GST_CHECK_FEATURE(GME, [gme decoder], gme, [ + AC_CHECK_HEADER(gme/gme.h, [ + AC_CHECK_LIB(gme, gme_new_emu, [ + GME_LIBS="-lgme" + AC_SUBST(GME_LIBS) + HAVE_GME=yes + ], [ + HAVE_GME=no + ]) + ], [ + HAVE_GME=no + ]) + + if test "x$HAVE_GME" = "xyes"; then + AC_CHECK_LIB(gme, gme_enable_accuracy, [ + AC_DEFINE(HAVE_LIBGME_ACCURACY, 1, [Define if gme 0.5.6 or newer is available]) + ]) + fi +]) + +dnl *** swfdec *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SWFDEC, true) +AG_GST_CHECK_FEATURE(SWFDEC, [swfdec plug-in], swfdec, [ + PKG_CHECK_MODULES(SWFDEC, swfdec-0.3 >= 0.3.6, HAVE_SWFDEC=yes, [ + HAVE_SWFDEC=no + ]) + AC_SUBST(SWFDEC_CFLAGS) + AC_SUBST(SWFDEC_LIBS) +]) + +dnl *** XVID *** +translit(dnm, m, l) AM_CONDITIONAL(USE_XVID, true) +AG_GST_CHECK_FEATURE(XVID, [xvid plugins], xvid, [ + HAVE_XVID=no + AC_CHECK_HEADER(xvid.h, [ + OLD_LIBS="$LIBS" + LIBS="-lpthread $LIBM" + AC_CHECK_LIB(xvidcore, xvid_encore, [ + AC_CHECK_LIB(xvidcore, xvid_decore, [ + AC_CHECK_LIB(xvidcore, xvid_global, [ + AC_MSG_CHECKING([for uptodate XviD API version]) + AC_TRY_COMPILE([#include ], [ + #if XVID_API_MAJOR(XVID_API) != 4 + #error "Incompatible XviD API version" + #endif + ],[ AC_MSG_RESULT(yes) + XVID_LIBS="-lxvidcore $LIBM" + AC_SUBST(XVID_LIBS) + HAVE_XVID=yes + ], AC_MSG_RESULT(no) ) + ], ) + ], ) + ], ) + LIBS="$OLD_LIBS" + ], ) +]) + +dnl *** dvb *** +translit(dnm, m, l) AM_CONDITIONAL(USE_DVB, true) +AG_GST_CHECK_FEATURE(DVB, [DVB Source], dvb, [ + AC_MSG_CHECKING([Checking for up to date dvb installation]) + AC_CHECK_HEADER(linux/dvb/frontend.h, [HAVE_DVB="yes"], [HAVE_DVB="no"]) +]) + +dnl *** wininet *** +translit(dnm, m, l) AM_CONDITIONAL(USE_WININET, true) +AG_GST_CHECK_FEATURE(WININET, [Windows internet library], wininet, [ + AC_MSG_CHECKING([Checking for windows internet support]) + AC_CHECK_HEADERS([windows.h wininet.h], + [HAVE_WININET="yes"], [HAVE_WININET="no"]) +]) + +dnl *** acm *** +translit(dnm, m, l) AM_CONDITIONAL(USE_ACM, true) +AG_GST_CHECK_FEATURE(ACM, [Windows ACM library], acm, [ + AC_MSG_CHECKING([Checking for ACM support]) + AC_CHECK_HEADERS([windows.h msacm.h], + [HAVE_ACM="yes" + AC_SUBST(ACMENC_CFLAGS) + AC_SUBST(ACMMP3DEC_CFLAGS) + ], [HAVE_ACM="no"], + [AC_INCLUDES_DEFAULT +#include ]) +]) + +dnl *** vdpau *** +translit(dnm, m, l) AM_CONDITIONAL(USE_VDPAU, true) +AG_GST_CHECK_FEATURE(VDPAU, [VDPAU], vdpau, [ + VDPAU_CFLAGS= + VDPAU_LIBS=-lvdpau + HAVE_VDPAU=no + + PKG_CHECK_MODULES(VDPAU, vdpau, [HAVE_VDPAU="yes"], + [ + if test "$HAVE_VDPAU" = "no"; then + saved_CPPFLAGS="$CPPFLAGS" + AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes]) + + if test -z "$HAVE_VDPAU_H"; then + dnl Didn't find VDPAU header straight away. + dnl Try /usr/include/nvidia. Need to clear caching vars first + AC_MSG_NOTICE([VDPAU header not in standard path. Checking /usr/include/nvidia]) + unset ac_cv_header_vdpau_vdpau_h + unset ac_cv_header_vdpau_vdpau_x11_h + VDPAU_CFLAGS="-I/usr/include/nvidia" + VDPAU_LIBS="-L/usr/lib/nvidia -lvdpau" + CPPFLAGS="$VDPAU_CFLAGS $saved_CPPFLAGS" + AC_CHECK_HEADER([vdpau/vdpau.h], [HAVE_VDPAU_H=yes]) + fi + + AC_CHECK_HEADER([vdpau/vdpau_x11.h], [HAVE_VDPAU_X11_H=yes]) + + if test "x$HAVE_VDPAU_H" = "xyes" -a "x$HAVE_VDPAU_X11_H" = "xyes"; then + dnl Found the headers - look for the lib + AC_MSG_NOTICE([VDPAU headers found. Checking libraries]) + saved_LIBS="$LIBS" + LIBS="$VDPAU_LIBS $saved_LIBS" + AC_CHECK_LIB(vdpau,vdp_device_create_x11,[HAVE_VDPAU="yes"]) + LIBS="$saved_LIBS" + fi + fi + ]) + + if test "$HAVE_VDPAU" = "yes"; then + AC_MSG_NOTICE([Found up to date VDPAU installation]) + AC_SUBST(VDPAU_CFLAGS) + AC_SUBST(VDPAU_LIBS) + fi +]) + +dnl *** schroedinger *** +translit(dnm, m, l) AM_CONDITIONAL(USE_SCHRO, true) +AG_GST_CHECK_FEATURE(SCHRO, [Schroedinger video codec], schro, [ + AG_GST_PKG_CHECK_MODULES(SCHRO, schroedinger-1.0 >= 1.0.7) +]) + +dnl *** zbar *** +translit(dnm, m, l) AM_CONDITIONAL(USE_ZBAR, true) +AG_GST_CHECK_FEATURE(ZBAR, [ZBar barcode detector], zbar, [ + AG_GST_PKG_CHECK_MODULES(ZBAR, zbar >= 0.9) +]) + +dnl *** vp8 *** +translit(dnm, m, l) AM_CONDITIONAL(USE_VP8, vp8) +AG_GST_CHECK_FEATURE(VP8, [VP8 decoder], vp8, [ + VPX_LIBS="" + AG_GST_CHECK_LIBHEADER(VPX, vpx, + vpx_codec_version, , + vpx/vpx_codec.h, [ + HAVE_VP8_ENCODER=no + HAVE_VP8_DECODER=no + + OLD_LIBS="$LIBS" + LIBS="$LIBS $LIBM -lpthread" + AC_CHECK_LIB(vpx, vpx_codec_vp8_cx_algo, [ + HAVE_VP8=yes + AC_DEFINE(HAVE_VP8_ENCODER, 1, [Defined if the VP8 encoder is available]) + VPX_LIBS="-lvpx" + ]) + AC_CHECK_LIB(vpx, vpx_codec_vp8_dx_algo, [ + HAVE_VP8=yes + AC_DEFINE(HAVE_VP8_DECODER, 1, [Defined if the VP8 decoder is available]) + VPX_LIBS="-lvpx" + ]) + LIBS="$OLD_LIBS" + ]) + AC_SUBST(VPX_LIBS) +]) + +dnl *** rtmp *** +translit(dnm, m, l) AM_CONDITIONAL(USE_RTMP, true) +AG_GST_CHECK_FEATURE(RTMP, [rtmp library], rtmp, [ + AG_GST_PKG_CHECK_MODULES(RTMP, librtmp) +]) + +dnl *** GSettings *** +translit(dnm, m, l) AM_CONDITIONAL(USE_GSETTINGS, true) +AG_GST_CHECK_FEATURE(GSETTINGS, [GSettings plugin], gsettings, [ + AG_GST_PKG_CHECK_MODULES(GSETTINGS, gio-2.0 >= 2.25.0) + if test "x$HAVE_GSETTINGS" = "xyes"; then + GLIB_GSETTINGS + fi +]) + +else + +dnl not building plugins with external dependencies, +dnl but we still need to set the conditionals + +AM_CONDITIONAL(USE_ASSRENDER, false) +AM_CONDITIONAL(USE_AMRWB, false) +AM_CONDITIONAL(USE_APEXSINK, false) +AM_CONDITIONAL(USE_BZ2, false) +AM_CONDITIONAL(USE_CDAUDIO, false) +AM_CONDITIONAL(USE_CELT, false) +AM_CONDITIONAL(USE_COG, false) +AM_CONDITIONAL(USE_CURL, false) +AM_CONDITIONAL(USE_DC1394, false) +AM_CONDITIONAL(USE_DECKLINK, false) +AM_CONDITIONAL(USE_DIRECTFB, false) +AM_CONDITIONAL(USE_DIRAC, false) +AM_CONDITIONAL(USE_DTS, false) +AM_CONDITIONAL(USE_DIVX, false) +AM_CONDITIONAL(USE_EXIF, false) +AM_CONDITIONAL(USE_RESINDVD, false) +AM_CONDITIONAL(USE_FAAC, false) +AM_CONDITIONAL(USE_FAAD, false) +AM_CONDITIONAL(USE_FBDEV, false) +AM_CONDITIONAL(USE_FLITE, false) +AM_CONDITIONAL(USE_GSM, false) +AM_CONDITIONAL(USE_JP2K, false) +AM_CONDITIONAL(USE_KATE, false) +AM_CONDITIONAL(USE_TIGER, false) +AM_CONDITIONAL(USE_LADSPA, false) +AM_CONDITIONAL(USE_LV2, false) +AM_CONDITIONAL(USE_LIBMMS, false) +AM_CONDITIONAL(USE_LINSYS, false) +AM_CONDITIONAL(USE_MODPLUG, false) +AM_CONDITIONAL(USE_MIMIC, false) +AM_CONDITIONAL(USE_MPEG2ENC, false) +AM_CONDITIONAL(USE_MPLEX, false) +AM_CONDITIONAL(USE_MUSEPACK, false) +AM_CONDITIONAL(USE_MUSICBRAINZ, false) +AM_CONDITIONAL(USE_MYTHTV, false) +AM_CONDITIONAL(USE_NAS, false) +AM_CONDITIONAL(USE_NEON, false) +AM_CONDITIONAL(USE_OFA, false) +AM_CONDITIONAL(USE_OPENCV, false) +AM_CONDITIONAL(USE_RSVG, false) +AM_CONDITIONAL(USE_TIMIDITY, false) +AM_CONDITIONAL(USE_WILDMIDI, false) +AM_CONDITIONAL(USE_SDL, false) +AM_CONDITIONAL(USE_SNDFILE, false) +AM_CONDITIONAL(USE_SOUNDTOUCH, false) +AM_CONDITIONAL(USE_SPC, false) +AM_CONDITIONAL(USE_GME, false) +AM_CONDITIONAL(USE_GSETTINGS, false) +AM_CONDITIONAL(USE_SWFDEC, false) +AM_CONDITIONAL(USE_XVID, false) +AM_CONDITIONAL(USE_DVB, false) +AM_CONDITIONAL(USE_WININET, false) +AM_CONDITIONAL(USE_ACM, false) +AM_CONDITIONAL(USE_VDPAU, false) +AM_CONDITIONAL(USE_SCHRO, false) +AM_CONDITIONAL(USE_ZBAR, false) +AM_CONDITIONAL(USE_VP8, false) +AM_CONDITIONAL(USE_RTMP, false) + +fi dnl of EXT plugins + +dnl *** finalize CFLAGS, LDFLAGS, LIBS + +dnl Overview: +dnl GST_OPTION_CFLAGS: common flags for profiling, debugging, errors, ... +dnl GST_*: flags shared by built objects to link against GStreamer +dnl GST_ALL_LDFLAGS: linker flags shared by all +dnl GST_LIB_LDFLAGS: additional linker flags for all libaries +dnl GST_LT_LDFLAGS: library versioning of our libraries +dnl GST_PLUGIN_LDFLAGS: flags to be used for all plugins + +dnl GST_OPTION_CFLAGS +if test "x$USE_DEBUG" = xyes; then + PROFILE_CFLAGS="-g" +fi +AC_SUBST(PROFILE_CFLAGS) + +if test "x$PACKAGE_VERSION_NANO" = "x1"; then + dnl Define _only_ during CVS (not pre-releases or releases) + DEPRECATED_CFLAGS="-DGST_DISABLE_DEPRECATED" +else + DEPRECATED_CFLAGS="" +fi +AC_SUBST(DEPRECATED_CFLAGS) + +dnl every flag in GST_OPTION_CFLAGS and GST_OPTION_CXXFLAGS can be overridden +dnl at make time with e.g. make ERROR_CFLAGS="" +GST_OPTION_CFLAGS="\$(WARNING_CFLAGS) \$(ERROR_CFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" +GST_OPTION_CXXFLAGS="\$(WARNING_CXXFLAGS) \$(ERROR_CXXFLAGS) \$(DEBUG_CFLAGS) \$(PROFILE_CFLAGS) \$(GCOV_CFLAGS) \$(OPT_CFLAGS) \$(DEPRECATED_CFLAGS)" +AC_SUBST(GST_OPTION_CFLAGS) +AC_SUBST(GST_OPTION_CXXFLAGS) + +dnl FIXME: do we want to rename to GST_ALL_* ? +dnl prefer internal headers to already installed ones +dnl also add builddir include for enumtypes and marshal +dnl add GST_OPTION_CFLAGS, but overridable +GST_CXXFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CXXFLAGS)" +GST_CFLAGS="$GST_CFLAGS $GLIB_EXTRA_CFLAGS \$(GST_OPTION_CFLAGS)" +AC_SUBST(GST_CFLAGS) +AC_SUBST(GST_CXXFLAGS) +AC_SUBST(GST_LIBS) +GST_PLUGINS_BAD_CXXFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" +GST_PLUGINS_BAD_CFLAGS="-I\$(top_srcdir)/gst-libs -I\$(top_builddir)/gst-libs" +AC_SUBST(GST_PLUGINS_BAD_CFLAGS) +AC_SUBST(GST_PLUGINS_BAD_CXXFLAGS) + +dnl LDFLAGS really should only contain flags, not libs - they get added before +dnl whatevertarget_LIBS and -L flags here affect the rest of the linking +GST_ALL_LDFLAGS="-no-undefined" +AC_SUBST(GST_ALL_LDFLAGS) + +dnl GST_LIB_LDFLAGS +dnl linker flags shared by all libraries +dnl LDFLAGS modifier defining exported symbols from built libraries +dnl (export _gst_foo but not __gst_foo) +GST_LIB_LDFLAGS="-export-symbols-regex ^_?\(gst_\|Gst\|GST_\).*" +AC_SUBST(GST_LIB_LDFLAGS) + +dnl this really should only contain flags, not libs - they get added before +dnl whatevertarget_LIBS and -L flags here affect the rest of the linking +GST_PLUGIN_LDFLAGS="-module -avoid-version -export-symbols-regex '^[_]*gst_plugin_desc.*' $GST_ALL_LDFLAGS" +AC_SUBST(GST_PLUGIN_LDFLAGS) + +dnl *** output files *** + +dnl po/Makefile.in + +AC_CONFIG_FILES( +Makefile +common/Makefile +common/m4/Makefile +gst-plugins-bad.spec +gst/Makefile +gst/adpcmdec/Makefile +gst/adpcmenc/Makefile +gst/aiff/Makefile +gst/asfmux/Makefile +gst/autoconvert/Makefile +gst/bayer/Makefile +gst/camerabin/Makefile +gst/camerabin2/Makefile +gst/cdxaparse/Makefile +gst/colorspace/Makefile +gst/coloreffects/Makefile +gst/dataurisrc/Makefile +gst/dccp/Makefile +gst/debugutils/Makefile +gst/dtmf/Makefile +gst/dvbsuboverlay/Makefile +gst/dvdspu/Makefile +gst/festival/Makefile +gst/fieldanalysis/Makefile +gst/freeze/Makefile +gst/frei0r/Makefile +gst/gaudieffects/Makefile +gst/geometrictransform/Makefile +gst/h264parse/Makefile +gst/hdvparse/Makefile +gst/hls/Makefile +gst/id3tag/Makefile +gst/interlace/Makefile +gst/invtelecine/Makefile +gst/ivfparse/Makefile +gst/jp2kdecimator/Makefile +gst/jpegformat/Makefile +gst/legacyresample/Makefile +gst/librfb/Makefile +gst/liveadder/Makefile +gst/mpegdemux/Makefile +gst/mpegtsdemux/Makefile +gst/mpegtsmux/Makefile +gst/mpegtsmux/tsmux/Makefile +gst/mpegpsmux/Makefile +gst/mpeg4videoparse/Makefile +gst/mpegvideoparse/Makefile +gst/mve/Makefile +gst/mxf/Makefile +gst/nsf/Makefile +gst/nuvdemux/Makefile +gst/patchdetect/Makefile +gst/pcapparse/Makefile +gst/pnm/Makefile +gst/rawparse/Makefile +gst/real/Makefile +gst/rtpmux/Makefile +gst/rtpvp8/Makefile +gst/scaletempo/Makefile +gst/sdi/Makefile +gst/sdp/Makefile +gst/segmentclip/Makefile +gst/siren/Makefile +gst/speed/Makefile +gst/subenc/Makefile +gst/stereo/Makefile +gst/tta/Makefile +gst/videofilters/Makefile +gst/videomaxrate/Makefile +gst/videomeasure/Makefile +gst/videoparsers/Makefile +gst/videosignal/Makefile +gst/vmnc/Makefile +gst/y4m/Makefile +gst-libs/Makefile +gst-libs/gst/Makefile +gst-libs/gst/basecamerabinsrc/Makefile +gst-libs/gst/interfaces/Makefile +gst-libs/gst/signalprocessor/Makefile +gst-libs/gst/video/Makefile +sys/Makefile +sys/dshowdecwrapper/Makefile +sys/acmenc/Makefile +sys/acmmp3dec/Makefile +sys/applemedia/Makefile +sys/decklink/Makefile +sys/directdraw/Makefile +sys/directsound/Makefile +sys/dshowsrcwrapper/Makefile +sys/dshowvideosink/Makefile +sys/dvb/Makefile +sys/fbdev/Makefile +sys/linsys/Makefile +sys/osxvideo/Makefile +sys/qtwrapper/Makefile +sys/shm/Makefile +sys/vcd/Makefile +sys/vdpau/Makefile +sys/vdpau/gstvdp/Makefile +sys/vdpau/basevideodecoder/Makefile +sys/wasapi/Makefile +sys/wininet/Makefile +sys/winks/Makefile +sys/winscreencap/Makefile +tests/Makefile +tests/check/Makefile +tests/files/Makefile +tests/examples/Makefile +tests/examples/camerabin/Makefile +tests/examples/camerabin2/Makefile +tests/examples/directfb/Makefile +tests/examples/mxf/Makefile +tests/examples/scaletempo/Makefile +tests/icles/Makefile +ext/amrwbenc/Makefile +ext/assrender/Makefile +ext/apexsink/Makefile +ext/bz2/Makefile +ext/cdaudio/Makefile +ext/celt/Makefile +ext/cog/Makefile +ext/curl/Makefile +ext/dc1394/Makefile +ext/dirac/Makefile +ext/directfb/Makefile +ext/divx/Makefile +ext/dts/Makefile +ext/faac/Makefile +ext/faad/Makefile +ext/flite/Makefile +ext/gsm/Makefile +ext/jp2k/Makefile +ext/kate/Makefile +ext/ladspa/Makefile +ext/lv2/Makefile +ext/libmms/Makefile +ext/Makefile +ext/modplug/Makefile +ext/mpeg2enc/Makefile +ext/mimic/Makefile +ext/mplex/Makefile +ext/musepack/Makefile +ext/musicbrainz/Makefile +ext/mythtv/Makefile +ext/nas/Makefile +ext/neon/Makefile +ext/ofa/Makefile +ext/opencv/Makefile +ext/rsvg/Makefile +ext/resindvd/Makefile +ext/rtmp/Makefile +ext/schroedinger/Makefile +ext/sdl/Makefile +ext/sndfile/Makefile +ext/soundtouch/Makefile +ext/gme/Makefile +ext/gsettings/Makefile +ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml +ext/spc/Makefile +ext/swfdec/Makefile +ext/timidity/Makefile +ext/vp8/Makefile +ext/xvid/Makefile +ext/zbar/Makefile +po/Makefile.in +docs/Makefile +docs/plugins/Makefile +docs/version.entities +pkgconfig/Makefile +pkgconfig/gstreamer-plugins-bad.pc +pkgconfig/gstreamer-plugins-bad-uninstalled.pc +tools/Makefile +m4/Makefile +win32/common/config.h +) +AC_OUTPUT + +AG_GST_OUTPUT_PLUGINS +ORC_OUTPUT + diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..ec2160f --- /dev/null +++ b/debian/changelog @@ -0,0 +1,7 @@ +gst-plugins-bad0.10 (0.10.22-0) unstable; urgency=low + + * Initial release + * Git: pkgs/g/gst-plugins-bad0.10 + * Tag: gst-plugins-bad0.10_0.10.22-0 + + -- Jeongmo Yang Wed, 07 Dec 2011 12:40:14 +0900 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..7ed6ff8 --- /dev/null +++ b/debian/compat @@ -0,0 +1 @@ +5 diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..2130ed5 --- /dev/null +++ b/debian/control @@ -0,0 +1,37 @@ +Source: gst-plugins-bad0.10 +Section: libs +Priority: extra +Maintainer: Seungbae Shin , JongHyuk Choi +Uploaders: Heungsoon Rim , Wonhyung Cho , Naveen Ch , YoungHwan Ahn +Build-Depends: debhelper (>= 5), + libglib2.0-dev (>= 2.16), + liboil0.3-dev (>= 0.3.8), + libgstreamer0.10-dev (>= 0.10.25), + libgstreamer-plugins-base0.10-dev (>= 0.10.25) +Standards-Version: 3.8.1 + +Package: gstreamer0.10-plugins-bad +Architecture: any +Depends: ${misc:Depends}, ${shlibs:Depends}, + libglib2.0-0 (>= 2.16), + liboil0.3 (>= 0.3.8), + libgstreamer0.10-0 (>= 0.10.25), + libgstreamer-plugins-base0.10-0 (>= 0.10.25) +Description: GStreamer plugins from the "bad" set + GStreamer is a streaming media framework, based on graphs of filters + which operate on media data. Applications using this library can do + anything from real-time sound processing to playing videos, and just + about anything else media-related. Its plugin-based architecture means + that new data types or processing capabilities can be added simply by + installing new plug-ins. + . + GStreamer Bad Plug-ins is a set of plug-ins that aren't up to par compared + to the rest. They might be close to being good quality, but they're missing + something - be it a good code review, some documentation, a set of tests, a + real live maintainer, or some actual wide use. + +Package: gstreamer0.10-plugins-bad-dbg +Section: debug +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, gstreamer0.10-plugins-bad (= ${Source-Version}) +Description: GStreamer plugins from the "bad" set (unstripped) diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..e3e9f94 --- /dev/null +++ b/debian/copyright @@ -0,0 +1,31 @@ +This package was debianized by David I. Lehn on +Mon, 15 Jan 2001 18:21:37 -0500. + +It was downloaded from http://gstreamer.net/ + +Upstream Authors: + + Erik Walthinsen + Wim Taymans + Richard Boulton + and many more... + +Copyright: + + This package is free software; you can redistribute it and/or + modify it under the terms of the GNU Lesser General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This package is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Lesser General Public License for more details. + + You should have received a copy of the GNU Lesser General Public + License along with this package; if not, write to the Free Software + Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + +On Debian GNU/Linux systems, the complete text of the GNU Lesser General +Public License can be found in `/usr/share/common-licenses/LGPL'. + diff --git a/debian/gstreamer0.10-plugins-bad.install.in b/debian/gstreamer0.10-plugins-bad.install.in new file mode 100644 index 0000000..1685b13 --- /dev/null +++ b/debian/gstreamer0.10-plugins-bad.install.in @@ -0,0 +1,3 @@ +@PREFIX@/lib/gstreamer-0.10/libgst*.so +@PREFIX@/lib/libgst*.so +@PREFIX@/lib/libgst*.so.* diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..5e6d494 --- /dev/null +++ b/debian/rules @@ -0,0 +1,240 @@ +#!/usr/bin/make -f + +#include /usr/share/cdbs/1/rules/simple-patchsys.mk + +# Uncomment this to turn on verbose mode. +#export DH_VERBOSE=1 + +# These are used for cross-compiling and for saving the configure script +# from having to guess our platform (since we know it already) +DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) +DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE) + +CFLAGS ?= -Wall -g -fPIC +LDFLAGS ?= +PREFIX ?= /usr +DATADIR ?= /opt + + +CONFIGURE_OPTION= --disable-static \ +--disable-nls \ +--with-html-dir=/tmp/dump \ +--disable-examples \ +--disable-adpcmdec \ +--disable-aiff \ +--disable-amrparse \ +--disable-asfmux \ +--disable-bayer \ +--disable-cdxaparse \ +--disable-dccp \ +--disable-debugutils \ +--disable-dvdspu \ +--disable-festival \ +--disable-freeze \ +--disable-frei0r \ +--disable-hdvparse \ +--disable-librfb \ +--disable-modplug \ +--disable-mpegtsmux \ +--disable-mpegpsmux \ +--disable-mpegvideoparse \ +--disable-mve \ +--disable-mxf \ +--disable-nsf \ +--disable-nuvdemux \ +--disable-pcapparse \ +--disable-pnm \ +--disable-qtmux \ +--disable-real \ +--disable-scaletempo \ +--disable-shapewipe \ +--disable-siren \ +--disable-speed \ +--disable-subenc \ +--disable-stereo \ +--disable-tta \ +--disable-videomeasure \ +--disable-videosignal \ +--disable-vmnc \ +--disable-directsound \ +--disable-directdraw \ +--disable-osx_video \ +--disable-vcd \ +--disable-assrender \ +--disable-amrwb \ +--disable-apexsink \ +--disable-bz2 \ +--disable-cdaudio \ +--disable-celt \ +--disable-cog \ +--disable-dc1394 \ +--disable-directfb \ +--disable-dirac \ +--disable-dts \ +--disable-divx \ +--disable-dvdnav \ +--disable-faac \ +--disable-faad \ +--disable-fbdev \ +--disable-gsm \ +--disable-ivorbis \ +--disable-jack \ +--disable-jp2k \ +--disable-kate \ +--disable-ladspa \ +--disable-lv2 \ +--disable-libmms \ +--disable-modplug \ +--disable-mimic \ +--disable-mpeg2enc \ +--disable-mplex \ +--disable-musepack \ +--disable-musicbrainz \ +--disable-mythtv \ +--disable-nas \ +--disable-neon \ +--disable-ofa \ +--disable-timidity \ +--disable-wildmidi \ +--disable-sdl \ +--disable-sdltest \ +--disable-sndfile \ +--disable-soundtouch \ +--disable-spc \ +--disable-gme \ +--disable-swfdec \ +--disable-theoradec \ +--disable-xvid \ +--disable-dvb \ +--disable-oss4 \ +--disable-wininet \ +--disable-acm \ +--disable-vdpau \ +--disable-schro \ +--disable-zbar \ +--disable-dataurisrc \ +--disable-shm \ +--disable-coloreffects \ +--disable-colorspace \ +--disable-videomaxrate \ +--disable-jp2kdecimator \ +--disable-interlace \ +--disable-gaudieffects \ +--disable-y4m \ +--disable-adpcmdec \ +--disable-adpcmenc \ +--disable-jpegformat \ +--disable-segmentclip \ +--disable-geometrictransform \ +--disable-invtelecine \ +--disable-dvbsuboverlay \ +--disable-ivfparse \ +--disable-gsettings + + +#--disable-camerabin \ +#--disable-aacparse \ +#--disable-lagacyresample \ +#--disable-id3tag \ +#--disable-quicktime \ +#--disable-h264parse \ +#--disable-mpeg4videoparse \ +#--disable-sdp \ +#--disable-alsa \ +#--disable-selector \ +#--disable-metadata \ + +LDFLAGS += -Wl,--hash-style=both -Wl,--as-needed + +config.status: configure + dh_testdir + ./autogen.sh || exit 1 + # Add here commands to configure the package. + ./configure $(CONFIGURE_OPTION) --prefix=$(PREFIX) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)" + +#configure: +# dh_testdir +# ./autogen.sh + +build: build-stamp +build-stamp: config.status + dh_testdir + + # Add here commands to compile the package. + $(MAKE) + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + cat $$f > $${f%.in}; \ + sed -i -e "s#@PREFIX@#$(PREFIX)#g" $${f%.in}; \ + sed -i -e "s#@DATADIR@#$(DATADIR)#g" $${f%.in}; \ + done + + touch $@ + +clean:: + dh_testdir + dh_testroot + rm -f build-stamp stamp-h1 + # Add here commands to clean up after the build process. + -$(MAKE) distclean + +ifneq "$(wildcard /usr/share/misc/config.sub)" "" + cp -f /usr/share/misc/config.sub config.sub +endif +ifneq "$(wildcard /usr/share/misc/config.guess)" "" + cp -f /usr/share/misc/config.guess config.guess +endif + +# find ./ -depth -name "Makefile" -exec rm {} -f \; +# find ./ -depth -name ".deps" -exec rm {} -rf \; + + for f in `find $(CURDIR)/debian/ -name "*.in"`; do \ + rm -f $${f%.in}; \ + done + + dh_clean + +install: build + dh_testdir + dh_testroot + dh_clean -k + dh_installdirs + + # Add here commands to install the package into debian/tmp + $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install + +# Build architecture-independent files here. +binary-indep: build install +# We have nothing to do by default. + +# Build architecture-dependent files here. +binary-arch: build install + dh_testdir + dh_testroot + dh_installchangelogs + dh_install --sourcedir debian/tmp --list-missing +# dh_installmenu +# dh_installdebconf +# dh_installlogrotate +# dh_installemacsen +# dh_installpam +# dh_installmime +# dh_python +# dh_installinit +# dh_installcron +# dh_installinfo + dh_installman + dh_link + dh_strip --dbg-package=gstreamer0.10-plugins-bad-dbg + dh_compress + dh_fixperms + dh_perl + dh_makeshlibs + dh_installdeb + dh_shlibdeps + dh_gencontrol + dh_md5sums + dh_builddeb + +binary: binary-indep binary-arch +.PHONY: build clean binary-indep binary-arch binary install diff --git a/depcomp b/depcomp new file mode 100755 index 0000000..df8eea7 --- /dev/null +++ b/depcomp @@ -0,0 +1,630 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2009-04-28.21; # UTC + +# Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free +# Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try \`$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by `PROGRAMS ARGS'. + object Object file output by `PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputing dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u="sed s,\\\\\\\\,/,g" + depmode=msvisualcpp +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz +## The second -e expression handles DOS-style file names with drive letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the `deleted header file' problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. + tr ' ' ' +' < "$tmpdepfile" | +## Some versions of gcc put a space before the `:'. On the theory +## that the space means something, we add a space to the output as +## well. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like `#:fec' to the end of the + # dependency line. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \ + tr ' +' ' ' >> "$depfile" + echo >> "$depfile" + + # The second pass generates a dummy entry for each header file. + tr ' ' ' +' < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts `$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + # Each line is of the form `foo.o: dependent.h'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + # The sourcefile does not contain any dependencies, so just + # store a dummy comment line, to avoid errors with the Makefile + # "include basename.Plo" scheme. + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +icc) + # Intel's C compiler understands `-MD -MF file'. However on + # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c + # ICC 7.0 will fill foo.d with something like + # foo.o: sub/foo.c + # foo.o: sub/foo.h + # which is wrong. We want: + # sub/foo.o: sub/foo.c + # sub/foo.o: sub/foo.h + # sub/foo.c: + # sub/foo.h: + # ICC 7.1 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using \ : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" | + sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile" + # Add `dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in `foo.d' instead, so we check for that too. + # Subdirectories are respected. + dir=`echo "$object" | sed -e 's|/[^/]*$|/|'` + test "x$dir" = "x$object" && dir= + base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'` + + if test "$libtool" = yes; then + # With Tru64 cc, shared objects can also be used to make a + # static library. This mechanism is used in libtool 1.4 series to + # handle both shared and static libraries in a single compilation. + # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d. + # + # With libtool 1.5 this exception was removed, and libtool now + # generates 2 separate objects for the 2 libraries. These two + # compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4 + tmpdepfile2=$dir$base.o.d # libtool 1.5 + tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5 + tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.o.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + tmpdepfile4=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -eq 0; then : + else + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile" + # That's a tab and a space in the []. + sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile" + else + echo "#dummy" > "$depfile" + fi + rm -f "$tmpdepfile" + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for `:' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise. + "$@" $dashmflag | + sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + tr ' ' ' +' < "$tmpdepfile" | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + sed '1,2d' "$tmpdepfile" | tr ' ' ' +' | \ +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove `-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E | + sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' | + sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile" + echo " " >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC" +# time-stamp-end: "; # UTC" +# End: diff --git a/docs/Makefile.am b/docs/Makefile.am new file mode 100644 index 0000000..7af47d4 --- /dev/null +++ b/docs/Makefile.am @@ -0,0 +1,18 @@ +if ENABLE_PLUGIN_DOCS +PLUGINS_DOCS_DIRS = plugins +else +PLUGINS_DOCS_DIRS = +endif + +if ENABLE_GTK_DOC +GTK_DOC_DIRS = $(PLUGINS_DOCS_DIRS) +else +GTK_DOC_DIRS = +endif + +SUBDIRS = $(GTK_DOC_DIRS) +DIST_SUBDIRS = plugins + +EXTRA_DIST = \ + random/ChangeLog-0.8 \ + version.entities.in diff --git a/docs/Makefile.in b/docs/Makefile.in new file mode 100644 index 0000000..f85ed5e --- /dev/null +++ b/docs/Makefile.in @@ -0,0 +1,870 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = docs +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(srcdir)/version.entities.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = version.entities +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@ENABLE_PLUGIN_DOCS_FALSE@PLUGINS_DOCS_DIRS = +@ENABLE_PLUGIN_DOCS_TRUE@PLUGINS_DOCS_DIRS = plugins +@ENABLE_GTK_DOC_FALSE@GTK_DOC_DIRS = +@ENABLE_GTK_DOC_TRUE@GTK_DOC_DIRS = $(PLUGINS_DOCS_DIRS) +SUBDIRS = $(GTK_DOC_DIRS) +DIST_SUBDIRS = plugins +EXTRA_DIST = \ + random/ChangeLog-0.8 \ + version.entities.in + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +version.entities: $(top_builddir)/config.status $(srcdir)/version.entities.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/plugins/Makefile.am b/docs/plugins/Makefile.am new file mode 100644 index 0000000..7d83b0e --- /dev/null +++ b/docs/plugins/Makefile.am @@ -0,0 +1,237 @@ +GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj + +## Process this file with automake to produce Makefile.in + +# The name of the module, e.g. 'glib'. +#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@ +MODULE=gst-plugins-bad +DOC_MODULE=$(MODULE)-plugins + +# for upload-doc.mak +DOC=$(MODULE)-plugins +FORMATS=html +html: html-build.stamp +include $(top_srcdir)/common/upload-doc.mak + +# generated basefiles +#basefiles = \ +## $(DOC_MODULE).types \ +# $(DOC_MODULE)-sections.txt \ +# $(DOC_MODULE)-docs.sgml + +# ugly hack to make -unused.sgml work +#unused-build.stamp: +# BUILDDIR=`pwd` && \ +# cd $(srcdir)/tmpl && \ +# ln -sf gstreamer-libs-unused.sgml \ +# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml +# touch unused-build.stamp + +# these rules are added to create parallel docs using GST_MAJORMINOR +#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs% +# cp $< $@ + +#CLEANFILES = $(basefiles) + +# The top-level SGML file. Change it if you want. +DOC_MAIN_SGML_FILE=$(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(top_srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting functions and macros. +DOC_SOURCE_DIR = $(top_srcdir) + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS= + +# FIXME : +# there's something wrong with gstreamer-sections.txt not being in the dist +# maybe it doesn't resolve; we're adding it below for now +#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE) + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS=--sgml-mode --source-suffixes=c,h,cc,m + +# Extra options to supply to gtkdoc-fixref. +FIXXREF_OPTIONS=--extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \ + --extra-dir=$(GST_PREFIX)/share/gtk-doc/html \ + --extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html + +# Used for dependencies. +HFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.h $(DOC_SOURCE_DIR)/*/*/*.hh +CFILE_GLOB=$(DOC_SOURCE_DIR)/*/*/*.c $(DOC_SOURCE_DIR)/*/*/*.cc + +# this is a wingo addition +# thomasvs: another nice wingo addition would be an explanation on why +# this is useful ;) + +SCANOBJ_DEPS = \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la + +# Header files to ignore when scanning. +IGNORE_HFILES = +IGNORE_CFILES = + +# we add all .h files of elements that have signals/args we want +# sadly this also pulls in the private methods - maybe we should +# move those around in the source ? +# +# also, we should add some stuff here conditionally based on whether +# or not the plugin will actually build +# but I'm not sure about that - it might be this Just Works given that +# the registry won't have the element +# -> it just works (TM) (ensonic) + +# FIXME: not ported yet +# $(top_srcdir)/ext/gnomevfs/gstgnomevfssink.c + +# example code that needs to be converted to xml and placed in xml/ +EXAMPLE_CFILES = \ + $(top_srcdir)/ext/directfb/dfb-example.c + +EXTRA_HFILES = \ + $(top_srcdir)/ext/assrender/gstassrender.h \ + $(top_srcdir)/ext/amrwbenc/gstamrwbenc.h \ + $(top_srcdir)/ext/celt/gstceltdec.h \ + $(top_srcdir)/ext/celt/gstceltenc.h \ + $(top_srcdir)/ext/curl/gstcurlsink.h \ + $(top_srcdir)/ext/dc1394/gstdc1394.h \ + $(top_srcdir)/ext/directfb/dfbvideosink.h \ + $(top_srcdir)/ext/dts/gstdtsdec.h \ + $(top_srcdir)/ext/faac/gstfaac.h \ + $(top_srcdir)/ext/faad/gstfaad.h \ + $(top_srcdir)/ext/kate/gstkateenc.h \ + $(top_srcdir)/ext/kate/gstkatedec.h \ + $(top_srcdir)/ext/kate/gstkateparse.h \ + $(top_srcdir)/ext/kate/gstkatetag.h \ + $(top_srcdir)/ext/kate/gstkatetiger.h \ + $(top_srcdir)/ext/ladspa/gstladspa.h \ + $(top_srcdir)/ext/musicbrainz/gsttrm.h \ + $(top_srcdir)/ext/mimic/gstmimenc.h \ + $(top_srcdir)/ext/mimic/gstmimdec.h \ + $(top_srcdir)/ext/modplug/gstmodplug.h \ + $(top_srcdir)/ext/mpeg2enc/gstmpeg2enc.hh \ + $(top_srcdir)/ext/mplex/gstmplex.hh \ + $(top_srcdir)/ext/mythtv/gstmythtvsrc.h \ + $(top_srcdir)/ext/opencv/gstcvdilate.h \ + $(top_srcdir)/ext/opencv/gstcverode.h \ + $(top_srcdir)/ext/opencv/gstcvequalizehist.h \ + $(top_srcdir)/ext/opencv/gstcvlaplace.h \ + $(top_srcdir)/ext/opencv/gstcvsmooth.h \ + $(top_srcdir)/ext/opencv/gstcvsobel.h \ + $(top_srcdir)/ext/opencv/gstedgedetect.h \ + $(top_srcdir)/ext/opencv/gstfaceblur.h \ + $(top_srcdir)/ext/opencv/gstfacedetect.h \ + $(top_srcdir)/ext/opencv/gstpyramidsegment.h \ + $(top_srcdir)/ext/opencv/gsttemplatematch.h \ + $(top_srcdir)/ext/opencv/gsttextoverlay.h \ + $(top_srcdir)/ext/rsvg/gstrsvgdec.h \ + $(top_srcdir)/ext/rsvg/gstrsvgoverlay.h \ + $(top_srcdir)/ext/sdl/sdlaudiosink.h \ + $(top_srcdir)/ext/sdl/sdlvideosink.h \ + $(top_srcdir)/ext/timidity/gsttimidity.h \ + $(top_srcdir)/ext/timidity/gstwildmidi.h \ + $(top_srcdir)/ext/vp8/gstvp8enc.h \ + $(top_srcdir)/ext/vp8/gstvp8dec.h \ + $(top_srcdir)/ext/zbar/gstzbar.h \ + $(top_srcdir)/gst/aiff/aiffparse.h \ + $(top_srcdir)/gst/aiff/aiffmux.h \ + $(top_srcdir)/gst/autoconvert/gstautoconvert.h \ + $(top_srcdir)/gst/camerabin/gstcamerabin.h \ + $(top_srcdir)/gst/coloreffects/gstcoloreffects.h \ + $(top_srcdir)/gst/dataurisrc/gstdataurisrc.h \ + $(top_srcdir)/gst/dccp/gstdccpclientsink.h \ + $(top_srcdir)/gst/dccp/gstdccpclientsrc.h \ + $(top_srcdir)/gst/dccp/gstdccpserversink.h \ + $(top_srcdir)/gst/dccp/gstdccpserversrc.h \ + $(top_srcdir)/gst/debugutils/fpsdisplaysink.h \ + $(top_srcdir)/gst/dtmf/gstdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstdtmfdetect.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \ + $(top_srcdir)/gst/dvdspu/gstdvdspu.h \ + $(top_srcdir)/gst/festival/gstfestival.h \ + $(top_srcdir)/gst/freeze/gstfreeze.h \ + $(top_srcdir)/gst/gaudieffects/gstburn.h \ + $(top_srcdir)/gst/gaudieffects/gstchromium.h \ + $(top_srcdir)/gst/gaudieffects/gstdilate.h \ + $(top_srcdir)/gst/gaudieffects/gstdodge.h \ + $(top_srcdir)/gst/gaudieffects/gstexclusion.h \ + $(top_srcdir)/gst/gaudieffects/gstgaussblur.h \ + $(top_srcdir)/gst/gaudieffects/gstplugin.h \ + $(top_srcdir)/gst/gaudieffects/gstsolarize.h \ + $(top_srcdir)/gst/geometrictransform/gstbulge.h \ + $(top_srcdir)/gst/geometrictransform/gstcircle.h \ + $(top_srcdir)/gst/geometrictransform/gstdiffuse.h \ + $(top_srcdir)/gst/geometrictransform/gstfisheye.h \ + $(top_srcdir)/gst/geometrictransform/gstkaleidoscope.h \ + $(top_srcdir)/gst/geometrictransform/gstmarble.h \ + $(top_srcdir)/gst/geometrictransform/gstmirror.h \ + $(top_srcdir)/gst/geometrictransform/gstpinch.h \ + $(top_srcdir)/gst/geometrictransform/gstsphere.h \ + $(top_srcdir)/gst/geometrictransform/gstsquare.h \ + $(top_srcdir)/gst/geometrictransform/gststretch.h \ + $(top_srcdir)/gst/geometrictransform/gsttunnel.h \ + $(top_srcdir)/gst/geometrictransform/gsttwirl.h \ + $(top_srcdir)/gst/geometrictransform/gstwaterripple.h \ + $(top_srcdir)/gst/ivfparse/gstivfparse.h \ + $(top_srcdir)/gst/jpegformat/gstjpegparse.h \ + $(top_srcdir)/gst/legacyresample/gstlegacyresample.h \ + $(top_srcdir)/gst/liveadder/liveadder.h \ + $(top_srcdir)/gst/mxf/mxfdemux.h \ + $(top_srcdir)/gst/mxf/mxfmux.h \ + $(top_srcdir)/gst/nuvdemux/gstnuvdemux.h \ + $(top_srcdir)/gst/pcapparse/gstpcapparse.h \ + $(top_srcdir)/gst/rawparse/gstaudioparse.h \ + $(top_srcdir)/gst/rawparse/gstvideoparse.h \ + $(top_srcdir)/gst/rtpmux/gstrtpmux.h \ + $(top_srcdir)/gst/rtpmux/gstrtpdtmfmux.h \ + $(top_srcdir)/gst/scaletempo/gstscaletempo.h \ + $(top_srcdir)/gst/sdp/gstsdpdemux.h \ + $(top_srcdir)/gst/speed/gstspeed.h \ + $(top_srcdir)/gst/stereo/gststereo.h \ + $(top_srcdir)/gst/videomaxrate/videomaxrate.h \ + $(top_srcdir)/gst/videosignal/gstvideoanalyse.h \ + $(top_srcdir)/gst/videosignal/gstvideodetect.h \ + $(top_srcdir)/gst/videosignal/gstvideomark.h \ + $(top_srcdir)/sys/directdraw/gstdirectdrawsink.h \ + $(top_srcdir)/sys/dvb/gstdvbsrc.h \ + $(top_srcdir)/sys/shm/gstshmsink.h \ + $(top_srcdir)/sys/shm/gstshmsrc.h \ + $(top_srcdir)/gst-libs/gst/interfaces/photography.h + +# Images to copy into HTML directory. +HTML_IMAGES = camerabin.png + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +content_files = + +# Other files to distribute. +extra_files = + +# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib +# contains GtkObjects/GObjects and you want to document signals and properties. +GTKDOC_CFLAGS = -DGST_USE_UNSTABLE_API $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) -I$(top_builddir) +GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS) + +GTKDOC_CC=$(LIBTOOL) --tag=CC --mode=compile $(CC) +GTKDOC_LD=$(LIBTOOL) --tag=CC --mode=link $(CC) + +# If you need to override some of the declarations, place them in this file +# and uncomment this line. +#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt +DOC_OVERRIDES = + +include $(top_srcdir)/common/gtk-doc-plugins.mak + +SUBDIRS = + +FIGURES_SOURCEFILES = camerabin.dot +FIGURES_IMAGES = camerabin.png + +EXTRA_DIST += $(FIGURES_SOURCEFILES) + +.dot.png: + dot -Tpng $< -o$@ + +update-figures: $(FIGURES_IMAGES) diff --git a/docs/plugins/Makefile.in b/docs/plugins/Makefile.in new file mode 100644 index 0000000..764d069 --- /dev/null +++ b/docs/plugins/Makefile.in @@ -0,0 +1,1528 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# this snippet is to be included by both our docbook manuals +# and gtk-doc API references + +# it adds an upload target to each of these dir's Makefiles + +# each Makefile.am should define the following variables: +# - DOC: the base name of the documentation +# (faq, manual, pwg, gstreamer, gstreamer-libs) +# - FORMATS: the formats in which DOC is output +# (html ps pdf) + +# if you want to use it, make sure your $HOME/.ssh/config file contains the +# correct User entry for the Host entry for the DOC_SERVER + +# This is an include file specifically tuned for building documentation +# for GStreamer plug-ins +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/common/gtk-doc-plugins.mak \ + $(top_srcdir)/common/upload-doc.mak +subdir = docs/plugins +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DIST_SUBDIRS = $(SUBDIRS) +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +GST_DOC_SCANOBJ = $(top_srcdir)/common/gstdoc-scangobj + +# The name of the module, e.g. 'glib'. +#DOC_MODULE=gst-plugins-libs-@GST_MAJORMINOR@ +MODULE = gst-plugins-bad +DOC_MODULE = $(MODULE)-plugins + +# for upload-doc.mak +DOC = $(MODULE)-plugins +FORMATS = html + +# these variables define the location of the online docs +DOC_SERVER = gstreamer.freedesktop.org +DOC_BASE = /srv/gstreamer.freedesktop.org/www/data/doc +DOC_URL = $(DOC_SERVER):$(DOC_BASE) + +# generated basefiles +#basefiles = \ +# $(DOC_MODULE)-sections.txt \ +# $(DOC_MODULE)-docs.sgml + +# ugly hack to make -unused.sgml work +#unused-build.stamp: +# BUILDDIR=`pwd` && \ +# cd $(srcdir)/tmpl && \ +# ln -sf gstreamer-libs-unused.sgml \ +# $$BUILDDIR/tmpl/gstreamer-libs-@GST_MAJORMINOR@-unused.sgml +# touch unused-build.stamp + +# these rules are added to create parallel docs using GST_MAJORMINOR +#$(basefiles): gstreamer-libs-@GST_MAJORMINOR@%: gstreamer-libs% +# cp $< $@ + +#CLEANFILES = $(basefiles) + +# The top-level SGML file. Change it if you want. +DOC_MAIN_SGML_FILE = $(DOC_MODULE)-docs.sgml + +# The directory containing the source code. Relative to $(top_srcdir). +# gtk-doc will search all .c & .h files beneath here for inline comments +# documenting functions and macros. +DOC_SOURCE_DIR = $(top_srcdir) + +# Extra options to supply to gtkdoc-scan. +SCAN_OPTIONS = + +# FIXME : +# there's something wrong with gstreamer-sections.txt not being in the dist +# maybe it doesn't resolve; we're adding it below for now +#EXTRA_DIST = gstreamer.types.in gstreamer.hierarchy $(DOC_MODULE)-sections.txt gstreamer-sections.txt $(DOC_MAIN_SGML_FILE) + +# Extra options to supply to gtkdoc-mkdb. +MKDB_OPTIONS = --sgml-mode --source-suffixes=c,h,cc,m + +# Extra options to supply to gtkdoc-fixref. +FIXXREF_OPTIONS = --extra-dir=$(GLIB_PREFIX)/share/gtk-doc/html \ + --extra-dir=$(GST_PREFIX)/share/gtk-doc/html \ + --extra-dir=$(GSTPB_PREFIX)/share/gtk-doc/html + + +# Used for dependencies. +HFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.h $(DOC_SOURCE_DIR)/*/*/*.hh +CFILE_GLOB = $(DOC_SOURCE_DIR)/*/*/*.c $(DOC_SOURCE_DIR)/*/*/*.cc + +# this is a wingo addition +# thomasvs: another nice wingo addition would be an explanation on why +# this is useful ;) +SCANOBJ_DEPS = \ + $(top_builddir)/gst-libs/gst/interfaces/libgstphotography-@GST_MAJORMINOR@.la + + +# Header files to ignore when scanning. +IGNORE_HFILES = +IGNORE_CFILES = + +# we add all .h files of elements that have signals/args we want +# sadly this also pulls in the private methods - maybe we should +# move those around in the source ? +# +# also, we should add some stuff here conditionally based on whether +# or not the plugin will actually build +# but I'm not sure about that - it might be this Just Works given that +# the registry won't have the element +# -> it just works (TM) (ensonic) + +# FIXME: not ported yet +# $(top_srcdir)/ext/gnomevfs/gstgnomevfssink.c + +# example code that needs to be converted to xml and placed in xml/ +EXAMPLE_CFILES = \ + $(top_srcdir)/ext/directfb/dfb-example.c + +EXTRA_HFILES = \ + $(top_srcdir)/ext/assrender/gstassrender.h \ + $(top_srcdir)/ext/amrwbenc/gstamrwbenc.h \ + $(top_srcdir)/ext/celt/gstceltdec.h \ + $(top_srcdir)/ext/celt/gstceltenc.h \ + $(top_srcdir)/ext/curl/gstcurlsink.h \ + $(top_srcdir)/ext/dc1394/gstdc1394.h \ + $(top_srcdir)/ext/directfb/dfbvideosink.h \ + $(top_srcdir)/ext/dts/gstdtsdec.h \ + $(top_srcdir)/ext/faac/gstfaac.h \ + $(top_srcdir)/ext/faad/gstfaad.h \ + $(top_srcdir)/ext/kate/gstkateenc.h \ + $(top_srcdir)/ext/kate/gstkatedec.h \ + $(top_srcdir)/ext/kate/gstkateparse.h \ + $(top_srcdir)/ext/kate/gstkatetag.h \ + $(top_srcdir)/ext/kate/gstkatetiger.h \ + $(top_srcdir)/ext/ladspa/gstladspa.h \ + $(top_srcdir)/ext/musicbrainz/gsttrm.h \ + $(top_srcdir)/ext/mimic/gstmimenc.h \ + $(top_srcdir)/ext/mimic/gstmimdec.h \ + $(top_srcdir)/ext/modplug/gstmodplug.h \ + $(top_srcdir)/ext/mpeg2enc/gstmpeg2enc.hh \ + $(top_srcdir)/ext/mplex/gstmplex.hh \ + $(top_srcdir)/ext/mythtv/gstmythtvsrc.h \ + $(top_srcdir)/ext/opencv/gstcvdilate.h \ + $(top_srcdir)/ext/opencv/gstcverode.h \ + $(top_srcdir)/ext/opencv/gstcvequalizehist.h \ + $(top_srcdir)/ext/opencv/gstcvlaplace.h \ + $(top_srcdir)/ext/opencv/gstcvsmooth.h \ + $(top_srcdir)/ext/opencv/gstcvsobel.h \ + $(top_srcdir)/ext/opencv/gstedgedetect.h \ + $(top_srcdir)/ext/opencv/gstfaceblur.h \ + $(top_srcdir)/ext/opencv/gstfacedetect.h \ + $(top_srcdir)/ext/opencv/gstpyramidsegment.h \ + $(top_srcdir)/ext/opencv/gsttemplatematch.h \ + $(top_srcdir)/ext/opencv/gsttextoverlay.h \ + $(top_srcdir)/ext/rsvg/gstrsvgdec.h \ + $(top_srcdir)/ext/rsvg/gstrsvgoverlay.h \ + $(top_srcdir)/ext/sdl/sdlaudiosink.h \ + $(top_srcdir)/ext/sdl/sdlvideosink.h \ + $(top_srcdir)/ext/timidity/gsttimidity.h \ + $(top_srcdir)/ext/timidity/gstwildmidi.h \ + $(top_srcdir)/ext/vp8/gstvp8enc.h \ + $(top_srcdir)/ext/vp8/gstvp8dec.h \ + $(top_srcdir)/ext/zbar/gstzbar.h \ + $(top_srcdir)/gst/aiff/aiffparse.h \ + $(top_srcdir)/gst/aiff/aiffmux.h \ + $(top_srcdir)/gst/autoconvert/gstautoconvert.h \ + $(top_srcdir)/gst/camerabin/gstcamerabin.h \ + $(top_srcdir)/gst/coloreffects/gstcoloreffects.h \ + $(top_srcdir)/gst/dataurisrc/gstdataurisrc.h \ + $(top_srcdir)/gst/dccp/gstdccpclientsink.h \ + $(top_srcdir)/gst/dccp/gstdccpclientsrc.h \ + $(top_srcdir)/gst/dccp/gstdccpserversink.h \ + $(top_srcdir)/gst/dccp/gstdccpserversrc.h \ + $(top_srcdir)/gst/debugutils/fpsdisplaysink.h \ + $(top_srcdir)/gst/dtmf/gstdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstdtmfdetect.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfsrc.h \ + $(top_srcdir)/gst/dtmf/gstrtpdtmfdepay.h \ + $(top_srcdir)/gst/dvdspu/gstdvdspu.h \ + $(top_srcdir)/gst/festival/gstfestival.h \ + $(top_srcdir)/gst/freeze/gstfreeze.h \ + $(top_srcdir)/gst/gaudieffects/gstburn.h \ + $(top_srcdir)/gst/gaudieffects/gstchromium.h \ + $(top_srcdir)/gst/gaudieffects/gstdilate.h \ + $(top_srcdir)/gst/gaudieffects/gstdodge.h \ + $(top_srcdir)/gst/gaudieffects/gstexclusion.h \ + $(top_srcdir)/gst/gaudieffects/gstgaussblur.h \ + $(top_srcdir)/gst/gaudieffects/gstplugin.h \ + $(top_srcdir)/gst/gaudieffects/gstsolarize.h \ + $(top_srcdir)/gst/geometrictransform/gstbulge.h \ + $(top_srcdir)/gst/geometrictransform/gstcircle.h \ + $(top_srcdir)/gst/geometrictransform/gstdiffuse.h \ + $(top_srcdir)/gst/geometrictransform/gstfisheye.h \ + $(top_srcdir)/gst/geometrictransform/gstkaleidoscope.h \ + $(top_srcdir)/gst/geometrictransform/gstmarble.h \ + $(top_srcdir)/gst/geometrictransform/gstmirror.h \ + $(top_srcdir)/gst/geometrictransform/gstpinch.h \ + $(top_srcdir)/gst/geometrictransform/gstsphere.h \ + $(top_srcdir)/gst/geometrictransform/gstsquare.h \ + $(top_srcdir)/gst/geometrictransform/gststretch.h \ + $(top_srcdir)/gst/geometrictransform/gsttunnel.h \ + $(top_srcdir)/gst/geometrictransform/gsttwirl.h \ + $(top_srcdir)/gst/geometrictransform/gstwaterripple.h \ + $(top_srcdir)/gst/ivfparse/gstivfparse.h \ + $(top_srcdir)/gst/jpegformat/gstjpegparse.h \ + $(top_srcdir)/gst/legacyresample/gstlegacyresample.h \ + $(top_srcdir)/gst/liveadder/liveadder.h \ + $(top_srcdir)/gst/mxf/mxfdemux.h \ + $(top_srcdir)/gst/mxf/mxfmux.h \ + $(top_srcdir)/gst/nuvdemux/gstnuvdemux.h \ + $(top_srcdir)/gst/pcapparse/gstpcapparse.h \ + $(top_srcdir)/gst/rawparse/gstaudioparse.h \ + $(top_srcdir)/gst/rawparse/gstvideoparse.h \ + $(top_srcdir)/gst/rtpmux/gstrtpmux.h \ + $(top_srcdir)/gst/rtpmux/gstrtpdtmfmux.h \ + $(top_srcdir)/gst/scaletempo/gstscaletempo.h \ + $(top_srcdir)/gst/sdp/gstsdpdemux.h \ + $(top_srcdir)/gst/speed/gstspeed.h \ + $(top_srcdir)/gst/stereo/gststereo.h \ + $(top_srcdir)/gst/videomaxrate/videomaxrate.h \ + $(top_srcdir)/gst/videosignal/gstvideoanalyse.h \ + $(top_srcdir)/gst/videosignal/gstvideodetect.h \ + $(top_srcdir)/gst/videosignal/gstvideomark.h \ + $(top_srcdir)/sys/directdraw/gstdirectdrawsink.h \ + $(top_srcdir)/sys/dvb/gstdvbsrc.h \ + $(top_srcdir)/sys/shm/gstshmsink.h \ + $(top_srcdir)/sys/shm/gstshmsrc.h \ + $(top_srcdir)/gst-libs/gst/interfaces/photography.h + + +# Images to copy into HTML directory. +HTML_IMAGES = camerabin.png + +# Extra SGML files that are included by $(DOC_MAIN_SGML_FILE). +content_files = + +# Other files to distribute. +extra_files = + +# CFLAGS and LDFLAGS for compiling scan program. Only needed if your app/lib +# contains GtkObjects/GObjects and you want to document signals and properties. +GTKDOC_CFLAGS = -DGST_USE_UNSTABLE_API $(GST_PLUGINS_BAD_CFLAGS) $(GST_BASE_CFLAGS) -I$(top_builddir) +GTKDOC_LIBS = $(SCANOBJ_DEPS) $(GST_BASE_LIBS) +GTKDOC_CC = $(LIBTOOL) --tag=CC --mode=compile $(CC) +GTKDOC_LD = $(LIBTOOL) --tag=CC --mode=link $(CC) + +# If you need to override some of the declarations, place them in this file +# and uncomment this line. +#DOC_OVERRIDES = $(DOC_MODULE)-overrides.txt +DOC_OVERRIDES = + +# We set GPATH here; this gives us semantics for GNU make +# which are more like other make's VPATH, when it comes to +# whether a source that is a target of one rule is then +# searched for in VPATH/GPATH. +# +GPATH = $(srcdir) + +# thomas: make docs parallel installable +TARGET_DIR = $(HTML_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@ +MAINTAINER_DOC_STAMPS = \ + scanobj-build.stamp + +EXTRA_DIST = $(MAINTAINER_DOC_STAMPS) $(srcdir)/inspect/*.xml \ + $(SCANOBJ_FILES) $(content_files) $(extra_files) \ + $(HTML_IMAGES) $(DOC_MAIN_SGML_FILE) $(DOC_OVERRIDES) \ + $(DOC_MODULE)-sections.txt $(FIGURES_SOURCEFILES) + +# we don't add scanobj-build.stamp here since they are built manually by docs +# maintainers and result is commited to git +DOC_STAMPS = \ + scan-build.stamp \ + tmpl-build.stamp \ + sgml-build.stamp \ + html-build.stamp \ + scan.stamp \ + tmpl.stamp \ + sgml.stamp \ + html.stamp + + +# files generated/updated by gtkdoc-scangobj +SCANOBJ_FILES = \ + $(DOC_MODULE).signals \ + $(DOC_MODULE).hierarchy \ + $(DOC_MODULE).interfaces \ + $(DOC_MODULE).prerequisites \ + $(DOC_MODULE).types \ + $(DOC_MODULE).args + +SCANOBJ_FILES_O = \ + .libs/$(DOC_MODULE)-scan.o + + +# files generated/updated by gtkdoc-scan +SCAN_FILES = \ + $(DOC_MODULE)-sections.txt \ + $(DOC_MODULE)-overrides.txt \ + $(DOC_MODULE)-decl.txt \ + $(DOC_MODULE)-decl-list.txt + +REPORT_FILES = \ + $(DOC_MODULE)-undocumented.txt \ + $(DOC_MODULE)-undeclared.txt \ + $(DOC_MODULE)-unused.txt + + +# FC3 seems to need -scan.c to be part of CLEANFILES for distcheck +# no idea why FC4 can do without +CLEANFILES = \ + $(SCANOBJ_FILES_O) \ + $(DOC_MODULE)-scan.c \ + $(REPORT_FILES) \ + $(DOC_STAMPS) \ + inspect-registry.xml + +INSPECT_DIR = inspect + +### inspect GStreamer plug-ins; done by documentation maintainer ### + +# only look at the plugins in this module when building inspect .xml stuff +@ENABLE_GTK_DOC_TRUE@INSPECT_REGISTRY = $(top_builddir)/docs/plugins/inspect-registry.xml +@ENABLE_GTK_DOC_TRUE@INSPECT_ENVIRONMENT = \ +@ENABLE_GTK_DOC_TRUE@ LC_ALL=C \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_SYSTEM_PATH= \ +@ENABLE_GTK_DOC_TRUE@ GST_PLUGIN_PATH=$(top_builddir)/gst:$(top_builddir)/sys:$(top_builddir)/ext:$(top_builddir)/plugins:$(top_builddir)/src:$(top_builddir)/gnl \ +@ENABLE_GTK_DOC_TRUE@ GST_REGISTRY=$(INSPECT_REGISTRY) \ +@ENABLE_GTK_DOC_TRUE@ PKG_CONFIG_PATH="$(GST_PKG_CONFIG_PATH)" \ +@ENABLE_GTK_DOC_TRUE@ $(INSPECT_EXTRA_ENVIRONMENT) + +MAINTAINERCLEANFILES = $(MAINTAINER_DOC_STAMPS) + +# wildcard is apparently not portable to other makes, hence the use of find +inspect_files = $(shell find $(srcdir)/$(INSPECT_DIR) -name '*.xml') +SUBDIRS = +FIGURES_SOURCEFILES = camerabin.dot +FIGURES_IMAGES = camerabin.png +all: all-recursive + +.SUFFIXES: +.SUFFIXES: .dot .png +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/upload-doc.mak $(top_srcdir)/common/gtk-doc-plugins.mak $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu docs/plugins/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu docs/plugins/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: check-recursive +all-am: Makefile all-local +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(MAINTAINERCLEANFILES)" || rm -f $(MAINTAINERCLEANFILES) +clean: clean-recursive + +clean-am: clean-generic clean-libtool clean-local mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-local \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-data-local + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-local + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am all-local check check-am clean clean-generic \ + clean-libtool clean-local ctags ctags-recursive dist-hook \ + distclean distclean-generic distclean-libtool distclean-local \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am \ + install-data-local install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am uninstall-local + +html: html-build.stamp + +upload: $(FORMATS) + @if echo $(FORMATS) | grep html > /dev/null; then \ + echo "Preparing docs for upload (rebasing cross-references) ..." ; \ + if test x$(builddir) != x$(srcdir); then \ + echo "make upload can only be used if srcdir == builddir"; \ + exit 1; \ + fi; \ + # gtkdoc-rebase sometimes gets confused, so reset everything to \ + # local links before rebasing to online links \ + gtkdoc-rebase --html-dir=$(builddir)/html 2>/dev/null 2>/dev/null ; \ + rebase=`gtkdoc-rebase --verbose --online --html-dir=$(builddir)/html` ; \ + echo "$$rebase" | grep -e "On-*line"; \ + for req in glib gobject gstreamer gstreamer-libs gst-plugins-base-libs; do \ + if ! ( echo "$$rebase" | grep -i -e "On-*line.*/$$req/" ); then \ + echo "===============================================================================" ; \ + echo " Could not determine online location for $$req docs. Cross-referencing will be " ; \ + echo " broken, so not uploading. Make sure the library's gtk-doc documentation is " ; \ + echo " installed somewhere in /usr/share/gtk-doc. " ; \ + echo "===============================================================================" ; \ + exit 1; \ + fi; \ + done; \ + export SRC="$$SRC html"; \ + fi; \ + if echo $(FORMATS) | grep ps > /dev/null; then export SRC="$$SRC $(DOC).ps"; fi; \ + if echo $(FORMATS) | grep pdf > /dev/null; then export SRC="$$SRC $(DOC).pdf"; fi; \ + \ + # upload releases to both 0.10.X/ and head/ subdirectories \ + if test "x$(PACKAGE_VERSION_NANO)" = x0; then \ + export DIR=$(DOC_BASE)/gstreamer/$(VERSION)/$(DOC); \ + echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) mkdir -p $$DIR; \ + rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ + fi; \ + \ + export DIR=$(DOC_BASE)/gstreamer/head/$(DOC); \ + echo Uploading $$SRC to $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) mkdir -p $$DIR; \ + rsync -rv -e ssh --delete $$SRC $(DOC_SERVER):$$DIR; \ + ssh $(DOC_SERVER) chmod -R g+w $$DIR; \ + \ + if echo $(FORMATS) | grep html > /dev/null; then \ + echo "Un-preparing docs for upload (rebasing cross-references) ..." ; \ + gtkdoc-rebase --html-dir=$(builddir)/html ; \ + fi; \ + echo Done + +help: + @echo + @echo "If you are a doc maintainer, run 'make update' to update" + @echo "the documentation files maintained in git" + @echo + @echo Other useful make targets: + @echo + @echo check-inspected-versions: make sure the inspected plugin info + @echo is up to date before a release + @echo + +# update the stuff maintained by doc maintainers +update: + $(MAKE) scanobj-update + $(MAKE) check-outdated-docs + +@ENABLE_GTK_DOC_TRUE@all-local: html-build.stamp + +# update the element and plugin XML descriptions; store in inspect/ +@ENABLE_GTK_DOC_TRUE@inspect: +@ENABLE_GTK_DOC_TRUE@ @-mkdir -p $(INSPECT_DIR) + +#### scan gobjects; done by documentation maintainer #### +@ENABLE_GTK_DOC_TRUE@scanobj-update: +@ENABLE_GTK_DOC_TRUE@ -rm scanobj-build.stamp +@ENABLE_GTK_DOC_TRUE@ $(MAKE) scanobj-build.stamp + +# TODO: finish elite script that updates the output files of this step +# instead of rewriting them, so that multiple maintainers can generate +# a collective set of args and signals +@ENABLE_GTK_DOC_TRUE@scanobj-build.stamp: $(SCANOBJ_DEPS) $(basefiles) inspect +@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning GObjects ***' +@ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ +@ENABLE_GTK_DOC_TRUE@ do \ +@ENABLE_GTK_DOC_TRUE@ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ $(INSPECT_ENVIRONMENT) \ +@ENABLE_GTK_DOC_TRUE@ CC="$(GTKDOC_CC)" LD="$(GTKDOC_LD)" \ +@ENABLE_GTK_DOC_TRUE@ CFLAGS="$(GTKDOC_CFLAGS) $(CFLAGS) $(WARNING_CFLAGS)" \ +@ENABLE_GTK_DOC_TRUE@ LDFLAGS="$(GTKDOC_LIBS) $(LDFLAGS)" \ +@ENABLE_GTK_DOC_TRUE@ $(GST_DOC_SCANOBJ) --type-init-func="gst_init(NULL,NULL)" \ +@ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) --source=$(PACKAGE) --inspect-dir=$(INSPECT_DIR) && \ +@ENABLE_GTK_DOC_TRUE@ $(PYTHON) \ +@ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/scangobj-merge.py $(DOC_MODULE); \ +@ENABLE_GTK_DOC_TRUE@ if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES); \ +@ENABLE_GTK_DOC_TRUE@ do \ +@ENABLE_GTK_DOC_TRUE@ cmp -s ./$$f $(srcdir)/$$f || cp ./$$f $(srcdir)/ ; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi; \ +@ENABLE_GTK_DOC_TRUE@ touch scanobj-build.stamp + +@ENABLE_GTK_DOC_TRUE@$(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(SCANOBJ_FILES_O): scan-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +### scan headers; done on every build ### +@ENABLE_GTK_DOC_TRUE@scan-build.stamp: $(HFILE_GLOB) $(EXTRA_HFILES) $(basefiles) scanobj-build.stamp +@ENABLE_GTK_DOC_TRUE@ @echo '*** Scanning header files ***' +@ENABLE_GTK_DOC_TRUE@ gtkdoc-scan \ +@ENABLE_GTK_DOC_TRUE@ $(SCAN_OPTIONS) $(EXTRA_HFILES) \ +@ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ +@ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ +@ENABLE_GTK_DOC_TRUE@ --ignore-headers="$(IGNORE_HFILES)"; \ +@ENABLE_GTK_DOC_TRUE@ touch scan-build.stamp + +#### update templates; done on every build #### + +### FIXME: make this error out again when docs are fixed for 0.X +# in a non-srcdir build, we need to copy files from the previous step +# and the files from previous runs of this step +@ENABLE_GTK_DOC_TRUE@tmpl-build.stamp: $(DOC_MODULE)-decl.txt $(SCANOBJ_FILES) $(DOC_MODULE)-sections.txt $(DOC_OVERRIDES) +@ENABLE_GTK_DOC_TRUE@ @echo '*** Rebuilding template files ***' +@ENABLE_GTK_DOC_TRUE@ @if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ for f in $(SCANOBJ_FILES) $(SCAN_FILES); \ +@ENABLE_GTK_DOC_TRUE@ do \ +@ENABLE_GTK_DOC_TRUE@ if test -e $(srcdir)/$$f; then cp -u $(srcdir)/$$f . ; fi; \ +@ENABLE_GTK_DOC_TRUE@ done; \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mktmpl --module=$(DOC_MODULE) | tee tmpl-build.log +@ENABLE_GTK_DOC_TRUE@ $(PYTHON) \ +@ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/mangle-tmpl.py $(srcdir)/$(INSPECT_DIR) tmpl +@ENABLE_GTK_DOC_TRUE@ @rm -f tmpl-build.log +@ENABLE_GTK_DOC_TRUE@ touch tmpl-build.stamp + +@ENABLE_GTK_DOC_TRUE@tmpl.stamp: tmpl-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +#### build xml; done on every build #### + +### FIXME: make this error out again when docs are fixed for 0.9 +@ENABLE_GTK_DOC_TRUE@sgml-build.stamp: tmpl.stamp scan-build.stamp $(CFILE_GLOB) $(top_srcdir)/common/plugins.xsl $(expand_content_files) +@ENABLE_GTK_DOC_TRUE@ @echo '*** Building XML ***' +@ENABLE_GTK_DOC_TRUE@ @-mkdir -p xml +@ENABLE_GTK_DOC_TRUE@ @for a in $(srcdir)/$(INSPECT_DIR)/*.xml; do \ +@ENABLE_GTK_DOC_TRUE@ xsltproc --stringparam module $(MODULE) \ +@ENABLE_GTK_DOC_TRUE@ $(top_srcdir)/common/plugins.xsl $$a > xml/`basename $$a`; done +@ENABLE_GTK_DOC_TRUE@ @for f in $(EXAMPLE_CFILES); do \ +@ENABLE_GTK_DOC_TRUE@ $(PYTHON) $(top_srcdir)/common/c-to-xml.py $$f > xml/element-`basename $$f .c`.xml; done +@ENABLE_GTK_DOC_TRUE@ gtkdoc-mkdb \ +@ENABLE_GTK_DOC_TRUE@ --module=$(DOC_MODULE) \ +@ENABLE_GTK_DOC_TRUE@ --source-dir=$(DOC_SOURCE_DIR) \ +@ENABLE_GTK_DOC_TRUE@ --expand-content-files="$(expand_content_files)" \ +@ENABLE_GTK_DOC_TRUE@ --main-sgml-file=$(srcdir)/$(DOC_MAIN_SGML_FILE) \ +@ENABLE_GTK_DOC_TRUE@ --output-format=xml \ +@ENABLE_GTK_DOC_TRUE@ --ignore-files="$(IGNORE_HFILES) $(IGNORE_CFILES)" \ +@ENABLE_GTK_DOC_TRUE@ $(MKDB_OPTIONS) \ +@ENABLE_GTK_DOC_TRUE@ | tee sgml-build.log +@ENABLE_GTK_DOC_TRUE@ @if grep "WARNING:" sgml-build.log > /dev/null; then true; fi # exit 1; fi +@ENABLE_GTK_DOC_TRUE@ cp ../version.entities xml +@ENABLE_GTK_DOC_TRUE@ rm sgml-build.log +@ENABLE_GTK_DOC_TRUE@ touch sgml-build.stamp + +@ENABLE_GTK_DOC_TRUE@sgml.stamp: sgml-build.stamp +@ENABLE_GTK_DOC_TRUE@ @true + +#### build html; done on every step #### + +@ENABLE_GTK_DOC_TRUE@html-build.stamp: sgml.stamp $(DOC_MAIN_SGML_FILE) $(content_files) +@ENABLE_GTK_DOC_TRUE@ @echo '*** Building HTML ***' +@ENABLE_GTK_DOC_TRUE@ if test -d html; then rm -rf html; fi +@ENABLE_GTK_DOC_TRUE@ mkdir html +@ENABLE_GTK_DOC_TRUE@ cp $(srcdir)/$(DOC_MAIN_SGML_FILE) html +@ENABLE_GTK_DOC_TRUE@ @for f in $(content_files); do cp $(srcdir)/$$f html; done +@ENABLE_GTK_DOC_TRUE@ cp -pr xml html +@ENABLE_GTK_DOC_TRUE@ cp ../version.entities html +@ENABLE_GTK_DOC_TRUE@ cd html && gtkdoc-mkhtml $(DOC_MODULE) $(DOC_MAIN_SGML_FILE) +@ENABLE_GTK_DOC_TRUE@ mv html/index.sgml html/index.sgml.bak +@ENABLE_GTK_DOC_TRUE@ $(SED) "s/ href=\"$(DOC_MODULE)\// href=\"$(DOC_MODULE)-@GST_MAJORMINOR@\//g" html/index.sgml.bak >html/index.sgml +@ENABLE_GTK_DOC_TRUE@ rm -f html/index.sgml.bak +@ENABLE_GTK_DOC_TRUE@ rm -f html/$(DOC_MAIN_SGML_FILE) +@ENABLE_GTK_DOC_TRUE@ rm -rf html/xml +@ENABLE_GTK_DOC_TRUE@ rm -f html/version.entities +@ENABLE_GTK_DOC_TRUE@ test "x$(HTML_IMAGES)" = "x" || for i in "" $(HTML_IMAGES) ; do \ +@ENABLE_GTK_DOC_TRUE@ if test "$$i" != ""; then cp $(srcdir)/$$i html ; fi; done +@ENABLE_GTK_DOC_TRUE@ @echo '-- Fixing Crossreferences' +@ENABLE_GTK_DOC_TRUE@ gtkdoc-fixxref --module=$(DOC_MODULE) --module-dir=html --html-dir=$(HTML_DIR) $(FIXXREF_OPTIONS) +@ENABLE_GTK_DOC_TRUE@ touch html-build.stamp + +@ENABLE_GTK_DOC_TRUE@clean-local-gtkdoc: +@ENABLE_GTK_DOC_TRUE@ rm -rf xml tmpl html +# clean files copied for nonsrcdir templates build +@ENABLE_GTK_DOC_TRUE@ if test x"$(srcdir)" != x. ; then \ +@ENABLE_GTK_DOC_TRUE@ rm -rf $(SCANOBJ_FILES) $(SCAN_FILES) $(REPORT_FILES) \ +@ENABLE_GTK_DOC_TRUE@ $(MAINTAINER_DOC_STAMPS); \ +@ENABLE_GTK_DOC_TRUE@ fi +@ENABLE_GTK_DOC_FALSE@all-local: +@ENABLE_GTK_DOC_FALSE@clean-local-gtkdoc: + +clean-local: clean-local-gtkdoc + rm -f *~ *.bak + rm -rf .libs + +distclean-local: + rm -f $(REPORT_FILES) \ + $(DOC_MODULE)-decl-list.txt $(DOC_MODULE)-decl.txt + rm -rf tmpl/*.sgml.bak + rm -f $(DOC_MODULE).hierarchy + rm -f *.stamp || true + if test "$(abs_srcdir)" != "$(abs_builddir)" ; then \ + rm -f $(DOC_MODULE)-docs.sgml ; \ + rm -f $(DOC_MODULE).types ; \ + rm -f $(DOC_MODULE).interfaces ; \ + rm -f $(DOC_MODULE)-overrides.txt ; \ + rm -f $(DOC_MODULE).prerequisites ; \ + rm -f $(DOC_MODULE)-sections.txt ; \ + rm -rf tmpl/*.sgml ; \ + rm -rf $(INSPECT_DIR); \ + fi + rm -rf *.o + +# thomas: make docs parallel installable; devhelp requires majorminor too +install-data-local: + (installfiles=`echo $(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css`; \ + if test "$$installfiles" = '$(builddir)/html/*.sgml $(builddir)/html/*.html $(builddir)/html/*.png $(builddir)/html/*.css'; \ + then echo '-- Nothing to install' ; \ + else \ + $(mkinstalldirs) $(DESTDIR)$(TARGET_DIR); \ + for i in $$installfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + pngfiles=`echo ./html/*.png`; \ + if test "$$pngfiles" != './html/*.png'; then \ + for i in $$pngfiles; do \ + echo '-- Installing '$$i ; \ + $(INSTALL_DATA) $$i $(DESTDIR)$(TARGET_DIR); \ + done; \ + fi; \ + echo '-- Installing $(builddir)/html/$(DOC_MODULE).devhelp' ; \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp; \ + if test -e $(builddir)/html/$(DOC_MODULE).devhelp2; then \ + $(INSTALL_DATA) $(builddir)/html/$(DOC_MODULE).devhelp2 \ + $(DESTDIR)$(TARGET_DIR)/$(DOC_MODULE)-@GST_MAJORMINOR@.devhelp2; \ + fi; \ + (which gtkdoc-rebase >/dev/null && \ + gtkdoc-rebase --relative --dest-dir=$(DESTDIR) --html-dir=$(DESTDIR)$(TARGET_DIR)) || true ; \ + fi) +uninstall-local: + if test -d $(DESTDIR)$(TARGET_DIR); then \ + rm -rf $(DESTDIR)$(TARGET_DIR)/*; \ + rmdir -p $(DESTDIR)$(TARGET_DIR) 2>/dev/null || true; \ + else \ + echo '-- Nothing to uninstall' ; \ + fi; + +# +# Checks +# +@ENABLE_GTK_DOC_TRUE@check-hierarchy: $(DOC_MODULE).hierarchy +@ENABLE_GTK_DOC_TRUE@ @if grep ' ' $(DOC_MODULE).hierarchy; then \ +@ENABLE_GTK_DOC_TRUE@ echo "$(DOC_MODULE).hierarchy contains tabs, please fix"; \ +@ENABLE_GTK_DOC_TRUE@ /bin/false; \ +@ENABLE_GTK_DOC_TRUE@ fi + +@ENABLE_GTK_DOC_TRUE@check: check-hierarchy + +check-inspected-versions: + @echo Checking plugin versions of inspected plugin data ...; \ + fail=0 ; \ + for each in $(inspect_files) ; do \ + if (grep -H '' $$each | grep -v '$(VERSION)'); then \ + echo $$each should be fixed to say version $(VERSION) or be removed ; \ + echo "sed -i -e 's//$(VERSION)<\/version>/'" $$each; \ + echo ; \ + fail=1; \ + fi ; \ + done ; \ + exit $$fail + +check-outdated-docs: + $(AM_V_GEN)echo Checking for outdated plugin inspect data ...; \ + fail=0 ; \ + if [ -d $(top_srcdir)/.git/ ]; then \ + files=`find $(srcdir)/inspect/ -name '*xml'`; \ + for f in $$files; do \ + ver=`grep '$(PACKAGE_VERSION)' $$f`; \ + if test "x$$ver" = "x"; then \ + plugin=`echo $$f | sed -e 's/^.*plugin-//' -e 's/.xml//'`; \ + # echo "Checking $$plugin $$f"; \ + pushd "$(top_srcdir)" >/dev/null; \ + pinit=`git grep -A3 GST_PLUGIN_DEFINE -- ext/ gst/ sys/ | grep "\"$$plugin\""`; \ + popd >/dev/null; \ + # echo "[$$pinit]"; \ + if test "x$$pinit" = "x"; then \ + printf " **** outdated docs for plugin %-15s: %s\n" $$plugin $$f; \ + fail=1; \ + fi; \ + fi; \ + done; \ + fi ; \ + exit $$fail + +# +# Require gtk-doc when making dist +# +@ENABLE_GTK_DOC_TRUE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@dist-check-gtkdoc: +@ENABLE_GTK_DOC_FALSE@ @echo "*** gtk-doc must be installed and enabled in order to make dist" +@ENABLE_GTK_DOC_FALSE@ @false + +# FIXME: decide whether we want to dist generated html or not +# also this only works, if the project has been build before +# we could dist html only if its there, but that might lead to missing html in +# tarballs +dist-hook: dist-check-gtkdoc dist-hook-local + mkdir $(distdir)/html + cp html/* $(distdir)/html + -cp $(srcdir)/$(DOC_MODULE).types $(distdir)/ + -cp $(srcdir)/$(DOC_MODULE)-sections.txt $(distdir)/ + cd $(distdir) && rm -f $(DISTCLEANFILES) + -gtkdoc-rebase --online --relative --html-dir=$(distdir)/html + +.PHONY : dist-hook-local docs check-outdated-docs inspect + +# avoid spurious build errors when distchecking with -jN +.NOTPARALLEL: + +.dot.png: + dot -Tpng $< -o$@ + +update-figures: $(FIGURES_IMAGES) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/docs/plugins/camerabin.dot b/docs/plugins/camerabin.dot new file mode 100644 index 0000000..a3fc2d5 --- /dev/null +++ b/docs/plugins/camerabin.dot @@ -0,0 +1,23 @@ +/* dot -Tpng camerabin.dot -o camerabin.png */ + +digraph camera { + rankdir=LR; + fontname="Bitstream Vera Sans"; + fontsize="8"; + labelloc=t; + nodesep=.15; + label="Camera Pipeline"; + node [style=filled, fillcolor="#eeeeee", shape=box, fontsize="7", fontname="Bitstream Vera Sans"]; + edge [labelfontsize="7", fontsize="7", labelfontname="Bitstream Vera Sans", fontname="Bitstream Vera Sans"]; + + view_finder [ label="view finder" ]; + image_capture [ label="image capture" ]; + video_capture [ label="video capture" ]; + + capture -> view_finder; + capture -> image_capture; + capture -> video_capture; + image_capture -> view_finder; + video_capture -> view_finder; +} + diff --git a/docs/plugins/camerabin.png b/docs/plugins/camerabin.png new file mode 100644 index 0000000000000000000000000000000000000000..7f82e13315f5d5171321894233e37f8b5bba1092 GIT binary patch literal 7779 zcmb_>1yq$`m+nDO0V!z&Noi^6l#p(uJ4HZ1B&0!7T0}}pK}z6I2b6A=QltcF0cns< zXP=pW?#%k{KWo;y>jDc{aL)Jb?|t`v>W$XYP{hZ*fr~&O@RgP1br1*)6Zky``wDzF zX!AXVA6KkZ73C3s(Vw|Zg~tw%zt{h z3lTP!f2s@~RybE%5|iTW$_kFIuC9ov=-gUG%Thx=0SPu1yo6UssC&H9#(iaoxyrGZ623JzAN*VyS}mxr1;Qg+?l z-CP=&t)uUaI{Nzh#(#f%Yox8M9qHuc;sdvK-kxo9{{1!YHamN}e3>WMp00QUPD$>7)nL)YXmj^his~%Ita)=*Aw3I}Feq z?2lPgFAwHae=pP&DAp^feZ9Tyrf+UOowqMkNFWm~+xF(|+w_KphJic#+pIbM?W=2R zKTh`7e#BAk&%&DzV4FJ z()9FnBlIKJb0(zhSv(m)0P8UT{X=w*6{gVL`0!m&4!qV0@ zf7g2#70Y*awmWFabJ6y;xLDaq6!R*<`mk@NO>ACe<@LHpQ|(7P3*y^Fp3APKsL?0; zl`k%$+fg~EzuzVxA1|u>T3ozatoNqAp0f89*LO7oHd0CvH+oXs%WvMi`PfJs6cqH{ ztbrWLWaHxMn(vC4bgrn_7pk-AAz&lLb)H1wH#aw%m6u7LnA7s%p%=u>jaSHdJXrc- zCxKU3II^Whnng4FeR{L!ntorlB(;~97qY5q^^fnt=2XnYgmEk--z9jc?n&2{DSN+w zvbqnjL2|drnM6gY`1tt#&!sPoj-Cq0;)Ti3=c?9WSN#6;k8wGWysWoqg|szu;k1%=BT930!fzcKZ1^R%3W zW@OxGs+jrm1-Byt|5{D z5EuO(H@DUz?YFbPe`A}Nn5Y-whBqxUg+@eNQQwyGKO*wpnjSfO`SN9Mem>S- zdHv_BJqz$^2M34xk00AdM#v5h4kVswgl0IhljJVvB_9jF+6|%TuVy} z@xhc}w(DDg9>)k)@d>t;i4_8=NxW1vG zqpR!k=H{l`|2Z*t7urUc0eLV@-nwGpHD0uf4aa&s(1}!bEo2O^E zJR|xow}^3IXOFmZwu9S8W!On^f7ZKWj+L8r?5~ZvpPzXC{OEZNH~iAOckj^m(BlY) zr@M+rY~b_o@c2A^ zYBi3uk}%NpB@QnO@i|zh;x_vjw!ZHCS~`eU`fM8$P>RoI+p_=KL{HCEb8~YjaKuzd zq5j+OaM;k04k-o2TNrQH7lpt;sYgHSL#`6iB7AnrthD)DH>c&`o{~vE#nRj3Wf4dRsI;w7ZDnI>DSWIy!78=!hvkbn356>ptZJ{8M?c7?{4qz zzV&7ezzcWb@m}c0&(F`NXJ)=EeR0GDlQ6rytf(k{9;H&yPAGjA?AmfpUZ|PV9Y-z9 zYx{`^4Lu&q16?oKbuF!}+r88CZ<3;#VpR%c0f<>FRaI0h9ULNabLsms1g|BtsK0R) z-}ite>xw2}O?>$>3>dKk<{4VRu*w#vJArN{@B2ND6kKSg&eN?H&BAn%HzX)Pdt=Fj z7q4!Ld#SnhTE{Z*@DSqQ;3%o7g_&|kHZ+La4`#=SdMvf}^eAreM0rm?RjlY`a{0b| zG4vCbXs2IzhF(gF7C<``I!ukFqsp$A_wlb!`pc&mr(1lUt9p(5qb5o!Dxn1hb`5LK zqoeOWdQ>jeD=b37s)4R!X8ukVQu6UHY+HV+(9lp3_VNm4b@j`+IZ|ci=1tGT!m#{z z`-K6@!wU;p$+=CVj(3+~Y6>QMU1P)=9mNlC2W;|eeDGW&pI=yT-}|i%sBtz&7$hSv zkM&MH^PNZB-j@{4N{2z(D0#;5@o{=CE_~=X7j6rdG2~qBfL122 zryq{%-@os!V`-6`mKKFXBDq_9{_O51B_;+#Ek8eaT!qFmL|S6V%F52p&E+jWG+`ye zM!L>OVO_oIff~3dYB*IjU`tU!?=?3!0iYaoj;xQ5h^(9(19?oIPBHJ3-&*}nKgY)@ zFNGld4%XXX&5X^;)mY@@L_ z3%!gkz&z;Ov$>b)%Dr2}Ru^Z-Y0^PbQ0R3Eib&`nMh*_#YZTm_P8Ch>Jb6dP$FUKH z&Hkdm&O{UxiaFQz5GNOQgvBK#?E_ije1T^^Fd)t|%{NI{)LLPM-Tz($obBfP&Cg|) z9GIHASy@?mbiABX=`tx~+T=@i{rdH?!2J`zd7tzBF>M{4cK3pagm(P|VBr@pUhw)I zIO9?!hgVk%G@ovYzf4K7I^3K}yW>baWfSc7Xtp&3n~<=l)@cm*AO!G+d=do6 z8zhp*raQK+ShrB5d7P+V85Tr>BU|Ha(zf*wK+sUmD*t zZW-35b|`uWW?g6!mVS6-#0s>TVN0N-9tWA?2$hgZFgFJ`cQ?@4_Eyke>aMOXN=e^4 zj7&@n$)A6lnC6d(1)hnhsi}R14}0YSf`>doWvtR4$vCtki=%xSo zguOfdX0Nw$SdDUlj@4kcWL7pSC+9V}NP@1tmG6R04v7PAksEJx3pK1x_Ew%4unak% zVYW4fx{Z*EKfh};!u;tXSy@YefB(0yUvod?HI|lgI_%%Lfjh~Ki;X?ofF&!|)zedG zGIm;0QO#^7N0)g0f6~?eT81B3eg6Ep-glp4#x7Cn7wADHW#tgryxE4Ak0wzr)Ib6B z=qUIl%yM^UyYFVxAlk_|y@EQb&kX9*fPL{Z$WX-?JmWd$E*xhl>X6!5-tOL>>!>{uAdcxWtbItfzOj+?;>8=P!iy>Y`eTXyNG2vGD;pb3 z#HWFQ2tW#&n>UkQy&4rDtV-45NI{rOEIW<956Q~93DmK(m};?Vr|5tD^kTb%5ZzZz zeuvikt0TzTT7@T1Y6c{DTo(YIS_cLQI1S2&jqMdtWE+|%1=9{d8R!9JNkn1@?oP@#*^hdu75XIzaitIqFUR-ukCEl$z@Ua-@i}B zFCb7EaOzdI12VAt;{0^yheM9zL~)S!tvij4jiB+aAdZd}5-R-;AKhYQW#Zsap(89F z`ww9q%V%2eh5-*078i$aKkz#GtzyEP@^THHwR9nu8)#PrBESabM#N(Y&ue3%VB}qa zOQT&cx&Qu%L7K2@w*F+iGv`E(Z~Vy>fr5g9Bhc`3b8{GkgoMshAIS)5C4LWAy?_6n zh>|i26g>h#KqC?i{A6fkr#K_zdx8sn$S!uSw1|9veQ0?Ek9tyhK$Kst`xXo0diySnmFDE;pRsEnK( zI!YVh2p8{TuBkRQ5fMX=$&UGX>%L6kiV<#^j|*Ae)89_{#Y>y&0{ZC=(*+#dPWBuT zt@Z8;h+LE9)pwdX1R*kr6qN!heY($xGS>xAA;9v=4wIg?Ci{!$?83qnpzX7=HD|<# zU#~Jv1L?mvsUv`AR$2milq}IyXQpBp1<$Yrwroa z)OD^i_x$}ObaZr(fQ()ZMnUPmIq!>$zr}KLagD4KZj9uO`k#6mB+&l&`0*p7l$7~$ z^5E~^4_-?=C8naH5+js=i-?MfBCD&v$C5A``&O`wz(C!TY8*{7q z^ik$oLVSETT;w`2@gW_4VOh z3dvP;^`D*)ijR$zfAFA4qs95=5B-3rK^Y(lSu|dc&mBlE0;wl{wsk>WkCungck}S* z7%EV$beoeMpPckQ2}D89V&mZ41^$ltZsIG|)Yu51pIfZWl5DlR)bG23V>k8D6B{32 z!P3&Q!E+A_!*4}Prit(9=!xcS^1~BNG7=J!>*VC4WtqHds;X9{1llPo;W#8LmY-iR zqsL_6stWM>>A{8^7|T>+HmeB&2)fF19~xNk6Q}gyzK;%&JJswoCnXd`)qNx6yXb zYkj=UoBce)H;0Pf7OkP+vFRkn@sg{o(#k1?avs@i6hJO>! z*j*puU}a@Ri(6iP{!2D^;5fiIsT5Ro<=&r(x&X2|`kr&qDc2Pd-j1T4_F2HUwY8-O znE;?nZ$>hw%XkNTjxGVz{ll1!aPit?v{9QKZeak<;K7acB zxozcpAv|Kl%*8<+TKWZ^tgtq#GRemP@If@gK#IB;66WU*EiPss`u?5IY4kQhsem&n z%9oUgDERNiVT*{@IwdYHF0XwbCDxTI^N@=8r{2R3rfBjL5felC29AOlU0PcD)Yq3k z$guZ*gzyun)erCA4l1duyLfzrL2P`w%j>;q>VLXXH{SSE0Q^J(z#9`kKQS05n)?&Y zNF*~CzF$^fpIpdwIyN{M z;p69rzBQN|m*$i;$C|hgZHK$2Iy#}?ndeI@n%g-m8bd(_TX#JtgV?ZRqSomfXy93e zuf`@OOt1?B0|Q*#P9V!jYg}Lu0w-_U^S7s$8dOxx&RVjN;-<&MToZSjMd-4T`ll-3 zX@L**JDl=PudL+raC5VCcXwY0#hI}J$;Y~I%P~G?t32cNWTji{;FTrxosZa@pK2Kz zegYZU4YG1P>N?XnnS&5`RUvTADEs~!5LWCwC1MzAE%;zi}<-OvO(bCGnAZlr7t zDe*uHM0Iw``(GR{11(;8rcp3sU58@(Z>yHx8E`&Fo-QDewY{XFTMCfsJrEnU6FaMx%nG1nyOrSk}zzBLD z``R@*SX2l;;~|z(OXI}=>mg%oY@9h`<{ICuW|an7Yv(g-j^%KXb`-$9j0^&Tmc+zF z1RWh6_@0ei`S4&UQnO6${2)TR1m?dPY5l}=;aFb03jXjj;>2dRV2 zd&XrhgaVIuB^bjJ-es+>t}dacx;Iyt6F6krEC|;lCn4!TC%LdIF@Te45R{PLxbX$L zqPnim0Zg|o7#9dmGcq#Lz!O2-jfWt?4Oe4Hu7rRuyObr%eP>>QoRqW^Aj!kq+hJ#C z=Y3vY$X1n-@V61{fMLk@kdR2yNca%J03G#OTwH>9sxMtYu{0|w={j1_E%YRGbasXn zK2%l&u(1R-`}E~YJM1PA6;*U=tBiSzqtaevJ1QZ$ckyUGh6f3*SR&|x1}NNscLbnk zZfz~5rshssX6CLQyQ8wME(wr1^69RyJ1mLrFCY&mE%x|J!q(1^Gp7?X-d zRsb}|Dl8%^DtLZ97L80vO0|QsVJOqYy}5t>{OPtf%5{r{Md#}cu?r0fk^pv2P8-G~ zB@Z%L6KTezC{Z!7s?)=*YK0hb&j++8D<^|*6k_g7va_;A9-o}>Bb=A|($`_~B{l`a zoc8vwVG$1{$sUbz9Ft7_faWuI1X4-OO5bm{Wmi+`D%V&MU6i;6bVaU+^$?c6Mx>oE;F^5Wz+& zu3P~(gae9A#CMMkO#!bZ{m8)x&Hv^KL)gh<`23ID$}~8;toiiI zj4uOoK^lh@gYEwk&#hmEy)no@Kvf6BpIhZJsTS~ zKqflF(8!i3{{9YHF)%RDGS)GU2Oi)1TVndWgHxC&A7TZfgD7q4sbwJ+wJN2oTQCV5I4E@)Pcjoqvj*blpYm3Gh^dcgZ(338s8cGgdlekuR4GauGR?4v?w{>)2 z>J;l0#)00fs;*8-PJSzB&X_a{PMnR0rw4FDZ~=sO^gkk62)oP5g(23%4VQKDfAZuG z6dD~Hi;d0BIK)S zxun3mEXjF!d3V=3nB^el@arNYwz9I~<>PAuvwh4RzIW+~?LUqzuM`T?j1d3f|NlD* z|D|yMFG1W|f6mgG$jrjR$j6riN@)}T>xesKk9fG@k+j$GA3F)3?O^zO1`Gq_z&+kn m`4s + +%version-entities; +]> + + + + GStreamer Bad Plugins &GST_MAJORMINOR; Plugins Reference Manual + + for GStreamer Bad Plugins &GST_MAJORMINOR; (&GST_VERSION;) + The latest version of this documentation can be found on-line at + http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/. + + + + + gst-plugins-bad Elements + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gst-plugins-bad Plugins + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + gst-plugins-bad Interfaces + + + diff --git a/docs/plugins/gst-plugins-bad-plugins-sections.txt b/docs/plugins/gst-plugins-bad-plugins-sections.txt new file mode 100644 index 0000000..8595dd3 --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins-sections.txt @@ -0,0 +1,1662 @@ +
+element-aiffmux +aiffmux +GstAiffMux + +GST_AIFF_MUX +GST_AIFF_MUX_CLASS +GST_IS_AIFF_MUX +GST_IS_AIFF_MUX_CLASS +GST_TYPE_AIFF_MUX +GstAiffMuxClass +gst_aiff_mux_get_type +
+ +
+element-aiffparse +aiffparse +GstAiffParse + +GST_AIFF_PARSE +GST_AIFF_PARSE_CLASS +GST_IS_AIFF_PARSE +GST_IS_AIFF_PARSE_CLASS +GST_TYPE_AIFF_PARSE +GstAiffParseClass +GstAiffParseState +gst_aiff_parse_get_type +
+ +
+element-amrwbenc +amrwbenc +GstAmrwbEnc + +GstAmrwbEncClass +GST_AMRWBENC +GST_AMRWBENC_CLASS +GST_IS_AMRWBENC +GST_IS_AMRWBENC_CLASS +GST_TYPE_AMRWBENC +gst_amrwbenc_get_type +
+ +
+element-assrender +assrender +GstAssRender + +GstAssRenderBlitFunction +GstAssRenderClass +GST_ASS_RENDER +GST_ASS_RENDER_CLASS +GST_IS_ASS_RENDER +GST_IS_ASS_RENDER_CLASS +gst_ass_render_get_type +
+ +
+element-audioparse +audioparse +GstAudioParse + +GstAudioParseClass +GST_AUDIO_PARSE +GST_AUDIO_PARSE_CLASS +GST_IS_AUDIO_PARSE +GST_IS_AUDIO_PARSE_CLASS +GST_TYPE_AUDIO_PARSE +gst_audio_parse_get_type +
+ + +
+element-autoconvert +autoconvert +GstAutoConvert + +GstAutoConvertClass +GST_TYPE_AUTO_CONVERT +GST_AUTO_CONVERT +GST_AUTO_CONVERT_CLASS +GST_IS_AUTO_CONVERT +GST_IS_AUTO_CONVERT_CLASS +
+ +
+element-bulge +bulge +GstBulge + +GstBulgeClass +GST_BULGE +GST_BULGE_CAST +GST_BULGE_CLASS +GST_IS_BULGE +GST_IS_BULGE_CLASS +GST_TYPE_BULGE +gst_bulge_get_type +gst_bulge_plugin_init +
+ +
+element-burn +burn +GstBurn + +GstBurnClass +GST_BURN +GST_BURN_CLASS +GST_IS_BURN +GST_IS_BURN_CLASS +GST_TYPE_BURN +gst_burn_get_type +gst_burn_plugin_init +
+ +
+element-camerabin +camerabin +GstCameraBin +GstCameraBinMode + +GstCameraBinClass +GST_CAMERABIN +GST_IS_CAMERABIN +GST_TYPE_CAMERABIN +GST_CAMERABIN_CLASS +GST_IS_CAMERABIN_CLASS +gst_camerabin_get_type +
+ +
+element-celtdec +celtdec +GstCeltDec + +GstCeltDecClass +GST_CELT_DEC +GST_CELT_DEC_CLASS +GST_IS_CELT_DEC +GST_IS_CELT_DEC_CLASS +GST_TYPE_CELT_DEC +gst_celt_dec_get_type +
+ +
+element-celtenc +celtenc +GstCeltEnc + +GstCeltEncClass +GST_CELT_ENC +GST_CELT_ENC_CLASS +GST_IS_CELT_ENC +GST_IS_CELT_ENC_CLASS +GST_TYPE_CELT_ENC +gst_celt_enc_get_type +
+ +
+element-chromium +chromium +GstChromium + +GstChromiumClass +GST_CHROMIUM +GST_CHROMIUM_CLASS +GST_IS_CHROMIUM +GST_IS_CHROMIUM_CLASS +GST_TYPE_CHROMIUM +gst_chromium_get_type +gst_chromium_plugin_init +
+ +
+element-circle +circle +GstCircle + +GstCircleClass +GST_CIRCLE +GST_CIRCLE_CAST +GST_CIRCLE_CLASS +GST_IS_CIRCLE +GST_IS_CIRCLE_CLASS +GST_TYPE_CIRCLE +gst_circle_get_type +gst_circle_plugin_init +
+ +
+element-coloreffects +coloreffects +GstColorEffects + +GstColorEffectsClass +GST_COLOR_EFFECTS +GST_COLOR_EFFECTS_CLASS +GST_IS_COLOR_EFFECTS +GST_IS_COLOR_EFFECTS_CLASS +GST_TYPE_COLOR_EFFECTS +gst_color_effects_get_type +
+ +
+element-curlsink +curlsink +GstCurlSink + +GstCurlSinkClass +GST_CURL_SINK +GST_CURL_SINK_CLASS +GST_IS_CURL_SINK +GST_IS_CURL_SINK_CLASS +GST_TYPE_CURL_SINK +gst_curl_sink_get_type +
+ +
+element-cvdilate +cvdilate +GstCvDilate + +GstCvDilateClass +GST_CV_DILATE +GST_CV_DILATE_CLASS +GST_IS_CV_DILATE +GST_IS_CV_DILATE_CLASS +GST_TYPE_CV_DILATE +gst_cv_dilate_get_type +gst_cv_dilate_plugin_init +
+ +
+element-cverode +cverode +GstCvErode + +GstCvErodeClass +GST_CV_ERODE +GST_CV_ERODE_CLASS +GST_IS_CV_ERODE +GST_IS_CV_ERODE_CLASS +GST_TYPE_CV_ERODE +gst_cv_erode_get_type +gst_cv_erode_plugin_init +
+ +
+element-cvequalizehist +cvequalizehist +GstCvEqualizeHist + +GstCvEqualizeHistClass +GST_CV_EQUALIZE_HIST +GST_CV_EQUALIZE_HIST_CLASS +GST_IS_CV_EQUALIZE_HIST +GST_IS_CV_EQUALIZE_HIST_CLASS +GST_TYPE_CV_EQUALIZE_HIST +gst_cv_equalize_hist_get_type +gst_cv_equalize_hist_plugin_init +
+ +
+element-cvlaplace +cvlaplace +GstCvLaplace + +GstCvLaplaceClass +GST_CV_LAPLACE +GST_CV_LAPLACE_CLASS +GST_IS_CV_LAPLACE +GST_IS_CV_LAPLACE_CLASS +GST_TYPE_CV_LAPLACE +gst_cv_laplace_get_type +gst_cv_laplace_plugin_init +
+ +
+element-cvsmooth +cvsmooth +GstCvSmooth + +GstCvSmoothClass +GST_CV_SMOOTH +GST_CV_SMOOTH_CLASS +GST_IS_CV_SMOOTH +GST_IS_CV_SMOOTH_CLASS +GST_TYPE_CV_SMOOTH +gst_cv_smooth_get_type +gst_cv_smooth_plugin_init +
+ +
+element-cvsobel +cvsobel +GstCvSobel + +GstCvSobelClass +GST_CV_SOBEL +GST_CV_SOBEL_CLASS +GST_IS_CV_SOBEL +GST_IS_CV_SOBEL_CLASS +GST_TYPE_CV_SOBEL +gst_cv_sobel_get_type +gst_cv_sobel_plugin_init +
+ +
+element-dataurisrc +dataurisrc +GstDataURISrc + +GstDataURISrcClass +GST_DATA_URI_SRC +GST_DATA_URI_SRC_CLASS +GST_IS_DATA_URI_SRC +GST_IS_DATA_URI_SRC_CLASS +GST_TYPE_DATA_URI_SRC +gst_data_uri_src_get_type +
+ + +
+element-dc1394 +dc1394 +GstDc1394 + +GstDc1394Class +GST_DC1394 +GST_DC1394_CLASS +GST_IS_DC1394 +GST_IS_DC1394_CLASS +GST_TYPE_DC1394 +gst_dc1394_get_type +
+ +
+element-dccpclientsink +dccpclientsink +GstDCCPClientSink + +GstDCCPClientSinkClass +GST_DCCP_CLIENT_SINK +GST_DCCP_CLIENT_SINK_CLASS +GST_IS_DCCP_CLIENT_SINK +GST_IS_DCCP_CLIENT_SINK_CLASS +GST_TYPE_DCCP_CLIENT_SINK +gst_dccp_client_sink_get_type +
+ +
+element-dccpclientsrc +dccpclientsrc +GstDCCPClientSrc + +GstDCCPClientSrcClass +GST_DCCP_CLIENT_SRC +GST_DCCP_CLIENT_SRC_CLASS +GST_IS_DCCP_CLIENT_SRC +GST_IS_DCCP_CLIENT_SRC_CLASS +GST_TYPE_DCCP_CLIENT_SRC +gst_dccp_client_src_get_type +
+ +
+element-dccpserversink +dccpserversink +GstDCCPServerSink + +GstDCCPServerSinkClass +GST_DCCP_SERVER_SINK +GST_DCCP_SERVER_SINK_CLASS +GST_IS_DCCP_SERVER_SINK +GST_IS_DCCP_SERVER_SINK_CLASS +GST_TYPE_DCCP_SERVER_SINK +gst_dccp_server_sink_get_type +
+ +
+element-dccpserversrc +dccpserversrc +GstDCCPServerSrc + +GstDCCPServerSrcClass +GST_DCCP_SERVER_SRC +GST_DCCP_SERVER_SRC_CLASS +GST_IS_DCCP_SERVER_SRC +GST_IS_DCCP_SERVER_SRC_CLASS +GST_TYPE_DCCP_SERVER_SRC +gst_dccp_server_src_get_type +
+ +
+element-dfbvideosink +dfbvideosink +GstDfbVideoSink + +GstDfbSurface +GstDfbVMode +GstDfbVideoSinkClass +GST_DFBVIDEOSINK +GST_DFBVIDEOSINK_CLASS +GST_IS_DFBVIDEOSINK +GST_IS_DFBVIDEOSINK_CLASS +GST_TYPE_DFBVIDEOSINK +gst_dfbvideosink_get_type +GST_DFBSURFACE +GST_IS_DFBSURFACE +GST_TYPE_DFBSURFACE +gst_dfbsurface_get_type +
+ +
+element-diffuse +diffuse +GstDiffuse + +GstDiffuseClass +GST_DIFFUSE +GST_DIFFUSE_CAST +GST_DIFFUSE_CLASS +GST_IS_DIFFUSE +GST_IS_DIFFUSE_CLASS +GST_TYPE_DIFFUSE +gst_diffuse_get_type +gst_diffuse_plugin_init +
+ +
+element-dilate +dilate +GstDilate + +GstDilateClass +GST_DILATE +GST_DILATE_CLASS +GST_IS_DILATE +GST_IS_DILATE_CLASS +GST_TYPE_DILATE +gst_dilate_get_type +gst_dilate_plugin_init +
+ +
+element-directdrawsink +directdrawsink +GstDirectDrawSink + +GstDirectDrawSinkClass +GST_DIRECTDRAW_SINK +GST_DIRECTDRAW_SINK_CLASS +GST_IS_DIRECTDRAW_SINK +GST_IS_DIRECTDRAW_SINK_CLASS +GST_TYPE_DIRECTDRAW_SINK +gst_directdraw_sink_get_type +GstDDrawSurface +GST_DDRAWSURFACE +GST_IS_DDRAWSURFACE +GST_TYPE_DDRAWSURFACE +DIRECTDRAW_VERSION +
+ +
+element-dodge +dodge +GstDodge + +GstDodgeClass +GST_DODGE +GST_DODGE_CLASS +GST_IS_DODGE +GST_IS_DODGE_CLASS +GST_TYPE_DODGE +gst_dodge_get_type +gst_dodge_plugin_init +
+ +
+element-dtmfsrc +dtmfsrc +GstDTMFSrc + +GstDTMFEventType +GstDTMFSrcEvent +GstDTMFSrcClass +GST_TYPE_DTMF_SRC +GST_DTMF_SRC +GST_DTMF_SRC_CAST +GST_DTMF_SRC_CLASS +GST_DTMF_SRC_GET_CLASS +GST_IS_DTMF_SRC +GST_IS_DTMF_SRC_CLASS +gst_dtmf_src_get_type +gst_dtmf_src_plugin_init +
+ +
+element-dtmfdetect +dtmfdetect +GstDtmfDetect + +GstDtmfDetectClass +GST_TYPE_DTMF_DETECT +GST_DTMF_DETECT +GST_DTMF_DETECT_CAST +GST_DTMF_DETECT_CLASS +GST_DTMF_DETECT_GET_CLASS +GST_IS_DTMF_DETECT +GST_IS_DTMF_DETECT_CLASS +gst_dtmf_detect_get_type +gst_dtmf_detect_plugin_init +
+ +
+element-dtsdec +dtsdec +GstDtsDec + +GstDtsDecClass +gst_dtsdec_get_type +GST_TYPE_DTSDEC +GST_DTSDEC +GST_DTSDEC_CLASS +GST_IS_DTSDEC +GST_IS_DTSDEC_CLASS +
+ +
+element-dvbsrc +dvbsrc +GstDvbSrc + +GstDvbSrcClass +GstDvbSrcParam +GstDvbSrcPol +GST_DVBSRC +GST_DVBSRC_CLASS +GST_IS_DVBSRC +GST_IS_DVBSRC_CLASS +GST_TYPE_DVBSRC +gst_dvbsrc_get_type +gst_dvbsrc_plugin_init +DEFAULT_BUFFER_SIZE +DEFAULT_DEVICE +DEFAULT_DISEQC_SRC +DEFAULT_SYMBOL_RATE +MAX_FILTERS +IPACKS +IN_SIZE +TS_SIZE +
+ +
+element-dvdspu +dvdspu +GstDVDSpu + +GstDVDSpuClass +GST_DVD_SPU +GST_DVD_SPU_CLASS +GST_IS_DVD_SPU +GST_IS_DVD_SPU_CLASS +GST_TYPE_DVD_SPU +gst_dvd_spu_get_type +SpuColour +SpuLineCtrlI +SpuPacket +SpuPixCtrlI +SpuRect +SpuState +DVD_SPU_LOCK +DVD_SPU_UNLOCK +SPU_STATE_FLAGS_MASK +
+ +
+element-edgedetect +edgedetect +Gstedgedetect + +GstedgedetectClass +GST_EDGEDETECT +GST_EDGEDETECT_CLASS +GST_IS_EDGEDETECT +GST_IS_EDGEDETECT_CLASS +GST_TYPE_EDGEDETECT +gst_edgedetect_get_type +gst_edgedetect_plugin_init +
+ +
+element-exclusion +exclusion +GstExclusion + +GstExclusionClass +GST_EXCLUSION +GST_EXCLUSION_CLASS +GST_IS_EXCLUSION +GST_IS_EXCLUSION_CLASS +GST_TYPE_EXCLUSION +gst_exclusion_get_type +gst_exclusion_plugin_init +
+ +
+element-faac +faac +GstFaac + +GstFaacClass +GST_TYPE_FAAC +GST_FAAC +GST_IS_FAAC +GST_FAAC_CLASS +GST_IS_FAAC_CLASS +gst_faac_get_type +
+ +
+element-faad +faad +GstFaad + +GstFaadClass +GST_TYPE_FAAD +GST_FAAD +GST_IS_FAAD +GST_FAAD_CLASS +GST_IS_FAAD_CLASS +gst_faad_get_type +
+
+ +element-faceblur +faceblur +Gstfaceblur + +GstfaceblurClass +GST_FACEBLUR +GST_FACEBLUR_CLASS +GST_TYPE_FACEBLUR +GST_IS_FACEBLUR +GST_IS_FACEBLUR_CLASS +gst_faceblur_get_type +gst_faceblur_plugin_init +
+ +element-facedetect +facedetect +Gstfacedetect + +GstfacedetectClass +GST_FACEDETECT +GST_FACEDETECT_CLASS +GST_TYPE_FACEDETECT +GST_IS_FACEDETECT +GST_IS_FACEDETECT_CLASS +gst_facedetect_get_type +gst_facedetect_plugin_init + + +
+element-festival +festival +GstFestival + +GstFestivalClass +GstFestivalFlags +GST_FESTIVAL +GST_FESTIVAL_CLASS +GST_IS_FESTIVAL +GST_IS_FESTIVAL_CLASS +GST_TYPE_FESTIVAL +gst_festival_get_type +FESTIVAL_DEFAULT_SERVER_HOST +FESTIVAL_DEFAULT_SERVER_PORT +FESTIVAL_DEFAULT_TEXT_MODE +
+ +
+element-fisheye +fisheye +GstFisheye + +GstFisheyeClass +GST_FISHEYE +GST_FISHEYE_CAST +GST_FISHEYE_CLASS +GST_IS_FISHEYE +GST_IS_FISHEYE_CLASS +GST_TYPE_FISHEYE +gst_fisheye_get_type +gst_fisheye_plugin_init +
+ +
+element-fpsdisplaysink +fpsdisplaysink +GstFPSDisplaySink + +GstFPSDisplaySinkClass +GST_TYPE_FPS_DISPLAY_SINK +GST_FPS_DISPLAY_SINK +GST_IS_FPS_DISPLAY_SINK +GST_FPS_DISPLAY_SINK_CLASS +GST_IS_FPS_DISPLAY_SINK_CLASS +fps_display_sink_get_type +
+ +
+element-freeze +freeze +GstFreeze + +GstFreezeClass +GST_FREEZE +GST_FREEZE_CLASS +GST_IS_FREEZE +GST_IS_FREEZE_CLASS +GST_TYPE_FREEZE +gst_freeze_get_type +
+ +
+element-gaussianblur +gaussianblur +GaussBlur + +GaussBlurClass +GAUSS_BLUR +GST_TYPE_GAUSS_BLUR +gauss_blur_get_type +gst_gauss_blur_plugin_init +
+ +
+element-ivfparse +ivfparse +GstIvfParse + +GstIvfParseState +GstIvfParseClass +GST_IVF_PARSE +GST_IVF_PARSE_CLASS +GST_IS_IVF_PARSE +GST_IS_IVF_PARSE_CLASS +GST_TYPE_IVF_PARSE +gst_ivf_parse_get_type +
+ +
+element-jpegparse +jpegparse +GstJpegParse + +GstJpegParseClass +GST_JPEG_PARSE +GST_JPEG_PARSE_CLASS +GST_IS_JPEG_PARSE +GST_IS_JPEG_PARSE_CLASS +GST_TYPE_JPEG_PARSE +gst_jpeg_parse_get_type +
+ +
+element-legacyresample +legacyresample +GstLegacyresample + +GstLegacyresampleClass +GST_LEGACYRESAMPLE +GST_LEGACYRESAMPLE_CLASS +GST_IS_LEGACYRESAMPLE +GST_IS_LEGACYRESAMPLE_CLASS +GST_TYPE_LEGACYRESAMPLE +gst_legacyresample_get_type +
+ +
+element-liveadder +liveadder +GstLiveAdder + +GstLiveAdderClass +GST_IS_LIVE_ADDER +GST_IS_LIVE_ADDER_CLASS +GST_IS_MXF_DEMUX_PAD +GST_LIVE_ADDER +GST_LIVE_ADDER_CLASS +GST_LIVE_ADDER_GET_CLASS +GST_TYPE_LIVE_ADDER +GstLiveAdderFormat +GstLiveAdderFunction +gst_live_adder_get_type +
+ +
+element-kaleidoscope +kaleidoscope +GstKaleidoscope + +GstKaleidoscopeClass +GST_KALEIDOSCOPE +GST_KALEIDOSCOPE_CAST +GST_KALEIDOSCOPE_CLASS +GST_IS_KALEIDOSCOPE +GST_IS_KALEIDOSCOPE_CLASS +GST_TYPE_KALEIDOSCOPE +gst_kaleidoscope_get_type +gst_kaleidoscope_plugin_init +
+ +
+element-katedec +katedec +GstKateDec + +GstKateDecClass +GST_KATE_DEC +GST_KATE_DEC_CLASS +GST_IS_KATE_DEC +GST_IS_KATE_DEC_CLASS +GST_TYPE_KATE_DEC +gst_kate_dec_get_type +
+ +
+element-kateenc +kateenc +GstKateEnc + +GstKateEncClass +GST_KATE_ENC +GST_KATE_ENC_CLASS +GST_IS_KATE_ENC +GST_IS_KATE_ENC_CLASS +GST_TYPE_KATE_ENC +gst_kate_enc_get_type +
+ +
+element-kateparse +kateparse +GstKateParse + +GstKateParseClass +GST_KATE_PARSE +GST_KATE_PARSE_CLASS +GST_IS_KATE_PARSE +GST_IS_KATE_PARSE_CLASS +GST_TYPE_KATE_PARSE +gst_kate_parse_get_type +
+ +
+element-katetag +katetag +GstKateTag + +GstKateTagClass +GST_KATE_TAG +GST_KATE_TAG_CLASS +GST_IS_KATE_TAG +GST_IS_KATE_TAG_CLASS +GST_TYPE_KATE_TAG +gst_kate_tag_get_type +
+ +
+element-tiger +tiger +GstKateTiger + +GstKateTigerClass +GST_KATE_TIGER +GST_KATE_TIGER_CLASS +GST_IS_KATE_TIGER +GST_IS_KATE_TIGER_CLASS +GST_TYPE_KATE_TIGER +gst_kate_tiger_get_type +
+ +
+element-ladspa +ladspa +GstLADSPA + +GstLADSPAClass +
+ +
+element-marble +marble +GstMarble + +GstMarbleClass +GST_MARBLE +GST_MARBLE_CAST +GST_MARBLE_CLASS +GST_IS_MARBLE +GST_IS_MARBLE_CLASS +GST_TYPE_MARBLE +gst_marble_get_type +gst_marble_plugin_init +
+ +
+element-mimdec +mimdec +GstMimDec + +GstMimDecClass +GST_IS_MIMDEC +GST_IS_MIMDEC_CLASS +GST_MIMDEC +GST_MIMDEC_CLASS +GST_TYPE_MIMDEC +gst_mimdec_get_type +
+ +
+element-mimenc +mimenc +GstMimEnc + +GstMimEncClass +GST_IS_MIMENC +GST_IS_MIMENC_CLASS +GST_MIMENC +GST_MIMENC_CLASS +GST_TYPE_MIMENC +gst_mimenc_get_type +
+ +
+element-mirror +mirror +GstMirror + +GstMirrorClass +GST_MIRROR +GST_MIRROR_CAST +GST_MIRROR_CLASS +GST_IS_MIRROR +GST_IS_MIRROR_CLASS +GST_TYPE_MIRROR +gst_mirror_get_type +gst_mirror_plugin_init +
+ +
+element-modplug +modplug +GstModPlug + +GstModPlugClass +GST_MODPLUG +GST_MODPLUG_CLASS +GST_IS_MODPLUG +GST_IS_MODPLUG_CLASS +GST_TYPE_MODPLUG +gst_modplug_get_type +
+ +
+element-mpeg2enc +mpeg2enc +GstMpeg2enc + +GstMpeg2encClass +GST_MPEG2ENC +GST_MPEG2ENC_CLASS +GST_IS_MPEG2ENC +GST_IS_MPEG2ENC_CLASS +GST_TYPE_MPEG2ENC +GST_MPEG2ENC_MUTEX_LOCK +GST_MPEG2ENC_MUTEX_UNLOCK +GST_MPEG2ENC_SIGNAL +GST_MPEG2ENC_WAIT +gst_mpeg2enc_get_type +
+ +
+element-mplex +mplex +GstMplex + +GstMplexClass +GST_MPLEX +GST_MPLEX_CLASS +GST_IS_MPLEX +GST_IS_MPLEX_CLASS +GST_TYPE_MPLEX +GST_MPLEX_MUTEX_LOCK +GST_MPLEX_MUTEX_UNLOCK +GST_MPLEX_SIGNAL +GST_MPLEX_SIGNAL_ALL +GST_MPLEX_WAIT +gst_mplex_get_type +
+ +
+element-mythtvsrc +mythtvsrc +GstMythtvSrc + +GstMythtvSrcClass +GstMythtvState +GST_MYTHTV_SRC +GST_MYTHTV_SRC_CLASS +GST_IS_MYTHTV_SRC +GST_IS_MYTHTV_SRC_CLASS +GST_TYPE_MYTHTV_SRC +gst_mythtv_src_get_type +
+ +
+element-mxfdemux +mxfdemux +GstMXFDemux + +GstMXFDemuxClass +GST_IS_MXF_DEMUX +GST_IS_MXF_DEMUX_CLASS +GST_MXF_DEMUX +GST_MXF_DEMUX_CLASS +GST_TYPE_MXF_DEMUX +gst_mxf_demux_get_type +
+ +
+element-mxfmux +mxfmux +GstMXFMux + +GstMXFMuxClass +GST_IS_MXF_MUX +GST_IS_MXF_MUX_CLASS +GST_MXF_MUX +GST_MXF_MUX_CLASS +GST_TYPE_MXF_MUX +gst_mxf_mux_get_type +
+ +
+element-nuvdemux +nuvdemux +GstNuvDemux + +GstNuvDemuxClass +GstNuvDemuxState +GST_NUV_DEMUX +GST_NUV_DEMUX_CLASS +GST_IS_NUV_DEMUX +GST_IS_NUV_DEMUX_CLASS +GST_TYPE_NUV_DEMUX +gst_nuv_demux_get_type +
+ +element-opencvtextoverlay +opencvtextoverlay +GstOpencvTextOverlay + +GstOpencvTextOverlayClass +GST_OPENCV_TEXT_OVERLAY +GST_OPENCV_TEXT_OVERLAY_CLASS +GST_TYPE_OPENCV_TEXT_OVERLAY +GST_IS_OPENCV_TEXT_OVERLAY +GST_IS_OPENCV_TEXT_OVERLAY_CLASS +gst_opencv_text_overlay_get_type +gst_opencv_text_overlay_plugin_init + + +
+element-pcapparse +pcapparse +GstPcapParse + +GstPcapParseClass +GST_PCAP_PARSE +GST_PCAP_PARSE_CLASS +GST_IS_PCAP_PARSE +GST_IS_PCAP_PARSE_CLASS +GST_TYPE_PCAP_PARSE +GstPcapParseState +gst_pcap_parse_get_type +
+ +
+element-pinch +pinch +GstPinch + +GstPinchClass +GST_PINCH +GST_PINCH_CAST +GST_PINCH_CLASS +GST_IS_PINCH +GST_IS_PINCH_CLASS +GST_TYPE_PINCH +gst_pinch_get_type +gst_pinch_plugin_init +
+ +element-pyramidsegment +pyramidsegment +Gstpyramidsegment + +GstpyramidsegmentClass +GST_PYRAMIDSEGMENT +GST_PYRAMIDSEGMENT_CLASS +GST_TYPE_PYRAMIDSEGMENT +GST_IS_PYRAMIDSEGMENT +GST_IS_PYRAMIDSEGMENT_CLASS +gst_pyramidsegment_get_type +gst_pyramidsegment_plugin_init + + +
+element-rsvgoverlay +rsvgoverlay +GstRsvgOverlay + +GstRsvgOverlayClass +GST_RSVG_OVERLAY +GST_RSVG_OVERLAY_CLASS +GST_IS_RSVG_OVERLAY +GST_IS_RSVG_OVERLAY_CLASS +GST_TYPE_RSVG_OVERLAY +gst_rsvg_overlay_get_type +
+ +
+element-rsvgdec +rsvgdec +GstRsvgDec + +GstRsvgDecClass +GST_RSVG_DEC +GST_RSVG_DEC_CLASS +GST_IS_RSVG_DEC +GST_IS_RSVG_DEC_CLASS +GST_TYPE_RSVG_DEC +gst_rsvg_dec_get_type +
+ +
+element-rtpdtmfdepay +rtpdtmfdepay +GstRtpDTMFDepay + +GstRtpDTMFDepayClass +GST_TYPE_RTP_DTMF_DEPAY +GST_IS_RTP_DTMF_DEPAY +GST_IS_RTP_DTMF_DEPAY_CLASS +GST_RTP_DTMF_DEPAY +GST_RTP_DTMF_DEPAY_CLASS +gst_rtp_dtmf_depay_plugin_init +
+ +
+element-rtpdtmfmux +rtpdtmfmux +GstRTPDTMFMux + +GST_IS_RTP_DTMF_MUX +GST_IS_RTP_DTMF_MUX_CLASS +GST_TYPE_RTP_DTMF_MUX +GstRTPDTMFMuxClass +GST_RTP_DTMF_MUX +GST_RTP_DTMF_MUX_CLASS +gst_rtp_dtmf_mux_get_type +gst_rtp_dtmf_mux_plugin_init +
+ +
+element-rtpdtmfsrc +rtpdtmfsrc +GstRTPDTMFSrc + +GstRTPDTMFSrcClass +GST_TYPE_RTP_DTMF_SRC +GST_IS_RTP_DTMF_SRC +GST_IS_RTP_DTMF_SRC_CLASS +GST_RTP_DTMF_SRC +GST_RTP_DTMF_SRC_CAST +GST_RTP_DTMF_SRC_CLASS +GST_RTP_DTMF_SRC_GET_CLASS +gst_rtp_dtmf_src_get_type +gst_rtp_dtmf_src_plugin_init +GstRTPDTMFPayload +GstRTPDTMFSrcEvent +GstRTPDTMFEventType +
+ +
+element-rtpmux +rtpmux +GstRTPMux + +GST_IS_RTP_MUX +GST_IS_RTP_MUX_CLASS +GST_RTP_MUX +GST_RTP_MUX_CLASS +GST_RTP_MUX_GET_CLASS +GST_TYPE_RTP_MUX +GstRTPMuxClass +gst_rtp_mux_get_type +gst_rtp_mux_plugin_init +
+ +
+element-scaletempo +scaletempo +GstScaletempo + +GstScaletempoClass +GST_IS_SCALETEMPO +GST_IS_SCALETEMPO_CLASS +GST_SCALETEMPO +GST_SCALETEMPO_CLASS +GST_TYPE_SCALETEMPO +gst_scaletempo_get_type +
+ +
+element-sdlaudiosink +sdlaudiosink +GstSDLAudioSink + +GstSDLAudioSinkClass +GST_SDLAUDIOSINK +GST_SDLAUDIOSINK_CLASS +GST_IS_SDLAUDIOSINK +GST_IS_SDLAUDIOSINK_CLASS +GST_TYPE_SDLAUDIOSINK +gst_sdlaudio_sink_get_type + +gstsdl_semaphore +
+ +
+element-sdlvideosink +sdlvideosink +GstSDLVideoSink + +GstSDLVideoSinkFlags +GstSDLVideoSinkClass +GST_SDLVIDEOSINK +GST_SDLVIDEOSINK_CLASS +GST_IS_SDLVIDEOSINK +GST_IS_SDLVIDEOSINK_CLASS +GST_TYPE_SDLVIDEOSINK +gst_sdlvideosink_get_type +
+ +
+element-sdpdemux +sdpdemux +GstSDPDemux + +GstSDPDemuxClass +GstSDPStream +GST_SDP_DEMUX +GST_SDP_DEMUX_CLASS +GST_IS_SDP_DEMUX +GST_IS_SDP_DEMUX_CLASS +GST_TYPE_SDP_DEMUX +gst_sdp_demux_get_type +GST_SDP_DEMUX_CAST +GST_SDP_STREAM_GET_LOCK +GST_SDP_STREAM_LOCK +GST_SDP_STREAM_UNLOCK +
+ +
+element-shmsink +shmsink +GstShmSink + +GstShmSinkClass +GST_IS_SHM_SINK +GST_IS_SHM_SINK_CLASS +GST_SHM_SINK +GST_SHM_SINK_CLASS +GST_TYPE_SHM_SINK +gst_shm_sink_get_type +
+ +
+element-shmsrc +shmsrc +GstShmSrc + +GstShmSrcClass +GST_IS_SHM_SRC +GST_IS_SHM_SRC_CLASS +GST_SHM_SRC +GST_SHM_SRC_CLASS +GST_TYPE_SHM_SRC +gst_shm_src_get_type +
+ +
+element-solarize +solarize +GstSolarize + +GstSolarizeClass +GST_SOLARIZE +GST_SOLARIZE_CLASS +GST_IS_SOLARIZE +GST_IS_SOLARIZE_CLASS +GST_TYPE_SOLARIZE +gst_solarize_get_type +gst_solarize_plugin_init +
+ +
+element-speed +speed +GstSpeed + +GstSpeedClass +GstSpeedFormat +GST_SPEED +GST_SPEED_CLASS +GST_IS_SPEED +GST_IS_SPEED_CLASS +GST_TYPE_SPEED +gst_speed_get_type +
+ +
+element-sphere +sphere +GstSphere + +GstSphereClass +GST_SPHERE +GST_SPHERE_CAST +GST_SPHERE_CLASS +GST_IS_SPHERE +GST_IS_SPHERE_CLASS +GST_TYPE_SPHERE +gst_sphere_get_type +gst_sphere_plugin_init +
+ +
+element-square +square +GstSquare + +GstSquareClass +GST_SQUARE +GST_SQUARE_CAST +GST_SQUARE_CLASS +GST_IS_SQUARE +GST_IS_SQUARE_CLASS +GST_TYPE_SQUARE +gst_square_get_type +gst_square_plugin_init +
+ +
+element-stereo +stereo +GstStereo + +GstStereoClass +GST_STEREO +GST_STEREO_CLASS +GST_IS_STEREO +GST_IS_STEREO_CLASS +GST_TYPE_STEREO +gst_stereo_get_type +
+ +
+element-stretch +stretch +GstStretch + +GstStretchClass +GST_STRETCH +GST_STRETCH_CAST +GST_STRETCH_CLASS +GST_IS_STRETCH +GST_IS_STRETCH_CLASS +GST_TYPE_STRETCH +gst_stretch_get_type +gst_stretch_plugin_init +
+ +element-templatematch +templatematch +GstTemplateMatch + +GstTemplateMatchClass +GST_TEMPLATEMATCH +GST_TEMPLATEMATCH_CLASS +GST_TYPE_TEMPLATEMATCH +GST_IS_TEMPLATEMATCH +GST_IS_TEMPLATEMATCH_CLASS +gst_templatematch_get_type +gst_templatematch_plugin_init + + +
+element-timidity +timidity +GstTimidity + +GstTimidityClass +GST_TIMIDITY +GST_TIMIDITY_CLASS +GST_IS_TIMIDITY +GST_IS_TIMIDITY_CLASS +GST_TYPE_TIMIDITY +gst_timidity_get_type +
+ +
+element-trm +trm +GstTRM + +GstTRMClass +GST_TRM +GST_TRM_CLASS +GST_IS_TRM +GST_IS_TRM_CLASS +GST_TYPE_TRM +gst_trm_get_type +
+ +
+element-tunnel +tunnel +GstTunnel + +GstTunnelClass +GST_TUNNEL +GST_TUNNEL_CAST +GST_TUNNEL_CLASS +GST_IS_TUNNEL +GST_IS_TUNNEL_CLASS +GST_TYPE_TUNNEL +gst_tunnel_get_type +gst_tunnel_plugin_init +
+ +
+element-twirl +twirl +GstTwirl + +GstTwirlClass +GST_TWIRL +GST_TWIRL_CAST +GST_TWIRL_CLASS +GST_IS_TWIRL +GST_IS_TWIRL_CLASS +GST_TYPE_TWIRL +gst_twirl_get_type +gst_twirl_plugin_init +
+ +
+element-videoanalyse +videoanalyse +GstVideoAnalyse + +GstVideoAnalyseClass +GST_VIDEO_ANALYSE +GST_IS_VIDEO_ANALYSE +GST_TYPE_VIDEO_ANALYSE +gst_video_analyse_get_type +GST_VIDEO_ANALYSE_CLASS +GST_IS_VIDEO_ANALYSE_CLASS +gst_wildmidi_get_type +
+ +
+element-videodetect +videodetect +GstVideoDetect + +GstVideoDetectClass +GST_VIDEO_DETECT +GST_IS_VIDEO_DETECT +GST_TYPE_VIDEO_DETECT +gst_video_detect_get_type +GST_VIDEO_DETECT_CLASS +GST_IS_VIDEO_DETECT_CLASS +
+ +
+element-videomaxrate +videomaxrate +GstVideoMaxRate + +GstVideoMaxRateClass +GST_VIDEO_MAX_RATE +GST_IS_VIDEO_MAX_RATE +GST_TYPE_VIDEO_MAX_RATE +gst_video_max_rate_get_type +GST_VIDEO_MAX_RATE_CLASS +GST_IS_VIDEO_MAX_RATE_CLASS +
+ +
+element-videomark +videomark +GstVideoMark + +GstVideoMarkClass +GST_VIDEO_MARK +GST_IS_VIDEO_MARK +GST_TYPE_VIDEO_MARK +gst_video_mark_get_type +GST_VIDEO_MARK_CLASS +GST_IS_VIDEO_MARK_CLASS +
+ +
+element-videoparse +videoparse +GstVideoParse + +GstVideoParseClass +GST_VIDEO_PARSE +GST_VIDEO_PARSE_CLASS +GST_IS_VIDEO_PARSE +GST_IS_VIDEO_PARSE_CLASS +GST_TYPE_VIDEO_PARSE +gst_video_parse_get_type +
+ +
+element-waterripple +waterripple +GstWaterRipple + +GstWaterRippleClass +GST_WATER_RIPPLE +GST_WATER_RIPPLE_CAST +GST_WATER_RIPPLE_CLASS +GST_IS_WATER_RIPPLE +GST_IS_WATER_RIPPLE_CLASS +GST_TYPE_WATER_RIPPLE +gst_water_ripple_get_type +gst_water_ripple_plugin_init +
+ +
+element-wildmidi +wildmidi +GstWildmidi + +GstWildmidiClass +GST_WILDMIDI +GST_WILDMIDI_CLASS +GST_IS_WILDMIDI +GST_IS_WILDMIDI_CLASS +GST_TYPE_WILDMIDI +
+ +
+element-vp8dec +vp8dec +GstVP8Dec + +GstVP8DecClass +GST_VP8_DEC +GST_VP8_DEC_CLASS +GST_IS_VP8_DEC +GST_IS_VP8_DEC_CLASS +GST_TYPE_VP8_DEC +gst_vp8_dec_get_type +
+ +
+element-vp8enc +vp8enc +GstVP8Enc + +GstVP8EncClass +GST_VP8_ENC +GST_VP8_ENC_CLASS +GST_IS_VP8_ENC +GST_IS_VP8_ENC_CLASS +GST_TYPE_VP8_ENC +gst_vp8_enc_get_type +
+ +
+element-zbar +zbar +GstZBar + +GstZBarClass +GST_ZBAR +GST_ZBAR_CLASS +GST_IS_ZBAR +GST_IS_ZBAR_CLASS +GST_TYPE_ZBAR +
+ +# gst-libs + +
+gstphotography +GstPhotography +GstPhotography +GstPhotographyNoiseReduction +GstWhiteBalanceMode +GstColourToneMode +GstSceneMode +GstFlashMode +GstFlickerReductionMode +GstFocusMode +GstFocusStatus +GstPhotoCaps +GstPhotoShakeRisk +GstPhotoSettings +GstPhotoCapturePrepared +gst_photography_get_ev_compensation +gst_photography_get_iso_speed +gst_photography_get_aperture +gst_photography_get_exposure +gst_photography_get_white_balance_mode +gst_photography_get_colour_tone_mode +gst_photography_get_scene_mode +gst_photography_get_flash_mode +gst_photography_get_noise_reduction +gst_photography_get_zoom +gst_photography_set_ev_compensation +gst_photography_set_iso_speed +gst_photography_set_aperture +gst_photography_set_exposure +gst_photography_set_white_balance_mode +gst_photography_set_colour_tone_mode +gst_photography_set_scene_mode +gst_photography_set_flash_mode +gst_photography_set_noise_reduction +gst_photography_set_zoom +gst_photography_get_capabilities +gst_photography_prepare_for_capture +gst_photography_set_autofocus +gst_photography_set_config +gst_photography_get_config + +GST_PHOTOGRAPHY +GST_IS_PHOTOGRAPHY +GST_PHOTOGRAPHY_GET_IFACE +gst_photography_get_type +
+ diff --git a/docs/plugins/gst-plugins-bad-plugins.args b/docs/plugins/gst-plugins-bad-plugins.args new file mode 100644 index 0000000..9408b2b --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.args @@ -0,0 +1,47935 @@ + +AlsaSPDIFSink::card +gint +>= 0 +rw +Card +ALSA card number for the SPDIF device to use. +0 + + + +GstPitch::pitch +gfloat +[0.1,10] +rw +Pitch +Audio stream pitch. +1 + + + +GstPitch::rate +gfloat +[0.1,10] +rw +Rate +Audio stream rate. +1 + + + +GstPitch::tempo +gfloat +[0.1,10] +rw +Tempo +Audio stream tempo. +1 + + + +GstXvidEnc::averaging-period +gint +[G_MAXULONG,100] +rw +Averaging Period +[CBR] Number of frames for which XviD averages bitrate. +-1 + + + +GstXvidEnc::bframe-threshold +gint +[-255,255] +rw +B-Frame Threshold +Higher threshold yields more chance that B-frame is used. +0 + + + +GstXvidEnc::bitrate +gint +>= 0 +rw +Bitrate +[CBR|PASS2] Target video bitrate (bps). +1800000 + + + +GstXvidEnc::bquant-offset +gint +[0,200] +rw +B-quantizer offset +Offset in B-frame quantizer computation. +100 + + + +GstXvidEnc::bquant-ratio +gint +[0,200] +rw +B-quantizer ratio +Ratio in B-frame quantizer computation. +150 + + + +GstXvidEnc::buffer +gint +>= G_MAXULONG +rw +Buffer Size +[CBR] Size of the video buffers. +-1 + + + +GstXvidEnc::cartoon +gboolean + +rw +Cartoon Material +Adjust thresholds for flat looking cartoons. +FALSE + + + +GstXvidEnc::closed-gop +gboolean + +rw +Closed GOP +Closed GOP. +FALSE + + + +GstXvidEnc::container-frame-overhead +gint +[G_MAXULONG,100] +rw +Container Frame Overhead +[PASS2] Average container overhead per frame. +-1 + + + +GstXvidEnc::curve-compression-high +gint +[0,100] +rw +Curve Compression High +[PASS2] Shrink factor for upper part of bitrate curve. +0 + + + +GstXvidEnc::curve-compression-low +gint +[0,100] +rw +Curve Compression Low +[PASS2] Growing factor for lower part of bitrate curve. +0 + + + +GstXvidEnc::flow-control-strength +gint +[G_MAXULONG,100] +rw +Flow Control Strength +[PASS2] Overflow control strength per frame. +5 + + + +GstXvidEnc::gmc +gboolean + +rw +Global Motion Compensation +Allow generation of Sprite Frames for Pan/Zoom/Rotating images. +FALSE + + + +GstXvidEnc::greyscale +gboolean + +rw +Disable Chroma +Do not write chroma data in encoded video. +FALSE + + + +GstXvidEnc::hqacpred +gboolean + +rw +High quality AC prediction +Enable high quality AC prediction. +TRUE + + + +GstXvidEnc::interlaced +gboolean + +rw +Interlaced Material +Enable for interlaced video material. +FALSE + + + +GstXvidEnc::keyframe-boost +gint +[0,100] +rw +Keyframe boost +[PASS2] Bitrate boost for keyframes. +0 + + + +GstXvidEnc::keyframe-reduction +gint +[G_MAXULONG,100] +rw +Keyframe Reduction +[PASS2] Keyframe size reduction in % of those within threshold. +20 + + + +GstXvidEnc::keyframe-threshold +gint +[G_MAXULONG,100] +rw +Keyframe Threshold +[PASS2] Distance between keyframes not to be subject to reduction. +1 + + + +GstXvidEnc::lumimasking +gboolean + +rw +Lumimasking +Enable lumimasking - apply more compression to dark or bright areas. +FALSE + + + +GstXvidEnc::max-bframes +gint +>= 0 +rw +Max B-Frames +Maximum B-frames in a row. +1 + + + +GstXvidEnc::max-bquant +gint +[0,31] +rw +Max Quant B-Frames +Upper bound for B-frame quantization. +31 + + + +GstXvidEnc::max-iquant +gint +[0,31] +rw +Max Quant I-Frames +Upper bound for I-frame quantization. +31 + + + +GstXvidEnc::max-key-interval +gint +>= -100 +rw +Max. Key Interval +Maximum number of frames between two keyframes (< 0 is in sec). +-10 + + + +GstXvidEnc::max-overflow-degradation +gint +[G_MAXULONG,100] +rw +Max Overflow Degradation +[PASS2] Amount in % that flow control can decrease frame size compared to ideal curve. +5 + + + +GstXvidEnc::max-overflow-improvement +gint +[G_MAXULONG,100] +rw +Max Overflow Improvement +[PASS2] Amount in % that flow control can increase frame size compared to ideal curve. +5 + + + +GstXvidEnc::max-pquant +gint +[0,31] +rw +Max Quant P-Frames +Upper bound for P-frame quantization. +31 + + + +GstXvidEnc::me-chroma +gboolean + +rw +ME Chroma +Enable use of Chroma planes for Motion Estimation. +TRUE + + + +GstXvidEnc::me-quarterpel +gboolean + +rw +ME Quarterpel +Use quarter pixel precision for motion vector search. +FALSE + + + +GstXvidEnc::me-vhq +gint +[0,4] +rw +ME DCT/Frequency +Extent in which to use DCT to minimize encoding length. +1 + + + +GstXvidEnc::min-bquant +gint +[0,31] +rw +Min Quant B-Frames +Lower bound for B-frame quantization. +2 + + + +GstXvidEnc::min-iquant +gint +[0,31] +rw +Min Quant I-Frames +Lower bound for I-frame quantization. +2 + + + +GstXvidEnc::min-pquant +gint +[0,31] +rw +Min Quant P-Frames +Lower bound for P-frame quantization. +2 + + + +GstXvidEnc::motion +gint +[0,6] +rw +ME Quality +Quality of Motion Estimation. +6 + + + +GstXvidEnc::pass +GstXvidEncPasses + +rw +Encoding pass/type +Encoding pass/type. +Constant Bitrate Encoding + + + +GstXvidEnc::profile +GstXvidEncProfiles + +rw +Profile +XviD/MPEG-4 encoding profile. +UNP + + + +GstXvidEnc::quant-type +GstXvidEncQuantTypes + +rw +Quantizer Type +Quantizer type. +H263 quantization + + + +GstXvidEnc::quantizer +gint +[2,31] +rw +Quantizer +[QUANT] Quantizer to apply for constant quantizer mode. +2 + + + +GstXvidEnc::reaction-delay-factor +gint +[G_MAXULONG,100] +rw +Reaction Delay Factor +[CBR] Reaction delay factor. +-1 + + + +GstXvidEnc::statsfile +gchar* + +rw +Statistics Filename +[PASS1|PASS2] Filename to store data for 2-pass encoding. +"xvid-stats.log" + + + +GstXvidEnc::trellis +gboolean + +rw +Trellis Quantization +Enable Trellis Quantization. +FALSE + + + +GstWavpackEnc::bitrate +guint +<= 9600000 +rw +Bitrate +Try to encode with this average bitrate (bits/sec). This enables lossy encoding, values smaller than 24000 disable it again. +0 + + + +GstWavpackEnc::bits-per-sample +gdouble +[0,24] +rw +Bits per sample +Try to encode with this amount of bits per sample. This enables lossy encoding, values smaller than 2.0 disable it again. +0 + + + +GstWavpackEnc::correction-mode +GstWavpackEncCorrectionMode + +rw +Correction stream mode +Use this mode for the correction stream. Only works in lossy mode!. +Create no correction file + + + +GstWavpackEnc::extra-processing +guint +<= 6 +rw +Extra processing +Use better but slower filters for better compression/quality. +0 + + + +GstWavpackEnc::joint-stereo-mode +GstWavpackEncJSMode + +rw +Joint-Stereo mode +Use this joint-stereo mode. +auto + + + +GstWavpackEnc::md5 +gboolean + +rw +MD5 +Store MD5 hash of raw samples within the file. +FALSE + + + +GstWavpackEnc::mode +GstWavpackEncMode + +rw +Encoding mode +Speed versus compression tradeoff. +Normal Compression + + + +GstSDLVideoSink::fullscreen +gboolean + +rw +Fullscreen +If true it will be Full screen. +FALSE + + + +GstNeonhttpSrc::location +gchar* + +rw +Location +Location to read from. +"" + + + +GstNeonhttpSrc::proxy +gchar* + +rw +Proxy +Proxy server to use, in the form HOSTNAME:PORT. Defaults to the http_proxy environment variable. +"" + + + +GstNeonhttpSrc::uri +gchararray + +rw +Uri +The location in form of a URI (deprecated; use location). +"" + + + +GstNeonhttpSrc::automatic-redirect +gboolean + +rw +automatic-redirect +Automatically follow HTTP redirects (HTTP Status Code 3xx). +TRUE + + + +GstNeonhttpSrc::iradio-genre +gchar* + +r +iradio-genre +Genre of the stream. +NULL + + + +GstNeonhttpSrc::iradio-mode +gboolean + +rw +iradio-mode +Enable internet radio mode (extraction of shoutcast/icecast metadata). +FALSE + + + +GstNeonhttpSrc::iradio-name +gchar* + +r +iradio-name +Name of the stream. +NULL + + + +GstNeonhttpSrc::iradio-url +gchar* + +r +iradio-url +Homepage URL for radio stream. +NULL + + + +GstNeonhttpSrc::neon-http-debug +gboolean + +rw +neon-http-debug +Enable Neon HTTP debug messages. +FALSE + + + +GstNeonhttpSrc::user-agent +gchar* + +rw +User-Agent +Value of the User-Agent HTTP request header field. +"GStreamer neonhttpsrc" + + + +GstNeonhttpSrc::accept-self-signed +gboolean + +rw +accept-self-signed +Accept self-signed SSL/TLS certificates. +FALSE + + + +GstNeonhttpSrc::connect-timeout +guint +<= 3600 +rw +connect-timeout +Value in seconds to timeout a blocking connection (0 = default). +0 + + + +GstNeonhttpSrc::cookies +GStrv + +rw +Cookies +HTTP request cookies. + + + + +GstNeonhttpSrc::read-timeout +guint +<= 3600 +rw +read-timeout +Value in seconds to timeout a blocking read (0 = default). +0 + + + +GstTRM::proxy-address +gchar* + +rw +proxy address +proxy address. +NULL + + + +GstTRM::proxy-port +guint +[1,65535] +rw +proxy port +proxy port. +8080 + + + +GstMpeg2enc::altscan-mpeg2 +gboolean + +rw +Alt. MPEG-2 scan +Alternate MPEG-2 block scanning. Disabling this might make buggy players play SVCD streams. +TRUE + + + +GstMpeg2enc::aspect +GstMpeg2encAspect + +rw +Aspect +Display aspect ratio. +Deduce from input + + + +GstMpeg2enc::b-per-refframe +gint +[0,2] +rw +B per ref. frame +Number of B frames between each I/P frame. +0 + + + +GstMpeg2enc::bitrate +gint +[0,10000] +rw +Bitrate +Compressed video bitrate (kbps). +1125 + + + +GstMpeg2enc::bufsize +gint +[20,4000] +rw +Decoder buf. size +Target decoders video buffer size (kB) (default depends on format). +46 + + + +GstMpeg2enc::closed-gop +gboolean + +rw +Closed GOP +All Group-of-Pictures are closed (for multi-angle DVDs). +FALSE + + + +GstMpeg2enc::constraints +gboolean + +rw +Constraints +Use strict video resolution and bitrate checks. +TRUE + + + +GstMpeg2enc::correct-svcd-hds +gboolean + +rw +Correct SVCD hor. size +Force SVCD width to 480 instead of 540/720. +FALSE + + + +GstMpeg2enc::dualprime +gboolean + +rw +Dual Prime Motion Estimation +Dual Prime Motion Estimation Mode for MPEG-2 I/P-frame only streams. Quite some players do not support this. +FALSE + + + +GstMpeg2enc::dummy-svcd-sof +gboolean + +rw +Dummy SVCD SOF +Generate dummy SVCD scan-data (for vcdimager). +TRUE + + + +GstMpeg2enc::force-b-b-p +gboolean + +rw +Force B-B-P +Force two B frames between I/P frames when closing GOP boundaries. +FALSE + + + +GstMpeg2enc::format +GstMpeg2encFormat + +rw +Format +Encoding profile format. +Generic MPEG-1 + + + +GstMpeg2enc::framerate +GstMpeg2encFramerate + +rw +Framerate +Output framerate. +Same as input + + + +GstMpeg2enc::interlace-mode +GstMpeg2encInterlaceMode + +rw +Interlace mode +MPEG-2 motion estimation and encoding modes. +Progressive + + + +GstMpeg2enc::intra-dc-prec +gint +[8,11] +rw +Intra. DC precision +Number of bits precision for DC (base colour) in MPEG-2 blocks. +9 + + + +GstMpeg2enc::keep-hf +gboolean + +rw +Keep HF +Maximize high-frequency resolution (for high-quality sources). +FALSE + + + +GstMpeg2enc::max-gop-size +gint +[G_MAXULONG,250] +rw +Max. GOP size +Maximal size per Group-of-Pictures (-1=default). +-1 + + + +GstMpeg2enc::min-gop-size +gint +[G_MAXULONG,250] +rw +Min. GOP size +Minimal size per Group-of-Pictures (-1=default). +-1 + + + +GstMpeg2enc::motion-search-radius +gint +[0,32] +rw +Motion search radius +Motion compensation search radius. +16 + + + +GstMpeg2enc::non-video-bitrate +gint +[0,10000] +rw +Non-video bitrate +Assumed bitrate of non-video for sequence splitting (kbps). +0 + + + +GstMpeg2enc::norm +GstMpeg2encVideoNorm + +rw +Norm +Tag output for specific video norm. +Unspecified + + + +GstMpeg2enc::playback-field-order +GstMpeg2encPlaybackFieldOrders + +rw +Playback field order +Force specific playback field order. +Unspecified + + + +GstMpeg2enc::pulldown-3-2 +gboolean + +rw +3-2 pull down +Generate header flags for 3-2 pull down 24fps movies. +FALSE + + + +GstMpeg2enc::quant-matrix +GstMpeg2encQuantisationMatrix + +rw +Quant. matrix +Quantisation matrix to use for encoding. +Default + + + +GstMpeg2enc::quant-reduction-max-var +gfloat +[0,2500] +rw +Max. quant. reduction variance +Maximal luma variance below which quantisation boost is used. +100 + + + +GstMpeg2enc::quantisation +gint +[G_MAXULONG,31] +rw +Quantisation +Quantisation factor (-1=cbr, 0=default, 1=best, 31=worst). +0 + + + +GstMpeg2enc::quantisation-reduction +gfloat +[-4,10] +rw +Quantisation reduction +Max. quantisation reduction for highly active blocks. +0 + + + +GstMpeg2enc::reduce-hf +gfloat +[0,2] +rw +Reduce HF +How much to reduce high-frequency resolution (by increasing quantisation). +0 + + + +GstMpeg2enc::reduction-2x2 +gint +[1,4] +rw +2x2 reduction +Reduction factor for 2x2 subsampled candidate motion estimates (1=max. quality, 4=max. speed). +3 + + + +GstMpeg2enc::reduction-4x4 +gint +[1,4] +rw +4x4 reduction +Reduction factor for 4x4 subsampled candidate motion estimates (1=max. quality, 4=max. speed). +2 + + + +GstMpeg2enc::sequence-header-every-gop +gboolean + +rw +Sequence hdr. every GOP +Include a sequence header in every GOP. +FALSE + + + +GstMpeg2enc::sequence-length +gint +[0,10240] +rw +Sequence length +Place a sequence boundary after each MB (0=disable). +0 + + + +GstMpeg2enc::unit-coeff-elim +gint +[-40,40] +rw +Unit coefficience elimination +How agressively small-unit picture blocks should be skipped. +0 + + + +GstMpeg2enc::vcd-still-size +gint +[0,512] +rw +VCD stills size +Size of VCD stills (in KB). +0 + + + +GstBz2dec::buffer-size +guint +>= 1 +rw +Buffer size +Buffer size. +1024 + + + +GstBz2dec::first-buffer-size +guint +>= 1 +rw +Size of first buffer +Size of first buffer (used to determine the mime type of the uncompressed data). +1024 + + + +GstBz2enc::block-size +guint +[1,9] +rw +Block size +Block size. +6 + + + +GstBz2enc::buffer-size +guint +>= 1 +rw +Buffer size +Buffer size. +1024 + + + +GstMMS::location +gchar* + +rw +location +Host URL to connect to. Accepted are mms://, mmsu://, mmst:// URL types. +NULL + + + +GstMMS::connection-speed +guint +<= 2147483 +rw +Connection Speed +Network connection speed in kbps (0 = unknown). +0 + + + +GstFaac::bitrate +gint +[8000,320000] +rw +Bitrate (bps) +Bitrate in bits/sec. +128000 + + + +GstFaac::midside +gboolean + +rw +Midside +Allow mid/side encoding. +TRUE + + + +GstFaac::outputformat +GstFaacOutputFormat + +rw +Output format +Format of output frames. +OUTPUTFORMAT_RAW + + + +GstFaac::profile +GstFaacProfile + +rw +Profile +MPEG/AAC encoding profile. +LC + + + +GstFaac::shortctl +GstFaacShortCtl + +rw +Block type +Block type encorcing. +SHORTCTL_NORMAL + + + +GstFaac::tns +gboolean + +rw +TNS +Use temporal noise shaping. +FALSE + + + +GstDtsDec::drc +gboolean + +rw +Dynamic Range Compression +Use Dynamic Range Compression. +FALSE + + + +GstDfbVideoSink::brightness +gint +[0,65535] +rw +Brightness +The brightness of the video. +32768 + + + +GstDfbVideoSink::contrast +gint +[0,65535] +rw +Contrast +The contrast of the video. +32768 + + + +GstDfbVideoSink::hue +gint +[0,65535] +rw +Hue +The hue of the video. +32768 + + + +GstDfbVideoSink::pixel-aspect-ratio +gchar* + +rw +Pixel Aspect Ratio +The pixel aspect ratio of the device. +"1/1" + + + +GstDfbVideoSink::saturation +gint +[0,65535] +rw +Saturation +The saturation of the video. +32768 + + + +GstDfbVideoSink::surface +gpointer + +w +Surface +The target surface for video. + + + + +GstDfbVideoSink::vsync +gboolean + +rw +Vertical synchronisation +Wait for next vertical sync to draw frames. +TRUE + + + +GstGLImageSink::display +gchar* + +rw +Display +X Display name. +NULL + + + +GstRgAnalysis::forced +gboolean + +rw +Forced +Analyze even if ReplayGain tags exist. +TRUE + + + +GstRgAnalysis::num-tracks +gint +>= 0 +rw +Number of album tracks +Number of remaining album tracks. +0 + + + +GstRgAnalysis::reference-level +gdouble +[0,150] +rw +Reference level +Reference level [dB]. +89 + + + +GstNsfDec::filter +GstNsfFilter + +w +filter +filter. +NSF_FILTER_NONE + + + +GstNsfDec::tune +gint +[1,100] +rw +tune +tune. +1 + + + +GstGDPPay::crc-header +gboolean + +rw +CRC Header +Calculate and store a CRC checksum on the header. +TRUE + + + +GstGDPPay::crc-payload +gboolean + +rw +CRC Payload +Calculate and store a CRC checksum on the payload. +FALSE + + + +GstGDPPay::version +GstDPVersion + +rw +Version +Version of the GStreamer Data Protocol. +GDP Version 1.0 + + + +GstFreeze::max-buffers +guint + +rw +max-buffers +Maximum number of buffers. +1 + + + +GstVideoCrop::bottom +gint +>= 0 +rw +Bottom +Pixels to crop at bottom. +0 + + + +GstVideoCrop::left +gint +>= 0 +rw +Left +Pixels to crop at left. +0 + + + +GstVideoCrop::right +gint +>= 0 +rw +Right +Pixels to crop at right. +0 + + + +GstVideoCrop::top +gint +>= 0 +rw +Top +Pixels to crop at top. +0 + + + +GstSpeed::speed +gfloat +[0.1,40] +rwx +speed +speed. +1 + + + +GstModPlug::megabass +gboolean + +rw +megabass +Megabass. +FALSE + + + +GstModPlug::megabass-amount +gint +[0,100] +rw +megabass amount +Megabass amount. +40 + + + +GstModPlug::megabass-range +gint +[0,100] +rw +megabass range +Megabass range. +30 + + + +GstModPlug::noise-reduction +gboolean + +rw +noise reduction +noise reduction. +TRUE + + + +GstModPlug::oversamp +gboolean + +rw +oversamp +oversamp. +TRUE + + + +GstModPlug::reverb +gboolean + +rw +reverb +Reverb. +FALSE + + + +GstModPlug::reverb-delay +gint +[0,200] +rw +reverb delay +Reverb delay. +100 + + + +GstModPlug::reverb-depth +gint +[0,100] +rw +reverb depth +Reverb depth. +30 + + + +GstModPlug::songname +gchar* + +r +Songname +The song name. +NULL + + + +GstModPlug::surround +gboolean + +rw +surround +Surround. +TRUE + + + +GstModPlug::surround-delay +gint +[0,40] +rw +surround delay +Surround delay. +20 + + + +GstModPlug::surround-depth +gint +[0,100] +rw +surround depth +Surround depth. +20 + + + +GstIIR::A +gdouble + +rw +A +A filter coefficient. +0 + + + +GstIIR::B +gdouble + +rw +B +B filter coefficient. +0 + + + +GstIIR::gain +gdouble + +rw +Gain +Filter gain. +0 + + + +GstIIR::stages +gint +>= 1 +rw +Stages +Number of filter stages. +1 + + + +GstDvbSrc::bandwidth +GstDvbSrcBandwidth + +rw +bandwidth +Bandwidth (DVB-T). +7 + + + +GstDvbSrc::code-rate-hp +GstDvbSrcCode_Rate + +rw +code-rate-hp +High Priority Code Rate (DVB-T, DVB-S and DVB-C). +AUTO + + + +GstDvbSrc::code-rate-lp +GstDvbSrcCode_Rate + +rw +code-rate-lp +Low Priority Code Rate (DVB-T). +1/2 + + + +GstDvbSrc::device +gchararray + +rw +device +The device directory. +"/dev/dvb/adapter0" + + + +GstDvbSrc::diseqc-src +gint +[-1,7] +rw +diseqc_src +DISEqC selected source (-1 disabled) (DVB-S). +-1 + + + +GstDvbSrc::freq +gint +>= 0 +rw +freq +Frequency. +0 + + + +GstDvbSrc::guard +GstDvbSrcGuard + +rw +guard +Guard Interval (DVB-T). +16 + + + +GstDvbSrc::hierarchy +GstDvbSrcHierarchy + +rw +hierarchy +Hierarchy Information (DVB-T). +1 + + + +GstDvbSrc::inversion +GstDvbSrcInversion + +rw +inversion +Inversion Information (DVB-T and DVB-C). +ON + + + +GstDvbSrc::modulation +GstDvbSrcModulation + +rw +modulation +Modulation (DVB-T and DVB-C). +QAM 16 + + + +GstDvbSrc::pids +gchar* + +w +pids +Colon seperated list of pids (eg. 110:120). +"8192" + + + +GstDvbSrc::pol +gchararray + +rw +pol +Polarity [vhHV] (DVB-S). +"h" + + + +GstDvbSrc::srate +gint +>= 0 +rw +srate +Symbol Rate (DVB-S, DVB-C). +0 + + + +GstDvbSrc::trans-mode +GstDvbSrcTransmission_Mode + +rw +trans-mode +Transmission Mode (DVB-T). +8K + + + +GstDvbSrc::tune +gpointer + +w +tune +Atomically tune to channel. (For Apps). + + + + +GstDvbSrc::adapter +gint +[0,16] +rw +The adapter device number +The adapter device number (eg. 0 for adapter0). +0 + + + +GstDvbSrc::diseqc-source +gint +[G_MAXULONG,7] +rw +diseqc source +DISEqC selected source (-1 disabled) (DVB-S). +-1 + + + +GstDvbSrc::frequency +guint + +rw +frequency +Frequency. +0 + + + +GstDvbSrc::frontend +gint +[0,16] +rw +The frontend device number +The frontend device number (eg. 0 for frontend0). +0 + + + +GstDvbSrc::polarity +gchar* + +rwx +polarity +Polarity [vhHV] (DVB-S). +"H" + + + +GstDvbSrc::symbol-rate +guint + +rw +symbol rate +Symbol Rate (DVB-S, DVB-C). +0 + + + +GstDvbSrc::stats-reporting-interval +guint + +rw +stats-reporting-interval +The number of reads before reporting frontend stats. +100 + + + +GstRfbSrc::host +gchar* + +rw +Host to connect to +Host to connect to. +"127.0.0.1" + + + +GstRfbSrc::port +gint +[1,65535] +rw +Port +Port. +5900 + + + +GstRfbSrc::password +gchar* + +w +Password for authentication +Password for authentication. +"" + + + +GstRfbSrc::version +gchar* + +rw +RFB protocol version +RFB protocol version. +"3.3" + + + +GstRfbSrc::height +gint +[0,65535] +rw +height of screen +height of screen. +0 + + + +GstRfbSrc::incremental +gboolean + +rw +Incremental updates +Incremental updates. +TRUE + + + +GstRfbSrc::offset-x +gint +[0,65535] +rw +x offset for screen scrapping +x offset for screen scrapping. +0 + + + +GstRfbSrc::offset-y +gint +[0,65535] +rw +y offset for screen scrapping +y offset for screen scrapping. +0 + + + +GstRfbSrc::width +gint +[0,65535] +rw +width of screen +width of screen. +0 + + + +GstRfbSrc::use-copyrect +gboolean + +rw +Use copyrect encoding +Use copyrect encoding. +FALSE + + + +GstRfbSrc::shared +gboolean + +rw +Share desktop with other clients +Share desktop with other clients. +TRUE + + + +GstRfbSrc::view-only +gboolean + +rw +Only view the desktop +only view the desktop. +FALSE + + + +ladspa-HRTF::pan +gint +[-36,36] +rwx +pan +pan. +0 + + + +ladspa-Dirac::damping +gfloat +[0,1] +rwx +damping +damping. +0 + + + +ladspa-Dirac::ppm +gfloat +[30,60] +rwx +ppm +ppm. +30 + + + +ladspa-Dirac::volume +gfloat +[0,1] +rwx +volume +volume. +0 + + + +ladspa-Click::bpm +gfloat +[4,244] +rwx +bpm +bpm. +64 + + + +ladspa-Click::damping +gfloat +[0,1] +rwx +damping +damping. +0,75 + + + +ladspa-Click::volume +gfloat +[0,1] +rwx +volume +volume. +0,5 + + + +ladspa-Plate2x2::bandwidth +gfloat +[0,005,0,999] +rwx +bandwidth +bandwidth. +0,502 + + + +ladspa-Plate2x2::blend +gfloat +[0,1] +rwx +blend +blend. +0,25 + + + +ladspa-Plate2x2::damping +gfloat +[0,0005,1] +rwx +damping +damping. +0,250375 + + + +ladspa-Plate2x2::tail +gfloat +[0,0,749] +rwx +tail +tail. +0,3745 + + + +ladspa-Plate::bandwidth +gfloat +[0,005,0,999] +rwx +bandwidth +bandwidth. +0,502 + + + +ladspa-Plate::blend +gfloat +[0,1] +rwx +blend +blend. +0,25 + + + +ladspa-Plate::damping +gfloat +[0,0005,1] +rwx +damping +damping. +0,250375 + + + +ladspa-Plate::tail +gfloat +[0,0,749] +rwx +tail +tail. +0,3745 + + + +ladspa-JVRev::blend +gfloat +[0,0,28] +rwx +blend +blend. +0,07 + + + +ladspa-JVRev::t60 +gfloat +[0,4,6] +rwx +t60 +t60. +2,3 + + + +ladspa-Roessler::h +gfloat +[0,1] +rwx +h +h. +0 + + + +ladspa-Roessler::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-Roessler::x +gfloat +[0,1] +rwx +x +x. +1 + + + +ladspa-Roessler::y +gfloat +[0,1] +rwx +y +y. +0,5 + + + +ladspa-Roessler::z +gfloat +[0,1] +rwx +z +z. +0 + + + +ladspa-Lorenz::h +gfloat +[0,1] +rwx +h +h. +0 + + + +ladspa-Lorenz::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-Lorenz::x +gfloat +[0,1] +rwx +x +x. +1 + + + +ladspa-Lorenz::y +gfloat +[0,1] +rwx +y +y. +0 + + + +ladspa-Lorenz::z +gfloat +[0,1] +rwx +z +z. +0 + + + +ladspa-White::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-Sin::f +gfloat +[0,0001,20000] +rwx +f +f. +100 + + + +ladspa-Sin::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-CEO::damping +gfloat +[0,1] +rwx +damping +damping. +0 + + + +ladspa-CEO::mpm +gfloat +[4,244] +rwx +mpm +mpm. +184 + + + +ladspa-CEO::volume +gfloat +[0,1] +rwx +volume +volume. +0,5 + + + +ladspa-VCOd::blend +gfloat +[-1,1] +rwx +blend +blend. +0,5 + + + +ladspa-VCOd::f +gfloat +[1,5751] +rwx +f +f. +100 + + + +ladspa-VCOd::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-VCOd::param-1-------square +gfloat +[0,1] +rwx +param-1-------square +param-1-------square. +0 + + + +ladspa-VCOd::param-1--tri----saw +gfloat +[0,1] +rwx +param-1--tri----saw +param-1--tri----saw. +0 + + + +ladspa-VCOd::param-2-------square +gfloat +[0,1] +rwx +param-2-------square +param-2-------square. +0 + + + +ladspa-VCOd::param-2--tri----saw +gfloat +[0,1] +rwx +param-2--tri----saw +param-2--tri----saw. +0 + + + +ladspa-VCOd::param-2--tune +gfloat +[-12,12] +rwx +param-2--tune +param-2--tune. +0 + + + +ladspa-VCOd::sync +gfloat +[0,1] +rwx +sync +sync. +0 + + + +ladspa-VCOd::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-VCOs::f +gfloat +[1,5751] +rwx +f +f. +100 + + + +ladspa-VCOs::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-VCOs::param------square +gfloat +[0,1] +rwx +param------square +param------square. +0 + + + +ladspa-VCOs::tri----saw +gfloat +[0,1] +rwx +tri----saw +tri----saw. +0 + + + +ladspa-VCOs::volume +gfloat +[1e-06,1] +rwx +volume +volume. +0,5 + + + +ladspa-Scape::blend +gfloat +[0,1] +rwx +blend +blend. +0,75 + + + +ladspa-Scape::bpm +gfloat +[30,240] +rwx +bpm +bpm. +82,5 + + + +ladspa-Scape::divider +gint +[2,4] +rwx +divider +divider. +2 + + + +ladspa-Scape::dry +gfloat +[0,1] +rwx +dry +dry. +0,25 + + + +ladspa-Scape::feedback +gfloat +[0,1] +rwx +feedback +feedback. +0,25 + + + +ladspa-SweepVFII::Q +gfloat +[0,001,0,999] +rwx +Q +Q. +0,5 + + + +ladspa-SweepVFII::Q-depth-x +gfloat +[0,1] +rwx +Q-depth-x +Q-depth-x. +0,25 + + + +ladspa-SweepVFII::Q-depth-y +gfloat +[0,1] +rwx +Q-depth-y +Q-depth-y. +0,5 + + + +ladspa-SweepVFII::Q-depth-z +gfloat +[0,1] +rwx +Q-depth-z +Q-depth-z. +1 + + + +ladspa-SweepVFII::Q-h +gfloat +[0,001,1] +rwx +Q-h +Q-h. +0,25075 + + + +ladspa-SweepVFII::f +gfloat +[83,3383] +rwx +f +f. +209,717 + + + +ladspa-SweepVFII::f-depth-x +gfloat +[0,1] +rwx +f-depth-x +f-depth-x. +0,25 + + + +ladspa-SweepVFII::f-depth-y +gfloat +[0,1] +rwx +f-depth-y +f-depth-y. +0,5 + + + +ladspa-SweepVFII::f-depth-z +gfloat +[0,1] +rwx +f-depth-z +f-depth-z. +1 + + + +ladspa-SweepVFII::f-h +gfloat +[0,001,1] +rwx +f-h +f-h. +0,25075 + + + +ladspa-SweepVFII::mode +gint +[0,1] +rwx +mode +mode. +1 + + + +ladspa-SweepVFI::Q +gfloat +[0,001,0,999] +rwx +Q +Q. +0,5 + + + +ladspa-SweepVFI::depth-x +gfloat +[0,1] +rwx +depth-x +depth-x. +0,25 + + + +ladspa-SweepVFI::depth-y +gfloat +[0,1] +rwx +depth-y +depth-y. +0,5 + + + +ladspa-SweepVFI::depth-z +gfloat +[0,1] +rwx +depth-z +depth-z. +1 + + + +ladspa-SweepVFI::f +gfloat +[83,3383] +rwx +f +f. +209,717 + + + +ladspa-SweepVFI::h +gfloat +[0,001,1] +rwx +h +h. +0,25075 + + + +ladspa-SweepVFI::mode +gint +[0,1] +rwx +mode +mode. +1 + + + +ladspa-PhaserII::depth +gfloat +[0,1] +rwx +depth +depth. +0,75 + + + +ladspa-PhaserII::feedback +gfloat +[0,0,999] +rwx +feedback +feedback. +0,74925 + + + +ladspa-PhaserII::rate +gfloat +[0,1] +rwx +rate +rate. +0,25 + + + +ladspa-PhaserII::spread +gfloat +[0,1,5708] +rwx +spread +spread. +0,392699 + + + +ladspa-PhaserI::depth +gfloat +[0,1] +rwx +depth +depth. +0,75 + + + +ladspa-PhaserI::feedback +gfloat +[0,0,999] +rwx +feedback +feedback. +0,74925 + + + +ladspa-PhaserI::rate +gfloat +[0,10] +rwx +rate +rate. +1 + + + +ladspa-PhaserI::spread +gfloat +[0,3,14159] +rwx +spread +spread. +0,785398 + + + +ladspa-StereoChorusII::blend +gfloat +[0,1] +rwx +blend +blend. +1 + + + +ladspa-StereoChorusII::feedback +gfloat +[0,1] +rwx +feedback +feedback. +0 + + + +ladspa-StereoChorusII::feedforward +gfloat +[0,1] +rwx +feedforward +feedforward. +0,5 + + + +ladspa-StereoChorusII::rate +gfloat +[0,1] +rwx +rate +rate. +0,25 + + + +ladspa-StereoChorusII::t +gfloat +[2,5,40] +rwx +t +t. +11,875 + + + +ladspa-StereoChorusII::width +gfloat +[0,5,10] +rwx +width +width. +2,875 + + + +ladspa-ChorusII::blend +gfloat +[0,1] +rwx +blend +blend. +1 + + + +ladspa-ChorusII::feedback +gfloat +[0,1] +rwx +feedback +feedback. +0 + + + +ladspa-ChorusII::feedforward +gfloat +[0,1] +rwx +feedforward +feedforward. +0,25 + + + +ladspa-ChorusII::rate +gfloat +[0,1] +rwx +rate +rate. +0,25 + + + +ladspa-ChorusII::t +gfloat +[2,5,40] +rwx +t +t. +5 + + + +ladspa-ChorusII::width +gfloat +[0,5,10] +rwx +width +width. +1 + + + +ladspa-StereoChorusI::blend +gfloat +[0,1] +rwx +blend +blend. +1 + + + +ladspa-StereoChorusI::feedback +gfloat +[0,1] +rwx +feedback +feedback. +0 + + + +ladspa-StereoChorusI::feedforward +gfloat +[0,1] +rwx +feedforward +feedforward. +0,25 + + + +ladspa-StereoChorusI::phase +gfloat +[0,1] +rwx +phase +phase. +1 + + + +ladspa-StereoChorusI::rate +gfloat +[0,5] +rwx +rate +rate. +1,25 + + + +ladspa-StereoChorusI::t +gfloat +[2,5,40] +rwx +t +t. +2,5 + + + +ladspa-StereoChorusI::width +gfloat +[0,5,10] +rwx +width +width. +1 + + + +ladspa-ChorusI::blend +gfloat +[0,1] +rwx +blend +blend. +1 + + + +ladspa-ChorusI::feedback +gfloat +[0,1] +rwx +feedback +feedback. +0 + + + +ladspa-ChorusI::feedforward +gfloat +[0,1] +rwx +feedforward +feedforward. +0,25 + + + +ladspa-ChorusI::rate +gfloat +[0,5] +rwx +rate +rate. +1,25 + + + +ladspa-ChorusI::t +gfloat +[2,5,40] +rwx +t +t. +5 + + + +ladspa-ChorusI::width +gfloat +[0,5,10] +rwx +width +width. +1 + + + +ladspa-Clip::gain +gfloat +[-72,72] +rwx +gain +gain. +1 + + + +ladspa-Clip::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-CabinetII::gain +gfloat +[-24,24] +rwx +gain +gain. +0 + + + +ladspa-CabinetII::model +gint +[0,5] +rwx +model +model. +1 + + + +ladspa-CabinetI::gain +gfloat +[-24,24] +rwx +gain +gain. +0 + + + +ladspa-CabinetI::model +gint +[0,5] +rwx +model +model. +1 + + + +ladspa-AmpV::bass +gfloat +[-9,9] +rwx +bass +bass. +0 + + + +ladspa-AmpV::drive +gfloat +[0,0001,1] +rwx +drive +drive. +0,750025 + + + +ladspa-AmpV::gain +gfloat +[0,3] +rwx +gain +gain. +1 + + + +ladspa-AmpV::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-AmpV::tone +gfloat +[0,1] +rwx +tone +tone. +0 + + + +ladspa-AmpV::watts +gfloat +[5,150] +rwx +watts +watts. +77,5 + + + +ladspa-AmpIV::bass +gfloat +[-20,20] +rwx +bass +bass. +0 + + + +ladspa-AmpIV::drive +gfloat +[0,0001,1] +rwx +drive +drive. +1 + + + +ladspa-AmpIV::gain +gfloat +[0,10] +rwx +gain +gain. +1 + + + +ladspa-AmpIV::hi +gfloat +[-20,20] +rwx +hi +hi. +0 + + + +ladspa-AmpIV::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-AmpIV::mid +gfloat +[-20,20] +rwx +mid +mid. +0 + + + +ladspa-AmpIV::temperature +gfloat +[0,005,1] +rwx +temperature +temperature. +0,5025 + + + +ladspa-AmpIV::treble +gfloat +[-20,20] +rwx +treble +treble. +0 + + + +ladspa-AmpIII::drive +gfloat +[0,0001,1] +rwx +drive +drive. +1 + + + +ladspa-AmpIII::gain +gfloat +[0,10] +rwx +gain +gain. +1 + + + +ladspa-AmpIII::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-AmpIII::temperature +gfloat +[0,005,1] +rwx +temperature +temperature. +0,5025 + + + +ladspa-PreampIV::bass +gfloat +[-20,20] +rwx +bass +bass. +0 + + + +ladspa-PreampIV::gain +gfloat +[0,10] +rwx +gain +gain. +1 + + + +ladspa-PreampIV::hi +gfloat +[-20,20] +rwx +hi +hi. +0 + + + +ladspa-PreampIV::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-PreampIV::mid +gfloat +[-20,20] +rwx +mid +mid. +0 + + + +ladspa-PreampIV::temperature +gfloat +[0,005,1] +rwx +temperature +temperature. +0,5025 + + + +ladspa-PreampIV::treble +gfloat +[-20,20] +rwx +treble +treble. +0 + + + +ladspa-PreampIII::gain +gfloat +[0,10] +rwx +gain +gain. +1 + + + +ladspa-PreampIII::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-PreampIII::temperature +gfloat +[0,005,1] +rwx +temperature +temperature. +0,25375 + + + +ladspa-Pan::mono +gboolean + +rwx +mono +mono. +FALSE + + + +ladspa-Pan::pan +gfloat +[-1,1] +rwx +pan +pan. +0 + + + +ladspa-Pan::t +gfloat +[0,1,40] +rwx +t +t. +10,075 + + + +ladspa-Pan::width +gfloat +[0,1] +rwx +width +width. +0 + + + +ladspa-Compress::attack +gfloat +[0,001,1] +rwx +attack +attack. +0,001 + + + +ladspa-Compress::gain +gfloat +[0,24] +rwx +gain +gain. +6 + + + +ladspa-Compress::knee-radius +gfloat +[1,10] +rwx +knee-radius +knee-radius. +3,25 + + + +ladspa-Compress::ratio +gfloat +[1,10] +rwx +ratio +ratio. +1 + + + +ladspa-Compress::release +gfloat +[0,001,1] +rwx +release +release. +0,5005 + + + +ladspa-Compress::threshold +gfloat +[-30,400] +rwx +threshold +threshold. +0 + + + +ladspa-Eq::param-1-kHz +gfloat +[-48,24] +rwx +param-1-kHz +param-1-kHz. +0 + + + +ladspa-Eq::param-125-Hz +gfloat +[-48,24] +rwx +param-125-Hz +param-125-Hz. +0 + + + +ladspa-Eq::param-16-kHz +gfloat +[-48,24] +rwx +param-16-kHz +param-16-kHz. +0 + + + +ladspa-Eq::param-2-kHz +gfloat +[-48,24] +rwx +param-2-kHz +param-2-kHz. +0 + + + +ladspa-Eq::param-250-Hz +gfloat +[-48,24] +rwx +param-250-Hz +param-250-Hz. +0 + + + +ladspa-Eq::param-31-Hz +gfloat +[-48,24] +rwx +param-31-Hz +param-31-Hz. +-30 + + + +ladspa-Eq::param-4-kHz +gfloat +[-48,24] +rwx +param-4-kHz +param-4-kHz. +0 + + + +ladspa-Eq::param-500-Hz +gfloat +[-48,24] +rwx +param-500-Hz +param-500-Hz. +0 + + + +ladspa-Eq::param-63-Hz +gfloat +[-48,24] +rwx +param-63-Hz +param-63-Hz. +0 + + + +ladspa-Eq::param-8-kHz +gfloat +[-48,24] +rwx +param-8-kHz +param-8-kHz. +0 + + + +ladspa-triangle-fcsc-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-triangle-fcsc-oa::Slope +gfloat +[0,1] +rwx +Slope +Slope. +0,5 + + + +ladspa-triangle-fcsc-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-triangle-fcsa-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-triangle-fcsa-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-triangle-fasc-oa::Slope +gfloat +[0,1] +rwx +Slope +Slope. +0,5 + + + +ladspa-tracker-gaacdcia-oa::Attack-Rate +gfloat +[0,91875,22050] +rwx +Attack-Rate +Attack-Rate. +100 + + + +ladspa-tracker-gaacdcia-oa::Attack-Rate-1 +gfloat +[0,91875,22050] +rwx +Attack-Rate-1 +Attack-Rate-1. +100 + + + +ladspa-tracker-gaacdcia-oa::Decay-Rate +gfloat +[0,91875,22050] +rwx +Decay-Rate +Decay-Rate. +100 + + + +ladspa-tracker-gaacdcia-oa::Decay-Rate-1 +gfloat +[0,91875,22050] +rwx +Decay-Rate-1 +Decay-Rate-1. +100 + + + +ladspa-syncsquare-fcga-oa::Frequency +gfloat +[0,64] +rwx +Frequency +Frequency. +16 + + + +ladspa-square-fc-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-square-fc-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-sequencer16::Closed-Gate-Value +gfloat + +rwx +Closed-Gate-Value +Closed-Gate-Value. +-3,40282e+38 + + + +ladspa-sequencer16::Loop-Steps +gint +[1,16] +rwx +Loop-Steps +Loop-Steps. +16 + + + +ladspa-sequencer16::Reset-to-Value-on-Gate-Close- +gint +[0,1] +rwx +Reset-to-Value-on-Gate-Close- +Reset-to-Value-on-Gate-Close-. +0 + + + +ladspa-sequencer16::Value-Step-0 +gfloat + +rwx +Value-Step-0 +Value-Step-0. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-1 +gfloat + +rwx +Value-Step-1 +Value-Step-1. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-10 +gfloat + +rwx +Value-Step-10 +Value-Step-10. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-11 +gfloat + +rwx +Value-Step-11 +Value-Step-11. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-12 +gfloat + +rwx +Value-Step-12 +Value-Step-12. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-13 +gfloat + +rwx +Value-Step-13 +Value-Step-13. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-14 +gfloat + +rwx +Value-Step-14 +Value-Step-14. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-15 +gfloat + +rwx +Value-Step-15 +Value-Step-15. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-2 +gfloat + +rwx +Value-Step-2 +Value-Step-2. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-3 +gfloat + +rwx +Value-Step-3 +Value-Step-3. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-4 +gfloat + +rwx +Value-Step-4 +Value-Step-4. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-5 +gfloat + +rwx +Value-Step-5 +Value-Step-5. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-6 +gfloat + +rwx +Value-Step-6 +Value-Step-6. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-7 +gfloat + +rwx +Value-Step-7 +Value-Step-7. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-8 +gfloat + +rwx +Value-Step-8 +Value-Step-8. +-3,40282e+38 + + + +ladspa-sequencer16::Value-Step-9 +gfloat + +rwx +Value-Step-9 +Value-Step-9. +-3,40282e+38 + + + +ladspa-sequencer32::Closed-Gate-Value +gfloat + +rwx +Closed-Gate-Value +Closed-Gate-Value. +-3,40282e+38 + + + +ladspa-sequencer32::Loop-Steps +gint +[1,32] +rwx +Loop-Steps +Loop-Steps. +32 + + + +ladspa-sequencer32::Reset-to-Value-on-Gate-Close- +gint +[0,1] +rwx +Reset-to-Value-on-Gate-Close- +Reset-to-Value-on-Gate-Close-. +0 + + + +ladspa-sequencer32::Value-Step-0 +gfloat + +rwx +Value-Step-0 +Value-Step-0. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-1 +gfloat + +rwx +Value-Step-1 +Value-Step-1. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-10 +gfloat + +rwx +Value-Step-10 +Value-Step-10. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-11 +gfloat + +rwx +Value-Step-11 +Value-Step-11. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-12 +gfloat + +rwx +Value-Step-12 +Value-Step-12. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-13 +gfloat + +rwx +Value-Step-13 +Value-Step-13. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-14 +gfloat + +rwx +Value-Step-14 +Value-Step-14. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-15 +gfloat + +rwx +Value-Step-15 +Value-Step-15. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-16 +gfloat + +rwx +Value-Step-16 +Value-Step-16. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-17 +gfloat + +rwx +Value-Step-17 +Value-Step-17. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-18 +gfloat + +rwx +Value-Step-18 +Value-Step-18. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-19 +gfloat + +rwx +Value-Step-19 +Value-Step-19. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-2 +gfloat + +rwx +Value-Step-2 +Value-Step-2. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-20 +gfloat + +rwx +Value-Step-20 +Value-Step-20. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-21 +gfloat + +rwx +Value-Step-21 +Value-Step-21. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-22 +gfloat + +rwx +Value-Step-22 +Value-Step-22. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-23 +gfloat + +rwx +Value-Step-23 +Value-Step-23. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-24 +gfloat + +rwx +Value-Step-24 +Value-Step-24. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-25 +gfloat + +rwx +Value-Step-25 +Value-Step-25. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-26 +gfloat + +rwx +Value-Step-26 +Value-Step-26. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-27 +gfloat + +rwx +Value-Step-27 +Value-Step-27. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-28 +gfloat + +rwx +Value-Step-28 +Value-Step-28. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-29 +gfloat + +rwx +Value-Step-29 +Value-Step-29. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-3 +gfloat + +rwx +Value-Step-3 +Value-Step-3. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-30 +gfloat + +rwx +Value-Step-30 +Value-Step-30. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-31 +gfloat + +rwx +Value-Step-31 +Value-Step-31. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-4 +gfloat + +rwx +Value-Step-4 +Value-Step-4. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-5 +gfloat + +rwx +Value-Step-5 +Value-Step-5. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-6 +gfloat + +rwx +Value-Step-6 +Value-Step-6. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-7 +gfloat + +rwx +Value-Step-7 +Value-Step-7. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-8 +gfloat + +rwx +Value-Step-8 +Value-Step-8. +-3,40282e+38 + + + +ladspa-sequencer32::Value-Step-9 +gfloat + +rwx +Value-Step-9 +Value-Step-9. +-3,40282e+38 + + + +ladspa-sequencer64::Closed-Gate-Value +gfloat + +rwx +Closed-Gate-Value +Closed-Gate-Value. +-3,40282e+38 + + + +ladspa-sequencer64::Loop-Steps +gint +[1,64] +rwx +Loop-Steps +Loop-Steps. +64 + + + +ladspa-sequencer64::Reset-to-Value-on-Gate-Close- +gint +[0,1] +rwx +Reset-to-Value-on-Gate-Close- +Reset-to-Value-on-Gate-Close-. +0 + + + +ladspa-sequencer64::Value-Step-0 +gfloat + +rwx +Value-Step-0 +Value-Step-0. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-1 +gfloat + +rwx +Value-Step-1 +Value-Step-1. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-10 +gfloat + +rwx +Value-Step-10 +Value-Step-10. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-11 +gfloat + +rwx +Value-Step-11 +Value-Step-11. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-12 +gfloat + +rwx +Value-Step-12 +Value-Step-12. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-13 +gfloat + +rwx +Value-Step-13 +Value-Step-13. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-14 +gfloat + +rwx +Value-Step-14 +Value-Step-14. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-15 +gfloat + +rwx +Value-Step-15 +Value-Step-15. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-16 +gfloat + +rwx +Value-Step-16 +Value-Step-16. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-17 +gfloat + +rwx +Value-Step-17 +Value-Step-17. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-18 +gfloat + +rwx +Value-Step-18 +Value-Step-18. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-19 +gfloat + +rwx +Value-Step-19 +Value-Step-19. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-2 +gfloat + +rwx +Value-Step-2 +Value-Step-2. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-20 +gfloat + +rwx +Value-Step-20 +Value-Step-20. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-21 +gfloat + +rwx +Value-Step-21 +Value-Step-21. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-22 +gfloat + +rwx +Value-Step-22 +Value-Step-22. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-23 +gfloat + +rwx +Value-Step-23 +Value-Step-23. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-24 +gfloat + +rwx +Value-Step-24 +Value-Step-24. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-25 +gfloat + +rwx +Value-Step-25 +Value-Step-25. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-26 +gfloat + +rwx +Value-Step-26 +Value-Step-26. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-27 +gfloat + +rwx +Value-Step-27 +Value-Step-27. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-28 +gfloat + +rwx +Value-Step-28 +Value-Step-28. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-29 +gfloat + +rwx +Value-Step-29 +Value-Step-29. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-3 +gfloat + +rwx +Value-Step-3 +Value-Step-3. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-30 +gfloat + +rwx +Value-Step-30 +Value-Step-30. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-31 +gfloat + +rwx +Value-Step-31 +Value-Step-31. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-32 +gfloat + +rwx +Value-Step-32 +Value-Step-32. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-33 +gfloat + +rwx +Value-Step-33 +Value-Step-33. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-34 +gfloat + +rwx +Value-Step-34 +Value-Step-34. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-35 +gfloat + +rwx +Value-Step-35 +Value-Step-35. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-36 +gfloat + +rwx +Value-Step-36 +Value-Step-36. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-37 +gfloat + +rwx +Value-Step-37 +Value-Step-37. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-38 +gfloat + +rwx +Value-Step-38 +Value-Step-38. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-39 +gfloat + +rwx +Value-Step-39 +Value-Step-39. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-4 +gfloat + +rwx +Value-Step-4 +Value-Step-4. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-40 +gfloat + +rwx +Value-Step-40 +Value-Step-40. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-41 +gfloat + +rwx +Value-Step-41 +Value-Step-41. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-42 +gfloat + +rwx +Value-Step-42 +Value-Step-42. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-43 +gfloat + +rwx +Value-Step-43 +Value-Step-43. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-44 +gfloat + +rwx +Value-Step-44 +Value-Step-44. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-45 +gfloat + +rwx +Value-Step-45 +Value-Step-45. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-46 +gfloat + +rwx +Value-Step-46 +Value-Step-46. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-47 +gfloat + +rwx +Value-Step-47 +Value-Step-47. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-48 +gfloat + +rwx +Value-Step-48 +Value-Step-48. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-49 +gfloat + +rwx +Value-Step-49 +Value-Step-49. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-5 +gfloat + +rwx +Value-Step-5 +Value-Step-5. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-50 +gfloat + +rwx +Value-Step-50 +Value-Step-50. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-51 +gfloat + +rwx +Value-Step-51 +Value-Step-51. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-52 +gfloat + +rwx +Value-Step-52 +Value-Step-52. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-53 +gfloat + +rwx +Value-Step-53 +Value-Step-53. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-54 +gfloat + +rwx +Value-Step-54 +Value-Step-54. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-55 +gfloat + +rwx +Value-Step-55 +Value-Step-55. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-56 +gfloat + +rwx +Value-Step-56 +Value-Step-56. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-57 +gfloat + +rwx +Value-Step-57 +Value-Step-57. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-58 +gfloat + +rwx +Value-Step-58 +Value-Step-58. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-59 +gfloat + +rwx +Value-Step-59 +Value-Step-59. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-6 +gfloat + +rwx +Value-Step-6 +Value-Step-6. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-60 +gfloat + +rwx +Value-Step-60 +Value-Step-60. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-61 +gfloat + +rwx +Value-Step-61 +Value-Step-61. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-62 +gfloat + +rwx +Value-Step-62 +Value-Step-62. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-63 +gfloat + +rwx +Value-Step-63 +Value-Step-63. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-7 +gfloat + +rwx +Value-Step-7 +Value-Step-7. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-8 +gfloat + +rwx +Value-Step-8 +Value-Step-8. +-3,40282e+38 + + + +ladspa-sequencer64::Value-Step-9 +gfloat + +rwx +Value-Step-9 +Value-Step-9. +-3,40282e+38 + + + +ladspa-sawtooth-fc-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-sawtooth-fc-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-ratio-ncdc-oc::Denominator +gfloat + +rwx +Denominator +Denominator. +-3,40282e+38 + + + +ladspa-ratio-ncdc-oc::Numerator +gfloat + +rwx +Numerator +Numerator. +-3,40282e+38 + + + +ladspa-ratio-ncdc-oc::Ratio-Output +gfloat + +r +Ratio-Output +Ratio-Output. +-3,40282e+38 + + + +ladspa-ratio-ncda-oa::Numerator +gfloat + +rwx +Numerator +Numerator. +-3,40282e+38 + + + +ladspa-ratio-nadc-oa::Denominator +gfloat + +rwx +Denominator +Denominator. +-3,40282e+38 + + + +ladspa-random-fcsc-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-random-fcsc-oa::Wave-Smoothness +gfloat +[0,1] +rwx +Wave-Smoothness +Wave-Smoothness. +1 + + + +ladspa-random-fcsc-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-random-fcsa-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-random-fcsa-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-random-fasc-oa::Wave-Smoothness +gfloat +[0,1] +rwx +Wave-Smoothness +Wave-Smoothness. +1 + + + +ladspa-quantiser100::Match-Range +gfloat +>= 0 +rwx +Match-Range +Match-Range. +0 + + + +ladspa-quantiser100::Mode +gint +[0,2] +rwx +Mode +Mode. +0 + + + +ladspa-quantiser100::Quantise-Range-Maximum +gfloat + +rwx +Quantise-Range-Maximum +Quantise-Range-Maximum. +-3,40282e+38 + + + +ladspa-quantiser100::Quantise-Range-Minimum +gfloat + +rwx +Quantise-Range-Minimum +Quantise-Range-Minimum. +-3,40282e+38 + + + +ladspa-quantiser100::Steps +gint +[1,100] +rwx +Steps +Steps. +100 + + + +ladspa-quantiser100::Value-0 +gfloat + +rwx +Value-0 +Value-0. +-3,40282e+38 + + + +ladspa-quantiser100::Value-1 +gfloat + +rwx +Value-1 +Value-1. +-3,40282e+38 + + + +ladspa-quantiser100::Value-10 +gfloat + +rwx +Value-10 +Value-10. +-3,40282e+38 + + + +ladspa-quantiser100::Value-11 +gfloat + +rwx +Value-11 +Value-11. +-3,40282e+38 + + + +ladspa-quantiser100::Value-12 +gfloat + +rwx +Value-12 +Value-12. +-3,40282e+38 + + + +ladspa-quantiser100::Value-13 +gfloat + +rwx +Value-13 +Value-13. +-3,40282e+38 + + + +ladspa-quantiser100::Value-14 +gfloat + +rwx +Value-14 +Value-14. +-3,40282e+38 + + + +ladspa-quantiser100::Value-15 +gfloat + +rwx +Value-15 +Value-15. +-3,40282e+38 + + + +ladspa-quantiser100::Value-16 +gfloat + +rwx +Value-16 +Value-16. +-3,40282e+38 + + + +ladspa-quantiser100::Value-17 +gfloat + +rwx +Value-17 +Value-17. +-3,40282e+38 + + + +ladspa-quantiser100::Value-18 +gfloat + +rwx +Value-18 +Value-18. +-3,40282e+38 + + + +ladspa-quantiser100::Value-19 +gfloat + +rwx +Value-19 +Value-19. +-3,40282e+38 + + + +ladspa-quantiser100::Value-2 +gfloat + +rwx +Value-2 +Value-2. +-3,40282e+38 + + + +ladspa-quantiser100::Value-20 +gfloat + +rwx +Value-20 +Value-20. +-3,40282e+38 + + + +ladspa-quantiser100::Value-21 +gfloat + +rwx +Value-21 +Value-21. +-3,40282e+38 + + + +ladspa-quantiser100::Value-22 +gfloat + +rwx +Value-22 +Value-22. +-3,40282e+38 + + + +ladspa-quantiser100::Value-23 +gfloat + +rwx +Value-23 +Value-23. +-3,40282e+38 + + + +ladspa-quantiser100::Value-24 +gfloat + +rwx +Value-24 +Value-24. +-3,40282e+38 + + + +ladspa-quantiser100::Value-25 +gfloat + +rwx +Value-25 +Value-25. +-3,40282e+38 + + + +ladspa-quantiser100::Value-26 +gfloat + +rwx +Value-26 +Value-26. +-3,40282e+38 + + + +ladspa-quantiser100::Value-27 +gfloat + +rwx +Value-27 +Value-27. +-3,40282e+38 + + + +ladspa-quantiser100::Value-28 +gfloat + +rwx +Value-28 +Value-28. +-3,40282e+38 + + + +ladspa-quantiser100::Value-29 +gfloat + +rwx +Value-29 +Value-29. +-3,40282e+38 + + + +ladspa-quantiser100::Value-3 +gfloat + +rwx +Value-3 +Value-3. +-3,40282e+38 + + + +ladspa-quantiser100::Value-30 +gfloat + +rwx +Value-30 +Value-30. +-3,40282e+38 + + + +ladspa-quantiser100::Value-31 +gfloat + +rwx +Value-31 +Value-31. +-3,40282e+38 + + + +ladspa-quantiser100::Value-32 +gfloat + +rwx +Value-32 +Value-32. +-3,40282e+38 + + + +ladspa-quantiser100::Value-33 +gfloat + +rwx +Value-33 +Value-33. +-3,40282e+38 + + + +ladspa-quantiser100::Value-34 +gfloat + +rwx +Value-34 +Value-34. +-3,40282e+38 + + + +ladspa-quantiser100::Value-35 +gfloat + +rwx +Value-35 +Value-35. +-3,40282e+38 + + + +ladspa-quantiser100::Value-36 +gfloat + +rwx +Value-36 +Value-36. +-3,40282e+38 + + + +ladspa-quantiser100::Value-37 +gfloat + +rwx +Value-37 +Value-37. +-3,40282e+38 + + + +ladspa-quantiser100::Value-38 +gfloat + +rwx +Value-38 +Value-38. +-3,40282e+38 + + + +ladspa-quantiser100::Value-39 +gfloat + +rwx +Value-39 +Value-39. +-3,40282e+38 + + + +ladspa-quantiser100::Value-4 +gfloat + +rwx +Value-4 +Value-4. +-3,40282e+38 + + + +ladspa-quantiser100::Value-40 +gfloat + +rwx +Value-40 +Value-40. +-3,40282e+38 + + + +ladspa-quantiser100::Value-41 +gfloat + +rwx +Value-41 +Value-41. +-3,40282e+38 + + + +ladspa-quantiser100::Value-42 +gfloat + +rwx +Value-42 +Value-42. +-3,40282e+38 + + + +ladspa-quantiser100::Value-43 +gfloat + +rwx +Value-43 +Value-43. +-3,40282e+38 + + + +ladspa-quantiser100::Value-44 +gfloat + +rwx +Value-44 +Value-44. +-3,40282e+38 + + + +ladspa-quantiser100::Value-45 +gfloat + +rwx +Value-45 +Value-45. +-3,40282e+38 + + + +ladspa-quantiser100::Value-46 +gfloat + +rwx +Value-46 +Value-46. +-3,40282e+38 + + + +ladspa-quantiser100::Value-47 +gfloat + +rwx +Value-47 +Value-47. +-3,40282e+38 + + + +ladspa-quantiser100::Value-48 +gfloat + +rwx +Value-48 +Value-48. +-3,40282e+38 + + + +ladspa-quantiser100::Value-49 +gfloat + +rwx +Value-49 +Value-49. +-3,40282e+38 + + + +ladspa-quantiser100::Value-5 +gfloat + +rwx +Value-5 +Value-5. +-3,40282e+38 + + + +ladspa-quantiser100::Value-50 +gfloat + +rwx +Value-50 +Value-50. +-3,40282e+38 + + + +ladspa-quantiser100::Value-51 +gfloat + +rwx +Value-51 +Value-51. +-3,40282e+38 + + + +ladspa-quantiser100::Value-52 +gfloat + +rwx +Value-52 +Value-52. +-3,40282e+38 + + + +ladspa-quantiser100::Value-53 +gfloat + +rwx +Value-53 +Value-53. +-3,40282e+38 + + + +ladspa-quantiser100::Value-54 +gfloat + +rwx +Value-54 +Value-54. +-3,40282e+38 + + + +ladspa-quantiser100::Value-55 +gfloat + +rwx +Value-55 +Value-55. +-3,40282e+38 + + + +ladspa-quantiser100::Value-56 +gfloat + +rwx +Value-56 +Value-56. +-3,40282e+38 + + + +ladspa-quantiser100::Value-57 +gfloat + +rwx +Value-57 +Value-57. +-3,40282e+38 + + + +ladspa-quantiser100::Value-58 +gfloat + +rwx +Value-58 +Value-58. +-3,40282e+38 + + + +ladspa-quantiser100::Value-59 +gfloat + +rwx +Value-59 +Value-59. +-3,40282e+38 + + + +ladspa-quantiser100::Value-6 +gfloat + +rwx +Value-6 +Value-6. +-3,40282e+38 + + + +ladspa-quantiser100::Value-60 +gfloat + +rwx +Value-60 +Value-60. +-3,40282e+38 + + + +ladspa-quantiser100::Value-61 +gfloat + +rwx +Value-61 +Value-61. +-3,40282e+38 + + + +ladspa-quantiser100::Value-62 +gfloat + +rwx +Value-62 +Value-62. +-3,40282e+38 + + + +ladspa-quantiser100::Value-63 +gfloat + +rwx +Value-63 +Value-63. +-3,40282e+38 + + + +ladspa-quantiser100::Value-64 +gfloat + +rwx +Value-64 +Value-64. +-3,40282e+38 + + + +ladspa-quantiser100::Value-65 +gfloat + +rwx +Value-65 +Value-65. +-3,40282e+38 + + + +ladspa-quantiser100::Value-66 +gfloat + +rwx +Value-66 +Value-66. +-3,40282e+38 + + + +ladspa-quantiser100::Value-67 +gfloat + +rwx +Value-67 +Value-67. +-3,40282e+38 + + + +ladspa-quantiser100::Value-68 +gfloat + +rwx +Value-68 +Value-68. +-3,40282e+38 + + + +ladspa-quantiser100::Value-69 +gfloat + +rwx +Value-69 +Value-69. +-3,40282e+38 + + + +ladspa-quantiser100::Value-7 +gfloat + +rwx +Value-7 +Value-7. +-3,40282e+38 + + + +ladspa-quantiser100::Value-70 +gfloat + +rwx +Value-70 +Value-70. +-3,40282e+38 + + + +ladspa-quantiser100::Value-71 +gfloat + +rwx +Value-71 +Value-71. +-3,40282e+38 + + + +ladspa-quantiser100::Value-72 +gfloat + +rwx +Value-72 +Value-72. +-3,40282e+38 + + + +ladspa-quantiser100::Value-73 +gfloat + +rwx +Value-73 +Value-73. +-3,40282e+38 + + + +ladspa-quantiser100::Value-74 +gfloat + +rwx +Value-74 +Value-74. +-3,40282e+38 + + + +ladspa-quantiser100::Value-75 +gfloat + +rwx +Value-75 +Value-75. +-3,40282e+38 + + + +ladspa-quantiser100::Value-76 +gfloat + +rwx +Value-76 +Value-76. +-3,40282e+38 + + + +ladspa-quantiser100::Value-77 +gfloat + +rwx +Value-77 +Value-77. +-3,40282e+38 + + + +ladspa-quantiser100::Value-78 +gfloat + +rwx +Value-78 +Value-78. +-3,40282e+38 + + + +ladspa-quantiser100::Value-79 +gfloat + +rwx +Value-79 +Value-79. +-3,40282e+38 + + + +ladspa-quantiser100::Value-8 +gfloat + +rwx +Value-8 +Value-8. +-3,40282e+38 + + + +ladspa-quantiser100::Value-80 +gfloat + +rwx +Value-80 +Value-80. +-3,40282e+38 + + + +ladspa-quantiser100::Value-81 +gfloat + +rwx +Value-81 +Value-81. +-3,40282e+38 + + + +ladspa-quantiser100::Value-82 +gfloat + +rwx +Value-82 +Value-82. +-3,40282e+38 + + + +ladspa-quantiser100::Value-83 +gfloat + +rwx +Value-83 +Value-83. +-3,40282e+38 + + + +ladspa-quantiser100::Value-84 +gfloat + +rwx +Value-84 +Value-84. +-3,40282e+38 + + + +ladspa-quantiser100::Value-85 +gfloat + +rwx +Value-85 +Value-85. +-3,40282e+38 + + + +ladspa-quantiser100::Value-86 +gfloat + +rwx +Value-86 +Value-86. +-3,40282e+38 + + + +ladspa-quantiser100::Value-87 +gfloat + +rwx +Value-87 +Value-87. +-3,40282e+38 + + + +ladspa-quantiser100::Value-88 +gfloat + +rwx +Value-88 +Value-88. +-3,40282e+38 + + + +ladspa-quantiser100::Value-89 +gfloat + +rwx +Value-89 +Value-89. +-3,40282e+38 + + + +ladspa-quantiser100::Value-9 +gfloat + +rwx +Value-9 +Value-9. +-3,40282e+38 + + + +ladspa-quantiser100::Value-90 +gfloat + +rwx +Value-90 +Value-90. +-3,40282e+38 + + + +ladspa-quantiser100::Value-91 +gfloat + +rwx +Value-91 +Value-91. +-3,40282e+38 + + + +ladspa-quantiser100::Value-92 +gfloat + +rwx +Value-92 +Value-92. +-3,40282e+38 + + + +ladspa-quantiser100::Value-93 +gfloat + +rwx +Value-93 +Value-93. +-3,40282e+38 + + + +ladspa-quantiser100::Value-94 +gfloat + +rwx +Value-94 +Value-94. +-3,40282e+38 + + + +ladspa-quantiser100::Value-95 +gfloat + +rwx +Value-95 +Value-95. +-3,40282e+38 + + + +ladspa-quantiser100::Value-96 +gfloat + +rwx +Value-96 +Value-96. +-3,40282e+38 + + + +ladspa-quantiser100::Value-97 +gfloat + +rwx +Value-97 +Value-97. +-3,40282e+38 + + + +ladspa-quantiser100::Value-98 +gfloat + +rwx +Value-98 +Value-98. +-3,40282e+38 + + + +ladspa-quantiser100::Value-99 +gfloat + +rwx +Value-99 +Value-99. +-3,40282e+38 + + + +ladspa-quantiser50::Match-Range +gfloat +>= 0 +rwx +Match-Range +Match-Range. +0 + + + +ladspa-quantiser50::Mode +gint +[0,2] +rwx +Mode +Mode. +0 + + + +ladspa-quantiser50::Quantise-Range-Maximum +gfloat + +rwx +Quantise-Range-Maximum +Quantise-Range-Maximum. +-3,40282e+38 + + + +ladspa-quantiser50::Quantise-Range-Minimum +gfloat + +rwx +Quantise-Range-Minimum +Quantise-Range-Minimum. +-3,40282e+38 + + + +ladspa-quantiser50::Steps +gint +[1,50] +rwx +Steps +Steps. +50 + + + +ladspa-quantiser50::Value-0 +gfloat + +rwx +Value-0 +Value-0. +-3,40282e+38 + + + +ladspa-quantiser50::Value-1 +gfloat + +rwx +Value-1 +Value-1. +-3,40282e+38 + + + +ladspa-quantiser50::Value-10 +gfloat + +rwx +Value-10 +Value-10. +-3,40282e+38 + + + +ladspa-quantiser50::Value-11 +gfloat + +rwx +Value-11 +Value-11. +-3,40282e+38 + + + +ladspa-quantiser50::Value-12 +gfloat + +rwx +Value-12 +Value-12. +-3,40282e+38 + + + +ladspa-quantiser50::Value-13 +gfloat + +rwx +Value-13 +Value-13. +-3,40282e+38 + + + +ladspa-quantiser50::Value-14 +gfloat + +rwx +Value-14 +Value-14. +-3,40282e+38 + + + +ladspa-quantiser50::Value-15 +gfloat + +rwx +Value-15 +Value-15. +-3,40282e+38 + + + +ladspa-quantiser50::Value-16 +gfloat + +rwx +Value-16 +Value-16. +-3,40282e+38 + + + +ladspa-quantiser50::Value-17 +gfloat + +rwx +Value-17 +Value-17. +-3,40282e+38 + + + +ladspa-quantiser50::Value-18 +gfloat + +rwx +Value-18 +Value-18. +-3,40282e+38 + + + +ladspa-quantiser50::Value-19 +gfloat + +rwx +Value-19 +Value-19. +-3,40282e+38 + + + +ladspa-quantiser50::Value-2 +gfloat + +rwx +Value-2 +Value-2. +-3,40282e+38 + + + +ladspa-quantiser50::Value-20 +gfloat + +rwx +Value-20 +Value-20. +-3,40282e+38 + + + +ladspa-quantiser50::Value-21 +gfloat + +rwx +Value-21 +Value-21. +-3,40282e+38 + + + +ladspa-quantiser50::Value-22 +gfloat + +rwx +Value-22 +Value-22. +-3,40282e+38 + + + +ladspa-quantiser50::Value-23 +gfloat + +rwx +Value-23 +Value-23. +-3,40282e+38 + + + +ladspa-quantiser50::Value-24 +gfloat + +rwx +Value-24 +Value-24. +-3,40282e+38 + + + +ladspa-quantiser50::Value-25 +gfloat + +rwx +Value-25 +Value-25. +-3,40282e+38 + + + +ladspa-quantiser50::Value-26 +gfloat + +rwx +Value-26 +Value-26. +-3,40282e+38 + + + +ladspa-quantiser50::Value-27 +gfloat + +rwx +Value-27 +Value-27. +-3,40282e+38 + + + +ladspa-quantiser50::Value-28 +gfloat + +rwx +Value-28 +Value-28. +-3,40282e+38 + + + +ladspa-quantiser50::Value-29 +gfloat + +rwx +Value-29 +Value-29. +-3,40282e+38 + + + +ladspa-quantiser50::Value-3 +gfloat + +rwx +Value-3 +Value-3. +-3,40282e+38 + + + +ladspa-quantiser50::Value-30 +gfloat + +rwx +Value-30 +Value-30. +-3,40282e+38 + + + +ladspa-quantiser50::Value-31 +gfloat + +rwx +Value-31 +Value-31. +-3,40282e+38 + + + +ladspa-quantiser50::Value-32 +gfloat + +rwx +Value-32 +Value-32. +-3,40282e+38 + + + +ladspa-quantiser50::Value-33 +gfloat + +rwx +Value-33 +Value-33. +-3,40282e+38 + + + +ladspa-quantiser50::Value-34 +gfloat + +rwx +Value-34 +Value-34. +-3,40282e+38 + + + +ladspa-quantiser50::Value-35 +gfloat + +rwx +Value-35 +Value-35. +-3,40282e+38 + + + +ladspa-quantiser50::Value-36 +gfloat + +rwx +Value-36 +Value-36. +-3,40282e+38 + + + +ladspa-quantiser50::Value-37 +gfloat + +rwx +Value-37 +Value-37. +-3,40282e+38 + + + +ladspa-quantiser50::Value-38 +gfloat + +rwx +Value-38 +Value-38. +-3,40282e+38 + + + +ladspa-quantiser50::Value-39 +gfloat + +rwx +Value-39 +Value-39. +-3,40282e+38 + + + +ladspa-quantiser50::Value-4 +gfloat + +rwx +Value-4 +Value-4. +-3,40282e+38 + + + +ladspa-quantiser50::Value-40 +gfloat + +rwx +Value-40 +Value-40. +-3,40282e+38 + + + +ladspa-quantiser50::Value-41 +gfloat + +rwx +Value-41 +Value-41. +-3,40282e+38 + + + +ladspa-quantiser50::Value-42 +gfloat + +rwx +Value-42 +Value-42. +-3,40282e+38 + + + +ladspa-quantiser50::Value-43 +gfloat + +rwx +Value-43 +Value-43. +-3,40282e+38 + + + +ladspa-quantiser50::Value-44 +gfloat + +rwx +Value-44 +Value-44. +-3,40282e+38 + + + +ladspa-quantiser50::Value-45 +gfloat + +rwx +Value-45 +Value-45. +-3,40282e+38 + + + +ladspa-quantiser50::Value-46 +gfloat + +rwx +Value-46 +Value-46. +-3,40282e+38 + + + +ladspa-quantiser50::Value-47 +gfloat + +rwx +Value-47 +Value-47. +-3,40282e+38 + + + +ladspa-quantiser50::Value-48 +gfloat + +rwx +Value-48 +Value-48. +-3,40282e+38 + + + +ladspa-quantiser50::Value-49 +gfloat + +rwx +Value-49 +Value-49. +-3,40282e+38 + + + +ladspa-quantiser50::Value-5 +gfloat + +rwx +Value-5 +Value-5. +-3,40282e+38 + + + +ladspa-quantiser50::Value-6 +gfloat + +rwx +Value-6 +Value-6. +-3,40282e+38 + + + +ladspa-quantiser50::Value-7 +gfloat + +rwx +Value-7 +Value-7. +-3,40282e+38 + + + +ladspa-quantiser50::Value-8 +gfloat + +rwx +Value-8 +Value-8. +-3,40282e+38 + + + +ladspa-quantiser50::Value-9 +gfloat + +rwx +Value-9 +Value-9. +-3,40282e+38 + + + +ladspa-sum-icic-oc::First-Input +gfloat + +rwx +First-Input +First-Input. +-3,40282e+38 + + + +ladspa-sum-icic-oc::Second-Input +gfloat + +rwx +Second-Input +Second-Input. +-3,40282e+38 + + + +ladspa-sum-icic-oc::Summed-Output +gfloat + +r +Summed-Output +Summed-Output. +-3,40282e+38 + + + +ladspa-sum-iaic-oa::Second-Input +gfloat + +rwx +Second-Input +Second-Input. +-3,40282e+38 + + + +ladspa-syncpulse-fcpcga-oa::Frequency +gfloat +[0,64] +rwx +Frequency +Frequency. +16 + + + +ladspa-syncpulse-fcpcga-oa::Pulse-Width +gfloat +[0,1] +rwx +Pulse-Width +Pulse-Width. +0,5 + + + +ladspa-syncpulse-fcpcga-oa::Frequenz +gfloat +[0,64] +rwx +Frequenz +Frequenz. +16 + + + +ladspa-pulse-fcpc-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-pulse-fcpc-oa::Pulse-Width +gfloat +[0,1] +rwx +Pulse-Width +Pulse-Width. +0,5 + + + +ladspa-pulse-fcpc-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-pulse-fcpa-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-pulse-fcpa-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-pulse-fapc-oa::Pulse-Width +gfloat +[0,1] +rwx +Pulse-Width +Pulse-Width. +0,5 + + + +ladspa-product-icic-oc::First-Input +gfloat + +rwx +First-Input +First-Input. +-3,40282e+38 + + + +ladspa-product-icic-oc::Product-Output +gfloat + +r +Product-Output +Product-Output. +-3,40282e+38 + + + +ladspa-product-icic-oc::Second-Input +gfloat + +rwx +Second-Input +Second-Input. +-3,40282e+38 + + + +ladspa-product-iaic-oa::Second-Input +gfloat + +rwx +Second-Input +Second-Input. +-3,40282e+38 + + + +ladspa-lp4pole-fcrcia-oa::Cutoff-Frequency +gfloat +[0,91875,22050] +rwx +Cutoff-Frequency +Cutoff-Frequency. +22050 + + + +ladspa-lp4pole-fcrcia-oa::Resonance +gfloat +[0,4] +rwx +Resonance +Resonance. +0 + + + +ladspa-lp4pole-fcrcia-oa::Resonanz +gfloat +[0,4] +rwx +Resonanz +Resonanz. +0 + + + +ladspa-quantiser20::Match-Range +gfloat +>= 0 +rwx +Match-Range +Match-Range. +0 + + + +ladspa-quantiser20::Mode +gint +[0,2] +rwx +Mode +Mode. +0 + + + +ladspa-quantiser20::Quantise-Range-Maximum +gfloat + +rwx +Quantise-Range-Maximum +Quantise-Range-Maximum. +-3,40282e+38 + + + +ladspa-quantiser20::Quantise-Range-Minimum +gfloat + +rwx +Quantise-Range-Minimum +Quantise-Range-Minimum. +-3,40282e+38 + + + +ladspa-quantiser20::Steps +gint +[1,20] +rwx +Steps +Steps. +20 + + + +ladspa-quantiser20::Value-0 +gfloat + +rwx +Value-0 +Value-0. +-3,40282e+38 + + + +ladspa-quantiser20::Value-1 +gfloat + +rwx +Value-1 +Value-1. +-3,40282e+38 + + + +ladspa-quantiser20::Value-10 +gfloat + +rwx +Value-10 +Value-10. +-3,40282e+38 + + + +ladspa-quantiser20::Value-11 +gfloat + +rwx +Value-11 +Value-11. +-3,40282e+38 + + + +ladspa-quantiser20::Value-12 +gfloat + +rwx +Value-12 +Value-12. +-3,40282e+38 + + + +ladspa-quantiser20::Value-13 +gfloat + +rwx +Value-13 +Value-13. +-3,40282e+38 + + + +ladspa-quantiser20::Value-14 +gfloat + +rwx +Value-14 +Value-14. +-3,40282e+38 + + + +ladspa-quantiser20::Value-15 +gfloat + +rwx +Value-15 +Value-15. +-3,40282e+38 + + + +ladspa-quantiser20::Value-16 +gfloat + +rwx +Value-16 +Value-16. +-3,40282e+38 + + + +ladspa-quantiser20::Value-17 +gfloat + +rwx +Value-17 +Value-17. +-3,40282e+38 + + + +ladspa-quantiser20::Value-18 +gfloat + +rwx +Value-18 +Value-18. +-3,40282e+38 + + + +ladspa-quantiser20::Value-19 +gfloat + +rwx +Value-19 +Value-19. +-3,40282e+38 + + + +ladspa-quantiser20::Value-2 +gfloat + +rwx +Value-2 +Value-2. +-3,40282e+38 + + + +ladspa-quantiser20::Value-3 +gfloat + +rwx +Value-3 +Value-3. +-3,40282e+38 + + + +ladspa-quantiser20::Value-4 +gfloat + +rwx +Value-4 +Value-4. +-3,40282e+38 + + + +ladspa-quantiser20::Value-5 +gfloat + +rwx +Value-5 +Value-5. +-3,40282e+38 + + + +ladspa-quantiser20::Value-6 +gfloat + +rwx +Value-6 +Value-6. +-3,40282e+38 + + + +ladspa-quantiser20::Value-7 +gfloat + +rwx +Value-7 +Value-7. +-3,40282e+38 + + + +ladspa-quantiser20::Value-8 +gfloat + +rwx +Value-8 +Value-8. +-3,40282e+38 + + + +ladspa-quantiser20::Value-9 +gfloat + +rwx +Value-9 +Value-9. +-3,40282e+38 + + + +ladspa-fmod-fcmc-oc::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-fmod-fcmc-oc::Modulated-Frequency +gfloat + +r +Modulated-Frequency +Modulated-Frequency. +-3.40282e+38 + + + +ladspa-fmod-fcmc-oc::Modulation +gfloat + +rwx +Modulation +Modulation. +-3,40282e+38 + + + +ladspa-fmod-fcmc-oc::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-fmod-fcmc-oc::Modulierte-Frequenz +gfloat + +r +Modulierte-Frequenz +Modulierte-Frequenz. +-3,40282e+38 + + + +ladspa-fmod-fcma-oa::Frequency +gfloat +[0.91875,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-fmod-fcma-oa::Frequenz +gfloat +[0,91875,22050] +rwx +Frequenz +Frequenz. +440 + + + +ladspa-fmod-famc-oa::Modulation +gfloat + +rwx +Modulation +Modulation. +-3,40282e+38 + + + +ladspa-interpolator::Control-Input +gfloat + +rwx +Control-Input +Control-Input. +-3,40282e+38 + + + +ladspa-dahdsr-cg+t-control::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-dahdsr-cg+t-control::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-dahdsr-cg+t-control::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-dahdsr-cg+t-control::Gate +gboolean + +rwx +Gate +Gate. +FALSE + + + +ladspa-dahdsr-cg+t-control::Hold-Time +gfloat +>= 0 +rwx +Hold-Time +Hold-Time. +0 + + + +ladspa-dahdsr-cg+t-control::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-dahdsr-cg+t-control::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-dahdsr-cg+t-control::Trigger +gboolean + +rwx +Trigger +Trigger. +FALSE + + + +ladspa-dahdsr-cg+t-control::Abklingzeit +gfloat +>= 0 +rwx +Abklingzeit +Abklingzeit. +0 + + + +ladspa-dahdsr-cg+t-control::Ausklingzeit +gfloat +>= 0 +rwx +Ausklingzeit +Ausklingzeit. +0 + + + +ladspa-dahdsr-cg+t-control::Ausl--ser +gboolean + +rwx +Ausl--ser +Ausl--ser. +FALSE + + + +ladspa-dahdsr-cg+t-control::Einschwingzeit +gfloat +>= 0 +rwx +Einschwingzeit +Einschwingzeit. +0 + + + +ladspa-dahdsr-cg+t-control::Gatter +gboolean + +rwx +Gatter +Gatter. +FALSE + + + +ladspa-dahdsr-cg+t-control::Haltewert +gfloat +[0,1] +rwx +Haltewert +Haltewert. +1 + + + +ladspa-dahdsr-cg+t-control::Haltezeit +gfloat +>= 0 +rwx +Haltezeit +Haltezeit. +0 + + + +ladspa-dahdsr-cg+t-control::Verz--gerungszeit +gfloat +>= 0 +rwx +Verz--gerungszeit +Verz--gerungszeit. +0 + + + +ladspa-dahdsr-g+t-control::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-dahdsr-g+t-control::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-dahdsr-g+t-control::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-dahdsr-g+t-control::Hold-Time +gfloat +>= 0 +rwx +Hold-Time +Hold-Time. +0 + + + +ladspa-dahdsr-g+t-control::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-dahdsr-g+t-control::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-dahdsr-g+t-control::Abklingzeit +gfloat +>= 0 +rwx +Abklingzeit +Abklingzeit. +0 + + + +ladspa-dahdsr-g+t-control::Ausklingzeit +gfloat +>= 0 +rwx +Ausklingzeit +Ausklingzeit. +0 + + + +ladspa-dahdsr-g+t-control::Einschwingzeit +gfloat +>= 0 +rwx +Einschwingzeit +Einschwingzeit. +0 + + + +ladspa-dahdsr-g+t-control::Haltewert +gfloat +[0,1] +rwx +Haltewert +Haltewert. +1 + + + +ladspa-dahdsr-g+t-control::Haltezeit +gfloat +>= 0 +rwx +Haltezeit +Haltezeit. +0 + + + +ladspa-dahdsr-g+t-control::Verz--gerungszeit +gfloat +>= 0 +rwx +Verz--gerungszeit +Verz--gerungszeit. +0 + + + +ladspa-branch-ic-ococ::First-Output +gfloat + +r +First-Output +First-Output. +-3,40282e+38 + + + +ladspa-branch-ic-ococ::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-branch-ic-ococ::Second-Output +gfloat + +r +Second-Output +Second-Output. +-3,40282e+38 + + + +ladspa-amp-gcia-oa::Gain +gfloat +[-96,96] +rwx +Gain +Gain. +-96 + + + +ladspa-amp-gcia-oa::Verst--rkung +gfloat +[-96,96] +rwx +Verst--rkung +Verst--rkung. +-96 + + + +ladspa-adsr-g+t::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-adsr-g+t::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-adsr-g+t::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-adsr-g+t::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-adsr-g+t::Abklingzeit +gfloat +>= 0 +rwx +Abklingzeit +Abklingzeit. +0 + + + +ladspa-adsr-g+t::Ausklingzeit +gfloat +>= 0 +rwx +Ausklingzeit +Ausklingzeit. +0 + + + +ladspa-adsr-g+t::Einschwingzeit +gfloat +>= 0 +rwx +Einschwingzeit +Einschwingzeit. +0 + + + +ladspa-adsr-g+t::Haltewert +gfloat +[0,1] +rwx +Haltewert +Haltewert. +1 + + + +ladspa-difference-icmc-oc::Difference-Output +gfloat + +r +Difference-Output +Difference-Output. +-3,40282e+38 + + + +ladspa-difference-icmc-oc::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-difference-icmc-oc::Input-to-Subtract +gfloat + +rwx +Input-to-Subtract +Input-to-Subtract. +-3,40282e+38 + + + +ladspa-difference-icma-oa::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-difference-iamc-oa::Input-to-Subtract +gfloat + +rwx +Input-to-Subtract +Input-to-Subtract. +-3,40282e+38 + + + +ladspa-comp-ac::B +gfloat + +rwx +B +B. +-3,40282e+38 + + + +ladspa-sh-ar::Continuous-Triggering +gboolean + +rwx +Continuous-Triggering +Continuous-Triggering. +FALSE + + + +ladspa-sh-cr::Continuous-Triggering +gboolean + +rwx +Continuous-Triggering +Continuous-Triggering. +FALSE + + + +ladspa-sh-cr::Threshold +gfloat + +rwx +Threshold +Threshold. +-3,40282e+38 + + + +ladspa-ssm-masher::Density +gfloat +[0,800] +rwx +Density +Density. +400 + + + +ladspa-ssm-masher::Grain-Pitch +gfloat +[1,10] +rwx +Grain-Pitch +Grain-Pitch. +1 + + + +ladspa-power-cr::Base +gfloat + +rwx +Base +Base. +-3,40282e+38 + + + +ladspa-power-cr::Exponent +gfloat + +rwx +Exponent +Exponent. +-3,40282e+38 + + + +ladspa-power-cr::Result +gfloat + +r +Result +Result. +-3,40282e+38 + + + +ladspa-mux-cr::Off +gfloat + +rwx +Off +Off. +-3,40282e+38 + + + +ladspa-mux-cr::On +gfloat + +rwx +On +On. +-3,40282e+38 + + + +ladspa-mux-cr::Output +gfloat + +r +Output +Output. +-3,40282e+38 + + + +ladspa-wg-mesh-cr::Excitation-X +gint +[0,7] +rwx +Excitation-X +Excitation-X. +1 + + + +ladspa-wg-mesh-cr::Excitation-Y +gint +[0,7] +rwx +Excitation-Y +Excitation-Y. +1 + + + +ladspa-wg-mesh-cr::Tension +gfloat +[0,0001,0,22] +rwx +Tension +Tension. +0,11005 + + + +ladspa-vcf-hshelf::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-hshelf::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-hshelf::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-hshelf::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-hshelf::dBgain-Offset +gfloat +[6,24] +rwx +dBgain-Offset +dBgain-Offset. +6 + + + +ladspa-vcf-lshelf::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-lshelf::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-lshelf::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-lshelf::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-lshelf::dBgain-Offset +gfloat +[6,24] +rwx +dBgain-Offset +dBgain-Offset. +6 + + + +ladspa-vcf-peakeq::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-peakeq::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-peakeq::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-peakeq::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-peakeq::dBgain-Offset +gfloat +[6,24] +rwx +dBgain-Offset +dBgain-Offset. +6 + + + +ladspa-vcf-notch::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-notch::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-notch::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-notch::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-bp2::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-bp2::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-bp2::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-bp2::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-bp1::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-bp1::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-bp1::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-bp1::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-hp::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-hp::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-hp::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-hp::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-lp::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-lp::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-lp::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-lp::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-vcf-reslp::Frequency-Offset +gfloat +[20,20000] +rwx +Frequency-Offset +Frequency-Offset. +20 + + + +ladspa-vcf-reslp::Frequency-Pitch +gfloat +[-2,2] +rwx +Frequency-Pitch +Frequency-Pitch. +-2 + + + +ladspa-vcf-reslp::Gain +gfloat +[0,1] +rwx +Gain +Gain. +0 + + + +ladspa-vcf-reslp::Resonance-Offset +gfloat +[0,001,1] +rwx +Resonance-Offset +Resonance-Offset. +0,001 + + + +ladspa-adsr::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-adsr::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-adsr::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-adsr::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-adsr::Trigger-Threshold +gfloat + +rwx +Trigger-Threshold +Trigger-Threshold. +-3,40282e+38 + + + +ladspa-adsr::Abklingzeit +gfloat +>= 0 +rwx +Abklingzeit +Abklingzeit. +0 + + + +ladspa-adsr::Ausklingzeit +gfloat +>= 0 +rwx +Ausklingzeit +Ausklingzeit. +0 + + + +ladspa-adsr::Einschwingzeit +gfloat +>= 0 +rwx +Einschwingzeit +Einschwingzeit. +0 + + + +ladspa-adsr::Haltewert +gfloat +[0,1] +rwx +Haltewert +Haltewert. +1 + + + +ladspa-slide-tc::Fall-time +gfloat + +rwx +Fall-time +Fall-time. +-3,40282e+38 + + + +ladspa-slide-tc::Rise-time +gfloat + +rwx +Rise-time +Rise-time. +-3,40282e+38 + + + +ladspa-signal-abs-cr::Sign +gboolean + +rwx +Sign +Sign. +FALSE + + + +ladspa-slew-limiter-rc::Fall-rate +gfloat + +rwx +Fall-rate +Fall-rate. +-3,40282e+38 + + + +ladspa-slew-limiter-rc::Rise-rate +gfloat + +rwx +Rise-rate +Rise-rate. +-3,40282e+38 + + + +ladspa-dahdsr-hexp::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-dahdsr-hexp::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-dahdsr-hexp::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-dahdsr-hexp::Hold-Time +gfloat +>= 0 +rwx +Hold-Time +Hold-Time. +0 + + + +ladspa-dahdsr-hexp::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-dahdsr-hexp::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-dahdsr-fexp::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-dahdsr-fexp::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-dahdsr-fexp::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-dahdsr-fexp::Hold-Time +gfloat +>= 0 +rwx +Hold-Time +Hold-Time. +0 + + + +ladspa-dahdsr-fexp::Release-Time +gfloat +>= 0 +rwx +Release-Time +Release-Time. +0 + + + +ladspa-dahdsr-fexp::Sustain-Level +gfloat +[0,1] +rwx +Sustain-Level +Sustain-Level. +1 + + + +ladspa-prob-switch-cr::Probability +gfloat + +rwx +Probability +Probability. +1 + + + +ladspa-adenv::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-adenv::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-adenv-lvl::Attack-Time +gfloat +>= 0 +rwx +Attack-Time +Attack-Time. +0 + + + +ladspa-adenv-lvl::Attack-to-Level +gfloat +>= 0 +rwx +Attack-to-Level +Attack-to-Level. +1 + + + +ladspa-adenv-lvl::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-adenv-lvl::Decay-to-Level +gfloat +>= 0 +rwx +Decay-to-Level +Decay-to-Level. +0 + + + +ladspa-adenv-lvl::Initial-Level +gfloat +>= 0 +rwx +Initial-Level +Initial-Level. +0 + + + +ladspa-range-trans-cr::Input-Max +gfloat + +rwx +Input-Max +Input-Max. +1 + + + +ladspa-range-trans-cr::Input-Min +gfloat + +rwx +Input-Min +Input-Min. +0 + + + +ladspa-range-trans-cr::Output-Max +gfloat + +rwx +Output-Max +Output-Max. +1 + + + +ladspa-range-trans-cr::Output-Min +gfloat + +rwx +Output-Min +Output-Min. +0 + + + +ladspa-hz-voct-cr::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-hz-voct-cr::Output +gfloat + +r +Output +Output. +-3,40282e+38 + + + +ladspa-tap-vibrato::Depth---- +gfloat +[0,20] +rwx +Depth---- +Depth----. +0 + + + +ladspa-tap-vibrato::Dry-Level--dB- +gfloat +[-90,20] +rwx +Dry-Level--dB- +Dry-Level--dB-. +-90 + + + +ladspa-tap-vibrato::Frequency--Hz- +gfloat +[0,30] +rwx +Frequency--Hz- +Frequency--Hz-. +0 + + + +ladspa-tap-vibrato::Wet-Level--dB- +gfloat +[-90,20] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-tap-vibrato::latency +gfloat +[0,6300] +r +latency +latency. +6300 + + + +ladspa-tap-tubewarmth::Drive +gfloat +[0.1,10] +rwx +Drive +Drive. +2.575 + + + +ladspa-tap-tubewarmth::Tape--Tube-Blend +gfloat +[-10,10] +rwx +Tape--Tube-Blend +Tape--Tube-Blend. +10 + + + +ladspa-tap-tremolo::Depth---- +gfloat +[0,100] +rwx +Depth---- +Depth----. +0 + + + +ladspa-tap-tremolo::Frequency--Hz- +gfloat +[0,20] +rwx +Frequency--Hz- +Frequency--Hz-. +0 + + + +ladspa-tap-tremolo::Gain--dB- +gfloat +[-70,20] +rwx +Gain--dB- +Gain--dB-. +0 + + + +ladspa-tap-sigmoid::Post-Gain--dB- +gfloat +[-90,20] +rwx +Post-Gain--dB- +Post-Gain--dB-. +0 + + + +ladspa-tap-sigmoid::Pre-Gain--dB- +gfloat +[-90,20] +rwx +Pre-Gain--dB- +Pre-Gain--dB-. +0 + + + +ladspa-tap-rotspeak::Horn-Frequency--Hz- +gfloat +[0,30] +rwx +Horn-Frequency--Hz- +Horn-Frequency--Hz-. +0 + + + +ladspa-tap-rotspeak::Mic-Distance---- +gfloat +[0,100] +rwx +Mic-Distance---- +Mic-Distance----. +25 + + + +ladspa-tap-rotspeak::Rotor-Frequency--Hz- +gfloat +[0,30] +rwx +Rotor-Frequency--Hz- +Rotor-Frequency--Hz-. +0 + + + +ladspa-tap-rotspeak::Rotor-Horn-Mix +gfloat +[0,1] +rwx +Rotor-Horn-Mix +Rotor-Horn-Mix. +0.5 + + + +ladspa-tap-rotspeak::latency +gfloat +[0,9200] +r +latency +latency. +9200 + + + +ladspa-tap-reverb::Allpass-Filters +gboolean + +rwx +Allpass-Filters +Allpass-Filters. +FALSE + + + +ladspa-tap-reverb::Bandpass-Filter +gboolean + +rwx +Bandpass-Filter +Bandpass-Filter. +FALSE + + + +ladspa-tap-reverb::Comb-Filters +gboolean + +rwx +Comb-Filters +Comb-Filters. +FALSE + + + +ladspa-tap-reverb::Decay--ms- +gfloat +[0,10000] +rwx +Decay--ms- +Decay--ms-. +2500 + + + +ladspa-tap-reverb::Dry-Level--dB- +gfloat +[-70,10] +rwx +Dry-Level--dB- +Dry-Level--dB-. +0 + + + +ladspa-tap-reverb::Enhanced-Stereo +gboolean + +rwx +Enhanced-Stereo +Enhanced-Stereo. +FALSE + + + +ladspa-tap-reverb::Reverb-Type +gint +[0,42] +rwx +Reverb-Type +Reverb-Type. +0 + + + +ladspa-tap-reverb::Wet-Level--dB- +gfloat +[-70,10] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-tap-reflector::Dry-Level--dB- +gfloat +[-90,20] +rwx +Dry-Level--dB- +Dry-Level--dB-. +-90 + + + +ladspa-tap-reflector::Fragment-Length--ms- +gfloat +[20,1600] +rwx +Fragment-Length--ms- +Fragment-Length--ms-. +415 + + + +ladspa-tap-reflector::Wet-Level--dB- +gfloat +[-90,20] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-tap-pitch::Dry-Level--dB- +gfloat +[-90,20] +rwx +Dry-Level--dB- +Dry-Level--dB-. +-90 + + + +ladspa-tap-pitch::Rate-Shift---- +gfloat +[-50,100] +rwx +Rate-Shift---- +Rate-Shift----. +0 + + + +ladspa-tap-pitch::Semitone-Shift +gfloat +[-12,12] +rwx +Semitone-Shift +Semitone-Shift. +0 + + + +ladspa-tap-pitch::Wet-Level--dB- +gfloat +[-90,20] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-tap-pitch::latency +gfloat +[0,16027] +r +latency +latency. +16027 + + + +ladspa-tap-pinknoise::Fractal-Dimension +gfloat +[0,1] +rwx +Fractal-Dimension +Fractal-Dimension. +0.5 + + + +ladspa-tap-pinknoise::Noise-Level--dB- +gfloat +[-90,20] +rwx +Noise-Level--dB- +Noise-Level--dB-. +-90 + + + +ladspa-tap-pinknoise::Signal-Level--dB- +gfloat +[-90,20] +rwx +Signal-Level--dB- +Signal-Level--dB-. +0 + + + +ladspa-tap-limiter::Limit-Level--dB- +gfloat +[-30,20] +rwx +Limit-Level--dB- +Limit-Level--dB-. +0 + + + +ladspa-tap-limiter::Output-Volume--dB- +gfloat +[-30,20] +rwx +Output-Volume--dB- +Output-Volume--dB-. +0 + + + +ladspa-tap-limiter::latency +gfloat +[0,2500.1] +r +latency +latency. +2500.1 + + + +ladspa-tap-equalizer-bw::Band-1-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-1-Bandwidth--octaves- +Band-1-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-1-Freq--Hz- +gfloat +[40,280] +rwx +Band-1-Freq--Hz- +Band-1-Freq--Hz-. +100 + + + +ladspa-tap-equalizer-bw::Band-1-Gain--dB- +gfloat +[-50,20] +rwx +Band-1-Gain--dB- +Band-1-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-2-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-2-Bandwidth--octaves- +Band-2-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-2-Freq--Hz- +gfloat +[100,500] +rwx +Band-2-Freq--Hz- +Band-2-Freq--Hz-. +200 + + + +ladspa-tap-equalizer-bw::Band-2-Gain--dB- +gfloat +[-50,20] +rwx +Band-2-Gain--dB- +Band-2-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-3-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-3-Bandwidth--octaves- +Band-3-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-3-Freq--Hz- +gfloat +[200,1000] +rwx +Band-3-Freq--Hz- +Band-3-Freq--Hz-. +400 + + + +ladspa-tap-equalizer-bw::Band-3-Gain--dB- +gfloat +[-50,20] +rwx +Band-3-Gain--dB- +Band-3-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-4-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-4-Bandwidth--octaves- +Band-4-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-4-Freq--Hz- +gfloat +[400,2800] +rwx +Band-4-Freq--Hz- +Band-4-Freq--Hz-. +1000 + + + +ladspa-tap-equalizer-bw::Band-4-Gain--dB- +gfloat +[-50,20] +rwx +Band-4-Gain--dB- +Band-4-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-5-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-5-Bandwidth--octaves- +Band-5-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-5-Freq--Hz- +gfloat +[1000,5000] +rwx +Band-5-Freq--Hz- +Band-5-Freq--Hz-. +3000 + + + +ladspa-tap-equalizer-bw::Band-5-Gain--dB- +gfloat +[-50,20] +rwx +Band-5-Gain--dB- +Band-5-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-6-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-6-Bandwidth--octaves- +Band-6-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-6-Freq--Hz- +gfloat +[3000,9000] +rwx +Band-6-Freq--Hz- +Band-6-Freq--Hz-. +6000 + + + +ladspa-tap-equalizer-bw::Band-6-Gain--dB- +gfloat +[-50,20] +rwx +Band-6-Gain--dB- +Band-6-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-7-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-7-Bandwidth--octaves- +Band-7-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-7-Freq--Hz- +gfloat +[6000,18000] +rwx +Band-7-Freq--Hz- +Band-7-Freq--Hz-. +12000 + + + +ladspa-tap-equalizer-bw::Band-7-Gain--dB- +gfloat +[-50,20] +rwx +Band-7-Gain--dB- +Band-7-Gain--dB-. +0 + + + +ladspa-tap-equalizer-bw::Band-8-Bandwidth--octaves- +gfloat +[0.1,5] +rwx +Band-8-Bandwidth--octaves- +Band-8-Bandwidth--octaves-. +1 + + + +ladspa-tap-equalizer-bw::Band-8-Freq--Hz- +gfloat +[10000,20000] +rwx +Band-8-Freq--Hz- +Band-8-Freq--Hz-. +15000 + + + +ladspa-tap-equalizer-bw::Band-8-Gain--dB- +gfloat +[-50,20] +rwx +Band-8-Gain--dB- +Band-8-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-1-Freq--Hz- +gfloat +[40,280] +rwx +Band-1-Freq--Hz- +Band-1-Freq--Hz-. +100 + + + +ladspa-tap-equalizer::Band-1-Gain--dB- +gfloat +[-50,20] +rwx +Band-1-Gain--dB- +Band-1-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-2-Freq--Hz- +gfloat +[100,500] +rwx +Band-2-Freq--Hz- +Band-2-Freq--Hz-. +200 + + + +ladspa-tap-equalizer::Band-2-Gain--dB- +gfloat +[-50,20] +rwx +Band-2-Gain--dB- +Band-2-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-3-Freq--Hz- +gfloat +[200,1000] +rwx +Band-3-Freq--Hz- +Band-3-Freq--Hz-. +400 + + + +ladspa-tap-equalizer::Band-3-Gain--dB- +gfloat +[-50,20] +rwx +Band-3-Gain--dB- +Band-3-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-4-Freq--Hz- +gfloat +[400,2800] +rwx +Band-4-Freq--Hz- +Band-4-Freq--Hz-. +1000 + + + +ladspa-tap-equalizer::Band-4-Gain--dB- +gfloat +[-50,20] +rwx +Band-4-Gain--dB- +Band-4-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-5-Freq--Hz- +gfloat +[1000,5000] +rwx +Band-5-Freq--Hz- +Band-5-Freq--Hz-. +3000 + + + +ladspa-tap-equalizer::Band-5-Gain--dB- +gfloat +[-50,20] +rwx +Band-5-Gain--dB- +Band-5-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-6-Freq--Hz- +gfloat +[3000,9000] +rwx +Band-6-Freq--Hz- +Band-6-Freq--Hz-. +6000 + + + +ladspa-tap-equalizer::Band-6-Gain--dB- +gfloat +[-50,20] +rwx +Band-6-Gain--dB- +Band-6-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-7-Freq--Hz- +gfloat +[6000,18000] +rwx +Band-7-Freq--Hz- +Band-7-Freq--Hz-. +12000 + + + +ladspa-tap-equalizer::Band-7-Gain--dB- +gfloat +[-50,20] +rwx +Band-7-Gain--dB- +Band-7-Gain--dB-. +0 + + + +ladspa-tap-equalizer::Band-8-Freq--Hz- +gfloat +[10000,20000] +rwx +Band-8-Freq--Hz- +Band-8-Freq--Hz-. +15000 + + + +ladspa-tap-equalizer::Band-8-Gain--dB- +gfloat +[-50,20] +rwx +Band-8-Gain--dB- +Band-8-Gain--dB-. +0 + + + +ladspa-tap-stereo-echo::Cross-Mode +gboolean + +rwx +Cross-Mode +Cross-Mode. +FALSE + + + +ladspa-tap-stereo-echo::Dry-Level--dB- +gfloat +[-70,10] +rwx +Dry-Level--dB- +Dry-Level--dB-. +0 + + + +ladspa-tap-stereo-echo::Haas-Effect +gboolean + +rwx +Haas-Effect +Haas-Effect. +FALSE + + + +ladspa-tap-stereo-echo::L-Delay--ms- +gfloat +[0,2000] +rwx +L-Delay--ms- +L-Delay--ms-. +100 + + + +ladspa-tap-stereo-echo::L-Echo-Level--dB- +gfloat +[-70,10] +rwx +L-Echo-Level--dB- +L-Echo-Level--dB-. +0 + + + +ladspa-tap-stereo-echo::L-Feedback---- +gfloat +[0,100] +rwx +L-Feedback---- +L-Feedback----. +0 + + + +ladspa-tap-stereo-echo::R-Echo-Level--dB- +gfloat +[-70,10] +rwx +R-Echo-Level--dB- +R-Echo-Level--dB-. +0 + + + +ladspa-tap-stereo-echo::R-Haas-Delay--ms- +gfloat +[0,2000] +rwx +R-Haas-Delay--ms- +R-Haas-Delay--ms-. +100 + + + +ladspa-tap-stereo-echo::R-Haas-Feedback---- +gfloat +[0,100] +rwx +R-Haas-Feedback---- +R-Haas-Feedback----. +0 + + + +ladspa-tap-stereo-echo::Swap-Outputs +gboolean + +rwx +Swap-Outputs +Swap-Outputs. +FALSE + + + +ladspa-tap-dynamics-st::Attack--ms- +gfloat +[4,500] +rwx +Attack--ms- +Attack--ms-. +128 + + + +ladspa-tap-dynamics-st::Envelope-Volume +gfloat +[-60,20] +r +Envelope-Volume +Envelope-Volume. +0 + + + +ladspa-tap-dynamics-st::Envelope-Volume-1 +gfloat +[-60,20] +r +Envelope-Volume-1 +Envelope-Volume-1. +0 + + + +ladspa-tap-dynamics-st::Function +gint +[0,14] +rwx +Function +Function. +0 + + + +ladspa-tap-dynamics-st::Gain-Adjustment +gfloat +[-60,20] +r +Gain-Adjustment +Gain-Adjustment. +0 + + + +ladspa-tap-dynamics-st::Gain-Adjustment-1 +gfloat +[-60,20] +r +Gain-Adjustment-1 +Gain-Adjustment-1. +0 + + + +ladspa-tap-dynamics-st::Makeup-Gain--dB- +gfloat +[-20,20] +rwx +Makeup-Gain--dB- +Makeup-Gain--dB-. +0 + + + +ladspa-tap-dynamics-st::Offset-Gain--dB- +gfloat +[-20,20] +rwx +Offset-Gain--dB- +Offset-Gain--dB-. +0 + + + +ladspa-tap-dynamics-st::Release--ms- +gfloat +[4,1000] +rwx +Release--ms- +Release--ms-. +502 + + + +ladspa-tap-dynamics-st::Stereo-Mode +gint +[0,2] +rwx +Stereo-Mode +Stereo-Mode. +0 + + + +ladspa-formant-vc::Vowel +gfloat +[0,4] +rwx +Vowel +Vowel. +0 + + + +ladspa-tap-doubler::Dry-Left-Position +gfloat +[0,1] +rwx +Dry-Left-Position +Dry-Left-Position. +0 + + + +ladspa-tap-doubler::Dry-Level--dB- +gfloat +[-90,20] +rwx +Dry-Level--dB- +Dry-Level--dB-. +0 + + + +ladspa-tap-doubler::Dry-Right-Position +gfloat +[0,1] +rwx +Dry-Right-Position +Dry-Right-Position. +1 + + + +ladspa-tap-doubler::Pitch-Tracking +gfloat +[0,1] +rwx +Pitch-Tracking +Pitch-Tracking. +0.5 + + + +ladspa-tap-doubler::Time-Tracking +gfloat +[0,1] +rwx +Time-Tracking +Time-Tracking. +0.5 + + + +ladspa-tap-doubler::Wet-Left-Position +gfloat +[0,1] +rwx +Wet-Left-Position +Wet-Left-Position. +0 + + + +ladspa-tap-doubler::Wet-Level--dB- +gfloat +[-90,20] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-tap-doubler::Wet-Right-Position +gfloat +[0,1] +rwx +Wet-Right-Position +Wet-Right-Position. +1 + + + +ladspa-tap-deesser::Attenuation--dB- +gfloat +[0,10] +r +Attenuation--dB- +Attenuation--dB-. +0 + + + +ladspa-tap-deesser::Frequency--Hz- +gfloat +[2000,16000] +rwx +Frequency--Hz- +Frequency--Hz-. +5500 + + + +ladspa-tap-deesser::Monitor +gint +[0,1] +rwx +Monitor +Monitor. +0 + + + +ladspa-tap-deesser::Sidechain-Filter +gint +[0,1] +rwx +Sidechain-Filter +Sidechain-Filter. +0 + + + +ladspa-tap-deesser::Threshold-Level--dB- +gfloat +[-50,10] +rwx +Threshold-Level--dB- +Threshold-Level--dB-. +0 + + + +ladspa-tap-dynamics-m::Attack--ms- +gfloat +[4,500] +rwx +Attack--ms- +Attack--ms-. +128 + + + +ladspa-tap-dynamics-m::Envelope-Volume--dB- +gfloat +[-60,20] +r +Envelope-Volume--dB- +Envelope-Volume--dB-. +0 + + + +ladspa-tap-dynamics-m::Function +gint +[0,14] +rwx +Function +Function. +0 + + + +ladspa-tap-dynamics-m::Gain-Adjustment--dB- +gfloat +[-60,20] +r +Gain-Adjustment--dB- +Gain-Adjustment--dB-. +0 + + + +ladspa-tap-dynamics-m::Makeup-Gain--dB- +gfloat +[-20,20] +rwx +Makeup-Gain--dB- +Makeup-Gain--dB-. +0 + + + +ladspa-tap-dynamics-m::Offset-Gain--dB- +gfloat +[-20,20] +rwx +Offset-Gain--dB- +Offset-Gain--dB-. +0 + + + +ladspa-tap-dynamics-m::Release--ms- +gfloat +[4,1000] +rwx +Release--ms- +Release--ms-. +502 + + + +ladspa-tap-autopan::Depth---- +gfloat +[0,100] +rwx +Depth---- +Depth----. +0 + + + +ladspa-tap-autopan::Frequency--Hz- +gfloat +[0,20] +rwx +Frequency--Hz- +Frequency--Hz-. +0 + + + +ladspa-tap-autopan::Gain--dB- +gfloat +[-70,20] +rwx +Gain--dB- +Gain--dB-. +0 + + + +ladspa-imp::Gain +gfloat +[-90,24] +rwx +Gain +Gain. +0 + + + +ladspa-imp::High-latency-mode +gint +[0,1] +rwx +High-latency-mode +High-latency-mode. +0 + + + +ladspa-imp::Impulse-ID +gint +[1,21] +rwx +Impulse-ID +Impulse-ID. +1 + + + +ladspa-imp::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-pitchScaleHQ::Pitch-co-efficient +gfloat +[0.5,2] +rwx +Pitch-co-efficient +Pitch-co-efficient. +1 + + + +ladspa-pitchScaleHQ::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-tap-chorusflanger::Contour--Hz- +gfloat +[20,20000] +rwx +Contour--Hz- +Contour--Hz-. +100 + + + +ladspa-tap-chorusflanger::Delay--ms- +gfloat +[0,100] +rwx +Delay--ms- +Delay--ms-. +25 + + + +ladspa-tap-chorusflanger::Depth---- +gfloat +[0,100] +rwx +Depth---- +Depth----. +75 + + + +ladspa-tap-chorusflanger::Dry-Level--dB- +gfloat +[-90,20] +rwx +Dry-Level--dB- +Dry-Level--dB-. +0 + + + +ladspa-tap-chorusflanger::Frequency--Hz- +gfloat +[0,5] +rwx +Frequency--Hz- +Frequency--Hz-. +1.25 + + + +ladspa-tap-chorusflanger::L-R-Phase-Shift--deg- +gfloat +[0,180] +rwx +L-R-Phase-Shift--deg- +L-R-Phase-Shift--deg-. +90 + + + +ladspa-tap-chorusflanger::Wet-Level--dB- +gfloat +[-90,20] +rwx +Wet-Level--dB- +Wet-Level--dB-. +0 + + + +ladspa-mbeq::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-mbeq::param-10000Hz-gain +gfloat +[-70,30] +rwx +param-10000Hz-gain +param-10000Hz-gain. +0 + + + +ladspa-mbeq::param-100Hz-gain +gfloat +[-70,30] +rwx +param-100Hz-gain +param-100Hz-gain. +0 + + + +ladspa-mbeq::param-1250Hz-gain +gfloat +[-70,30] +rwx +param-1250Hz-gain +param-1250Hz-gain. +0 + + + +ladspa-mbeq::param-156Hz-gain +gfloat +[-70,30] +rwx +param-156Hz-gain +param-156Hz-gain. +0 + + + +ladspa-mbeq::param-1750Hz-gain +gfloat +[-70,30] +rwx +param-1750Hz-gain +param-1750Hz-gain. +0 + + + +ladspa-mbeq::param-20000Hz-gain +gfloat +[-70,30] +rwx +param-20000Hz-gain +param-20000Hz-gain. +0 + + + +ladspa-mbeq::param-220Hz-gain +gfloat +[-70,30] +rwx +param-220Hz-gain +param-220Hz-gain. +0 + + + +ladspa-mbeq::param-2500Hz-gain +gfloat +[-70,30] +rwx +param-2500Hz-gain +param-2500Hz-gain. +0 + + + +ladspa-mbeq::param-311Hz-gain +gfloat +[-70,30] +rwx +param-311Hz-gain +param-311Hz-gain. +0 + + + +ladspa-mbeq::param-3500Hz-gain +gfloat +[-70,30] +rwx +param-3500Hz-gain +param-3500Hz-gain. +0 + + + +ladspa-mbeq::param-440Hz-gain +gfloat +[-70,30] +rwx +param-440Hz-gain +param-440Hz-gain. +0 + + + +ladspa-mbeq::param-5000Hz-gain +gfloat +[-70,30] +rwx +param-5000Hz-gain +param-5000Hz-gain. +0 + + + +ladspa-mbeq::param-50Hz-gain +gfloat +[-70,30] +rwx +param-50Hz-gain +param-50Hz-gain. +0 + + + +ladspa-mbeq::param-622Hz-gain +gfloat +[-70,30] +rwx +param-622Hz-gain +param-622Hz-gain. +0 + + + +ladspa-mbeq::param-880Hz-gain +gfloat +[-70,30] +rwx +param-880Hz-gain +param-880Hz-gain. +0 + + + +ladspa-sc4m::Amplitude +gfloat +[-40,12] +r +Amplitude +Amplitude. +-40 + + + +ladspa-sc4m::Attack-time +gfloat +[1.5,400] +rwx +Attack-time +Attack-time. +101.125 + + + +ladspa-sc4m::Gain-reduction +gfloat +[-24,0] +r +Gain-reduction +Gain-reduction. +-24 + + + +ladspa-sc4m::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-sc4m::Makeup-gain +gfloat +[0,24] +rwx +Makeup-gain +Makeup-gain. +0 + + + +ladspa-sc4m::RMS-peak +gfloat +[0,1] +rwx +RMS-peak +RMS-peak. +0 + + + +ladspa-sc4m::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-sc4m::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-sc4m::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-xfade4::Crossfade +gfloat +[-1,1] +rwx +Crossfade +Crossfade. +0 + + + +ladspa-xfade::Crossfade +gfloat +[-1,1] +rwx +Crossfade +Crossfade. +0 + + + +ladspa-artificialLatency::Delay +gfloat +[0,10000] +rwx +Delay +Delay. +2500 + + + +ladspa-artificialLatency::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-pitchScale::Pitch-co-efficient +gfloat +[0.5,2] +rwx +Pitch-co-efficient +Pitch-co-efficient. +1 + + + +ladspa-pitchScale::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-pointerCastDistortion::Dry-wet-mix +gfloat +[0,1] +rwx +Dry-wet-mix +Dry-wet-mix. +0 + + + +ladspa-pointerCastDistortion::Effect-cutoff-freq +gfloat +[4.41,13230] +rwx +Effect-cutoff-freq +Effect-cutoff-freq. +32.6376 + + + +ladspa-const::Signal-amplitude +gfloat +[-1,1.1] +rwx +Signal-amplitude +Signal-amplitude. +0 + + + +ladspa-lsFilter::Cutoff-frequency +gfloat +[88.2,22050] +rwx +Cutoff-frequency +Cutoff-frequency. +1394.56 + + + +ladspa-lsFilter::Filter-type +gint +[0,2] +rwx +Filter-type +Filter-type. +0 + + + +ladspa-lsFilter::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-revdelay::Crossfade-samples +gint +[0,5000] +rwx +Crossfade-samples +Crossfade-samples. +1250 + + + +ladspa-revdelay::Delay-Time +gfloat +[0,5] +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-revdelay::Dry-Level +gfloat +[-70,0] +rwx +Dry-Level +Dry-Level. +0 + + + +ladspa-revdelay::Feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-revdelay::Wet-Level +gfloat +[-70,0] +rwx +Wet-Level +Wet-Level. +0 + + + +ladspa-vynil::Crackle +gfloat +[0,1] +rwx +Crackle +Crackle. +0 + + + +ladspa-vynil::RPM +gfloat +[33,78] +rwx +RPM +RPM. +33 + + + +ladspa-vynil::Surface-warping +gfloat +[0,1] +rwx +Surface-warping +Surface-warping. +0 + + + +ladspa-vynil::Wear +gfloat +[0,1] +rwx +Wear +Wear. +0 + + + +ladspa-vynil::Year +gfloat +[1900,1990] +rwx +Year +Year. +1990 + + + +ladspa-impulse-fc::Frequency +gfloat +>= 0 +rwx +Frequency +Frequency. +0 + + + +ladspa-delay-c::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-delay-c::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-delay-l::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-delay-l::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-delay-n::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-delay-n::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-decay::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-comb-c::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-comb-c::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-comb-c::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-comb-l::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-comb-l::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-comb-l::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-comb-n::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-comb-n::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-comb-n::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-allpass-c::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-allpass-c::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-allpass-c::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-allpass-l::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-allpass-l::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-allpass-l::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-allpass-n::Decay-Time +gfloat +>= 0 +rwx +Decay-Time +Decay-Time. +0 + + + +ladspa-allpass-n::Delay-Time +gfloat +>= 0 +rwx +Delay-Time +Delay-Time. +0 + + + +ladspa-allpass-n::Max-Delay +gfloat +>= 0 +rwx +Max-Delay +Max-Delay. +0 + + + +ladspa-butthigh-iir::Cutoff-Frequency +gfloat +[4.41,19845] +rwx +Cutoff-Frequency +Cutoff-Frequency. +36.1195 + + + +ladspa-butthigh-iir::Resonance +gfloat +[0.1,1.41] +rwx +Resonance +Resonance. +0.755 + + + +ladspa-buttlow-iir::Cutoff-Frequency +gfloat +[4.41,19845] +rwx +Cutoff-Frequency +Cutoff-Frequency. +36.1195 + + + +ladspa-buttlow-iir::Resonance +gfloat +[0.1,1.41] +rwx +Resonance +Resonance. +0.755 + + + +ladspa-bwxover-iir::Cutoff-Frequency +gfloat +[4.41,19845] +rwx +Cutoff-Frequency +Cutoff-Frequency. +36.1195 + + + +ladspa-bwxover-iir::Resonance +gfloat +[0.1,1.41] +rwx +Resonance +Resonance. +0.755 + + + +ladspa-dj-eq::Hi-gain +gfloat +[-70,6] +rwx +Hi-gain +Hi-gain. +0 + + + +ladspa-dj-eq::Lo-gain +gfloat +[-70,6] +rwx +Lo-gain +Lo-gain. +0 + + + +ladspa-dj-eq::Mid-gain +gfloat +[-70,6] +rwx +Mid-gain +Mid-gain. +0 + + + +ladspa-dj-eq::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-dj-eq-mono::Hi-gain +gfloat +[-70,6] +rwx +Hi-gain +Hi-gain. +0 + + + +ladspa-dj-eq-mono::Lo-gain +gfloat +[-70,6] +rwx +Lo-gain +Lo-gain. +0 + + + +ladspa-dj-eq-mono::Mid-gain +gfloat +[-70,6] +rwx +Mid-gain +Mid-gain. +0 + + + +ladspa-dj-eq-mono::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-notch-iir::Bandwidth +gfloat +[4.41,19845] +rwx +Bandwidth +Bandwidth. +295.832 + + + +ladspa-notch-iir::Center-Frequency +gfloat +[4.41,19845] +rwx +Center-Frequency +Center-Frequency. +295.832 + + + +ladspa-notch-iir::Stages-2-poles-per-stage- +gint +[1,10] +rwx +Stages-2-poles-per-stage- +Stages-2-poles-per-stage-. +1 + + + +ladspa-lowpass-iir::Cutoff-Frequency +gfloat +[4.41,19845] +rwx +Cutoff-Frequency +Cutoff-Frequency. +2422.97 + + + +ladspa-lowpass-iir::Stages-2-poles-per-stage- +gint +[1,10] +rwx +Stages-2-poles-per-stage- +Stages-2-poles-per-stage-. +1 + + + +ladspa-highpass-iir::Cutoff-Frequency +gfloat +[4.41,19845] +rwx +Cutoff-Frequency +Cutoff-Frequency. +36.1195 + + + +ladspa-highpass-iir::Stages-2-poles-per-stage- +gint +[1,10] +rwx +Stages-2-poles-per-stage- +Stages-2-poles-per-stage-. +1 + + + +ladspa-bandpass-iir::Bandwidth +gfloat +[4.41,19845] +rwx +Bandwidth +Bandwidth. +295.832 + + + +ladspa-bandpass-iir::Center-Frequency +gfloat +[4.41,19845] +rwx +Center-Frequency +Center-Frequency. +295.832 + + + +ladspa-bandpass-iir::Stages-2-poles-per-stage- +gint +[1,10] +rwx +Stages-2-poles-per-stage- +Stages-2-poles-per-stage-. +1 + + + +ladspa-bandpass-a-iir::Bandwidth +gfloat +[4.41,19845] +rwx +Bandwidth +Bandwidth. +295.832 + + + +ladspa-bandpass-a-iir::Center-Frequency +gfloat +[4.41,19845] +rwx +Center-Frequency +Center-Frequency. +36.1195 + + + +ladspa-se4::Amplitude +gfloat +[-40,12] +r +Amplitude +Amplitude. +-40 + + + +ladspa-se4::Attack-time +gfloat +[1.5,400] +rwx +Attack-time +Attack-time. +101.125 + + + +ladspa-se4::Attenuation +gfloat +[-24,0] +rwx +Attenuation +Attenuation. +0 + + + +ladspa-se4::Gain-expansion +gfloat +[0,24] +r +Gain-expansion +Gain-expansion. +0 + + + +ladspa-se4::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-se4::RMS-peak +gfloat +[0,1] +rwx +RMS-peak +RMS-peak. +0 + + + +ladspa-se4::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-se4::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-se4::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-sinCos::Base-frequency +gfloat +[0.0441,22050] +rwx +Base-frequency +Base-frequency. +440 + + + +ladspa-sinCos::Pitch-offset +gfloat +[0,8] +rwx +Pitch-offset +Pitch-offset. +0 + + + +ladspa-hilbert::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-gongBeater::Impulse-gain +gfloat +[-70,0] +rwx +Impulse-gain +Impulse-gain. +-70 + + + +ladspa-gongBeater::Strike-duration +gfloat +[0.001,0.2] +rwx +Strike-duration +Strike-duration. +0.1005 + + + +ladspa-gongBeater::Strike-gain +gfloat +[-70,0] +rwx +Strike-gain +Strike-gain. +0 + + + +ladspa-djFlanger::Feedback +gfloat +[-100,100] +rwx +Feedback +Feedback. +0 + + + +ladspa-djFlanger::LFO-depth +gfloat +[1,5] +rwx +LFO-depth +LFO-depth. +4 + + + +ladspa-djFlanger::LFO-period +gfloat +[0.1,32] +rwx +LFO-period +LFO-period. +1 + + + +ladspa-djFlanger::LFO-sync +gfloat + +rwx +LFO-sync +LFO-sync. +-3.40282e+38 + + + +ladspa-giantFlange::Delay-1-range +gfloat +[0,10.5] +rwx +Delay-1-range +Delay-1-range. +2.625 + + + +ladspa-giantFlange::Delay-2-range +gfloat +[0,10.5] +rwx +Delay-2-range +Delay-2-range. +0 + + + +ladspa-giantFlange::Double-delay +gfloat + +rwx +Double-delay +Double-delay. +-3.40282e+38 + + + +ladspa-giantFlange::Dry-Wet-level +gfloat +[0,1] +rwx +Dry-Wet-level +Dry-Wet-level. +0 + + + +ladspa-giantFlange::Feedback +gfloat +[-100,100] +rwx +Feedback +Feedback. +0 + + + +ladspa-giantFlange::LFO-frequency-1 +gfloat +[0,30] +rwx +LFO-frequency-1 +LFO-frequency-1. +1 + + + +ladspa-giantFlange::LFO-frequency-2 +gfloat +[0,30] +rwx +LFO-frequency-2 +LFO-frequency-2. +1 + + + +ladspa-lcrDelay::C-delay +gfloat +[0,2700] +rwx +C-delay +C-delay. +675 + + + +ladspa-lcrDelay::C-level +gfloat +[0,50] +rwx +C-level +C-level. +25 + + + +ladspa-lcrDelay::Dry-Wet-level +gfloat +[0,1] +rwx +Dry-Wet-level +Dry-Wet-level. +0 + + + +ladspa-lcrDelay::Feedback +gfloat +[-100,100] +rwx +Feedback +Feedback. +0 + + + +ladspa-lcrDelay::High-damp +gfloat +[0,100] +rwx +High-damp +High-damp. +50 + + + +ladspa-lcrDelay::L-delay +gfloat +[0,2700] +rwx +L-delay +L-delay. +675 + + + +ladspa-lcrDelay::L-level +gfloat +[0,50] +rwx +L-level +L-level. +25 + + + +ladspa-lcrDelay::Low-damp +gfloat +[0,100] +rwx +Low-damp +Low-damp. +50 + + + +ladspa-lcrDelay::R-delay +gfloat +[0,2700] +rwx +R-delay +R-delay. +675 + + + +ladspa-lcrDelay::R-level +gfloat +[0,50] +rwx +R-level +R-level. +25 + + + +ladspa-lcrDelay::Spread +gfloat +[0,50] +rwx +Spread +Spread. +25 + + + +ladspa-sc4::Amplitude +gfloat +[-40,12] +r +Amplitude +Amplitude. +-40 + + + +ladspa-sc4::Attack-time +gfloat +[1.5,400] +rwx +Attack-time +Attack-time. +101.125 + + + +ladspa-sc4::Gain-reduction +gfloat +[-24,0] +r +Gain-reduction +Gain-reduction. +-24 + + + +ladspa-sc4::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-sc4::Makeup-gain +gfloat +[0,24] +rwx +Makeup-gain +Makeup-gain. +0 + + + +ladspa-sc4::RMS-peak +gfloat +[0,1] +rwx +RMS-peak +RMS-peak. +0 + + + +ladspa-sc4::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-sc4::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-sc4::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-amPitchshift::Buffer-size +gint +[1,7] +rwx +Buffer-size +Buffer-size. +4 + + + +ladspa-amPitchshift::Pitch-shift +gfloat +[0.25,4] +rwx +Pitch-shift +Pitch-shift. +1 + + + +ladspa-amPitchshift::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-bodeShifterCV::Base-shift +gfloat +[0,5000] +rwx +Base-shift +Base-shift. +0 + + + +ladspa-bodeShifterCV::CV-Attenuation +gfloat +[0,1] +rwx +CV-Attenuation +CV-Attenuation. +1 + + + +ladspa-bodeShifterCV::Mix +gfloat +[-1,1] +rwx +Mix +Mix. +0 + + + +ladspa-bodeShifterCV::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-bodeShifter::Frequency-shift +gfloat +[0,5000] +rwx +Frequency-shift +Frequency-shift. +0 + + + +ladspa-bodeShifter::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-chebstortion::Distortion +gfloat +[0,3] +rwx +Distortion +Distortion. +0 + + + +ladspa-sc3::Attack-time +gfloat +[2,400] +rwx +Attack-time +Attack-time. +101.5 + + + +ladspa-sc3::Chain-balance +gfloat +[0,1] +rwx +Chain-balance +Chain-balance. +0 + + + +ladspa-sc3::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-sc3::Makeup-gain +gfloat +[0,24] +rwx +Makeup-gain +Makeup-gain. +0 + + + +ladspa-sc3::Ratio +gfloat +[1,10] +rwx +Ratio +Ratio. +1 + + + +ladspa-sc3::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-sc3::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-sc2::Attack-time +gfloat +[2,400] +rwx +Attack-time +Attack-time. +101.5 + + + +ladspa-sc2::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-sc2::Makeup-gain +gfloat +[0,24] +rwx +Makeup-gain +Makeup-gain. +0 + + + +ladspa-sc2::Ratio +gfloat +[1,10] +rwx +Ratio +Ratio. +1 + + + +ladspa-sc2::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-sc2::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-sc1::Attack-time +gfloat +[2,400] +rwx +Attack-time +Attack-time. +101.5 + + + +ladspa-sc1::Knee-radius +gfloat +[1,10] +rwx +Knee-radius +Knee-radius. +3.25 + + + +ladspa-sc1::Makeup-gain +gfloat +[0,24] +rwx +Makeup-gain +Makeup-gain. +0 + + + +ladspa-sc1::Ratio +gfloat +[1,10] +rwx +Ratio +Ratio. +1 + + + +ladspa-sc1::Release-time +gfloat +[2,800] +rwx +Release-time +Release-time. +401 + + + +ladspa-sc1::Threshold-level +gfloat +[-30,0] +rwx +Threshold-level +Threshold-level. +0 + + + +ladspa-gong::Inner-damping +gfloat +[0,1] +rwx +Inner-damping +Inner-damping. +0.5 + + + +ladspa-gong::Inner-size-1 +gfloat +[0,1] +rwx +Inner-size-1 +Inner-size-1. +0.5 + + + +ladspa-gong::Inner-size-2 +gfloat +[0,1] +rwx +Inner-size-2 +Inner-size-2. +0.5 + + + +ladspa-gong::Inner-size-3 +gfloat +[0,1] +rwx +Inner-size-3 +Inner-size-3. +0.5 + + + +ladspa-gong::Inner-size-4 +gfloat +[0,1] +rwx +Inner-size-4 +Inner-size-4. +0.5 + + + +ladspa-gong::Inner-stiffness-1-- +gfloat +[0,1] +rwx +Inner-stiffness-1-- +Inner-stiffness-1--. +0.5 + + + +ladspa-gong::Inner-stiffness-1---1 +gfloat +[0,1] +rwx +Inner-stiffness-1---1 +Inner-stiffness-1---1. +0.5 + + + +ladspa-gong::Inner-stiffness-2-- +gfloat +[0,1] +rwx +Inner-stiffness-2-- +Inner-stiffness-2--. +0.5 + + + +ladspa-gong::Inner-stiffness-2---1 +gfloat +[0,1] +rwx +Inner-stiffness-2---1 +Inner-stiffness-2---1. +0.5 + + + +ladspa-gong::Inner-stiffness-3-- +gfloat +[0,1] +rwx +Inner-stiffness-3-- +Inner-stiffness-3--. +0.5 + + + +ladspa-gong::Inner-stiffness-3---1 +gfloat +[0,1] +rwx +Inner-stiffness-3---1 +Inner-stiffness-3---1. +0.5 + + + +ladspa-gong::Inner-stiffness-4-- +gfloat +[0,1] +rwx +Inner-stiffness-4-- +Inner-stiffness-4--. +0.5 + + + +ladspa-gong::Inner-stiffness-4---1 +gfloat +[0,1] +rwx +Inner-stiffness-4---1 +Inner-stiffness-4---1. +0.5 + + + +ladspa-gong::Mic-position +gfloat +[0,1] +rwx +Mic-position +Mic-position. +0.25 + + + +ladspa-gong::Outer-damping +gfloat +[0,1] +rwx +Outer-damping +Outer-damping. +0.5 + + + +ladspa-gong::Outer-size-1 +gfloat +[0,1] +rwx +Outer-size-1 +Outer-size-1. +0.5 + + + +ladspa-gong::Outer-size-2 +gfloat +[0,1] +rwx +Outer-size-2 +Outer-size-2. +0.5 + + + +ladspa-gong::Outer-size-3 +gfloat +[0,1] +rwx +Outer-size-3 +Outer-size-3. +0.5 + + + +ladspa-gong::Outer-size-4 +gfloat +[0,1] +rwx +Outer-size-4 +Outer-size-4. +0.5 + + + +ladspa-gong::Outer-stiffness-1-- +gfloat +[0,1] +rwx +Outer-stiffness-1-- +Outer-stiffness-1--. +0.5 + + + +ladspa-gong::Outer-stiffness-1---1 +gfloat +[0,1] +rwx +Outer-stiffness-1---1 +Outer-stiffness-1---1. +0.5 + + + +ladspa-gong::Outer-stiffness-2-- +gfloat +[0,1] +rwx +Outer-stiffness-2-- +Outer-stiffness-2--. +0.5 + + + +ladspa-gong::Outer-stiffness-2---1 +gfloat +[0,1] +rwx +Outer-stiffness-2---1 +Outer-stiffness-2---1. +0.5 + + + +ladspa-gong::Outer-stiffness-3-- +gfloat +[0,1] +rwx +Outer-stiffness-3-- +Outer-stiffness-3--. +0.5 + + + +ladspa-gong::Outer-stiffness-3---1 +gfloat +[0,1] +rwx +Outer-stiffness-3---1 +Outer-stiffness-3---1. +0.5 + + + +ladspa-gong::Outer-stiffness-4-- +gfloat +[0,1] +rwx +Outer-stiffness-4-- +Outer-stiffness-4--. +0.5 + + + +ladspa-gong::Outer-stiffness-4---1 +gfloat +[0,1] +rwx +Outer-stiffness-4---1 +Outer-stiffness-4---1. +0.5 + + + +ladspa-plate::Damping +gfloat +[0,1] +rwx +Damping +Damping. +0.25 + + + +ladspa-plate::Dry-wet-mix +gfloat +[0,1] +rwx +Dry-wet-mix +Dry-wet-mix. +0.25 + + + +ladspa-plate::Reverb-time +gfloat +[0.01,8.5] +rwx +Reverb-time +Reverb-time. +4.255 + + + +ladspa-matrixSpatialiser::Width +gint +[-512,512] +rwx +Width +Width. +0 + + + +ladspa-matrixMSSt::Width +gfloat +[0,2] +rwx +Width +Width. +1 + + + +ladspa-modDelay::Base-delay +gfloat +[0,1] +rwx +Base-delay +Base-delay. +1 + + + +ladspa-freqTracker::Tracking-speed +gfloat +[0,1] +rwx +Tracking-speed +Tracking-speed. +0.5 + + + +ladspa-rateShifter::Rate +gfloat +[-4,4] +rwx +Rate +Rate. +1 + + + +ladspa-analogueOsc::Frequency +gfloat +[0.0441,22005.9] +rwx +Frequency +Frequency. +440 + + + +ladspa-analogueOsc::Instability +gfloat +[0,1] +rwx +Instability +Instability. +0 + + + +ladspa-analogueOsc::Warmth +gfloat +[0,1] +rwx +Warmth +Warmth. +0 + + + +ladspa-analogueOsc::Waveform +gint +[1,4] +rwx +Waveform +Waveform. +1 + + + +ladspa-fmOsc::Waveform +gint +[1,4] +rwx +Waveform +Waveform. +1 + + + +ladspa-smoothDecimate::Resample-rate +gfloat +[0,44100] +rwx +Resample-rate +Resample-rate. +44100 + + + +ladspa-smoothDecimate::Smoothing +gfloat +[0,1] +rwx +Smoothing +Smoothing. +1 + + + +ladspa-hardLimiter::Residue-level +gfloat +[0,1] +rwx +Residue-level +Residue-level. +0 + + + +ladspa-hardLimiter::Wet-level +gfloat +[0,1] +rwx +Wet-level +Wet-level. +1 + + + +ladspa-hardLimiter::dB-limit +gfloat +[-50,0] +rwx +dB-limit +dB-limit. +0 + + + +ladspa-combSplitter::Band-separation +gfloat +[16,640] +rwx +Band-separation +Band-separation. +172 + + + +ladspa-gate::Attack +gfloat +[0.01,1000] +rwx +Attack +Attack. +250.008 + + + +ladspa-gate::Decay +gfloat +[2,4000] +rwx +Decay +Decay. +2001 + + + +ladspa-gate::HF-key-filter +gfloat +[220.5,21609] +rwx +HF-key-filter +HF-key-filter. +21609 + + + +ladspa-gate::Hold +gfloat +[2,2000] +rwx +Hold +Hold. +1500.5 + + + +ladspa-gate::LF-key-filter +gfloat +[30.87,4410] +rwx +LF-key-filter +LF-key-filter. +30.87 + + + +ladspa-gate::Output-select +gint +[G_MAXULONG,1] +rwx +Output-select +Output-select. +0 + + + +ladspa-gate::Range +gfloat +[-90,0] +rwx +Range +Range. +-90 + + + +ladspa-gate::Threshold +gfloat +[-70,20] +rwx +Threshold +Threshold. +-70 + + + +ladspa-karaoke::Vocal-volume +gfloat +[-70,0] +rwx +Vocal-volume +Vocal-volume. +0 + + + +ladspa-satanMaximiser::Decay-time +gfloat +[2,30] +rwx +Decay-time +Decay-time. +30 + + + +ladspa-satanMaximiser::Knee-point +gfloat +[-90,0] +rwx +Knee-point +Knee-point. +0 + + + +ladspa-alias::Aliasing-level +gfloat +[0,1] +rwx +Aliasing-level +Aliasing-level. +0 + + + +ladspa-valveRect::Distortion +gfloat +[0,1] +rwx +Distortion +Distortion. +0 + + + +ladspa-valveRect::Sag-level +gfloat +[0,1] +rwx +Sag-level +Sag-level. +0 + + + +ladspa-crossoverDist::Crossover-amplitude +gfloat +[0,0.1] +rwx +Crossover-amplitude +Crossover-amplitude. +0 + + + +ladspa-crossoverDist::Smoothing +gfloat +[0,1] +rwx +Smoothing +Smoothing. +1 + + + +ladspa-dysonCompress::Compression-ratio +gfloat +[0,1] +rwx +Compression-ratio +Compression-ratio. +0.5 + + + +ladspa-dysonCompress::Fast-compression-ratio +gfloat +[0,1] +rwx +Fast-compression-ratio +Fast-compression-ratio. +0.5 + + + +ladspa-dysonCompress::Peak-limit +gfloat +[-30,0] +rwx +Peak-limit +Peak-limit. +0 + + + +ladspa-dysonCompress::Release-time +gfloat +[0,1] +rwx +Release-time +Release-time. +0.25 + + + +ladspa-delayorama::Amplitude-change +gfloat +[0.2,5] +rwx +Amplitude-change +Amplitude-change. +1 + + + +ladspa-delayorama::Amplitude-random +gfloat +[0,100] +rwx +Amplitude-random +Amplitude-random. +0 + + + +ladspa-delayorama::Delay-change +gfloat +[0.2,5] +rwx +Delay-change +Delay-change. +1 + + + +ladspa-delayorama::Delay-random +gfloat +[0,100] +rwx +Delay-random +Delay-random. +0 + + + +ladspa-delayorama::Delay-range +gfloat +[0.0001,6] +rwx +Delay-range +Delay-range. +6 + + + +ladspa-delayorama::Dry-wet-mix +gfloat +[0,1] +rwx +Dry-wet-mix +Dry-wet-mix. +1 + + + +ladspa-delayorama::Feedback +gfloat +[0,100] +rwx +Feedback +Feedback. +0 + + + +ladspa-delayorama::First-delay +gfloat +[0,5] +rwx +First-delay +First-delay. +0 + + + +ladspa-delayorama::Input-gain +gfloat +[-96,24] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-delayorama::Number-of-taps +gint +[2,128] +rwx +Number-of-taps +Number-of-taps. +2 + + + +ladspa-delayorama::Random-seed +gint +[0,1000] +rwx +Random-seed +Random-seed. +0 + + + +ladspa-harmonicGen::Fundamental-magnitude +gfloat +[-1,1] +rwx +Fundamental-magnitude +Fundamental-magnitude. +1 + + + +ladspa-harmonicGen::param-10th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-10th-harmonic-magnitude +param-10th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-2nd-harmonic-magnitude +gfloat +[-1,1] +rwx +param-2nd-harmonic-magnitude +param-2nd-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-3rd-harmonic-magnitude +gfloat +[-1,1] +rwx +param-3rd-harmonic-magnitude +param-3rd-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-4th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-4th-harmonic-magnitude +param-4th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-5th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-5th-harmonic-magnitude +param-5th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-6th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-6th-harmonic-magnitude +param-6th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-7th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-7th-harmonic-magnitude +param-7th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-8th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-8th-harmonic-magnitude +param-8th-harmonic-magnitude. +0 + + + +ladspa-harmonicGen::param-9th-harmonic-magnitude +gfloat +[-1,1] +rwx +param-9th-harmonic-magnitude +param-9th-harmonic-magnitude. +0 + + + +ladspa-autoPhaser::Attack-time +gfloat +[0,1] +rwx +Attack-time +Attack-time. +0.25 + + + +ladspa-autoPhaser::Decay-time +gfloat +[0,1] +rwx +Decay-time +Decay-time. +0.25 + + + +ladspa-autoPhaser::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-autoPhaser::Modulation-depth +gfloat +[0,1] +rwx +Modulation-depth +Modulation-depth. +0.25 + + + +ladspa-autoPhaser::Spread +gfloat +[0,2] +rwx +Spread +Spread. +1 + + + +ladspa-fourByFourPole::Feedback-1 +gfloat +[-1,1] +rwx +Feedback-1 +Feedback-1. +0 + + + +ladspa-fourByFourPole::Feedback-2 +gfloat +[-1,1] +rwx +Feedback-2 +Feedback-2. +0 + + + +ladspa-fourByFourPole::Feedback-3 +gfloat +[-1,1] +rwx +Feedback-3 +Feedback-3. +0 + + + +ladspa-fourByFourPole::Feedback-4 +gfloat +[-1,1] +rwx +Feedback-4 +Feedback-4. +0 + + + +ladspa-fourByFourPole::Frequency-1 +gfloat +[1,20000] +rwx +Frequency-1 +Frequency-1. +5000.75 + + + +ladspa-fourByFourPole::Frequency-2 +gfloat +[1,20000] +rwx +Frequency-2 +Frequency-2. +10000.5 + + + +ladspa-fourByFourPole::Frequency-3 +gfloat +[1,20000] +rwx +Frequency-3 +Frequency-3. +15000.2 + + + +ladspa-fourByFourPole::Frequency-4 +gfloat +[1,20000] +rwx +Frequency-4 +Frequency-4. +20000 + + + +ladspa-lfoPhaser::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-lfoPhaser::LFO-depth +gfloat +[0,1] +rwx +LFO-depth +LFO-depth. +0.25 + + + +ladspa-lfoPhaser::LFO-rate +gfloat +[0,100] +rwx +LFO-rate +LFO-rate. +25 + + + +ladspa-lfoPhaser::Spread +gfloat +[0,2] +rwx +Spread +Spread. +1 + + + +ladspa-gverb::Damping +gfloat +[0,1] +rwx +Damping +Damping. +0.5 + + + +ladspa-gverb::Dry-signal-level +gfloat +[-70,0] +rwx +Dry-signal-level +Dry-signal-level. +-70 + + + +ladspa-gverb::Early-reflection-level +gfloat +[-70,0] +rwx +Early-reflection-level +Early-reflection-level. +0 + + + +ladspa-gverb::Input-bandwidth +gfloat +[0,1] +rwx +Input-bandwidth +Input-bandwidth. +0.75 + + + +ladspa-gverb::Reverb-time +gfloat +[0.1,30] +rwx +Reverb-time +Reverb-time. +7.575 + + + +ladspa-gverb::Roomsize +gfloat +[1,300] +rwx +Roomsize +Roomsize. +75.75 + + + +ladspa-gverb::Tail-level +gfloat +[-70,0] +rwx +Tail-level +Tail-level. +-17.5 + + + +ladspa-gsm::Dry-wet-mix +gfloat +[0,1] +rwx +Dry-wet-mix +Dry-wet-mix. +1 + + + +ladspa-gsm::Error-rate +gfloat +[0,30] +rwx +Error-rate +Error-rate. +0 + + + +ladspa-gsm::Number-of-passes +gint +[0,10] +rwx +Number-of-passes +Number-of-passes. +1 + + + +ladspa-gsm::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-svf::Filter-Q +gfloat +[0,1] +rwx +Filter-Q +Filter-Q. +0.25 + + + +ladspa-svf::Filter-freq +gfloat +[0,6000] +rwx +Filter-freq +Filter-freq. +440 + + + +ladspa-svf::Filter-resonance +gfloat +[0,1] +rwx +Filter-resonance +Filter-resonance. +0 + + + +ladspa-svf::Filter-type +gint +[0,5] +rwx +Filter-type +Filter-type. +0 + + + +ladspa-foldover::Drive +gfloat +[0,1] +rwx +Drive +Drive. +0 + + + +ladspa-foldover::Skew +gfloat +[0,1] +rwx +Skew +Skew. +0 + + + +ladspa-stepMuxer::Crossfade-time +gfloat +[0,100] +rwx +Crossfade-time +Crossfade-time. +50 + + + +ladspa-tapeDelay::Dry-level +gfloat +[-90,0] +rwx +Dry-level +Dry-level. +-90 + + + +ladspa-tapeDelay::Tap-1-distance +gfloat +[0,4] +rwx +Tap-1-distance +Tap-1-distance. +0 + + + +ladspa-tapeDelay::Tap-1-level +gfloat +[-90,0] +rwx +Tap-1-level +Tap-1-level. +0 + + + +ladspa-tapeDelay::Tap-2-distance +gfloat +[0,4] +rwx +Tap-2-distance +Tap-2-distance. +1 + + + +ladspa-tapeDelay::Tap-2-level +gfloat +[-90,0] +rwx +Tap-2-level +Tap-2-level. +-90 + + + +ladspa-tapeDelay::Tap-3-distance +gfloat +[0,4] +rwx +Tap-3-distance +Tap-3-distance. +2 + + + +ladspa-tapeDelay::Tap-3-level +gfloat +[-90,0] +rwx +Tap-3-level +Tap-3-level. +-90 + + + +ladspa-tapeDelay::Tap-4-distance +gfloat +[0,4] +rwx +Tap-4-distance +Tap-4-distance. +3 + + + +ladspa-tapeDelay::Tap-4-level +gfloat +[-90,0] +rwx +Tap-4-level +Tap-4-level. +-90 + + + +ladspa-tapeDelay::Tape-speed +gfloat +[0,10] +rwx +Tape-speed +Tape-speed. +1 + + + +ladspa-sifter::Sift-size +gfloat +[1,1000] +rwx +Sift-size +Sift-size. +1 + + + +ladspa-valve::Distortion-character +gfloat +[0,1] +rwx +Distortion-character +Distortion-character. +0 + + + +ladspa-valve::Distortion-level +gfloat +[0,1] +rwx +Distortion-level +Distortion-level. +0 + + + +ladspa-retroFlange::Average-stall +gfloat +[0,10] +rwx +Average-stall +Average-stall. +2.5 + + + +ladspa-retroFlange::Flange-frequency +gfloat +[0.5,8] +rwx +Flange-frequency +Flange-frequency. +1 + + + +ladspa-fadDelay::Delay +gfloat +[0.1,10] +rwx +Delay +Delay. +1 + + + +ladspa-fadDelay::Feedback +gfloat +[-70,0] +rwx +Feedback +Feedback. +0 + + + +ladspa-transient::Attack-speed +gfloat +[-1,1] +rwx +Attack-speed +Attack-speed. +0 + + + +ladspa-transient::Sustain-time +gfloat +[-1,1] +rwx +Sustain-time +Sustain-time. +0 + + + +ladspa-triplePara::Band-1-bandwidth +gfloat +[0,4] +rwx +Band-1-bandwidth +Band-1-bandwidth. +1 + + + +ladspa-triplePara::Band-1-frequency +gfloat +[4.41,21609] +rwx +Band-1-frequency +Band-1-frequency. +36.8967 + + + +ladspa-triplePara::Band-1-gain +gfloat +[-70,30] +rwx +Band-1-gain +Band-1-gain. +0 + + + +ladspa-triplePara::Band-2-bandwidth +gfloat +[0,4] +rwx +Band-2-bandwidth +Band-2-bandwidth. +1 + + + +ladspa-triplePara::Band-2-frequency +gfloat +[4.41,21609] +rwx +Band-2-frequency +Band-2-frequency. +308.7 + + + +ladspa-triplePara::Band-2-gain +gfloat +[-70,30] +rwx +Band-2-gain +Band-2-gain. +0 + + + +ladspa-triplePara::Band-3-bandwidth +gfloat +[0,4] +rwx +Band-3-bandwidth +Band-3-bandwidth. +1 + + + +ladspa-triplePara::Band-3-frequency +gfloat +[4.41,21609] +rwx +Band-3-frequency +Band-3-frequency. +2582.77 + + + +ladspa-triplePara::Band-3-gain +gfloat +[-70,30] +rwx +Band-3-gain +Band-3-gain. +0 + + + +ladspa-triplePara::High-shelving-frequency +gfloat +[4.41,21609] +rwx +High-shelving-frequency +High-shelving-frequency. +21609 + + + +ladspa-triplePara::High-shelving-gain +gfloat +[-70,30] +rwx +High-shelving-gain +High-shelving-gain. +0 + + + +ladspa-triplePara::High-shelving-slope +gfloat +[0,1] +rwx +High-shelving-slope +High-shelving-slope. +0.5 + + + +ladspa-triplePara::Low-shelving-frequency +gfloat +[4.41,21609] +rwx +Low-shelving-frequency +Low-shelving-frequency. +4.41 + + + +ladspa-triplePara::Low-shelving-gain +gfloat +[-70,30] +rwx +Low-shelving-gain +Low-shelving-gain. +0 + + + +ladspa-triplePara::Low-shelving-slope +gfloat +[0,1] +rwx +Low-shelving-slope +Low-shelving-slope. +0.5 + + + +ladspa-singlePara::Bandwidth +gfloat +[0,4] +rwx +Bandwidth +Bandwidth. +1 + + + +ladspa-singlePara::Frequency +gfloat +[0,17640] +rwx +Frequency +Frequency. +440 + + + +ladspa-singlePara::Gain +gfloat +[-70,30] +rwx +Gain +Gain. +0 + + + +ladspa-decimator::Bit-depth +gfloat +[1,24] +rwx +Bit-depth +Bit-depth. +24 + + + +ladspa-decimator::Sample-rate +gfloat +[44.1,44100] +rwx +Sample-rate +Sample-rate. +44100 + + + +ladspa-flanger::Delay-base +gfloat +[0.1,25] +rwx +Delay-base +Delay-base. +6.325 + + + +ladspa-flanger::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-flanger::LFO-frequency +gfloat +[0.05,100] +rwx +LFO-frequency +LFO-frequency. +0.33437 + + + +ladspa-flanger::Max-slowdown +gfloat +[0,10] +rwx +Max-slowdown +Max-slowdown. +2.5 + + + +ladspa-multivoiceChorus::Delay-base +gfloat +[10,40] +rwx +Delay-base +Delay-base. +10 + + + +ladspa-multivoiceChorus::Detune +gfloat +[0,5] +rwx +Detune +Detune. +1 + + + +ladspa-multivoiceChorus::LFO-frequency +gfloat +[2,30] +rwx +LFO-frequency +LFO-frequency. +9 + + + +ladspa-multivoiceChorus::Number-of-voices +gint +[1,8] +rwx +Number-of-voices +Number-of-voices. +1 + + + +ladspa-multivoiceChorus::Output-attenuation +gfloat +[-20,0] +rwx +Output-attenuation +Output-attenuation. +0 + + + +ladspa-multivoiceChorus::Voice-separation +gfloat +[0,2] +rwx +Voice-separation +Voice-separation. +0.5 + + + +ladspa-hermesFilter::Band-1-gain +gfloat +[-70,20] +rwx +Band-1-gain +Band-1-gain. +0 + + + +ladspa-hermesFilter::Band-2-gain +gfloat +[-70,20] +rwx +Band-2-gain +Band-2-gain. +0 + + + +ladspa-hermesFilter::Band-3-gain +gfloat +[-70,20] +rwx +Band-3-gain +Band-3-gain. +0 + + + +ladspa-hermesFilter::Delay1-feedback +gfloat +[0,1] +rwx +Delay1-feedback +Delay1-feedback. +0 + + + +ladspa-hermesFilter::Delay1-length +gfloat +[0,2] +rwx +Delay1-length +Delay1-length. +0 + + + +ladspa-hermesFilter::Delay1-wetness +gfloat +[0,1] +rwx +Delay1-wetness +Delay1-wetness. +0 + + + +ladspa-hermesFilter::Delay2-feedback +gfloat +[0,1] +rwx +Delay2-feedback +Delay2-feedback. +0 + + + +ladspa-hermesFilter::Delay2-length +gfloat +[0,2] +rwx +Delay2-length +Delay2-length. +0 + + + +ladspa-hermesFilter::Delay2-wetness +gfloat +[0,1] +rwx +Delay2-wetness +Delay2-wetness. +0 + + + +ladspa-hermesFilter::Delay3-feedback +gfloat +[0,1] +rwx +Delay3-feedback +Delay3-feedback. +0 + + + +ladspa-hermesFilter::Delay3-length +gfloat +[0,2] +rwx +Delay3-length +Delay3-length. +0 + + + +ladspa-hermesFilter::Delay3-wetness +gfloat +[0,1] +rwx +Delay3-wetness +Delay3-wetness. +0 + + + +ladspa-hermesFilter::Dist1-drive +gfloat +[0,3] +rwx +Dist1-drive +Dist1-drive. +0 + + + +ladspa-hermesFilter::Dist2-drive +gfloat +[0,3] +rwx +Dist2-drive +Dist2-drive. +0 + + + +ladspa-hermesFilter::Dist3-drive +gfloat +[0,3] +rwx +Dist3-drive +Dist3-drive. +0 + + + +ladspa-hermesFilter::Filt1-LFO1-level +gfloat +[-500,500] +rwx +Filt1-LFO1-level +Filt1-LFO1-level. +0 + + + +ladspa-hermesFilter::Filt1-LFO2-level +gfloat +[-500,500] +rwx +Filt1-LFO2-level +Filt1-LFO2-level. +0 + + + +ladspa-hermesFilter::Filt1-freq +gfloat +[0,8000] +rwx +Filt1-freq +Filt1-freq. +440 + + + +ladspa-hermesFilter::Filt1-q +gfloat +[0,1] +rwx +Filt1-q +Filt1-q. +0 + + + +ladspa-hermesFilter::Filt1-resonance +gfloat +[0,1] +rwx +Filt1-resonance +Filt1-resonance. +0 + + + +ladspa-hermesFilter::Filt1-type +gint +[0,5] +rwx +Filt1-type +Filt1-type. +0 + + + +ladspa-hermesFilter::Filt2-LFO1-level +gfloat +[-500,500] +rwx +Filt2-LFO1-level +Filt2-LFO1-level. +0 + + + +ladspa-hermesFilter::Filt2-LFO2-level +gfloat +[-500,500] +rwx +Filt2-LFO2-level +Filt2-LFO2-level. +0 + + + +ladspa-hermesFilter::Filt2-freq +gfloat +[0,8000] +rwx +Filt2-freq +Filt2-freq. +440 + + + +ladspa-hermesFilter::Filt2-q +gfloat +[0,1] +rwx +Filt2-q +Filt2-q. +0 + + + +ladspa-hermesFilter::Filt2-resonance +gfloat +[0,1] +rwx +Filt2-resonance +Filt2-resonance. +0 + + + +ladspa-hermesFilter::Filt2-type +gint +[0,5] +rwx +Filt2-type +Filt2-type. +0 + + + +ladspa-hermesFilter::Filt3-LFO1-level +gfloat +[-500,500] +rwx +Filt3-LFO1-level +Filt3-LFO1-level. +0 + + + +ladspa-hermesFilter::Filt3-LFO2-level +gfloat +[-500,500] +rwx +Filt3-LFO2-level +Filt3-LFO2-level. +0 + + + +ladspa-hermesFilter::Filt3-freq +gfloat +[0,8000] +rwx +Filt3-freq +Filt3-freq. +440 + + + +ladspa-hermesFilter::Filt3-q +gfloat +[0,1] +rwx +Filt3-q +Filt3-q. +0 + + + +ladspa-hermesFilter::Filt3-resonance +gfloat +[0,1] +rwx +Filt3-resonance +Filt3-resonance. +0 + + + +ladspa-hermesFilter::Filt3-type +gint +[0,5] +rwx +Filt3-type +Filt3-type. +0 + + + +ladspa-hermesFilter::Input-gain +gfloat +[-70,20] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-hermesFilter::LFO1-freq +gfloat +[0,1000] +rwx +LFO1-freq +LFO1-freq. +250 + + + +ladspa-hermesFilter::LFO1-wave +gint +[0,4] +rwx +LFO1-wave +LFO1-wave. +0 + + + +ladspa-hermesFilter::LFO2-freq +gfloat +[0,1000] +rwx +LFO2-freq +LFO2-freq. +250 + + + +ladspa-hermesFilter::LFO2-wave +gint +[0,4] +rwx +LFO2-wave +LFO2-wave. +0 + + + +ladspa-hermesFilter::Osc1-freq +gfloat +[0,4000] +rwx +Osc1-freq +Osc1-freq. +440 + + + +ladspa-hermesFilter::Osc1-gain +gfloat +[-70,20] +rwx +Osc1-gain +Osc1-gain. +-70 + + + +ladspa-hermesFilter::Osc1-wave +gint +[0,4] +rwx +Osc1-wave +Osc1-wave. +0 + + + +ladspa-hermesFilter::Osc2-freq +gfloat +[0,4000] +rwx +Osc2-freq +Osc2-freq. +440 + + + +ladspa-hermesFilter::Osc2-gain +gfloat +[-70,20] +rwx +Osc2-gain +Osc2-gain. +-70 + + + +ladspa-hermesFilter::Osc2-wave +gint +[0,4] +rwx +Osc2-wave +Osc2-wave. +0 + + + +ladspa-hermesFilter::RM1-gain +gfloat +[-70,20] +rwx +RM1-gain +RM1-gain. +-70 + + + +ladspa-hermesFilter::RM2-gain +gfloat +[-70,20] +rwx +RM2-gain +RM2-gain. +-70 + + + +ladspa-hermesFilter::RM3-gain +gfloat +[-70,20] +rwx +RM3-gain +RM3-gain. +-70 + + + +ladspa-hermesFilter::Ringmod-1-depth +gfloat +[0,2] +rwx +Ringmod-1-depth +Ringmod-1-depth. +0 + + + +ladspa-hermesFilter::Ringmod-2-depth +gfloat +[0,2] +rwx +Ringmod-2-depth +Ringmod-2-depth. +0 + + + +ladspa-hermesFilter::Ringmod-3-depth +gfloat +[0,2] +rwx +Ringmod-3-depth +Ringmod-3-depth. +0 + + + +ladspa-hermesFilter::Xover-lower-freq +gfloat +[50,6000] +rwx +Xover-lower-freq +Xover-lower-freq. +1537.5 + + + +ladspa-hermesFilter::Xover-upper-freq +gfloat +[1000,10000] +rwx +Xover-upper-freq +Xover-upper-freq. +7750 + + + +ladspa-sinusWavewrapper::Wrap-degree +gfloat +[0,10] +rwx +Wrap-degree +Wrap-degree. +0 + + + +ladspa-fastLookaheadLimiter::Attenuation +gfloat +[0,70] +r +Attenuation +Attenuation. +0 + + + +ladspa-fastLookaheadLimiter::Input-gain +gfloat +[-20,20] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-fastLookaheadLimiter::Limit +gfloat +[-20,0] +rwx +Limit +Limit. +0 + + + +ladspa-fastLookaheadLimiter::Release-time +gfloat +[0.01,2] +rwx +Release-time +Release-time. +0.5075 + + + +ladspa-fastLookaheadLimiter::latency +gfloat + +r +latency +latency. +-3.40282e+38 + + + +ladspa-comb::Band-separation +gfloat +[16,640] +rwx +Band-separation +Band-separation. +172 + + + +ladspa-comb::Feedback +gfloat +[-0.99,0.99] +rwx +Feedback +Feedback. +0 + + + +ladspa-ringmod-1i1o1l::Frequency +gfloat +[1,1000] +rwx +Frequency +Frequency. +440 + + + +ladspa-ringmod-1i1o1l::Modulation-depth +gfloat +[0,2] +rwx +Modulation-depth +Modulation-depth. +0 + + + +ladspa-ringmod-1i1o1l::Sawtooth-level +gfloat +[-1,1] +rwx +Sawtooth-level +Sawtooth-level. +0 + + + +ladspa-ringmod-1i1o1l::Sine-level +gfloat +[-1,1] +rwx +Sine-level +Sine-level. +1 + + + +ladspa-ringmod-1i1o1l::Square-level +gfloat +[-1,1] +rwx +Square-level +Square-level. +0 + + + +ladspa-ringmod-1i1o1l::Triangle-level +gfloat +[-1,1] +rwx +Triangle-level +Triangle-level. +0 + + + +ladspa-ringmod-2i1o::Modulation-depth +gfloat +[0,2] +rwx +Modulation-depth +Modulation-depth. +0 + + + +ladspa-shaper::Waveshape +gfloat +[-10,10] +rwx +Waveshape +Waveshape. +0 + + + +ladspa-divider::Denominator +gint +[1,8] +rwx +Denominator +Denominator. +1 + + + +ladspa-diode::Mode +gfloat +[0,3] +rwx +Mode +Mode. +0 + + + +ladspa-amp::Amps-gain +gfloat +[-70,70] +rwx +Amps-gain +Amps-gain. +0 + + + +ladspa-Mvclpf-4::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Mvclpf-4::Filter-poles +gint +[0,4] +rwx +Filter-poles +Filter-poles. +0 + + + +ladspa-Mvclpf-4::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Mvclpf-4::Input-gain +gfloat +[-60,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Mvclpf-4::Output-gain +gfloat +[-15,15] +rwx +Output-gain +Output-gain. +0 + + + +ladspa-Mvclpf-4::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-Mvclpf-4::Resonance-gain +gfloat +[0,1] +rwx +Resonance-gain +Resonance-gain. +0 + + + +ladspa-Mvclpf-3::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Mvclpf-3::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Mvclpf-3::Input-gain +gfloat +[-60,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Mvclpf-3::Output-gain +gfloat +[-15,15] +rwx +Output-gain +Output-gain. +0 + + + +ladspa-Mvclpf-3::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-Mvclpf-3::Resonance-gain +gfloat +[0,1] +rwx +Resonance-gain +Resonance-gain. +0 + + + +ladspa-Mvclpf-2::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Mvclpf-2::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Mvclpf-2::Input-gain +gfloat +[-60,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Mvclpf-2::Output-gain +gfloat +[-15,15] +rwx +Output-gain +Output-gain. +0 + + + +ladspa-Mvclpf-2::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-Mvclpf-2::Resonance-gain +gfloat +[0,1] +rwx +Resonance-gain +Resonance-gain. +0 + + + +ladspa-Mvclpf-1::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Mvclpf-1::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Mvclpf-1::Input-gain +gfloat +[-60,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Mvclpf-1::Output-gain +gfloat +[-15,15] +rwx +Output-gain +Output-gain. +0 + + + +ladspa-Mvclpf-1::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-Mvclpf-1::Resonance-gain +gfloat +[0,1] +rwx +Resonance-gain +Resonance-gain. +0 + + + +ladspa-Mvchpf-1::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Mvchpf-1::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Mvchpf-1::Input-gain +gfloat +[-60,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Mvchpf-1::Output-gain +gfloat +[-15,15] +rwx +Output-gain +Output-gain. +0 + + + +ladspa-Phaser1+LFO::Feedback-gain +gfloat +[-1,1] +rwx +Feedback-gain +Feedback-gain. +0 + + + +ladspa-Phaser1+LFO::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Phaser1+LFO::Input-gain +gfloat +[-40,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Phaser1+LFO::LFO-frequency +gfloat +[0.01,30] +rwx +LFO-frequency +LFO-frequency. +0.01 + + + +ladspa-Phaser1+LFO::LFO-waveform +gfloat +[-1,1] +rwx +LFO-waveform +LFO-waveform. +0 + + + +ladspa-Phaser1+LFO::Modulation-gain +gfloat +[0,10] +rwx +Modulation-gain +Modulation-gain. +0 + + + +ladspa-Phaser1+LFO::Output-mix +gfloat +[-1,1] +rwx +Output-mix +Output-mix. +0 + + + +ladspa-Phaser1+LFO::Sections +gint +[1,30] +rwx +Sections +Sections. +1 + + + +ladspa-Phaser1::Exp-FM-gain +gfloat +[0,10] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Phaser1::Feedback-gain +gfloat +[-1,1] +rwx +Feedback-gain +Feedback-gain. +0 + + + +ladspa-Phaser1::Frequency +gfloat +[-6,6] +rwx +Frequency +Frequency. +0 + + + +ladspa-Phaser1::Input-gain +gfloat +[-40,10] +rwx +Input-gain +Input-gain. +0 + + + +ladspa-Phaser1::Lin-FM-gain +gfloat +[0,10] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Phaser1::Output-mix +gfloat +[-1,1] +rwx +Output-mix +Output-mix. +0 + + + +ladspa-Phaser1::Sections +gint +[1,30] +rwx +Sections +Sections. +1 + + + +ladspa-foverdrive::Drive-level +gfloat +[1,3] +rwx +Drive-level +Drive-level. +1 + + + +ladspa-Parametric1::Bandwidth-1 +gfloat +[0.125,8] +rwx +Bandwidth-1 +Bandwidth-1. +1 + + + +ladspa-Parametric1::Bandwidth-2 +gfloat +[0.125,8] +rwx +Bandwidth-2 +Bandwidth-2. +1 + + + +ladspa-Parametric1::Bandwidth-3 +gfloat +[0.125,8] +rwx +Bandwidth-3 +Bandwidth-3. +1 + + + +ladspa-Parametric1::Bandwidth-4 +gfloat +[0.125,8] +rwx +Bandwidth-4 +Bandwidth-4. +1 + + + +ladspa-Parametric1::Filter +gboolean + +rwx +Filter +Filter. +FALSE + + + +ladspa-Parametric1::Frequency-1 +gfloat +[20,2000] +rwx +Frequency-1 +Frequency-1. +200 + + + +ladspa-Parametric1::Frequency-2 +gfloat +[40,4000] +rwx +Frequency-2 +Frequency-2. +400 + + + +ladspa-Parametric1::Frequency-3 +gfloat +[100,10000] +rwx +Frequency-3 +Frequency-3. +1000 + + + +ladspa-Parametric1::Frequency-4 +gfloat +[200,20000] +rwx +Frequency-4 +Frequency-4. +2000 + + + +ladspa-Parametric1::Gain +gfloat +[-20,20] +rwx +Gain +Gain. +0 + + + +ladspa-Parametric1::Gain-1 +gfloat +[-20,20] +rwx +Gain-1 +Gain-1. +0 + + + +ladspa-Parametric1::Gain-2 +gfloat +[-20,20] +rwx +Gain-2 +Gain-2. +0 + + + +ladspa-Parametric1::Gain-3 +gfloat +[-20,20] +rwx +Gain-3 +Gain-3. +0 + + + +ladspa-Parametric1::Gain-4 +gfloat +[-20,20] +rwx +Gain-4 +Gain-4. +0 + + + +ladspa-Parametric1::Section-1 +gboolean + +rwx +Section-1 +Section-1. +FALSE + + + +ladspa-Parametric1::Section-2 +gboolean + +rwx +Section-2 +Section-2. +FALSE + + + +ladspa-Parametric1::Section-3 +gboolean + +rwx +Section-3 +Section-3. +FALSE + + + +ladspa-Parametric1::Section-4 +gboolean + +rwx +Section-4 +Section-4. +FALSE + + + +ladspa-wshape-sine::Limiting-Amplitude +gfloat +>= 0 +rwx +Limiting-Amplitude +Limiting-Amplitude. +1 + + + +ladspa-vcf303::Cutoff +gfloat +[0,1] +rwx +Cutoff +Cutoff. +0 + + + +ladspa-vcf303::Decay +gfloat +[0,1] +rwx +Decay +Decay. +0 + + + +ladspa-vcf303::Envelope-Modulation +gfloat +[0,1] +rwx +Envelope-Modulation +Envelope-Modulation. +0 + + + +ladspa-vcf303::Resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +ladspa-vcf303::Trigger +gboolean + +rwx +Trigger +Trigger. +FALSE + + + +ladspa-syndrum::Frequency +gfloat +[0,20000] +rwx +Frequency +Frequency. +0 + + + +ladspa-syndrum::Frequency-Ratio +gfloat +[0,10] +rwx +Frequency-Ratio +Frequency-Ratio. +0 + + + +ladspa-syndrum::Resonance +gfloat +[0,001,1] +rwx +Resonance +Resonance. +0,001 + + + +ladspa-syndrum::Trigger +gboolean + +rwx +Trigger +Trigger. +FALSE + + + +ladspa-syndrum::Velocity +gfloat +[0,10] +rwx +Velocity +Velocity. +0 + + + +ladspa-limit-rms::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-limit-rms::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-limit-rms::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-limit-peak::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-limit-peak::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-limit-peak::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-expand-rms::Expansion-Ratio +gfloat +<= 1 +rwx +Expansion-Ratio +Expansion-Ratio. +-1,70141e+38 + + + +ladspa-expand-rms::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-expand-rms::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-expand-rms::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-expand-peak::Expansion-Ratio +gfloat +<= 1 +rwx +Expansion-Ratio +Expansion-Ratio. +-1,70141e+38 + + + +ladspa-expand-peak::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-expand-peak::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-expand-peak::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-compress-rms::Compression-Ratio +gfloat +<= 1 +rwx +Compression-Ratio +Compression-Ratio. +-1,70141e+38 + + + +ladspa-compress-rms::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-compress-rms::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-compress-rms::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-compress-peak::Compression-Ratio +gfloat +<= 1 +rwx +Compression-Ratio +Compression-Ratio. +-1,70141e+38 + + + +ladspa-compress-peak::Output-Envelope-Attack +gfloat +>= 0 +rwx +Output-Envelope-Attack +Output-Envelope-Attack. +3,40282e+38 + + + +ladspa-compress-peak::Output-Envelope-Decay +gfloat +>= 0 +rwx +Output-Envelope-Decay +Output-Envelope-Decay. +3,40282e+38 + + + +ladspa-compress-peak::Threshold +gfloat +>= 0 +rwx +Threshold +Threshold. +1 + + + +ladspa-pink-sh::Sample-and-hold-frequency +gfloat +[0,882] +rwx +Sample-and-hold-frequency +Sample-and-hold-frequency. +1 + + + +ladspa-pink-interpolated-audio::Highest-frequency +gfloat +[0,44100] +rwx +Highest-frequency +Highest-frequency. +1 + + + +ladspa-phasemod::DCO1-Attack +gfloat +[0,01,8] +rwx +DCO1-Attack +DCO1-Attack. +0,01 + + + +ladspa-phasemod::DCO1-Decay +gfloat +[0,01,8] +rwx +DCO1-Decay +DCO1-Decay. +0,01 + + + +ladspa-phasemod::DCO1-Modulation +gfloat +[0,1] +rwx +DCO1-Modulation +DCO1-Modulation. +0 + + + +ladspa-phasemod::DCO1-Octave +gfloat +[-2,2] +rwx +DCO1-Octave +DCO1-Octave. +-2 + + + +ladspa-phasemod::DCO1-Release +gfloat +[0,01,8] +rwx +DCO1-Release +DCO1-Release. +0,01 + + + +ladspa-phasemod::DCO1-Sustain +gfloat +[0,1] +rwx +DCO1-Sustain +DCO1-Sustain. +0 + + + +ladspa-phasemod::DCO1-Waveform +gint +[0,5] +rwx +DCO1-Waveform +DCO1-Waveform. +0 + + + +ladspa-phasemod::DCO2-Attack +gfloat +[0,01,8] +rwx +DCO2-Attack +DCO2-Attack. +0,01 + + + +ladspa-phasemod::DCO2-Decay +gfloat +[0,01,8] +rwx +DCO2-Decay +DCO2-Decay. +0,01 + + + +ladspa-phasemod::DCO2-Modulation +gfloat +[0,1] +rwx +DCO2-Modulation +DCO2-Modulation. +0 + + + +ladspa-phasemod::DCO2-Octave +gfloat +[-2,2] +rwx +DCO2-Octave +DCO2-Octave. +-2 + + + +ladspa-phasemod::DCO2-Release +gfloat +[0,01,8] +rwx +DCO2-Release +DCO2-Release. +0,01 + + + +ladspa-phasemod::DCO2-Sustain +gfloat +[0,1] +rwx +DCO2-Sustain +DCO2-Sustain. +0 + + + +ladspa-phasemod::DCO2-Waveform +gint +[0,5] +rwx +DCO2-Waveform +DCO2-Waveform. +0 + + + +ladspa-phasemod::DCO3-Attack +gfloat +[0,01,8] +rwx +DCO3-Attack +DCO3-Attack. +0,01 + + + +ladspa-phasemod::DCO3-Decay +gfloat +[0,01,8] +rwx +DCO3-Decay +DCO3-Decay. +0,01 + + + +ladspa-phasemod::DCO3-Modulation +gfloat +[0,1] +rwx +DCO3-Modulation +DCO3-Modulation. +0 + + + +ladspa-phasemod::DCO3-Octave +gfloat +[-2,2] +rwx +DCO3-Octave +DCO3-Octave. +-2 + + + +ladspa-phasemod::DCO3-Release +gfloat +[0,01,8] +rwx +DCO3-Release +DCO3-Release. +0,01 + + + +ladspa-phasemod::DCO3-Sustain +gfloat +[0,1] +rwx +DCO3-Sustain +DCO3-Sustain. +0 + + + +ladspa-phasemod::DCO3-Waveform +gint +[0,5] +rwx +DCO3-Waveform +DCO3-Waveform. +0 + + + +ladspa-phasemod::DCO4-Attack +gfloat +[0,01,8] +rwx +DCO4-Attack +DCO4-Attack. +0,01 + + + +ladspa-phasemod::DCO4-Decay +gfloat +[0,01,8] +rwx +DCO4-Decay +DCO4-Decay. +0,01 + + + +ladspa-phasemod::DCO4-Modulation +gfloat +[0,1] +rwx +DCO4-Modulation +DCO4-Modulation. +0 + + + +ladspa-phasemod::DCO4-Octave +gfloat +[-2,2] +rwx +DCO4-Octave +DCO4-Octave. +-2 + + + +ladspa-phasemod::DCO4-Release +gfloat +[0,01,8] +rwx +DCO4-Release +DCO4-Release. +0,01 + + + +ladspa-phasemod::DCO4-Sustain +gfloat +[0,1] +rwx +DCO4-Sustain +DCO4-Sustain. +0 + + + +ladspa-phasemod::DCO4-Waveform +gint +[0,5] +rwx +DCO4-Waveform +DCO4-Waveform. +0 + + + +ladspa-phasemod::DCO5-Attack +gfloat +[0,01,8] +rwx +DCO5-Attack +DCO5-Attack. +0,01 + + + +ladspa-phasemod::DCO5-Decay +gfloat +[0,01,8] +rwx +DCO5-Decay +DCO5-Decay. +0,01 + + + +ladspa-phasemod::DCO5-Modulation +gfloat +[0,1] +rwx +DCO5-Modulation +DCO5-Modulation. +0 + + + +ladspa-phasemod::DCO5-Octave +gfloat +[-2,2] +rwx +DCO5-Octave +DCO5-Octave. +-2 + + + +ladspa-phasemod::DCO5-Release +gfloat +[0,01,8] +rwx +DCO5-Release +DCO5-Release. +0,01 + + + +ladspa-phasemod::DCO5-Sustain +gfloat +[0,1] +rwx +DCO5-Sustain +DCO5-Sustain. +0 + + + +ladspa-phasemod::DCO5-Waveform +gint +[0,5] +rwx +DCO5-Waveform +DCO5-Waveform. +0 + + + +ladspa-phasemod::DCO6-Attack +gfloat +[0,01,8] +rwx +DCO6-Attack +DCO6-Attack. +0,01 + + + +ladspa-phasemod::DCO6-Decay +gfloat +[0,01,8] +rwx +DCO6-Decay +DCO6-Decay. +0,01 + + + +ladspa-phasemod::DCO6-Modulation +gfloat +[0,1] +rwx +DCO6-Modulation +DCO6-Modulation. +0 + + + +ladspa-phasemod::DCO6-Octave +gfloat +[-2,2] +rwx +DCO6-Octave +DCO6-Octave. +-2 + + + +ladspa-phasemod::DCO6-Release +gfloat +[0,01,8] +rwx +DCO6-Release +DCO6-Release. +0,01 + + + +ladspa-phasemod::DCO6-Sustain +gfloat +[0,1] +rwx +DCO6-Sustain +DCO6-Sustain. +0 + + + +ladspa-phasemod::DCO6-Waveform +gint +[0,5] +rwx +DCO6-Waveform +DCO6-Waveform. +0 + + + +ladspa-phasemod::Frequency +gfloat +[0,20000] +rwx +Frequency +Frequency. +0 + + + +ladspa-phasemod::Gate +gboolean + +rwx +Gate +Gate. +FALSE + + + +ladspa-phasemod::Velocity +gfloat +[0,1] +rwx +Velocity +Velocity. +0 + + + +ladspa-peak::Peak +gfloat +>= 0 +r +Peak +Peak. +0 + + + +ladspa-organ::Attack-Hi +gfloat +[0,01,1] +rwx +Attack-Hi +Attack-Hi. +0,01 + + + +ladspa-organ::Attack-Lo +gfloat +[0,01,1] +rwx +Attack-Lo +Attack-Lo. +0,01 + + + +ladspa-organ::Brass +gboolean + +rwx +Brass +Brass. +FALSE + + + +ladspa-organ::Decay-Hi +gfloat +[0,01,1] +rwx +Decay-Hi +Decay-Hi. +0,01 + + + +ladspa-organ::Decay-Lo +gfloat +[0,01,1] +rwx +Decay-Lo +Decay-Lo. +0,01 + + + +ladspa-organ::Flute +gboolean + +rwx +Flute +Flute. +FALSE + + + +ladspa-organ::Frequency +gfloat +[0,20000] +rwx +Frequency +Frequency. +0 + + + +ladspa-organ::Gate +gboolean + +rwx +Gate +Gate. +FALSE + + + +ladspa-organ::Reed +gboolean + +rwx +Reed +Reed. +FALSE + + + +ladspa-organ::Release-Hi +gfloat +[0,01,1] +rwx +Release-Hi +Release-Hi. +0,01 + + + +ladspa-organ::Release-Lo +gfloat +[0,01,1] +rwx +Release-Lo +Release-Lo. +0,01 + + + +ladspa-organ::Sustain-Hi +gfloat +[0,1] +rwx +Sustain-Hi +Sustain-Hi. +0 + + + +ladspa-organ::Sustain-Lo +gfloat +[0,1] +rwx +Sustain-Lo +Sustain-Lo. +0 + + + +ladspa-organ::Velocity +gfloat +[0,1] +rwx +Velocity +Velocity. +0 + + + +ladspa-organ::param-16th-Harmonic +gfloat +[0,1] +rwx +param-16th-Harmonic +param-16th-Harmonic. +0 + + + +ladspa-organ::param-2-2-3rd-Harmonic +gfloat +[0,1] +rwx +param-2-2-3rd-Harmonic +param-2-2-3rd-Harmonic. +0 + + + +ladspa-organ::param-2nd-Harmonic +gfloat +[0,1] +rwx +param-2nd-Harmonic +param-2nd-Harmonic. +0 + + + +ladspa-organ::param-4th-Harmonic +gfloat +[0,1] +rwx +param-4th-Harmonic +param-4th-Harmonic. +0 + + + +ladspa-organ::param-5-1-3rd-Harmonic +gfloat +[0,1] +rwx +param-5-1-3rd-Harmonic +param-5-1-3rd-Harmonic. +0 + + + +ladspa-organ::param-8th-Harmonic +gfloat +[0,1] +rwx +param-8th-Harmonic +param-8th-Harmonic. +0 + + + +ladspa-null-co::Output +gfloat + +r +Output +Output. +-3,40282e+38 + + + +ladspa-null-ci::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-noise-source-white::Amplitude +gfloat +>= 0 +rwx +Amplitude +Amplitude. +1 + + + +ladspa-logistic::Step-frequency +gfloat +[0,44,1] +rwx +Step-frequency +Step-frequency. +22,05 + + + +ladspa-logistic::param--r--parameter +gfloat +[2,9,3,9999] +rwx +param--r--parameter +param--r--parameter. +3,9999 + + + +ladspa-lofi::Crackling +gint +[0,100] +rwx +Crackling +Crackling. +0 + + + +ladspa-lofi::Opamp-Bandwidth-Limiting +gfloat +[1,10000] +rwx +Opamp-Bandwidth-Limiting +Opamp-Bandwidth-Limiting. +1 + + + +ladspa-lofi::Powersupply-Overloading +gfloat +[0,100] +rwx +Powersupply-Overloading +Powersupply-Overloading. +0 + + + +ladspa-identity-control::Input +gfloat + +rwx +Input +Input. +-3,40282e+38 + + + +ladspa-identity-control::Output +gfloat + +r +Output +Output. +-3,40282e+38 + + + +ladspa-hard-gate::Threshold +gfloat +[0,1] +rwx +Threshold +Threshold. +0 + + + +ladspa-grain-scatter::Density +gfloat +>= 0 +rwx +Density +Density. +3,40282e+38 + + + +ladspa-grain-scatter::Grain-Attack +gfloat +>= 0 +rwx +Grain-Attack +Grain-Attack. +3,40282e+38 + + + +ladspa-grain-scatter::Grain-Length +gfloat +>= 0 +rwx +Grain-Length +Grain-Length. +3,40282e+38 + + + +ladspa-grain-scatter::Scatter +gfloat +[0,5] +rwx +Scatter +Scatter. +2,5 + + + +ladspa-freeverb3::Damping +gfloat +[0,1] +rwx +Damping +Damping. +0 + + + +ladspa-freeverb3::Dry-Level +gfloat +[0,1] +rwx +Dry-Level +Dry-Level. +1 + + + +ladspa-freeverb3::Freeze-Mode +gboolean + +rwx +Freeze-Mode +Freeze-Mode. +FALSE + + + +ladspa-freeverb3::Room-Size +gfloat +[0,1] +rwx +Room-Size +Room-Size. +0,5 + + + +ladspa-freeverb3::Wet-Level +gfloat +[0,1] +rwx +Wet-Level +Wet-Level. +0 + + + +ladspa-freeverb3::Width +gfloat +[0,1] +rwx +Width +Width. +0,5 + + + +ladspa-fbdelay-60s::Delay +gfloat +[0,60] +rwx +Delay +Delay. +1 + + + +ladspa-fbdelay-60s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-fbdelay-60s::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-fbdelay-5s::Delay +gfloat +[0,5] +rwx +Delay +Delay. +1 + + + +ladspa-fbdelay-5s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-fbdelay-5s::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-fbdelay-1s::Delay +gfloat +[0,1] +rwx +Delay +Delay. +1 + + + +ladspa-fbdelay-1s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-fbdelay-1s::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-fbdelay-0-1s::Delay +gfloat +[0,0,1] +rwx +Delay +Delay. +0,1 + + + +ladspa-fbdelay-0-1s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-fbdelay-0-1s::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-fbdelay-0-01s::Delay +gfloat +[0,0,01] +rwx +Delay +Delay. +0,01 + + + +ladspa-fbdelay-0-01s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-fbdelay-0-01s::Feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-track-rms::Output +gfloat +>= 0 +r +Output +Output. +0 + + + +ladspa-track-rms::Smoothing-Factor +gfloat +[0,1] +rwx +Smoothing-Factor +Smoothing-Factor. +0 + + + +ladspa-track-peak::Output +gfloat +>= 0 +r +Output +Output. +0 + + + +ladspa-track-peak::Smoothing-Factor +gfloat +[0,1] +rwx +Smoothing-Factor +Smoothing-Factor. +0 + + + +ladspa-track-max-rms::Envelope-Forgetting-Factor +gfloat +>= 0 +rwx +Envelope-Forgetting-Factor +Envelope-Forgetting-Factor. +3,40282e+38 + + + +ladspa-track-max-rms::Output +gfloat +>= 0 +r +Output +Output. +0 + + + +ladspa-track-max-peak::Envelope-Forgetting-Factor +gfloat +>= 0 +rwx +Envelope-Forgetting-Factor +Envelope-Forgetting-Factor. +3,40282e+38 + + + +ladspa-track-max-peak::Output +gfloat +>= 0 +r +Output +Output. +0 + + + +ladspa-delay-60s::Delay +gfloat +[0,60] +rwx +Delay +Delay. +1 + + + +ladspa-delay-60s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-delay-1s::Delay +gfloat +[0,1] +rwx +Delay +Delay. +1 + + + +ladspa-delay-1s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-delay-0-1s::Delay +gfloat +[0,0,1] +rwx +Delay +Delay. +0,1 + + + +ladspa-delay-0-1s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-delay-0-01s::Delay +gfloat +[0,0,01] +rwx +Delay +Delay. +0,01 + + + +ladspa-delay-0-01s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0,5 + + + +ladspa-sledgehammer::Carrier-influence +gfloat +[-1,1] +rwx +Carrier-influence +Carrier-influence. +1 + + + +ladspa-sledgehammer::Modulator-influence +gfloat +[-1,1] +rwx +Modulator-influence +Modulator-influence. +0 + + + +ladspa-sledgehammer::Rate +gfloat +[1e-05,0,001] +rwx +Rate +Rate. +0,000505 + + + +ladspa-disintegrator::Multiplier +gfloat +[-1,1] +rwx +Multiplier +Multiplier. +0 + + + +ladspa-disintegrator::Probability +gfloat +[0,1] +rwx +Probability +Probability. +0 + + + +ladspa-canyon-delay::Left-to-Right-Feedback +gfloat +[-1,1] +rwx +Left-to-Right-Feedback +Left-to-Right-Feedback. +-1 + + + +ladspa-canyon-delay::Left-to-Right-Time +gfloat +[0,01,0,99] +rwx +Left-to-Right-Time +Left-to-Right-Time. +0,01 + + + +ladspa-canyon-delay::Low-Pass-Cutoff +gfloat +[1,5000] +rwx +Low-Pass-Cutoff +Low-Pass-Cutoff. +1 + + + +ladspa-canyon-delay::Right-to-Left-Feedback +gfloat +[-1,1] +rwx +Right-to-Left-Feedback +Right-to-Left-Feedback. +-1 + + + +ladspa-canyon-delay::Right-to-Left-Time +gfloat +[0,01,0,99] +rwx +Right-to-Left-Time +Right-to-Left-Time. +0,01 + + + +ladspa-analogue::DCO1-Attack +gfloat +[0,1] +rwx +DCO1-Attack +DCO1-Attack. +0 + + + +ladspa-analogue::DCO1-Decay +gfloat +[0,1] +rwx +DCO1-Decay +DCO1-Decay. +0 + + + +ladspa-analogue::DCO1-LFO-Frequency-Modulation +gfloat +[-2,2] +rwx +DCO1-LFO-Frequency-Modulation +DCO1-LFO-Frequency-Modulation. +-2 + + + +ladspa-analogue::DCO1-LFO-Pulse-Width-Modulation +gint +[0,5] +rwx +DCO1-LFO-Pulse-Width-Modulation +DCO1-LFO-Pulse-Width-Modulation. +0 + + + +ladspa-analogue::DCO1-Octave +gfloat +[0,001,1] +rwx +DCO1-Octave +DCO1-Octave. +0,001 + + + +ladspa-analogue::DCO1-Release +gfloat +[0,01,8] +rwx +DCO1-Release +DCO1-Release. +0,01 + + + +ladspa-analogue::DCO1-Sustain +gfloat +[0,01,8] +rwx +DCO1-Sustain +DCO1-Sustain. +0,01 + + + +ladspa-analogue::DCO1-Waveform +gfloat +[0,10] +rwx +DCO1-Waveform +DCO1-Waveform. +0 + + + +ladspa-analogue::DCO2-Attack +gfloat +[0,1] +rwx +DCO2-Attack +DCO2-Attack. +0 + + + +ladspa-analogue::DCO2-Decay +gfloat +[0,1] +rwx +DCO2-Decay +DCO2-Decay. +0 + + + +ladspa-analogue::DCO2-LFO-Frequency-Modulation +gfloat +[-2,2] +rwx +DCO2-LFO-Frequency-Modulation +DCO2-LFO-Frequency-Modulation. +-2 + + + +ladspa-analogue::DCO2-LFO-Pulse-Width-Modulation +gint +[0,5] +rwx +DCO2-LFO-Pulse-Width-Modulation +DCO2-LFO-Pulse-Width-Modulation. +0 + + + +ladspa-analogue::DCO2-Octave +gfloat +[0,1] +rwx +DCO2-Octave +DCO2-Octave. +0 + + + +ladspa-analogue::DCO2-Release +gfloat +[0,01,8] +rwx +DCO2-Release +DCO2-Release. +0,01 + + + +ladspa-analogue::DCO2-Sustain +gfloat +[0,01,8] +rwx +DCO2-Sustain +DCO2-Sustain. +0,01 + + + +ladspa-analogue::DCO2-Waveform +gfloat +[0,01,8] +rwx +DCO2-Waveform +DCO2-Waveform. +0,01 + + + +ladspa-analogue::Filter-Attack +gfloat +[0,1] +rwx +Filter-Attack +Filter-Attack. +0 + + + +ladspa-analogue::Filter-Decay +gfloat +[0,1] +rwx +Filter-Decay +Filter-Decay. +0 + + + +ladspa-analogue::Filter-Envelope-Modulation +gfloat +[0,20] +rwx +Filter-Envelope-Modulation +Filter-Envelope-Modulation. +0 + + + +ladspa-analogue::Filter-LFO-Modulation +gfloat +[0,01,8] +rwx +Filter-LFO-Modulation +Filter-LFO-Modulation. +0,01 + + + +ladspa-analogue::Filter-Release +gfloat +[0,01,8] +rwx +Filter-Release +Filter-Release. +0,01 + + + +ladspa-analogue::Filter-Resonance +gfloat +[0,1] +rwx +Filter-Resonance +Filter-Resonance. +0 + + + +ladspa-analogue::Filter-Sustain +gfloat +[0,01,8] +rwx +Filter-Sustain +Filter-Sustain. +0,01 + + + +ladspa-analogue::Frequency +gfloat +[0,20000] +rwx +Frequency +Frequency. +0 + + + +ladspa-analogue::Gate +gboolean + +rwx +Gate +Gate. +FALSE + + + +ladspa-analogue::LFO-Fadein +gfloat +[0,01,8] +rwx +LFO-Fadein +LFO-Fadein. +0,01 + + + +ladspa-analogue::LFO-Frequency +gfloat +[0,1] +rwx +LFO-Frequency +LFO-Frequency. +0 + + + +ladspa-analogue::Velocity +gfloat +[0,1] +rwx +Velocity +Velocity. +0 + + + +ladspa-fmh-rotate-z::Angle-of-Rotation +gfloat +[-180,180] +rwx +Angle-of-Rotation +Angle-of-Rotation. +90 + + + +ladspa-bf-rotate-z::Angle-of-Rotation +gfloat +[-180,180] +rwx +Angle-of-Rotation +Angle-of-Rotation. +90 + + + +ladspa-encode-fmh::Sound-Source-X-Coordinate +gfloat + +rwx +Sound-Source-X-Coordinate +Sound-Source-X-Coordinate. +1 + + + +ladspa-encode-fmh::Sound-Source-Y-Coordinate +gfloat + +rwx +Sound-Source-Y-Coordinate +Sound-Source-Y-Coordinate. +0 + + + +ladspa-encode-fmh::Sound-Source-Z-Coordinate +gfloat + +rwx +Sound-Source-Z-Coordinate +Sound-Source-Z-Coordinate. +0 + + + +ladspa-encode-bformat::Sound-Source-X-Coordinate +gfloat + +rwx +Sound-Source-X-Coordinate +Sound-Source-X-Coordinate. +1 + + + +ladspa-encode-bformat::Sound-Source-Y-Coordinate +gfloat + +rwx +Sound-Source-Y-Coordinate +Sound-Source-Y-Coordinate. +0 + + + +ladspa-encode-bformat::Sound-Source-Z-Coordinate +gfloat + +rwx +Sound-Source-Z-Coordinate +Sound-Source-Z-Coordinate. +0 + + + +ladspa-sine-fcac::Amplitude +gfloat +>= 0 +rwx +Amplitude +Amplitude. +1 + + + +ladspa-sine-fcac::Frequency +gfloat +[0,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-sine-fcaa::Frequency +gfloat +[0,22050] +rwx +Frequency +Frequency. +440 + + + +ladspa-sine-faac::Amplitude +gfloat +>= 0 +rwx +Amplitude +Amplitude. +1 + + + +ladspa-noise-white::Amplitude +gfloat +>= 0 +rwx +Amplitude +Amplitude. +1 + + + +ladspa-hpf::Cutoff-Frequency +gfloat +[0,22050] +rwx +Cutoff-Frequency +Cutoff-Frequency. +440 + + + +ladspa-lpf::Cutoff-Frequency +gfloat +[0,22050] +rwx +Cutoff-Frequency +Cutoff-Frequency. +440 + + + +ladspa-Chorus2::Delay +gfloat +[0,30] +rwx +Delay +Delay. +0 + + + +ladspa-Chorus2::Mod-Amplitude-1 +gfloat +[0,10] +rwx +Mod-Amplitude-1 +Mod-Amplitude-1. +0 + + + +ladspa-Chorus2::Mod-Amplitude-2 +gfloat +[0,3] +rwx +Mod-Amplitude-2 +Mod-Amplitude-2. +0 + + + +ladspa-Chorus2::Mod-Frequency-1 +gfloat +[0.003,10] +rwx +Mod-Frequency-1 +Mod-Frequency-1. +0.003 + + + +ladspa-Chorus2::Mod-Frequency-2 +gfloat +[0.01,30] +rwx +Mod-Frequency-2 +Mod-Frequency-2. +0.01 + + + +ladspa-Chorus1::Delay +gfloat +[0,30] +rwx +Delay +Delay. +0 + + + +ladspa-Chorus1::Mod-Amplitude-1 +gfloat +[0,10] +rwx +Mod-Amplitude-1 +Mod-Amplitude-1. +0 + + + +ladspa-Chorus1::Mod-Amplitude-2 +gfloat +[0,3] +rwx +Mod-Amplitude-2 +Mod-Amplitude-2. +0 + + + +ladspa-Chorus1::Mod-Frequency-1 +gfloat +[0.003,10] +rwx +Mod-Frequency-1 +Mod-Frequency-1. +0.003 + + + +ladspa-Chorus1::Mod-Frequency-2 +gfloat +[0.01,30] +rwx +Mod-Frequency-2 +Mod-Frequency-2. +0.01 + + + +ladspa-amp-stereo::Gain +gfloat +>= 0 +rwx +Gain +Gain. +1 + + + +ladspa-amp-mono::Gain +gfloat +>= 0 +rwx +Gain +Gain. +1 + + + +ladspa-delay-5s::Delay +gfloat +[0,5] +rwx +Delay +Delay. +1 + + + +ladspa-delay-5s::Dry-Wet-Balance +gfloat +[0,1] +rwx +Dry-Wet-Balance +Dry-Wet-Balance. +0.5 + + + +GstCDAudio::device +gchar* + +rw +Device +CDROM device. +NULL + + + +GstCDAudio::volume-bl +gint +[0,255] +rw +Volume bl +Back left volume. +255 + + + +GstCDAudio::volume-br +gint +[0,255] +rw +Volume br +Back right volume. +255 + + + +GstCDAudio::volume-fl +gint +[0,255] +rw +Volume fl +Front left volume. +255 + + + +GstCDAudio::volume-fr +gint +[0,255] +rw +Volume fr +Front right volume. +255 + + + +GstNasSink::host +gchar* + +rwx +host +host running the NAS daemon (name of X/Terminal, default is $AUDIOSERVER or $DISPLAY). +NULL + + + +GstNasSink::mute +gboolean + +rwx +mute +Whether to mute playback. +FALSE + + + +GstXImageSrc::display-name +gchararray + +rw +Display +X Display name. +NULL + + + +GstXImageSrc::screen-num +guint +<= G_MAXINT +rw +Screen number +X Screen number. +0 + + + +GstXImageSrc::show-pointer +gboolean + +rw +Show Mouse Pointer +Show mouse pointer if XFixes extension enabled. +TRUE + + + +GstV4l2Src::device +gchararray + +rw +Device +Device location. +NULL + + + +GstV4l2Src::device-name +gchararray + +r +Device name +Name of the device. +NULL + + + +GstV4l2Src::flags +GstV4l2DeviceTypeFlags + +r +Flags +Device type flags. + + + + +GstV4l2Src::frequency +gulong + +rw +frequency +frequency to tune to (in Hz). + + + + +GstV4l2Src::input +gchararray + +rw +input +input/output (channel) to switch to. +NULL + + + +GstV4l2Src::std +gchararray + +rw +std +standard (norm) to use. +NULL + + + +GstV4l2Src::use-fixed-fps +gboolean + +rw +Use Fixed FPS +Drop/Insert frames to reach a certain FPS (TRUE) or adapt FPS to suit the number of frabbed frames. +TRUE + + + +GstMveMux::compression +gboolean + +rw +Audio compression +Whether to compress audio data. +FALSE + + + +GstMveMux::quick +gboolean + +rw +Quick encoding +Whether to disable expensive encoding operations. +TRUE + + + +GstMveMux::screen-height +guint +[200,1200] +rw +Screen height +Suggested screen height. +480 + + + +GstMveMux::screen-width +guint +[320,1600] +rw +Screen width +Suggested screen width. +640 + + + +GstRealAudioDec::password +gchar* + +rw +Password +Password. +"Ardubancel Quazanga" + + + +GstRealAudioDec::path-ra14-4 +gchararray + +rw +Path to 14_4 driver +Path to 14_4 driver. +"/usr/lib/win32/14_4.so.6.0" + + + +GstRealAudioDec::path-ra28-8 +gchararray + +rw +Path to 28_8 driver +Path to 28_8 driver. +"/usr/lib/win32/28_8.so.6.0" + + + +GstRealAudioDec::path-raatrk +gchararray + +rw +Path to atrk driver +Path to atrk driver. +"/usr/lib/win32/atrk.so.6.0" + + + +GstRealAudioDec::path-racook +gchararray + +rw +Path to cook driver +Path to cook driver. +"/usr/lib/win32/cook.so.6.0" + + + +GstRealAudioDec::path-rasipr +gchararray + +rw +Path to sipr driver +Path to sipr driver. +"/usr/lib/win32/sipr.so.6.0" + + + +GstRealAudioDec::ra14-4-names +gchar* + +rw +Names of 14_4 driver +Names of 14_4 driver. +"14_4.so.6.0" + + + +GstRealAudioDec::ra28-8-names +gchar* + +rw +Names of 28_8 driver +Names of 28_8 driver. +"28_8.so.6.0" + + + +GstRealAudioDec::raatrk-names +gchar* + +rw +Names of atrk driver +Names of atrk driver. +"atrc.so:atrc.so.6.0" + + + +GstRealAudioDec::racook-names +gchar* + +rw +Names of cook driver +Names of cook driver. +"cook.so:cook.so.6.0" + + + +GstRealAudioDec::rasipr-names +gchar* + +rw +Names of sipr driver +Names of sipr driver. +"sipr.so:sipr.so.6.0" + + + +GstRealAudioDec::real-codecs-path +gchar* + +rw +Path where to search for RealPlayer codecs +Path where to search for RealPlayer codecs. +"/usr/lib64/win32:/usr/lib64/codecs:/usr/local/lib64/win32:/usr/local/lib64/codecs" + + + +GstRealVideoDec::path-rv20 +gchararray + +rw +Path to rv20 driver +Path to rv20 driver. +"/usr/lib/win32/drv2.so.6.0" + + + +GstRealVideoDec::path-rv30 +gchararray + +rw +Path to rv30 driver +Path to rv30 driver. +"/usr/lib/win32/drv3.so.6.0" + + + +GstRealVideoDec::path-rv40 +gchararray + +rw +Path to rv40 driver +Path to rv40 driver. +"/usr/lib/win32/drv4.so.6.0" + + + +GstRealVideoDec::real-codecs-path +gchar* + +rw +Path where to search for RealPlayer codecs +Path where to search for RealPlayer codecs. +"/usr/lib64/win32:/usr/lib64/codecs:/usr/local/lib64/win32:/usr/local/lib64/codecs" + + + +GstRealVideoDec::rv20-names +gchar* + +rw +Names of rv20 driver +Names of rv20 driver. +"drv2.so:drv2.so.6.0" + + + +GstRealVideoDec::rv30-names +gchar* + +rw +Names of rv30 driver +Names of rv30 driver. +"drvc.so:drv3.so.6.0" + + + +GstRealVideoDec::rv40-names +gchar* + +rw +Names of rv40 driver +Names of rv40 driver. +"drvc.so:drv4.so.6.0" + + + +GstRealVideoDec::max-errors +gint +>= 0 +rw +Max errors +Maximum number of consecutive errors (0 = unlimited). +25 + + + +GstOSXVideoSink::embed +gboolean + +rw +embed +When enabled, it can be embedded. +FALSE + + + +GstOSXVideoSink::fullscreen +gboolean + +rw +fullscreen +When enabled, the view is fullscreen. +FALSE + + + +GstSFSrc::location +gchar* + +rw +File Location +Location of the file to read. +NULL + + + +GstSFSink::buffer-frames +gint +>= 1 +rwx +Buffer frames +Number of frames per buffer, in pull mode. +256 + + + +GstSFSink::location +gchar* + +rw +File Location +Location of the file to write. +NULL + + + +GstSFSink::major-type +GstSndfileMajorTypes + +rwx +Major type +Major output type. +WAV (Microsoft) + + + +GstSFSink::minor-type +GstSndfileMinorTypes + +rwx +Minor type +Minor output type. +32 bit float + + + +GstSwitch::active-pad +gchar* + +rw +Active pad +Name of the currently active sink pad. +NULL + + + +GstSwitch::last-timestamp +guint64 +<= G_MAXUINT +r +Time at the end of the last buffer +Time at the end of the last buffer. +0 + + + +GstSwitch::num-sources +guint + +r +number of sources +number of sources. +0 + + + +GstSwitch::queue-buffers +gboolean + +rw +Queue new segment and buffers instead of sending them +Queue new segment and buffers instead of sending them. +FALSE + + + +GstSwitch::start-value +guint64 + +rw +Start Value +Timestamp that next segment will start at (-1 to use first buffer). +18446744073709551615 + + + +GstSwitch::stop-value +guint64 + +rw +Stop Value +Timestamp that current source will stop at (-1 if unknown or don't care). +18446744073709551615 + + + +GstRgVolume::album-mode +gboolean + +rw +Album mode +Prefer album over track gain. +TRUE + + + +GstRgVolume::fallback-gain +gdouble +[-60,60] +rw +Fallback gain +Gain for streams missing tags [dB]. +0 + + + +GstRgVolume::headroom +gdouble +[0,60] +rw +Headroom +Extra headroom [dB]. +0 + + + +GstRgVolume::pre-amp +gdouble +[-60,60] +rw +Pre-amp +Extra gain [dB]. +0 + + + +GstRgVolume::result-gain +gdouble +[-120,120] +r +Result-gain +Applied gain [dB]. +0 + + + +GstRgVolume::target-gain +gdouble +[-120,120] +r +Target-gain +Applicable gain [dB]. +0 + + + +GstRgLimiter::enabled +gboolean + +rw +Enabled +Enable processing. +TRUE + + + +GstVideoAnalyse::message +gboolean + +rwx +Message +Post statics messages. +TRUE + + + +GstVideoDetect::message +gboolean + +rwx +Message +Post statics messages. +TRUE + + + +GstVideoDetect::pattern-count +gint +>= 0 +rwx +Pattern count +The number of pattern markers. +4 + + + +GstVideoDetect::pattern-data-count +gint +>= 0 +rwx +Pattern data count +The number of extra data pattern markers. +5 + + + +GstVideoDetect::pattern-height +gint +>= 1 +rwx +Pattern height +The height of the pattern markers. +16 + + + +GstVideoDetect::pattern-sensitivity +gdouble +[0,1] +rwx +Pattern sensitivity +The sensitivity around the center for detecting the markers (0.0 = lowest, 1.0 highest). +0.3 + + + +GstVideoDetect::pattern-width +gint +>= 1 +rwx +Pattern width +The width of the pattern markers. +4 + + + +GstVideoDetect::bottom-offset +gint +>= 0 +rwx +Bottom Offset +The offset from the bottom border where the pattern starts. +0 + + + +GstVideoDetect::left-offset +gint +>= 0 +rwx +Left Offset +The offset from the left border where the pattern starts. +0 + + + +GstVideoDetect::pattern-center +gdouble +[0,1] +rwx +Pattern center +The center of the black/white separation (0.0 = lowest, 1.0 highest). +0.5 + + + +GstVideoMark::enabled +gboolean + +rwx +Enabled +Enable or disable the filter. +TRUE + + + +GstVideoMark::pattern-count +gint +>= 0 +rwx +Pattern count +The number of pattern markers. +4 + + + +GstVideoMark::pattern-data +gint +>= 0 +rw +Pattern data +The extra data pattern markers. +10 + + + +GstVideoMark::pattern-data-count +gint +[0,64] +rwx +Pattern data count +The number of extra data pattern markers. +5 + + + +GstVideoMark::pattern-height +gint +>= 1 +rwx +Pattern height +The height of the pattern markers. +16 + + + +GstVideoMark::pattern-width +gint +>= 1 +rwx +Pattern width +The width of the pattern markers. +4 + + + +GstVideoMark::bottom-offset +gint +>= 0 +rwx +Bottom Offset +The offset from the bottom border where the pattern starts. +0 + + + +GstVideoMark::left-offset +gint +>= 0 +rwx +Left Offset +The offset from the left border where the pattern starts. +0 + + + +GstVideoMark::pattern-data-uint64 +guint64 + +rwx +Pattern data +The extra data pattern markers. +10 + + + +GstWildmidi::high-quality +gboolean + +rw +High Quality +High Quality. +TRUE + + + +GstWildmidi::linear-volume +gboolean + +rw +Linear volume +Linear volume. +TRUE + + + +GstVCDSrc::device +gchar* + +rw +Device +CD device location. +NULL + + + +GstVCDSrc::max-errors +gint +>= 0 +rw +Max. errors +Maximum number of errors before bailing out. +16 + + + +GstVCDSrc::track +gint + +rw +Track +Track number to play. +0 + + + +GstStereo::active +gboolean + +rw +active +active. +TRUE + + + +GstStereo::stereo +gfloat +[0,1] +rw +stereo +stereo. +0.1 + + + +MpegTSParse::pat-info +GValueArray + +r +GValueArray containing GObjects with properties +Array of GObjects containing information from the TS PAT about all programs listed in the current Program Association Table (PAT). + + + + +MpegTSParse::program-numbers +gchar* + +rw +Program Numbers +Colon separated list of programs. +"" + + + +GstAppSink::caps +GstCaps* + +rw +Caps +The allowed caps for the sink pad. + + + + +GstAppSink::eos +gboolean + +r +EOS +Check if the sink is EOS or not started. +TRUE + + + +GstAppSink::drop +gboolean + +rw +Drop +Drop old buffers when the buffer queue is filled. +FALSE + + + +GstAppSink::emit-signals +gboolean + +rw +Emit signals +Emit new-preroll and new-buffer signals. +FALSE + + + +GstAppSink::max-buffers +guint + +rw +Max Buffers +The maximum number of buffers to queue internally (0 = unlimited). +0 + + + +GstGioSrc::location +gchar* + +rw +Location +URI location to read from. +NULL + + + +GstGioSink::location +gchar* + +rw +Location +URI location to write to. +NULL + + + +GstGioStreamSrc::stream +GInputStream* + +rw +Stream +Stream to read from. + + + + +GstGioStreamSink::stream +GOutputStream* + +rw +Stream +Stream to write to. + + + + +DvbBaseBin::adapter +gint +[0,16] +rw +The adapter device number +The adapter device number (eg. 0 for adapter0). +0 + + + +DvbBaseBin::bandwidth +GstDvbSrcBandwidth + +rw +bandwidth +Bandwidth (DVB-T). +7 + + + +DvbBaseBin::code-rate-hp +GstDvbSrcCode_Rate + +rw +code-rate-hp +High Priority Code Rate (DVB-T, DVB-S and DVB-C). +AUTO + + + +DvbBaseBin::code-rate-lp +GstDvbSrcCode_Rate + +rw +code-rate-lp +Low Priority Code Rate (DVB-T). +1/2 + + + +DvbBaseBin::diseqc-source +gint +[G_MAXULONG,7] +rw +diseqc source +DISEqC selected source (-1 disabled) (DVB-S). +-1 + + + +DvbBaseBin::frequency +guint + +rw +frequency +Frequency. +0 + + + +DvbBaseBin::frontend +gint +[0,16] +rw +The frontend device number +The frontend device number (eg. 0 for frontend0). +0 + + + +DvbBaseBin::guard +GstDvbSrcGuard + +rw +guard +Guard Interval (DVB-T). +16 + + + +DvbBaseBin::hierarchy +GstDvbSrcHierarchy + +rw +hierarchy +Hierarchy Information (DVB-T). +1 + + + +DvbBaseBin::inversion +GstDvbSrcInversion + +rw +inversion +Inversion Information (DVB-T and DVB-C). +ON + + + +DvbBaseBin::modulation +GstDvbSrcModulation + +rw +modulation +Modulation (DVB-T and DVB-C). +QAM 16 + + + +DvbBaseBin::polarity +gchar* + +rwx +polarity +Polarity [vhHV] (DVB-S). +"H" + + + +DvbBaseBin::program-numbers +gchar* + +rw +Program Numbers +Colon separated list of programs. +"" + + + +DvbBaseBin::stats-reporting-interval +guint + +rw +stats-reporting-interval +The number of reads before reporting frontend stats. +100 + + + +DvbBaseBin::symbol-rate +guint + +rw +symbol rate +Symbol Rate (DVB-S, DVB-C). +0 + + + +DvbBaseBin::trans-mode +GstDvbSrcTransmission_Mode + +rw +trans-mode +Transmission Mode (DVB-T). +8K + + + +GstSDPDemux::debug +gboolean + +rwx +Debug +Dump request and response messages to stdout. +FALSE + + + +GstSDPDemux::latency +guint + +rwx +Buffer latency in ms +Amount of ms to buffer. +200 + + + +GstSDPDemux::timeout +guint64 + +rwx +Timeout +Fail transport after UDP timeout microseconds (0 = disabled). +10000000 + + + +GstSDPDemux::redirect +gboolean + +rwx +Redirect +Sends a redirection message instead of using a custom session element. +TRUE + + + +GstSpeexResample::quality +gint +[0,10] +rwx +Quality +Resample quality with 0 being the lowest and 10 being the best. +4 + + + +GstAudioParse::channels +gint +>= 1 +rw +Channels +Number of channels in raw stream. +2 + + + +GstAudioParse::depth +gint +>= 1 +rw +Depth +Depth of audio samples in raw stream. +16 + + + +GstAudioParse::endianness +GstAudioParseEndianness + +rw +Endianness +Endianness of audio samples in raw stream. +Little Endian + + + +GstAudioParse::format +GstAudioParseFormat + +rw +Format +Format of audio samples in raw stream. +Integer + + + +GstAudioParse::rate +gint +>= 1 +rw +Rate +Rate of audio samples in raw stream. +44100 + + + +GstAudioParse::signed +gboolean + +rw +signed +Sign of audio samples in raw stream. +TRUE + + + +GstAudioParse::width +gint +>= 1 +rw +Width +Width of audio samples in raw stream. +16 + + + +GstAudioParse::channel-positions +GValueArray* + +rw +Channel positions +Channel positions used on the output. + + + + +GstVideoParse::alpha-mask +gint + +rw +Alpha mask +Alpha mask of images in raw stream. +0 + + + +GstVideoParse::blue-mask +gint + +rw +Blue mask +Blue mask of images in raw stream. +255 + + + +GstVideoParse::bpp +gint +>= 0 +rw +Bpp +Bits per pixel of images in raw stream. +24 + + + +GstVideoParse::depth +gint +>= 0 +rw +Depth +Depth of images in raw stream. +24 + + + +GstVideoParse::endianness +GstVideoParseEndianness + +rw +Endianness +Endianness of images in raw stream. +Little Endian + + + +GstVideoParse::format +GstVideoFormat + +rw +Format +Format of images in raw stream. +GST_VIDEO_FORMAT_I420 + + + +GstVideoParse::framerate +GstFraction + +rw +Frame Rate +Frame rate of images in raw stream. + + + + +GstVideoParse::green-mask +gint + +rw +Green mask +Green mask of images in raw stream. +65280 + + + +GstVideoParse::height +gint +>= 0 +rw +Height +Height of images in raw stream. +240 + + + +GstVideoParse::pixel-aspect-ratio +GstFraction + +rw +Pixel Aspect Ratio +Pixel aspect ratio of images in raw stream. + + + + +GstVideoParse::red-mask +gint + +rw +Red mask +Red mask of images in raw stream. +16711680 + + + +GstVideoParse::width +gint +>= 0 +rw +Width +Width of images in raw stream. +320 + + + +GstVideoParse::interlaced +gboolean + +rw +Interlaced flag +True if video is interlaced. +FALSE + + + +GstVideoParse::top-field-first +gboolean + +rw +Top field first +True if top field is earlier than bottom field. +TRUE + + + +GstMetadataParse::exif +gboolean + +rw +EXIF +Send EXIF metadata ?. +TRUE + + + +GstMetadataParse::iptc +gboolean + +rw +IPTC +Send IPTC metadata ?. +TRUE + + + +GstMetadataParse::xmp +gboolean + +rw +XMP +Send XMP metadata ?. +TRUE + + + +GstMetadataMux::exif +gboolean + +rw +EXIF +Send EXIF metadata ?. +TRUE + + + +GstMetadataMux::iptc +gboolean + +rw +IPTC +Send IPTC metadata ?. +FALSE + + + +GstMetadataMux::xmp +gboolean + +rw +XMP +Send XMP metadata ?. +FALSE + + + +GstMetadataMux::exif-byte-order +MetaExifByteOrder + +rw +Exif byte-order +Byte-order for exif metadata writing. +Motorola byte-order + + + +GstAmrwbEnc::band-mode +GstAmrwbEncBandMode + +rwx +Band Mode +Encoding Band Mode (Kbps). +MR660 + + + +GstFBDEVSink::device +gchar* + +rw +device +The framebuffer device eg: /dev/fb0. +NULL + + + +GstH264Parse::split-packetized +gboolean + +rwx +Split packetized +Split NAL units of packetized streams. +FALSE + + + +GstH264Parse::access-unit +gboolean + +rw +Access Units +Output Acess Units rather than NALUs. +FALSE + + + +GstH264Parse::output-format +GstH264ParseFormat + +rw +Output Format +Output Format of stream (bytestream or otherwise). +Input Format + + + +GstH264Parse::config-interval +guint +<= 3600 +rwx +SPS PPS Send Interval +Send SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled). +0 + + + +GstMetadataDemux::parse-only +gboolean + +rw +parse-only +If TRUE, don't strip out any chunk. +FALSE + + + +GstMythtvSrc::location +gchar* + +rw +Location +The location. In the form: + myth://a.com/file.nuv + myth://a.com:23223/file.nuv + myth://a.com/?channel=123 + myth://a.com/?channel=Channel%203 + a.com/file.nuv - default scheme 'myth'. +"" + + + +GstMythtvSrc::mythtv-channel +gchar* + +rw +mythtv-channel +Change MythTV channel number. +"" + + + +GstMythtvSrc::mythtv-enable-timing-position +gboolean + +rw +mythtv-enable-timing-position +Enable MythTV Live TV content size continuous updating. +FALSE + + + +GstMythtvSrc::mythtv-live +gboolean + +rw +mythtv-live +Enable MythTV Live TV content streaming. +FALSE + + + +GstMythtvSrc::mythtv-live-chainid +gchar* + +rw +mythtv-live-chainid +Sets the MythTV chain ID (from TV Chain). +"" + + + +GstMythtvSrc::mythtv-live-id +gint +[0,200] +rw +mythtv-live-id +Change MythTV version. +1 + + + +GstMythtvSrc::mythtv-version +gint +[26,30] +rw +mythtv-version +Change MythTV version. +26 + + + +GstGLTestSrc::is-live +gboolean + +rw +Is Live +Whether to act as a live source. +FALSE + + + +GstGLTestSrc::pattern +GstGLTestSrcPattern + +rw +Pattern +Type of test pattern to generate. +SMPTE 100% color bars + + + +GstGLTestSrc::timestamp-offset +gint64 + +rw +Timestamp offset +An offset added to timestamps set on buffers (in ns). +0 + + + +GstSrtEnc::duration +gint64 + +rw +Offset for the duration +Offset for the duration of the subtitles. +0 + + + +GstSrtEnc::timestamp +gint64 + +rw +Offset for the starttime +Offset for the starttime for the subtitles. +0 + + + +GstDiracEnc::cpd +gint +[1,100] +rw +cpd +cpd. +60 + + + +GstDiracEnc::denoise +gboolean + +rw +denoise +denoise. +FALSE + + + +GstDiracEnc::iwlt-filter +gint +[0,7] +rw +iwlt_filter +iwlt_filter. +0 + + + +GstDiracEnc::l1-sep +gint +[1,1000] +rw +l1_sep +l1_sep. +24 + + + +GstDiracEnc::lossless +gboolean + +rw +lossless +lossless. +FALSE + + + +GstDiracEnc::multi-quants +gboolean + +rw +multi_quants +multi_quants. +FALSE + + + +GstDiracEnc::mv-prec +gint +[0,3] +rw +mv_prec +mv_prec. +1 + + + +GstDiracEnc::no-spartition +gboolean + +rw +no_spartition +no_spartition. +FALSE + + + +GstDiracEnc::num-l1 +gint +[0,1000] +rw +num_l1 +num_l1. +1 + + + +GstDiracEnc::qf +gdouble +[0,10] +rw +qf +qf. +7 + + + +GstDiracEnc::rwlt-filter +gint +[0,7] +rw +rwlt_filter +rwlt_filter. +1 + + + +GstDiracEnc::targetrate +gint +[0,10000] +rw +targetrate +targetrate. +1000 + + + +GstDiracEnc::use-vlc +gboolean + +rw +use_vlc +use_vlc. +FALSE + + + +GstDiracEnc::wlt-depth +gint +[1,4] +rw +wlt_depth +wlt_depth. +3 + + + +GstDiracEnc::xblen +gint +[4,64] +rw +xblen +xblen. +8 + + + +GstDiracEnc::xbsep +gint +[4,64] +rw +xbsep +xbsep. +12 + + + +GstDiracEnc::yblen +gint +[4,64] +rw +yblen +yblen. +8 + + + +GstDiracEnc::ybsep +gint +[4,64] +rw +ybsep +ybsep. +12 + + + +GstDiracEnc::pf-strength +gint +[0,10] +rw +pf_strength +pf_strength. +0 + + + +GstDiracEnc::picture-coding-mode +gint +[0,1] +rw +picture_coding_mode +picture_coding_mode. +0 + + + +GstDiracEnc::prefilter +gint +[0,3] +rw +prefilter +prefilter. +0 + + + +GstMultiFileSrc::caps +GstCaps* + +rw +Caps +Caps describing the format of the data. + + + + +GstMultiFileSrc::index +gint +>= 0 +rw +File Index +Index to use with location property to create file names. The index is incremented by one for each buffer read. +0 + + + +GstMultiFileSrc::location +gchar* + +rw +File Location +Pattern to create file names of input files. File names are created by calling sprintf() with the pattern and the current index. +"%05d" + + + +GstMultiFileSink::index +gint +>= 0 +rw +Index +Index to use with location property to create file names. The index is incremented by one for each buffer read. +0 + + + +GstMultiFileSink::location +gchar* + +rw +File Location +Location of the file to write. +NULL + + + +GstAppSrc::caps +GstCaps* + +rw +Caps +The allowed caps for the src pad. + + + + +GstAppSrc::max-buffers +guint + +rw +Max Buffers +The maximum number of buffers to queue internally (0 = unlimited). +0 + + + +GstAppSrc::seekable +gboolean + +r +Seekable +If the source is seekable. +FALSE + + + +GstAppSrc::size +gint64 +>= G_MAXULONG +rw +Size +The size of the data stream (-1 if unknown). +-1 + + + +GstAppSrc::format +GstFormat + +rw +Format +The format of the segment events and seek. +GST_FORMAT_BYTES + + + +GstAppSrc::max-bytes +guint64 + +rw +Max bytes +The maximum number of bytes to queue internally (0 = unlimited). +200000 + + + +GstAppSrc::stream-type +GstAppStreamType + +rw +Stream Type +the type of the stream. +Stream + + + +GstAppSrc::block +gboolean + +rw +Block +Block push-buffer when max-bytes are queued. +FALSE + + + +GstAppSrc::is-live +gboolean + +rw +Is Live +Whether to act as a live source. +FALSE + + + +GstDeinterleave::keep-positions +gboolean + +rw +Keep positions +Keep the original channel positions on the output buffers. +FALSE + + + +GstIirEqualizerNBands::num-bands +guint +[1,64] +rwx +num-bands +number of different bands to use. +10 + + + +GstIirEqualizer3Bands::band0 +gdouble +[-24,12] +rw +110 Hz +gain for the frequency band 100 Hz, ranging from -24.0 to +12.0. +0 + + + +GstIirEqualizer3Bands::band1 +gdouble +[-24,12] +rw +1100 Hz +gain for the frequency band 1100 Hz, ranging from -24.0 to +12.0. +0 + + + +GstIirEqualizer3Bands::band2 +gdouble +[-24,12] +rw +11 kHz +gain for the frequency band 11 kHz, ranging from -24.0 to +12.0. +0 + + + +GstIirEqualizer10Bands::band0 +gdouble +[-24,12] +rw +29 Hz +gain for the frequency band 29 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band1 +gdouble +[-24,12] +rw +59 Hz +gain for the frequency band 59 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band2 +gdouble +[-24,12] +rw +119 Hz +gain for the frequency band 119 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band3 +gdouble +[-24,12] +rw +227 Hz +gain for the frequency band 227 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band4 +gdouble +[-24,12] +rw +474 Hz +gain for the frequency band 474 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band5 +gdouble +[-24,12] +rw +947 Hz +gain for the frequency band 947 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band6 +gdouble +[-24,12] +rw +1889 Hz +gain for the frequency band 1889 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band7 +gdouble +[-24,12] +rw +3770 Hz +gain for the frequency band 3770 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band8 +gdouble +[-24,12] +rw +7523 Hz +gain for the frequency band 7523 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstIirEqualizer10Bands::band9 +gdouble +[-24,12] +rw +15011 Hz +gain for the frequency band 15011 Hz, ranging from -24 dB to +12 dB. +0 + + + +GstSpectrum::bands +guint + +rw +Bands +number of frequency bands. +128 + + + +GstSpectrum::interval +guint64 +>= 1 +rw +Interval +Interval of time between message posts (in nanoseconds). +100000000 + + + +GstSpectrum::message +gboolean + +rw +Message +Post a level message for each passed interval. +TRUE + + + +GstSpectrum::message-magnitude +gboolean + +rw +Magnitude +Post the magnitude of the spectrum. +TRUE + + + +GstSpectrum::message-phase +gboolean + +rw +Phase +Post the phase of the spectrum. +FALSE + + + +GstSpectrum::threshold +gint +<= 0 +rw +Threshold +dB threshold for result. All lower values will be set to this. +-60 + + + +GstMplex::bufsize +gint +[20,4000] +rw +Decoder buf. size +Target decoders video buffer size (kB) [default determined by format if not explicitly set]. +46 + + + +GstMplex::format +GstMplexFormat + +rw +Format +Encoding profile format. +Generic MPEG-1 + + + +GstMplex::mux-bitrate +gint +[0,15360] +rw +Mux. bitrate +Bitrate of output stream in kbps (0 = autodetect). +0 + + + +GstMplex::packets-per-pack +gint +[1,100] +rw +Packets per pack +Number of packets per pack for generic formats. +1 + + + +GstMplex::sector-size +gint +[256,16384] +rw +Sector size +Specify sector size in bytes for generic formats. +2048 + + + +GstMplex::system-headers +gboolean + +rw +System headers +Create system header in every pack for generic formats. +FALSE + + + +GstMplex::vbr +gboolean + +rw +VBR +Whether the input video stream is variable bitrate. +FALSE + + + +GstSoupHTTPSrc::automatic-redirect +gboolean + +rw +automatic-redirect +Automatically follow HTTP redirects (HTTP Status Code 3xx). +TRUE + + + +GstSoupHTTPSrc::cookies +GStrv* + +rw +Cookies +HTTP request cookies. + + + + +GstSoupHTTPSrc::iradio-genre +gchar* + +r +iradio-genre +Genre of the stream. +NULL + + + +GstSoupHTTPSrc::iradio-mode +gboolean + +rw +iradio-mode +Enable internet radio mode (extraction of shoutcast/icecast metadata). +FALSE + + + +GstSoupHTTPSrc::iradio-name +gchar* + +r +iradio-name +Name of the stream. +NULL + + + +GstSoupHTTPSrc::iradio-title +gchar* + +r +iradio-title +Name of currently playing song. +NULL + + + +GstSoupHTTPSrc::iradio-url +gchar* + +r +iradio-url +Homepage URL for radio stream. +NULL + + + +GstSoupHTTPSrc::location +gchar* + +rw +Location +Location to read from. +"" + + + +GstSoupHTTPSrc::proxy +gchar* + +rw +Proxy +HTTP proxy server URI. +"" + + + +GstSoupHTTPSrc::user-agent +gchar* + +rw +User-Agent +Value of the User-Agent HTTP request header field. +"GStreamer souphttpsrc " + + + +ladspa-Ambisonics-11-mono-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-11-mono-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-11-stereo-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-11-stereo-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-11-stereo-panner::Width +gfloat +[-90,90] +rwx +Width +Width. +90 + + + +ladspa-Ambisonics-11-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +ladspa-Ambisonics-11-square-decoder::Distance +gfloat +[1,30] +rwx +Distance +Distance. +30 + + + +ladspa-Ambisonics-11-square-decoder::Front-spkr +gboolean + +rwx +Front-spkr +Front-spkr. +FALSE + + + +ladspa-Ambisonics-11-square-decoder::HF-XY-gain +gfloat +[1,2] +rwx +HF-XY-gain +HF-XY-gain. +1 + + + +ladspa-Ambisonics-11-square-decoder::LF-XY-gain +gfloat +[1,2] +rwx +LF-XY-gain +LF-XY-gain. +1 + + + +ladspa-Ambisonics-11-square-decoder::Shelf-filt +gboolean + +rwx +Shelf-filt +Shelf-filt. +FALSE + + + +ladspa-Ambisonics-11-square-decoder::Shelf-freq +gfloat +[200,800] +rwx +Shelf-freq +Shelf-freq. +500 + + + +ladspa-Ambisonics-11-hexagon-decoder::Distance +gfloat +[1,30] +rwx +Distance +Distance. +30 + + + +ladspa-Ambisonics-11-hexagon-decoder::Front-spkr +gboolean + +rwx +Front-spkr +Front-spkr. +FALSE + + + +ladspa-Ambisonics-11-hexagon-decoder::HF-XY-gain +gfloat +[1,2] +rwx +HF-XY-gain +HF-XY-gain. +1 + + + +ladspa-Ambisonics-11-hexagon-decoder::LF-XY-gain +gfloat +[1,2] +rwx +LF-XY-gain +LF-XY-gain. +1 + + + +ladspa-Ambisonics-11-hexagon-decoder::Shelf-filt +gboolean + +rwx +Shelf-filt +Shelf-filt. +FALSE + + + +ladspa-Ambisonics-11-hexagon-decoder::Shelf-freq +gfloat +[200,800] +rwx +Shelf-freq +Shelf-freq. +500 + + + +ladspa-Ambisonics-11-cube-decoder::Distance +gfloat +[1,30] +rwx +Distance +Distance. +30 + + + +ladspa-Ambisonics-11-cube-decoder::HF-XYZ-gain +gfloat +[1,3] +rwx +HF-XYZ-gain +HF-XYZ-gain. +1 + + + +ladspa-Ambisonics-11-cube-decoder::LF-XYZ-gain +gfloat +[1,3] +rwx +LF-XYZ-gain +LF-XYZ-gain. +1 + + + +ladspa-Ambisonics-11-cube-decoder::Shelf-filt +gboolean + +rwx +Shelf-filt +Shelf-filt. +FALSE + + + +ladspa-Ambisonics-11-cube-decoder::Shelf-freq +gfloat +[200,800] +rwx +Shelf-freq +Shelf-freq. +500 + + + +ladspa-G2reverb::Damping +gfloat +[0,1] +rwx +Damping +Damping. +0 + + + +ladspa-G2reverb::Dry-sound +gfloat +[-80,0] +rwx +Dry-sound +Dry-sound. +-80 + + + +ladspa-G2reverb::Input-BW +gfloat +[0,1] +rwx +Input-BW +Input-BW. +0 + + + +ladspa-G2reverb::Reflections +gfloat +[-80,0] +rwx +Reflections +Reflections. +-80 + + + +ladspa-G2reverb::Reverb-tail +gfloat +[-80,0] +rwx +Reverb-tail +Reverb-tail. +-80 + + + +ladspa-G2reverb::Reverb-time +gfloat +[1,20] +rwx +Reverb-time +Reverb-time. +1 + + + +ladspa-G2reverb::Room-size +gfloat +[10,150] +rwx +Room-size +Room-size. +10 + + + +ladspa-Ambisonics-21-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-21-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-21-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +GstOFA::fingerprint +gchar* + +r +Resulting fingerprint +Resulting fingerprint. +NULL + + + +GstInterleave::channel-positions +GValueArray* + +rw +Channel positions +Channel positions used on the output. + + + + +GstInterleave::channel-positions-from-input +gboolean + +rw +Channel positions from input +Take channel positions from the input. +TRUE + + + +GstMpeg4VParse::drop +gboolean + +rwx +drop +Drop data untill valid configuration data is received either in the stream or through caps. +TRUE + + + +GstMpeg4VParse::config-interval +guint +<= 3600 +rw +Configuration Send Interval +Send Configuration Insertion Interval in seconds (configuration headers will be multiplexed in the data stream when detected.) (0 = disabled). +0 + + + +GstDivxEnc::bitrate +gulong + +rw +Bitrate +Target video bitrate. + + + + +GstDivxEnc::buffer-size +gulong + +r +Buffer Size +Size of the video buffers. + + + + +GstDivxEnc::max-key-interval +gint +>= -1 +rw +Max. Key Interval +Maximum number of frames between two keyframes. +-1 + + + +GstDivxEnc::quality +gint +[1,5] +rw +Quality +Amount of Motion Estimation. +3 + + + +GstSouphttpSrc::location +gchar* + +rw +Location +Location to read from. +"" + + + +GstDc1394::buffer-size +gint +>= 1 +rw +The number of frames in the dma ringbuffer +The number of frames in the dma ringbuffer. +10 + + + +GstDc1394::camera-number +gint +>= 0 +rw +The number of the camera on the firewire bus +The number of the camera on the firewire bus. +0 + + + +GstDc1394::timestamp-offset +gint64 + +rw +Timestamp offset +An offset added to timestamps set on buffers (in ns). +0 + + + +GstDc1394::iso-speed +gint +[100,3200] +rw +The iso bandwidth in Mbps (100, 200, 400, 800, 1600, 3200) +The iso bandwidth in Mbps (100, 200, 400, 800, 1600, 3200). +400 + + + +ladspa-Exaggerate::amount +gfloat +[-1,10] +rwx +amount +amount. +1 + + + +ladspa-Transpose::transpose +gfloat +[-24,24] +rwx +transpose +transpose. +0 + + + +ladspa-Accumulate::decay +gfloat +[0,1] +rwx +decay +decay. +0,25 + + + +ladspa-Accumulate::glissando +gfloat +[-1,1] +rwx +glissando +glissando. +0 + + + +ladspa-alienwah-mono::Delay +gint +[5,50] +rwx +Delay +Delay. +5 + + + +ladspa-alienwah-mono::Feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-alienwah-mono::Frequency +gfloat +[0,inf] +rwx +Frequency +Frequency. +0 + + + +ladspa-alienwah-mono::Initial-phase-for-stereo +gfloat + +rwx +Initial-phase-for-stereo +Initial-phase-for-stereo. +-3,40282e+38 + + + +ladspa-alienwah-stereo::Delay +gint +[5,50] +rwx +Delay +Delay. +5 + + + +ladspa-alienwah-stereo::Feedback +gfloat +[0,2] +rwx +Feedback +Feedback. +0 + + + +ladspa-alienwah-stereo::Frequency +gfloat +[0,inf] +rwx +Frequency +Frequency. +0 + + + +ladspa-alienwah-stereo::Initial-phase-for-stereo +gfloat +[0,6,28319] +rwx +Initial-phase-for-stereo +Initial-phase-for-stereo. +6,28319 + + + +ladspa-preamp::fc +gfloat +[20,4000] +rwx +fc +fc. +440 + + + +ladspa-preamp::gain +gfloat +[0,10] +rwx +gain +gain. +1 + + + +ladspa-Pulse-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Pulse-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +1 + + + +ladspa-Pulse-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Pulse-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Pulse-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Saw-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Saw-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +1 + + + +ladspa-Saw-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Saw-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Saw-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Rec-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Rec-VCO::Form-mod +gfloat +[0,4] +rwx +Form-mod +Form-mod. +0 + + + +ladspa-Rec-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +1 + + + +ladspa-Rec-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Rec-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Rec-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Rec-VCO::Waveform +gfloat +[-1,1] +rwx +Waveform +Waveform. +0 + + + +ladspa-Sync-Saw-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Sync-Saw-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +0,5 + + + +ladspa-Sync-Saw-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Sync-Saw-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Sync-Saw-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Sync-Rect-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Sync-Rect-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +0,5 + + + +ladspa-Sync-Rect-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Sync-Rect-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Sync-Rect-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Sync-Rect-VCO::WMod-gain +gfloat +[0,4] +rwx +WMod-gain +WMod-gain. +0 + + + +ladspa-Sync-Rect-VCO::Waveform +gfloat +[-1,1] +rwx +Waveform +Waveform. +0 + + + +ladspa-Sync-Tri-VCO::Exp-FM-gain +gfloat +[0,4] +rwx +Exp-FM-gain +Exp-FM-gain. +0 + + + +ladspa-Sync-Tri-VCO::LP-filter +gfloat +[0,1] +rwx +LP-filter +LP-filter. +0,5 + + + +ladspa-Sync-Tri-VCO::Lin-FM-gain +gfloat +[0,4] +rwx +Lin-FM-gain +Lin-FM-gain. +0 + + + +ladspa-Sync-Tri-VCO::Octave +gint +[-4,4] +rwx +Octave +Octave. +0 + + + +ladspa-Sync-Tri-VCO::Tune +gfloat +[0,1] +rwx +Tune +Tune. +0 + + + +ladspa-Sync-Tri-VCO::WMod-gain +gfloat +[0,4] +rwx +WMod-gain +WMod-gain. +0 + + + +ladspa-Sync-Tri-VCO::Waveform +gfloat +[-1,1] +rwx +Waveform +Waveform. +0 + + + +ladspa-SooperLooper::Cycle-Length-Out +gfloat +>= 0 +r +Cycle-Length-Out +Cycle-Length-Out. +0 + + + +ladspa-SooperLooper::Dry-Level +gfloat +[0,1] +rwx +Dry-Level +Dry-Level. +0 + + + +ladspa-SooperLooper::Feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0 + + + +ladspa-SooperLooper::Free-Sample-Mem +gfloat +>= 0 +r +Free-Sample-Mem +Free-Sample-Mem. +0 + + + +ladspa-SooperLooper::Loop-Length-Out +gfloat +>= 0 +r +Loop-Length-Out +Loop-Length-Out. +0 + + + +ladspa-SooperLooper::Loop-Position-Out +gfloat +>= 0 +r +Loop-Position-Out +Loop-Position-Out. +0 + + + +ladspa-SooperLooper::Multi-Control +gint +[0,127] +rwx +Multi-Control +Multi-Control. +0 + + + +ladspa-SooperLooper::MultiCtrl-10s +gint +[0,12] +rwx +MultiCtrl-10s +MultiCtrl-10s. +0 + + + +ladspa-SooperLooper::QuantizeMode +gint +<= G_MININT +rwx +QuantizeMode +QuantizeMode. +-2147483648 + + + +ladspa-SooperLooper::Rate +gfloat +[-4,4] +rwx +Rate +Rate. +-4 + + + +ladspa-SooperLooper::RedoTapMode +gint +<= G_MININT +rwx +RedoTapMode +RedoTapMode. +-2147483648 + + + +ladspa-SooperLooper::RoundMode +gint +<= G_MININT +rwx +RoundMode +RoundMode. +-2147483648 + + + +ladspa-SooperLooper::Scratch-Destination +gfloat +[0,1] +rwx +Scratch-Destination +Scratch-Destination. +0 + + + +ladspa-SooperLooper::State-Output +gfloat + +r +State-Output +State-Output. +-3,40282e+38 + + + +ladspa-SooperLooper::Tap-Delay-Trigger +gfloat +[0,1] +rwx +Tap-Delay-Trigger +Tap-Delay-Trigger. +0 + + + +ladspa-SooperLooper::Total-Sample-Mem +gfloat +>= 0 +r +Total-Sample-Mem +Total-Sample-Mem. +0 + + + +ladspa-SooperLooper::Trigger-Threshold +gfloat +[0,1] +rwx +Trigger-Threshold +Trigger-Threshold. +0 + + + +ladspa-SooperLooper::Wet-Level +gfloat +[0,1] +rwx +Wet-Level +Wet-Level. +0 + + + +ladspa-vlevel-mono::Current-Multiplier +gfloat +[0,20] +r +Current-Multiplier +Current-Multiplier. +0 + + + +ladspa-vlevel-mono::Look-ahead +gfloat +[0,5] +rwx +Look-ahead +Look-ahead. +2,5 + + + +ladspa-vlevel-mono::Maximum-Multiplier +gfloat +[0,20] +rwx +Maximum-Multiplier +Maximum-Multiplier. +10 + + + +ladspa-vlevel-mono::Strength +gfloat +[0,1] +rwx +Strength +Strength. +0,75 + + + +ladspa-vlevel-mono::Undo +gboolean + +rwx +Undo +Undo. +FALSE + + + +ladspa-vlevel-mono::Use-Maximum-Multiplier +gboolean + +rwx +Use-Maximum-Multiplier +Use-Maximum-Multiplier. +FALSE + + + +ladspa-vlevel-stereo::Current-Multiplier +gfloat +[0,20] +r +Current-Multiplier +Current-Multiplier. +0 + + + +ladspa-vlevel-stereo::Look-ahead +gfloat +[0,5] +rwx +Look-ahead +Look-ahead. +2,5 + + + +ladspa-vlevel-stereo::Maximum-Multiplier +gfloat +[0,20] +rwx +Maximum-Multiplier +Maximum-Multiplier. +10 + + + +ladspa-vlevel-stereo::Strength +gfloat +[0,1] +rwx +Strength +Strength. +0,75 + + + +ladspa-vlevel-stereo::Undo +gboolean + +rwx +Undo +Undo. +FALSE + + + +ladspa-vlevel-stereo::Use-Maximum-Multiplier +gboolean + +rwx +Use-Maximum-Multiplier +Use-Maximum-Multiplier. +FALSE + + + +ladspa-Ambisonics-mono-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-mono-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-stero-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-stero-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-stero-panner::Width +gfloat +[-90,90] +rwx +Width +Width. +90 + + + +ladspa-Ambisonics-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +ladspa-Ambisonics-square-decoder::Distance +gfloat +[1,30] +rwx +Distance +Distance. +30 + + + +ladspa-Ambisonics-square-decoder::Front +gboolean + +rwx +Front +Front. +FALSE + + + +ladspa-Ambisonics-square-decoder::LF-ratio +gfloat +[1,2] +rwx +LF-ratio +LF-ratio. +1 + + + +ladspa-Ambisonics-hexagon-decoder::Distance +gfloat +[1,30] +rwx +Distance +Distance. +30 + + + +ladspa-Ambisonics-hexagon-decoder::Front +gboolean + +rwx +Front +Front. +FALSE + + + +ladspa-Ambisonics-hexagon-decoder::LF-ratio +gfloat +[1,2] +rwx +LF-ratio +LF-ratio. +1 + + + +ladspa-Filter::Frequency +gfloat +[10,20000] +rwx +Frequency +Frequency. +2990,7 + + + +ladspa-Filter::Inertia +gfloat +[5,100] +rwx +Inertia +Inertia. +22,3607 + + + +ladspa-Filter::Mode +gint +[0,11] +rwx +Mode +Mode. +0 + + + +ladspa-Filter::Resonance +gfloat +[0,707,32] +rwx +Resonance +Resonance. +0,707 + + + +ladspa-Flanger::Amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +ladspa-Flanger::Feedback +gfloat +[-0,99,0,99] +rwx +Feedback +Feedback. +0,99 + + + +ladspa-Flanger::Minimum-delay +gfloat +[0,1,10] +rwx +Minimum-delay +Minimum-delay. +0,1 + + + +ladspa-Flanger::Modulation-depth +gfloat +[0,1,10] +rwx +Modulation-depth +Modulation-depth. +0,316228 + + + +ladspa-Flanger::Modulation-rate +gfloat +[0,01,20] +rwx +Modulation-rate +Modulation-rate. +0,447214 + + + +ladspa-Flanger::Reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +ladspa-Flanger::Stereo-phase +gfloat +[0,360] +rwx +Stereo-phase +Stereo-phase. +0 + + + +ladspa-Flanger::Dry-Amount +gfloat +[0,4] +rwx +Dry-Amount +Dry-Amount. +1 + + + +ladspa-Flanger::Min-delay +gfloat +[0,1,10] +rwx +Min-delay +Min-delay. +0,1 + + + +ladspa-Flanger::Mod-depth +gfloat +[0,1,10] +rwx +Mod-depth +Mod-depth. +0,316228 + + + +ladspa-Flanger::Mod-rate +gfloat +[0,01,20] +rwx +Mod-rate +Mod-rate. +0,447214 + + + +ladspa-Reverb::Amount +gfloat +[0,2] +rwx +Amount +Amount. +0 + + + +ladspa-Reverb::Decay-time +gfloat +[0,4,15] +rwx +Decay-time +Decay-time. +0,989846 + + + +ladspa-Reverb::Diffusion +gfloat +[0,1] +rwx +Diffusion +Diffusion. +0,5 + + + +ladspa-Reverb::High-Frq-Damp +gfloat +[2000,20000] +rwx +High-Frq-Damp +High-Frq-Damp. +6324,56 + + + +ladspa-Reverb::Room-size +gint +[0,5] +rwx +Room-size +Room-size. +0 + + + +ladspa-Reverb::Bass-Cut +gfloat +[20,20000] +rwx +Bass-Cut +Bass-Cut. +632,456 + + + +ladspa-Reverb::Dry-Amount +gfloat +[0,2] +rwx +Dry-Amount +Dry-Amount. +1 + + + +ladspa-Reverb::Pre-Delay +gfloat +[0,50] +rwx +Pre-Delay +Pre-Delay. +0 + + + +ladspa-Reverb::Treble-Cut +gfloat +[20,20000] +rwx +Treble-Cut +Treble-Cut. +3556,56 + + + +ladspa-Reverb::Wet-Amount +gfloat +[0,2] +rwx +Wet-Amount +Wet-Amount. +0,5 + + + +ladspa-Reverb::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Reverb::Wet-amount +gfloat +[0,1] +r +Wet-amount +Wet-amount. +0 + + + +ladspa-Reverb::param-0dB +gfloat +[0,1] +r +param-0dB +param-0dB. +0 + + + +ladspa-VintageDelay::Amount +gfloat +[0,4] +rwx +Amount +Amount. +0 + + + +ladspa-VintageDelay::Feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0,5 + + + +ladspa-VintageDelay::Medium +gint +[0,2] +rwx +Medium +Medium. +1 + + + +ladspa-VintageDelay::Mix-mode +gint +[0,1] +rwx +Mix-mode +Mix-mode. +1 + + + +ladspa-VintageDelay::Subdivide +gint +[1,16] +rwx +Subdivide +Subdivide. +1 + + + +ladspa-VintageDelay::Tempo +gfloat +[30,300] +rwx +Tempo +Tempo. +97,5 + + + +ladspa-VintageDelay::Time-L +gint +[1,16] +rwx +Time-L +Time-L. +1 + + + +ladspa-VintageDelay::Time-R +gint +[1,16] +rwx +Time-R +Time-R. +1 + + + +ladspa-VintageDelay::Dry-Amount +gfloat +[0,4] +rwx +Dry-Amount +Dry-Amount. +1 + + + +ladspa-RotarySpeaker::Mod-Depth +gfloat +[0,1] +rwx +Mod-Depth +Mod-Depth. +0 + + + +ladspa-RotarySpeaker::Speed-Mode +gint +[0,5] +rwx +Speed-Mode +Speed-Mode. +0 + + + +ladspa-RotarySpeaker::Tap-Offset +gfloat +[0,1] +rwx +Tap-Offset +Tap-Offset. +0,5 + + + +ladspa-RotarySpeaker::Tap-Spacing +gfloat +[0,1] +rwx +Tap-Spacing +Tap-Spacing. +0,5 + + + +ladspa-RotarySpeaker::Bass-Motor +gfloat +[10,600] +rwx +Bass-Motor +Bass-Motor. +27,8316 + + + +ladspa-RotarySpeaker::Mic-Distance +gfloat +[0,1] +rwx +Mic-Distance +Mic-Distance. +0,75 + + + +ladspa-RotarySpeaker::Reflection +gfloat +[0,1] +rwx +Reflection +Reflection. +0,25 + + + +ladspa-RotarySpeaker::Treble-Motor +gfloat +[10,600] +rwx +Treble-Motor +Treble-Motor. +27,8316 + + + +ladspa-RotarySpeaker::High-rotor +gfloat +[0,1] +r +High-rotor +High-rotor. +0 + + + +ladspa-RotarySpeaker::Low-rotor +gfloat +[0,1] +r +Low-rotor +Low-rotor. +0 + + + +ladspa-Phaser::Amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +ladspa-Phaser::Center-Freq +gfloat +[20,20000] +rwx +Center-Freq +Center-Freq. +632,456 + + + +ladspa-Phaser::Feedback +gfloat +[-0,99,0,99] +rwx +Feedback +Feedback. +0 + + + +ladspa-Phaser::Modulation-depth +gfloat +[0,10800] +rwx +Modulation-depth +Modulation-depth. +5400 + + + +ladspa-Phaser::Modulation-rate +gfloat +[0,01,20] +rwx +Modulation-rate +Modulation-rate. +0,447214 + + + +ladspa-Phaser::Reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +ladspa-Phaser::Stereo-phase +gfloat +[0,360] +rwx +Stereo-phase +Stereo-phase. +180 + + + +ladspa-Phaser::param---Stages +gint +[1,12] +rwx +param---Stages +param---Stages. +1 + + + +ladspa-Phaser::Dry-Amount +gfloat +[0,4] +rwx +Dry-Amount +Dry-Amount. +1 + + + +ladspa-Phaser::Mod-depth +gfloat +[0,10800] +rwx +Mod-depth +Mod-depth. +5400 + + + +ladspa-Phaser::Mod-rate +gfloat +[0,01,20] +rwx +Mod-rate +Mod-rate. +0,447214 + + + +ladspa-Eq2x2::param-1-kHz +gfloat +[-48,24] +rwx +param-1-kHz +param-1-kHz. +0 + + + +ladspa-Eq2x2::param-125-Hz +gfloat +[-48,24] +rwx +param-125-Hz +param-125-Hz. +0 + + + +ladspa-Eq2x2::param-16-kHz +gfloat +[-48,24] +rwx +param-16-kHz +param-16-kHz. +0 + + + +ladspa-Eq2x2::param-2-kHz +gfloat +[-48,24] +rwx +param-2-kHz +param-2-kHz. +0 + + + +ladspa-Eq2x2::param-250-Hz +gfloat +[-48,24] +rwx +param-250-Hz +param-250-Hz. +0 + + + +ladspa-Eq2x2::param-31-Hz +gfloat +[-48,24] +rwx +param-31-Hz +param-31-Hz. +0 + + + +ladspa-Eq2x2::param-4-kHz +gfloat +[-48,24] +rwx +param-4-kHz +param-4-kHz. +0 + + + +ladspa-Eq2x2::param-500-Hz +gfloat +[-48,24] +rwx +param-500-Hz +param-500-Hz. +0 + + + +ladspa-Eq2x2::param-63-Hz +gfloat +[-48,24] +rwx +param-63-Hz +param-63-Hz. +0 + + + +ladspa-Eq2x2::param-8-kHz +gfloat +[-48,24] +rwx +param-8-kHz +param-8-kHz. +0 + + + +ladspa-ToneStack::bass +gfloat +[0,1] +rwx +bass +bass. +0,5 + + + +ladspa-ToneStack::mid +gfloat +[0,1] +rwx +mid +mid. +0,5 + + + +ladspa-ToneStack::model +gint +[0,5] +rwx +model +model. +0 + + + +ladspa-ToneStack::treble +gfloat +[0,1] +rwx +treble +treble. +0,5 + + + +ladspa-ToneStackLT::bass +gfloat +[0,1] +rwx +bass +bass. +0,5 + + + +ladspa-ToneStackLT::mid +gfloat +[0,1] +rwx +mid +mid. +0,5 + + + +ladspa-ToneStackLT::treble +gfloat +[0,1] +rwx +treble +treble. +0,5 + + + +ladspa-AmpVTS::bass +gfloat +[0,1] +rwx +bass +bass. +0,5 + + + +ladspa-AmpVTS::drive +gfloat +[0,0001,1] +rwx +drive +drive. +0,250075 + + + +ladspa-AmpVTS::gain +gfloat +[0,3] +rwx +gain +gain. +2,25 + + + +ladspa-AmpVTS::latency +gfloat + +r +latency +latency. +-3,40282e+38 + + + +ladspa-AmpVTS::mid +gfloat +[0,1] +rwx +mid +mid. +1 + + + +ladspa-AmpVTS::model +gint +[0,5] +rwx +model +model. +0 + + + +ladspa-AmpVTS::treble +gfloat +[0,1] +rwx +treble +treble. +0,75 + + + +ladspa-AmpVTS::watts +gfloat +[0,0001,1] +rwx +watts +watts. +0,750025 + + + +ladspa-AutoWah::Q +gfloat +[0,001,0,999] +rwx +Q +Q. +0,2505 + + + +ladspa-AutoWah::depth +gfloat +[0,1] +rwx +depth +depth. +0,5 + + + +ladspa-AutoWah::f +gfloat +[43,933] +rwx +f +f. +92,8051 + + + +ladspa-vocoder::Band-1-Level +gfloat +[0,1] +rwx +Band-1-Level +Band-1-Level. +0 + + + +ladspa-vocoder::Band-10-Level +gfloat +[0,1] +rwx +Band-10-Level +Band-10-Level. +0 + + + +ladspa-vocoder::Band-11-Level +gfloat +[0,1] +rwx +Band-11-Level +Band-11-Level. +0 + + + +ladspa-vocoder::Band-12-Level +gfloat +[0,1] +rwx +Band-12-Level +Band-12-Level. +0 + + + +ladspa-vocoder::Band-13-Level +gfloat +[0,1] +rwx +Band-13-Level +Band-13-Level. +0 + + + +ladspa-vocoder::Band-14-Level +gfloat +[0,1] +rwx +Band-14-Level +Band-14-Level. +0 + + + +ladspa-vocoder::Band-15-Level +gfloat +[0,1] +rwx +Band-15-Level +Band-15-Level. +0 + + + +ladspa-vocoder::Band-16-Level +gfloat +[0,1] +rwx +Band-16-Level +Band-16-Level. +0 + + + +ladspa-vocoder::Band-2-Level +gfloat +[0,1] +rwx +Band-2-Level +Band-2-Level. +0 + + + +ladspa-vocoder::Band-3-Level +gfloat +[0,1] +rwx +Band-3-Level +Band-3-Level. +0 + + + +ladspa-vocoder::Band-4-Level +gfloat +[0,1] +rwx +Band-4-Level +Band-4-Level. +0 + + + +ladspa-vocoder::Band-5-Level +gfloat +[0,1] +rwx +Band-5-Level +Band-5-Level. +0 + + + +ladspa-vocoder::Band-6-Level +gfloat +[0,1] +rwx +Band-6-Level +Band-6-Level. +0 + + + +ladspa-vocoder::Band-7-Level +gfloat +[0,1] +rwx +Band-7-Level +Band-7-Level. +0 + + + +ladspa-vocoder::Band-8-Level +gfloat +[0,1] +rwx +Band-8-Level +Band-8-Level. +0 + + + +ladspa-vocoder::Band-9-Level +gfloat +[0,1] +rwx +Band-9-Level +Band-9-Level. +0 + + + +ladspa-vocoder::Number-of-bands +gint +[1,16] +rwx +Number-of-bands +Number-of-bands. +1 + + + +ladspa-jaminController::Scene-no- +gint +[1,20] +rwx +Scene-no- +Scene-no-. +1 + + + +GstDeinterlace2::fields +GstDeinterlace2Fields + +rw +fields +Fields to use for deinterlacing. +All fields + + + +GstDeinterlace2::method +GstDeinterlace2Methods + +rw +Method +Deinterlace Method. +Motion Adaptive: Advanced Detection + + + +GstDeinterlace2::tff +GstDeinterlace2FieldLayout + +rw +tff +Deinterlace top field first. +Auto detection + + + +GstDeinterlace2::mode +GstDeinterlace2Modes + +rw +Mode +Deinterlace Mode. +Enfore deinterlacing + + + +RsnDvdBin::device +gchar* + +rw +Device +DVD device location. +NULL + + + +GstTwoLame::ath-level +gfloat + +rw +ATH Level +ATH Level in dB. +0 + + + +GstTwoLame::bitrate +gint +[8,384] +rw +Bitrate (kb/s) +Bitrate in kbit/sec (8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384). +192 + + + +GstTwoLame::copyright +gboolean + +rw +Copyright +Mark as copyright. +FALSE + + + +GstTwoLame::emphasis +GstTwoLameEmphasis + +rw +Emphasis +Pre-emphasis to apply to the decoded audio. +No emphasis + + + +GstTwoLame::energy-level-extension +gboolean + +rw +Energy Level Extension +Write peak PCM level to each frame. +FALSE + + + +GstTwoLame::error-protection +gboolean + +rw +Error protection +Adds checksum to every frame. +FALSE + + + +GstTwoLame::mode +GstTwoLameMode + +rw +Mode +Encoding mode. +Joint Stereo + + + +GstTwoLame::original +gboolean + +rw +Original +Mark as original. +TRUE + + + +GstTwoLame::padding +GstTwoLamePadding + +rw +Padding +Padding type. +No Padding + + + +GstTwoLame::psymodel +gint +[-1,4] +rw +Psychoacoustic Model +Psychoacoustic model used to encode the audio. +3 + + + +GstTwoLame::quick-mode +gboolean + +rw +Quick mode +Calculate Psymodel every frames. +FALSE + + + +GstTwoLame::quick-mode-count +gint +>= 0 +rw +Quick mode count +Calculate Psymodel every n frames. +10 + + + +GstTwoLame::vbr +gboolean + +rw +VBR +Enable variable bitrate mode. +FALSE + + + +GstTwoLame::vbr-level +gfloat +[-10,10] +rw +VBR Level +VBR Level. +5 + + + +GstTwoLame::vbr-max-bitrate +gint +[0,384] +rw +VBR max bitrate +Specify maximum VBR bitrate (0=off, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160, 192, 224, 256, 320, 384). +0 + + + +GstCeltEnc::bitrate +gint +[10000,320000] +rw +Encoding Bit-rate +Specify an encoding bit-rate (in bps). +64000 + + + +GstCeltEnc::framesize +gint +[64,512] +rw +Frame Size +The number of samples per frame. +480 + + + +GstCeltEnc::cbr +gboolean + +rw +Constant bit rate +Constant bit rate. +TRUE + + + +GstCeltEnc::complexity +gint +[0,10] +rw +Complexity +Complexity. +9 + + + +GstCeltEnc::max-bitrate +gint +[10000,320000] +rw +Maximum Encoding Bit-rate +Specify a maximum encoding bit rate (in bps) for variable bit rate encoding. +64000 + + + +GstCeltEnc::prediction +GstCeltEncPrediction + +rw +Interframe Prediction +Controls the use of interframe prediction. +Independent frames + + + +GstCeltEnc::start-band +gint +>= 0 +rw +Start Band +Controls the start band that should be used. +0 + + + +GstDCCPClientSrc::caps +GstCaps* + +rw +Caps +The caps of the source pad. + + + + +GstDCCPClientSrc::ccid +gint +>= 2 +rw +CCID +The Congestion Control IDentified to be used. +2 + + + +GstDCCPClientSrc::close-socket +gboolean + +rw +Close socket +Close socket at the end of stream. +TRUE + + + +GstDCCPClientSrc::host +gchar* + +rw +Host +The host IP address to receive packets from. +"127.0.0.1" + + + +GstDCCPClientSrc::port +gint +[0,65535] +rw +Port +The port to receive packets from. +5001 + + + +GstDCCPClientSrc::sockfd +gint +>= G_MAXULONG +rw +Socket fd +The socket file descriptor. +-1 + + + +GstDCCPServerSink::ccid +gint +>= 2 +rw +CCID +The Congestion Control IDentified to be used. +2 + + + +GstDCCPServerSink::close-socket +gboolean + +rw +Close +Close the client sockets at end of stream. +TRUE + + + +GstDCCPServerSink::port +gint +[0,65535] +rw +Port +The port to listen to. +5001 + + + +GstDCCPServerSink::sockfd +gint +>= G_MAXULONG +rw +Socket fd +The client socket file descriptor. +-1 + + + +GstDCCPServerSink::wait-connections +gboolean + +rw +Wait connections +Wait for many client connections. +FALSE + + + +GstDCCPClientSink::ccid +gint +>= 2 +rw +CCID +The Congestion Control IDentified to be used. +2 + + + +GstDCCPClientSink::close-socket +gboolean + +rw +Close +Close socket at end of stream. +TRUE + + + +GstDCCPClientSink::host +gchar* + +rw +Host +The host IP address to send packets to. +"127.0.0.1" + + + +GstDCCPClientSink::port +gint +[0,65535] +rw +Port +The port to send the packets to. +5001 + + + +GstDCCPClientSink::sockfd +gint +>= G_MAXULONG +rw +Socket fd +The socket file descriptor. +-1 + + + +GstDCCPServerSrc::caps +GstCaps* + +rw +Caps +The caps of the source pad. + + + + +GstDCCPServerSrc::ccid +gint +>= 2 +rw +CCID +The Congestion Control IDentified to be used. +2 + + + +GstDCCPServerSrc::close-socket +gboolean + +rw +Close socket +Close client socket at the end of stream. +TRUE + + + +GstDCCPServerSrc::host +gchar* + +rw +Host +The hostname to listen as. +NULL + + + +GstDCCPServerSrc::port +gint +[0,65535] +rw +Port +The port to listen to. +5001 + + + +GstDCCPServerSrc::sockfd +gint +>= G_MAXULONG +rw +Socket fd +The client socket file descriptor. +-1 + + + +GstMpegTSDemux::check-crc +gboolean + +rw +Check CRC +Enable CRC checking. +TRUE + + + +GstMpegTSDemux::es-pids +gchar* + +rw +Colon separated list of PIDs containing Elementary Streams +PIDs to treat as Elementary Streams in the absence of a PMT, eg 0x10:0x11:0x20. +"" + + + +GstMpegTSDemux::m2ts-mode +gboolean + +rw +M2TS(192 bytes) Mode +Defines if the input is normal TS ie .ts(188 bytes)or Blue-Ray Format ie .m2ts(192 bytes). +FALSE + + + +GstMpegTSDemux::pat-info +GValueArray* + +r +GValueArray containing GObjects with properties +Array of GObjects containing information from the TS PAT about all programs listed in the current Program Association Table (PAT). + + + + +GstMpegTSDemux::pmt-info +MpegTsPmtInfo* + +r +Information about the current program +GObject with properties containing information from the TS PMT about the currently selected program and its streams. + + + + +GstMpegTSDemux::program-number +gint +>= G_MAXULONG +rw +Program Number +Program number to demux for (-1 to ignore). +-1 + + + +GstScaletempo::overlap +gdouble +[0,1] +rw +Overlap Length +Percentage of stride to overlap. +0.2 + + + +GstScaletempo::rate +gdouble +[-2.14748e+09,2.14748e+09] +r +Playback Rate +Current playback rate. +1 + + + +GstScaletempo::search +guint +<= 500 +rw +Search Length +Length in milliseconds to search for best overlap position. +14 + + + +GstScaletempo::stride +guint +[1,5000] +rw +Stride Length +Length in milliseconds to output each stride. +30 + + + +GstPcapParse::dst-ip +gchar* + +rw +Destination IP +Destination IP to restrict to. +"" + + + +GstPcapParse::dst-port +gint +[G_MAXULONG,65535] +rw +Destination port +Destination port to restrict to. +-1 + + + +GstPcapParse::src-ip +gchar* + +rw +Source IP +Source IP to restrict to. +"" + + + +GstPcapParse::src-port +gint +[G_MAXULONG,65535] +rw +Source port +Source port to restrict to. +-1 + + + +GstPcapParse::caps +GstCaps* + +rw +Caps +The caps of the source pad. + + + + +MpegTsMux::m2ts-mode +gboolean + +rw +M2TS(192 bytes) Mode +Set to TRUE to output Blu-Ray disc format with 192 byte packets. FALSE for standard TS format with 188 byte packets. +FALSE + + + +MpegTsMux::prog-map +GstStructure* + +rw +Program map +A GstStructure specifies the mapping from elementary streams to programs. + + + + +MpegTsMux::pat-interval +guint +>= 1 +rw +PAT interval +Set the interval (in ticks of the 90kHz clock) for writing out the PAT table. +9000 + + + +MpegTsMux::pmt-interval +guint +>= 1 +rw +PMT interval +Set the interval (in ticks of the 90kHz clock) for writing out the PMT table. +9000 + + + +GstApExSink::host +gchar* + +rw +Host +AirPort Express target host. +"" + + + +GstApExSink::jack-status +GstApExJackStatus + +r +Jack Status +AirPort Express jack connection status. +GST_APEX_JACK_STATUS_UNDEFINED + + + +GstApExSink::jack-type +GstApExJackType + +r +Jack Type +AirPort Express connected jack type. +GST_APEX_JACK_TYPE_UNDEFINED + + + +GstApExSink::port +guint +<= 32000 +rw +Port +AirPort Express target port. +5000 + + + +GstApExSink::volume +gdouble +[0,10] +rw +Volume +AirPort Express target volume. +1 + + + +GstMJ2Mux::faststart +gboolean + +rw +Format file to faststart +If the file should be formated for faststart (headers first). . +FALSE + + + +GstMJ2Mux::faststart-file +gchar* + +rwx +File to use for storing buffers +File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically. +NULL + + + +GstMJ2Mux::large-file +gboolean + +rw +Support for large files +Uses 64bits to some fields instead of 32bits, providing support for large files. +FALSE + + + +GstMJ2Mux::movie-timescale +guint +>= 1 +rwx +Movie timescale +Timescale to use in the movie (units per second). +1000 + + + +GstMJ2Mux::presentation-time +gboolean + +rwx +Include presentation-time info +Calculate and include presentation/composition time (in addition to decoding time) (use with caution). +FALSE + + + +GstMJ2Mux::moov-recovery-file +gchar* + +rwx +File to store data for posterior moov atom recovery +File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental). +NULL + + + +GstMJ2Mux::fragment-duration +guint + +rwx +Fragment duration +Fragment durations in ms (produce a fragmented file if > 0). +0 + + + +GstMJ2Mux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstMJ2Mux::trak-timescale +guint + +rwx +Track timescale +Timescale to use for the tracks (units per second, 0 is automatic). +0 + + + +GstMJ2Mux::dts-method +GstQTMuxDtsMethods + +rwx +dts-method +Method to determine DTS time. +delta/duration + + + +GstGPPMux::faststart +gboolean + +rw +Format file to faststart +If the file should be formated for faststart (headers first). . +FALSE + + + +GstGPPMux::faststart-file +gchar* + +rwx +File to use for storing buffers +File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically. +NULL + + + +GstGPPMux::large-file +gboolean + +rw +Support for large files +Uses 64bits to some fields instead of 32bits, providing support for large files. +FALSE + + + +GstGPPMux::movie-timescale +guint +>= 1 +rwx +Movie timescale +Timescale to use in the movie (units per second). +1000 + + + +GstGPPMux::presentation-time +gboolean + +rwx +Include presentation-time info +Calculate and include presentation/composition time (in addition to decoding time) (use with caution). +FALSE + + + +GstGPPMux::moov-recovery-file +gchar* + +rwx +File to store data for posterior moov atom recovery +File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental). +NULL + + + +GstGPPMux::fragment-duration +guint + +rwx +Fragment duration +Fragment durations in ms (produce a fragmented file if > 0). +0 + + + +GstGPPMux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstGPPMux::trak-timescale +guint + +rwx +Track timescale +Timescale to use for the tracks (units per second, 0 is automatic). +0 + + + +GstGPPMux::dts-method +GstQTMuxDtsMethods + +rwx +dts-method +Method to determine DTS time. +delta/duration + + + +GstMP4Mux::faststart +gboolean + +rw +Format file to faststart +If the file should be formated for faststart (headers first). . +FALSE + + + +GstMP4Mux::faststart-file +gchar* + +rwx +File to use for storing buffers +File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically. +NULL + + + +GstMP4Mux::large-file +gboolean + +rw +Support for large files +Uses 64bits to some fields instead of 32bits, providing support for large files. +FALSE + + + +GstMP4Mux::movie-timescale +guint +>= 1 +rwx +Movie timescale +Timescale to use in the movie (units per second). +1000 + + + +GstMP4Mux::presentation-time +gboolean + +rwx +Include presentation-time info +Calculate and include presentation/composition time (in addition to decoding time) (use with caution). +FALSE + + + +GstMP4Mux::moov-recovery-file +gchar* + +rwx +File to store data for posterior moov atom recovery +File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental). +NULL + + + +GstMP4Mux::fragment-duration +guint + +rwx +Fragment duration +Fragment durations in ms (produce a fragmented file if > 0). +0 + + + +GstMP4Mux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstMP4Mux::trak-timescale +guint + +rwx +Track timescale +Timescale to use for the tracks (units per second, 0 is automatic). +0 + + + +GstMP4Mux::dts-method +GstQTMuxDtsMethods + +rwx +dts-method +Method to determine DTS time. +delta/duration + + + +GstQTMux::faststart +gboolean + +rw +Format file to faststart +If the file should be formated for faststart (headers first). . +FALSE + + + +GstQTMux::faststart-file +gchar* + +rwx +File to use for storing buffers +File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically. +NULL + + + +GstQTMux::large-file +gboolean + +rw +Support for large files +Uses 64bits to some fields instead of 32bits, providing support for large files. +FALSE + + + +GstQTMux::movie-timescale +guint +>= 1 +rwx +Movie timescale +Timescale to use in the movie (units per second). +1000 + + + +GstQTMux::presentation-time +gboolean + +rwx +Include presentation-time info +Calculate and include presentation/composition time (in addition to decoding time) (use with caution). +FALSE + + + +GstQTMux::moov-recovery-file +gchar* + +rwx +File to store data for posterior moov atom recovery +File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental). +NULL + + + +GstQTMux::fragment-duration +guint + +rwx +Fragment duration +Fragment durations in ms (produce a fragmented file if > 0). +0 + + + +GstQTMux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstQTMux::trak-timescale +guint + +rwx +Track timescale +Timescale to use for the tracks (units per second, 0 is automatic). +0 + + + +GstQTMux::dts-method +GstQTMuxDtsMethods + +rwx +dts-method +Method to determine DTS time. +delta/duration + + + +GstAudioresample::filter-length +gint +>= 0 +rwx +filter length +Length of the resample filter. +16 + + + +GstMXFDemux::package +gchar* + +rw +Package +Material or Source package to use for playback. +NULL + + + +GstMXFDemux::max-drift +guint64 +>= 100000000 +rw +Maximum drift +Maximum number of nanoseconds by which tracks can differ. +500000000 + + + +GstMXFDemux::structure +GstStructure* + +r +Structure +Structural metadata of the MXF file. + + + + +GstLegacyresample::filter-length +gint +>= 0 +rwx +filter length +Length of the resample filter. +16 + + + +GstCameraBin::audioenc +GstElement* + +rw +Audio encoder +Audio encoder GStreamer element (default is vorbisenc). + + + + +GstCameraBin::audiosrc +GstElement* + +rw +Audio source element +Audio source GStreamer element (default is pulsesrc). + + + + +GstCameraBin::filename +gchar* + +rw +Filename +Filename of the image or video to save. +"" + + + +GstCameraBin::filter-caps +GstCaps* + +rw +Filter caps +Filter video data coming from videosrc element. + + + + +GstCameraBin::imageenc +GstElement* + +rw +Image encoder +Image encoder GStreamer element (default is jpegenc). + + + + +GstCameraBin::imagepp +GstElement* + +rw +Image post processing element +Image Post-Processing GStreamer element (default is NULL). + + + + +GstCameraBin::inputcaps +GstCaps* + +r +Input caps +The allowed modes of the video source operation. + + + + +GstCameraBin::mode +GstCameraBinMode + +rw +Mode +The capture mode (still image capture or video recording). +Still image capture (default) + + + +GstCameraBin::mute +gboolean + +rw +Mute +True to mute the recording. False to record with audio. +FALSE + + + +GstCameraBin::vfsink +GstElement* + +rw +View finder sink +View finder sink GStreamer element (default is autovideosink). + + + + +GstCameraBin::videoenc +GstElement* + +rw +Video encoder +Video encoder GStreamer element (default is theoraenc). + + + + +GstCameraBin::videomux +GstElement* + +rw +Video muxer +Video muxer GStreamer element (default is oggmux). + + + + +GstCameraBin::videopp +GstElement* + +rw +Video post processing element +Video post processing GStreamer element (default is NULL). + + + + +GstCameraBin::videosrc +GstElement* + +rw +Video source element +Video source GStreamer element (default is v4l2src). + + + + +GstCameraBin::zoom +gfloat +[1,10] +rw +Zoom +The zoom. 1.0 for 1x, 2.0 for 2x and so on. +1 + + + +GstCameraBin::preview-caps +GstCaps* + +rw +Preview caps +Caps defining the preview image format. + + + + +GstCameraBin::audio-encoder +GstElement* + +rw +Audio encoder +Audio encoder GStreamer element (default is vorbisenc). + + + + +GstCameraBin::audio-source +GstElement* + +rw +Audio source element +Audio source GStreamer element (NULL = default audio src). + + + + +GstCameraBin::image-encoder +GstElement* + +rw +Image encoder +Image encoder GStreamer element (default is jpegenc). + + + + +GstCameraBin::image-post-processing +GstElement* + +rw +Image post processing element +Image Post-Processing GStreamer element (default is NULL). + + + + +GstCameraBin::video-encoder +GstElement* + +rw +Video encoder +Video encoder GStreamer element (default is theoraenc). + + + + +GstCameraBin::video-muxer +GstElement* + +rw +Video muxer +Video muxer GStreamer element (default is oggmux). + + + + +GstCameraBin::video-post-processing +GstElement* + +rw +Video post processing element +Video post processing GStreamer element (default is NULL). + + + + +GstCameraBin::video-source +GstElement* + +rw +Video source element +Video source GStreamer element (NULL = default video src). + + + + +GstCameraBin::video-source-caps +GstCaps* + +r +Video source caps +The allowed modes of the video source operation. + + + + +GstCameraBin::viewfinder-sink +GstElement* + +rw +Viewfinder sink +Viewfinder sink GStreamer element (NULL = default video sink). + + + + +GstCameraBin::flags +GstCameraBinFlags + +rw +Flags +Flags to control behaviour. +Enable source crop and scale|Enable scale for viewfinder|Enable audio conversion for video capture|Enable colorspace conversion for still image|Enable colorspace conversion for video capture + + + +GstCameraBin::block-after-capture +gboolean + +rw +Block viewfinder after capture +Block viewfinder after capturing an image or video. +FALSE + + + +GstCameraBin::image-capture-height +gint +[0,32767] +rw +The height used for image capture +The height used for image capture. +600 + + + +GstCameraBin::image-capture-width +gint +[0,32767] +rw +The width used for image capture +The width used for image capture. +800 + + + +GstCameraBin::video-capture-framerate +GstFraction + +rw +The framerate used for video capture +The framerate used for video capture. + + + + +GstCameraBin::video-capture-height +gint +[0,32767] +rw +The height used for video capture +The height used for video capture. +600 + + + +GstCameraBin::video-capture-width +gint +[0,32767] +rw +The width used for video capture +The width used for video capture. +800 + + + +GstCameraBin::video-source-filter +GstElement* + +rw +video source filter element +Optional video filter GStreamer element, filters all frames fromthe video source. + + + + +GstCameraBin::viewfinder-filter +GstElement* + +rw +viewfinder filter element +viewfinder filter GStreamer element. + + + + +GstCameraBin::idle +gboolean + +r +Indicates if data is being processed (recording/capturing/saving) +Indicates if data is being processed (recording/capturing/saving). +TRUE + + + +GstCameraBin::preview-source-filter +GstElement* + +rw +preview source filter element +Optional preview source filter GStreamer element. + + + + +GstCameraBin::ready-for-capture +gboolean + +r +Indicates if preparing a new capture is possible +Indicates if preparing a new capture is possible. +TRUE + + + +GstDTMFSrc::interval +guint +[10,50] +rw +Interval between tone packets +Interval in ms between two tone packets. +50 + + + +GstRTPDTMFSrc::clock-rate +guint + +rw +clockrate +The clock-rate at which to generate the dtmf packets. +8000 + + + +GstRTPDTMFSrc::interval +guint +[10,50] +rw +Interval between rtp packets +Interval in ms between two rtp packets. +50 + + + +GstRTPDTMFSrc::packet-redundancy +guint +[1,5] +rw +Packet Redundancy +Number of packets to send to indicate start and stop dtmf events. +1 + + + +GstRTPDTMFSrc::pt +guint +<= 128 +rw +payload type +The payload type of the packets. +96 + + + +GstRTPDTMFSrc::seqnum +guint + +r +Sequence number +The RTP sequence number of the last processed packet. +0 + + + +GstRTPDTMFSrc::seqnum-offset +gint +>= G_MAXULONG +rw +Sequence number Offset +Offset to add to all outgoing seqnum (-1 = random). +-1 + + + +GstRTPDTMFSrc::ssrc +guint + +rw +SSRC +The SSRC of the packets (-1 == random). +4294967295 + + + +GstRTPDTMFSrc::timestamp +guint + +r +Timestamp +The RTP timestamp of the last processed packet. +0 + + + +GstRTPDTMFSrc::timestamp-offset +gint +>= G_MAXULONG +rw +Timestamp Offset +Offset to add to all outgoing timestamps (-1 = random). +-1 + + + +GstRtpDTMFDepay::max-duration +guint + +rw +Maximum duration +The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit). +0 + + + +GstRtpDTMFDepay::unit-time +guint +<= 1000 +rw +Duration unittime +The smallest unit (ms) the duration must be a multiple of (0 disables it). +0 + + + +GstLiveAdder::latency +guint + +rw +Buffer latency in ms +Amount of data to buffer. +60 + + + +GstRTPMux::seqnum +guint + +r +Sequence number +The RTP sequence number of the last processed packet. +0 + + + +GstRTPMux::seqnum-offset +gint +>= G_MAXULONG +rw +Sequence number Offset +Offset to add to all outgoing seqnum (-1 = random). +-1 + + + +GstRTPMux::ssrc +guint + +rw +SSRC +The SSRC of the packets (-1 == random). +4294967295 + + + +GstRTPMux::timestamp-offset +gint +>= G_MAXULONG +rw +Timestamp Offset +Offset to add to all outgoing timestamps (-1 = random). +-1 + + + +GstAutoConvert::factories +gpointer + +rw +GList of GstElementFactory +GList of GstElementFactory objects to pick from (the element takes ownership of the list (NULL means it will go through all possible elements), can only be set once. + + + + +GstAutoConvert::initial-identity +gboolean + +rw +Install identity initially +If true, then the identity element will be installed initially and used for event passing until the first data buffer arrives . +FALSE + + + +FPSDisplaySink::sync +gboolean + +rw +Sync +Sync on the clock. +FALSE + + + +FPSDisplaySink::text-overlay +gboolean + +rw +text-overlay +Wether to use text-overlay. +TRUE + + + +Gstassrender::embeddedfonts +gboolean + +rw +Use embedded fonts +Extract and use fonts embedded in the stream. +TRUE + + + +Gstassrender::enable +gboolean + +rw +Toggle rendering +Enable rendering of subtitles. +TRUE + + + +GstFPSDisplaySink::sync +gboolean + +rw +Sync +Sync on the clock (if the internally used sink doesn't have this property it will be ignored. +TRUE + + + +GstFPSDisplaySink::text-overlay +gboolean + +rw +text-overlay +Whether to use text-overlay. +TRUE + + + +GstFPSDisplaySink::video-sink +GstElement* + +rw +video-sink +Video sink to use (Must only be called on NULL state). + + + + +GstFPSDisplaySink::fps-update-interval +gint +>= 1 +rw +Fps update interval +Time between consecutive frames per second measures and update (in ms). Should be set on NULL state. +500 + + + +GstFPSDisplaySink::max-fps +gdouble +>= -1 +r +Max fps +Maximum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done. +-1 + + + +GstFPSDisplaySink::min-fps +gdouble +>= -1 +r +Min fps +Minimum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done. +-1 + + + +GstFPSDisplaySink::signal-fps-measurements +gboolean + +rw +Signal fps measurements +If the fps-measurements signal should be emited. +FALSE + + + +GstFPSDisplaySink::frames-dropped +guint + +r +dropped frames +Number of frames dropped by the sink. +0 + + + +GstFPSDisplaySink::frames-rendered +guint + +r +rendered frames +Number of frames rendered. +0 + + + +GstFPSDisplaySink::last-message +gchar* + +r +Last Message +The message describing current status. +NULL + + + +GstFPSDisplaySink::silent +gboolean + +rw +enable stdout output +Don't produce last_message events. +FALSE + + + +GstId3Tag::v2-version +gint +[3,4] +rwx +Version (3 or 4) of id3v2 tag +Set version (3 for id3v2.3, 4 for id3v2.4) of id3v2 tags. +3 + + + +GstId3Tag::write-v1 +gboolean + +rwx +Write id3v1 tag +Write an id3v1 tag at the end of the file. +TRUE + + + +GstId3Tag::write-v2 +gboolean + +rwx +Write id3v2 tag +Write an id3v2 tag at the start of the file. +TRUE + + + +GstId3Mux::v2-version +gint +[3,4] +rwx +Version (3 or 4) of id3v2 tag +Set version (3 for id3v2.3, 4 for id3v2.4) of id3v2 tags. +3 + + + +GstId3Mux::write-v1 +gboolean + +rwx +Write id3v1 tag +Write an id3v1 tag at the end of the file. +FALSE + + + +GstId3Mux::write-v2 +gboolean + +rwx +Write id3v2 tag +Write an id3v2 tag at the start of the file. +TRUE + + + +ladspa-Filterclavier::Detune +gint +[-100,100] +rwx +Detune +Detune. +0 + + + +ladspa-Filterclavier::Max--Resonance +gfloat +[0,707,32] +rwx +Max--Resonance +Max--Resonance. +32 + + + +ladspa-Filterclavier::Mode +gint +[0,11] +rwx +Mode +Mode. +0 + + + +ladspa-Filterclavier::Portamento-time +gfloat +[1,2000] +rwx +Portamento-time +Portamento-time. +44,7214 + + + +ladspa-Filterclavier::Transpose +gint +[-48,48] +rwx +Transpose +Transpose. +0 + + + +ladspa-MultiChorus::Amount +gfloat +[0,4] +rwx +Amount +Amount. +2 + + + +ladspa-MultiChorus::Center-Frq-1 +gfloat +[10,20000] +rwx +Center-Frq-1 +Center-Frq-1. +100 + + + +ladspa-MultiChorus::Center-Frq-2 +gfloat +[10,20000] +rwx +Center-Frq-2 +Center-Frq-2. +2990,7 + + + +ladspa-MultiChorus::Dry-Amount +gfloat +[0,4] +rwx +Dry-Amount +Dry-Amount. +1 + + + +ladspa-MultiChorus::Inter-voice-phase +gfloat +[0,360] +rwx +Inter-voice-phase +Inter-voice-phase. +90 + + + +ladspa-MultiChorus::Minimum-delay +gfloat +[0,1,10] +rwx +Minimum-delay +Minimum-delay. +3,16228 + + + +ladspa-MultiChorus::Modulation-depth +gfloat +[0,1,10] +rwx +Modulation-depth +Modulation-depth. +10 + + + +ladspa-MultiChorus::Modulation-rate +gfloat +[0,01,20] +rwx +Modulation-rate +Modulation-rate. +0,447214 + + + +ladspa-MultiChorus::Q +gfloat +[0,125,8] +rwx +Q +Q. +0,125 + + + +ladspa-MultiChorus::Stereo-phase +gfloat +[0,360] +rwx +Stereo-phase +Stereo-phase. +180 + + + +ladspa-MultiChorus::Voices +gint +[1,8] +rwx +Voices +Voices. +1 + + + +ladspa-MultiChorus::Overlap +gfloat +[0,1] +rwx +Overlap +Overlap. +1 + + + +ladspa-MultiChorus::Min-delay +gfloat +[0,1,10] +rwx +Min-delay +Min-delay. +3,16228 + + + +ladspa-MultiChorus::Mod-depth +gfloat +[0,1,10] +rwx +Mod-depth +Mod-depth. +10 + + + +ladspa-Compressor::A-weighting +gboolean + +rwx +A-weighting +A-weighting. +FALSE + + + +ladspa-Compressor::Attack +gfloat +[0,01,2000] +rwx +Attack +Attack. +4,47214 + + + +ladspa-Compressor::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Compressor::Compression +gfloat +[0,03125,1] +r +Compression +Compression. +0,03125 + + + +ladspa-Compressor::Detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +ladspa-Compressor::Knee +gfloat +[1,8] +rwx +Knee +Knee. +2,75 + + + +ladspa-Compressor::Makeup-Gain +gfloat +[1,64] +rwx +Makeup-Gain +Makeup-Gain. +1 + + + +ladspa-Compressor::Peak-Output +gfloat +[0,1] +r +Peak-Output +Peak-Output. +0 + + + +ladspa-Compressor::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-Compressor::Release +gfloat +[0,01,2000] +rwx +Release +Release. +94,5742 + + + +ladspa-Compressor::Stereo-Link +gint +[0,1] +rwx +Stereo-Link +Stereo-Link. +0 + + + +ladspa-Compressor::Threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,250732 + + + +ladspa-Compressor::param-0dB +gboolean + +r +param-0dB +param-0dB. +FALSE + + + +ladspa-Compressor::Weighting +gint +[0,4] +rwx +Weighting +Weighting. +0 + + + +ladspa-Compressor::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Compressor::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-Compressor::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Compressor::Reduction +gfloat +[0,03125,1] +r +Reduction +Reduction. +0,03125 + + + +ladspa-Compressor::param-0dB-In +gboolean + +r +param-0dB-In +param-0dB-In. +FALSE + + + +ladspa-Compressor::param-0dB-Out +gboolean + +r +param-0dB-Out +param-0dB-Out. +FALSE + + + +http---calf-sourceforge-net-plugins-Compressor::attack +gfloat +[0,01,2000] +rwx +Attack +Attack. +20 + + + +http---calf-sourceforge-net-plugins-Compressor::aweighting +gint +[0,4] +rwx +aweighting +aweighting. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Compressor::clip +gboolean + +r +clip +clip. +FALSE + + + +http---calf-sourceforge-net-plugins-Compressor::compression +gfloat +[0,1] +r +Reduction +Reduction. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::knee +gfloat +[1,8] +rwx +Knee +Knee. +2,82843 + + + +http---calf-sourceforge-net-plugins-Compressor::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +2 + + + +http---calf-sourceforge-net-plugins-Compressor::peak +gfloat +[0,1] +r +peak +peak. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +http---calf-sourceforge-net-plugins-Compressor::release +gfloat +[0,01,2000] +rwx +Release +Release. +250 + + + +http---calf-sourceforge-net-plugins-Compressor::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,125 + + + +http---calf-sourceforge-net-plugins-Compressor::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +http---calf-sourceforge-net-plugins-Compressor::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +http---calf-sourceforge-net-plugins-Compressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +http---calf-sourceforge-net-plugins-Compressor::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +http---calf-sourceforge-net-plugins-Compressor::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +http---calf-sourceforge-net-plugins-Filter::freq +gfloat +[10,20000] +rwx +Frequency +Frequency. +2000 + + + +http---calf-sourceforge-net-plugins-Filter::inertia +gfloat +[5,100] +rwx +Inertia +Inertia. +20 + + + +http---calf-sourceforge-net-plugins-Filter::mode +gint +[0,11] +rwx +Mode +Mode. +0 + + + +http---calf-sourceforge-net-plugins-Filter::res +gfloat +[0,707,32] +rwx +Resonance +Resonance. +0,707 + + + +http---calf-sourceforge-net-plugins-Filterclavier::detune +gint +[-100,100] +rwx +Detune +Detune. +0 + + + +http---calf-sourceforge-net-plugins-Filterclavier::inertia +gfloat +[1,2000] +rwx +Portamento time +Portamento time. +20 + + + +http---calf-sourceforge-net-plugins-Filterclavier::maxres +gfloat +[0,707,32] +rwx +Max. Resonance +Max. Resonance. +32 + + + +http---calf-sourceforge-net-plugins-Filterclavier::mode +gint +[0,11] +rwx +Mode +Mode. +6 + + + +http---calf-sourceforge-net-plugins-Filterclavier::transpose +gint +[-48,48] +rwx +Transpose +Transpose. +0 + + + +http---calf-sourceforge-net-plugins-Filterclavier::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-plugins-Flanger::amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +http---calf-sourceforge-net-plugins-Flanger::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +http---calf-sourceforge-net-plugins-Flanger::feedback +gfloat +[-0,99,0,99] +rwx +Feedback +Feedback. +0,9 + + + +http---calf-sourceforge-net-plugins-Flanger::min-delay +gfloat +[0,1,10] +rwx +Min delay +Min delay. +0,1 + + + +http---calf-sourceforge-net-plugins-Flanger::mod-depth +gfloat +[0,1,10] +rwx +Mod depth +Mod depth. +0,5 + + + +http---calf-sourceforge-net-plugins-Flanger::mod-rate +gfloat +[0,01,20] +rwx +Mod rate +Mod rate. +0,25 + + + +http---calf-sourceforge-net-plugins-Flanger::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +http---calf-sourceforge-net-plugins-Flanger::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::adsr-a +gfloat +[1,20000] +rwx +Attack +Attack. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::adsr-d +gfloat +[10,20000] +rwx +Decay +Decay. +350 + + + +http---calf-sourceforge-net-plugins-Monosynth::adsr-r +gfloat +[10,20000] +rwx +Release +Release. +50 + + + +http---calf-sourceforge-net-plugins-Monosynth::adsr-s +gfloat +[0,1] +rwx +Sustain +Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Monosynth::cutoff +gfloat +[10,16000] +rwx +Cutoff +Cutoff. +33 + + + +http---calf-sourceforge-net-plugins-Monosynth::env2amp +gfloat +[0,1] +rwx +Env->Amp +Env->Amp. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::env2cutoff +gfloat +[-10800,10800] +rwx +Env->Cutoff +Env->Cutoff. +8000 + + + +http---calf-sourceforge-net-plugins-Monosynth::env2res +gfloat +[0,1] +rwx +Env->Res +Env->Res. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::filter +gint +[0,7] +rwx +Filter +Filter. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::filter-sep +gfloat +[-2400,2400] +rwx +Separation +Separation. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::key-follow +gfloat +[0,2] +rwx +Key Follow +Key Follow. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::legato +gint +[0,3] +rwx +Legato Mode +Legato Mode. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::master +gfloat +[0,1] +rwx +Volume +Volume. +0,5 + + + +http---calf-sourceforge-net-plugins-Monosynth::o1-wave +gint +[0,15] +rwx +Osc1 Wave +Osc1 Wave. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::o12-detune +gfloat +[0,100] +rwx +O1<>2 Detune +O1<>2 Detune. +10 + + + +http---calf-sourceforge-net-plugins-Monosynth::o12-mix +gfloat +[0,1] +rwx +O1<>2 Mix +O1<>2 Mix. +0,5 + + + +http---calf-sourceforge-net-plugins-Monosynth::o2-wave +gint +[0,15] +rwx +Osc2 Wave +Osc2 Wave. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::o2-xpose +gint +[-24,24] +rwx +Osc 2 transpose +Osc 2 transpose. +12 + + + +http---calf-sourceforge-net-plugins-Monosynth::phase-mode +gint +[0,5] +rwx +Phase mode +Phase mode. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::portamento +gfloat +[1,2000] +rwx +Portamento +Portamento. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::res +gfloat +[0,7,8] +rwx +Resonance +Resonance. +2 + + + +http---calf-sourceforge-net-plugins-Monosynth::vel2amp +gfloat +[0,1] +rwx +Vel->Amp +Vel->Amp. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::vel2filter +gfloat +[0,1] +rwx +Vel->Filter +Vel->Filter. +0,5 + + + +http---calf-sourceforge-net-plugins-Monosynth::adsr-f +gfloat +[-10000,10000] +rwx +Fade +Fade. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::lfo-delay +gfloat +[0,1,5] +rwx +LFO Delay +LFO Delay. +0,5 + + + +http---calf-sourceforge-net-plugins-Monosynth::lfo-rate +gfloat +[0,01,20] +rwx +LFO Rate +LFO Rate. +5 + + + +http---calf-sourceforge-net-plugins-Monosynth::lfo2filter +gfloat +[-4800,4800] +rwx +LFO->Filter +LFO->Filter. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::lfo2pitch +gfloat +[0,1200] +rwx +LFO->Pitch +LFO->Pitch. +100 + + + +http---calf-sourceforge-net-plugins-Monosynth::lfo2pw +gfloat +[0,1] +rwx +LFO->PW +LFO->PW. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::mwhl2lfo +gfloat +[0,1] +rwx +ModWheel->LFO +ModWheel->LFO. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::o1-pw +gfloat +[-1,1] +rwx +Osc1 PW +Osc1 PW. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::o2-pw +gfloat +[-1,1] +rwx +Osc2 PW +Osc2 PW. +0 + + + +http---calf-sourceforge-net-plugins-Monosynth::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +http---calf-sourceforge-net-plugins-Monosynth::scale-detune +gfloat +[0,1] +rwx +Scale Detune +Scale Detune. +1 + + + +http---calf-sourceforge-net-plugins-Monosynth::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-plugins-MultiChorus::amount +gfloat +[0,4] +rwx +Amount +Amount. +2 + + + +http---calf-sourceforge-net-plugins-MultiChorus::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +http---calf-sourceforge-net-plugins-MultiChorus::freq +gfloat +[10,20000] +rwx +Center Frq 1 +Center Frq 1. +100 + + + +http---calf-sourceforge-net-plugins-MultiChorus::freq2 +gfloat +[10,20000] +rwx +Center Frq 2 +Center Frq 2. +5000 + + + +http---calf-sourceforge-net-plugins-MultiChorus::min-delay +gfloat +[0,1,10] +rwx +Min delay +Min delay. +5 + + + +http---calf-sourceforge-net-plugins-MultiChorus::mod-depth +gfloat +[0,1,10] +rwx +Mod depth +Mod depth. +6 + + + +http---calf-sourceforge-net-plugins-MultiChorus::mod-rate +gfloat +[0,01,20] +rwx +Modulation rate +Modulation rate. +0,5 + + + +http---calf-sourceforge-net-plugins-MultiChorus::q +gfloat +[0,125,8] +rwx +Q +Q. +0,125 + + + +http---calf-sourceforge-net-plugins-MultiChorus::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +180 + + + +http---calf-sourceforge-net-plugins-MultiChorus::voices +gint +[1,8] +rwx +Voices +Voices. +4 + + + +http---calf-sourceforge-net-plugins-MultiChorus::vphase +gfloat +[0,360] +rwx +Inter-voice phase +Inter-voice phase. +64 + + + +http---calf-sourceforge-net-plugins-MultiChorus::overlap +gfloat +[0,1] +rwx +Overlap +Overlap. +1 + + + +http---calf-sourceforge-net-plugins-Organ::adsr-a +gfloat +[1,20000] +rwx +EG1 Attack +EG1 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Organ::adsr-d +gfloat +[10,20000] +rwx +EG1 Decay +EG1 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Organ::adsr-r +gfloat +[10,20000] +rwx +EG1 Release +EG1 Release. +50 + + + +http---calf-sourceforge-net-plugins-Organ::adsr-s +gfloat +[0,1] +rwx +EG1 Sustain +EG1 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Organ::adsr-v +gfloat +[0,1] +rwx +EG1 VelMod +EG1 VelMod. +0 + + + +http---calf-sourceforge-net-plugins-Organ::adsr2-a +gfloat +[1,20000] +rwx +EG2 Attack +EG2 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Organ::adsr2-d +gfloat +[10,20000] +rwx +EG2 Decay +EG2 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Organ::adsr2-r +gfloat +[10,20000] +rwx +EG2 Release +EG2 Release. +50 + + + +http---calf-sourceforge-net-plugins-Organ::adsr2-s +gfloat +[0,1] +rwx +EG2 Sustain +EG2 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Organ::adsr2-v +gfloat +[0,1] +rwx +EG2 VelMod +EG2 VelMod. +0 + + + +http---calf-sourceforge-net-plugins-Organ::adsr3-a +gfloat +[1,20000] +rwx +EG3 Attack +EG3 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Organ::adsr3-d +gfloat +[10,20000] +rwx +EG3 Decay +EG3 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Organ::adsr3-r +gfloat +[10,20000] +rwx +EG3 Release +EG3 Release. +50 + + + +http---calf-sourceforge-net-plugins-Organ::adsr3-s +gfloat +[0,1] +rwx +EG3 Sustain +EG3 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Organ::adsr3-v +gfloat +[0,1] +rwx +EG3 VelMod +EG3 VelMod. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune +gfloat +[-100,100] +rwx +Detune +Detune. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune1 +gfloat +[-100,100] +rwx +Detune 1 +Detune 1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune2 +gfloat +[-100,100] +rwx +Detune 2 +Detune 2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune3 +gfloat +[-100,100] +rwx +Detune 3 +Detune 3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune4 +gfloat +[-100,100] +rwx +Detune 4 +Detune 4. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune5 +gfloat +[-100,100] +rwx +Detune 5 +Detune 5. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune6 +gfloat +[-100,100] +rwx +Detune 6 +Detune 6. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune7 +gfloat +[-100,100] +rwx +Detune 7 +Detune 7. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune8 +gfloat +[-100,100] +rwx +Detune 8 +Detune 8. +0 + + + +http---calf-sourceforge-net-plugins-Organ::detune9 +gfloat +[-100,100] +rwx +Detune 9 +Detune 9. +0 + + + +http---calf-sourceforge-net-plugins-Organ::eg1-amp-ctl +gint +[0,4] +rwx +EG1 To Amp +EG1 To Amp. +0 + + + +http---calf-sourceforge-net-plugins-Organ::eg2-amp-ctl +gint +[0,4] +rwx +EG2 To Amp +EG2 To Amp. +0 + + + +http---calf-sourceforge-net-plugins-Organ::eg3-amp-ctl +gint +[0,4] +rwx +EG3 To Amp +EG3 To Amp. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f1 +gint +[1,32] +rwx +Freq 1 +Freq 1. +1 + + + +http---calf-sourceforge-net-plugins-Organ::f1-cutoff +gfloat +[20,20000] +rwx +F1 Cutoff +F1 Cutoff. +2000 + + + +http---calf-sourceforge-net-plugins-Organ::f1-env1 +gfloat +[-10800,10800] +rwx +F1 Env1 +F1 Env1. +8000 + + + +http---calf-sourceforge-net-plugins-Organ::f1-env2 +gfloat +[-10800,10800] +rwx +F1 Env2 +F1 Env2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f1-env3 +gfloat +[-10800,10800] +rwx +F1 Env3 +F1 Env3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f1-keyf +gfloat +[0,2] +rwx +F1 KeyFollow +F1 KeyFollow. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f1-res +gfloat +[0,7,8] +rwx +F1 Res +F1 Res. +2 + + + +http---calf-sourceforge-net-plugins-Organ::f2 +gint +[1,32] +rwx +Freq 2 +Freq 2. +3 + + + +http---calf-sourceforge-net-plugins-Organ::f2-cutoff +gfloat +[20,20000] +rwx +F2 Cutoff +F2 Cutoff. +2000 + + + +http---calf-sourceforge-net-plugins-Organ::f2-env1 +gfloat +[-10800,10800] +rwx +F2 Env1 +F2 Env1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f2-env2 +gfloat +[-10800,10800] +rwx +F2 Env2 +F2 Env2. +8000 + + + +http---calf-sourceforge-net-plugins-Organ::f2-env3 +gfloat +[-10800,10800] +rwx +F2 Env3 +F2 Env3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f2-keyf +gfloat +[0,2] +rwx +F2 KeyFollow +F2 KeyFollow. +0 + + + +http---calf-sourceforge-net-plugins-Organ::f2-res +gfloat +[0,7,8] +rwx +F2 Res +F2 Res. +2 + + + +http---calf-sourceforge-net-plugins-Organ::f3 +gint +[1,32] +rwx +Freq 3 +Freq 3. +2 + + + +http---calf-sourceforge-net-plugins-Organ::f4 +gint +[1,32] +rwx +Freq 4 +Freq 4. +4 + + + +http---calf-sourceforge-net-plugins-Organ::f5 +gint +[1,32] +rwx +Freq 5 +Freq 5. +6 + + + +http---calf-sourceforge-net-plugins-Organ::f6 +gint +[1,32] +rwx +Freq 6 +Freq 6. +8 + + + +http---calf-sourceforge-net-plugins-Organ::f7 +gint +[1,32] +rwx +Freq 7 +Freq 7. +10 + + + +http---calf-sourceforge-net-plugins-Organ::f8 +gint +[1,32] +rwx +Freq 8 +Freq 8. +12 + + + +http---calf-sourceforge-net-plugins-Organ::f9 +gint +[1,32] +rwx +Freq 9 +Freq 9. +16 + + + +http---calf-sourceforge-net-plugins-Organ::filter-chain +gint +[0,1] +rwx +Filter 1 To +Filter 1 To. +0 + + + +http---calf-sourceforge-net-plugins-Organ::foldnote +gint +[0,127] +rwx +Foldover +Foldover. +96 + + + +http---calf-sourceforge-net-plugins-Organ::l1 +gfloat +[0,8] +rwx +16' +16'. +8 + + + +http---calf-sourceforge-net-plugins-Organ::l2 +gfloat +[0,8] +rwx +5 1/3' +5 1/3'. +8 + + + +http---calf-sourceforge-net-plugins-Organ::l3 +gfloat +[0,8] +rwx +8' +8'. +8 + + + +http---calf-sourceforge-net-plugins-Organ::l4 +gfloat +[0,8] +rwx +4' +4'. +0 + + + +http---calf-sourceforge-net-plugins-Organ::l5 +gfloat +[0,8] +rwx +2 2/3' +2 2/3'. +0 + + + +http---calf-sourceforge-net-plugins-Organ::l6 +gfloat +[0,8] +rwx +2' +2'. +0 + + + +http---calf-sourceforge-net-plugins-Organ::l7 +gfloat +[0,8] +rwx +1 3/5' +1 3/5'. +0 + + + +http---calf-sourceforge-net-plugins-Organ::l8 +gfloat +[0,8] +rwx +1 1/3' +1 1/3'. +0 + + + +http---calf-sourceforge-net-plugins-Organ::l9 +gfloat +[0,8] +rwx +1' +1'. +8 + + + +http---calf-sourceforge-net-plugins-Organ::master +gfloat +[0,1] +rwx +Volume +Volume. +0,1 + + + +http---calf-sourceforge-net-plugins-Organ::pan1 +gfloat +[-1,1] +rwx +Pan 1 +Pan 1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan2 +gfloat +[-1,1] +rwx +Pan 2 +Pan 2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan3 +gfloat +[-1,1] +rwx +Pan 3 +Pan 3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan4 +gfloat +[-1,1] +rwx +Pan 4 +Pan 4. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan5 +gfloat +[-1,1] +rwx +Pan 5 +Pan 5. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan6 +gfloat +[-1,1] +rwx +Pan 6 +Pan 6. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan7 +gfloat +[-1,1] +rwx +Pan 7 +Pan 7. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan8 +gfloat +[-1,1] +rwx +Pan 8 +Pan 8. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pan9 +gfloat +[-1,1] +rwx +Pan 9 +Pan 9. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-decay +gfloat +[10,3000] +rwx +P: Carrier Decay +P: Carrier Decay. +200 + + + +http---calf-sourceforge-net-plugins-Organ::perc-fm-decay +gfloat +[10,3000] +rwx +P: Modulator Decay +P: Modulator Decay. +200 + + + +http---calf-sourceforge-net-plugins-Organ::perc-fm-depth +gfloat +[0,4] +rwx +P: FM Depth +P: FM Depth. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-fm-harmonic +gint +[1,32] +rwx +P: Modulator Frq +P: Modulator Frq. +6 + + + +http---calf-sourceforge-net-plugins-Organ::perc-fm-waveform +gint +[0,27] +rwx +P: Modulator Wave +P: Modulator Wave. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-harmonic +gint +[1,32] +rwx +P: Carrier Frq +P: Carrier Frq. +6 + + + +http---calf-sourceforge-net-plugins-Organ::perc-level +gfloat +[0,1] +rwx +P: Level +P: Level. +0,25 + + + +http---calf-sourceforge-net-plugins-Organ::perc-stereo +gfloat +[0,360] +rwx +P: Stereo Phase +P: Stereo Phase. +90 + + + +http---calf-sourceforge-net-plugins-Organ::perc-trigger +gint +[0,3] +rwx +P: Trigger +P: Trigger. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-vel2amp +gfloat +[0,1] +rwx +P: Vel->Amp +P: Vel->Amp. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-vel2fm +gfloat +[0,1] +rwx +P: Vel->FM +P: Vel->FM. +0 + + + +http---calf-sourceforge-net-plugins-Organ::perc-waveform +gint +[0,27] +rwx +P: Carrier Wave +P: Carrier Wave. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase1 +gfloat +[0,360] +rwx +Phase 1 +Phase 1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase2 +gfloat +[0,360] +rwx +Phase 2 +Phase 2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase3 +gfloat +[0,360] +rwx +Phase 3 +Phase 3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase4 +gfloat +[0,360] +rwx +Phase 4 +Phase 4. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase5 +gfloat +[0,360] +rwx +Phase 5 +Phase 5. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase6 +gfloat +[0,360] +rwx +Phase 6 +Phase 6. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase7 +gfloat +[0,360] +rwx +Phase 7 +Phase 7. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase8 +gfloat +[0,360] +rwx +Phase 8 +Phase 8. +0 + + + +http---calf-sourceforge-net-plugins-Organ::phase9 +gfloat +[0,360] +rwx +Phase 9 +Phase 9. +0 + + + +http---calf-sourceforge-net-plugins-Organ::polyphony +gint +[1,32] +rwx +Polyphony +Polyphony. +16 + + + +http---calf-sourceforge-net-plugins-Organ::quad-env +gboolean + +rwx +Quadratic AmpEnv +Quadratic AmpEnv. +FALSE + + + +http---calf-sourceforge-net-plugins-Organ::routing1 +gint +[0,2] +rwx +Routing 1 +Routing 1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing2 +gint +[0,2] +rwx +Routing 2 +Routing 2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing3 +gint +[0,2] +rwx +Routing 3 +Routing 3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing4 +gint +[0,2] +rwx +Routing 4 +Routing 4. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing5 +gint +[0,2] +rwx +Routing 5 +Routing 5. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing6 +gint +[0,2] +rwx +Routing 6 +Routing 6. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing7 +gint +[0,2] +rwx +Routing 7 +Routing 7. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing8 +gint +[0,2] +rwx +Routing 8 +Routing 8. +0 + + + +http---calf-sourceforge-net-plugins-Organ::routing9 +gint +[0,2] +rwx +Routing 9 +Routing 9. +0 + + + +http---calf-sourceforge-net-plugins-Organ::transpose +gint +[-24,24] +rwx +Transpose +Transpose. +-12 + + + +http---calf-sourceforge-net-plugins-Organ::vib-amt +gfloat +[0,1] +rwx +Vib Mod Amt +Vib Mod Amt. +0,5 + + + +http---calf-sourceforge-net-plugins-Organ::vib-mode +gint +[0,5] +rwx +Vib Mode +Vib Mode. +5 + + + +http---calf-sourceforge-net-plugins-Organ::vib-phase +gfloat +[0,360] +rwx +Vib Stereo +Vib Stereo. +180 + + + +http---calf-sourceforge-net-plugins-Organ::vib-rate +gfloat +[0,01,80] +rwx +Vib Rate +Vib Rate. +6,6 + + + +http---calf-sourceforge-net-plugins-Organ::vib-wet +gfloat +[0,1] +rwx +Vib Wet +Vib Wet. +0,5 + + + +http---calf-sourceforge-net-plugins-Organ::w1 +gint +[0,35] +rwx +Wave 1 +Wave 1. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w2 +gint +[0,35] +rwx +Wave 2 +Wave 2. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w3 +gint +[0,35] +rwx +Wave 3 +Wave 3. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w4 +gint +[0,35] +rwx +Wave 4 +Wave 4. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w5 +gint +[0,35] +rwx +Wave 5 +Wave 5. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w6 +gint +[0,35] +rwx +Wave 6 +Wave 6. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w7 +gint +[0,35] +rwx +Wave 7 +Wave 7. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w8 +gint +[0,35] +rwx +Wave 8 +Wave 8. +0 + + + +http---calf-sourceforge-net-plugins-Organ::w9 +gint +[0,35] +rwx +Wave 9 +Wave 9. +0 + + + +http---calf-sourceforge-net-plugins-Organ::bass-freq +gfloat +[20,20000] +rwx +Bass Freq +Bass Freq. +80 + + + +http---calf-sourceforge-net-plugins-Organ::bass-gain +gfloat +[0,1,10] +rwx +Bass Gain +Bass Gain. +1 + + + +http---calf-sourceforge-net-plugins-Organ::filter1-type +gint +[0,1] +rwx +Filter 1 Type +Filter 1 Type. +0 + + + +http---calf-sourceforge-net-plugins-Organ::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +http---calf-sourceforge-net-plugins-Organ::treble-freq +gfloat +[20,20000] +rwx +Treble Freq +Treble Freq. +12000 + + + +http---calf-sourceforge-net-plugins-Organ::treble-gain +gfloat +[0,1,10] +rwx +Treble Gain +Treble Gain. +1 + + + +http---calf-sourceforge-net-plugins-Organ::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-plugins-Phaser::amount +gfloat +[0,4] +rwx +Amount +Amount. +1 + + + +http---calf-sourceforge-net-plugins-Phaser::base-freq +gfloat +[20,20000] +rwx +Center Freq +Center Freq. +1000 + + + +http---calf-sourceforge-net-plugins-Phaser::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +http---calf-sourceforge-net-plugins-Phaser::feedback +gfloat +[-0,99,0,99] +rwx +Feedback +Feedback. +0,25 + + + +http---calf-sourceforge-net-plugins-Phaser::mod-depth +gfloat +[0,10800] +rwx +Mod depth +Mod depth. +4000 + + + +http---calf-sourceforge-net-plugins-Phaser::mod-rate +gfloat +[0,01,20] +rwx +Mod rate +Mod rate. +0,25 + + + +http---calf-sourceforge-net-plugins-Phaser::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +http---calf-sourceforge-net-plugins-Phaser::stages +gint +[1,12] +rwx +# Stages +# Stages. +6 + + + +http---calf-sourceforge-net-plugins-Phaser::stereo +gfloat +[0,360] +rwx +Stereo phase +Stereo phase. +180 + + + +http---calf-sourceforge-net-plugins-Reverb::amount +gfloat +[0,2] +rwx +Wet Amount +Wet Amount. +0,25 + + + +http---calf-sourceforge-net-plugins-Reverb::bass-cut +gfloat +[20,20000] +rwx +Bass Cut +Bass Cut. +300 + + + +http---calf-sourceforge-net-plugins-Reverb::decay-time +gfloat +[0,4,15] +rwx +Decay time +Decay time. +1,5 + + + +http---calf-sourceforge-net-plugins-Reverb::diffusion +gfloat +[0,1] +rwx +Diffusion +Diffusion. +0,5 + + + +http---calf-sourceforge-net-plugins-Reverb::dry +gfloat +[0,2] +rwx +Dry Amount +Dry Amount. +1 + + + +http---calf-sourceforge-net-plugins-Reverb::hf-damp +gfloat +[2000,20000] +rwx +High Frq Damp +High Frq Damp. +5000 + + + +http---calf-sourceforge-net-plugins-Reverb::predelay +gfloat +[0,50] +rwx +Pre Delay +Pre Delay. +0 + + + +http---calf-sourceforge-net-plugins-Reverb::room-size +gint +[0,5] +rwx +Room size +Room size. +2 + + + +http---calf-sourceforge-net-plugins-Reverb::treble-cut +gfloat +[20,20000] +rwx +Treble Cut +Treble Cut. +5000 + + + +http---calf-sourceforge-net-plugins-Reverb::clip +gfloat +[0,1] +r +0dB +0dB. +0 + + + +http---calf-sourceforge-net-plugins-Reverb::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +http---calf-sourceforge-net-plugins-Reverb::meter-wet +gfloat +[0,1] +r +Wet amount +Wet amount. +0 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::bass-speed +gfloat +[10,600] +rwx +Bass Motor +Bass Motor. +30 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::mic-distance +gfloat +[0,1] +rwx +Mic Distance +Mic Distance. +0,7 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::mod-depth +gfloat +[0,1] +rwx +Mod Depth +Mod Depth. +0,1 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::reflection +gfloat +[0,1] +rwx +Reflection +Reflection. +0,3 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::shift +gfloat +[0,1] +rwx +Tap Offset +Tap Offset. +0,5 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::spacing +gfloat +[0,1] +rwx +Tap Spacing +Tap Spacing. +0,5 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::treble-speed +gfloat +[10,600] +rwx +Treble Motor +Treble Motor. +36 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::vib-speed +gint +[0,5] +rwx +Speed Mode +Speed Mode. +5 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::meter-h +gfloat +[0,1] +r +High rotor +High rotor. +0 + + + +http---calf-sourceforge-net-plugins-RotarySpeaker::meter-l +gfloat +[0,1] +r +Low rotor +Low rotor. +0 + + + +http---calf-sourceforge-net-plugins-VintageDelay::amount +gfloat +[0,4] +rwx +Amount +Amount. +0,25 + + + +http---calf-sourceforge-net-plugins-VintageDelay::bpm +gfloat +[30,300] +rwx +Tempo +Tempo. +120 + + + +http---calf-sourceforge-net-plugins-VintageDelay::dry +gfloat +[0,4] +rwx +Dry Amount +Dry Amount. +1 + + + +http---calf-sourceforge-net-plugins-VintageDelay::feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0,5 + + + +http---calf-sourceforge-net-plugins-VintageDelay::medium +gint +[0,2] +rwx +Medium +Medium. +1 + + + +http---calf-sourceforge-net-plugins-VintageDelay::mix-mode +gint +[0,1] +rwx +Mix mode +Mix mode. +1 + + + +http---calf-sourceforge-net-plugins-VintageDelay::subdiv +gint +[1,16] +rwx +Subdivide +Subdivide. +4 + + + +http---calf-sourceforge-net-plugins-VintageDelay::time-l +gint +[1,16] +rwx +Time L +Time L. +3 + + + +http---calf-sourceforge-net-plugins-VintageDelay::time-r +gint +[1,16] +rwx +Time R +Time R. +5 + + + +frei0r-filter-threshold0r::threshold +gdouble + +rw +Threshold +The threshold. +0 + + + +frei0r-filter-glow::blur +gdouble + +rw +Blur +Blur of the glow. +0 + + + +frei0r-filter-color-distance::color-b +gfloat +[0,1] +rw +Color +The Source Color. +0.5 + + + +frei0r-filter-color-distance::color-g +gfloat +[0,1] +rw +Color +The Source Color. +0.5 + + + +frei0r-filter-color-distance::color-r +gfloat +[0,1] +rw +Color-R +The Source Color. +0.5 + + + +frei0r-filter-water::distort +gboolean + +rw +distort +distort all surface like dropping a bucket to the floor. +FALSE + + + +frei0r-filter-water::physics +gdouble + +rw +physics +water density: from 1 to 4. +4.77831e-299 + + + +frei0r-filter-water::rain +gboolean + +rw +rain +rain drops all over. +FALSE + + + +frei0r-filter-water::randomize-swirl +gboolean + +rw +randomize_swirl +randomize the swirling angle. +FALSE + + + +frei0r-filter-water::smooth +gboolean + +rw +smooth +smooth up all perturbations on the surface. +FALSE + + + +frei0r-filter-water::splash-Y +gdouble +[0,1] +rw +splash +make a big splash in the center. +0 + + + +frei0r-filter-water::splash-x +gdouble +[0,1] +rw +splash +make a big splash in the center. +4.77831e-299 + + + +frei0r-filter-water::surfer +gboolean + +rw +surfer +surf the surface with a wandering finger. +FALSE + + + +frei0r-filter-water::swirl +gboolean + +rw +swirl +swirling whirpool in the center. +FALSE + + + +frei0r-src-lissajous0r::ratiox +gdouble + +rw +ratiox +x-ratio. +1.87849e-316 + + + +frei0r-src-lissajous0r::ratioy +gdouble + +rw +ratioy +y-ratio. +8.52263e-321 + + + +frei0r-filter-delay0r::delaytime +gdouble + +rw +DelayTime +the delay time. +0 + + + +frei0r-filter-cartoon::diffspace +gdouble + +rw +diffspace +difference space: a value from 0 to 256. +1 + + + +frei0r-filter-cartoon::triplevel +gdouble + +rw +triplevel +level of trip: use high numbers, incremented by 100. +1000 + + + +frei0r-src-onecol0r::color-b +gfloat +[0,1] +rw +Color +the color of the image. +0 + + + +frei0r-src-onecol0r::color-g +gfloat +[0,1] +rw +Color +the color of the image. +0 + + + +frei0r-src-onecol0r::color-r +gfloat +[0,1] +rw +Color-R +the color of the image. +1.44112e-37 + + + +frei0r-filter-lens-correction::brightness +gdouble + +rw +brightness + +0.5 + + + +frei0r-filter-lens-correction::correctionnearcenter +gdouble + +rw +correctionnearcenter + +0.5 + + + +frei0r-filter-lens-correction::correctionnearedges +gdouble + +rw +correctionnearedges + +0.5 + + + +frei0r-filter-lens-correction::xcenter +gdouble + +rw +xcenter + +0.5 + + + +frei0r-filter-lens-correction::ycenter +gdouble + +rw +ycenter + +0.5 + + + +frei0r-filter-brightness::brightness +gdouble + +rw +Brightness +The brightness value. +0.5 + + + +frei0r-filter-contrast0r::contrast +gdouble + +rw +Contrast +The contrast value. +0.5 + + + +frei0r-src-ising0r::border-growth +gdouble + +rw +Border Growth +Border Growth. +1 + + + +frei0r-src-ising0r::spontaneous-growth +gdouble + +rw +Spontaneous Growth +Spontaneous Growth. +1 + + + +frei0r-src-ising0r::temperature +gdouble + +rw +Temperature +Noise Temperature. +0 + + + +frei0r-filter-pixeliz0r::blocksizex +gdouble + +rw +BlockSizeX +Horizontal size of one "pixel". +0.021875 + + + +frei0r-filter-pixeliz0r::blocksizey +gdouble + +rw +BlockSizeY +Vertical size of one "pixel". +0.0291667 + + + +frei0r-filter-3dflippo::center-position--x- +gdouble + +rw +Center position (X) +Position of the center of rotation on the X axis. +0 + + + +frei0r-filter-3dflippo::center-position--y- +gdouble + +rw +Center position (Y) +Position of the center of rotation on the Y axis. +0 + + + +frei0r-filter-3dflippo::don-t-blank-mask +gboolean + +rw +Don't blank mask +Mask for frame transposition is not blanked, so a trace of old transpositions is maintained. +FALSE + + + +frei0r-filter-3dflippo::fill-with-image-or-black +gboolean + +rw +Fill with image or black +If true, pixels that are not transposed are black, otherwise, they are copied with the original. +FALSE + + + +frei0r-filter-3dflippo::invert-rotation-assignment +gboolean + +rw +Invert rotation assignment +If true, when mapping rotation, make inverted (wrong) assignment. +FALSE + + + +frei0r-filter-3dflippo::x-axis-rotation +gdouble + +rw +X axis rotation +Rotation on the X axis. +0.5 + + + +frei0r-filter-3dflippo::x-axis-rotation-rate +gdouble + +rw +X axis rotation rate +Rotation rate on the X axis. +0.5 + + + +frei0r-filter-3dflippo::y-axis-rotation +gdouble + +rw +Y axis rotation +Rotation on the Y axis. +0.5 + + + +frei0r-filter-3dflippo::y-axis-rotation-rate +gdouble + +rw +Y axis rotation rate +Rotation rate on the Y axis. +0.5 + + + +frei0r-filter-3dflippo::z-axis-rotation +gdouble + +rw +Z axis rotation +Rotation on the Z axis. +0.5 + + + +frei0r-filter-3dflippo::z-axis-rotation-rate +gdouble + +rw +Z axis rotation rate +Rotation rate on the Z axis. +0.5 + + + +frei0r-filter-mask0mate::blur +gdouble + +rw +Blur +Blur the outline of the mask. +0 + + + +frei0r-filter-mask0mate::bottom +gdouble + +rw +Bottom + +0.2 + + + +frei0r-filter-mask0mate::invert +gboolean + +rw +Invert +Invert the mask, creates a hole in the frame. +FALSE + + + +frei0r-filter-mask0mate::left +gdouble + +rw +Left + +0.2 + + + +frei0r-filter-mask0mate::right +gdouble + +rw +Right + +0.2 + + + +frei0r-filter-mask0mate::top +gdouble + +rw +Top + +0.2 + + + +frei0r-filter-saturat0r::saturation +gdouble + +rw +Saturation +The saturation value. +0 + + + +frei0r-filter-gamma::gamma +gdouble + +rw +Gamma +The gamma value. +1 + + + +frei0r-filter-hueshift0r::hue +gdouble + +rw +Hue +The shift value. +0 + + + +frei0r-filter-edgeglow::lredscale +gdouble + +rw +lredscale +multiplier for downscaling non-edge brightness. +1.2957e-318 + + + +frei0r-filter-edgeglow::lthresh +gdouble + +rw +lthresh +threshold for edge lightening. +6.9235e+228 + + + +frei0r-filter-edgeglow::lupscale +gdouble + +rw +lupscale +multiplier for upscaling edge brightness. +1.36347e+161 + + + +frei0r-filter-k-means-clustering::dist-weight +gdouble + +rw +Dist weight +The weight on distance. +0.5 + + + +frei0r-filter-k-means-clustering::num +gdouble + +rw +Num +The number of clusters. +0.5 + + + +frei0r-filter-white-balance::green-tint +gdouble + +rw +Green Tint +Adjust the level of green. +1.2 + + + +frei0r-filter-white-balance::neutral-color-b +gfloat +[0,1] +rw +Neutral Color +Choose a color from the source image that should be white. +1 + + + +frei0r-filter-white-balance::neutral-color-g +gfloat +[0,1] +rw +Neutral Color +Choose a color from the source image that should be white. +1 + + + +frei0r-filter-white-balance::neutral-color-r +gfloat +[0,1] +rw +Neutral Color-R +Choose a color from the source image that should be white. +1 + + + +frei0r-filter-perspective::bottom-left-Y +gdouble +[0,1] +rw +Bottom Left + +1 + + + +frei0r-filter-perspective::bottom-left-x +gdouble +[0,1] +rw +Bottom Left + +0 + + + +frei0r-filter-perspective::bottom-right-Y +gdouble +[0,1] +rw +Bottom Right + +1 + + + +frei0r-filter-perspective::bottom-right-x +gdouble +[0,1] +rw +Bottom Right + +1 + + + +frei0r-filter-perspective::top-left-Y +gdouble +[0,1] +rw +Top Left + +0 + + + +frei0r-filter-perspective::top-left-x +gdouble +[0,1] +rw +Top Left + +0 + + + +frei0r-filter-perspective::top-right-Y +gdouble +[0,1] +rw +Top Right + +0 + + + +frei0r-filter-perspective::top-right-x +gdouble +[0,1] +rw +Top Right + +1 + + + +frei0r-filter-flippo::x-axis +gboolean + +rw +X axis +Flipping on the horizontal axis. +FALSE + + + +frei0r-filter-flippo::y-axis +gboolean + +rw +Y axis +Flipping on the vertical axis. +FALSE + + + +frei0r-mixer-blend::blend +gdouble + +rw +blend +blend factor. +4.77831e-299 + + + +frei0r-mixer-xfade0r::fader +gdouble + +rw +fader +the fader position. +0 + + + +frei0r-src-partik0l::down +gdouble + +rw +down +blossom on a lower prime number. +0 + + + +frei0r-src-partik0l::up +gdouble + +rw +up +blossom on a higher prime number. +0 + + + +frei0r-filter-tehroxx0r::interval +gdouble + +rw +Interval +Changing speed of small blocks. +0.01 + + + +frei0r-filter-letterb0xed::border-width +gdouble + +rw +Border Width + +0.4 + + + +frei0r-filter-letterb0xed::transparency +gboolean + +rw +Transparency + +FALSE + + + +frei0r-filter-squareblur::kernel-size +gdouble + +rw +Kernel size +The size of the kernel, as a proportion to its coverage of the image. +0 + + + +frei0r-filter-distort0r::amplitude +gdouble + +rw +Amplitude +The amplitude of the plasma signal. +1 + + + +frei0r-filter-distort0r::frequency +gdouble + +rw +Frequency +The frequency of the plasma signal. +0.005 + + + +frei0r-filter-transparency::transparency +gdouble + +rw +Transparency +The transparency value. +0 + + + +frei0r-filter-scale0tilt::clip-bottom +gdouble + +rw +Clip bottom + +0 + + + +frei0r-filter-scale0tilt::clip-left +gdouble + +rw +Clip left + +0 + + + +frei0r-filter-scale0tilt::clip-right +gdouble + +rw +Clip right + +0 + + + +frei0r-filter-scale0tilt::clip-top +gdouble + +rw +Clip top + +0 + + + +frei0r-filter-scale0tilt::scale-x +gdouble + +rw +Scale X + +0.5 + + + +frei0r-filter-scale0tilt::scale-y +gdouble + +rw +Scale Y + +0.5 + + + +frei0r-filter-scale0tilt::tilt-x +gdouble + +rw +Tilt X + +0.5 + + + +frei0r-filter-scale0tilt::tilt-y +gdouble + +rw +Tilt Y + +0.5 + + + +frei0r-filter-nosync0r::hsync +gdouble + +rw +HSync +the hsync offset. +1 + + + +GstAsfMux::is-live +gboolean + +rw +Is Live (deprecated) +Deprecated in 0.10.20, use 'streamable' instead. +FALSE + + + +GstAsfMux::merge-stream-tags +gboolean + +rwx +Merge Stream Tags +If the stream metadata (received as events in the sink) should be merged to the main file metadata. +TRUE + + + +GstAsfMux::packet-size +guint +>= 18 +rwx +Packet size +The ASF packets size (bytes). +4800 + + + +GstAsfMux::padding +guint64 + +rwx +Padding +Size of the padding object to be added to the end of the header. If this less than 24 (the smaller size of an ASF object), no padding is added. +0 + + + +GstAsfMux::preroll +guint64 + +rwx +Preroll +The preroll time (milisecs). +5000 + + + +GstAsfMux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstVdpMpegDec::display +gchar* + +rwx +Display +X Display name. +NULL + + + +GstVdpYUVVideo::display +gchar* + +rwx +Display +X Display name. +NULL + + + +GstKateDec::category +gchar* + +r +Category +The category of the stream. +"" + + + +GstKateDec::language +gchar* + +r +Language +The language of the stream. +"" + + + +GstKateDec::original-canvas-height +gint +>= 0 +r +Original canvas height +The canvas height this stream was authored for (0 is unspecified). +0 + + + +GstKateDec::original-canvas-width +gint +>= 0 +r +Original canvas width (0 is unspecified) +The canvas width this stream was authored for. +0 + + + +GstKateDec::remove-markup +gboolean + +rw +Remove markup +Remove markup from decoded text ?. +FALSE + + + +GstKateEnc::category +gchar* + +rw +Category +The category of the stream. +"" + + + +GstKateEnc::default-spu-duration +gfloat +>= 0 +rw +Default SPU duration +The assumed max duration (in seconds) of SPUs with no duration specified. +1.5 + + + +GstKateEnc::granule-rate-denominator +gint +>= 1 +rw +Granule rate denominator +The denominator of the granule rate. +1000 + + + +GstKateEnc::granule-rate-numerator +gint +>= 1 +rw +Granule rate numerator +The numerator of the granule rate. +1 + + + +GstKateEnc::granule-shift +gint +[0,64] +rw +Granule shift +The granule shift. +32 + + + +GstKateEnc::keepalive-min-time +gfloat +>= 0 +rw +Keepalive mimimum time +Minimum time to emit keepalive packets (0 disables keepalive packets). +2.5 + + + +GstKateEnc::language +gchar* + +rw +Language +The language of the stream (e.g. "fr" or "fr_FR" for French). +"" + + + +GstKateEnc::original-canvas-height +gint +>= 0 +rw +Original canvas height +The height of the canvas this stream was authored for (0 is unspecified). +0 + + + +GstKateEnc::original-canvas-width +gint +>= 0 +rw +Original canvas width +The width of the canvas this stream was authored for (0 is unspecified). +0 + + + +GstKateTag::category +gchar* + +rw +Category +Set the category of the stream. +"" + + + +GstKateTag::language +gchar* + +rw +Language +Set the language of the stream. +"" + + + +GstKateTag::original-canvas-height +gint +>= 0 +rw +Original canvas height +Set the height of the canvas this stream was authored for (0 is unspecified). +0 + + + +GstKateTag::original-canvas-width +gint +>= 0 +rw +Original canvas width +Set the width of the canvas this stream was authored for (0 is unspecified). +0 + + + +GstKateTiger::category +gchar* + +r +Category +The category of the stream. +"" + + + +GstKateTiger::default-background-alpha +gint +[0,255] +rw +Default background color (alpha component) +Default background color (alpha component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-background-blue +gint +[0,255] +rw +Default background color (blue component) +Default background color (blue component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-background-green +gint +[0,255] +rw +Default background color (green component) +Default background color (green component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-background-red +gint +[0,255] +rw +Default background color (red component) +Default background color (red component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-font-alpha +gint +[0,255] +rw +Default font color (alpha component) +Default font color (alpha component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-font-blue +gint +[0,255] +rw +Default font color (blue component) +Default font color (blue component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-font-desc +gchar* + +rw +Default font description +Default font description (Pango style) to render text with. +"" + + + +GstKateTiger::default-font-effect +GstFontEffect + +rwx +Default font effect +Whether to apply an effect to text by default, for increased readability. +outline + + + +GstKateTiger::default-font-effect-strength +gdouble +[0,1] +rw +Default font effect strength +How pronounced should the font effect be (effect dependent). +0.5 + + + +GstKateTiger::default-font-green +gint +[0,255] +rw +Default font color (green component) +Default font color (green component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::default-font-red +gint +[0,255] +rw +Default font color (red component) +Default font color (red component, between 0 and 255) to render text with. +255 + + + +GstKateTiger::language +gchar* + +r +Language +The language of the stream. +"" + + + +GstKateTiger::original-canvas-height +gint +>= 0 +r +Original canvas height +The canvas height this stream was authored for (0 is unspecified). +0 + + + +GstKateTiger::original-canvas-width +gint +>= 0 +r +Original canvas width (0 is unspecified) +The canvas width this stream was authored for. +0 + + + +GstKateTiger::quality +gdouble +[0,1] +rw +Rendering quality +Rendering quality (0 is faster, 1 is best and slower). +1 + + + +GstSchroEnc::au-distance +gint +>= 1 +rw +au_distance +au_distance. +120 + + + +GstSchroEnc::bitrate +gint +>= 0 +rw +bitrate +bitrate. +0 + + + +GstSchroEnc::buffer-level +gint +>= 0 +rw +buffer_level +buffer_level. +0 + + + +GstSchroEnc::buffer-size +gint +>= 0 +rw +buffer_size +buffer_size. +0 + + + +GstSchroEnc::enable-bigblock-estimation +gboolean + +rw +enable_bigblock_estimation +enable_bigblock_estimation. +TRUE + + + +GstSchroEnc::enable-dc-multiquant +gboolean + +rw +enable_dc_multiquant +enable_dc_multiquant. +FALSE + + + +GstSchroEnc::enable-fullscan-estimation +gboolean + +rw +enable_fullscan_estimation +enable_fullscan_estimation. +FALSE + + + +GstSchroEnc::enable-global-motion +gboolean + +rw +enable_global_motion +enable_global_motion. +FALSE + + + +GstSchroEnc::enable-hierarchical-estimation +gboolean + +rw +enable_hierarchical_estimation +enable_hierarchical_estimation. +TRUE + + + +GstSchroEnc::enable-internal-testing +gboolean + +rw +enable_internal_testing +enable_internal_testing. +FALSE + + + +GstSchroEnc::enable-md5 +gboolean + +rw +enable_md5 +enable_md5. +FALSE + + + +GstSchroEnc::enable-multiquant +gboolean + +rw +enable_multiquant +enable_multiquant. +FALSE + + + +GstSchroEnc::enable-noarith +gboolean + +rw +enable_noarith +enable_noarith. +FALSE + + + +GstSchroEnc::enable-phasecorr-estimation +gboolean + +rw +enable_phasecorr_estimation +enable_phasecorr_estimation. +FALSE + + + +GstSchroEnc::enable-psnr +gboolean + +rw +enable_psnr +enable_psnr. +FALSE + + + +GstSchroEnc::enable-ssim +gboolean + +rw +enable_ssim +enable_ssim. +FALSE + + + +GstSchroEnc::enable-zero-estimation +gboolean + +rw +enable_zero_estimation +enable_zero_estimation. +FALSE + + + +GstSchroEnc::filter-value +gdouble +[0,100] +rw +filter_value +filter_value. +5 + + + +GstSchroEnc::filtering +SchroEncoderSettingEnum_filtering + +rw +filtering +filtering. +none + + + +GstSchroEnc::gop-structure +SchroEncoderSettingEnum_gop_structure + +rw +gop_structure +gop_structure. +adaptive + + + +GstSchroEnc::horiz-slices +gint +>= 0 +rw +horiz_slices +horiz_slices. +0 + + + +GstSchroEnc::inter-wavelet +SchroEncoderSettingEnum_inter_wavelet + +rw +inter_wavelet +inter_wavelet. +desl_dubuc_9_7 + + + +GstSchroEnc::interlaced-coding +gboolean + +rw +interlaced_coding +interlaced_coding. +FALSE + + + +GstSchroEnc::intra-wavelet +SchroEncoderSettingEnum_intra_wavelet + +rw +intra_wavelet +intra_wavelet. +desl_dubuc_9_7 + + + +GstSchroEnc::level +gint +[0,0] +rw +level +level. +0 + + + +GstSchroEnc::magic-allocation-scale +gdouble +[0,1000] +rw +magic_allocation_scale +magic_allocation_scale. +1.1 + + + +GstSchroEnc::magic-badblock-multiplier-nonref +gdouble +[0,1000] +rw +magic_badblock_multiplier_nonref +magic_badblock_multiplier_nonref. +4 + + + +GstSchroEnc::magic-badblock-multiplier-ref +gdouble +[0,1000] +rw +magic_badblock_multiplier_ref +magic_badblock_multiplier_ref. +8 + + + +GstSchroEnc::magic-bailout-weight +gdouble +[0,1000] +rw +magic_bailout_weight +magic_bailout_weight. +4 + + + +GstSchroEnc::magic-block-search-threshold +gdouble +[0,1000] +rw +magic_block_search_threshold +magic_block_search_threshold. +15 + + + +GstSchroEnc::magic-chroma-lambda-scale +gdouble +[0,1000] +rw +magic_chroma_lambda_scale +magic_chroma_lambda_scale. +0.1 + + + +GstSchroEnc::magic-dc-metric-offset +gdouble +[0,1000] +rw +magic_dc_metric_offset +magic_dc_metric_offset. +1 + + + +GstSchroEnc::magic-error-power +gdouble +[0,1000] +rw +magic_error_power +magic_error_power. +4 + + + +GstSchroEnc::magic-inter-b-weight +gdouble +[0,1000] +rw +magic_inter_b_weight +magic_inter_b_weight. +0.2 + + + +GstSchroEnc::magic-inter-p-weight +gdouble +[0,1000] +rw +magic_inter_p_weight +magic_inter_p_weight. +1.5 + + + +GstSchroEnc::magic-keyframe-weight +gdouble +[0,1000] +rw +magic_keyframe_weight +magic_keyframe_weight. +7.5 + + + +GstSchroEnc::magic-lambda +gdouble +[0,1000] +rw +magic_lambda +magic_lambda. +1 + + + +GstSchroEnc::magic-mc-bailout-limit +gdouble +[0,1000] +rw +magic_mc_bailout_limit +magic_mc_bailout_limit. +0.5 + + + +GstSchroEnc::magic-mc-lambda +gdouble +[0,1000] +rw +magic_mc_lambda +magic_mc_lambda. +0.1 + + + +GstSchroEnc::magic-nonref-lambda-scale +gdouble +[0,1000] +rw +magic_nonref_lambda_scale +magic_nonref_lambda_scale. +0.01 + + + +GstSchroEnc::magic-scene-change-threshold +gdouble +[0,1000] +rw +magic_scene_change_threshold +magic_scene_change_threshold. +3 + + + +GstSchroEnc::magic-subband0-lambda-scale +gdouble +[0,1000] +rw +magic_subband0_lambda_scale +magic_subband0_lambda_scale. +10 + + + +GstSchroEnc::magic-subgroup-length +gdouble +[1,10] +rw +magic_subgroup_length +magic_subgroup_length. +4 + + + +GstSchroEnc::max-bitrate +gint +>= 0 +rw +max_bitrate +max_bitrate. +13824000 + + + +GstSchroEnc::min-bitrate +gint +>= 0 +rw +min_bitrate +min_bitrate. +13824000 + + + +GstSchroEnc::motion-block-overlap +SchroEncoderSettingEnum_motion_block_overlap + +rw +motion_block_overlap +motion_block_overlap. +automatic + + + +GstSchroEnc::motion-block-size +SchroEncoderSettingEnum_motion_block_size + +rw +motion_block_size +motion_block_size. +automatic + + + +GstSchroEnc::mv-precision +gint +[0,3] +rw +mv_precision +mv_precision. +0 + + + +GstSchroEnc::noise-threshold +gdouble +[0,100] +rw +noise_threshold +noise_threshold. +25 + + + +GstSchroEnc::open-gop +gboolean + +rw +open_gop +open_gop. +TRUE + + + +GstSchroEnc::perceptual-distance +gdouble +[0,100] +rw +perceptual_distance +perceptual_distance. +4 + + + +GstSchroEnc::perceptual-weighting +SchroEncoderSettingEnum_perceptual_weighting + +rw +perceptual_weighting +perceptual_weighting. +ccir959 + + + +GstSchroEnc::profile +gint +[0,0] +rw +profile +profile. +0 + + + +GstSchroEnc::quality +gdouble +[0,10] +rw +quality +quality. +5 + + + +GstSchroEnc::queue-depth +gint +[1,40] +rw +queue_depth +queue_depth. +20 + + + +GstSchroEnc::rate-control +SchroEncoderSettingEnum_rate_control + +rw +rate_control +rate_control. +constant_quality + + + +GstSchroEnc::ref-distance +gint +[2,20] +rw +ref_distance +ref_distance. +4 + + + +GstSchroEnc::transform-depth +gint +[0,6] +rw +transform_depth +transform_depth. +3 + + + +GstSchroEnc::vert-slices +gint +>= 0 +rw +vert_slices +vert_slices. +0 + + + +GstSchroEnc::codeblock-size +SchroEncoderSettingEnum_codeblock_size + +rw +codeblock_size +codeblock_size. +automatic + + + +GstSchroEnc::magic-scan-distance +gdouble +[0,1000] +rw +magic_scan_distance +magic_scan_distance. +4 + + + +GstSchroEnc::downsample-levels +gint +[2,8] +rw +downsample_levels +downsample_levels. +5 + + + +GstSchroEnc::enable-chroma-me +gboolean + +rw +enable_chroma_me +enable_chroma_me. +FALSE + + + +GstSchroEnc::enable-deep-estimation +gboolean + +rw +enable_deep_estimation +enable_deep_estimation. +TRUE + + + +GstSchroEnc::enable-rdo-cbr +gboolean + +rw +enable_rdo_cbr +enable_rdo_cbr. +TRUE + + + +GstSchroEnc::enable-scene-change-detection +gboolean + +rw +enable_scene_change_detection +enable_scene_change_detection. +TRUE + + + +GstSchroEnc::force-profile +SchroEncoderSettingEnum_force_profile + +rw +force_profile +force_profile. +auto + + + +GstSchroEnc::magic-B-lambda-scale +gdouble +[0,10] +rw +magic_B_lambda_scale +magic_B_lambda_scale. +0.01 + + + +GstSchroEnc::magic-I-lambda-scale +gdouble +[0,100] +rw +magic_I_lambda_scale +magic_I_lambda_scale. +1 + + + +GstSchroEnc::magic-P-lambda-scale +gdouble +[0,10] +rw +magic_P_lambda_scale +magic_P_lambda_scale. +0.25 + + + +GstSchroEnc::magic-diagonal-lambda-scale +gdouble +[0,1000] +rw +magic_diagonal_lambda_scale +magic_diagonal_lambda_scale. +1 + + + +GstSchroEnc::magic-inter-cpd-scale +gdouble +[0,1] +rw +magic_inter_cpd_scale +magic_inter_cpd_scale. +1 + + + +GstSchroEnc::magic-me-bailout-limit +gdouble +[0,1000] +rw +magic_me_bailout_limit +magic_me_bailout_limit. +0.33 + + + +GstSchroEnc::magic-me-lambda-scale +gdouble +[0,100] +rw +magic_me_lambda_scale +magic_me_lambda_scale. +1 + + + +GstSchroEnc::max-refs +gint +[1,4] +rw +max_refs +max_refs. +3 + + + +GstAmrWbEnc::band-mode +GstAmrWbEncBandMode + +rwx +Band Mode +Encoding Band Mode (Kbps). +MR660 + + + +GstMimEnc::paused-mode +gboolean + +rw +Paused mode +If enabled, empty frames will be generated every 4 seconds when no data is received. +FALSE + + + +GstPnmenc::ascii +gboolean + +rw +ASCII Encoding +The output will be ASCII encoded. +FALSE + + + +GstSSim::gauss-sigma +gfloat +[G_MINFLOAT,10] +rw +Deviation (for Gauss function) +Used to calculate Gussian weights (only when using Gaussian window). +1.5 + + + +GstSSim::ssim-type +gint +[0,1] +rw +SSIM type +Type of the SSIM metric. 0 - canonical. 1 - with fixed mu (almost the same results, but roughly 20% faster). +0 + + + +GstSSim::window-size +gint +[1,22] +rw +Window size +Size of a window. +11 + + + +GstSSim::window-type +gint +[0,1] +rw +Window type +Type of the weighting in the window. 0 - no weighting. 1 - Gaussian weighting (controlled by "sigma"). +1 + + + +GstMeasureCollector::filename +gchar* + +rwx +Output file name +A name of a file into which element will write the measurement information. +"" + + + +GstMeasureCollector::flags +guint64 + +rwx +Flags +Flags that control the operation of the element. +0 + + + +http---calf-sourceforge-net-plugins-Fluidsynth::chorus +gboolean + +rwx +Chorus +Chorus. +FALSE + + + +http---calf-sourceforge-net-plugins-Fluidsynth::interpolation +gint +[0,3] +rwx +Interpolation +Interpolation. +2 + + + +http---calf-sourceforge-net-plugins-Fluidsynth::master +gfloat +[0,1] +rwx +Volume +Volume. +0,5 + + + +http---calf-sourceforge-net-plugins-Fluidsynth::reverb +gboolean + +rwx +Reverb +Reverb. +FALSE + + + +http---calf-sourceforge-net-plugins-Fluidsynth::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-a +gfloat +[1,20000] +rwx +EG1 Attack +EG1 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-d +gfloat +[10,20000] +rwx +EG1 Decay +EG1 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-f +gfloat +[-10000,10000] +rwx +EG1 Fade +EG1 Fade. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-r +gfloat +[10,20000] +rwx +EG1 Release +EG1 Release. +50 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-s +gfloat +[0,1] +rwx +EG1 Sustain +EG1 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr-v +gfloat +[0,1] +rwx +EG1 VelMod +EG1 VelMod. +1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-a +gfloat +[1,20000] +rwx +EG2 Attack +EG2 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-d +gfloat +[10,20000] +rwx +EG2 Decay +EG2 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-f +gfloat +[-10000,10000] +rwx +EG2 Fade +EG2 Fade. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-r +gfloat +[10,20000] +rwx +EG2 Release +EG2 Release. +50 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-s +gfloat +[0,1] +rwx +EG2 Sustain +EG2 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr2-v +gfloat +[0,1] +rwx +EG2 VelMod +EG2 VelMod. +1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-a +gfloat +[1,20000] +rwx +EG3 Attack +EG3 Attack. +1 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-d +gfloat +[10,20000] +rwx +EG3 Decay +EG3 Decay. +350 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-f +gfloat +[-10000,10000] +rwx +EG3 Fade +EG3 Fade. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-r +gfloat +[10,20000] +rwx +EG3 Release +EG3 Release. +50 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-s +gfloat +[0,1] +rwx +EG3 Sustain +EG3 Sustain. +0,5 + + + +http---calf-sourceforge-net-plugins-Wavetable::adsr3-v +gfloat +[0,1] +rwx +EG3 VelMod +EG3 VelMod. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::o1detune +gint +[-100,100] +rwx +Osc1 Detune +Osc1 Detune. +6 + + + +http---calf-sourceforge-net-plugins-Wavetable::o1level +gfloat +[0,1] +rwx +Osc1 Level +Osc1 Level. +0,1 + + + +http---calf-sourceforge-net-plugins-Wavetable::o1offset +gfloat +[-1,1] +rwx +Osc1 Ctl +Osc1 Ctl. +0,2 + + + +http---calf-sourceforge-net-plugins-Wavetable::o1trans +gint +[-48,48] +rwx +Osc1 Transpose +Osc1 Transpose. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::o1wave +gint +[0,28] +rwx +Osc1 Wave +Osc1 Wave. +28 + + + +http---calf-sourceforge-net-plugins-Wavetable::o2detune +gint +[-100,100] +rwx +Osc2 Detune +Osc2 Detune. +-6 + + + +http---calf-sourceforge-net-plugins-Wavetable::o2level +gfloat +[0,1] +rwx +Osc2 Level +Osc2 Level. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::o2offset +gfloat +[-1,1] +rwx +Osc2 Ctl +Osc2 Ctl. +0,4 + + + +http---calf-sourceforge-net-plugins-Wavetable::o2trans +gint +[-48,48] +rwx +Osc2 Transpose +Osc2 Transpose. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::o2wave +gint +[0,28] +rwx +Osc2 Wave +Osc2 Wave. +0 + + + +http---calf-sourceforge-net-plugins-Wavetable::pbend-range +gfloat +[0,2400] +rwx +PBend Range +PBend Range. +200 + + + +http---calf-sourceforge-net-plugins-Wavetable::event-in +gint +[-1,127] +w +Event +Event. +-1 + + + +http---calf-sourceforge-net-small-plugins-allpass::Cutoff +gfloat +[20,20000] +rwx +cutoff +cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-bandpass6::cutoff +gfloat +[20,20000] +rwx +Cutoff +Cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-bandpass6::res +gfloat +[0,707,20] +rwx +Resonance +Resonance. +0,707 + + + +http---calf-sourceforge-net-small-plugins-between-c::high +gfloat +[0,1] +rwx +high +high. +1 + + + +http---calf-sourceforge-net-small-plugins-between-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-between-c::low +gfloat +[0,1] +rwx +low +low. +0 + + + +http---calf-sourceforge-net-small-plugins-between-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-and-c::in-1 +gint +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-and-c::in-2 +gint +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-and-c::out +gint +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-or-c::in-1 +gint +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-or-c::in-2 +gint +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-or-c::out +gint +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-xor-c::in-1 +gint +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-xor-c::in-2 +gint +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-bit-xor-c::out +gint +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-channel-less-than-m::threshold +gint +[1,16] +rwx +threshold +threshold. +10 + + + +http---calf-sourceforge-net-small-plugins-channelfilter-m::max +gint +[1,16] +rwx +max +max. +16 + + + +http---calf-sourceforge-net-small-plugins-channelfilter-m::min +gint +[1,16] +rwx +min +min. +1 + + + +http---calf-sourceforge-net-small-plugins-clip-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-clip-c::max +gfloat +[0,1] +rwx +max +max. +1 + + + +http---calf-sourceforge-net-small-plugins-clip-c::min +gfloat +[0,1] +rwx +min +min. +0 + + + +http---calf-sourceforge-net-small-plugins-clip-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-counter-c::carry +gboolean + +r +carry +carry. +FALSE + + + +http---calf-sourceforge-net-small-plugins-counter-c::clock +gboolean + +rwx +clock +clock. +FALSE + + + +http---calf-sourceforge-net-small-plugins-counter-c::max +gfloat +[0,15] +rwx +max +max. +15 + + + +http---calf-sourceforge-net-small-plugins-counter-c::min +gfloat +[0,1] +rwx +min +min. +0 + + + +http---calf-sourceforge-net-small-plugins-counter-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-counter-c::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-counter-c::steps +gint +[0,16] +rwx +steps +steps. +16 + + + +http---calf-sourceforge-net-small-plugins-crossfader2-c::in-a +gfloat +[0,1] +rwx +in_a +in_a. +0 + + + +http---calf-sourceforge-net-small-plugins-crossfader2-c::in-b +gfloat +[0,1] +rwx +in_b +in_b. +0 + + + +http---calf-sourceforge-net-small-plugins-crossfader2-c::mix +gfloat +[0,1] +rwx +mix +mix. +0,5 + + + +http---calf-sourceforge-net-small-plugins-crossfader2-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-exp-inertia-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-exp-inertia-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-exp-inertia-c::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-exp-inertia-c::time +gfloat +[0,100] +rwx +time +time. +100 + + + +http---calf-sourceforge-net-small-plugins-flipflop-c::in +gboolean + +rwx +in +in. +FALSE + + + +http---calf-sourceforge-net-small-plugins-flipflop-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-highpass12::cutoff +gfloat +[20,20000] +rwx +Cutoff +Cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-highpass12::res +gfloat +[0,707,20] +rwx +Resonance +Resonance. +0,707 + + + +http---calf-sourceforge-net-small-plugins-highpass6::Cutoff +gfloat +[20,20000] +rwx +cutoff +cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-ifthenelse-c::else +gfloat +[0,1] +rwx +else +else. +0 + + + +http---calf-sourceforge-net-small-plugins-ifthenelse-c::if +gboolean + +rwx +if +if. +FALSE + + + +http---calf-sourceforge-net-small-plugins-ifthenelse-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-ifthenelse-c::then +gfloat +[0,1] +rwx +then +then. +0 + + + +http---calf-sourceforge-net-small-plugins-key-less-than-m::threshold +gint +[0,128] +rwx +threshold +threshold. +60 + + + +http---calf-sourceforge-net-small-plugins-keyfilter-m::max +gint +[0,127] +rwx +max +max. +127 + + + +http---calf-sourceforge-net-small-plugins-keyfilter-m::min +gint +[0,127] +rwx +min +min. +0 + + + +http---calf-sourceforge-net-small-plugins-less-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-less-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-less-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-level2edge-c::in +gboolean + +rwx +in +in. +FALSE + + + +http---calf-sourceforge-net-small-plugins-level2edge-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-lin2exp::from-max +gfloat +[0,1] +rwx +from_max +from_max. +1 + + + +http---calf-sourceforge-net-small-plugins-lin2exp::from-min +gfloat +[0,1] +rwx +from_min +from_min. +0 + + + +http---calf-sourceforge-net-small-plugins-lin2exp::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-lin2exp::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-lin2exp::to-max +gfloat +[0,20000] +rwx +to_max +to_max. +20000 + + + +http---calf-sourceforge-net-small-plugins-lin2exp::to-min +gfloat +[0,20] +rwx +to_min +to_min. +20 + + + +http---calf-sourceforge-net-small-plugins-linear-inertia-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-linear-inertia-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-linear-inertia-c::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-linear-inertia-c::time +gfloat +[0,100] +rwx +time +time. +100 + + + +http---calf-sourceforge-net-small-plugins-logical-and-c::in-1 +gboolean + +rwx +in_1 +in_1. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-and-c::in-2 +gboolean + +rwx +in_2 +in_2. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-and-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-not-c::in +gboolean + +rwx +in +in. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-not-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-or-c::in-1 +gboolean + +rwx +in_1 +in_1. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-or-c::in-2 +gboolean + +rwx +in_2 +in_2. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-or-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-xor-c::in-1 +gboolean + +rwx +in_1 +in_1. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-xor-c::in-2 +gboolean + +rwx +in_2 +in_2. +FALSE + + + +http---calf-sourceforge-net-small-plugins-logical-xor-c::out +gboolean + +r +out +out. +FALSE + + + +http---calf-sourceforge-net-small-plugins-lowpass12::cutoff +gfloat +[20,20000] +rwx +Cutoff +Cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-lowpass12::res +gfloat +[0,707,20] +rwx +Resonance +Resonance. +0,707 + + + +http---calf-sourceforge-net-small-plugins-lowpass6::Cutoff +gfloat +[20,20000] +rwx +cutoff +cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-max-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-max-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-max-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-min-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-min-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-min-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-minus-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-minus-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-minus-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-msgread-e::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-mul-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-mul-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-mul-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-0 +gfloat +[0,1] +rwx +in_0 +in_0. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-10 +gfloat +[0,1] +rwx +in_10 +in_10. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-11 +gfloat +[0,1] +rwx +in_11 +in_11. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-12 +gfloat +[0,1] +rwx +in_12 +in_12. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-13 +gfloat +[0,1] +rwx +in_13 +in_13. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-14 +gfloat +[0,1] +rwx +in_14 +in_14. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-15 +gfloat +[0,1] +rwx +in_15 +in_15. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-3 +gfloat +[0,1] +rwx +in_3 +in_3. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-4 +gfloat +[0,1] +rwx +in_4 +in_4. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-5 +gfloat +[0,1] +rwx +in_5 +in_5. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-6 +gfloat +[0,1] +rwx +in_6 +in_6. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-7 +gfloat +[0,1] +rwx +in_7 +in_7. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-8 +gfloat +[0,1] +rwx +in_8 +in_8. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::in-9 +gfloat +[0,1] +rwx +in_9 +in_9. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-mux16-c::select +gint +[0,15] +rwx +select +select. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::in-0 +gfloat +[0,1] +rwx +in_0 +in_0. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::in-3 +gfloat +[0,1] +rwx +in_3 +in_3. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-mux4-c::select +gint +[0,3] +rwx +select +select. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-0 +gfloat +[0,1] +rwx +in_0 +in_0. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-3 +gfloat +[0,1] +rwx +in_3 +in_3. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-4 +gfloat +[0,1] +rwx +in_4 +in_4. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-5 +gfloat +[0,1] +rwx +in_5 +in_5. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-6 +gfloat +[0,1] +rwx +in_6 +in_6. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::in-7 +gfloat +[0,1] +rwx +in_7 +in_7. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-mux8-c::select +gint +[0,7] +rwx +select +select. +0 + + + +http---calf-sourceforge-net-small-plugins-neg-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-neg-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-notch6::cutoff +gfloat +[20,20000] +rwx +Cutoff +Cutoff. +1000 + + + +http---calf-sourceforge-net-small-plugins-notch6::res +gfloat +[0,707,20] +rwx +Resonance +Resonance. +0,707 + + + +http---calf-sourceforge-net-small-plugins-print-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::any +gboolean + +r +any +any. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-0 +gboolean + +rwx +gate_0 +gate_0. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-1 +gboolean + +rwx +gate_1 +gate_1. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-2 +gboolean + +rwx +gate_2 +gate_2. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-3 +gboolean + +rwx +gate_3 +gate_3. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-4 +gboolean + +rwx +gate_4 +gate_4. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-5 +gboolean + +rwx +gate_5 +gate_5. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-6 +gboolean + +rwx +gate_6 +gate_6. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::gate-7 +gboolean + +rwx +gate_7 +gate_7. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-enc8-c::out +gint +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::gate-1 +gboolean + +rwx +gate_1 +gate_1. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::gate-2 +gboolean + +rwx +gate_2 +gate_2. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::gate-3 +gboolean + +rwx +gate_3 +gate_3. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::gate-4 +gboolean + +rwx +gate_4 +gate_4. +FALSE + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::in-1 +gfloat +[0,1] +rwx +in_1 +in_1. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::in-2 +gfloat +[0,1] +rwx +in_2 +in_2. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::in-3 +gfloat +[0,1] +rwx +in_3 +in_3. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::in-4 +gfloat +[0,1] +rwx +in_4 +in_4. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::in-else +gfloat +[0,1] +rwx +in_else +in_else. +0 + + + +http---calf-sourceforge-net-small-plugins-prio-mux-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-pulse-lfo::freq +gfloat +[0,02,100] +rwx +freq +freq. +1 + + + +http---calf-sourceforge-net-small-plugins-pulse-lfo::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-pulse-lfo::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-quadpower-a::a +gfloat +[0,1] +rwx +a +a. +1 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::a +gfloat +[0,1] +rwx +a +a. +1 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::x +gfloat +[0,1] +rwx +x +x. +0 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::xa +gfloat +[0,1] +r +xa +xa. +0 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::xaa +gfloat +[0,1] +r +xaa +xaa. +0 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::xaaa +gfloat +[0,1] +r +xaaa +xaaa. +0 + + + +http---calf-sourceforge-net-small-plugins-quadpower-c::xaaaa +gfloat +[0,1] +r +xaaaa +xaaaa. +0 + + + +http---calf-sourceforge-net-small-plugins-sample-hold-edge-c::clock +gboolean + +rwx +clock +clock. +FALSE + + + +http---calf-sourceforge-net-small-plugins-sample-hold-edge-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-sample-hold-edge-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-sample-hold-level-c::gate +gboolean + +rwx +gate +gate. +FALSE + + + +http---calf-sourceforge-net-small-plugins-sample-hold-level-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-sample-hold-level-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-saw-lfo::freq +gfloat +[0,02,100] +rwx +freq +freq. +1 + + + +http---calf-sourceforge-net-small-plugins-saw-lfo::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-saw-lfo::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-saw-osc::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +440 + + + +http---calf-sourceforge-net-small-plugins-schmitt-c::change +gfloat +[0,1] +r +change +change. +0 + + + +http---calf-sourceforge-net-small-plugins-schmitt-c::high +gfloat +[0,1] +rwx +high +high. +0,5 + + + +http---calf-sourceforge-net-small-plugins-schmitt-c::in +gfloat +[0,1] +rwx +in +in. +0 + + + +http---calf-sourceforge-net-small-plugins-schmitt-c::low +gfloat +[0,1] +rwx +low +low. +0 + + + +http---calf-sourceforge-net-small-plugins-schmitt-c::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-setchannel-m::channel +gint +[1,16] +rwx +channel +channel. +1 + + + +http---calf-sourceforge-net-small-plugins-square-lfo::freq +gfloat +[0,02,100] +rwx +freq +freq. +1 + + + +http---calf-sourceforge-net-small-plugins-square-lfo::out +gfloat +[0,1] +r +out +out. +0 + + + +http---calf-sourceforge-net-small-plugins-square-lfo::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-square-osc::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +440 + + + +http---calf-sourceforge-net-small-plugins-timer-c::allow-retrig +gboolean + +rwx +allow_retrig +allow_retrig. +FALSE + + + +http---calf-sourceforge-net-small-plugins-timer-c::finished +gboolean + +r +finished +finished. +FALSE + + + +http---calf-sourceforge-net-small-plugins-timer-c::progress +gfloat +[0,1] +r +progress +progress. +0 + + + +http---calf-sourceforge-net-small-plugins-timer-c::reset +gboolean + +rwx +reset +reset. +FALSE + + + +http---calf-sourceforge-net-small-plugins-timer-c::running +gboolean + +r +running +running. +FALSE + + + +http---calf-sourceforge-net-small-plugins-timer-c::time +gfloat +[0,1] +rwx +time +time. +0 + + + +http---calf-sourceforge-net-small-plugins-timer-c::trigger +gboolean + +rwx +trigger +trigger. +FALSE + + + +http---calf-sourceforge-net-small-plugins-transpose-m::transpose +gint +[0,12] +rwx +transpose +transpose. +12 + + + +http---calf-sourceforge-net-small-plugins-trigger-a2c::out +gboolean + +r +Out +Out. +FALSE + + + +GstCogScale::quality +gint +[0,10] +rw +quality +Scaling Quality. +5 + + + +GstLogoinsert::location +gchar* + +rw +location +location of PNG file to overlay. +"" + + + +GstLogoinsert::data +GstBuffer* + +rw +data +Buffer containing PNG file to overlay. + + + + +GstMSE::chroma-psnr +gdouble +[0,70] +r +chroma-psnr +chroma-psnr. +40 + + + +GstMSE::luma-psnr +gdouble +[0,70] +r +luma-psnr +luma-psnr. +40 + + + +GstAssRender::embeddedfonts +gboolean + +rw +Embedded Fonts +Extract and use fonts embedded in the stream. +TRUE + + + +GstAssRender::enable +gboolean + +rw +Enable +Enable rendering of subtitles. +TRUE + + + +http---invadarecords-com-plugins-lv2-tube-stereo::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-tube-stereo::dcoffset +gfloat +[-1,1] +rwx +dcoffset +dcoffset. +0 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::drive +gfloat +[0,18] +rwx +drive +drive. +0 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::meterDrive +gfloat +[0,10] +r +meterDrive +meterDrive. +0 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::mix +gfloat +[0,100] +rwx +mix +mix. +75 + + + +http---invadarecords-com-plugins-lv2-tube-stereo::phase +gboolean + +rwx +phase +phase. +FALSE + + + +http---invadarecords-com-plugins-lv2-tube-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-tube-mono::dcoffset +gfloat +[-1,1] +rwx +dcoffset +dcoffset. +0 + + + +http---invadarecords-com-plugins-lv2-tube-mono::drive +gfloat +[0,18] +rwx +drive +drive. +0 + + + +http---invadarecords-com-plugins-lv2-tube-mono::meterDrive +gfloat +[0,10] +r +meterDrive +meterDrive. +0 + + + +http---invadarecords-com-plugins-lv2-tube-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-mono::meterOut +gfloat +[-60,6] +r +meterOut +meterOut. +-60 + + + +http---invadarecords-com-plugins-lv2-tube-mono::mix +gfloat +[0,100] +rwx +mix +mix. +75 + + + +http---invadarecords-com-plugins-lv2-tube-mono::phase +gboolean + +rwx +phase +phase. +FALSE + + + +http---invadarecords-com-plugins-lv2-testtone::active +gboolean + +rwx +active +active. +FALSE + + + +http---invadarecords-com-plugins-lv2-testtone::frequency +gfloat +[20,20000] +rwx +frequency +frequency. +1000 + + + +http---invadarecords-com-plugins-lv2-testtone::meterOut +gfloat +[-60,6] +r +meterOut +meterOut. +-60 + + + +http---invadarecords-com-plugins-lv2-testtone::trim +gfloat +[-24,0] +rwx +trim +trim. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-sum::cycle +gfloat +[0.5,500] +rwx +cycle +cycle. +25 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::depth +gfloat +[0,100] +rwx +depth +depth. +75.01 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::lampL +gfloat +[0,10] +r +lampL +lampL. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::lampR +gfloat +[0,10] +r +lampR +lampR. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-sum::phase +gfloat +[-180,180] +rwx +phase +phase. +45 + + + +http---invadarecords-com-plugins-lv2-phaser-sum::width +gfloat +[1,15] +rwx +width +width. +8 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::cycle +gfloat +[0.5,500] +rwx +cycle +cycle. +25 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::depth +gfloat +[0,100] +rwx +depth +depth. +75.01 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::lampL +gfloat +[0,4] +r +lampL +lampL. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::lampR +gfloat +[0,4] +r +lampR +lampR. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::phase +gfloat +[-180,180] +rwx +phase +phase. +45 + + + +http---invadarecords-com-plugins-lv2-phaser-stereo::width +gfloat +[1,15] +rwx +width +width. +8 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-mono::cycle +gfloat +[0.5,500] +rwx +cycle +cycle. +25 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::depth +gfloat +[0,100] +rwx +depth +depth. +75.01 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::lampL +gfloat +[0,4] +r +lampL +lampL. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::lampR +gfloat +[0,4] +r +lampR +lampR. +0 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-phaser-mono::phase +gfloat +[-180,180] +rwx +phase +phase. +45 + + + +http---invadarecords-com-plugins-lv2-phaser-mono::width +gfloat +[1,15] +rwx +width +width. +8 + + + +http---invadarecords-com-plugins-lv2-meter::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-meter::meterL +gfloat +[-60,6] +r +meterL +meterL. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::meterPhase +gfloat +[0,1.5708] +r +meterPhase +meterPhase. +0 + + + +http---invadarecords-com-plugins-lv2-meter::meterR +gfloat +[-60,6] +r +meterR +meterR. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec100 +gfloat +[-60,12] +r +spec100 +spec100. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec1000 +gfloat +[-60,12] +r +spec1000 +spec1000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec10000 +gfloat +[-60,12] +r +spec10000 +spec10000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec125 +gfloat +[-60,12] +r +spec125 +spec125. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec1250 +gfloat +[-60,12] +r +spec1250 +spec1250. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec12500 +gfloat +[-60,12] +r +spec12500 +spec12500. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec160 +gfloat +[-60,12] +r +spec160 +spec160. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec1600 +gfloat +[-60,12] +r +spec1600 +spec1600. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec16000 +gfloat +[-60,12] +r +spec16000 +spec16000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec20 +gfloat +[-60,12] +r +spec20 +spec20. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec200 +gfloat +[-60,12] +r +spec200 +spec200. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec2000 +gfloat +[-60,12] +r +spec2000 +spec2000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec20000 +gfloat +[-60,12] +r +spec20000 +spec20000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec25 +gfloat +[-60,12] +r +spec25 +spec25. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec250 +gfloat +[-60,12] +r +spec250 +spec250. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec2500 +gfloat +[-60,12] +r +spec2500 +spec2500. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec31 +gfloat +[-60,12] +r +spec31 +spec31. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec315 +gfloat +[-60,12] +r +spec315 +spec315. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec3150 +gfloat +[-60,12] +r +spec3150 +spec3150. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec40 +gfloat +[-60,12] +r +spec40 +spec40. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec400 +gfloat +[-60,12] +r +spec400 +spec400. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec4000 +gfloat +[-60,12] +r +spec4000 +spec4000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec50 +gfloat +[-60,12] +r +spec50 +spec50. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec500 +gfloat +[-60,12] +r +spec500 +spec500. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec5000 +gfloat +[-60,12] +r +spec5000 +spec5000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec63 +gfloat +[-60,12] +r +spec63 +spec63. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec630 +gfloat +[-60,12] +r +spec630 +spec630. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec6300 +gfloat +[-60,12] +r +spec6300 +spec6300. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec80 +gfloat +[-60,12] +r +spec80 +spec80. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec800 +gfloat +[-60,12] +r +spec800 +spec800. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::spec8000 +gfloat +[-60,12] +r +spec8000 +spec8000. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::vuL +gfloat +[-60,6] +r +vuL +vuL. +-60 + + + +http---invadarecords-com-plugins-lv2-meter::vuR +gfloat +[-60,6] +r +vuR +vuR. +-60 + + + +http---invadarecords-com-plugins-lv2-input::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-input::gain +gfloat +[-24,24] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-input::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-input::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-input::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-input::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-input::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-input::meterPhase +gfloat +[0,1.5708] +r +meterPhase +meterPhase. +0 + + + +http---invadarecords-com-plugins-lv2-input::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-input::pan +gfloat +[-1,1] +rwx +pan +pan. +0 + + + +http---invadarecords-com-plugins-lv2-input::phaseL +gboolean + +rwx +phaseL +phaseL. +FALSE + + + +http---invadarecords-com-plugins-lv2-input::phaseR +gboolean + +rwx +phaseR +phaseR. +FALSE + + + +http---invadarecords-com-plugins-lv2-input::width +gfloat +[-1,1] +rwx +width +width. +0 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::freq +gfloat +[20,20000] +rwx +freq +freq. +1000 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::gain +gfloat +[0,12] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-stereo::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::freq +gfloat +[20,20000] +rwx +freq +freq. +1000 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::gain +gfloat +[0,12] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::meterOut +gfloat +[-60,6] +r +meterOut +meterOut. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-lpf-mono::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::freq +gfloat +[20,20000] +rwx +freq +freq. +1000 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::gain +gfloat +[0,12] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-stereo::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::freq +gfloat +[20,20000] +rwx +freq +freq. +1000 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::gain +gfloat +[0,12] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::meterOut +gfloat +[-60,6] +r +meterOut +meterOut. +-60 + + + +http---invadarecords-com-plugins-lv2-filter-hpf-mono::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::diffusion +gfloat +[0,100] +rwx +diffusion +diffusion. +50 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::hpf +gfloat +[20,2000] +rwx +hpf +hpf. +1000 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::listFB +gfloat +[0,0.5] +rwx +listFB +listFB. +0.2 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::listLR +gfloat +[-1,1] +rwx +listLR +listLR. +0.01 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::roomHeight +gfloat +[3,30] +rwx +roomHeight +roomHeight. +10 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::roomLength +gfloat +[3,100] +rwx +roomLength +roomLength. +25 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::roomWidth +gfloat +[3,100] +rwx +roomWidth +roomWidth. +30 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::sourceFB +gfloat +[0.5,1] +rwx +sourceFB +sourceFB. +0.8 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::sourceLR +gfloat +[-1,1] +rwx +sourceLR +sourceLR. +-0.01 + + + +http---invadarecords-com-plugins-lv2-erreverb-sum::warmth +gfloat +[0,100] +rwx +warmth +warmth. +50 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::diffusion +gfloat +[0,100] +rwx +diffusion +diffusion. +50 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::hpf +gfloat +[20,2000] +rwx +hpf +hpf. +1000 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::listFB +gfloat +[0,0.5] +rwx +listFB +listFB. +0.2 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::listLR +gfloat +[-1,1] +rwx +listLR +listLR. +0.01 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::roomHeight +gfloat +[3,30] +rwx +roomHeight +roomHeight. +10 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::roomLength +gfloat +[3,100] +rwx +roomLength +roomLength. +25 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::roomWidth +gfloat +[3,100] +rwx +roomWidth +roomWidth. +30 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::sourceFB +gfloat +[0.5,1] +rwx +sourceFB +sourceFB. +0.8 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::sourceLR +gfloat +[-1,1] +rwx +sourceLR +sourceLR. +-0.01 + + + +http---invadarecords-com-plugins-lv2-erreverb-mono::warmth +gfloat +[0,100] +rwx +warmth +warmth. +50 + + + +http---invadarecords-com-plugins-lv2-delay-sum::LFOcycle +gfloat +[2,200] +rwx +LFOcycle +LFOcycle. +20 + + + +http---invadarecords-com-plugins-lv2-delay-sum::LFOdepth +gfloat +[0,100] +rwx +LFOdepth +LFOdepth. +0 + + + +http---invadarecords-com-plugins-lv2-delay-sum::LFOlamp +gfloat +[0,4] +r +LFOlamp +LFOlamp. +0 + + + +http---invadarecords-com-plugins-lv2-delay-sum::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-sum::delay1 +gfloat +[0.02,2] +rwx +delay1 +delay1. +0.3 + + + +http---invadarecords-com-plugins-lv2-delay-sum::delay2 +gfloat +[0.02,2] +rwx +delay2 +delay2. +0.2 + + + +http---invadarecords-com-plugins-lv2-delay-sum::fb1 +gfloat +[0,133.333] +rwx +fb1 +fb1. +50 + + + +http---invadarecords-com-plugins-lv2-delay-sum::fb2 +gfloat +[0,133.333] +rwx +fb2 +fb2. +50 + + + +http---invadarecords-com-plugins-lv2-delay-sum::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-sum::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-sum::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-sum::mode +gboolean + +rwx +mode +mode. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-sum::munge +gfloat +[0,100] +rwx +munge +munge. +50 + + + +http---invadarecords-com-plugins-lv2-delay-sum::mungemode +gboolean + +rwx +mungemode +mungemode. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-sum::pan1 +gfloat +[-1,1] +rwx +pan1 +pan1. +-0.7 + + + +http---invadarecords-com-plugins-lv2-delay-sum::pan2 +gfloat +[-1,1] +rwx +pan2 +pan2. +0.7 + + + +http---invadarecords-com-plugins-lv2-delay-sum::vol1 +gfloat +[0,100] +rwx +vol1 +vol1. +100 + + + +http---invadarecords-com-plugins-lv2-delay-sum::vol2 +gfloat +[0,100] +rwx +vol2 +vol2. +100 + + + +http---invadarecords-com-plugins-lv2-delay-mono::LFOcycle +gfloat +[2,200] +rwx +LFOcycle +LFOcycle. +20 + + + +http---invadarecords-com-plugins-lv2-delay-mono::LFOdepth +gfloat +[0,100] +rwx +LFOdepth +LFOdepth. +0 + + + +http---invadarecords-com-plugins-lv2-delay-mono::LFOlamp +gfloat +[0,4] +r +LFOlamp +LFOlamp. +0 + + + +http---invadarecords-com-plugins-lv2-delay-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-mono::delay1 +gfloat +[0.02,2] +rwx +delay1 +delay1. +0.3 + + + +http---invadarecords-com-plugins-lv2-delay-mono::delay2 +gfloat +[0.02,2] +rwx +delay2 +delay2. +0.2 + + + +http---invadarecords-com-plugins-lv2-delay-mono::fb1 +gfloat +[0,133.333] +rwx +fb1 +fb1. +50 + + + +http---invadarecords-com-plugins-lv2-delay-mono::fb2 +gfloat +[0,133.333] +rwx +fb2 +fb2. +50 + + + +http---invadarecords-com-plugins-lv2-delay-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-mono::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-mono::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-delay-mono::mode +gboolean + +rwx +mode +mode. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-mono::munge +gfloat +[0,100] +rwx +munge +munge. +50 + + + +http---invadarecords-com-plugins-lv2-delay-mono::mungemode +gboolean + +rwx +mungemode +mungemode. +FALSE + + + +http---invadarecords-com-plugins-lv2-delay-mono::pan1 +gfloat +[-1,1] +rwx +pan1 +pan1. +-0.7 + + + +http---invadarecords-com-plugins-lv2-delay-mono::pan2 +gfloat +[-1,1] +rwx +pan2 +pan2. +0.7 + + + +http---invadarecords-com-plugins-lv2-delay-mono::vol1 +gfloat +[0,100] +rwx +vol1 +vol1. +100 + + + +http---invadarecords-com-plugins-lv2-delay-mono::vol2 +gfloat +[0,100] +rwx +vol2 +vol2. +100 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::attack +gfloat +[1e-05,0.75] +rwx +attack +attack. +0.015 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::gain +gfloat +[-6,36] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::grmeter +gfloat +[-36,0] +r +grmeter +grmeter. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::meterInL +gfloat +[-60,6] +r +meterInL +meterInL. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::meterInR +gfloat +[-60,6] +r +meterInR +meterInR. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::meterOutL +gfloat +[-60,6] +r +meterOutL +meterOutL. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::meterOutR +gfloat +[-60,6] +r +meterOutR +meterOutR. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::ratio +gfloat +[1,20] +rwx +ratio +ratio. +1 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::release +gfloat +[0.001,5] +rwx +release +release. +0.05 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::rms +gfloat +[0,1] +rwx +rms +rms. +0.5 + + + +http---invadarecords-com-plugins-lv2-compressor-stereo::threshold +gfloat +[-36,0] +rwx +threshold +threshold. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::attack +gfloat +[1e-05,0.75] +rwx +attack +attack. +0.015 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::bypass +gboolean + +rwx +bypass +bypass. +FALSE + + + +http---invadarecords-com-plugins-lv2-compressor-mono::gain +gfloat +[-6,36] +rwx +gain +gain. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::grmeter +gfloat +[-36,0] +r +grmeter +grmeter. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::lampDrive +gfloat +[0,10] +r +lampDrive +lampDrive. +0 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::meterIn +gfloat +[-60,6] +r +meterIn +meterIn. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::meterOut +gfloat +[-60,6] +r +meterOut +meterOut. +-60 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::noClip +gboolean + +rwx +noClip +noClip. +FALSE + + + +http---invadarecords-com-plugins-lv2-compressor-mono::ratio +gfloat +[1,20] +rwx +ratio +ratio. +1 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::release +gfloat +[0.001,5] +rwx +release +release. +0.05 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::rms +gfloat +[0,1] +rwx +rms +rms. +0.5 + + + +http---invadarecords-com-plugins-lv2-compressor-mono::threshold +gfloat +[-36,0] +rwx +threshold +threshold. +0 + + + +ADPCMEnc::blockalign +gint +[64,8192] +rw +Block Align +Block size for output stream. +1024 + + + +ADPCMEnc::layout +GstADPCMEncLayout + +rw +Layout +Layout for output stream. +DVI/IMA APDCM + + + +GstDataURISrc::uri +gchar* + +rw +URI +URI that should be used. +NULL + + + +frei0r-filter-primaries::factor +gdouble + +rw +Factor +influence of mean px value. > 32 = 0. +1 + + + +frei0r-filter-levels::black-output +gdouble + +rw +Black output +Black output. +0 + + + +frei0r-filter-levels::channel +gdouble + +rw +Channel +Channel to adjust levels. +0 + + + +frei0r-filter-levels::gamma +gdouble + +rw +Gamma +Gamma. +0.25 + + + +frei0r-filter-levels::histogram-position +gdouble + +rw +Histogram position +Histogram position. +3 + + + +frei0r-filter-levels::input-black-level +gdouble + +rw +Input black level +Input black level. +0 + + + +frei0r-filter-levels::input-white-level +gdouble + +rw +Input white level +Input white level. +1 + + + +frei0r-filter-levels::show-histogram +gboolean + +rw +Show histogram +Show histogram. +TRUE + + + +frei0r-filter-levels::white-output +gdouble + +rw +White output +White output. +1 + + + +frei0r-filter-tint0r::map-black-to-b +gfloat +[0,1] +rw +Map black to +The color to map source color with null luminance. +0 + + + +frei0r-filter-tint0r::map-black-to-g +gfloat +[0,1] +rw +Map black to +The color to map source color with null luminance. +0 + + + +frei0r-filter-tint0r::map-black-to-r +gfloat +[0,1] +rw +Map black to-R +The color to map source color with null luminance. +0 + + + +frei0r-filter-tint0r::map-white-to-b +gfloat +[0,1] +rw +Map white to +The color to map source color with full luminance. +0.5 + + + +frei0r-filter-tint0r::map-white-to-g +gfloat +[0,1] +rw +Map white to +The color to map source color with full luminance. +1 + + + +frei0r-filter-tint0r::map-white-to-r +gfloat +[0,1] +rw +Map white to-R +The color to map source color with full luminance. +0.5 + + + +frei0r-filter-tint0r::tint-amount +gdouble + +rw +Tint amount +Amount of color. +0.25 + + + +frei0r-filter-bluescreen0r::color-b +gfloat +[0,1] +rw +Color +The color to make transparent (B G R). +0 + + + +frei0r-filter-bluescreen0r::color-g +gfloat +[0,1] +rw +Color +The color to make transparent (B G R). +0 + + + +frei0r-filter-bluescreen0r::color-r +gfloat +[0,1] +rw +Color-R +The color to make transparent (B G R). +0 + + + +frei0r-filter-bluescreen0r::distance +gdouble + +rw +Distance +Distance to Color (127 is good). +127 + + + +frei0r-filter-3-point-color-balance::black-color-b +gfloat +[0,1] +rw +Black color +Black color. +0 + + + +frei0r-filter-3-point-color-balance::black-color-g +gfloat +[0,1] +rw +Black color +Black color. +0 + + + +frei0r-filter-3-point-color-balance::black-color-r +gfloat +[0,1] +rw +Black color-R +Black color. +0 + + + +frei0r-filter-3-point-color-balance::gray-color-b +gfloat +[0,1] +rw +Gray color +Gray color. +0.5 + + + +frei0r-filter-3-point-color-balance::gray-color-g +gfloat +[0,1] +rw +Gray color +Gray color. +0.5 + + + +frei0r-filter-3-point-color-balance::gray-color-r +gfloat +[0,1] +rw +Gray color-R +Gray color. +0.5 + + + +frei0r-filter-3-point-color-balance::source-image-on-left-side +gboolean + +rw +Source image on left side +Source image on left side. +TRUE + + + +frei0r-filter-3-point-color-balance::split-preview +gboolean + +rw +Split preview +Split privew. +TRUE + + + +frei0r-filter-3-point-color-balance::white-color-b +gfloat +[0,1] +rw +White color +White color. +1 + + + +frei0r-filter-3-point-color-balance::white-color-g +gfloat +[0,1] +rw +White color +White color. +1 + + + +frei0r-filter-3-point-color-balance::white-color-r +gfloat +[0,1] +rw +White color-R +White color. +1 + + + +frei0r-src-plasma::param-1-move +gdouble + +rw +1_move + . +1 + + + +frei0r-src-plasma::param-1-speed +gdouble + +rw +1_speed + . +1 + + + +frei0r-src-plasma::param-2-move +gdouble + +rw +2_move + . +1 + + + +frei0r-src-plasma::param-2-speed +gdouble + +rw +2_speed + . +1 + + + +frei0r-src-plasma::param-3-speed +gdouble + +rw +3_speed + . +1 + + + +frei0r-src-plasma::param-4-speed +gdouble + +rw +4_speed + . +1 + + + +frei0r-filter-vertigo::mode +gdouble + +rw +Mode +The effect mode. +3 + + + +frei0r-filter-vertigo::phaseincrement +gdouble + +rw +PhaseIncrement +Phase increment. +0.02 + + + +frei0r-filter-vertigo::zoomrate +gdouble + +rw +Zoomrate +Zoomrate. +1.01 + + + +frei0r-filter-curves::channel +gdouble + +rw +Channel +Channel to adjust levels (1 = RED; 2 = GREEN; 3 = BLUE; 4 = LUMA). +0 + + + +frei0r-filter-curves::curve-point-number +gdouble + +rw +Curve point number +Number of point to use to build curve. +2 + + + +frei0r-filter-curves::graph-position +gdouble + +rw +Graph position +Output image corner where curve graph will be drawn (1 = TOP,LEFT; 2 = TOP,RIGHT; 3 = BOTTOM,LEFT; 4 = BOTTOM, RIGHT). +3 + + + +frei0r-filter-curves::point-1-input-value +gdouble + +rw +Point 1 input value +Point 1 input value. +1 + + + +frei0r-filter-curves::point-1-output-value +gdouble + +rw +Point 1 output value +Point 1 output value. +1 + + + +frei0r-filter-curves::point-2-input-value +gdouble + +rw +Point 2 input value +Point 2 input value. +1 + + + +frei0r-filter-curves::point-2-output-value +gdouble + +rw +Point 2 output value +Point 2 output value. +1 + + + +frei0r-filter-curves::point-3-input-value +gdouble + +rw +Point 3 input value +Point 3 input value. +1 + + + +frei0r-filter-curves::point-3-output-value +gdouble + +rw +Point 3 output value +Point 3 output value. +1 + + + +frei0r-filter-curves::point-4-input-value +gdouble + +rw +Point 4 input value +Point 4 input value. +1 + + + +frei0r-filter-curves::point-4-output-value +gdouble + +rw +Point 4 output value +Point 4 output value. +1 + + + +frei0r-filter-curves::point-5-input-value +gdouble + +rw +Point 5 input value +Point 5 input value. +1 + + + +frei0r-filter-curves::point-5-output-value +gdouble + +rw +Point 5 output value +Point 5 output value. +1 + + + +frei0r-filter-curves::show-curves +gboolean + +rw +Show curves +Draw curve graph on output image. +TRUE + + + +VdpSink::display +gchar* + +rw +Display +X Display name. +NULL + + + +VdpSink::handle-events +gboolean + +rw +Handle XEvents +When enabled, XEvents will be selected and handled. +TRUE + + + +VdpSink::handle-expose +gboolean + +rw +Handle expose +When enabled, the current frame will always be drawn in response to X Expose events. +TRUE + + + +VdpSink::pixel-aspect-ratio +gchar* + +rw +Pixel Aspect Ratio +The pixel aspect ratio of the device. +"1/1" + + + +VdpSink::synchronous +gboolean + +rw +Synchronous +When enabled, runs the X display in synchronous mode. (used only for debugging). +FALSE + + + +GstVdpVideoPostProcess::display +gchar* + +rwx +Display +X Display name. +NULL + + + +GstVdpVideoPostProcess::force-aspect-ratio +gboolean + +rw +Force aspect ratio +When enabled, the plugin will only scale up the input surface to themaximum size where the aspect ratio can be preserved. +FALSE + + + +GstVdpVideoPostProcess::inverse-telecine +gboolean + +rw +Inverse telecine +Whether inverse telecine should be used. +FALSE + + + +GstVdpVideoPostProcess::method +GstVdpDeinterlaceMethods + +rw +Deinterlace method +Specifies which deinterlace method to use. +Vertically scale a single field to the size of a single frame. + + + +GstVdpVideoPostProcess::mode +GstVdpDeinterlaceModes + +rw +Deinterlace mode +Specifies if the element should deinterlace or not. +Auto detection + + + +GstVdpVideoPostProcess::noise-reduction +gfloat +[0,1] +rw +Noise reduction +The amount of noise reduction that should be done. +0 + + + +GstVdpVideoPostProcess::sharpening +gfloat +[-1,1] +rw +Sharpening +The amount of sharpening or blurring to be applied. +0 + + + +GstCogcolorspace::color-matrix +CogColorMatrix + +rw +Color Matrix +Color matrix for YCbCr <-> RGB conversion. +unknown + + + +GstCogcolorspace::quality +gint +[0,10] +rw +Quality +Quality. +5 + + + +ladspa-Ambisonics-22-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +ladspa-Ambisonics-22-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-22-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Virtualmic::Angle +gfloat +[0,180] +rwx +Angle +Angle. +90 + + + +ladspa-Virtualmic::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Virtualmic::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Virtualmic::Polar +gfloat +[0,1] +rwx +Polar +Polar. +1 + + + +ladspa-Ambisonics-33-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +ladspa-Ambisonics-33-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-33-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +ladspa-Ambisonics-31-rotator::Angle +gfloat +[-180,180] +rwx +Angle +Angle. +0 + + + +ladspa-Ambisonics-31-panner::Azimuth +gfloat +[-180,180] +rwx +Azimuth +Azimuth. +0 + + + +ladspa-Ambisonics-31-panner::Elevation +gfloat +[-90,90] +rwx +Elevation +Elevation. +0 + + + +http---plugin-org-uk-swh-plugins-xfade4::xfade +gfloat +[-1,1] +rwx +Crossfade +Crossfade. +0 + + + +http---plugin-org-uk-swh-plugins-xfade::xfade +gfloat +[-1,1] +rwx +Crossfade +Crossfade. +0 + + + +http---plugin-org-uk-swh-plugins-vynil::click +gfloat +[0,1] +rwx +Crackle +Crackle. +0 + + + +http---plugin-org-uk-swh-plugins-vynil::rpm +gfloat +[33,78] +rwx +RPM +RPM. +33 + + + +http---plugin-org-uk-swh-plugins-vynil::warp +gfloat +[0,1] +rwx +Surface warping +Surface warping. +0 + + + +http---plugin-org-uk-swh-plugins-vynil::wear +gfloat +[0,1] +rwx +Wear +Wear. +0 + + + +http---plugin-org-uk-swh-plugins-vynil::year +gfloat +[1900,1990] +rwx +Year +Year. +1990 + + + +http---plugin-org-uk-swh-plugins-valveRect::dist-p +gfloat +[0,1] +rwx +Distortion +Distortion. +0 + + + +http---plugin-org-uk-swh-plugins-valveRect::sag +gfloat +[0,1] +rwx +Sag level +Sag level. +0 + + + +http---plugin-org-uk-swh-plugins-valve::dist-p +gfloat +[0,1] +rwx +Distortion character +Distortion character. +0 + + + +http---plugin-org-uk-swh-plugins-valve::q-p +gfloat +[0,1] +rwx +Distortion level +Distortion level. +0 + + + +http---plugin-org-uk-swh-plugins-triplePara::bw-1 +gfloat +[0,4] +rwx +Band 1 bandwidth (octaves) +Band 1 bandwidth (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-triplePara::bw-2 +gfloat +[0,4] +rwx +Band 2 bandwidth (octaves) +Band 2 bandwidth (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-triplePara::bw-3 +gfloat +[0,4] +rwx +Band 3 bandwidth (octaves) +Band 3 bandwidth (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-triplePara::bw-H +gfloat +[0,1] +rwx +High-shelving slope +High-shelving slope. +0,5 + + + +http---plugin-org-uk-swh-plugins-triplePara::bw-L +gfloat +[0,1] +rwx +Low-shelving slope +Low-shelving slope. +0,5 + + + +http---plugin-org-uk-swh-plugins-triplePara::fc-1 +gfloat +[0,0001,0,49] +rwx +Band 1 frequency (Hz) +Band 1 frequency (Hz). +0,122575 + + + +http---plugin-org-uk-swh-plugins-triplePara::fc-2 +gfloat +[0,0001,0,49] +rwx +Band 2 frequency (Hz) +Band 2 frequency (Hz). +0,24505 + + + +http---plugin-org-uk-swh-plugins-triplePara::fc-3 +gfloat +[0,0001,0,49] +rwx +Band 3 frequency (Hz) +Band 3 frequency (Hz). +0,367525 + + + +http---plugin-org-uk-swh-plugins-triplePara::fc-H +gfloat +[0,0001,0,49] +rwx +High-shelving frequency (Hz) +High-shelving frequency (Hz). +0,49 + + + +http---plugin-org-uk-swh-plugins-triplePara::fc-L +gfloat +[0,0001,0,49] +rwx +Low-shelving frequency (Hz) +Low-shelving frequency (Hz). +0,0001 + + + +http---plugin-org-uk-swh-plugins-triplePara::gain-1 +gfloat +[-70,30] +rwx +Band 1 gain (dB) +Band 1 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-triplePara::gain-2 +gfloat +[-70,30] +rwx +Band 2 gain (dB) +Band 2 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-triplePara::gain-3 +gfloat +[-70,30] +rwx +Band 3 gain (dB) +Band 3 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-triplePara::gain-H +gfloat +[-70,30] +rwx +High-shelving gain (dB) +High-shelving gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-triplePara::gain-L +gfloat +[-70,30] +rwx +Low-shelving gain (dB) +Low-shelving gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-transient::attack +gfloat +[-1,1] +rwx +Attack speed +Attack speed. +0 + + + +http---plugin-org-uk-swh-plugins-transient::sustain +gfloat +[-1,1] +rwx +Sustain time +Sustain time. +0 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::da-db +gfloat +[-90,0] +rwx +Dry level (dB) +Dry level (dB). +-90 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::speed +gfloat +[0,10] +rwx +Tape speed (inches/sec, 1=normal) +Tape speed (inches/sec, 1=normal). +1 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t1a-db +gfloat +[-90,0] +rwx +Tap 1 level (dB) +Tap 1 level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t1d +gfloat +[0,4] +rwx +Tap 1 distance (inches) +Tap 1 distance (inches). +0 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t2a-db +gfloat +[-90,0] +rwx +Tap 2 level (dB) +Tap 2 level (dB). +-90 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t2d +gfloat +[0,4] +rwx +Tap 2 distance (inches) +Tap 2 distance (inches). +1 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t3a-db +gfloat +[-90,0] +rwx +Tap 3 level (dB) +Tap 3 level (dB). +-90 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t3d +gfloat +[0,4] +rwx +Tap 3 distance (inches) +Tap 3 distance (inches). +2 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t4a-db +gfloat +[-90,0] +rwx +Tap 4 level (dB) +Tap 4 level (dB). +-90 + + + +http---plugin-org-uk-swh-plugins-tapeDelay::t4d +gfloat +[0,4] +rwx +Tap 4 distance (inches) +Tap 4 distance (inches). +3 + + + +http---plugin-org-uk-swh-plugins-svf::filt-freq +gfloat +[0,6000] +rwx +Filter freq +Filter freq. +440 + + + +http---plugin-org-uk-swh-plugins-svf::filt-q +gfloat +[0,1] +rwx +Filter Q +Filter Q. +0,25 + + + +http---plugin-org-uk-swh-plugins-svf::filt-res +gfloat +[0,1] +rwx +Filter resonance +Filter resonance. +0 + + + +http---plugin-org-uk-swh-plugins-svf::filt-type +gint +[0,5] +rwx +Filter type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP) +Filter type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP). +0 + + + +http---plugin-org-uk-swh-plugins-smoothDecimate::rate +gfloat +[0,1] +rwx +Resample rate +Resample rate. +1 + + + +http---plugin-org-uk-swh-plugins-smoothDecimate::smooth +gfloat +[0,1] +rwx +Smoothing +Smoothing. +1 + + + +http---plugin-org-uk-swh-plugins-sinusWavewrapper::wrap +gfloat +[0,10] +rwx +Wrap degree +Wrap degree. +0 + + + +http---plugin-org-uk-swh-plugins-singlePara::bw +gfloat +[0,4] +rwx +Bandwidth (octaves) +Bandwidth (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-singlePara::fc +gfloat +[0,440] +rwx +Frequency (Hz) +Frequency (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-singlePara::gain +gfloat +[-70,30] +rwx +Gain (dB) +Gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sinCos::freq +gfloat +[1e-06,440] +rwx +Base frequency (Hz) +Base frequency (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-sinCos::pitch +gfloat +[0,8] +rwx +Pitch offset +Pitch offset. +0 + + + +http---plugin-org-uk-swh-plugins-sifter::size +gfloat +[1,1000] +rwx +Sift size +Sift size. +1 + + + +http---plugin-org-uk-swh-plugins-shaper::shapep +gfloat +[-10,10] +rwx +Waveshape +Waveshape. +0 + + + +http---plugin-org-uk-swh-plugins-se4::amplitude +gfloat +[-40,12] +r +Amplitude (dB) +Amplitude (dB). +0 + + + +http---plugin-org-uk-swh-plugins-se4::attack +gfloat +[1,5,400] +rwx +Attack time (ms) +Attack time (ms). +101,125 + + + +http---plugin-org-uk-swh-plugins-se4::attenuation +gfloat +[-24,0] +rwx +Attenuation (dB) +Attenuation (dB). +0 + + + +http---plugin-org-uk-swh-plugins-se4::gain-exp +gfloat +[0,24] +r +Gain expansion (dB) +Gain expansion (dB). +0 + + + +http---plugin-org-uk-swh-plugins-se4::knee +gfloat +[1,10] +rwx +Knee radius (dB) +Knee radius (dB). +3,25 + + + +http---plugin-org-uk-swh-plugins-se4::ratio +gfloat +[1,20] +rwx +Ratio (1:n) +Ratio (1:n). +1 + + + +http---plugin-org-uk-swh-plugins-se4::release +gfloat +[2,800] +rwx +Release time (ms) +Release time (ms). +401 + + + +http---plugin-org-uk-swh-plugins-se4::rms-peak +gfloat +[0,1] +rwx +RMS/peak +RMS/peak. +0 + + + +http---plugin-org-uk-swh-plugins-se4::threshold +gfloat +[-30,0] +rwx +Threshold level (dB) +Threshold level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc4::amplitude +gfloat +[-40,12] +r +Amplitude (dB) +Amplitude (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc4::attack +gfloat +[1,5,400] +rwx +Attack time (ms) +Attack time (ms). +101,125 + + + +http---plugin-org-uk-swh-plugins-sc4::gain-red +gfloat +[-24,0] +r +Gain reduction (dB) +Gain reduction (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc4::knee +gfloat +[1,10] +rwx +Knee radius (dB) +Knee radius (dB). +3,25 + + + +http---plugin-org-uk-swh-plugins-sc4::makeup-gain +gfloat +[0,24] +rwx +Makeup gain (dB) +Makeup gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc4::ratio +gfloat +[1,20] +rwx +Ratio (1:n) +Ratio (1:n). +1 + + + +http---plugin-org-uk-swh-plugins-sc4::release +gfloat +[2,800] +rwx +Release time (ms) +Release time (ms). +401 + + + +http---plugin-org-uk-swh-plugins-sc4::rms-peak +gfloat +[0,1] +rwx +RMS/peak +RMS/peak. +0 + + + +http---plugin-org-uk-swh-plugins-sc4::threshold +gfloat +[-30,0] +rwx +Threshold level (dB) +Threshold level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc3::attack +gfloat +[2,400] +rwx +Attack time (ms) +Attack time (ms). +101,5 + + + +http---plugin-org-uk-swh-plugins-sc3::chain-bal +gfloat +[0,1] +rwx +Chain balance +Chain balance. +0 + + + +http---plugin-org-uk-swh-plugins-sc3::knee +gfloat +[1,10] +rwx +Knee radius (dB) +Knee radius (dB). +3,25 + + + +http---plugin-org-uk-swh-plugins-sc3::makeup-gain +gfloat +[0,24] +rwx +Makeup gain (dB) +Makeup gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc3::ratio +gfloat +[1,10] +rwx +Ratio (1:n) +Ratio (1:n). +1 + + + +http---plugin-org-uk-swh-plugins-sc3::release +gfloat +[2,800] +rwx +Release time (ms) +Release time (ms). +401 + + + +http---plugin-org-uk-swh-plugins-sc3::threshold +gfloat +[-30,0] +rwx +Threshold level (dB) +Threshold level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc2::attack +gfloat +[2,400] +rwx +Attack time (ms) +Attack time (ms). +101,5 + + + +http---plugin-org-uk-swh-plugins-sc2::knee +gfloat +[1,10] +rwx +Knee radius (dB) +Knee radius (dB). +3,25 + + + +http---plugin-org-uk-swh-plugins-sc2::makeup-gain +gfloat +[0,24] +rwx +Makeup gain (dB) +Makeup gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc2::ratio +gfloat +[1,10] +rwx +Ratio (1:n) +Ratio (1:n). +1 + + + +http---plugin-org-uk-swh-plugins-sc2::release +gfloat +[2,800] +rwx +Release time (ms) +Release time (ms). +401 + + + +http---plugin-org-uk-swh-plugins-sc2::threshold +gfloat +[-30,0] +rwx +Threshold level (dB) +Threshold level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc1::attack +gfloat +[2,400] +rwx +Attack time (ms) +Attack time (ms). +101,5 + + + +http---plugin-org-uk-swh-plugins-sc1::knee +gfloat +[1,10] +rwx +Knee radius (dB) +Knee radius (dB). +3,25 + + + +http---plugin-org-uk-swh-plugins-sc1::makeup-gain +gfloat +[0,24] +rwx +Makeup gain (dB) +Makeup gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-sc1::ratio +gfloat +[1,10] +rwx +Ratio (1:n) +Ratio (1:n). +1 + + + +http---plugin-org-uk-swh-plugins-sc1::release +gfloat +[2,800] +rwx +Release time (ms) +Release time (ms). +401 + + + +http---plugin-org-uk-swh-plugins-sc1::threshold +gfloat +[-30,0] +rwx +Threshold level (dB) +Threshold level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-satanMaximiser::env-time-p +gfloat +[2,30] +rwx +Decay time (samples) +Decay time (samples). +30 + + + +http---plugin-org-uk-swh-plugins-satanMaximiser::knee-point +gfloat +[-90,0] +rwx +Knee point (dB) +Knee point (dB). +0 + + + +http---plugin-org-uk-swh-plugins-ringmod-2i1o::depth +gfloat +[0,2] +rwx +Modulation depth (0=none, 1=AM, 2=RM) +Modulation depth (0=none, 1=AM, 2=RM). +0 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::depthp +gfloat +[0,2] +rwx +Modulation depth (0=none, 1=AM, 2=RM) +Modulation depth (0=none, 1=AM, 2=RM). +0 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::freq +gfloat +[1,1000] +rwx +Frequency (Hz) +Frequency (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::saw +gfloat +[-1,1] +rwx +Sawtooth level +Sawtooth level. +0 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::sin +gfloat +[-1,1] +rwx +Sine level +Sine level. +1 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::squ +gfloat +[-1,1] +rwx +Square level +Square level. +0 + + + +http---plugin-org-uk-swh-plugins-ringmod-1i1o1l::tri +gfloat +[-1,1] +rwx +Triangle level +Triangle level. +0 + + + +http---plugin-org-uk-swh-plugins-revdelay::delay-time +gfloat +[0,5] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-revdelay::dry-level +gfloat +[-70,0] +rwx +Dry Level (dB) +Dry Level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-revdelay::feedback +gfloat +[0,1] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-revdelay::wet-level +gfloat +[-70,0] +rwx +Wet Level (dB) +Wet Level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-revdelay::xfade-samp +gint +[0,5000] +rwx +Crossfade samples +Crossfade samples. +1250 + + + +http---plugin-org-uk-swh-plugins-retroFlange::delay-depth-avg +gfloat +[0,10] +rwx +Average stall (ms) +Average stall (ms). +2,5 + + + +http---plugin-org-uk-swh-plugins-retroFlange::law-freq +gfloat +[0,5,8] +rwx +Flange frequency (Hz) +Flange frequency (Hz). +1 + + + +http---plugin-org-uk-swh-plugins-rateShifter::rate +gfloat +[-4,4] +rwx +Rate +Rate. +1 + + + +http---plugin-org-uk-swh-plugins-pointerCastDistortion::cutoff +gfloat +[0,0001,0,3] +rwx +Effect cutoff freq (Hz) +Effect cutoff freq (Hz). +0,075075 + + + +http---plugin-org-uk-swh-plugins-pointerCastDistortion::wet +gfloat +[0,1] +rwx +Dry/wet mix +Dry/wet mix. +0 + + + +http---plugin-org-uk-swh-plugins-plate::damping +gfloat +[0,1] +rwx +Damping +Damping. +0,25 + + + +http---plugin-org-uk-swh-plugins-plate::time +gfloat +[0,01,8,5] +rwx +Reverb time +Reverb time. +4,255 + + + +http---plugin-org-uk-swh-plugins-plate::wet +gfloat +[0,1] +rwx +Dry/wet mix +Dry/wet mix. +0,25 + + + +http---plugin-org-uk-swh-plugins-pitchScaleHQ::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-pitchScaleHQ::mult +gfloat +[0,5,2] +rwx +Pitch co-efficient +Pitch co-efficient. +1 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::attendb +gfloat +[-20,0] +rwx +Output attenuation (dB) +Output attenuation (dB). +0 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::delay-base +gfloat +[10,40] +rwx +Delay base (ms) +Delay base (ms). +10 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::detune +gfloat +[0,5] +rwx +Detune (%) +Detune (%). +1 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::law-freq +gfloat +[2,30] +rwx +LFO frequency (Hz) +LFO frequency (Hz). +9 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::voice-spread +gfloat +[0,2] +rwx +Voice separation (ms) +Voice separation (ms). +0,5 + + + +http---plugin-org-uk-swh-plugins-multivoiceChorus::voices +gint +[1,8] +rwx +Number of voices +Number of voices. +1 + + + +http---plugin-org-uk-swh-plugins-modDelay::base +gfloat +[0,1] +rwx +Base delay (s) +Base delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-1 +gfloat +[-70,30] +rwx +50Hz gain (low shelving) +50Hz gain (low shelving). +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-10 +gfloat +[-70,30] +rwx +1750Hz gain +1750Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-11 +gfloat +[-70,30] +rwx +2500Hz gain +2500Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-12 +gfloat +[-70,30] +rwx +3500Hz gain +3500Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-13 +gfloat +[-70,30] +rwx +5000Hz gain +5000Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-14 +gfloat +[-70,30] +rwx +10000Hz gain +10000Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-15 +gfloat +[-70,30] +rwx +20000Hz gain +20000Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-2 +gfloat +[-70,30] +rwx +100Hz gain +100Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-3 +gfloat +[-70,30] +rwx +156Hz gain +156Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-4 +gfloat +[-70,30] +rwx +220Hz gain +220Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-5 +gfloat +[-70,30] +rwx +311Hz gain +311Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-6 +gfloat +[-70,30] +rwx +440Hz gain +440Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-7 +gfloat +[-70,30] +rwx +622Hz gain +622Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-8 +gfloat +[-70,30] +rwx +880Hz gain +880Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::band-9 +gfloat +[-70,30] +rwx +1250Hz gain +1250Hz gain. +0 + + + +http---plugin-org-uk-swh-plugins-mbeq::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-matrixSpatialiser::width +gint +[-512,512] +rwx +Width +Width. +0 + + + +http---plugin-org-uk-swh-plugins-matrixMSSt::width +gfloat +[0,2] +rwx +Width +Width. +1 + + + +http---plugin-org-uk-swh-plugins-lsFilter::cutoff +gfloat +[0,002,0,5] +rwx +Cutoff frequency (Hz) +Cutoff frequency (Hz). +0,251 + + + +http---plugin-org-uk-swh-plugins-lsFilter::resonance +gfloat +[0,1] +rwx +Resonance +Resonance. +0 + + + +http---plugin-org-uk-swh-plugins-lsFilter::type +gint +[0,2] +rwx +Filter type (0=LP, 1=BP, 2=HP) +Filter type (0=LP, 1=BP, 2=HP). +0 + + + +http---plugin-org-uk-swh-plugins-lowpass-iir::cutoff +gfloat +[0,0001,0,45] +rwx +Cutoff Frequency +Cutoff Frequency. +0,337525 + + + +http---plugin-org-uk-swh-plugins-lowpass-iir::stages +gint +[1,10] +rwx +Stages(2 poles per stage) +Stages(2 poles per stage). +1 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiterConst::attenuation +gfloat +[0,12] +r +Attenuation (dB) +Attenuation (dB). +0 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiterConst::delay-s +gfloat +[0,001,0,15] +rwx +Lookahead time (s) +Lookahead time (s). +0,0755 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiterConst::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiterConst::limit +gfloat +[-20,0] +rwx +Limit (dB) +Limit (dB). +0 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiter::attenuation +gfloat +[0,12] +r +Attenuation (dB) +Attenuation (dB). +0 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiter::delay-s +gfloat +[0,001,2] +rwx +Lookahead delay +Lookahead delay. +1,0005 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiter::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-lookaheadLimiter::limit +gfloat +[-20,0] +rwx +Limit (dB) +Limit (dB). +0 + + + +http---plugin-org-uk-swh-plugins-lfoPhaser::fb +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-lfoPhaser::lfo-depth +gfloat +[0,1] +rwx +LFO depth +LFO depth. +0,25 + + + +http---plugin-org-uk-swh-plugins-lfoPhaser::lfo-rate +gfloat +[0,100] +rwx +LFO rate (Hz) +LFO rate (Hz). +25 + + + +http---plugin-org-uk-swh-plugins-lfoPhaser::spread +gfloat +[0,2] +rwx +Spread (octaves) +Spread (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::cdel +gfloat +[0,2700] +rwx +C delay (ms) +C delay (ms). +675 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::clev +gfloat +[0,50] +rwx +C level +C level. +25 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::feedback +gfloat +[-100,100] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::high-d +gfloat +[0,100] +rwx +High damp (%) +High damp (%). +50 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::ldel +gfloat +[0,2700] +rwx +L delay (ms) +L delay (ms). +675 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::llev +gfloat +[0,50] +rwx +L level +L level. +25 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::low-d +gfloat +[0,100] +rwx +Low damp (%) +Low damp (%). +50 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::rdel +gfloat +[0,2700] +rwx +R delay (ms) +R delay (ms). +675 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::rlev +gfloat +[0,50] +rwx +R level +R level. +25 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::spread +gfloat +[0,50] +rwx +Spread +Spread. +25 + + + +http---plugin-org-uk-swh-plugins-lcrDelay::wet +gfloat +[0,1] +rwx +Dry/Wet level +Dry/Wet level. +0 + + + +http---plugin-org-uk-swh-plugins-karaoke::gain +gfloat +[-70,0] +rwx +Vocal volume (dB) +Vocal volume (dB). +0 + + + +http---plugin-org-uk-swh-plugins-impulse-fc::frequency +gfloat +[0,5000] +rwx +Frequency (Hz) +Frequency (Hz). +1 + + + +http---plugin-org-uk-swh-plugins-hilbert::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-highpass-iir::cutoff +gfloat +[0,0001,0,45] +rwx +Cutoff Frequency +Cutoff Frequency. +0,112575 + + + +http---plugin-org-uk-swh-plugins-highpass-iir::stages +gint +[1,10] +rwx +Stages(2 poles per stage) +Stages(2 poles per stage). +1 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::band1-gain-db +gfloat +[-70,20] +rwx +Band 1 gain (dB) +Band 1 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::band2-gain-db +gfloat +[-70,20] +rwx +Band 2 gain (dB) +Band 2 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::band3-gain-db +gfloat +[-70,20] +rwx +Band 3 gain (dB) +Band 3 gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela1-fb +gfloat +[0,1] +rwx +Delay1 feedback +Delay1 feedback. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela1-length +gfloat +[0,2] +rwx +Delay1 length (s) +Delay1 length (s). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela1-wet +gfloat +[0,1] +rwx +Delay1 wetness +Delay1 wetness. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela2-fb +gfloat +[0,1] +rwx +Delay2 feedback +Delay2 feedback. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela2-length +gfloat +[0,2] +rwx +Delay2 length (s) +Delay2 length (s). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela2-wet +gfloat +[0,1] +rwx +Delay2 wetness +Delay2 wetness. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela3-fb +gfloat +[0,1] +rwx +Delay3 feedback +Delay3 feedback. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela3-length +gfloat +[0,2] +rwx +Delay3 length (s) +Delay3 length (s). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::dela3-wet +gfloat +[0,1] +rwx +Delay3 wetness +Delay3 wetness. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::drive1 +gfloat +[0,3] +rwx +Dist1 drive +Dist1 drive. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::drive2 +gfloat +[0,3] +rwx +Dist2 drive +Dist2 drive. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::drive3 +gfloat +[0,3] +rwx +Dist3 drive +Dist3 drive. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-freq +gfloat +[0,8000] +rwx +Filt1 freq +Filt1 freq. +440 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-lfo1 +gfloat +[-500,500] +rwx +Filt1 LFO1 level +Filt1 LFO1 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-lfo2 +gfloat +[-500,500] +rwx +Filt1 LFO2 level +Filt1 LFO2 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-q +gfloat +[0,1] +rwx +Filt1 q +Filt1 q. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-res +gfloat +[0,1] +rwx +Filt1 resonance +Filt1 resonance. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt1-type +gint +[0,5] +rwx +Filt1 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP) +Filt1 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-freq +gfloat +[0,8000] +rwx +Filt2 freq +Filt2 freq. +440 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-lfo1 +gfloat +[-500,500] +rwx +Filt2 LFO1 level +Filt2 LFO1 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-lfo2 +gfloat +[-500,500] +rwx +Filt2 LFO2 level +Filt2 LFO2 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-q +gfloat +[0,1] +rwx +Filt2 q +Filt2 q. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-res +gfloat +[0,1] +rwx +Filt2 resonance +Filt2 resonance. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt2-type +gint +[0,5] +rwx +Filt2 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP) +Filt2 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-freq +gfloat +[0,8000] +rwx +Filt3 freq +Filt3 freq. +440 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-lfo1 +gfloat +[-500,500] +rwx +Filt3 LFO1 level +Filt3 LFO1 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-lfo2 +gfloat +[-500,500] +rwx +Filt3 LFO2 level +Filt3 LFO2 level. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-q +gfloat +[0,1] +rwx +Filt3 q +Filt3 q. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-res +gfloat +[0,1] +rwx +Filt3 resonance +Filt3 resonance. +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::filt3-type +gint +[0,5] +rwx +Filt3 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP) +Filt3 type (0=none, 1=LP, 2=HP, 3=BP, 4=BR, 5=AP). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::in-gain-db +gfloat +[-70,20] +rwx +Input gain (dB) +Input gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::lfo1-freq +gfloat +[0,1000] +rwx +LFO1 freq (Hz) +LFO1 freq (Hz). +250 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::lfo1-wave +gint +[0,4] +rwx +LFO1 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = s&h) +LFO1 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = s&h). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::lfo2-freq +gfloat +[0,1000] +rwx +LFO2 freq (Hz) +LFO2 freq (Hz). +250 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::lfo2-wave +gint +[0,4] +rwx +LFO2 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = s&h) +LFO2 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = s&h). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc1-freq +gfloat +[0,4000] +rwx +Osc1 freq (Hz) +Osc1 freq (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc1-gain-db +gfloat +[-70,20] +rwx +Osc1 gain (dB) +Osc1 gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc1-wave +gint +[0,4] +rwx +Osc1 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = noise) +Osc1 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = noise). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc2-freq +gfloat +[0,4000] +rwx +Osc2 freq (Hz) +Osc2 freq (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc2-gain-db +gfloat +[-70,20] +rwx +Osc2 gain (dB) +Osc2 gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::osc2-wave +gint +[0,4] +rwx +Osc2 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = noise) +Osc2 wave (0 = sin, 1 = tri, 2 = saw, 3 = squ, 4 = noise). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm1-depth +gfloat +[0,2] +rwx +Ringmod 1 depth (0=none, 1=AM, 2=RM) +Ringmod 1 depth (0=none, 1=AM, 2=RM). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm1-gain-db +gfloat +[-70,20] +rwx +RM1 gain (dB) +RM1 gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm2-depth +gfloat +[0,2] +rwx +Ringmod 2 depth (0=none, 1=AM, 2=RM) +Ringmod 2 depth (0=none, 1=AM, 2=RM). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm2-gain-db +gfloat +[-70,20] +rwx +RM2 gain (dB) +RM2 gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm3-depth +gfloat +[0,2] +rwx +Ringmod 3 depth (0=none, 1=AM, 2=RM) +Ringmod 3 depth (0=none, 1=AM, 2=RM). +0 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::rm3-gain-db +gfloat +[-70,20] +rwx +RM3 gain (dB) +RM3 gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::xover-lfreqp +gfloat +[50,6000] +rwx +Xover lower freq +Xover lower freq. +1537,5 + + + +http---plugin-org-uk-swh-plugins-hermesFilter::xover-ufreqp +gfloat +[1000,10000] +rwx +Xover upper freq +Xover upper freq. +7750 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-1 +gfloat +[-1,1] +rwx +Fundamental magnitude +Fundamental magnitude. +1 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-10 +gfloat +[-1,1] +rwx +10th harmonic magnitude +10th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-2 +gfloat +[-1,1] +rwx +2nd harmonic magnitude +2nd harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-3 +gfloat +[-1,1] +rwx +3rd harmonic magnitude +3rd harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-4 +gfloat +[-1,1] +rwx +4th harmonic magnitude +4th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-5 +gfloat +[-1,1] +rwx +5th harmonic magnitude +5th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-6 +gfloat +[-1,1] +rwx +6th harmonic magnitude +6th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-7 +gfloat +[-1,1] +rwx +7th harmonic magnitude +7th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-8 +gfloat +[-1,1] +rwx +8th harmonic magnitude +8th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-harmonicGen::mag-9 +gfloat +[-1,1] +rwx +9th harmonic magnitude +9th harmonic magnitude. +0 + + + +http---plugin-org-uk-swh-plugins-hardLimiter::limit-db +gfloat +[-50,0] +rwx +dB limit +dB limit. +0 + + + +http---plugin-org-uk-swh-plugins-hardLimiter::res-gain +gfloat +[0,1] +rwx +Residue level +Residue level. +0 + + + +http---plugin-org-uk-swh-plugins-hardLimiter::wet-gain +gfloat +[0,1] +rwx +Wet level +Wet level. +1 + + + +http---plugin-org-uk-swh-plugins-gverb::damping +gfloat +[0,1] +rwx +Damping +Damping. +0,5 + + + +http---plugin-org-uk-swh-plugins-gverb::drylevel +gfloat +[-70,0] +rwx +Dry signal level (dB) +Dry signal level (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-gverb::earlylevel +gfloat +[-70,0] +rwx +Early reflection level (dB) +Early reflection level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-gverb::inputbandwidth +gfloat +[0,1] +rwx +Input bandwidth +Input bandwidth. +0,75 + + + +http---plugin-org-uk-swh-plugins-gverb::revtime +gfloat +[0,1,30] +rwx +Reverb time (s) +Reverb time (s). +7,575 + + + +http---plugin-org-uk-swh-plugins-gverb::roomsize +gfloat +[1,300] +rwx +Roomsize (m) +Roomsize (m). +75,75 + + + +http---plugin-org-uk-swh-plugins-gverb::taillevel +gfloat +[-70,0] +rwx +Tail level (dB) +Tail level (dB). +-17,5 + + + +http---plugin-org-uk-swh-plugins-gongBeater::imp-gain +gfloat +[-70,0] +rwx +Impulse gain (dB) +Impulse gain (dB). +-70 + + + +http---plugin-org-uk-swh-plugins-gongBeater::strike-duration +gfloat +[0,001,0,2] +rwx +Strike duration (s) +Strike duration (s). +0,1005 + + + +http---plugin-org-uk-swh-plugins-gongBeater::strike-gain +gfloat +[-70,0] +rwx +Strike gain (dB) +Strike gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-gong::apa0 +gfloat +[0,1] +rwx +Inner stiffness 1 + +Inner stiffness 1 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa1 +gfloat +[0,1] +rwx +Inner stiffness 2 + +Inner stiffness 2 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa2 +gfloat +[0,1] +rwx +Inner stiffness 3 + +Inner stiffness 3 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa3 +gfloat +[0,1] +rwx +Inner stiffness 4 + +Inner stiffness 4 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa4 +gfloat +[0,1] +rwx +Outer stiffness 1 + +Outer stiffness 1 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa5 +gfloat +[0,1] +rwx +Outer stiffness 2 + +Outer stiffness 2 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa6 +gfloat +[0,1] +rwx +Outer stiffness 3 + +Outer stiffness 3 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apa7 +gfloat +[0,1] +rwx +Outer stiffness 4 + +Outer stiffness 4 +. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb0 +gfloat +[0,1] +rwx +Inner stiffness 1 - +Inner stiffness 1 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb1 +gfloat +[0,1] +rwx +Inner stiffness 2 - +Inner stiffness 2 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb2 +gfloat +[0,1] +rwx +Inner stiffness 3 - +Inner stiffness 3 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb3 +gfloat +[0,1] +rwx +Inner stiffness 4 - +Inner stiffness 4 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb4 +gfloat +[0,1] +rwx +Outer stiffness 1 - +Outer stiffness 1 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb5 +gfloat +[0,1] +rwx +Outer stiffness 2 - +Outer stiffness 2 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb6 +gfloat +[0,1] +rwx +Outer stiffness 3 - +Outer stiffness 3 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::apb7 +gfloat +[0,1] +rwx +Outer stiffness 4 - +Outer stiffness 4 -. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::damp-i +gfloat +[0,1] +rwx +Inner damping +Inner damping. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::damp-o +gfloat +[0,1] +rwx +Outer damping +Outer damping. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::micpos +gfloat +[0,1] +rwx +Mic position +Mic position. +0,25 + + + +http---plugin-org-uk-swh-plugins-gong::scale0 +gfloat +[0,1] +rwx +Inner size 1 +Inner size 1. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale1 +gfloat +[0,1] +rwx +Inner size 2 +Inner size 2. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale2 +gfloat +[0,1] +rwx +Inner size 3 +Inner size 3. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale3 +gfloat +[0,1] +rwx +Inner size 4 +Inner size 4. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale4 +gfloat +[0,1] +rwx +Outer size 1 +Outer size 1. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale5 +gfloat +[0,1] +rwx +Outer size 2 +Outer size 2. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale6 +gfloat +[0,1] +rwx +Outer size 3 +Outer size 3. +0,5 + + + +http---plugin-org-uk-swh-plugins-gong::scale7 +gfloat +[0,1] +rwx +Outer size 4 +Outer size 4. +0,5 + + + +http---plugin-org-uk-swh-plugins-giantFlange::delay1 +gfloat +[0,10,5] +rwx +Delay 1 range (s) +Delay 1 range (s). +2,625 + + + +http---plugin-org-uk-swh-plugins-giantFlange::delay2 +gfloat +[0,10,5] +rwx +Delay 2 range (s) +Delay 2 range (s). +0 + + + +http---plugin-org-uk-swh-plugins-giantFlange::deldouble +gboolean + +rwx +Double delay +Double delay. +FALSE + + + +http---plugin-org-uk-swh-plugins-giantFlange::feedback +gfloat +[-100,100] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-giantFlange::freq1 +gfloat +[0,30] +rwx +LFO frequency 1 (Hz) +LFO frequency 1 (Hz). +1 + + + +http---plugin-org-uk-swh-plugins-giantFlange::freq2 +gfloat +[0,30] +rwx +LFO frequency 2 (Hz) +LFO frequency 2 (Hz). +1 + + + +http---plugin-org-uk-swh-plugins-giantFlange::wet +gfloat +[0,1] +rwx +Dry/Wet level +Dry/Wet level. +0 + + + +http---plugin-org-uk-swh-plugins-gate::attack +gfloat +[0,01,1000] +rwx +Attack (ms) +Attack (ms). +0,1 + + + +http---plugin-org-uk-swh-plugins-gate::decay +gfloat +[2,4000] +rwx +Decay (ms) +Decay (ms). +50 + + + +http---plugin-org-uk-swh-plugins-gate::gate-state +gfloat +[0,1] +r +Gate state +Gate state. +0 + + + +http---plugin-org-uk-swh-plugins-gate::hf-fc +gfloat +[250,20000] +rwx +HF key filter (Hz) +HF key filter (Hz). +2000 + + + +http---plugin-org-uk-swh-plugins-gate::hold +gfloat +[2,2000] +rwx +Hold (ms) +Hold (ms). +50 + + + +http---plugin-org-uk-swh-plugins-gate::level +gfloat +[-90,0] +r +Key level (dB) +Key level (dB). +0 + + + +http---plugin-org-uk-swh-plugins-gate::lf-fc +gfloat +[25,4000] +rwx +LF key filter (Hz) +LF key filter (Hz). +500 + + + +http---plugin-org-uk-swh-plugins-gate::range +gfloat +[-90,0] +rwx +Range (dB) +Range (dB). +-20 + + + +http---plugin-org-uk-swh-plugins-gate::select +gint +[-1,1] +rwx +Output select (-1 = key listen, 0 = gate, 1 = bypass) +Output select (-1 = key listen, 0 = gate, 1 = bypass). +0 + + + +http---plugin-org-uk-swh-plugins-gate::threshold +gfloat +[-70,20] +rwx +Threshold (dB) +Threshold (dB). +-40 + + + +http---plugin-org-uk-swh-plugins-freqTracker::speed +gfloat +[0,1] +rwx +Tracking speed +Tracking speed. +0,5 + + + +http---plugin-org-uk-swh-plugins-foverdrive::drive +gfloat +[1,3] +rwx +Drive level +Drive level. +1 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::f0 +gfloat +[1,20000] +rwx +Frequency 1 +Frequency 1. +5000,75 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::f1 +gfloat +[1,20000] +rwx +Frequency 2 +Frequency 2. +10000,5 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::f2 +gfloat +[1,20000] +rwx +Frequency 3 +Frequency 3. +15000,2 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::f3 +gfloat +[1,20000] +rwx +Frequency 4 +Frequency 4. +20000 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::fb0 +gfloat +[-1,1] +rwx +Feedback 1 +Feedback 1. +0 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::fb1 +gfloat +[-1,1] +rwx +Feedback 2 +Feedback 2. +0 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::fb2 +gfloat +[-1,1] +rwx +Feedback 3 +Feedback 3. +0 + + + +http---plugin-org-uk-swh-plugins-fourByFourPole::fb3 +gfloat +[-1,1] +rwx +Feedback 4 +Feedback 4. +0 + + + +http---plugin-org-uk-swh-plugins-foldover::drive-p +gfloat +[0,1] +rwx +Drive +Drive. +0 + + + +http---plugin-org-uk-swh-plugins-foldover::push +gfloat +[0,1] +rwx +Skew +Skew. +0 + + + +http---plugin-org-uk-swh-plugins-fmOsc::wave +gint +[1,4] +rwx +Waveform (1=sin, 2=tri, 3=squ, 4=saw) +Waveform (1=sin, 2=tri, 3=squ, 4=saw). +1 + + + +http---plugin-org-uk-swh-plugins-flanger::delay-base +gfloat +[0,1,25] +rwx +Delay base (ms) +Delay base (ms). +6,325 + + + +http---plugin-org-uk-swh-plugins-flanger::detune +gfloat +[0,10] +rwx +Max slowdown (ms) +Max slowdown (ms). +2,5 + + + +http---plugin-org-uk-swh-plugins-flanger::feedback +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-flanger::law-freq +gfloat +[0,05,100] +rwx +LFO frequency (Hz) +LFO frequency (Hz). +25,0375 + + + +http---plugin-org-uk-swh-plugins-fastLookaheadLimiter::attenuation +gfloat +[0,70] +r +Attenuation (dB) +Attenuation (dB). +0 + + + +http---plugin-org-uk-swh-plugins-fastLookaheadLimiter::ingain +gfloat +[-20,20] +rwx +Input gain (dB) +Input gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-fastLookaheadLimiter::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-fastLookaheadLimiter::limit +gfloat +[-20,0] +rwx +Limit (dB) +Limit (dB). +0 + + + +http---plugin-org-uk-swh-plugins-fastLookaheadLimiter::release +gfloat +[0,01,2] +rwx +Release time (s) +Release time (s). +0,5075 + + + +http---plugin-org-uk-swh-plugins-fadDelay::delay +gfloat +[0,1,10] +rwx +Delay (seconds) +Delay (seconds). +1 + + + +http---plugin-org-uk-swh-plugins-fadDelay::fb-db +gfloat +[-70,0] +rwx +Feedback (dB) +Feedback (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dysonCompress::cfrate +gfloat +[0,1] +rwx +Fast compression ratio +Fast compression ratio. +0,5 + + + +http---plugin-org-uk-swh-plugins-dysonCompress::crate +gfloat +[0,1] +rwx +Compression ratio +Compression ratio. +0,5 + + + +http---plugin-org-uk-swh-plugins-dysonCompress::peak-limit +gfloat +[-30,0] +rwx +Peak limit (dB) +Peak limit (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dysonCompress::release-time +gfloat +[0,1] +rwx +Release time (s) +Release time (s). +0,25 + + + +http---plugin-org-uk-swh-plugins-dj-eq-mono::hi +gfloat +[-70,6] +rwx +Hi gain (dB) +Hi gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq-mono::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq-mono::lo +gfloat +[-70,6] +rwx +Lo gain (dB) +Lo gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq-mono::mid +gfloat +[-70,6] +rwx +Mid gain (dB) +Mid gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq::hi +gfloat +[-70,6] +rwx +Hi gain (dB) +Hi gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq::lo +gfloat +[-70,6] +rwx +Lo gain (dB) +Lo gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-dj-eq::mid +gfloat +[-70,6] +rwx +Mid gain (dB) +Mid gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-djFlanger::depth +gfloat +[1,5] +rwx +LFO depth (ms) +LFO depth (ms). +4 + + + +http---plugin-org-uk-swh-plugins-djFlanger::feedback +gfloat +[-100,100] +rwx +Feedback (%) +Feedback (%). +0 + + + +http---plugin-org-uk-swh-plugins-djFlanger::period +gfloat +[0,1,32] +rwx +LFO period (s) +LFO period (s). +1 + + + +http---plugin-org-uk-swh-plugins-djFlanger::sync +gboolean + +rwx +LFO sync +LFO sync. +FALSE + + + +http---plugin-org-uk-swh-plugins-divider::denominator +gint +[1,8] +rwx +Denominator +Denominator. +1 + + + +http---plugin-org-uk-swh-plugins-diode::mode +gfloat +[0,3] +rwx +Mode (0 for none, 1 for half wave, 2 for full wave) +Mode (0 for none, 1 for half wave, 2 for full wave). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::delay-rand-pc +gfloat +[0,100] +rwx +Delay random (%) +Delay random (%). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::delay-range +gfloat +[0,0001,6] +rwx +Delay range (s) +Delay range (s). +6 + + + +http---plugin-org-uk-swh-plugins-delayorama::delay-scale +gfloat +[0,2,5] +rwx +Delay change +Delay change. +1 + + + +http---plugin-org-uk-swh-plugins-delayorama::feedback-pc +gfloat +[0,100] +rwx +Feedback (%) +Feedback (%). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::first-delay +gfloat +[0,5] +rwx +First delay (s) +First delay (s). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::gain +gfloat +[-96,24] +rwx +Input gain (dB) +Input gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::gain-rand-pc +gfloat +[0,100] +rwx +Amplitude random (%) +Amplitude random (%). +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::gain-scale +gfloat +[0,2,5] +rwx +Amplitude change +Amplitude change. +1 + + + +http---plugin-org-uk-swh-plugins-delayorama::seed +gint +[0,1000] +rwx +Random seed +Random seed. +0 + + + +http---plugin-org-uk-swh-plugins-delayorama::tap-count +gint +[2,128] +rwx +Number of taps +Number of taps. +2 + + + +http---plugin-org-uk-swh-plugins-delayorama::wet +gfloat +[0,1] +rwx +Dry/wet mix +Dry/wet mix. +1 + + + +http---plugin-org-uk-swh-plugins-delay-n::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-delay-n::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-delay-l::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-delay-l::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-delay-c::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-delay-c::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-decimator::bits +gfloat +[1,24] +rwx +Bit depth +Bit depth. +24 + + + +http---plugin-org-uk-swh-plugins-decimator::fs +gfloat +[0,001,1] +rwx +Sample rate (Hz) +Sample rate (Hz). +1 + + + +http---plugin-org-uk-swh-plugins-decay::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +1 + + + +http---plugin-org-uk-swh-plugins-crossoverDist::amp +gfloat +[0,0,1] +rwx +Crossover amplitude +Crossover amplitude. +0 + + + +http---plugin-org-uk-swh-plugins-crossoverDist::smooth +gfloat +[0,1] +rwx +Smoothing +Smoothing. +1 + + + +http---plugin-org-uk-swh-plugins-const::amplitude +gfloat +[-1,1,1] +rwx +Signal amplitude +Signal amplitude. +0 + + + +http---plugin-org-uk-swh-plugins-comb-n::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-n::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-n::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-comb-l::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-l::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-l::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-comb-c::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-c::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-comb-c::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-combSplitter::freq +gfloat +[16,640] +rwx +Band separation (Hz) +Band separation (Hz). +172 + + + +http---plugin-org-uk-swh-plugins-comb::fb +gfloat +[-0,99,0,99] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-comb::freq +gfloat +[16,640] +rwx +Band separation (Hz) +Band separation (Hz). +172 + + + +http---plugin-org-uk-swh-plugins-chebstortion::dist +gfloat +[0,3] +rwx +Distortion +Distortion. +0 + + + +http---plugin-org-uk-swh-plugins-bwxover-iir::cutoff +gfloat +[0,0001,0,45] +rwx +Cutoff Frequency (Hz) +Cutoff Frequency (Hz). +0,112575 + + + +http---plugin-org-uk-swh-plugins-bwxover-iir::resonance +gfloat +[0,1,1,41] +rwx +Resonance +Resonance. +0,755 + + + +http---plugin-org-uk-swh-plugins-buttlow-iir::cutoff +gfloat +[0,0001,0,45] +rwx +Cutoff Frequency (Hz) +Cutoff Frequency (Hz). +0,112575 + + + +http---plugin-org-uk-swh-plugins-buttlow-iir::resonance +gfloat +[0,1,1,41] +rwx +Resonance +Resonance. +0,755 + + + +http---plugin-org-uk-swh-plugins-butthigh-iir::cutoff +gfloat +[0,0001,0,45] +rwx +Cutoff Frequency (Hz) +Cutoff Frequency (Hz). +0,112575 + + + +http---plugin-org-uk-swh-plugins-butthigh-iir::resonance +gfloat +[0,1,1,41] +rwx +Resonance +Resonance. +0,755 + + + +http---plugin-org-uk-swh-plugins-bodeShifterCV::atten +gfloat +[0,1] +rwx +CV Attenuation +CV Attenuation. +1 + + + +http---plugin-org-uk-swh-plugins-bodeShifterCV::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-bodeShifterCV::mix +gfloat +[-1,1] +rwx +Mix (-1=down, +1=up) +Mix (-1=down, +1=up). +0 + + + +http---plugin-org-uk-swh-plugins-bodeShifterCV::shift-b +gfloat +[0,5000] +rwx +Base shift +Base shift. +0 + + + +http---plugin-org-uk-swh-plugins-bodeShifter::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-bodeShifter::shift +gfloat +[0,5000] +rwx +Frequency shift +Frequency shift. +0 + + + +http---plugin-org-uk-swh-plugins-bandpass-iir::center +gfloat +[0,0001,0,45] +rwx +Center Frequency (Hz) +Center Frequency (Hz). +0,22505 + + + +http---plugin-org-uk-swh-plugins-bandpass-iir::stages +gint +[1,10] +rwx +Stages(2 poles per stage) +Stages(2 poles per stage). +1 + + + +http---plugin-org-uk-swh-plugins-bandpass-iir::width +gfloat +[0,0001,0,45] +rwx +Bandwidth (Hz) +Bandwidth (Hz). +0,22505 + + + +http---plugin-org-uk-swh-plugins-bandpass-a-iir::center +gfloat +[0,0001,0,45] +rwx +Center Frequency (Hz) +Center Frequency (Hz). +0,112575 + + + +http---plugin-org-uk-swh-plugins-bandpass-a-iir::width +gfloat +[0,0001,0,45] +rwx +Bandwidth (Hz) +Bandwidth (Hz). +0,22505 + + + +http---plugin-org-uk-swh-plugins-autoPhaser::attack-p +gfloat +[0,1] +rwx +Attack time (s) +Attack time (s). +0,25 + + + +http---plugin-org-uk-swh-plugins-autoPhaser::decay-p +gfloat +[0,1] +rwx +Decay time (s) +Decay time (s). +0,25 + + + +http---plugin-org-uk-swh-plugins-autoPhaser::depth-p +gfloat +[0,1] +rwx +Modulation depth +Modulation depth. +0,25 + + + +http---plugin-org-uk-swh-plugins-autoPhaser::fb +gfloat +[-1,1] +rwx +Feedback +Feedback. +0 + + + +http---plugin-org-uk-swh-plugins-autoPhaser::spread +gfloat +[0,2] +rwx +Spread (octaves) +Spread (octaves). +1 + + + +http---plugin-org-uk-swh-plugins-artificialLatency::delay +gfloat +[0,10000] +rwx +Delay (ms) +Delay (ms). +2500 + + + +http---plugin-org-uk-swh-plugins-artificialLatency::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-analogueOsc::freq +gfloat +[1e-06,440] +rwx +Frequency (Hz) +Frequency (Hz). +440 + + + +http---plugin-org-uk-swh-plugins-analogueOsc::instab +gfloat +[0,1] +rwx +Instability +Instability. +0 + + + +http---plugin-org-uk-swh-plugins-analogueOsc::warm +gfloat +[0,1] +rwx +Warmth +Warmth. +0 + + + +http---plugin-org-uk-swh-plugins-analogueOsc::wave +gint +[1,4] +rwx +Waveform (1=sin, 2=tri, 3=squ, 4=saw) +Waveform (1=sin, 2=tri, 3=squ, 4=saw). +1 + + + +http---plugin-org-uk-swh-plugins-amp::gain +gfloat +[-70,70] +rwx +Amps gain (dB) +Amps gain (dB). +0 + + + +http---plugin-org-uk-swh-plugins-amPitchshift::latency +gfloat +[0,1] +r +latency +latency. +0 + + + +http---plugin-org-uk-swh-plugins-amPitchshift::pitch +gfloat +[0,25,4] +rwx +Pitch shift +Pitch shift. +1 + + + +http---plugin-org-uk-swh-plugins-amPitchshift::size +gint +[1,7] +rwx +Buffer size +Buffer size. +4 + + + +http---plugin-org-uk-swh-plugins-allpass-n::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-n::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-n::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-allpass-l::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-l::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-l::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-allpass-c::decay-time +gfloat +[0,10] +rwx +Decay Time (s) +Decay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-c::delay-time +gfloat +[0,10] +rwx +Delay Time (s) +Delay Time (s). +0 + + + +http---plugin-org-uk-swh-plugins-allpass-c::max-delay +gfloat +[0,10] +rwx +Max Delay (s) +Max Delay (s). +1 + + + +http---plugin-org-uk-swh-plugins-alias::level +gfloat +[0,1] +rwx +Aliasing level +Aliasing level. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::attack +gfloat +[0,01,2000] +rwx +Attack +Attack. +20 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::clip-in +gboolean + +r +0dB-In +0dB-In. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::clip-out +gboolean + +r +0dB-Out +0dB-Out. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::compression +gfloat +[0,1] +r +Gain Reduction +Gain Reduction. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f1-active +gboolean + +r +F1 Active +F1 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f1-freq +gfloat +[10,18000] +rwx +F1 Freq +F1 Freq. +250 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f1-level +gfloat +[0,0625,16] +rwx +F1 Level +F1 Level. +1 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f2-active +gboolean + +r +F2 Active +F2 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f2-freq +gfloat +[10,18000] +rwx +F2 Freq +F2 Freq. +4500 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::f2-level +gfloat +[0,0625,16] +rwx +F2 Level +F2 Level. +1 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::knee +gfloat +[1,8] +rwx +Knee +Knee. +2,82843 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::makeup +gfloat +[1,64] +rwx +Makeup Gain +Makeup Gain. +2 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::meter-in +gfloat +[0,1] +r +Input +Input. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::meter-out +gfloat +[0,1] +r +Output +Output. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +2 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::release +gfloat +[0,01,2000] +rwx +Release +Release. +250 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::sc-listen +gboolean + +rwx +S/C-Listen +S/C-Listen. +FALSE + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::sc-mode +gint +[0,9] +rwx +Sidechain Mode +Sidechain Mode. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::stereo-link +gint +[0,1] +rwx +Stereo Link +Stereo Link. +0 + + + +http---calf-sourceforge-net-plugins-Sidechaincompressor::threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,125 + + + +http---calf-sourceforge-net-plugins-Pulsator::amount +gfloat +[0,1] +rwx +Modulation +Modulation. +1 + + + +http---calf-sourceforge-net-plugins-Pulsator::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Pulsator::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::freq +gfloat +[0,01,100] +rwx +Frequency +Frequency. +1 + + + +http---calf-sourceforge-net-plugins-Pulsator::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +http---calf-sourceforge-net-plugins-Pulsator::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +http---calf-sourceforge-net-plugins-Pulsator::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::mode +gint +[0,4] +rwx +Mode +Mode. +0 + + + +http---calf-sourceforge-net-plugins-Pulsator::mono +gboolean + +rwx +Mono-in +Mono-in. +FALSE + + + +http---calf-sourceforge-net-plugins-Pulsator::offset +gfloat +[0,1] +rwx +Offset L/R +Offset L/R. +0,5 + + + +http---calf-sourceforge-net-plugins-Pulsator::reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::attack0 +gfloat +[0,01,2000] +rwx +Attack 1 +Attack 1. +50 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::attack1 +gfloat +[0,01,2000] +rwx +Attack 2 +Attack 2. +25 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::attack2 +gfloat +[0,01,2000] +rwx +Attack 3 +Attack 3. +12,5 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::attack3 +gfloat +[0,01,2000] +rwx +Attack 4 +Attack 4. +6,25 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::bypass0 +gboolean + +rwx +Bypass 1 +Bypass 1. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::bypass1 +gboolean + +rwx +Bypass 2 +Bypass 2. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::bypass2 +gboolean + +rwx +Bypass 3 +Bypass 3. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::bypass3 +gboolean + +rwx +Bypass 4 +Bypass 4. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::compression0 +gfloat +[0,1] +r +Gain Reduction 1 +Gain Reduction 1. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::compression1 +gfloat +[0,1] +r +Gain Reduction 2 +Gain Reduction 2. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::compression2 +gfloat +[0,1] +r +Gain Reduction 3 +Gain Reduction 3. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::compression3 +gfloat +[0,1] +r +Gain Reduction 4 +Gain Reduction 4. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::detection0 +gint +[0,1] +rwx +Detection 1 +Detection 1. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::detection1 +gint +[0,1] +rwx +Detection 2 +Detection 2. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::detection2 +gint +[0,1] +rwx +Detection 3 +Detection 3. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::detection3 +gint +[0,1] +rwx +Detection 4 +Detection 4. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::freq0 +gfloat +[10,20000] +rwx +Split 1/2 +Split 1/2. +100 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::freq1 +gfloat +[10,20000] +rwx +Split 2/3 +Split 2/3. +1000 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::freq2 +gfloat +[10,20000] +rwx +Split 3/4 +Split 3/4. +6000 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::knee0 +gfloat +[1,8] +rwx +Knee 1 +Knee 1. +2,82843 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::knee1 +gfloat +[1,8] +rwx +Knee 2 +Knee 2. +2,82843 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::knee2 +gfloat +[1,8] +rwx +Knee 3 +Knee 3. +2,82843 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::knee3 +gfloat +[1,8] +rwx +Knee 4 +Knee 4. +2,82843 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::level-in +gfloat +[0,64] +rwx +Input +Input. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::level-out +gfloat +[0,64] +rwx +Output +Output. +1 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::makeup0 +gfloat +[1,64] +rwx +Makeup 1 +Makeup 1. +2 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::makeup1 +gfloat +[1,64] +rwx +Makeup 2 +Makeup 2. +2 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::makeup2 +gfloat +[1,64] +rwx +Makeup 3 +Makeup 3. +2 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::makeup3 +gfloat +[1,64] +rwx +Makeup 4 +Makeup 4. +2 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::meter-inL +gfloat +[0,1] +r +Input L +Input L. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::meter-inR +gfloat +[0,1] +r +Input R +Input R. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::meter-outL +gfloat +[0,1] +r +Output L +Output L. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::meter-outR +gfloat +[0,1] +r +Output R +Output R. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::mute0 +gboolean + +rwx +Mute 1 +Mute 1. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::mute1 +gboolean + +rwx +Mute 2 +Mute 2. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::mute2 +gboolean + +rwx +Mute 3 +Mute 3. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::mute3 +gboolean + +rwx +Mute 4 +Mute 4. +FALSE + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::output0 +gfloat +[0,1] +r +Output 1 +Output 1. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::output1 +gfloat +[0,1] +r +Output 2 +Output 2. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::output2 +gfloat +[0,1] +r +Output 3 +Output 3. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::output3 +gfloat +[0,1] +r +Output 4 +Output 4. +0 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::q0 +gfloat +[0,25,4] +rwx +Q1 +Q1. +0,895025 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::q1 +gfloat +[0,25,4] +rwx +Q2 +Q2. +0,895025 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::q2 +gfloat +[0,25,4] +rwx +Q3 +Q3. +0,895025 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::ratio0 +gfloat +[1,20] +rwx +Ratio 1 +Ratio 1. +3 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::ratio1 +gfloat +[1,20] +rwx +Ratio 2 +Ratio 2. +3 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::ratio2 +gfloat +[1,20] +rwx +Ratio 3 +Ratio 3. +3 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::ratio3 +gfloat +[1,20] +rwx +Ratio 4 +Ratio 4. +3 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::release0 +gfloat +[0,01,2000] +rwx +Release 1 +Release 1. +100 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::release1 +gfloat +[0,01,2000] +rwx +Release 2 +Release 2. +50 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::release2 +gfloat +[0,01,2000] +rwx +Release 3 +Release 3. +25 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::release3 +gfloat +[0,01,2000] +rwx +Release 4 +Release 4. +12,5 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::sep0 +gfloat +[-0,5,0,5] +rwx +S1 +S1. +-0,17 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::sep1 +gfloat +[-0,5,0,5] +rwx +S2 +S2. +-0,17 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::sep2 +gfloat +[-0,5,0,5] +rwx +S3 +S3. +-0,17 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::threshold0 +gfloat +[0,000976563,1] +rwx +Threshold 1 +Threshold 1. +0,0625 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::threshold1 +gfloat +[0,000976563,1] +rwx +Threshold 2 +Threshold 2. +0,03125 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::threshold2 +gfloat +[0,000976563,1] +rwx +Threshold 3 +Threshold 3. +0,015625 + + + +http---calf-sourceforge-net-plugins-Multibandcompressor::threshold3 +gfloat +[0,000976563,1] +rwx +Threshold 4 +Threshold 4. +0,0078125 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hp-active +gboolean + +rwx +HP Active +HP Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hp-freq +gfloat +[10,20000] +rwx +HP Freq +HP Freq. +30 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hp-mode +gint +[0,2] +rwx +HP Mode +HP Mode. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::hs-level +gfloat +[0,015625,64] +rwx +Level H +Level H. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::lp-active +gboolean + +rwx +LP Active +LP Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::lp-freq +gfloat +[10,20000] +rwx +LP Freq +LP Freq. +18000 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::lp-mode +gint +[0,2] +rwx +LP Mode +LP Mode. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::ls-level +gfloat +[0,015625,64] +rwx +Level L +Level L. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +250 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p1-level +gfloat +[0,015625,64] +rwx +Level 1 +Level 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p1-q +gfloat +[0,1,100] +rwx +Q 1 +Q 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +1000 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p2-level +gfloat +[0,015625,64] +rwx +Level 2 +Level 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p2-q +gfloat +[0,1,100] +rwx +Q 2 +Q 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +2500 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p3-level +gfloat +[0,015625,64] +rwx +Level 3 +Level 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p3-q +gfloat +[0,1,100] +rwx +Q 3 +Q 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p4-active +gboolean + +rwx +F4 Active +F4 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p4-freq +gfloat +[10,20000] +rwx +Freq 4 +Freq 4. +5000 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p4-level +gfloat +[0,015625,64] +rwx +Level 4 +Level 4. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer8Band::p4-q +gfloat +[0,1,100] +rwx +Q 4 +Q 4. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::hs-level +gfloat +[0,015625,64] +rwx +Level H +Level H. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::ls-level +gfloat +[0,015625,64] +rwx +Level L +Level L. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +250 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p1-level +gfloat +[0,015625,64] +rwx +Level 1 +Level 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p1-q +gfloat +[0,1,100] +rwx +Q 1 +Q 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +1000 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p2-level +gfloat +[0,015625,64] +rwx +Level 2 +Level 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p2-q +gfloat +[0,1,100] +rwx +Q 2 +Q 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +2500 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p3-level +gfloat +[0,015625,64] +rwx +Level 3 +Level 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer5Band::p3-q +gfloat +[0,1,100] +rwx +Q 3 +Q 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::clip-inL +gfloat +[0,1] +r +0dB-InL +0dB-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::clip-inR +gfloat +[0,1] +r +0dB-InR +0dB-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::clip-outL +gfloat +[0,1] +r +0dB-OutL +0dB-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::clip-outR +gfloat +[0,1] +r +0dB-OutR +0dB-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hp-active +gboolean + +rwx +HP Active +HP Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hp-freq +gfloat +[10,20000] +rwx +HP Freq +HP Freq. +30 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hp-mode +gint +[0,2] +rwx +HP Mode +HP Mode. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hs-active +gboolean + +rwx +HS Active +HS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hs-freq +gfloat +[10,20000] +rwx +Freq H +Freq H. +4000 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::hs-level +gfloat +[0,015625,64] +rwx +Level H +Level H. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::level-in +gfloat +[0,64] +rwx +Input Gain +Input Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::level-out +gfloat +[0,64] +rwx +Output Gain +Output Gain. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::lp-active +gboolean + +rwx +LP Active +LP Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::lp-freq +gfloat +[10,20000] +rwx +LP Freq +LP Freq. +18000 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::lp-mode +gint +[0,2] +rwx +LP Mode +LP Mode. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::ls-active +gboolean + +rwx +LS Active +LS Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::ls-freq +gfloat +[10,20000] +rwx +Freq L +Freq L. +200 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::ls-level +gfloat +[0,015625,64] +rwx +Level L +Level L. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::meter-inL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::meter-inR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::meter-outL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::meter-outR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p1-active +gboolean + +rwx +F1 Active +F1 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p1-freq +gfloat +[10,20000] +rwx +Freq 1 +Freq 1. +60 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p1-level +gfloat +[0,015625,64] +rwx +Level 1 +Level 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p1-q +gfloat +[0,1,100] +rwx +Q 1 +Q 1. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p2-active +gboolean + +rwx +F2 Active +F2 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p2-freq +gfloat +[10,20000] +rwx +Freq 2 +Freq 2. +120 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p2-level +gfloat +[0,015625,64] +rwx +Level 2 +Level 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p2-q +gfloat +[0,1,100] +rwx +Q 2 +Q 2. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p3-active +gboolean + +rwx +F3 Active +F3 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p3-freq +gfloat +[10,20000] +rwx +Freq 3 +Freq 3. +250 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p3-level +gfloat +[0,015625,64] +rwx +Level 3 +Level 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p3-q +gfloat +[0,1,100] +rwx +Q 3 +Q 3. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p4-active +gboolean + +rwx +F4 Active +F4 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p4-freq +gfloat +[10,20000] +rwx +Freq 4 +Freq 4. +500 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p4-level +gfloat +[0,015625,64] +rwx +Level 4 +Level 4. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p4-q +gfloat +[0,1,100] +rwx +Q 4 +Q 4. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p5-active +gboolean + +rwx +F5 Active +F5 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p5-freq +gfloat +[10,20000] +rwx +Freq 5 +Freq 5. +1000 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p5-level +gfloat +[0,015625,64] +rwx +Level 5 +Level 5. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p5-q +gfloat +[0,1,100] +rwx +Q 5 +Q 5. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p6-active +gboolean + +rwx +F6 Active +F6 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p6-freq +gfloat +[10,20000] +rwx +Freq 6 +Freq 6. +2500 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p6-level +gfloat +[0,015625,64] +rwx +Level 6 +Level 6. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p6-q +gfloat +[0,1,100] +rwx +Q 6 +Q 6. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p7-active +gboolean + +rwx +F7 Active +F7 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p7-freq +gfloat +[10,20000] +rwx +Freq 7 +Freq 7. +4000 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p7-level +gfloat +[0,015625,64] +rwx +Level 7 +Level 7. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p7-q +gfloat +[0,1,100] +rwx +Q 7 +Q 7. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p8-active +gboolean + +rwx +F8 Active +F8 Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p8-freq +gfloat +[10,20000] +rwx +Freq 8 +Freq 8. +6000 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p8-level +gfloat +[0,015625,64] +rwx +Level 8 +Level 8. +1 + + + +http---calf-sourceforge-net-plugins-Equalizer12Band::p8-q +gfloat +[0,1,100] +rwx +Q 8 +Q 8. +1 + + + +http---calf-sourceforge-net-plugins-Deesser::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +http---calf-sourceforge-net-plugins-Deesser::clip-out +gboolean + +r +Out +Out. +FALSE + + + +http---calf-sourceforge-net-plugins-Deesser::compression +gfloat +[0,1] +r +Gain Reduction +Gain Reduction. +0 + + + +http---calf-sourceforge-net-plugins-Deesser::detected +gfloat +[0,1] +r +Detected +Detected. +0 + + + +http---calf-sourceforge-net-plugins-Deesser::detected-led +gboolean + +r +Active +Active. +FALSE + + + +http---calf-sourceforge-net-plugins-Deesser::detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +http---calf-sourceforge-net-plugins-Deesser::f1-freq +gfloat +[10,18000] +rwx +Split +Split. +6000 + + + +http---calf-sourceforge-net-plugins-Deesser::f1-level +gfloat +[0,0625,16] +rwx +Gain +Gain. +1 + + + +http---calf-sourceforge-net-plugins-Deesser::f2-freq +gfloat +[10,18000] +rwx +Peak +Peak. +4500 + + + +http---calf-sourceforge-net-plugins-Deesser::f2-level +gfloat +[0,0625,16] +rwx +Level +Level. +4 + + + +http---calf-sourceforge-net-plugins-Deesser::f2-q +gfloat +[0,1,100] +rwx +Peak Q +Peak Q. +1 + + + +http---calf-sourceforge-net-plugins-Deesser::laxity +gint +[1,100] +rwx +Laxity +Laxity. +15 + + + +http---calf-sourceforge-net-plugins-Deesser::makeup +gfloat +[1,64] +rwx +Makeup +Makeup. +1 + + + +http---calf-sourceforge-net-plugins-Deesser::mode +gint +[0,1] +rwx +Mode +Mode. +0 + + + +http---calf-sourceforge-net-plugins-Deesser::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +3 + + + +http---calf-sourceforge-net-plugins-Deesser::sc-listen +gboolean + +rwx +S/C-Listen +S/C-Listen. +FALSE + + + +http---calf-sourceforge-net-plugins-Deesser::threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,125 + + + +ladspa-Equalizer12Band::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Equalizer12Band::F1-Active +gboolean + +rwx +F1-Active +F1-Active. +FALSE + + + +ladspa-Equalizer12Band::F2-Active +gboolean + +rwx +F2-Active +F2-Active. +FALSE + + + +ladspa-Equalizer12Band::F3-Active +gboolean + +rwx +F3-Active +F3-Active. +FALSE + + + +ladspa-Equalizer12Band::F4-Active +gboolean + +rwx +F4-Active +F4-Active. +FALSE + + + +ladspa-Equalizer12Band::F5-Active +gboolean + +rwx +F5-Active +F5-Active. +FALSE + + + +ladspa-Equalizer12Band::F6-Active +gboolean + +rwx +F6-Active +F6-Active. +FALSE + + + +ladspa-Equalizer12Band::F7-Active +gboolean + +rwx +F7-Active +F7-Active. +FALSE + + + +ladspa-Equalizer12Band::F8-Active +gboolean + +rwx +F8-Active +F8-Active. +FALSE + + + +ladspa-Equalizer12Band::Freq-1 +gfloat +[10,20000] +rwx +Freq-1 +Freq-1. +66,874 + + + +ladspa-Equalizer12Band::Freq-2 +gfloat +[10,20000] +rwx +Freq-2 +Freq-2. +66,874 + + + +ladspa-Equalizer12Band::Freq-3 +gfloat +[10,20000] +rwx +Freq-3 +Freq-3. +447,214 + + + +ladspa-Equalizer12Band::Freq-4 +gfloat +[10,20000] +rwx +Freq-4 +Freq-4. +447,214 + + + +ladspa-Equalizer12Band::Freq-5 +gfloat +[10,20000] +rwx +Freq-5 +Freq-5. +447,214 + + + +ladspa-Equalizer12Band::Freq-6 +gfloat +[10,20000] +rwx +Freq-6 +Freq-6. +2990,7 + + + +ladspa-Equalizer12Band::Freq-7 +gfloat +[10,20000] +rwx +Freq-7 +Freq-7. +2990,7 + + + +ladspa-Equalizer12Band::Freq-8 +gfloat +[10,20000] +rwx +Freq-8 +Freq-8. +2990,7 + + + +ladspa-Equalizer12Band::Freq-H +gfloat +[10,20000] +rwx +Freq-H +Freq-H. +2990,7 + + + +ladspa-Equalizer12Band::Freq-L +gfloat +[10,20000] +rwx +Freq-L +Freq-L. +447,214 + + + +ladspa-Equalizer12Band::HP-Active +gboolean + +rwx +HP-Active +HP-Active. +FALSE + + + +ladspa-Equalizer12Band::HP-Freq +gfloat +[10,20000] +rwx +HP-Freq +HP-Freq. +66,874 + + + +ladspa-Equalizer12Band::HP-Mode +gint +[0,2] +rwx +HP-Mode +HP-Mode. +1 + + + +ladspa-Equalizer12Band::HS-Active +gboolean + +rwx +HS-Active +HS-Active. +FALSE + + + +ladspa-Equalizer12Band::Input-Gain +gfloat +[0,64] +rwx +Input-Gain +Input-Gain. +1 + + + +ladspa-Equalizer12Band::LP-Active +gboolean + +rwx +LP-Active +LP-Active. +FALSE + + + +ladspa-Equalizer12Band::LP-Freq +gfloat +[10,20000] +rwx +LP-Freq +LP-Freq. +20000 + + + +ladspa-Equalizer12Band::LP-Mode +gint +[0,2] +rwx +LP-Mode +LP-Mode. +1 + + + +ladspa-Equalizer12Band::LS-Active +gboolean + +rwx +LS-Active +LS-Active. +FALSE + + + +ladspa-Equalizer12Band::Level-1 +gfloat +[0,015625,64] +rwx +Level-1 +Level-1. +1 + + + +ladspa-Equalizer12Band::Level-2 +gfloat +[0,015625,64] +rwx +Level-2 +Level-2. +1 + + + +ladspa-Equalizer12Band::Level-3 +gfloat +[0,015625,64] +rwx +Level-3 +Level-3. +1 + + + +ladspa-Equalizer12Band::Level-4 +gfloat +[0,015625,64] +rwx +Level-4 +Level-4. +1 + + + +ladspa-Equalizer12Band::Level-5 +gfloat +[0,015625,64] +rwx +Level-5 +Level-5. +1 + + + +ladspa-Equalizer12Band::Level-6 +gfloat +[0,015625,64] +rwx +Level-6 +Level-6. +1 + + + +ladspa-Equalizer12Band::Level-7 +gfloat +[0,015625,64] +rwx +Level-7 +Level-7. +1 + + + +ladspa-Equalizer12Band::Level-8 +gfloat +[0,015625,64] +rwx +Level-8 +Level-8. +1 + + + +ladspa-Equalizer12Band::Level-H +gfloat +[0,015625,64] +rwx +Level-H +Level-H. +1 + + + +ladspa-Equalizer12Band::Level-L +gfloat +[0,015625,64] +rwx +Level-L +Level-L. +1 + + + +ladspa-Equalizer12Band::Meter-InL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +ladspa-Equalizer12Band::Meter-InR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +ladspa-Equalizer12Band::Meter-OutL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +ladspa-Equalizer12Band::Meter-OutR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +ladspa-Equalizer12Band::Output-Gain +gfloat +[0,64] +rwx +Output-Gain +Output-Gain. +1 + + + +ladspa-Equalizer12Band::Q-1 +gfloat +[0,1,100] +rwx +Q-1 +Q-1. +1 + + + +ladspa-Equalizer12Band::Q-2 +gfloat +[0,1,100] +rwx +Q-2 +Q-2. +1 + + + +ladspa-Equalizer12Band::Q-3 +gfloat +[0,1,100] +rwx +Q-3 +Q-3. +1 + + + +ladspa-Equalizer12Band::Q-4 +gfloat +[0,1,100] +rwx +Q-4 +Q-4. +1 + + + +ladspa-Equalizer12Band::Q-5 +gfloat +[0,1,100] +rwx +Q-5 +Q-5. +1 + + + +ladspa-Equalizer12Band::Q-6 +gfloat +[0,1,100] +rwx +Q-6 +Q-6. +1 + + + +ladspa-Equalizer12Band::Q-7 +gfloat +[0,1,100] +rwx +Q-7 +Q-7. +1 + + + +ladspa-Equalizer12Band::Q-8 +gfloat +[0,1,100] +rwx +Q-8 +Q-8. +1 + + + +ladspa-Equalizer12Band::param-0dB-InL +gfloat +[0,1] +r +param-0dB-InL +param-0dB-InL. +0 + + + +ladspa-Equalizer12Band::param-0dB-InR +gfloat +[0,1] +r +param-0dB-InR +param-0dB-InR. +0 + + + +ladspa-Equalizer12Band::param-0dB-OutL +gfloat +[0,1] +r +param-0dB-OutL +param-0dB-OutL. +0 + + + +ladspa-Equalizer12Band::param-0dB-OutR +gfloat +[0,1] +r +param-0dB-OutR +param-0dB-OutR. +0 + + + +ladspa-Equalizer8Band::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Equalizer8Band::F1-Active +gboolean + +rwx +F1-Active +F1-Active. +FALSE + + + +ladspa-Equalizer8Band::F2-Active +gboolean + +rwx +F2-Active +F2-Active. +FALSE + + + +ladspa-Equalizer8Band::F3-Active +gboolean + +rwx +F3-Active +F3-Active. +FALSE + + + +ladspa-Equalizer8Band::F4-Active +gboolean + +rwx +F4-Active +F4-Active. +FALSE + + + +ladspa-Equalizer8Band::Freq-1 +gfloat +[10,20000] +rwx +Freq-1 +Freq-1. +447,214 + + + +ladspa-Equalizer8Band::Freq-2 +gfloat +[10,20000] +rwx +Freq-2 +Freq-2. +447,214 + + + +ladspa-Equalizer8Band::Freq-3 +gfloat +[10,20000] +rwx +Freq-3 +Freq-3. +2990,7 + + + +ladspa-Equalizer8Band::Freq-4 +gfloat +[10,20000] +rwx +Freq-4 +Freq-4. +2990,7 + + + +ladspa-Equalizer8Band::Freq-H +gfloat +[10,20000] +rwx +Freq-H +Freq-H. +2990,7 + + + +ladspa-Equalizer8Band::Freq-L +gfloat +[10,20000] +rwx +Freq-L +Freq-L. +447,214 + + + +ladspa-Equalizer8Band::HP-Active +gboolean + +rwx +HP-Active +HP-Active. +FALSE + + + +ladspa-Equalizer8Band::HP-Freq +gfloat +[10,20000] +rwx +HP-Freq +HP-Freq. +66,874 + + + +ladspa-Equalizer8Band::HP-Mode +gint +[0,2] +rwx +HP-Mode +HP-Mode. +1 + + + +ladspa-Equalizer8Band::HS-Active +gboolean + +rwx +HS-Active +HS-Active. +FALSE + + + +ladspa-Equalizer8Band::Input-Gain +gfloat +[0,64] +rwx +Input-Gain +Input-Gain. +1 + + + +ladspa-Equalizer8Band::LP-Active +gboolean + +rwx +LP-Active +LP-Active. +FALSE + + + +ladspa-Equalizer8Band::LP-Freq +gfloat +[10,20000] +rwx +LP-Freq +LP-Freq. +20000 + + + +ladspa-Equalizer8Band::LP-Mode +gint +[0,2] +rwx +LP-Mode +LP-Mode. +1 + + + +ladspa-Equalizer8Band::LS-Active +gboolean + +rwx +LS-Active +LS-Active. +FALSE + + + +ladspa-Equalizer8Band::Level-1 +gfloat +[0,015625,64] +rwx +Level-1 +Level-1. +1 + + + +ladspa-Equalizer8Band::Level-2 +gfloat +[0,015625,64] +rwx +Level-2 +Level-2. +1 + + + +ladspa-Equalizer8Band::Level-3 +gfloat +[0,015625,64] +rwx +Level-3 +Level-3. +1 + + + +ladspa-Equalizer8Band::Level-4 +gfloat +[0,015625,64] +rwx +Level-4 +Level-4. +1 + + + +ladspa-Equalizer8Band::Level-H +gfloat +[0,015625,64] +rwx +Level-H +Level-H. +1 + + + +ladspa-Equalizer8Band::Level-L +gfloat +[0,015625,64] +rwx +Level-L +Level-L. +1 + + + +ladspa-Equalizer8Band::Meter-InL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +ladspa-Equalizer8Band::Meter-InR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +ladspa-Equalizer8Band::Meter-OutL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +ladspa-Equalizer8Band::Meter-OutR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +ladspa-Equalizer8Band::Output-Gain +gfloat +[0,64] +rwx +Output-Gain +Output-Gain. +1 + + + +ladspa-Equalizer8Band::Q-1 +gfloat +[0,1,100] +rwx +Q-1 +Q-1. +1 + + + +ladspa-Equalizer8Band::Q-2 +gfloat +[0,1,100] +rwx +Q-2 +Q-2. +1 + + + +ladspa-Equalizer8Band::Q-3 +gfloat +[0,1,100] +rwx +Q-3 +Q-3. +1 + + + +ladspa-Equalizer8Band::Q-4 +gfloat +[0,1,100] +rwx +Q-4 +Q-4. +1 + + + +ladspa-Equalizer8Band::param-0dB-InL +gfloat +[0,1] +r +param-0dB-InL +param-0dB-InL. +0 + + + +ladspa-Equalizer8Band::param-0dB-InR +gfloat +[0,1] +r +param-0dB-InR +param-0dB-InR. +0 + + + +ladspa-Equalizer8Band::param-0dB-OutL +gfloat +[0,1] +r +param-0dB-OutL +param-0dB-OutL. +0 + + + +ladspa-Equalizer8Band::param-0dB-OutR +gfloat +[0,1] +r +param-0dB-OutR +param-0dB-OutR. +0 + + + +ladspa-Equalizer5Band::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Equalizer5Band::F1-Active +gboolean + +rwx +F1-Active +F1-Active. +FALSE + + + +ladspa-Equalizer5Band::F2-Active +gboolean + +rwx +F2-Active +F2-Active. +FALSE + + + +ladspa-Equalizer5Band::F3-Active +gboolean + +rwx +F3-Active +F3-Active. +FALSE + + + +ladspa-Equalizer5Band::Freq-1 +gfloat +[10,20000] +rwx +Freq-1 +Freq-1. +447,214 + + + +ladspa-Equalizer5Band::Freq-2 +gfloat +[10,20000] +rwx +Freq-2 +Freq-2. +447,214 + + + +ladspa-Equalizer5Band::Freq-3 +gfloat +[10,20000] +rwx +Freq-3 +Freq-3. +2990,7 + + + +ladspa-Equalizer5Band::Freq-H +gfloat +[10,20000] +rwx +Freq-H +Freq-H. +2990,7 + + + +ladspa-Equalizer5Band::Freq-L +gfloat +[10,20000] +rwx +Freq-L +Freq-L. +447,214 + + + +ladspa-Equalizer5Band::HS-Active +gboolean + +rwx +HS-Active +HS-Active. +FALSE + + + +ladspa-Equalizer5Band::Input-Gain +gfloat +[0,64] +rwx +Input-Gain +Input-Gain. +1 + + + +ladspa-Equalizer5Band::LS-Active +gboolean + +rwx +LS-Active +LS-Active. +FALSE + + + +ladspa-Equalizer5Band::Level-1 +gfloat +[0,015625,64] +rwx +Level-1 +Level-1. +1 + + + +ladspa-Equalizer5Band::Level-2 +gfloat +[0,015625,64] +rwx +Level-2 +Level-2. +1 + + + +ladspa-Equalizer5Band::Level-3 +gfloat +[0,015625,64] +rwx +Level-3 +Level-3. +1 + + + +ladspa-Equalizer5Band::Level-H +gfloat +[0,015625,64] +rwx +Level-H +Level-H. +1 + + + +ladspa-Equalizer5Band::Level-L +gfloat +[0,015625,64] +rwx +Level-L +Level-L. +1 + + + +ladspa-Equalizer5Band::Meter-InL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +ladspa-Equalizer5Band::Meter-InR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +ladspa-Equalizer5Band::Meter-OutL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +ladspa-Equalizer5Band::Meter-OutR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +ladspa-Equalizer5Band::Output-Gain +gfloat +[0,64] +rwx +Output-Gain +Output-Gain. +1 + + + +ladspa-Equalizer5Band::Q-1 +gfloat +[0,1,100] +rwx +Q-1 +Q-1. +1 + + + +ladspa-Equalizer5Band::Q-2 +gfloat +[0,1,100] +rwx +Q-2 +Q-2. +1 + + + +ladspa-Equalizer5Band::Q-3 +gfloat +[0,1,100] +rwx +Q-3 +Q-3. +1 + + + +ladspa-Equalizer5Band::param-0dB-InL +gfloat +[0,1] +r +param-0dB-InL +param-0dB-InL. +0 + + + +ladspa-Equalizer5Band::param-0dB-InR +gfloat +[0,1] +r +param-0dB-InR +param-0dB-InR. +0 + + + +ladspa-Equalizer5Band::param-0dB-OutL +gfloat +[0,1] +r +param-0dB-OutL +param-0dB-OutL. +0 + + + +ladspa-Equalizer5Band::param-0dB-OutR +gfloat +[0,1] +r +param-0dB-OutR +param-0dB-OutR. +0 + + + +ladspa-Pulsator::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Pulsator::Frequency +gfloat +[0,01,100] +rwx +Frequency +Frequency. +1 + + + +ladspa-Pulsator::Input-Gain +gfloat +[0,64] +rwx +Input-Gain +Input-Gain. +1 + + + +ladspa-Pulsator::Meter-InL +gfloat +[0,1] +r +Meter-InL +Meter-InL. +0 + + + +ladspa-Pulsator::Meter-InR +gfloat +[0,1] +r +Meter-InR +Meter-InR. +0 + + + +ladspa-Pulsator::Meter-OutL +gfloat +[0,1] +r +Meter-OutL +Meter-OutL. +0 + + + +ladspa-Pulsator::Meter-OutR +gfloat +[0,1] +r +Meter-OutR +Meter-OutR. +0 + + + +ladspa-Pulsator::Mode +gint +[0,4] +rwx +Mode +Mode. +0 + + + +ladspa-Pulsator::Modulation +gfloat +[0,1] +rwx +Modulation +Modulation. +1 + + + +ladspa-Pulsator::Mono-in +gboolean + +rwx +Mono-in +Mono-in. +FALSE + + + +ladspa-Pulsator::Offset-L-R +gfloat +[0,1] +rwx +Offset-L-R +Offset-L-R. +0,5 + + + +ladspa-Pulsator::Output-Gain +gfloat +[0,64] +rwx +Output-Gain +Output-Gain. +1 + + + +ladspa-Pulsator::Reset +gboolean + +rwx +Reset +Reset. +FALSE + + + +ladspa-Pulsator::param-0dB-InL +gfloat +[0,1] +r +param-0dB-InL +param-0dB-InL. +0 + + + +ladspa-Pulsator::param-0dB-InR +gfloat +[0,1] +r +param-0dB-InR +param-0dB-InR. +0 + + + +ladspa-Pulsator::param-0dB-OutL +gfloat +[0,1] +r +param-0dB-OutL +param-0dB-OutL. +0 + + + +ladspa-Pulsator::param-0dB-OutR +gfloat +[0,1] +r +param-0dB-OutR +param-0dB-OutR. +0 + + + +ladspa-Deesser::Active +gboolean + +r +Active +Active. +FALSE + + + +ladspa-Deesser::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Deesser::Detected +gfloat +[0,1] +r +Detected +Detected. +0 + + + +ladspa-Deesser::Detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +ladspa-Deesser::Gain +gfloat +[0,0625,16] +rwx +Gain +Gain. +1 + + + +ladspa-Deesser::Gain-Reduction +gfloat +[0,03125,1] +r +Gain-Reduction +Gain-Reduction. +0,03125 + + + +ladspa-Deesser::Laxity +gint +[1,100] +rwx +Laxity +Laxity. +1 + + + +ladspa-Deesser::Level +gfloat +[0,0625,16] +rwx +Level +Level. +4,04688 + + + +ladspa-Deesser::Makeup +gfloat +[1,64] +rwx +Makeup +Makeup. +1 + + + +ladspa-Deesser::Mode +gint +[0,1] +rwx +Mode +Mode. +0 + + + +ladspa-Deesser::Out +gboolean + +r +Out +Out. +FALSE + + + +ladspa-Deesser::Peak +gfloat +[10,18000] +rwx +Peak +Peak. +2763,47 + + + +ladspa-Deesser::Peak-Q +gfloat +[0,1,100] +rwx +Peak-Q +Peak-Q. +1 + + + +ladspa-Deesser::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-Deesser::S-C-Listen +gboolean + +rwx +S-C-Listen +S-C-Listen. +FALSE + + + +ladspa-Deesser::Split +gfloat +[10,18000] +rwx +Split +Split. +2763,47 + + + +ladspa-Deesser::Threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,250732 + + + +ladspa-Multibandcompressor::Attack-1 +gfloat +[0,01,2000] +rwx +Attack-1 +Attack-1. +94,5742 + + + +ladspa-Multibandcompressor::Attack-2 +gfloat +[0,01,2000] +rwx +Attack-2 +Attack-2. +94,5742 + + + +ladspa-Multibandcompressor::Attack-3 +gfloat +[0,01,2000] +rwx +Attack-3 +Attack-3. +4,47214 + + + +ladspa-Multibandcompressor::Attack-4 +gfloat +[0,01,2000] +rwx +Attack-4 +Attack-4. +4,47214 + + + +ladspa-Multibandcompressor::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Multibandcompressor::Bypass-1 +gboolean + +rwx +Bypass-1 +Bypass-1. +FALSE + + + +ladspa-Multibandcompressor::Bypass-2 +gboolean + +rwx +Bypass-2 +Bypass-2. +FALSE + + + +ladspa-Multibandcompressor::Bypass-3 +gboolean + +rwx +Bypass-3 +Bypass-3. +FALSE + + + +ladspa-Multibandcompressor::Bypass-4 +gboolean + +rwx +Bypass-4 +Bypass-4. +FALSE + + + +ladspa-Multibandcompressor::Detection-1 +gint +[0,1] +rwx +Detection-1 +Detection-1. +1 + + + +ladspa-Multibandcompressor::Detection-2 +gint +[0,1] +rwx +Detection-2 +Detection-2. +1 + + + +ladspa-Multibandcompressor::Detection-3 +gint +[0,1] +rwx +Detection-3 +Detection-3. +1 + + + +ladspa-Multibandcompressor::Detection-4 +gint +[0,1] +rwx +Detection-4 +Detection-4. +1 + + + +ladspa-Multibandcompressor::Gain-Reduction-1 +gfloat +[0,03125,1] +r +Gain-Reduction-1 +Gain-Reduction-1. +1 + + + +ladspa-Multibandcompressor::Gain-Reduction-2 +gfloat +[0,03125,1] +r +Gain-Reduction-2 +Gain-Reduction-2. +1 + + + +ladspa-Multibandcompressor::Gain-Reduction-3 +gfloat +[0,03125,1] +r +Gain-Reduction-3 +Gain-Reduction-3. +1 + + + +ladspa-Multibandcompressor::Gain-Reduction-4 +gfloat +[0,03125,1] +r +Gain-Reduction-4 +Gain-Reduction-4. +1 + + + +ladspa-Multibandcompressor::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Multibandcompressor::Input-L +gfloat +[0,1] +r +Input-L +Input-L. +0 + + + +ladspa-Multibandcompressor::Input-R +gfloat +[0,1] +r +Input-R +Input-R. +0 + + + +ladspa-Multibandcompressor::Knee-1 +gfloat +[1,8] +rwx +Knee-1 +Knee-1. +2,75 + + + +ladspa-Multibandcompressor::Knee-2 +gfloat +[1,8] +rwx +Knee-2 +Knee-2. +2,75 + + + +ladspa-Multibandcompressor::Knee-3 +gfloat +[1,8] +rwx +Knee-3 +Knee-3. +2,75 + + + +ladspa-Multibandcompressor::Knee-4 +gfloat +[1,8] +rwx +Knee-4 +Knee-4. +2,75 + + + +ladspa-Multibandcompressor::Makeup-1 +gfloat +[1,64] +rwx +Makeup-1 +Makeup-1. +1 + + + +ladspa-Multibandcompressor::Makeup-2 +gfloat +[1,64] +rwx +Makeup-2 +Makeup-2. +1 + + + +ladspa-Multibandcompressor::Makeup-3 +gfloat +[1,64] +rwx +Makeup-3 +Makeup-3. +1 + + + +ladspa-Multibandcompressor::Makeup-4 +gfloat +[1,64] +rwx +Makeup-4 +Makeup-4. +1 + + + +ladspa-Multibandcompressor::Mute-1 +gboolean + +rwx +Mute-1 +Mute-1. +FALSE + + + +ladspa-Multibandcompressor::Mute-2 +gboolean + +rwx +Mute-2 +Mute-2. +FALSE + + + +ladspa-Multibandcompressor::Mute-3 +gboolean + +rwx +Mute-3 +Mute-3. +FALSE + + + +ladspa-Multibandcompressor::Mute-4 +gboolean + +rwx +Mute-4 +Mute-4. +FALSE + + + +ladspa-Multibandcompressor::Output +gfloat +[0,64] +rwx +Output +Output. +1 + + + +ladspa-Multibandcompressor::Output-1 +gfloat +[0,1] +r +Output-1 +Output-1. +0 + + + +ladspa-Multibandcompressor::Output-2 +gfloat +[0,1] +r +Output-2 +Output-2. +0 + + + +ladspa-Multibandcompressor::Output-3 +gfloat +[0,1] +r +Output-3 +Output-3. +0 + + + +ladspa-Multibandcompressor::Output-4 +gfloat +[0,1] +r +Output-4 +Output-4. +0 + + + +ladspa-Multibandcompressor::Output-L +gfloat +[0,1] +r +Output-L +Output-L. +0 + + + +ladspa-Multibandcompressor::Output-R +gfloat +[0,1] +r +Output-R +Output-R. +0 + + + +ladspa-Multibandcompressor::Q1 +gfloat +[0,25,4] +rwx +Q1 +Q1. +1,1875 + + + +ladspa-Multibandcompressor::Q2 +gfloat +[0,25,4] +rwx +Q2 +Q2. +1,1875 + + + +ladspa-Multibandcompressor::Q3 +gfloat +[0,25,4] +rwx +Q3 +Q3. +1,1875 + + + +ladspa-Multibandcompressor::Ratio-1 +gfloat +[1,20] +rwx +Ratio-1 +Ratio-1. +1 + + + +ladspa-Multibandcompressor::Ratio-2 +gfloat +[1,20] +rwx +Ratio-2 +Ratio-2. +1 + + + +ladspa-Multibandcompressor::Ratio-3 +gfloat +[1,20] +rwx +Ratio-3 +Ratio-3. +1 + + + +ladspa-Multibandcompressor::Ratio-4 +gfloat +[1,20] +rwx +Ratio-4 +Ratio-4. +1 + + + +ladspa-Multibandcompressor::Release-1 +gfloat +[0,01,2000] +rwx +Release-1 +Release-1. +100 + + + +ladspa-Multibandcompressor::Release-2 +gfloat +[0,01,2000] +rwx +Release-2 +Release-2. +94,5742 + + + +ladspa-Multibandcompressor::Release-3 +gfloat +[0,01,2000] +rwx +Release-3 +Release-3. +94,5742 + + + +ladspa-Multibandcompressor::Release-4 +gfloat +[0,01,2000] +rwx +Release-4 +Release-4. +4,47214 + + + +ladspa-Multibandcompressor::S1 +gfloat +[-0,5,0,5] +rwx +S1 +S1. +-0,25 + + + +ladspa-Multibandcompressor::S2 +gfloat +[-0,5,0,5] +rwx +S2 +S2. +-0,25 + + + +ladspa-Multibandcompressor::S3 +gfloat +[-0,5,0,5] +rwx +S3 +S3. +-0,25 + + + +ladspa-Multibandcompressor::Split-1-2 +gfloat +[10,20000] +rwx +Split-1-2 +Split-1-2. +100 + + + +ladspa-Multibandcompressor::Split-2-3 +gfloat +[10,20000] +rwx +Split-2-3 +Split-2-3. +447,214 + + + +ladspa-Multibandcompressor::Split-3-4 +gfloat +[10,20000] +rwx +Split-3-4 +Split-3-4. +2990,7 + + + +ladspa-Multibandcompressor::Threshold-1 +gfloat +[0,000976563,1] +rwx +Threshold-1 +Threshold-1. +0,000976563 + + + +ladspa-Multibandcompressor::Threshold-2 +gfloat +[0,000976563,1] +rwx +Threshold-2 +Threshold-2. +0,000976563 + + + +ladspa-Multibandcompressor::Threshold-3 +gfloat +[0,000976563,1] +rwx +Threshold-3 +Threshold-3. +0,000976563 + + + +ladspa-Multibandcompressor::Threshold-4 +gfloat +[0,000976563,1] +rwx +Threshold-4 +Threshold-4. +0,000976563 + + + +ladspa-Multibandcompressor::param-0dB-InL +gfloat +[0,1] +r +param-0dB-InL +param-0dB-InL. +0 + + + +ladspa-Multibandcompressor::param-0dB-InR +gfloat +[0,1] +r +param-0dB-InR +param-0dB-InR. +0 + + + +ladspa-Multibandcompressor::param-0dB-OutL +gfloat +[0,1] +r +param-0dB-OutL +param-0dB-OutL. +0 + + + +ladspa-Multibandcompressor::param-0dB-OutR +gfloat +[0,1] +r +param-0dB-OutR +param-0dB-OutR. +0 + + + +ladspa-Sidechaincompressor::Attack +gfloat +[0,01,2000] +rwx +Attack +Attack. +4,47214 + + + +ladspa-Sidechaincompressor::Bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +ladspa-Sidechaincompressor::Detection +gint +[0,1] +rwx +Detection +Detection. +0 + + + +ladspa-Sidechaincompressor::F1-Active +gboolean + +r +F1-Active +F1-Active. +FALSE + + + +ladspa-Sidechaincompressor::F1-Freq +gfloat +[10,18000] +rwx +F1-Freq +F1-Freq. +424,264 + + + +ladspa-Sidechaincompressor::F1-Level +gfloat +[0,0625,16] +rwx +F1-Level +F1-Level. +1 + + + +ladspa-Sidechaincompressor::F2-Active +gboolean + +r +F2-Active +F2-Active. +FALSE + + + +ladspa-Sidechaincompressor::F2-Freq +gfloat +[10,18000] +rwx +F2-Freq +F2-Freq. +2763,47 + + + +ladspa-Sidechaincompressor::F2-Level +gfloat +[0,0625,16] +rwx +F2-Level +F2-Level. +1 + + + +ladspa-Sidechaincompressor::Gain-Reduction +gfloat +[0,03125,1] +r +Gain-Reduction +Gain-Reduction. +0,03125 + + + +ladspa-Sidechaincompressor::Input +gfloat +[0,64] +rwx +Input +Input. +1 + + + +ladspa-Sidechaincompressor::Input-1 +gfloat +[0,1] +r +Input-1 +Input-1. +0 + + + +ladspa-Sidechaincompressor::Knee +gfloat +[1,8] +rwx +Knee +Knee. +2,75 + + + +ladspa-Sidechaincompressor::Makeup-Gain +gfloat +[1,64] +rwx +Makeup-Gain +Makeup-Gain. +1 + + + +ladspa-Sidechaincompressor::Output +gfloat +[0,1] +r +Output +Output. +0 + + + +ladspa-Sidechaincompressor::Ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +ladspa-Sidechaincompressor::Release +gfloat +[0,01,2000] +rwx +Release +Release. +94,5742 + + + +ladspa-Sidechaincompressor::S-C-Listen +gboolean + +rwx +S-C-Listen +S-C-Listen. +FALSE + + + +ladspa-Sidechaincompressor::Sidechain-Mode +gint +[0,9] +rwx +Sidechain-Mode +Sidechain-Mode. +0 + + + +ladspa-Sidechaincompressor::Stereo-Link +gint +[0,1] +rwx +Stereo-Link +Stereo-Link. +0 + + + +ladspa-Sidechaincompressor::Threshold +gfloat +[0,000976563,1] +rwx +Threshold +Threshold. +0,250732 + + + +ladspa-Sidechaincompressor::param-0dB-In +gboolean + +r +param-0dB-In +param-0dB-In. +FALSE + + + +ladspa-Sidechaincompressor::param-0dB-Out +gboolean + +r +param-0dB-Out +param-0dB-Out. +FALSE + + + +GstZBar::message +gboolean + +rw +message +Post a barcode message for each detected code. +TRUE + + + +GstZBar::cache +gboolean + +rw +cache +Enable or disable the inter-image result cache. +FALSE + + + +GstQTMoovRecover::broken-input +gchar* + +rw +Path to broken input file +Path to broken input file. (If qtmux was on faststart mode, this file is the faststart file). +NULL + + + +GstQTMoovRecover::faststart-mode +gboolean + +rw +If the broken input is from faststart mode +If the broken input is from faststart mode. +FALSE + + + +GstQTMoovRecover::fixed-output +gchar* + +rw +Path to write the fixed file +Path to write the fixed file to (used as output). +NULL + + + +GstQTMoovRecover::recovery-input +gchar* + +rw +Path to recovery file +Path to recovery file (used as input). +NULL + + + +invadarecords-com-plugins-lv2-tube-stereo::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-tube-stereo::dcoffset +gfloat +[-1,1] +rwx +DC Offset +DC Offset. +0 + + + +invadarecords-com-plugins-lv2-tube-stereo::drive +gfloat +[0,18] +rwx +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-tube-stereo::meterDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-tube-stereo::meterInL +gfloat +[-60,6] +r +L In +L In. +-60 + + + +invadarecords-com-plugins-lv2-tube-stereo::meterInR +gfloat +[-60,6] +r +R In +R In. +-60 + + + +invadarecords-com-plugins-lv2-tube-stereo::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-tube-stereo::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-tube-stereo::mix +gfloat +[0,100] +rwx +Mix +Mix. +75 + + + +invadarecords-com-plugins-lv2-tube-stereo::phase +gboolean + +rwx +Tube Phase +Tube Phase. +FALSE + + + +invadarecords-com-plugins-lv2-tube-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-tube-mono::dcoffset +gfloat +[-1,1] +rwx +DC Offset +DC Offset. +0 + + + +invadarecords-com-plugins-lv2-tube-mono::drive +gfloat +[0,18] +rwx +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-tube-mono::meterDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-tube-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-tube-mono::meterOut +gfloat +[-60,6] +r +Out +Out. +-60 + + + +invadarecords-com-plugins-lv2-tube-mono::mix +gfloat +[0,100] +rwx +Mix +Mix. +75 + + + +invadarecords-com-plugins-lv2-tube-mono::phase +gboolean + +rwx +Tube Phase +Tube Phase. +FALSE + + + +invadarecords-com-plugins-lv2-testtone::active +gboolean + +rwx +Active +Active. +FALSE + + + +invadarecords-com-plugins-lv2-testtone::frequency +gfloat +[20,20000] +rwx +Frequency +Frequency. +1000 + + + +invadarecords-com-plugins-lv2-testtone::meterOut +gfloat +[-60,6] +r +Out Meter +Out Meter. +-60 + + + +invadarecords-com-plugins-lv2-testtone::trim +gfloat +[-24,0] +rwx +Trim +Trim. +0 + + + +invadarecords-com-plugins-lv2-phaser-sum::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-sum::cycle +gfloat +[0.5,500] +rwx +Period +Period. +25 + + + +invadarecords-com-plugins-lv2-phaser-sum::depth +gfloat +[0,100] +rwx +Depth +Depth. +75.01 + + + +invadarecords-com-plugins-lv2-phaser-sum::lampDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-sum::lampL +gfloat +[0,10] +r +LFO L Lamp +LFO L Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-sum::lampR +gfloat +[0,10] +r +LFO R Lamp +LFO R Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-sum::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-phaser-sum::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-sum::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-sum::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-sum::phase +gfloat +[-180,180] +rwx +Phase Offset +Phase Offset. +45 + + + +invadarecords-com-plugins-lv2-phaser-sum::width +gfloat +[1,15] +rwx +Width +Width. +8 + + + +invadarecords-com-plugins-lv2-phaser-stereo::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-stereo::cycle +gfloat +[0.5,500] +rwx +Period +Period. +25 + + + +invadarecords-com-plugins-lv2-phaser-stereo::depth +gfloat +[0,100] +rwx +Depth +Depth. +75.01 + + + +invadarecords-com-plugins-lv2-phaser-stereo::lampDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-stereo::lampL +gfloat +[0,4] +r +LFO L Lamp +LFO L Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-stereo::lampR +gfloat +[0,4] +r +LFO R Lamp +LFO R Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-stereo::meterInL +gfloat +[-60,6] +r +In L +In L. +-60 + + + +invadarecords-com-plugins-lv2-phaser-stereo::meterInR +gfloat +[-60,6] +r +In R +In R. +-60 + + + +invadarecords-com-plugins-lv2-phaser-stereo::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-stereo::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-stereo::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-stereo::phase +gfloat +[-180,180] +rwx +Phase Offset +Phase Offset. +45 + + + +invadarecords-com-plugins-lv2-phaser-stereo::width +gfloat +[1,15] +rwx +Width +Width. +8 + + + +invadarecords-com-plugins-lv2-phaser-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-mono::cycle +gfloat +[0.5,500] +rwx +Period +Period. +25 + + + +invadarecords-com-plugins-lv2-phaser-mono::depth +gfloat +[0,100] +rwx +Depth +Depth. +75.01 + + + +invadarecords-com-plugins-lv2-phaser-mono::lampDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-mono::lampL +gfloat +[0,4] +r +LFO L Lamp +LFO L Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-mono::lampR +gfloat +[0,4] +r +LFO R Lamp +LFO R Lamp. +0 + + + +invadarecords-com-plugins-lv2-phaser-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-phaser-mono::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-mono::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-phaser-mono::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-phaser-mono::phase +gfloat +[-180,180] +rwx +Phase Offset +Phase Offset. +45 + + + +invadarecords-com-plugins-lv2-phaser-mono::width +gfloat +[1,15] +rwx +Width +Width. +8 + + + +invadarecords-com-plugins-lv2-meter::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-meter::meterL +gfloat +[-60,6] +r +Meter L In +Meter L In. +-60 + + + +invadarecords-com-plugins-lv2-meter::meterPhase +gfloat +[0,1.5708] +r +Phase Meter +Phase Meter. +0 + + + +invadarecords-com-plugins-lv2-meter::meterR +gfloat +[-60,6] +r +Meter R In +Meter R In. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec100 +gfloat +[-60,12] +r +100Hz +100Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec1000 +gfloat +[-60,12] +r +1kHz +1kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec10000 +gfloat +[-60,12] +r +10Hz +10Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec125 +gfloat +[-60,12] +r +125Hz +125Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec1250 +gfloat +[-60,12] +r +1.25kHz +1.25kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec12500 +gfloat +[-60,12] +r +12.5Hz +12.5Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec160 +gfloat +[-60,12] +r +160Hz +160Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec1600 +gfloat +[-60,12] +r +1.6kHz +1.6kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec16000 +gfloat +[-60,12] +r +16kHz +16kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec20 +gfloat +[-60,12] +r +20Hz +20Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec200 +gfloat +[-60,12] +r +200Hz +200Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec2000 +gfloat +[-60,12] +r +2kHz +2kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec20000 +gfloat +[-60,12] +r +20kHz +20kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec25 +gfloat +[-60,12] +r +25Hz +25Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec250 +gfloat +[-60,12] +r +250Hz +250Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec2500 +gfloat +[-60,12] +r +2.5Hz +2.5Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec31 +gfloat +[-60,12] +r +31Hz +31Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec315 +gfloat +[-60,12] +r +315Hz +315Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec3150 +gfloat +[-60,12] +r +3.15Hz +3.15Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec40 +gfloat +[-60,12] +r +40Hz +40Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec400 +gfloat +[-60,12] +r +400Hz +400Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec4000 +gfloat +[-60,12] +r +4Hz +4Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec50 +gfloat +[-60,12] +r +50Hz +50Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec500 +gfloat +[-60,12] +r +500Hz +500Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec5000 +gfloat +[-60,12] +r +5kHz +5kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec63 +gfloat +[-60,12] +r +63Hz +63Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec630 +gfloat +[-60,12] +r +630Hz +630Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec6300 +gfloat +[-60,12] +r +6.3kHz +6.3kHz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec80 +gfloat +[-60,12] +r +80Hz +80Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec800 +gfloat +[-60,12] +r +800Hz +800Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::spec8000 +gfloat +[-60,12] +r +8Hz +8Hz. +-60 + + + +invadarecords-com-plugins-lv2-meter::vuL +gfloat +[-60,6] +r +Meter L In +Meter L In. +-60 + + + +invadarecords-com-plugins-lv2-meter::vuR +gfloat +[-60,6] +r +Meter R In +Meter R In. +-60 + + + +invadarecords-com-plugins-lv2-input::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-input::gain +gfloat +[-24,24] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-input::lampDrive +gfloat +[0,10] +r +Drive Lamp +Drive Lamp. +0 + + + +invadarecords-com-plugins-lv2-input::meterInL +gfloat +[-60,6] +r +L In Meter +L In Meter. +-60 + + + +invadarecords-com-plugins-lv2-input::meterInR +gfloat +[-60,6] +r +R In Meter +R In Meter. +-60 + + + +invadarecords-com-plugins-lv2-input::meterOutL +gfloat +[-60,6] +r +L Out Meter +L Out Meter. +-60 + + + +invadarecords-com-plugins-lv2-input::meterOutR +gfloat +[-60,6] +r +R Out Meter +R Out Meter. +-60 + + + +invadarecords-com-plugins-lv2-input::meterPhase +gfloat +[0,1.5708] +r +Phase Meter +Phase Meter. +0 + + + +invadarecords-com-plugins-lv2-input::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-input::pan +gfloat +[-1,1] +rwx +Pan +Pan. +0 + + + +invadarecords-com-plugins-lv2-input::phaseL +gboolean + +rwx +Phase (L) +Phase (L). +FALSE + + + +invadarecords-com-plugins-lv2-input::phaseR +gboolean + +rwx +Phase (R) +Phase (R). +FALSE + + + +invadarecords-com-plugins-lv2-input::width +gfloat +[-1,1] +rwx +Stereo Width +Stereo Width. +0 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +1000 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::gain +gfloat +[0,12] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::meterInL +gfloat +[-60,6] +r +L In +L In. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::meterInR +gfloat +[-60,6] +r +R In +R In. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-stereo::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +1000 + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::gain +gfloat +[0,12] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::meterOut +gfloat +[-60,6] +r +Out +Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-lpf-mono::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +1000 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::gain +gfloat +[0,12] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::meterInL +gfloat +[-60,6] +r +L In +L In. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::meterInR +gfloat +[-60,6] +r +R In +R In. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-stereo::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::freq +gfloat +[20,20000] +rwx +Frequency +Frequency. +1000 + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::gain +gfloat +[0,12] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::meterOut +gfloat +[-60,6] +r +Out +Out. +-60 + + + +invadarecords-com-plugins-lv2-filter-hpf-mono::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-erreverb-sum::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-erreverb-sum::diffusion +gfloat +[0,100] +rwx +Diffusion +Diffusion. +50 + + + +invadarecords-com-plugins-lv2-erreverb-sum::hpf +gfloat +[20,2000] +rwx +HPF +HPF. +1000 + + + +invadarecords-com-plugins-lv2-erreverb-sum::listFB +gfloat +[0,0.5] +rwx +Listener (F/B) +Listener (F/B). +0.2 + + + +invadarecords-com-plugins-lv2-erreverb-sum::listLR +gfloat +[-1,1] +rwx +Listener Pan +Listener Pan. +0.01 + + + +invadarecords-com-plugins-lv2-erreverb-sum::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-sum::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-sum::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-sum::roomHeight +gfloat +[3,30] +rwx +Room Height +Room Height. +10 + + + +invadarecords-com-plugins-lv2-erreverb-sum::roomLength +gfloat +[3,100] +rwx +Room Length +Room Length. +25 + + + +invadarecords-com-plugins-lv2-erreverb-sum::roomWidth +gfloat +[3,100] +rwx +Room Width +Room Width. +30 + + + +invadarecords-com-plugins-lv2-erreverb-sum::sourceFB +gfloat +[0.5,1] +rwx +Source (F/B) +Source (F/B). +0.8 + + + +invadarecords-com-plugins-lv2-erreverb-sum::sourceLR +gfloat +[-1,1] +rwx +Source Pan +Source Pan. +-0.01 + + + +invadarecords-com-plugins-lv2-erreverb-sum::warmth +gfloat +[0,100] +rwx +Warmth +Warmth. +50 + + + +invadarecords-com-plugins-lv2-erreverb-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-erreverb-mono::diffusion +gfloat +[0,100] +rwx +Diffusion +Diffusion. +50 + + + +invadarecords-com-plugins-lv2-erreverb-mono::hpf +gfloat +[20,2000] +rwx +HPF +HPF. +1000 + + + +invadarecords-com-plugins-lv2-erreverb-mono::listFB +gfloat +[0,0.5] +rwx +Listener (F/B) +Listener (F/B). +0.2 + + + +invadarecords-com-plugins-lv2-erreverb-mono::listLR +gfloat +[-1,1] +rwx +Listener Pan +Listener Pan. +0.01 + + + +invadarecords-com-plugins-lv2-erreverb-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-mono::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-mono::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-erreverb-mono::roomHeight +gfloat +[3,30] +rwx +Room Height +Room Height. +10 + + + +invadarecords-com-plugins-lv2-erreverb-mono::roomLength +gfloat +[3,100] +rwx +Room Length +Room Length. +25 + + + +invadarecords-com-plugins-lv2-erreverb-mono::roomWidth +gfloat +[3,100] +rwx +Room Width +Room Width. +30 + + + +invadarecords-com-plugins-lv2-erreverb-mono::sourceFB +gfloat +[0.5,1] +rwx +Source (F/B) +Source (F/B). +0.8 + + + +invadarecords-com-plugins-lv2-erreverb-mono::sourceLR +gfloat +[-1,1] +rwx +Source Pan +Source Pan. +-0.01 + + + +invadarecords-com-plugins-lv2-erreverb-mono::warmth +gfloat +[0,100] +rwx +Warmth +Warmth. +50 + + + +invadarecords-com-plugins-lv2-delay-sum::LFOcycle +gfloat +[2,200] +rwx +LFO +LFO. +20 + + + +invadarecords-com-plugins-lv2-delay-sum::LFOdepth +gfloat +[0,100] +rwx +Depth +Depth. +0 + + + +invadarecords-com-plugins-lv2-delay-sum::LFOlamp +gfloat +[0,4] +r +LFO Lamp +LFO Lamp. +0 + + + +invadarecords-com-plugins-lv2-delay-sum::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-delay-sum::delay1 +gfloat +[0.02,2] +rwx +Delay 1 +Delay 1. +0.3 + + + +invadarecords-com-plugins-lv2-delay-sum::delay2 +gfloat +[0.02,2] +rwx +Delay 2 +Delay 2. +0.2 + + + +invadarecords-com-plugins-lv2-delay-sum::fb1 +gfloat +[0,133.333] +rwx +Feedback 1 +Feedback 1. +50 + + + +invadarecords-com-plugins-lv2-delay-sum::fb2 +gfloat +[0,133.333] +rwx +Feedback 2 +Feedback 2. +50 + + + +invadarecords-com-plugins-lv2-delay-sum::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-delay-sum::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-delay-sum::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-delay-sum::mode +gboolean + +rwx +Mode +Mode. +FALSE + + + +invadarecords-com-plugins-lv2-delay-sum::munge +gfloat +[0,100] +rwx +Munge +Munge. +50 + + + +invadarecords-com-plugins-lv2-delay-sum::mungemode +gboolean + +rwx +Munge Mode +Munge Mode. +FALSE + + + +invadarecords-com-plugins-lv2-delay-sum::pan1 +gfloat +[-1,1] +rwx +Pan 1 +Pan 1. +-0.7 + + + +invadarecords-com-plugins-lv2-delay-sum::pan2 +gfloat +[-1,1] +rwx +Pan 2 +Pan 2. +0.7 + + + +invadarecords-com-plugins-lv2-delay-sum::vol1 +gfloat +[0,100] +rwx +Volume 1 +Volume 1. +100 + + + +invadarecords-com-plugins-lv2-delay-sum::vol2 +gfloat +[0,100] +rwx +Volume 2 +Volume 2. +100 + + + +invadarecords-com-plugins-lv2-delay-mono::LFOcycle +gfloat +[2,200] +rwx +LFO +LFO. +20 + + + +invadarecords-com-plugins-lv2-delay-mono::LFOdepth +gfloat +[0,100] +rwx +Depth +Depth. +0 + + + +invadarecords-com-plugins-lv2-delay-mono::LFOlamp +gfloat +[0,4] +r +LFO Lamp +LFO Lamp. +0 + + + +invadarecords-com-plugins-lv2-delay-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-delay-mono::delay1 +gfloat +[0.02,2] +rwx +Delay 1 +Delay 1. +0.3 + + + +invadarecords-com-plugins-lv2-delay-mono::delay2 +gfloat +[0.02,2] +rwx +Delay 2 +Delay 2. +0.2 + + + +invadarecords-com-plugins-lv2-delay-mono::fb1 +gfloat +[0,133.333] +rwx +Feedback 1 +Feedback 1. +50 + + + +invadarecords-com-plugins-lv2-delay-mono::fb2 +gfloat +[0,133.333] +rwx +Feedback 2 +Feedback 2. +50 + + + +invadarecords-com-plugins-lv2-delay-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-delay-mono::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-delay-mono::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-delay-mono::mode +gboolean + +rwx +Mode +Mode. +FALSE + + + +invadarecords-com-plugins-lv2-delay-mono::munge +gfloat +[0,100] +rwx +Munge +Munge. +50 + + + +invadarecords-com-plugins-lv2-delay-mono::mungemode +gboolean + +rwx +Munge Mode +Munge Mode. +FALSE + + + +invadarecords-com-plugins-lv2-delay-mono::pan1 +gfloat +[-1,1] +rwx +Pan 1 +Pan 1. +-0.7 + + + +invadarecords-com-plugins-lv2-delay-mono::pan2 +gfloat +[-1,1] +rwx +Pan 2 +Pan 2. +0.7 + + + +invadarecords-com-plugins-lv2-delay-mono::vol1 +gfloat +[0,100] +rwx +Volume 1 +Volume 1. +100 + + + +invadarecords-com-plugins-lv2-delay-mono::vol2 +gfloat +[0,100] +rwx +Volume 2 +Volume 2. +100 + + + +invadarecords-com-plugins-lv2-compressor-stereo::attack +gfloat +[1e-05,0.75] +rwx +Attack +Attack. +0.015 + + + +invadarecords-com-plugins-lv2-compressor-stereo::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-compressor-stereo::gain +gfloat +[-6,36] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-compressor-stereo::grmeter +gfloat +[-36,0] +r +Gain Reduction +Gain Reduction. +0 + + + +invadarecords-com-plugins-lv2-compressor-stereo::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-compressor-stereo::meterInL +gfloat +[-60,6] +r +L In +L In. +-60 + + + +invadarecords-com-plugins-lv2-compressor-stereo::meterInR +gfloat +[-60,6] +r +R In +R In. +-60 + + + +invadarecords-com-plugins-lv2-compressor-stereo::meterOutL +gfloat +[-60,6] +r +L Out +L Out. +-60 + + + +invadarecords-com-plugins-lv2-compressor-stereo::meterOutR +gfloat +[-60,6] +r +R Out +R Out. +-60 + + + +invadarecords-com-plugins-lv2-compressor-stereo::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-compressor-stereo::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +invadarecords-com-plugins-lv2-compressor-stereo::release +gfloat +[0.001,5] +rwx +Release +Release. +0.05 + + + +invadarecords-com-plugins-lv2-compressor-stereo::rms +gfloat +[0,1] +rwx +RMS +RMS. +0.5 + + + +invadarecords-com-plugins-lv2-compressor-stereo::threshold +gfloat +[-36,0] +rwx +Threshold +Threshold. +0 + + + +invadarecords-com-plugins-lv2-compressor-mono::attack +gfloat +[1e-05,0.75] +rwx +Attack +Attack. +0.015 + + + +invadarecords-com-plugins-lv2-compressor-mono::bypass +gboolean + +rwx +Bypass +Bypass. +FALSE + + + +invadarecords-com-plugins-lv2-compressor-mono::gain +gfloat +[-6,36] +rwx +Gain +Gain. +0 + + + +invadarecords-com-plugins-lv2-compressor-mono::grmeter +gfloat +[-36,0] +r +Gain Reduction +Gain Reduction. +0 + + + +invadarecords-com-plugins-lv2-compressor-mono::lampDrive +gfloat +[0,10] +r +Drive +Drive. +0 + + + +invadarecords-com-plugins-lv2-compressor-mono::meterIn +gfloat +[-60,6] +r +In +In. +-60 + + + +invadarecords-com-plugins-lv2-compressor-mono::meterOut +gfloat +[-60,6] +r +Out +Out. +-60 + + + +invadarecords-com-plugins-lv2-compressor-mono::noClip +gboolean + +rwx +Soft Clip +Soft Clip. +FALSE + + + +invadarecords-com-plugins-lv2-compressor-mono::ratio +gfloat +[1,20] +rwx +Ratio +Ratio. +1 + + + +invadarecords-com-plugins-lv2-compressor-mono::release +gfloat +[0.001,5] +rwx +Release +Release. +0.05 + + + +invadarecords-com-plugins-lv2-compressor-mono::rms +gfloat +[0,1] +rwx +RMS +RMS. +0.5 + + + +invadarecords-com-plugins-lv2-compressor-mono::threshold +gfloat +[-36,0] +rwx +Threshold +Threshold. +0 + + + +GstFlacParse::check-frame-checksums +gboolean + +rw +Check Frame Checksums +Check the overall checksums of every frame. +FALSE + + + +GstVP8Dec::deblocking-level +guint +<= 16 +rw +Deblocking Level +Deblocking level. +4 + + + +GstVP8Dec::noise-level +guint +<= 16 +rw +Noise Level +Noise level. +0 + + + +GstVP8Dec::post-processing +gboolean + +rw +Post Processing +Enable post processing. +FALSE + + + +GstVP8Dec::post-processing-flags +GstVP8DecPostProcessingFlags + +rw +Post Processing Flags +Flags to control post processing. +Deblock|Demacroblock + + + +GstVP8Enc::bitrate +gint +[0,1000000000] +rw +Bit rate +Bit rate (in bits/sec). +0 + + + +GstVP8Enc::error-resilient +gboolean + +rw +Error Resilient +Encode streams that are error resilient. +FALSE + + + +GstVP8Enc::max-keyframe-distance +gint +[0,9999] +rw +Maximum Key frame distance +Maximum distance between key frames. +60 + + + +GstVP8Enc::max-latency +gint +[0,25] +rw +Max latency +Number of frames in encoder queue. +10 + + + +GstVP8Enc::mode +GstVP8EncMode + +rw +Mode +Mode. +Variable Bit Rate (VBR) mode + + + +GstVP8Enc::quality +gdouble +[0,10] +rw +Quality +Quality. +5 + + + +GstVP8Enc::speed +gint +[0,2] +rw +Speed +Speed. +0 + + + +GstVP8Enc::threads +gint +[1,64] +rw +Threads +Threads. +1 + + + +GstVP8Enc::multipass-cache-file +gchar* + +rw +Multipass Cache File +Multipass cache file. +NULL + + + +GstVP8Enc::multipass-mode +GstVP8EncMultipassMode + +rw +Multipass Mode +Multipass encode mode. +One pass encoding (default) + + + +GstVP8Enc::auto-alt-ref-frames +gboolean + +rw +Auto Alt Ref Frames +Automatically create alternative reference frames. +FALSE + + + +GstPhotography::aperture +guint +<= 255 +rw +Aperture property +Aperture defines the size of lens opening (0 = auto). +0 + + + +GstPhotography::capabilities +gulong + +r +Photo capabilities bitmask +Tells the photo capabilities of the device. + + + + +GstPhotography::colour-tone-mode +GstColourToneMode + +rw +Colour tone mode property +Colour tone setting changes colour shading in the photo. +GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL + + + +GstPhotography::ev-compensation +gfloat +[-2.5,2.5] +rw +EV compensation property +EV compensation affects the brightness of the image. +0 + + + +GstPhotography::exposure +guint + +rw +Exposure time in milliseconds +Exposure time defines how long the shutter will stay open (0 = auto). +0 + + + +GstPhotography::flash-mode +GstFlashMode + +rw +Flash mode property +Flash mode defines how the flash light should be used. +GST_PHOTOGRAPHY_FLASH_MODE_AUTO + + + +GstPhotography::flicker-mode +GstFlickerReductionMode + +rw +Flicker reduction mode property +Flicker reduction mode defines a line frequency for flickering prevention. +GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF + + + +GstPhotography::focus-mode +GstFocusMode + +rw +Focus mode property +Focus mode defines the range of focal lengths to use in autofocus search. +GST_PHOTOGRAPHY_FOCUS_MODE_AUTO + + + +GstPhotography::image-capture-supported-caps +GstCaps* + +r +Image capture supported caps +Caps describing supported image capture formats. + + + + +GstPhotography::iso-speed +guint +<= 6400 +rw +ISO speed property +ISO speed defines the light sensitivity (0 = auto). +0 + + + +GstPhotography::scene-mode +GstSceneMode + +rw +Scene mode property +Scene mode works as a preset for different photo shooting mode settings. +GST_PHOTOGRAPHY_SCENE_MODE_AUTO + + + +GstPhotography::white-balance-mode +GstWhiteBalanceMode + +rw +White balance mode property +White balance affects the color temperature of the photo. +GST_PHOTOGRAPHY_WB_MODE_AUTO + + + +GstPhotography::image-preview-supported-caps +GstCaps* + +r +Image preview supported caps +Caps describing supported image preview formats. + + + + +GstPhotography::noise-reduction +GstPhotographyNoiseReduction + +rw +Noise Reduction settings +Which noise reduction modes are enabled (0 = disabled). + + + + +GstPhotography::zoom +gfloat +[1,10] +rw +Zoom property +How much the resulted image will be zoomed. +1 + + + +GstWaterRipple::amplitude +gdouble + +rw +amplitude +amplitude. +10 + + + +GstWaterRipple::phase +gdouble + +rw +phase +phase. +0 + + + +GstWaterRipple::wavelength +gdouble + +rw +wavelength +wavelength. +16 + + + +GstTwirl::angle +gdouble + +rw +angle +This is the angle in radians by which pixels at the nearest edge of the image will move. +3.14159 + + + +GstSphere::refraction +gdouble + +rw +refraction +refraction index. +1.5 + + + +GstPinch::intensity +gdouble +[-1,1] +rw +intensity +intensity of the pinch effect. +0.5 + + + +GstMarble::amount +gdouble +[0,1] +rw +amount +Amount of effect. +1 + + + +GstMarble::turbulence +gdouble +[0,1] +rw +turbulence +Turbulence of the effect. +1 + + + +GstMarble::x-scale +gdouble +>= 0 +rw +x-scale +X scale of the texture. +4 + + + +GstMarble::y-scale +gdouble +>= 0 +rw +y-scale +Y scale of the texture. +4 + + + +GstKaleidoscope::angle +gdouble + +rw +angle +primary angle in radians of the kaleidoscope effect. +0 + + + +GstKaleidoscope::angle2 +gdouble + +rw +angle2 +secondary angle in radians of the kaleidoscope effect. +0 + + + +GstKaleidoscope::sides +gint +>= 2 +rw +sides +Number of sides of the kaleidoscope. +3 + + + +GstDiffuse::scale +gdouble +>= 1 +rw +scale +Scale of the texture. +4 + + + +GstCircle::angle +gdouble + +rw +angle +Angle at which the arc starts in radians. +0 + + + +GstCircle::height +gint +>= 0 +rw +height +Height of the arc. +20 + + + +GstCircle::spread-angle +gdouble + +rw +spread angle +Length of the arc in radians. +3.14159 + + + +GstInvtelecine::verify-field-flags +gboolean + +rw +verify field flags +Verify that field dominance (top/bottom field first) buffer flags are correct. +FALSE + + + +frei0r-filter-opencvfacedetect::test +gdouble + +rw +test +test. +0 + + + +GstVideoMaxRate::average-period +guint64 +[1,G_MAXLONG] +rw +Period over which to average +Period over which to average the framerate (in ns). +1000000000 + + + +GstShmSrc::is-live +gboolean + +rw +Is this a live source +True if the element cannot produce data in PAUSED. +FALSE + + + +GstShmSrc::socket-path +gchar* + +rw +Path to the control socket +The path to the control socket used to control the shared memory transport. +NULL + + + +GstShmSink::perms +guint +<= 4095 +rw +Permissions on the shm area +Permissions to set on the shm area. +416 + + + +GstShmSink::shm-size +guint + +rw +Size of the shm area +Size of the shared memory area. +262144 + + + +GstShmSink::socket-path +gchar* + +rw +Path to the control socket +The path to the control socket used to control the shared memory transport. +NULL + + + +GstShmSink::wait-for-connection +gboolean + +rw +Wait for a connection until rendering +Block the stream until the shm pipe is connected. +TRUE + + + +GstRTMPSrc::location +gchar* + +rw +File Location +Location of the file to read. +NULL + + + +GstFliteTestSrc::samplesperbuffer +gint +>= 1 +rw +Samples per buffer +Number of samples in each outgoing buffer. +1024 + + + +GstGSettingsAudioSink::profile +GstGSettingsAudioSinkProfile + +rw +Profile +Profile. +Sound Events + + + +Gstsolarize::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstexclusion::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstdodge::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstdilate::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstchromium::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstburn::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstSolarize::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstSolarize::end +guint +<= 256 +rw +End +End parameter. +185 + + + +GstSolarize::start +guint +<= 256 +rw +Start +Start parameter. +50 + + + +GstSolarize::threshold +guint +<= 256 +rw +Threshold +Threshold parameter. +127 + + + +GstExclusion::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstExclusion::factor +guint +<= 175 +rw +Factor +Exclusion factor parameter. +175 + + + +GstDodge::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstDilate::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstDilate::erode +gboolean + +rw +Erode +Erode parameter. +FALSE + + + +GstChromium::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstChromium::edge-a +guint +<= 256 +rw +Edge A +First edge parameter. +200 + + + +GstChromium::edge-b +guint +<= 256 +rw +Edge B +Second edge parameter. +1 + + + +GstBurn::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +GstBurn::adjustment +guint +<= 256 +rw +Adjustment +Adjustment parameter. +175 + + + +GaussBlur::sigma +gdouble +[-20,20] +rw +Sigma +Sigma value for gaussian blur (negative for sharpen). +1.2 + + + +GstColorEffects::preset +GstColorEffectsPreset + +rw +Preset +Color effect preset to use. +Do nothing preset + + + +GstStretch::intensity +gdouble +[0,1] +rw +intensity +Intensity of the stretch effect. +0.5 + + + +GstSquare::height +gdouble +[0,1] +rw +Height +Height of the square, relative to the frame height. +0.5 + + + +GstSquare::width +gdouble +[0,1] +rw +Width +Width of the square, relative to the frame width. +0.5 + + + +GstSquare::zoom +gdouble +[1,100] +rw +Zoom +Zoom amount in the center region. +2 + + + +GstMirror::mode +GstMirrorMode + +rw +Mirror Mode +How to split the video frame and which side reflect. +Split horizontally and reflect left into right + + + +GstBulge::zoom +gdouble +[1,100] +rw +zoom +Zoom of the bulge effect. +3 + + + +ladspa-TripleChorus::Delay +gfloat +[0,30] +rwx +Delay +Delay. +0 + + + +ladspa-TripleChorus::Mod-Amplitude-1 +gfloat +[0,10] +rwx +Mod-Amplitude-1 +Mod-Amplitude-1. +0 + + + +ladspa-TripleChorus::Mod-Amplitude-2 +gfloat +[0,3] +rwx +Mod-Amplitude-2 +Mod-Amplitude-2. +0 + + + +ladspa-TripleChorus::Mod-Frequency-1 +gfloat +[0.003,10] +rwx +Mod-Frequency-1 +Mod-Frequency-1. +0.003 + + + +ladspa-TripleChorus::Mod-Frequency-2 +gfloat +[0.01,30] +rwx +Mod-Frequency-2 +Mod-Frequency-2. +0.01 + + + +GstInterlace::top-field-first +gboolean + +rw +top field first +Interlaced stream should be top field first. +FALSE + + + +GstInterlace::allow-rff +gboolean + +rw +Allow Repeat-First-Field flags +Allow generation of buffers with RFF flag set, i.e., duration of 3 fields. +FALSE + + + +GstInterlace::field-pattern +GstInterlacePattern + +rw +Field pattern +The output field pattern. +2:3 + + + +GstInterlace::pattern-offset +guint +<= 12 +rw +Pattern offset +The initial field pattern offset. Counts from 0. +0 + + + +Gsttextwrite::colorB +gint +[0,255] +rw +color -Blue +Sets the color -B. +0 + + + +Gsttextwrite::colorG +gint +[0,255] +rw +color -Green +Sets the color -G. +0 + + + +Gsttextwrite::colorR +gint +[0,255] +rw +color -Red +Sets the color -R. +0 + + + +Gsttextwrite::height +gdouble +[1,5] +rw +Height +Sets the height of fonts. +1 + + + +Gsttextwrite::text +gchar* + +rw +text +Text to be display. +"" + + + +Gsttextwrite::thickness +gint +>= 0 +rw +font thickness +Sets the Thickness of Font. +2 + + + +Gsttextwrite::width +gdouble +[1,5] +rw +Width +Sets the width of fonts. +1 + + + +Gsttextwrite::xpos +gint +>= 0 +rw +horizontal position +Sets the Horizontal position. +50 + + + +Gsttextwrite::ypos +gint +>= 0 +rw +vertical position +Sets the Vertical position. +50 + + + +GstTemplateMatch::display +gboolean + +rw +Display +Sets whether the detected template should be highlighted in the output. +TRUE + + + +GstTemplateMatch::method +gint +[0,5] +rw +Method +Specifies the way the template must be compared with image regions. 0=SQDIFF, 1=SQDIFF_NORMED, 2=CCOR, 3=CCOR_NORMED, 4=CCOEFF, 5=CCOEFF_NORMED. +3 + + + +GstTemplateMatch::template +gchar* + +rw +Template +Filename of template image. +NULL + + + +Gstpyramidsegment::level +gint +[0,4] +rw +Level +Maximum level of the pyramid segmentation. +4 + + + +Gstpyramidsegment::silent +gboolean + +rw +Silent +Produce verbose output ?. +FALSE + + + +Gstpyramidsegment::threshold1 +gdouble +[0,1000] +rw +Threshold1 +Error threshold for establishing links. +50 + + + +Gstpyramidsegment::threshold2 +gdouble +[0,1000] +rw +Threshold2 +Error threshold for segment clustering. +60 + + + +Gstfacedetect::display +gboolean + +rw +Display +Sets whether the detected faces should be highlighted in the output. +TRUE + + + +Gstfacedetect::profile +gchar* + +rw +Profile +Location of Haar cascade file to use for face detection. +"/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml" + + + +Gstfacedetect::flags +GstOpencvFaceDetectFlags + +rw +Flags +Flags to cvHaarDetectObjects. + + + + +Gstfacedetect::min-neighbors +gint +>= 0 +rw +Mininum neighbors +Minimum number (minus 1) of neighbor rectangles that makes up an object. +3 + + + +Gstfacedetect::min-size-height +gint +>= 0 +rw +Minimum size height +Minimum window height size. +0 + + + +Gstfacedetect::min-size-width +gint +>= 0 +rw +Minimum size width +Minimum window width size. +0 + + + +Gstfacedetect::scale-factor +gdouble +[1.1,10] +rw +Scale factor +Factor by which the windows is scaled after each scan. +1.1 + + + +Gstfaceblur::profile +gchar* + +rw +Profile +Location of Haar cascade file to use for face blurion. +"/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml" + + + +Gstedgedetect::aperture +gint +[3,7] +rw +Aperture +Aperture size for Sobel operator (Must be either 3, 5 or 7. +3 + + + +Gstedgedetect::mask +gboolean + +rw +Mask +Sets whether the detected edges should be used as a mask on the original input or not. +TRUE + + + +Gstedgedetect::threshold1 +gint +[0,1000] +rw +Threshold1 +Threshold value for canny edge detection. +50 + + + +Gstedgedetect::threshold2 +gint +[0,1000] +rw +Threshold2 +Second threshold value for canny edge detection. +150 + + + +GstCvSobel::aperture-size +gint +[1,7] +rw +aperture size +Size of the extended Sobel Kernel (1, 3, 5 or 7). +3 + + + +GstCvSobel::x-order +gint +>= G_MAXULONG +rw +x order +Order of the derivative x. +1 + + + +GstCvSobel::y-order +gint +>= G_MAXULONG +rw +y order +Order of the derivative y. +0 + + + +GstCvSmooth::param1 +gint +>= 1 +rw +param1 (aperture width) +The aperture width (Must be positive and odd).Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth. +3 + + + +GstCvSmooth::param2 +gint +>= 0 +rw +param2 (aperture height) +The aperture height, if zero, the width is used.(Must be positive and odd or zero, unuset in median and bilateral types). Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth. +0 + + + +GstCvSmooth::param3 +gdouble +>= 0 +rw +param3 (gaussian standard deviation or color sigma +If type is gaussian, this means the standard deviation.If type is bilateral, this means the color-sigma. If zero, Default values are used.Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth. +0 + + + +GstCvSmooth::param4 +gdouble +>= 0 +rw +param4 (spatial sigma, bilateral only) +Only used in bilateral type, means the spatial-sigma.Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth. +0 + + + +GstCvSmooth::type +GstCvSmoothTypeType + +rw +type +Smooth Type. +CV Gaussian + + + +GstCvLaplace::aperture-size +gint +[1,7] +rw +aperture size +Size of the extended Laplace Kernel (1, 3, 5 or 7). +3 + + + +GstRotate::angle +gdouble + +rw +angle +Angle at which the arc starts in radians. +0 + + + +GstJP2kDecimator::max-decomposition-levels +gint +[G_MAXULONG,32] +rw +Maximum Number of Decomposition Levels +Maximum number of decomposition levels to keep (-1 == all). +-1 + + + +GstJP2kDecimator::max-layers +gint +[0,65535] +rw +Maximum Number of Layers +Maximum number of layers to keep (0 == all). +0 + + + +GstISMLMux::faststart +gboolean + +rw +Format file to faststart +If the file should be formated for faststart (headers first). . +FALSE + + + +GstISMLMux::faststart-file +gchar* + +rwx +File to use for storing buffers +File that will be used temporarily to store data from the stream when creating a faststart file. If null a filepath will be created automatically. +NULL + + + +GstISMLMux::fragment-duration +guint + +rwx +Fragment duration +Fragment durations in ms (produce a fragmented file if > 0). +2000 + + + +GstISMLMux::large-file +gboolean + +rw +Support for large files +Uses 64bits to some fields instead of 32bits, providing support for large files. +FALSE + + + +GstISMLMux::moov-recovery-file +gchar* + +rwx +File to store data for posterior moov atom recovery +File to be used to store data for moov atom making movie file recovery possible in case of a crash during muxing. Null for disabled. (Experimental). +NULL + + + +GstISMLMux::movie-timescale +guint +>= 1 +rwx +Movie timescale +Timescale to use in the movie (units per second). +1000 + + + +GstISMLMux::presentation-time +gboolean + +rwx +Include presentation-time info +Calculate and include presentation/composition time (in addition to decoding time) (use with caution). +FALSE + + + +GstISMLMux::streamable +gboolean + +rwx +Streamable +If set to true, the output should be as if it is to be streamed and hence no indexes written or duration written. +FALSE + + + +GstISMLMux::trak-timescale +guint + +rwx +Track timescale +Timescale to use for the tracks (units per second, 0 is automatic). +0 + + + +GstISMLMux::dts-method +GstQTMuxDtsMethods + +rwx +dts-method +Method to determine DTS time. +delta/duration + + + +GstChopMyData::max-size +gint +>= 1 +rw +max-size +Maximum size of outgoing buffers. +4096 + + + +GstChopMyData::min-size +gint +>= 1 +rw +max-size +Minimum size of outgoing buffers. +1 + + + +GstChopMyData::step-size +gint +>= 1 +rw +step-size +Step increment for random buffer sizes. +4096 + + + +GstChromaHold::target-b +guint +<= 255 +rw +Target Blue +The Blue target. +0 + + + +GstChromaHold::target-g +guint +<= 255 +rw +Target Green +The Green target. +0 + + + +GstChromaHold::target-r +guint +<= 255 +rw +Target Red +The Red target. +255 + + + +GstChromaHold::tolerance +guint +<= 180 +rw +Tolerance +Tolerance for the target color. +30 + + + +GstDVBSubOverlay::enable +gboolean + +rw +Enable +Enable rendering of subtitles. +TRUE + + + +GstDVBSubOverlay::max-page-timeout +gint +>= 0 +rw +max-page-timeout +Limit maximum display time of a subtitle page (0 - disabled, value in seconds). +0 + + + +GstRsvgOverlay::data +gchar* + +w +data +SVG data. +"" + + + +GstRsvgOverlay::fit-to-frame +gboolean + +rw +fit to frame +Fit the SVG to fill the whole frame. +TRUE + + + +GstRsvgOverlay::location +gchar* + +w +location +SVG file location. +"" + + + +GstRsvgOverlay::x +gint +>= -2147483647 +rw +x offset +Specify an x offset. +0 + + + +GstRsvgOverlay::y +gint +>= -2147483647 +rw +y offset +Specify a y offset. +0 + + + +GstRsvgOverlay::height +gint +>= -2147483647 +rw +height +Specify a height in pixels. +0 + + + +GstRsvgOverlay::height-relative +gfloat + +rw +relative height +Specify a height relative to the display size. +0 + + + +GstRsvgOverlay::width +gint +>= -2147483647 +rw +width +Specify a width in pixels. +0 + + + +GstRsvgOverlay::width-relative +gfloat + +rw +relative width +Specify a width relative to the display size. +0 + + + +GstRsvgOverlay::x-relative +gfloat + +rw +x relative offset +Specify an x offset relative to the display size. +0 + + + +GstRsvgOverlay::y-relative +gfloat + +rw +y relative offset +Specify a y offset relative to the display size. +0 + + + +GstLegacyH264Parse::access-unit +gboolean + +rw +Access Units +Output Acess Units rather than NALUs. +FALSE + + + +GstLegacyH264Parse::config-interval +guint +<= 3600 +rw +SPS PPS Send Interval +Send SPS and PPS Insertion Interval in seconds (sprop parameter sets will be multiplexed in the data stream when detected.) (0 = disabled). +0 + + + +GstLegacyH264Parse::output-format +GstH264ParseFormat + +rw +Output Format +Output Format of stream (bytestream or otherwise). +Input Format + + + +GstLegacyH264Parse::split-packetized +gboolean + +rw +Split packetized +Split NAL units of packetized streams. +FALSE + + + +GstCsp::dither +GstColorspaceDitherMethod + +rw +Dither +Apply dithering while converting. +No dithering (default) + + + +MpegTSParse2::program-numbers +gchar* + +rw +Program Numbers +Colon separated list of programs. +"" + + + +GstTSDemux::emit-stats +gboolean + +rw +Emit statistics +Emit messages for every pcr/opcr/pts/dts. +FALSE + + + +GstTSDemux::program-number +gint +>= G_MAXULONG +rw +Program number +Program Number to demux for (-1 to ignore). +-1 + + + +GstCurlSink::accept-self-signed +gboolean + +rw +Accept self-signed certificates +Accept self-signed SSL/TLS certificates. +FALSE + + + +GstCurlSink::content-type +gchar* + +rw +Content type +The mime type of the body of the request. +NULL + + + +GstCurlSink::file-name +gchar* + +rw +Base file name +The base file name for the uploaded images. +NULL + + + +GstCurlSink::location +gchar* + +rw +Location +URI location to write to. +NULL + + + +GstCurlSink::passwd +gchar* + +rw +User password +User password to use for server authentication. +NULL + + + +GstCurlSink::proxy +gchar* + +rw +Proxy +HTTP proxy server URI. +NULL + + + +GstCurlSink::proxy-passwd +gchar* + +rw +Proxy user password +Proxy user password to use for proxy authentication. +NULL + + + +GstCurlSink::proxy-port +gint +>= 0 +rw +Proxy port +HTTP proxy server port. +3128 + + + +GstCurlSink::proxy-user +gchar* + +rw +Proxy user name +Proxy user name to use for proxy authentication. +NULL + + + +GstCurlSink::qos-dscp +gint +[0,63] +rw +QoS diff srv code point +Quality of Service, differentiated services code point (0 default). +0 + + + +GstCurlSink::timeout +gint +>= 0 +rw +Timeout +Number of seconds waiting to write before timeout. +30 + + + +GstCurlSink::use-content-length +gboolean + +rw +Use content length header +Use the Content-Length HTTP header instead of Transfer-Encoding header. +FALSE + + + +GstCurlSink::user +gchar* + +rw +User name +User name to use for server authentication. +NULL + + + +GstFieldAnalysis::block-height +guint64 + +rw +Block height +Block height for windowed comb detection. +16 + + + +GstFieldAnalysis::block-threshold +guint64 + +rw +Block threshold +Block threshold for windowed comb detection. +80 + + + +GstFieldAnalysis::block-width +guint64 + +rw +Block width +Block width for windowed comb detection. +16 + + + +GstFieldAnalysis::comb-method +FieldAnalysisCombMethod + +rw +Comb-detection Method +Metric to be used for identifying comb artifacts if using windowed comb detection. +5-tap [1,-3,4,-3,1] vertical filter result is larger than spatial threshold*6 + + + +GstFieldAnalysis::field-metric +GstFieldAnalysisFieldMetric + +rw +Field Metric +Metric to be used for comparing same parity fields to decide if they are a repeated field for telecine. +Sum of Squared Differences + + + +GstFieldAnalysis::field-threshold +gfloat +>= 0 +rw +Field Threshold +Threshold for field metric decisions. +0.08 + + + +GstFieldAnalysis::frame-metric +GstFieldAnalysisFrameMetric + +rw +Frame Metric +Metric to be used for comparing opposite parity fields to decide if they are a progressive frame. +5-tap [1,-3,4,-3,1] Vertical Filter + + + +GstFieldAnalysis::frame-threshold +gfloat +>= 0 +rw +Frame Threshold +Threshold for frame metric decisions. +0.002 + + + +GstFieldAnalysis::ignored-lines +guint64 +>= 2 +rw +Ignored lines +Ignore this many lines from the top and bottom for windowed comb detection. +2 + + + +GstFieldAnalysis::noise-floor +guint + +rw +Noise Floor +Noise floor for appropriate metrics (per-pixel metric values with a score less than this will be ignored). +16 + + + +GstFieldAnalysis::spatial-threshold +gint64 +>= 0 +rw +Spatial Combing Threshold +Threshold for combing metric decisions. +9 + + + +GstHLSDemux::bitrate-switch-tolerance +gfloat +[0,1] +rw +Bitrate switch tolerance +Tolerance with respect of the fragment duration to switch to a different bitrate if the client is too slow/fast. +0.4 + + + +GstHLSDemux::fragments-cache +guint +>= 2 +rw +Fragments cache +Number of fragments needed to be cached to start playing. +3 + + + +GstWrapperCameraBinSrc::video-src +GstElement* + +rw +Video source +The video source element to be used. + + + + +GstViewfinderBin::video-sink +GstElement* + +rw +Video Sink +the video output element to use (NULL = default). + + + + +GstImageCaptureBin::image-encoder +GstElement* + +rw +Image encoder +Image encoder GStreamer element (default is jpegenc). + + + + +GstImageCaptureBin::image-muxer +GstElement* + +rw +Image muxer +Image muxer GStreamer element (default is jifmux). + + + + +GstImageCaptureBin::location +gchar* + +rw +Location +Location to save the captured files. A %%d can be used as a placeholder for a capture count. +"img_%d" + + + +GstCameraBin2::audio-capture-caps +GstCaps* + +rw +Audio capture caps +Format to capture audio for video recording represented as GstCaps. + + + + +GstCameraBin2::audio-capture-supported-caps +GstCaps* + +r +Audio capture supported caps +Formats supported for capturing audio represented as GstCaps. + + + + +GstCameraBin2::audio-src +GstElement* + +rw +Audio source +The audio source element to be used on video recordings. + + + + +GstCameraBin2::camera-src +GstElement* + +rw +Camera source +The camera source element to be used. + + + + +GstCameraBin2::idle +gboolean + +r +Idle +If camerabin2 is idle (not doing captures). +TRUE + + + +GstCameraBin2::image-capture-caps +GstCaps* + +rw +Image capture caps +Caps for image capture. + + + + +GstCameraBin2::image-capture-encoder +GstElement* + +rw +Image capture encoder +The image encoder element to be used on image captures. + + + + +GstCameraBin2::image-capture-muxer +GstElement* + +rw +Image capture encoder +The image encoder element to be used on image captures. + + + + +GstCameraBin2::image-capture-supported-caps +GstCaps* + +r +Image capture supported caps +Formats supported for capturing images represented as GstCaps. + + + + +GstCameraBin2::image-filter +GstElement* + +rw +Image filter +The element that will process captured image frames. (Should be set on NULL state). + + + + +GstCameraBin2::location +gchar* + +rw +Location +Location to save the captured files. A %d might be used on thefilename as a placeholder for a numeric index of the capture.Default for images is img_%d and vid_%d for videos. +"img_%d" + + + +GstCameraBin2::max-zoom +gfloat +>= 1 +r +Maximum zoom level (note: may change depending on resolution/implementation) +Digital zoom factor (e.g. 1.5 means 1.5x). +10 + + + +GstCameraBin2::mode +GstCameraBin2Mode + +rw +Mode +The capture mode (still image capture or video recording). +Still image capture (default) + + + +GstCameraBin2::mute +gboolean + +rw +Mute +If the audio recording should be muted. Note that this still saves audio data to the resulting file, but they are silent. Use a video-profile without audio to disable audio completely. +FALSE + + + +GstCameraBin2::post-previews +gboolean + +rw +Post Previews +If capture preview images should be posted to the bus. +TRUE + + + +GstCameraBin2::preview-caps +GstCaps* + +rw +Preview caps +The caps of the preview image to be posted. + + + + +GstCameraBin2::preview-filter +GstElement* + +rw +Preview filter +The element that will process preview buffers. (Should be set on NULL state). + + + + +GstCameraBin2::video-capture-caps +GstCaps* + +rw +Video capture caps +Caps for video capture. + + + + +GstCameraBin2::video-capture-supported-caps +GstCaps* + +r +Video capture supported caps +Formats supported for capturing videos represented as GstCaps. + + + + +GstCameraBin2::video-filter +GstElement* + +rw +Video filter +The element that will process captured video frames. (Should be set on NULL state). + + + + +GstCameraBin2::video-profile +GstEncodingProfile* + +rw +Video Profile +The GstEncodingProfile to use for video recording. Audio is enabled when this profile supports audio. + + + + +GstCameraBin2::viewfinder-caps +GstCaps* + +rw +Viewfinder caps +Restricts the caps that can be used on the viewfinder. + + + + +GstCameraBin2::viewfinder-filter +GstElement* + +rw +Viewfinder filter +The element that will process frames going to the viewfinder. (Should be set on NULL state). + + + + +GstCameraBin2::viewfinder-sink +GstElement* + +rw +Viewfinder sink +The video sink of the viewfinder. + + + + +GstCameraBin2::viewfinder-supported-caps +GstCaps* + +r +Camera source Viewfinder pad supported caps +The caps that the camera source can produce on the viewfinder pad. + + + + +GstCameraBin2::zoom +gfloat +[1,10] +rw +Zoom +Digital zoom factor (e.g. 1.5 means 1.5x). +1 + + + +GstZebraStripe::threshold +gint +[0,100] +rwx +Threshold +Threshold above which the video is striped. +90 + + + +GstOpencvTextOverlay::colorB +gint +[0,255] +rw +color -Blue +Sets the color -B. +0 + + + +GstOpencvTextOverlay::colorG +gint +[0,255] +rw +color -Green +Sets the color -G. +0 + + + +GstOpencvTextOverlay::colorR +gint +[0,255] +rw +color -Red +Sets the color -R. +0 + + + +GstOpencvTextOverlay::height +gdouble +[1,5] +rw +Height +Sets the height of fonts. +1 + + + +GstOpencvTextOverlay::text +gchar* + +rw +text +Text to be display. +"" + + + +GstOpencvTextOverlay::thickness +gint +>= 0 +rw +font thickness +Sets the Thickness of Font. +2 + + + +GstOpencvTextOverlay::width +gdouble +[1,5] +rw +Width +Sets the width of fonts. +1 + + + +GstOpencvTextOverlay::xpos +gint +>= 0 +rw +horizontal position +Sets the Horizontal position. +50 + + + +GstOpencvTextOverlay::ypos +gint +>= 0 +rw +vertical position +Sets the Vertical position. +50 + + + +GstLinsysSdiSrc::device +gchar* + +rw +Device +device to transmit data on. +"/dev/sdirx0" + + + +GstLinsysSdiSink::device +gchar* + +rw +Device +device to transmit data on. +"/dev/sditx0" + + diff --git a/docs/plugins/gst-plugins-bad-plugins.interfaces b/docs/plugins/gst-plugins-bad-plugins.interfaces new file mode 100644 index 0000000..d5ab04b --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.interfaces @@ -0,0 +1,38 @@ +GstBin GstChildProxy +GstPipeline GstChildProxy +GstCameraBin GstChildProxy GstImplementsInterface GstColorBalance GstTagSetter +GstGSettingsSwitchSink GstChildProxy +GstGSettingsAudioSink GstChildProxy +GstGSettingsVideoSink GstChildProxy +GstGSettingsSwitchSrc GstChildProxy +GstGSettingsAudioSrc GstChildProxy +GstGSettingsVideoSrc GstChildProxy +RsnDvdBin GstChildProxy GstURIHandler +DvbBaseBin GstChildProxy GstURIHandler +GstAutoConvert GstChildProxy +GstAutoVideoConvert GstChildProxy +GstSDPDemux GstChildProxy +GstFPSDisplaySink GstChildProxy +GstMpeg2enc GstPreset +GstSDLVideoSink GstImplementsInterface GstXOverlay GstNavigation +GstDfbVideoSink GstImplementsInterface GstNavigation GstColorBalance +VdpSink GstImplementsInterface GstNavigation GstXOverlay +GstCeltEnc GstTagSetter GstPreset +GstCDAudio GstURIHandler +GstRTMPSrc GstURIHandler +GstMythtvSrc GstURIHandler +GstMMS GstURIHandler +GstNeonhttpSrc GstURIHandler +GstVCDSrc GstURIHandler +GstDataURISrc GstURIHandler +GstAmrWbEnc GstPreset +GstFaac GstPreset +GstXvidEnc GstPreset +GstDiracEnc GstPreset +GstVP8Enc GstTagSetter GstPreset +GstKateEnc GstTagSetter +GstKateTag GstTagSetter +GstJifMux GstTagSetter GstTagXmpWriter +GstId3BaseMux GstTagSetter +GstId3Mux GstTagSetter +GstAsfMux GstTagSetter diff --git a/docs/plugins/gst-plugins-bad-plugins.prerequisites b/docs/plugins/gst-plugins-bad-plugins.prerequisites new file mode 100644 index 0000000..79b8f0d --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.prerequisites @@ -0,0 +1,8 @@ +GstChildProxy GstObject +GstImplementsInterface GstElement +GstXOverlay GstImplementsInterface GstElement +GstTagSetter GstElement +GstColorBalance GstImplementsInterface GstElement +GstTagXmpWriter GstElement +MXFDescriptiveMetadataFrameworkInterface MXFDescriptiveMetadata +GstPhotography GstImplementsInterface GstElement diff --git a/docs/plugins/gst-plugins-bad-plugins.signals b/docs/plugins/gst-plugins-bad-plugins.signals new file mode 100644 index 0000000..95a0807 --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.signals @@ -0,0 +1,531 @@ + +GstSwitch::block +gint64 +l +GstSwitch *gstswitch + + + +GstSwitch::switch +void +l +GstSwitch *gstswitch +gchar *arg1 +gint64 arg2 +gint64 arg3 + + + +GstCDAudio::track-change +void +l +GstCDAudio *gstcdaudio +gint arg1 + + + +GstInputSelector::block +gint64 +la +GstInputSelector *gstinputselector + + + +GstInputSelector::switch +void +l +GstInputSelector *gstinputselector +GstPad *arg1 +gint64 arg2 +gint64 arg3 + + + +GstDivxEnc::frame-encoded +void +l +GstDivxEnc *gstdivxenc + + + +GstDCCPClientSrc::connected +void +f +GstDCCPClientSrc *gstdccpclientsrc +gint arg1 + + + +GstDCCPServerSink::connected +void +f +GstDCCPServerSink *gstdccpserversink +gint arg1 + + + +GstDCCPClientSink::connected +void +f +GstDCCPClientSink *gstdccpclientsink +gint arg1 + + + +GstDCCPServerSrc::connected +void +f +GstDCCPServerSrc *gstdccpserversrc +gint arg1 + + + +GstCameraBin::img-done +gboolean +l +GstCameraBin *gstcamerabin +gchar *arg1 + + + +GstCameraBin::user-image-res +void +la +GstCameraBin *gstcamerabin +gint arg1 +gint arg2 + + + +GstCameraBin::user-pause +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::user-res-fps +void +la +GstCameraBin *gstcamerabin +gint arg1 +gint arg2 +gint arg3 +gint arg4 + + + +GstCameraBin::user-start +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::user-stop +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::capture-pause +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::capture-start +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::capture-stop +void +la +GstCameraBin *gstcamerabin + + + +GstCameraBin::image-done +gboolean +l +GstCameraBin *gstcamerabin +gchar *arg1 + + + +GstCameraBin::set-image-resolution +void +la +GstCameraBin *gstcamerabin +gint arg1 +gint arg2 + + + +GstCameraBin::set-video-resolution-fps +void +la +GstCameraBin *gstcamerabin +gint arg1 +gint arg2 +gint arg3 +gint arg4 + + + +GstRTPDTMFMux::locking +void +l +GstRTPDTMFMux *gstrtpdtmfmux +GstPad *arg1 + + + +GstRTPDTMFMux::unlocked +void +l +GstRTPDTMFMux *gstrtpdtmfmux +GstPad *arg1 + + + +GstRtpBin::clear-pt-map +void +la +GstRtpBin *gstrtpbin + + + +GstRtpBin::get-internal-session +RTPSession* +la +GstRtpBin *gstrtpbin +guint arg1 + + + +GstRtpBin::on-bye-ssrc +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-bye-timeout +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-new-ssrc +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-npt-stop +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-sender-timeout +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-ssrc-active +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-ssrc-collision +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-ssrc-sdes +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-ssrc-validated +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::on-timeout +void +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::request-pt-map +GstCaps* +l +GstRtpBin *gstrtpbin +guint arg1 +guint arg2 + + + +GstRtpBin::reset-sync +void +la +GstRtpBin *gstrtpbin + + + +GstRtpJitterBuffer::clear-pt-map +void +la +GstRtpJitterBuffer *gstrtpjitterbuffer + + + +GstRtpJitterBuffer::handle-sync +void +l +GstRtpJitterBuffer *gstrtpjitterbuffer +GstStructure *arg1 + + + +GstRtpJitterBuffer::on-npt-stop +void +l +GstRtpJitterBuffer *gstrtpjitterbuffer + + + +GstRtpJitterBuffer::request-pt-map +GstCaps* +l +GstRtpJitterBuffer *gstrtpjitterbuffer +guint arg1 + + + +GstRtpPtDemux::clear-pt-map +void +la +GstRtpPtDemux *gstrtpptdemux + + + +GstRtpPtDemux::new-payload-type +void +l +GstRtpPtDemux *gstrtpptdemux +guint arg1 +GstPad *arg2 + + + +GstRtpPtDemux::payload-type-change +void +l +GstRtpPtDemux *gstrtpptdemux +guint arg1 + + + +GstRtpPtDemux::request-pt-map +GstCaps* +l +GstRtpPtDemux *gstrtpptdemux +guint arg1 + + + +GstRtpSession::clear-pt-map +void +a +GstRtpSession *gstrtpsession + + + +GstRtpSession::on-bye-ssrc +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-bye-timeout +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-new-ssrc +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-sender-timeout +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-ssrc-active +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-ssrc-collision +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-ssrc-sdes +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-ssrc-validated +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::on-timeout +void +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSession::request-pt-map +GstCaps* +l +GstRtpSession *gstrtpsession +guint arg1 + + + +GstRtpSsrcDemux::clear-ssrc +void +la +GstRtpSsrcDemux *gstrtpssrcdemux +guint arg1 + + + +GstRtpSsrcDemux::new-ssrc-pad +void +l +GstRtpSsrcDemux *gstrtpssrcdemux +guint arg1 +GstPad *arg2 + + + +GstRtpSsrcDemux::removed-ssrc-pad +void +l +GstRtpSsrcDemux *gstrtpssrcdemux +guint arg1 +GstPad *arg2 + + + +GstFPSDisplaySink::fps-measurements +void +l +GstFPSDisplaySink *gstfpsdisplaysink +gdouble arg1 +gdouble arg2 +gdouble arg3 + + + +GstShmSink::client-connected +void +l +GstShmSink *gstshmsink +gint arg1 + + + +GstShmSink::client-disconnected +void +l +GstShmSink *gstshmsink +gint arg1 + + + +GstCameraBin2::start-capture +void +la +GstCameraBin2 *gstcamerabin2 + + + +GstCameraBin2::stop-capture +void +la +GstCameraBin2 *gstcamerabin2 + + diff --git a/docs/plugins/gst-plugins-bad-plugins.types b/docs/plugins/gst-plugins-bad-plugins.types new file mode 100644 index 0000000..3117ba5 --- /dev/null +++ b/docs/plugins/gst-plugins-bad-plugins.types @@ -0,0 +1,6 @@ +#include + +#include + +gst_photography_get_type + diff --git a/docs/plugins/html/GstPhotography.html b/docs/plugins/html/GstPhotography.html new file mode 100644 index 0000000..e2acf27 --- /dev/null +++ b/docs/plugins/html/GstPhotography.html @@ -0,0 +1,1255 @@ + + + + +GstPhotography + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

GstPhotography

+

GstPhotography — Interface for digital image capture elements

+
+
+

Synopsis

+
                    GstPhotography;
+enum                GstPhotographyNoiseReduction;
+enum                GstWhiteBalanceMode;
+enum                GstColourToneMode;
+enum                GstSceneMode;
+enum                GstFlashMode;
+enum                GstFlickerReductionMode;
+enum                GstFocusMode;
+enum                GstFocusStatus;
+enum                GstPhotoCaps;
+enum                GstPhotoShakeRisk;
+void                (*GstPhotoCapturePrepared)          (gpointer data,
+                                                         const GstCaps *configured_caps);
+gboolean            gst_photography_get_ev_compensation (GstPhotography *photo,
+                                                         gfloat *ev_comp);
+gboolean            gst_photography_get_iso_speed       (GstPhotography *photo,
+                                                         guint *iso_speed);
+gboolean            gst_photography_get_aperture        (GstPhotography *photo,
+                                                         guint *aperture);
+gboolean            gst_photography_get_exposure        (GstPhotography *photo,
+                                                         guint32 *exposure);
+gboolean            gst_photography_get_white_balance_mode
+                                                        (GstPhotography *photo,
+                                                         GstWhiteBalanceMode *wb_mode);
+gboolean            gst_photography_get_colour_tone_mode
+                                                        (GstPhotography *photo,
+                                                         GstColourToneMode *tone_mode);
+gboolean            gst_photography_get_scene_mode      (GstPhotography *photo,
+                                                         GstSceneMode *scene_mode);
+gboolean            gst_photography_get_flash_mode      (GstPhotography *photo,
+                                                         GstFlashMode *flash_mode);
+gboolean            gst_photography_get_noise_reduction (GstPhotography *photo,
+                                                         GstPhotographyNoiseReduction *noise_reduction);
+gboolean            gst_photography_get_zoom            (GstPhotography *photo,
+                                                         gfloat *zoom);
+gboolean            gst_photography_set_ev_compensation (GstPhotography *photo,
+                                                         gfloat ev_comp);
+gboolean            gst_photography_set_iso_speed       (GstPhotography *photo,
+                                                         guint iso_speed);
+gboolean            gst_photography_set_aperture        (GstPhotography *photo,
+                                                         guint aperture);
+gboolean            gst_photography_set_exposure        (GstPhotography *photo,
+                                                         guint exposure);
+gboolean            gst_photography_set_white_balance_mode
+                                                        (GstPhotography *photo,
+                                                         GstWhiteBalanceMode wb_mode);
+gboolean            gst_photography_set_colour_tone_mode
+                                                        (GstPhotography *photo,
+                                                         GstColourToneMode tone_mode);
+gboolean            gst_photography_set_scene_mode      (GstPhotography *photo,
+                                                         GstSceneMode scene_mode);
+gboolean            gst_photography_set_flash_mode      (GstPhotography *photo,
+                                                         GstFlashMode flash_mode);
+gboolean            gst_photography_set_noise_reduction (GstPhotography *photo,
+                                                         GstPhotographyNoiseReduction noise_reduction);
+gboolean            gst_photography_set_zoom            (GstPhotography *photo,
+                                                         gfloat zoom);
+GstPhotoCaps        gst_photography_get_capabilities    (GstPhotography *photo);
+gboolean            gst_photography_prepare_for_capture (GstPhotography *photo,
+                                                         GstPhotoCapturePrepared func,
+                                                         GstCaps *capture_caps,
+                                                         gpointer user_data);
+void                gst_photography_set_autofocus       (GstPhotography *photo,
+                                                         gboolean on);
+gboolean            gst_photography_set_config          (GstPhotography *photo,
+                                                         GstPhotoSettings *config);
+gboolean            gst_photography_get_config          (GstPhotography *photo,
+                                                         GstPhotoSettings *config);
+
+
+
+

Object Hierarchy

+
+  GInterface
+   +----GstPhotography
+
+
+
+

Prerequisites

+

+GstPhotography requires + GstImplementsInterface and GstElement.

+
+
+

Properties

+
+  "aperture"                 guint                 : Read / Write
+  "capabilities"             gulong                : Read
+  "colour-tone-mode"         GstColourToneMode     : Read / Write
+  "ev-compensation"          gfloat                : Read / Write
+  "exposure"                 guint                 : Read / Write
+  "flash-mode"               GstFlashMode          : Read / Write
+  "flicker-mode"             GstFlickerReductionMode  : Read / Write
+  "focus-mode"               GstFocusMode          : Read / Write
+  "image-capture-supported-caps" GstCaps*              : Read
+  "iso-speed"                guint                 : Read / Write
+  "scene-mode"               GstSceneMode          : Read / Write
+  "white-balance-mode"       GstWhiteBalanceMode   : Read / Write
+  "image-preview-supported-caps" GstCaps*              : Read
+  "noise-reduction"          GstPhotographyNoiseReduction  : Read / Write
+  "zoom"                     gfloat                : Read / Write
+
+
+
+

Description

+

+The interface allows access to some common digital image capture parameters. +

+

+

+
+

Note

+ The GstPhotography interface is unstable API and may change in future. + One can define GST_USE_UNSTABLE_API to acknowledge and avoid this warning. +
+

+

+
+
+

Details

+
+

GstPhotography

+
typedef struct _GstPhotography GstPhotography;
+

+Opaque GstPhotography data structure. +

+
+
+
+

enum GstPhotographyNoiseReduction

+
typedef enum
+{
+  GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER = ( 1<<0 ),
+  GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC = ( 1<<1 ),
+  GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL= ( 1<< 2),
+  GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED = (1 << 3),
+  GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA = (1 << 4)
+} GstPhotographyNoiseReduction;
+
+

+Noise Reduction features of a photography capture or filter element. +

+
++ + + + + + + + + + + + + + + + + + + + + + +

GST_PHOTOGRAPHY_NOISE_REDUCTION_BAYER

Adaptive noise reduction on Bayer +format +

GST_PHOTOGRAPHY_NOISE_REDUCTION_YCC

reduces the noise on Y and 2-chroma +images. +

GST_PHOTOGRAPHY_NOISE_REDUCTION_TEMPORAL

Multi-frame adaptive NR, +provided for the video mode +

GST_PHOTOGRAPHY_NOISE_REDUCTION_FIXED

+

GST_PHOTOGRAPHY_NOISE_REDUCTION_EXTRA

Extra Noise Reduction. In the case +of high-ISO capturing, some noise remains after YCC NR. XNR reduces this +remaining noise. +
+

Since 0.10.21

+
+
+
+

enum GstWhiteBalanceMode

+
typedef enum
+{
+  GST_PHOTOGRAPHY_WB_MODE_AUTO = 0,
+  GST_PHOTOGRAPHY_WB_MODE_DAYLIGHT,
+  GST_PHOTOGRAPHY_WB_MODE_CLOUDY,
+  GST_PHOTOGRAPHY_WB_MODE_SUNSET,
+  GST_PHOTOGRAPHY_WB_MODE_TUNGSTEN,
+  GST_PHOTOGRAPHY_WB_MODE_FLUORESCENT
+} GstWhiteBalanceMode;
+
+

+

+
+
+
+

enum GstColourToneMode

+
typedef enum
+{
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL = 0,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SEPIA,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NEGATIVE,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_GRAYSCALE,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NATURAL,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_VIVID,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_COLORSWAP,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SOLARIZE,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_OUT_OF_FOCUS,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SKY_BLUE,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_GRASS_GREEN,
+  GST_PHOTOGRAPHY_COLOUR_TONE_MODE_SKIN_WHITEN
+} GstColourToneMode;
+
+

+

+
+
+
+

enum GstSceneMode

+
typedef enum
+{
+  GST_PHOTOGRAPHY_SCENE_MODE_MANUAL = 0,
+  GST_PHOTOGRAPHY_SCENE_MODE_CLOSEUP,
+  GST_PHOTOGRAPHY_SCENE_MODE_PORTRAIT,
+  GST_PHOTOGRAPHY_SCENE_MODE_LANDSCAPE,
+  GST_PHOTOGRAPHY_SCENE_MODE_SPORT,
+  GST_PHOTOGRAPHY_SCENE_MODE_NIGHT,
+  GST_PHOTOGRAPHY_SCENE_MODE_AUTO
+} GstSceneMode;
+
+

+

+
+
+
+

enum GstFlashMode

+
typedef enum
+{
+  GST_PHOTOGRAPHY_FLASH_MODE_AUTO = 0,
+  GST_PHOTOGRAPHY_FLASH_MODE_OFF,
+  GST_PHOTOGRAPHY_FLASH_MODE_ON,
+  GST_PHOTOGRAPHY_FLASH_MODE_FILL_IN,
+  GST_PHOTOGRAPHY_FLASH_MODE_RED_EYE
+} GstFlashMode;
+
+

+

+
+
+
+

enum GstFlickerReductionMode

+
typedef enum
+{
+  GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF = 0,
+  GST_PHOTOGRAPHY_FLICKER_REDUCTION_50HZ,
+  GST_PHOTOGRAPHY_FLICKER_REDUCTION_60HZ,
+  GST_PHOTOGRAPHY_FLICKER_REDUCTION_AUTO,
+} GstFlickerReductionMode;
+
+

+

+
+
+
+

enum GstFocusMode

+
typedef enum {
+    GST_PHOTOGRAPHY_FOCUS_MODE_AUTO = 0,
+    GST_PHOTOGRAPHY_FOCUS_MODE_MACRO,
+    GST_PHOTOGRAPHY_FOCUS_MODE_PORTRAIT,
+    GST_PHOTOGRAPHY_FOCUS_MODE_INFINITY,
+    GST_PHOTOGRAPHY_FOCUS_MODE_HYPERFOCAL,
+    GST_PHOTOGRAPHY_FOCUS_MODE_EXTENDED,
+    GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_NORMAL,
+    GST_PHOTOGRAPHY_FOCUS_MODE_CONTINUOUS_EXTENDED,
+} GstFocusMode;
+
+

+

+
+
+
+

enum GstFocusStatus

+
typedef enum
+{
+  GST_PHOTOGRAPHY_FOCUS_STATUS_NONE = 0,
+  GST_PHOTOGRAPHY_FOCUS_STATUS_RUNNING,
+  GST_PHOTOGRAPHY_FOCUS_STATUS_FAIL,
+  GST_PHOTOGRAPHY_FOCUS_STATUS_SUCCESS
+} GstFocusStatus;
+
+

+

+
+
+
+

enum GstPhotoCaps

+
typedef enum
+{
+  GST_PHOTOGRAPHY_CAPS_NONE = (0 << 0),
+  GST_PHOTOGRAPHY_CAPS_EV_COMP = (1 << 0),
+  GST_PHOTOGRAPHY_CAPS_ISO_SPEED = (1 << 1),
+  GST_PHOTOGRAPHY_CAPS_WB_MODE = (1 << 2),
+  GST_PHOTOGRAPHY_CAPS_TONE = (1 << 3),
+  GST_PHOTOGRAPHY_CAPS_SCENE = (1 << 4),
+  GST_PHOTOGRAPHY_CAPS_FLASH = (1 << 5),
+  GST_PHOTOGRAPHY_CAPS_ZOOM = (1 << 6),
+  GST_PHOTOGRAPHY_CAPS_FOCUS = (1 << 7),
+  GST_PHOTOGRAPHY_CAPS_APERTURE = (1 << 8),
+  GST_PHOTOGRAPHY_CAPS_EXPOSURE = (1 << 9),
+  GST_PHOTOGRAPHY_CAPS_SHAKE = (1 << 10),
+  GST_PHOTOGRAPHY_CAPS_NOISE_REDUCTION = (1 << 11)
+} GstPhotoCaps;
+
+

+

+
+
+
+

enum GstPhotoShakeRisk

+
typedef enum
+{
+  GST_PHOTOGRAPHY_SHAKE_RISK_LOW = 0,
+  GST_PHOTOGRAPHY_SHAKE_RISK_MEDIUM,
+  GST_PHOTOGRAPHY_SHAKE_RISK_HIGH,
+} GstPhotoShakeRisk;
+
+

+

+
+
+
+

GstPhotoCapturePrepared ()

+
void                (*GstPhotoCapturePrepared)          (gpointer data,
+                                                         const GstCaps *configured_caps);
+

+This callback will be called when the element has finished preparations +for photo capture. +

+
++ + + + + + + + + + +

data :

user data that has been given, when registering the callback

configured_caps :

+GstCaps defining the configured capture format. +Ownership of these caps stays in the element.
+
+
+
+

gst_photography_get_ev_compensation ()

+
gboolean            gst_photography_get_ev_compensation (GstPhotography *photo,
+                                                         gfloat *ev_comp);
+

+Get the ev compensation value for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

ev_comp :

ev compensation value to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_iso_speed ()

+
gboolean            gst_photography_get_iso_speed       (GstPhotography *photo,
+                                                         guint *iso_speed);
+

+Get the ISO value (light sensivity) for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

iso_speed :

ISO speed value to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_aperture ()

+
gboolean            gst_photography_get_aperture        (GstPhotography *photo,
+                                                         guint *aperture);
+

+Get the aperture value for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

aperture :

aperture value to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_exposure ()

+
gboolean            gst_photography_get_exposure        (GstPhotography *photo,
+                                                         guint32 *exposure);
+

+Get the fixed exposure time (in us) for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

exposure :

exposure time to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_white_balance_mode ()

+
gboolean            gst_photography_get_white_balance_mode
+                                                        (GstPhotography *photo,
+                                                         GstWhiteBalanceMode *wb_mode);
+

+Get the white balance mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

wb_mode :

+GstWhiteBalanceMode to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_colour_tone_mode ()

+
gboolean            gst_photography_get_colour_tone_mode
+                                                        (GstPhotography *photo,
+                                                         GstColourToneMode *tone_mode);
+

+Get the colour tone mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

tone_mode :

+GstColourToneMode to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_scene_mode ()

+
gboolean            gst_photography_get_scene_mode      (GstPhotography *photo,
+                                                         GstSceneMode *scene_mode);
+

+Get the scene mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

scene_mode :

+GstSceneMode to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_flash_mode ()

+
gboolean            gst_photography_get_flash_mode      (GstPhotography *photo,
+                                                         GstFlashMode *flash_mode);
+

+Get the flash mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

flash_mode :

+GstFlashMode to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_noise_reduction ()

+
gboolean            gst_photography_get_noise_reduction (GstPhotography *photo,
+                                                         GstPhotographyNoiseReduction *noise_reduction);
+

+Get the noise reduction mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

noise_reduction :

+GstNoiseReductionMode to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+

Since 0.10.21

+
+
+
+

gst_photography_get_zoom ()

+
gboolean            gst_photography_get_zoom            (GstPhotography *photo,
+                                                         gfloat *zoom);
+

+Get the zoom value for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

zoom :

zoom value to get

Returns :

+TRUE if getting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_ev_compensation ()

+
gboolean            gst_photography_set_ev_compensation (GstPhotography *photo,
+                                                         gfloat ev_comp);
+

+Set the ev compensation value for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

ev_comp :

ev compensation value to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_iso_speed ()

+
gboolean            gst_photography_set_iso_speed       (GstPhotography *photo,
+                                                         guint iso_speed);
+

+Set the ISO value (light sensivity) for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

iso_speed :

ISO speed value to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_aperture ()

+
gboolean            gst_photography_set_aperture        (GstPhotography *photo,
+                                                         guint aperture);
+

+Set the aperture value for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

aperture :

aperture value to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_exposure ()

+
gboolean            gst_photography_set_exposure        (GstPhotography *photo,
+                                                         guint exposure);
+

+Set the fixed exposure time (in us) for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

exposure :

exposure time to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_white_balance_mode ()

+
gboolean            gst_photography_set_white_balance_mode
+                                                        (GstPhotography *photo,
+                                                         GstWhiteBalanceMode wb_mode);
+

+Set the white balance mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

wb_mode :

+GstWhiteBalanceMode to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_colour_tone_mode ()

+
gboolean            gst_photography_set_colour_tone_mode
+                                                        (GstPhotography *photo,
+                                                         GstColourToneMode tone_mode);
+

+Set the colour tone mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

tone_mode :

+GstColourToneMode to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_scene_mode ()

+
gboolean            gst_photography_set_scene_mode      (GstPhotography *photo,
+                                                         GstSceneMode scene_mode);
+

+Set the scene mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

scene_mode :

+GstSceneMode to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_flash_mode ()

+
gboolean            gst_photography_set_flash_mode      (GstPhotography *photo,
+                                                         GstFlashMode flash_mode);
+

+Set the flash mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

flash_mode :

+GstFlashMode to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_set_noise_reduction ()

+
gboolean            gst_photography_set_noise_reduction (GstPhotography *photo,
+                                                         GstPhotographyNoiseReduction noise_reduction);
+

+Set the noise reduction mode for the GstElement +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

noise_reduction :

+GstNoiseReductionMode to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+

Since 0.10.21

+
+
+
+

gst_photography_set_zoom ()

+
gboolean            gst_photography_set_zoom            (GstPhotography *photo,
+                                                         gfloat zoom);
+

+Set the zoom value for the GstElement. +E.g. 1.0 to get original image and 3.0 for 3x zoom and so on. +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

zoom :

zoom value to set

Returns :

+TRUE if setting the value succeeded, FALSE otherwise
+
+
+
+

gst_photography_get_capabilities ()

+
GstPhotoCaps        gst_photography_get_capabilities    (GstPhotography *photo);
+

+Get GstPhotoCaps bitmask value that indicates what photography +interface features the GstElement supports +

+
++ + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

Returns :

+GstPhotoCaps value
+
+
+
+

gst_photography_prepare_for_capture ()

+
gboolean            gst_photography_prepare_for_capture (GstPhotography *photo,
+                                                         GstPhotoCapturePrepared func,
+                                                         GstCaps *capture_caps,
+                                                         gpointer user_data);
+

+Start preparations for capture. func callback is called after +preparations are done. +

+
++ + + + + + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

func :

callback that is called after capturing has been prepared

user_data :

user data that will be passed to the callback func +

Returns :

TRUE if preparations were started (caps were OK), otherwise FALSE.
+
+
+
+

gst_photography_set_autofocus ()

+
void                gst_photography_set_autofocus       (GstPhotography *photo,
+                                                         gboolean on);
+

+Start or stop autofocusing. GST_PHOTOGRAPHY_AUTOFOCUS_DONE +message is posted to bus when autofocusing has finished. +

+
++ + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

on :

+TRUE to start autofocusing, FALSE to stop autofocusing
+
+
+
+

gst_photography_set_config ()

+
gboolean            gst_photography_set_config          (GstPhotography *photo,
+                                                         GstPhotoSettings *config);
+

+Set all configuration settings at once. +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

config :

+GstPhotoSettings containg the configuration

Returns :

TRUE if configuration was set successfully, otherwise FALSE.
+
+
+
+

gst_photography_get_config ()

+
gboolean            gst_photography_get_config          (GstPhotography *photo,
+                                                         GstPhotoSettings *config);
+

+Get all configuration settings at once. +

+
++ + + + + + + + + + + + + + +

photo :

+GstPhotography interface of a GstElement +

config :

+GstPhotoSettings containg the configuration

Returns :

TRUE if configuration was got successfully, otherwise FALSE.
+
+
+
+

Property Details

+
+

The "aperture" property

+
  "aperture"                 guint                 : Read / Write
+

Aperture defines the size of lens opening (0 = auto).

+

Allowed values: <= 255

+

Default value: 0

+
+
+
+

The "capabilities" property

+
  "capabilities"             gulong                : Read
+

Tells the photo capabilities of the device.

+
+
+
+

The "colour-tone-mode" property

+
  "colour-tone-mode"         GstColourToneMode     : Read / Write
+

Colour tone setting changes colour shading in the photo.

+

Default value: GST_PHOTOGRAPHY_COLOUR_TONE_MODE_NORMAL

+
+
+
+

The "ev-compensation" property

+
  "ev-compensation"          gfloat                : Read / Write
+

EV compensation affects the brightness of the image.

+

Allowed values: [-2.5,2.5]

+

Default value: 0

+
+
+
+

The "exposure" property

+
  "exposure"                 guint                 : Read / Write
+

Exposure time defines how long the shutter will stay open (0 = auto).

+

Default value: 0

+
+
+
+

The "flash-mode" property

+
  "flash-mode"               GstFlashMode          : Read / Write
+

Flash mode defines how the flash light should be used.

+

Default value: GST_PHOTOGRAPHY_FLASH_MODE_AUTO

+
+
+
+

The "flicker-mode" property

+
  "flicker-mode"             GstFlickerReductionMode  : Read / Write
+

Flicker reduction mode defines a line frequency for flickering prevention.

+

Default value: GST_PHOTOGRAPHY_FLICKER_REDUCTION_OFF

+
+
+
+

The "focus-mode" property

+
  "focus-mode"               GstFocusMode          : Read / Write
+

Focus mode defines the range of focal lengths to use in autofocus search.

+

Default value: GST_PHOTOGRAPHY_FOCUS_MODE_AUTO

+
+
+
+

The "image-capture-supported-caps" property

+
  "image-capture-supported-caps" GstCaps*              : Read
+

Caps describing supported image capture formats.

+
+
+
+

The "iso-speed" property

+
  "iso-speed"                guint                 : Read / Write
+

ISO speed defines the light sensitivity (0 = auto).

+

Allowed values: <= 6400

+

Default value: 0

+
+
+
+

The "scene-mode" property

+
  "scene-mode"               GstSceneMode          : Read / Write
+

Scene mode works as a preset for different photo shooting mode settings.

+

Default value: GST_PHOTOGRAPHY_SCENE_MODE_AUTO

+
+
+
+

The "white-balance-mode" property

+
  "white-balance-mode"       GstWhiteBalanceMode   : Read / Write
+

White balance affects the color temperature of the photo.

+

Default value: GST_PHOTOGRAPHY_WB_MODE_AUTO

+
+
+
+

The "image-preview-supported-caps" property

+
  "image-preview-supported-caps" GstCaps*              : Read
+

Caps describing supported image preview formats.

+
+
+
+

The "noise-reduction" property

+
  "noise-reduction"          GstPhotographyNoiseReduction  : Read / Write
+

Which noise reduction modes are enabled (0 = disabled).

+
+
+
+

The "zoom" property

+
  "zoom"                     gfloat                : Read / Write
+

How much the resulted image will be zoomed.

+

Allowed values: [1,10]

+

Default value: 1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/camerabin.png b/docs/plugins/html/camerabin.png new file mode 100644 index 0000000000000000000000000000000000000000..7f82e13315f5d5171321894233e37f8b5bba1092 GIT binary patch literal 7779 zcmb_>1yq$`m+nDO0V!z&Noi^6l#p(uJ4HZ1B&0!7T0}}pK}z6I2b6A=QltcF0cns< zXP=pW?#%k{KWo;y>jDc{aL)Jb?|t`v>W$XYP{hZ*fr~&O@RgP1br1*)6Zky``wDzF zX!AXVA6KkZ73C3s(Vw|Zg~tw%zt{h z3lTP!f2s@~RybE%5|iTW$_kFIuC9ov=-gUG%Thx=0SPu1yo6UssC&H9#(iaoxyrGZ623JzAN*VyS}mxr1;Qg+?l z-CP=&t)uUaI{Nzh#(#f%Yox8M9qHuc;sdvK-kxo9{{1!YHamN}e3>WMp00QUPD$>7)nL)YXmj^his~%Ita)=*Aw3I}Feq z?2lPgFAwHae=pP&DAp^feZ9Tyrf+UOowqMkNFWm~+xF(|+w_KphJic#+pIbM?W=2R zKTh`7e#BAk&%&DzV4FJ z()9FnBlIKJb0(zhSv(m)0P8UT{X=w*6{gVL`0!m&4!qV0@ zf7g2#70Y*awmWFabJ6y;xLDaq6!R*<`mk@NO>ACe<@LHpQ|(7P3*y^Fp3APKsL?0; zl`k%$+fg~EzuzVxA1|u>T3ozatoNqAp0f89*LO7oHd0CvH+oXs%WvMi`PfJs6cqH{ ztbrWLWaHxMn(vC4bgrn_7pk-AAz&lLb)H1wH#aw%m6u7LnA7s%p%=u>jaSHdJXrc- zCxKU3II^Whnng4FeR{L!ntorlB(;~97qY5q^^fnt=2XnYgmEk--z9jc?n&2{DSN+w zvbqnjL2|drnM6gY`1tt#&!sPoj-Cq0;)Ti3=c?9WSN#6;k8wGWysWoqg|szu;k1%=BT930!fzcKZ1^R%3W zW@OxGs+jrm1-Byt|5{D z5EuO(H@DUz?YFbPe`A}Nn5Y-whBqxUg+@eNQQwyGKO*wpnjSfO`SN9Mem>S- zdHv_BJqz$^2M34xk00AdM#v5h4kVswgl0IhljJVvB_9jF+6|%TuVy} z@xhc}w(DDg9>)k)@d>t;i4_8=NxW1vG zqpR!k=H{l`|2Z*t7urUc0eLV@-nwGpHD0uf4aa&s(1}!bEo2O^E zJR|xow}^3IXOFmZwu9S8W!On^f7ZKWj+L8r?5~ZvpPzXC{OEZNH~iAOckj^m(BlY) zr@M+rY~b_o@c2A^ zYBi3uk}%NpB@QnO@i|zh;x_vjw!ZHCS~`eU`fM8$P>RoI+p_=KL{HCEb8~YjaKuzd zq5j+OaM;k04k-o2TNrQH7lpt;sYgHSL#`6iB7AnrthD)DH>c&`o{~vE#nRj3Wf4dRsI;w7ZDnI>DSWIy!78=!hvkbn356>ptZJ{8M?c7?{4qz zzV&7ezzcWb@m}c0&(F`NXJ)=EeR0GDlQ6rytf(k{9;H&yPAGjA?AmfpUZ|PV9Y-z9 zYx{`^4Lu&q16?oKbuF!}+r88CZ<3;#VpR%c0f<>FRaI0h9ULNabLsms1g|BtsK0R) z-}ite>xw2}O?>$>3>dKk<{4VRu*w#vJArN{@B2ND6kKSg&eN?H&BAn%HzX)Pdt=Fj z7q4!Ld#SnhTE{Z*@DSqQ;3%o7g_&|kHZ+La4`#=SdMvf}^eAreM0rm?RjlY`a{0b| zG4vCbXs2IzhF(gF7C<``I!ukFqsp$A_wlb!`pc&mr(1lUt9p(5qb5o!Dxn1hb`5LK zqoeOWdQ>jeD=b37s)4R!X8ukVQu6UHY+HV+(9lp3_VNm4b@j`+IZ|ci=1tGT!m#{z z`-K6@!wU;p$+=CVj(3+~Y6>QMU1P)=9mNlC2W;|eeDGW&pI=yT-}|i%sBtz&7$hSv zkM&MH^PNZB-j@{4N{2z(D0#;5@o{=CE_~=X7j6rdG2~qBfL122 zryq{%-@os!V`-6`mKKFXBDq_9{_O51B_;+#Ek8eaT!qFmL|S6V%F52p&E+jWG+`ye zM!L>OVO_oIff~3dYB*IjU`tU!?=?3!0iYaoj;xQ5h^(9(19?oIPBHJ3-&*}nKgY)@ zFNGld4%XXX&5X^;)mY@@L_ z3%!gkz&z;Ov$>b)%Dr2}Ru^Z-Y0^PbQ0R3Eib&`nMh*_#YZTm_P8Ch>Jb6dP$FUKH z&Hkdm&O{UxiaFQz5GNOQgvBK#?E_ije1T^^Fd)t|%{NI{)LLPM-Tz($obBfP&Cg|) z9GIHASy@?mbiABX=`tx~+T=@i{rdH?!2J`zd7tzBF>M{4cK3pagm(P|VBr@pUhw)I zIO9?!hgVk%G@ovYzf4K7I^3K}yW>baWfSc7Xtp&3n~<=l)@cm*AO!G+d=do6 z8zhp*raQK+ShrB5d7P+V85Tr>BU|Ha(zf*wK+sUmD*t zZW-35b|`uWW?g6!mVS6-#0s>TVN0N-9tWA?2$hgZFgFJ`cQ?@4_Eyke>aMOXN=e^4 zj7&@n$)A6lnC6d(1)hnhsi}R14}0YSf`>doWvtR4$vCtki=%xSo zguOfdX0Nw$SdDUlj@4kcWL7pSC+9V}NP@1tmG6R04v7PAksEJx3pK1x_Ew%4unak% zVYW4fx{Z*EKfh};!u;tXSy@YefB(0yUvod?HI|lgI_%%Lfjh~Ki;X?ofF&!|)zedG zGIm;0QO#^7N0)g0f6~?eT81B3eg6Ep-glp4#x7Cn7wADHW#tgryxE4Ak0wzr)Ib6B z=qUIl%yM^UyYFVxAlk_|y@EQb&kX9*fPL{Z$WX-?JmWd$E*xhl>X6!5-tOL>>!>{uAdcxWtbItfzOj+?;>8=P!iy>Y`eTXyNG2vGD;pb3 z#HWFQ2tW#&n>UkQy&4rDtV-45NI{rOEIW<956Q~93DmK(m};?Vr|5tD^kTb%5ZzZz zeuvikt0TzTT7@T1Y6c{DTo(YIS_cLQI1S2&jqMdtWE+|%1=9{d8R!9JNkn1@?oP@#*^hdu75XIzaitIqFUR-ukCEl$z@Ua-@i}B zFCb7EaOzdI12VAt;{0^yheM9zL~)S!tvij4jiB+aAdZd}5-R-;AKhYQW#Zsap(89F z`ww9q%V%2eh5-*078i$aKkz#GtzyEP@^THHwR9nu8)#PrBESabM#N(Y&ue3%VB}qa zOQT&cx&Qu%L7K2@w*F+iGv`E(Z~Vy>fr5g9Bhc`3b8{GkgoMshAIS)5C4LWAy?_6n zh>|i26g>h#KqC?i{A6fkr#K_zdx8sn$S!uSw1|9veQ0?Ek9tyhK$Kst`xXo0diySnmFDE;pRsEnK( zI!YVh2p8{TuBkRQ5fMX=$&UGX>%L6kiV<#^j|*Ae)89_{#Y>y&0{ZC=(*+#dPWBuT zt@Z8;h+LE9)pwdX1R*kr6qN!heY($xGS>xAA;9v=4wIg?Ci{!$?83qnpzX7=HD|<# zU#~Jv1L?mvsUv`AR$2milq}IyXQpBp1<$Yrwroa z)OD^i_x$}ObaZr(fQ()ZMnUPmIq!>$zr}KLagD4KZj9uO`k#6mB+&l&`0*p7l$7~$ z^5E~^4_-?=C8naH5+js=i-?MfBCD&v$C5A``&O`wz(C!TY8*{7q z^ik$oLVSETT;w`2@gW_4VOh z3dvP;^`D*)ijR$zfAFA4qs95=5B-3rK^Y(lSu|dc&mBlE0;wl{wsk>WkCungck}S* z7%EV$beoeMpPckQ2}D89V&mZ41^$ltZsIG|)Yu51pIfZWl5DlR)bG23V>k8D6B{32 z!P3&Q!E+A_!*4}Prit(9=!xcS^1~BNG7=J!>*VC4WtqHds;X9{1llPo;W#8LmY-iR zqsL_6stWM>>A{8^7|T>+HmeB&2)fF19~xNk6Q}gyzK;%&JJswoCnXd`)qNx6yXb zYkj=UoBce)H;0Pf7OkP+vFRkn@sg{o(#k1?avs@i6hJO>! z*j*puU}a@Ri(6iP{!2D^;5fiIsT5Ro<=&r(x&X2|`kr&qDc2Pd-j1T4_F2HUwY8-O znE;?nZ$>hw%XkNTjxGVz{ll1!aPit?v{9QKZeak<;K7acB zxozcpAv|Kl%*8<+TKWZ^tgtq#GRemP@If@gK#IB;66WU*EiPss`u?5IY4kQhsem&n z%9oUgDERNiVT*{@IwdYHF0XwbCDxTI^N@=8r{2R3rfBjL5felC29AOlU0PcD)Yq3k z$guZ*gzyun)erCA4l1duyLfzrL2P`w%j>;q>VLXXH{SSE0Q^J(z#9`kKQS05n)?&Y zNF*~CzF$^fpIpdwIyN{M z;p69rzBQN|m*$i;$C|hgZHK$2Iy#}?ndeI@n%g-m8bd(_TX#JtgV?ZRqSomfXy93e zuf`@OOt1?B0|Q*#P9V!jYg}Lu0w-_U^S7s$8dOxx&RVjN;-<&MToZSjMd-4T`ll-3 zX@L**JDl=PudL+raC5VCcXwY0#hI}J$;Y~I%P~G?t32cNWTji{;FTrxosZa@pK2Kz zegYZU4YG1P>N?XnnS&5`RUvTADEs~!5LWCwC1MzAE%;zi}<-OvO(bCGnAZlr7t zDe*uHM0Iw``(GR{11(;8rcp3sU58@(Z>yHx8E`&Fo-QDewY{XFTMCfsJrEnU6FaMx%nG1nyOrSk}zzBLD z``R@*SX2l;;~|z(OXI}=>mg%oY@9h`<{ICuW|an7Yv(g-j^%KXb`-$9j0^&Tmc+zF z1RWh6_@0ei`S4&UQnO6${2)TR1m?dPY5l}=;aFb03jXjj;>2dRV2 zd&XrhgaVIuB^bjJ-es+>t}dacx;Iyt6F6krEC|;lCn4!TC%LdIF@Te45R{PLxbX$L zqPnim0Zg|o7#9dmGcq#Lz!O2-jfWt?4Oe4Hu7rRuyObr%eP>>QoRqW^Aj!kq+hJ#C z=Y3vY$X1n-@V61{fMLk@kdR2yNca%J03G#OTwH>9sxMtYu{0|w={j1_E%YRGbasXn zK2%l&u(1R-`}E~YJM1PA6;*U=tBiSzqtaevJ1QZ$ckyUGh6f3*SR&|x1}NNscLbnk zZfz~5rshssX6CLQyQ8wME(wr1^69RyJ1mLrFCY&mE%x|J!q(1^Gp7?X-d zRsb}|Dl8%^DtLZ97L80vO0|QsVJOqYy}5t>{OPtf%5{r{Md#}cu?r0fk^pv2P8-G~ zB@Z%L6KTezC{Z!7s?)=*YK0hb&j++8D<^|*6k_g7va_;A9-o}>Bb=A|($`_~B{l`a zoc8vwVG$1{$sUbz9Ft7_faWuI1X4-OO5bm{Wmi+`D%V&MU6i;6bVaU+^$?c6Mx>oE;F^5Wz+& zu3P~(gae9A#CMMkO#!bZ{m8)x&Hv^KL)gh<`23ID$}~8;toiiI zj4uOoK^lh@gYEwk&#hmEy)no@Kvf6BpIhZJsTS~ zKqflF(8!i3{{9YHF)%RDGS)GU2Oi)1TVndWgHxC&A7TZfgD7q4sbwJ+wJN2oTQCV5I4E@)Pcjoqvj*blpYm3Gh^dcgZ(338s8cGgdlekuR4GauGR?4v?w{>)2 z>J;l0#)00fs;*8-PJSzB&X_a{PMnR0rw4FDZ~=sO^gkk62)oP5g(23%4VQKDfAZuG z6dD~Hi;d0BIK)S zxun3mEXjF!d3V=3nB^el@arNYwz9I~<>PAuvwh4RzIW+~?LUqzuM`T?j1d3f|NlD* z|D|yMFG1W|f6mgG$jrjR$j6riN@)}T>xesKk9fG@k+j$GA3F)3?O^zO1`Gq_z&+kn m`4s + + + +gst-plugins-bad Elements + + + + + + + + + + + + + + + + +
+

+gst-plugins-bad Elements

+
+
+aiffparse — Parse a .aiff file into raw audio +
+
+aiffmux — Multiplex raw audio into AIFF +
+
+amrwbenc — Adaptive Multi-Rate Wideband audio encoder +
+
+assrender — Renders ASS/SSA subtitles with libass +
+
+autoconvert — Selects the right transform element based on the caps +
+
+bulge — Adds a protuberance in the center point +
+
+burn — Burn adjusts the colors in the video signal. +
+
+camerabin — Handle lot of features present in DSC +
+
+celtdec — decode celt streams to audio +
+
+celtenc — Encodes audio in Celt format +
+
+chromium — Chromium breaks the colors of the video signal. +
+
+circle — Warps the picture into an arc shaped form +
+
+coloreffects — Color Look-up Table filter +
+
+curlsink — sink that uploads data to a server using libcurl +
+
+cvdilate — Applies cvDilate OpenCV function to the image +
+
+cverode — Applies cvErode OpenCV function to the image +
+
+cvequalizehist — Applies cvEqualizeHist OpenCV function to the image +
+
+cvlaplace — Applies cvLaplace OpenCV function to the image +
+
+cvsmooth — Applies cvSmooth OpenCV function to the image +
+
+cvsobel — Applies cvSobel OpenCV function to the image +
+
+dataurisrc — Handles data: uris +
+
+dccpclientsink — Send data as a client over the network via DCCP +
+
+dccpclientsrc — Receive data as a client over the network via DCCP +
+
+dccpserversink — Send data as a server over the network via DCCP +
+
+dccpserversrc — Receive data as a server over the network via DCCP +
+
+dfbvideosink — A DirectFB based videosink +
+
+diffuse — Diffuses the image by moving its pixels in random directions +
+
+dilate — Dilate copies the brightest pixel around. +
+
+directdrawsink — Direct Draw video sink +
+
+dodge — Dodge saturates the colors in the video signal. +
+
+dtmfdetect — Detects DTMF tones +
+
+dtmfsrc — Generates DTMF tones +
+
+dtsdec — Decodes DTS audio streams +
+
+dvbsrc — Digital Video Broadcast Source +
+
+dvdspu — Parses Sub-Picture command streams and renders the SPU overlay onto the video as it passes through +
+
+exclusion — Exclusion exclodes the colors in the video signal. +
+
+edgedetect — Performs canny edge detection on videos and images. +
+
+faac — Free MPEG-2/4 AAC encoder +
+
+faad — Free MPEG-2/4 AAC decoder +
+
+faceblur — Blurs faces in images and videos +
+
+facedetect — Performs face detection on videos and images, providing detected positions via bus messages +
+
+festival — Synthesizes plain text into audio +
+
+fisheye — Split the image into two halves and reflect one over each other +
+
+fpsdisplaysink — Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout +
+
+freeze — Makes a stream from buffers of data +
+
+gaussianblur — Perform Gaussian blur/sharpen on a video +
+
+ivfparse — Demuxes a IVF stream +
+
+jpegparse — JPEG parser +
+
+kaleidoscope — Applies 'kaleidoscope' geometric transform to the image +
+
+kateenc — Encodes Kate streams from text or subpictures +
+
+katedec — Decodes Kate text streams +
+
+kateparse — parses kate streams +
+
+katetag — retags kate streams +
+
+ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API) +
+
+legacyresample — Resample audio +
+
+liveadder — Mixes live/discontinuous audio streams +
+
+marble — Applies a marbling effect to the image +
+
+mimenc — MSN Messenger compatible Mimic video encoder element +
+
+mimdec — MSN Messenger compatible Mimic video decoder element +
+
+mirror — Split the image into two halves and reflect one over each other +
+
+modplug — Module decoder based on modplug engine +
+
+mpeg2enc — High-quality MPEG-1/2 video encoder +
+
+mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer +
+
+mythtvsrc — Control and receive data as a client over the network via raw socket connections using the MythTV protocol +
+
+mxfdemux — Demux MXF files +
+
+mxfmux — Muxes video/audio streams into a MXF stream +
+
+nuvdemux — Demultiplex a MythTV NuppleVideo .nuv file into audio and video +
+
+pcapparse — Parses a raw pcap stream +
+
+pinch — Applies 'pinch' geometric transform to the image +
+
+pyramidsegment — Applies pyramid segmentation to a video or image. +
+
+rsvgdec — Uses librsvg to decode SVG images +
+
+rsvgoverlay — Overlays SVG graphics over a video stream +
+
+rtpdtmfdepay — Generates DTMF Sound from telephone-event RTP packets +
+
+rtpdtmfsrc — Generates RTP DTMF packets +
+
+rtpdtmfmux — mixes RTP DTMF streams into other RTP streams +
+
+rtpmux — multiplex N rtp streams into one +
+
+scaletempo — Sync audio tempo with playback rate +
+
+sdlaudiosink — Output to a sound card via SDLAUDIO +
+
+sdlvideosink — An SDL-based videosink +
+
+shmsink — Send data over shared memory to the matching source +
+
+shmsrc — Receive data from the sharem memory sink +
+
+sdpdemux — Receive data over the network via SDP +
+
+solarize — Solarize tunable inverse in the video signal. +
+
+speed — Set speed/pitch on audio/raw streams (resampler) +
+
+sphere — Applies 'sphere' geometric transform to the image +
+
+square — Distort center part of the image into a square +
+
+stereo — Muck with the stereo signal to enhance its 'stereo-ness' +
+
+stretch — Stretch the image in a circle around the center point +
+
+templatematch — Performs template matching on videos and images, providing detected positions via bus messages +
+
+opencvtextoverlay — Write text on the top of video +
+
+tiger — Decodes and renders Kate streams on top of a video +
+
+timidity — Midi Synthesizer Element +
+
+trm — Compute MusicBrainz TRM Id using libmusicbrainz +
+
+tunnel — Light tunnel effect +
+
+twirl — Twists the image from the center out +
+
+videoanalyse — Analyse video signal +
+
+videodetect — Detect patterns in a video signal +
+
+videomark — Marks a video signal with a pattern +
+
+videomaxrate — Drops extra frames +
+
+videoparse — Converts stream into video frames +
+
+waterripple — Creates a water ripple effect on the image +
+
+wildmidi — Midi Synthesizer Element +
+
+zbar — Detect bar codes in the video streams +
+
+vp8dec — Decode VP8 video streams +
+
+vp8enc — Encode VP8 video streams +
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/ch02.html b/docs/plugins/html/ch02.html new file mode 100644 index 0000000..814432b --- /dev/null +++ b/docs/plugins/html/ch02.html @@ -0,0 +1,287 @@ + + + + +gst-plugins-bad Plugins + + + + + + + + + + + + + + + + +
+

+gst-plugins-bad Plugins

+
+
+aiff — Create and parse Audio Interchange File Format (AIFF) files +
+
+autoconvert — Selects convertor element based on caps +
+
+legacyresample — Resamples audio +
+
+amrwbenc — Adaptive Multi-Rate Wide-Band Encoder +
+
+assrender — ASS/SSA subtitle renderer +
+
+bayer — Elements to convert Bayer images +
+
+bz2 — Compress or decompress streams +
+
+camerabin — High level api for DC (Digital Camera) application +
+
+cdaudio — Play CD audio through the CD Drive +
+
+cdxaparse — Parse a .dat file (VCD) into raw mpeg1 +
+
+celt — CELT plugin library +
+
+coloreffects — Color Look-up Table filters +
+
+curl — libcurl-based elements +
+
+dataurisrc — data: URI source +
+
+dccp — transfer data over the network via DCCP. +
+
+debugutilsbad — Collection of elements that may or may not be useful for debugging +
+
+dfbvideosink — DirectFB video output plugin +
+
+dirac — Dirac plugin +
+
+directdraw — Direct Draw plugin +
+
+dtmf — DTMF plugins +
+
+dtsdec — Decodes DTS audio streams +
+
+dvb — DVB elements +
+
+dvdspu — DVD Sub-picture Overlay element +
+
+faac — Free AAC Encoder (FAAC) +
+
+faad — Free AAC Decoder (FAAD) +
+
+fbdevsink — linux framebuffer video sink +
+
+festival — Synthesizes plain text into audio +
+
+filter — IIR audio filter element +
+
+freeze — Stream freezer +
+
+frei0r — frei0r plugin library +
+
+gaudieffects — Gaudi video effects. +
+
+geometrictransform — Various geometric image transform elements +
+
+gsm — GSM encoder/decoder +
+
+h264parse — Element parsing raw h264 streams +
+
+ivfparse — IVF parser +
+
+jpegformat — JPEG interchange format plugin +
+
+kate — Kate plugin +
+
+ladspa — All LADSPA plugins +
+
+liveadder — Adds multiple live discontinuous streams +
+
+lv2 — All LV2 plugins +
+
+mimic — Mimic codec +
+
+mms — Microsoft Multi Media Server streaming protocol support +
+
+modplug — .MOD audio decoding +
+
+mpeg2enc — High-quality MPEG-1/2 video encoder +
+
+mpeg4videoparse — MPEG-4 video parser +
+
+mpegdemux2 — MPEG demuxers +
+
+mpegpsmux — MPEG-PS muxer +
+
+mpegtsmux — MPEG-TS muxer +
+
+mpegvideoparse — MPEG-1 and MPEG-2 video parser +
+
+mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer +
+
+musepack — Musepack decoder +
+
+musicbrainz — A TRM signature producer based on libmusicbrainz +
+
+mve — Interplay MVE movie format manipulation +
+
+mxf — MXF plugin library +
+
+nas — NAS (Network Audio System) support for GStreamer +
+
+neon — lib neon http client src +
+
+nsf — Uses nosefart to decode .nsf files +
+
+nuvdemux — Demuxes MythTV NuppelVideo files +
+
+opencv — GStreamer OpenCV Plugins +
+
+pcapparse — Element parsing raw pcap streams +
+
+rawparse — Parses byte streams into raw frames +
+
+real — Decode REAL streams +
+
+rfbsrc — Connects to a VNC server and decodes RFB stream +
+
+rsvg — RSVG plugin library +
+
+rtpmux — RTP Muxer plugins +
+
+scaletempo — Scale audio tempo in sync with playback rate +
+
+sdl — SDL (Simple DirectMedia Layer) support for GStreamer +
+
+sdp — configure streaming sessions using SDP +
+
+shm — shared memory sink source +
+
+sndfile — use libsndfile to read and write audio from and to files +
+
+soundtouch — Audio Pitch Controller & BPM Detection +
+
+spcdec — OpenSPC Audio Decoder +
+
+speed — Set speed/pitch on audio/raw streams (resampler) +
+
+stereo — Muck with the stereo signal, enhance it's 'stereo-ness' +
+
+swfdec — Uses libswfdec to decode Flash video streams +
+
+timidity — Timidity Plugin +
+
+tta — TTA lossless audio format handling +
+
+vcdsrc — Asynchronous read from VCD disk +
+
+videomaxrate — Drop extra frames +
+
+videosignal — Various video signal analysers +
+
+vmnc — VmWare Video Codec plugins +
+
+wildmidi — Wildmidi Plugin +
+
+xvid — XviD plugin library +
+
+vp8 — VP8 plugin +
+
+zbar — zbar barcode scanner +
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/ch03.html b/docs/plugins/html/ch03.html new file mode 100644 index 0000000..4f3e27a --- /dev/null +++ b/docs/plugins/html/ch03.html @@ -0,0 +1,33 @@ + + + + +gst-plugins-bad Interfaces + + + + + + + + + + + + + + + + +
+

+gst-plugins-bad Interfaces

+
+GstPhotography — Interface for digital image capture elements +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html b/docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html new file mode 100644 index 0000000..cc7ffc1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-aiffmux.html @@ -0,0 +1,160 @@ + + + + +aiffmux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

aiffmux

+

aiffmux — Multiplex raw audio into AIFF

+
+
+

Synopsis

+
struct              GstAiffMux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstAiffMux
+
+
+
+

Description

+

+Format an audio stream into the Audio Interchange File Format +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ aiff +

author

Robert Swain <robert.swain@gmail.com>

class

Muxer/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, width=(int)8, depth=(int)[ 1, 8 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]

audio/x-raw-int, width=(int)16, depth=(int)[ 9, 16 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]

audio/x-raw-int, width=(int)24, depth=(int)[ 17, 24 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]

audio/x-raw-int, width=(int)32, depth=(int)[ 25, 32 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-aiff
+
+
+

+

+
+
+

Details

+
+

struct GstAiffMux

+
struct GstAiffMux;
+

+Opaque data structure. +

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html b/docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html new file mode 100644 index 0000000..2837467 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-aiffparse.html @@ -0,0 +1,180 @@ + + + + +aiffparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

aiffparse

+

aiffparse — Parse a .aiff file into raw audio

+
+
+

Synopsis

+
struct              GstAiffParse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstAiffParse
+
+
+
+

Description

+

+

+
+

Example launch line

+

+Parse a .aiff file into raw or compressed audio. +

+

+AIFFparse supports both push and pull mode operations, making it possible to +stream from a network source. +

+

+

+
+gst-launch filesrc location=sine.aiff ! aiffparse ! audioconvert ! alsasink
+
+

+Read a aiff file and output to the soundcard using the ALSA element. The +aiff file is assumed to contain raw uncompressed samples. +

+

+

+
+gst-launch gnomevfssrc location=http://www.example.org/sine.aiff ! queue ! aiffparse ! audioconvert ! alsasink
+
+

+Stream data from a network url. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ aiff +

author

Pioneers of the Inevitable <songbird@songbirdnest.com>

class

Codec/Demuxer/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-aiff
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
+
+

+

+
+
+

Details

+
+

struct GstAiffParse

+
struct GstAiffParse;
+

+Opaque data structure. +

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html b/docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html new file mode 100644 index 0000000..16a2a56 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-amrwbenc.html @@ -0,0 +1,195 @@ + + + + +amrwbenc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

amrwbenc

+

amrwbenc — Adaptive Multi-Rate Wideband audio encoder

+
+
+

Synopsis

+
struct              GstAmrwbEnc;
+
+
+
+

Properties

+
+  "band-mode"                GstAmrwbEncBandMode   : Read / Write / Construct
+
+
+
+

Description

+

+AMR wideband encoder based on the +reference codec implementation. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch filesrc location=abc.wav ! wavparse ! audioresample ! audioconvert ! amrwbenc ! filesink location=abc.amr
+
+ +Please not that the above stream misses the header, that is needed to play +the stream. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ amrwbenc +

author

Renato Araujo <renato.filho@indt.org.br>

class

Codec/Encoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, width=(int)16, depth=(int)16, signed=(boolean)true, endianness=(int)1234, rate=(int)16000, channels=(int)1
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/AMR-WB, rate=(int)16000, channels=(int)1
+
+
+

+

+
+
+

Details

+
+

struct GstAmrwbEnc

+
struct GstAmrwbEnc {
+  GstElement element;
+
+  /* pads */
+  GstPad *sinkpad, *srcpad;
+  guint64 ts;
+  gboolean discont;
+
+  GstAdapter *adapter;
+
+  /* library handle */
+  void *handle;
+
+  /* input settings */
+  gint bandmode;
+  gint channels, rate;
+};
+
+

+

+
+
+
+

Property Details

+
+

The "band-mode" property

+
  "band-mode"                GstAmrwbEncBandMode   : Read / Write / Construct
+

Encoding Band Mode (Kbps).

+

Default value: MR660

+
+
+
+

See Also

+GstAmrwbDec, GstAmrwbParse +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-assrender.html b/docs/plugins/html/gst-plugins-bad-plugins-assrender.html new file mode 100644 index 0000000..84ed213 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-assrender.html @@ -0,0 +1,263 @@ + + + + +assrender + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

assrender

+

assrender — Renders ASS/SSA subtitles with libass

+
+
+

Synopsis

+
struct              GstAssRender;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstAssRender
+
+
+
+

Properties

+
+  "embeddedfonts"            gboolean              : Read / Write
+  "enable"                   gboolean              : Read / Write
+
+
+
+

Description

+

+Renders timestamped SSA/ASS subtitles on top of a video stream. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v filesrc location=/path/to/mkv ! matroskademux name=d ! queue ! mp3parse ! mad ! audioconvert ! autoaudiosink  d. ! queue ! ffdec_h264 ! ffmpegcolorspace ! r.   d. ! queue ! "application/x-ass" ! assrender name=r ! ffmpegcolorspace ! autovideosink
+
+ This pipeline demuxes a Matroska file with h.264 video, MP3 audio and embedded ASS subtitles and renders the subtitles on top of the video. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ assrender +

author

Benjamin Schmitz <vortex@wolpzone.de>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Mixer/Video/Overlay/Subtitle
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

text_sink

direction

sink

presence

always

details

application/x-ass

application/x-ssa
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

video_sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstAssRender

+
struct GstAssRender;
+

+

+
+
+
+

Property Details

+
+

The "embeddedfonts" property

+
  "embeddedfonts"            gboolean              : Read / Write
+

Extract and use fonts embedded in the stream.

+

Default value: TRUE

+
+
+
+

The "enable" property

+
  "enable"                   gboolean              : Read / Write
+

Enable rendering of subtitles.

+

Default value: TRUE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html b/docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html new file mode 100644 index 0000000..0016737 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-autoconvert.html @@ -0,0 +1,189 @@ + + + + +autoconvert + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

autoconvert

+

autoconvert — Selects the right transform element based on the caps

+
+
+

Synopsis

+
struct              GstAutoConvert;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBin
+                     +----GstAutoConvert
+
+
+
+

Implemented Interfaces

+

+GstAutoConvert implements + GstChildProxy.

+
+
+

Properties

+
+  "factories"                gpointer              : Read / Write
+  "initial-identity"         gboolean              : Read / Write
+
+
+
+

Description

+

+The autoconvert element has one sink and one source pad. It will look for +other elements that also have one sink and one source pad. +It will then pick an element that matches the caps on both sides. +If the caps change, it may change the selected element if the current one +no longer matches the caps. +

+

+The list of element it will look into can be specified in the +"factories" property, otherwise it will look at all available +elements. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ autoconvert +

author

Olivier Crete <olivier.crete@collabora.co.uk>

class

Generic/Bin
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstAutoConvert

+
struct GstAutoConvert;
+

+

+
+
+
+

Property Details

+
+

The "factories" property

+
  "factories"                gpointer              : Read / Write
+

GList of GstElementFactory objects to pick from (the element takes ownership of the list (NULL means it will go through all possible elements), can only be set once.

+
+
+
+

The "initial-identity" property

+
  "initial-identity"         gboolean              : Read / Write
+

If true, then the identity element will be installed initially and used for event passing until the first data buffer arrives .

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-bulge.html b/docs/plugins/html/gst-plugins-bad-plugins-bulge.html new file mode 100644 index 0000000..d9fc263 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-bulge.html @@ -0,0 +1,270 @@ + + + + +bulge + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

bulge

+

bulge — Adds a protuberance in the center point

+
+
+

Synopsis

+
struct              GstBulge;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstBulge
+
+
+
+

Properties

+
+  "zoom"                     gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstBulge

+
struct GstBulge;
+

+

+
+
+
+

Property Details

+
+

The "zoom" property

+
  "zoom"                     gdouble               : Read / Write
+

Zoom of the bulge effect.

+

Allowed values: [1,100]

+

Default value: 3

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-burn.html b/docs/plugins/html/gst-plugins-bad-plugins-burn.html new file mode 100644 index 0000000..9c7949c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-burn.html @@ -0,0 +1,201 @@ + + + + +burn + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

burn

+

burn — Burn adjusts the colors in the video signal.

+
+
+

Synopsis

+
struct              GstBurn;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstBurn
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+  "adjustment"               guint                 : Read / Write
+
+
+
+

Description

+

+Burn adjusts the colors of a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! burn ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of burn on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstBurn

+
struct GstBurn;
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "adjustment" property

+
  "adjustment"               guint                 : Read / Write
+

Adjustment parameter.

+

Allowed values: <= 256

+

Default value: 175

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-camerabin.html b/docs/plugins/html/gst-plugins-bad-plugins-camerabin.html new file mode 100644 index 0000000..cc21416 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-camerabin.html @@ -0,0 +1,1020 @@ + + + + +camerabin + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

camerabin

+

camerabin — Handle lot of features present in DSC

+
+
+

Synopsis

+
struct              GstCameraBin;
+enum                GstCameraBinMode;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBin
+                     +----GstPipeline
+                           +----GstCameraBin
+
+
+
+

Implemented Interfaces

+

+GstCameraBin implements + GstChildProxy, GstImplementsInterface, GstColorBalance and GstTagSetter.

+
+
+

Properties

+
+  "audioenc"                 GstElement*           : Read / Write
+  "audiosrc"                 GstElement*           : Read / Write
+  "filename"                 gchar*                : Read / Write
+  "filter-caps"              GstCaps*              : Read / Write
+  "imageenc"                 GstElement*           : Read / Write
+  "imagepp"                  GstElement*           : Read / Write
+  "inputcaps"                GstCaps*              : Read
+  "mode"                     GstCameraBinMode      : Read / Write
+  "mute"                     gboolean              : Read / Write
+  "vfsink"                   GstElement*           : Read / Write
+  "videoenc"                 GstElement*           : Read / Write
+  "videomux"                 GstElement*           : Read / Write
+  "videopp"                  GstElement*           : Read / Write
+  "videosrc"                 GstElement*           : Read / Write
+  "zoom"                     gfloat                : Read / Write
+  "preview-caps"             GstCaps*              : Read / Write
+  "audio-encoder"            GstElement*           : Read / Write
+  "audio-source"             GstElement*           : Read / Write
+  "image-encoder"            GstElement*           : Read / Write
+  "image-post-processing"    GstElement*           : Read / Write
+  "video-encoder"            GstElement*           : Read / Write
+  "video-muxer"              GstElement*           : Read / Write
+  "video-post-processing"    GstElement*           : Read / Write
+  "video-source"             GstElement*           : Read / Write
+  "video-source-caps"        GstCaps*              : Read
+  "viewfinder-sink"          GstElement*           : Read / Write
+  "flags"                    GstCameraBinFlags     : Read / Write
+  "block-after-capture"      gboolean              : Read / Write
+  "image-capture-height"     gint                  : Read / Write
+  "image-capture-width"      gint                  : Read / Write
+  "video-capture-framerate"  GstFraction           : Read / Write
+  "video-capture-height"     gint                  : Read / Write
+  "video-capture-width"      gint                  : Read / Write
+  "video-source-filter"      GstElement*           : Read / Write
+  "viewfinder-filter"        GstElement*           : Read / Write
+  "idle"                     gboolean              : Read
+  "preview-source-filter"    GstElement*           : Read / Write
+  "ready-for-capture"        gboolean              : Read
+
+
+ +
+

Description

+

+GstCameraBin is a high-level camera object that encapsulates the gstreamer +internals and provides a task based API for the application. It consists of +three main data paths: view-finder, image capture and video capture. +

+

+

+
+CameraBin structure

Structural decomposition of CameraBin object.

+
+

+

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v -m camerabin
+
+ +
+

+

+
+
+

Image capture

+

+Image capture is selected by switching "mode" to MODE_IMAGE. +Taking still images is initiated with the "capture-start" action +signal. Once the image has been captured, "image-captured" gst message is +posted to the bus and capturing another image is possible. If application +has set "preview-caps" property, then a "preview-image" gst +message is posted to bus containing preview image formatted according to +specified caps. Eventually when image has been saved +"image-done" signal is emitted. +

+

+Available resolutions can be taken from the "video-source-caps" +property. Image capture resolution can be set with +"set-image-resolution" action signal. +

+

+Some video source elements implement the GstPhotography interface, which contains +functions and properties for setting photography parameters. One can use +gst_bin_iterate_all_by_interface() to get a reference to it. +

+

+

+
+

+

+
+
+

Video capture

+

+Video capture is selected by switching "mode" to MODE_VIDEO. +The capture is started with the "capture-start" action signal +too. In addition to image capture one can use "capture-pause" to +pause recording and "capture-stop" to end recording. +

+

+Available resolutions and fps can be taken from the +"video-source-caps" property. +"set-video-resolution-fps" action signal can be used to set +frame rate and resolution for the video recording and view finder as well. +

+
+

+

+
+
+

States

+

+Elements within GstCameraBin are created and destroyed when switching +between NULL and READY states. Therefore element properties should be set +in NULL state. User set elements are not unreffed until GstCameraBin is +unreffed or replaced by a new user set element. Initially only elements +needed for view finder mode are created to speed up startup. Image bin and +video bin elements are created when setting the mode or starting capture. +

+
+

+

+
+
+

Video and image previews

+

+GstCameraBin contains "preview-caps" property, which is used to +determine whether the application wants a preview image of the captured +picture or video. When set, a GstMessage named "preview-image" will be sent. +This message will contain a GstBuffer holding the preview image, converted +to a format defined by those preview caps. The ownership of the preview +image is kept in GstCameraBin, so application should ref the preview buffer +object if it needs to use it elsewhere than in message handler. +

+

+Defining preview caps is done by selecting the capturing "mode" +first and then setting the property. Camerabin remembers caps separately for +both modes, so it is not necessary to set the caps again after changing the +mode. +

+
+

+

+
+
+
+

Note

+

+Since the muxers tested so far have problems with discontinous buffers, QoS +has been disabled, and then in order to record video, you MUST ensure that +there is enough CPU to encode the video. Thus choose smart resolution and +frames per second values. It is also highly recommended to avoid color +conversions; make sure all the elements involved work with the same +colorspace (i.e. rgb or yuv i420 or whatelse). +

+
+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ camerabin +

author

Nokia Corporation <multimedia@maemo.org>, Edgard Lima <edgard.lima@indt.org.br>

class

Generic/Bin/Camera
+
+
+
+

Element Pads

+
+
+

+

+
+
+

Details

+
+

struct GstCameraBin

+
struct GstCameraBin;
+

+The opaque GstCameraBin structure. +

+
+
+
+

enum GstCameraBinMode

+
typedef enum
+{
+  MODE_IMAGE = 0,
+  MODE_VIDEO
+} GstCameraBinMode;
+
+

+Capture mode to use. +

+
++ + + + + + + + + + +

MODE_IMAGE

image capture +

MODE_VIDEO

video capture +
+
+
+
+

Property Details

+
+

The "audioenc" property

+
  "audioenc"                 GstElement*           : Read / Write
+

Audio encoder GStreamer element (default is vorbisenc).

+
+
+
+

The "audiosrc" property

+
  "audiosrc"                 GstElement*           : Read / Write
+

Audio source GStreamer element (default is pulsesrc).

+
+
+
+

The "filename" property

+
  "filename"                 gchar*                : Read / Write
+

+Set filename for the still image capturing or video capturing. +

+

Default value: ""

+
+
+
+

The "filter-caps" property

+
  "filter-caps"              GstCaps*              : Read / Write
+

+Caps applied to capsfilter element after videosrc [ ! ffmpegcsp ]. +You can use this e.g. to make sure video color format matches with +encoders and other elements configured to camerabin and/or change +resolution and frame rate. +

+
+
+
+

The "imageenc" property

+
  "imageenc"                 GstElement*           : Read / Write
+

Image encoder GStreamer element (default is jpegenc).

+
+
+
+

The "imagepp" property

+
  "imagepp"                  GstElement*           : Read / Write
+

Image Post-Processing GStreamer element (default is NULL).

+
+
+
+

The "inputcaps" property

+
  "inputcaps"                GstCaps*              : Read
+

The allowed modes of the video source operation.

+
+
+
+

The "mode" property

+
  "mode"                     GstCameraBinMode      : Read / Write
+

+Set the mode of operation: still image capturing or video recording. +Setting the mode will create and destroy image bin or video bin elements +according to the mode. You can set this property at any time, changing +the mode will stop ongoing capture. +

+

Default value: Still image capture (default)

+
+
+
+

The "mute" property

+
  "mute"                     gboolean              : Read / Write
+

+Mute audio in video recording mode. +Set this property only when GstCameraBin is in READY, PAUSED or PLAYING. +

+

Default value: FALSE

+
+
+
+

The "vfsink" property

+
  "vfsink"                   GstElement*           : Read / Write
+

View finder sink GStreamer element (default is autovideosink).

+
+
+
+

The "videoenc" property

+
  "videoenc"                 GstElement*           : Read / Write
+

Video encoder GStreamer element (default is theoraenc).

+
+
+
+

The "videomux" property

+
  "videomux"                 GstElement*           : Read / Write
+

Video muxer GStreamer element (default is oggmux).

+
+
+
+

The "videopp" property

+
  "videopp"                  GstElement*           : Read / Write
+

Video post processing GStreamer element (default is NULL).

+
+
+
+

The "videosrc" property

+
  "videosrc"                 GstElement*           : Read / Write
+

Video source GStreamer element (default is v4l2src).

+
+
+
+

The "zoom" property

+
  "zoom"                     gfloat                : Read / Write
+

+Set up the zoom applied to the frames. +Set this property only when GstCameraBin is in READY, PAUSED or PLAYING. +

+

Allowed values: [1,10]

+

Default value: 1

+
+
+
+

The "preview-caps" property

+
  "preview-caps"             GstCaps*              : Read / Write
+

+If application wants to receive a preview image, it needs to +set this property to depict the desired image format caps. When +this property is not set (NULL), message containing the preview +image is not sent. +

+
+
+
+

The "audio-encoder" property

+
  "audio-encoder"            GstElement*           : Read / Write
+

+Set up an audio encoder element. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "audio-source" property

+
  "audio-source"             GstElement*           : Read / Write
+

+Set up an audio source element. +By default "autoaudiosrc" or DEFAULT_AUDIOSRC will be used. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "image-encoder" property

+
  "image-encoder"            GstElement*           : Read / Write
+

+Set up an image encoder (for example, jpegenc or pngenc) element. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "image-post-processing" property

+
  "image-post-processing"    GstElement*           : Read / Write
+

+Set up an element to do image post processing. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "video-encoder" property

+
  "video-encoder"            GstElement*           : Read / Write
+

+Set up a video encoder element. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "video-muxer" property

+
  "video-muxer"              GstElement*           : Read / Write
+

+Set up a video muxer element. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "video-post-processing" property

+
  "video-post-processing"    GstElement*           : Read / Write
+

+Set up an element to do video post processing. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "video-source" property

+
  "video-source"             GstElement*           : Read / Write
+

+Set up a video source element. +By default "autovideosrc" or DEFAULT_VIDEOSRC will be used. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "video-source-caps" property

+
  "video-source-caps"        GstCaps*              : Read
+

+The allowed modes of operation of the video source. Have in mind that it +doesn't mean GstCameraBin can operate in all those modes, +it depends also on the other elements in the pipeline. Remember to +gst_caps_unref after using it. +

+
+
+
+

The "viewfinder-sink" property

+
  "viewfinder-sink"          GstElement*           : Read / Write
+

+Set up a sink element to render frames in view finder. +By default "autovideosink" or DEFAULT_VIDEOSINK will be used. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "flags" property

+
  "flags"                    GstCameraBinFlags     : Read / Write
+

+Control the behaviour of camerabin. +

+

Default value: Enable source crop and scale|Enable scale for viewfinder|Enable audio conversion for video capture|Enable colorspace conversion for still image|Enable colorspace conversion for video capture

+
+
+
+

The "block-after-capture" property

+
  "block-after-capture"      gboolean              : Read / Write
+

+Block viewfinder after capture. +If it is TRUE when 'capture-start' is issued, camerabin will prepare to +block and freeze the viewfinder after capturing. Setting it to FALSE will +abort the blocking if it hasn't happened yet, or will enable again the +viewfinder if it is already blocked. Note that setting this property +to TRUE after 'capture-start' will only work for the next capture. This +makes possible for applications to set the property to FALSE to abort +the current blocking and already set it back to TRUE again to block at +the next capture. +

+

+This is useful if application wants to display the preview image +and running the viewfinder at the same time would be just a waste of +CPU cycles. +

+

Default value: FALSE

+
+
+
+

The "image-capture-height" property

+
  "image-capture-height"     gint                  : Read / Write
+

+The height to be used when capturing still images. If 0, the +viewfinder's height will be used. +

+

Allowed values: [0,32767]

+

Default value: 600

+
+
+
+

The "image-capture-width" property

+
  "image-capture-width"      gint                  : Read / Write
+

+The width to be used when capturing still images. If 0, the +viewfinder's width will be used. +

+

Allowed values: [0,32767]

+

Default value: 800

+
+
+
+

The "video-capture-framerate" property

+
  "video-capture-framerate"  GstFraction           : Read / Write
+

+The framerate to be used when capturing video. +

+
+
+
+

The "video-capture-height" property

+
  "video-capture-height"     gint                  : Read / Write
+

+The height to be used when capturing video. +

+

Allowed values: [0,32767]

+

Default value: 600

+
+
+
+

The "video-capture-width" property

+
  "video-capture-width"      gint                  : Read / Write
+

+The width to be used when capturing video. +

+

Allowed values: [0,32767]

+

Default value: 800

+
+
+
+

The "video-source-filter" property

+
  "video-source-filter"      GstElement*           : Read / Write
+

+Set up optional video filter element, all frames from video source +will be processed by this element. e.g. An application might add +image enhancers/parameter adjustment filters here to improve captured +image/video results, or add analyzers to give feedback on capture +the application. +This property can only be set while GstCameraBin is in NULL state. +The ownership of the element will be taken by GstCameraBin. +

+
+
+
+

The "viewfinder-filter" property

+
  "viewfinder-filter"        GstElement*           : Read / Write
+

viewfinder filter GStreamer element.

+
+
+
+

The "idle" property

+
  "idle"                     gboolean              : Read
+

+When TRUE no capturing/encoding/saving is running and it is safe to set +camerabin to NULL to release resources without losing data. +

+

+In case of errors, this property is made unreliable. Set the pipeline +back to READY or NULL to make it reliable again. +

+

Default value: TRUE

+
+
+
+

The "preview-source-filter" property

+
  "preview-source-filter"    GstElement*           : Read / Write
+

Optional preview source filter GStreamer element.

+
+
+
+

The "ready-for-capture" property

+
  "ready-for-capture"        gboolean              : Read
+

+When TRUE new capture can be prepared. If FALSE capturing is ongoing +and starting a new capture immediately is not possible. +

+

Default value: TRUE

+
+
+
+

Signal Details

+
+

The "img-done" signal

+
gboolean            user_function                      (GstCameraBin *gstcamerabin,
+                                                        gchar        *arg1,
+                                                        gpointer      user_data)         : Run Last
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "user-image-res" signal

+
void                user_function                      (GstCameraBin *gstcamerabin,
+                                                        gint          arg1,
+                                                        gint          arg2,
+                                                        gpointer      user_data)         : Action
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "user-pause" signal

+
void                user_function                      (GstCameraBin *gstcamerabin,
+                                                        gpointer      user_data)         : Action
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "user-res-fps" signal

+
void                user_function                      (GstCameraBin *gstcamerabin,
+                                                        gint          arg1,
+                                                        gint          arg2,
+                                                        gint          arg3,
+                                                        gint          arg4,
+                                                        gpointer      user_data)         : Action
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "user-start" signal

+
void                user_function                      (GstCameraBin *gstcamerabin,
+                                                        gpointer      user_data)         : Action
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "user-stop" signal

+
void                user_function                      (GstCameraBin *gstcamerabin,
+                                                        gpointer      user_data)         : Action
+

+

+
++ + + + + + + + + + +

gstcamerabin :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "capture-pause" signal

+
void                user_function                      (GstCameraBin *camera,
+                                                        gpointer      user_data)      : Action
+

+Pauses video recording or resumes paused video recording. +If in image mode or not recording, does nothing. +

+
++ + + + + + + + + + +

camera :

the camera bin element

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "capture-start" signal

+
void                user_function                      (GstCameraBin *camera,
+                                                        gpointer      user_data)      : Action
+

+Starts image capture or video recording depending on the Mode. +If there is a capture already going on, does nothing. +Resumes video recording if it has been paused. +

+
++ + + + + + + + + + +

camera :

the camera bin element

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "capture-stop" signal

+
void                user_function                      (GstCameraBin *camera,
+                                                        gpointer      user_data)      : Action
+

+Stops still image preview, continuous image capture and video +recording and returns to the view finder mode. +

+
++ + + + + + + + + + +

camera :

the camera bin element

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "image-done" signal

+
gboolean            user_function                      (GstCameraBin *camera,
+                                                        gchar        *filename,
+                                                        gpointer      user_data)      : Run Last
+

+Signal emitted when the file has just been saved. +

+

+Don't call any GstCameraBin method from this signal, if you do so there +will be a deadlock. +

+
++ + + + + + + + + + + + + + +

camera :

the camera bin element

filename :

the name of the file just saved

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "set-image-resolution" signal

+
void                user_function                      (GstCameraBin *camera,
+                                                        gint          width,
+                                                        gint          height,
+                                                        gpointer      user_data)      : Action
+

+Changes the resolution used for still image capture. +Does not affect view finder mode and video recording. +

+

+This actually sets the 'image-capture-width' and 'image-capture-height' +properties. +

+
++ + + + + + + + + + + + + + + + + + +

camera :

the camera bin element

width :

number of horizontal pixels

height :

number of vertical pixels

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "set-video-resolution-fps" signal

+
void                user_function                      (GstCameraBin *camera,
+                                                        gint          width,
+                                                        gint          height,
+                                                        gint          fps_n,
+                                                        gint          fps_d,
+                                                        gpointer      user_data)      : Action
+

+Changes the frame resolution and frames per second of the video source. +The application must be aware of the resolutions supported by the camera. +Supported resolutions and frame rates can be get using input-caps property. +

+

+Setting fps_n or fps_d to 0 configures maximum framerate for the +given resolution, unless in night mode when minimum is configured. +

+

+This is the same as setting the 'video-capture-width', +'video-capture-height' and 'video-capture-framerate' properties, but it +already updates the caps to force use this resolution and framerate. +

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

camera :

the camera bin element

width :

number of horizontal pixels

height :

number of vertical pixels

fps_n :

frames per second numerator

fps_d :

frames per second denominator

user_data :

user data set when the signal handler was connected.
+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html b/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html new file mode 100644 index 0000000..f844297 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-celtdec.html @@ -0,0 +1,169 @@ + + + + +celtdec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

celtdec

+

celtdec — decode celt streams to audio

+
+
+

Synopsis

+
struct              GstCeltDec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstCeltDec
+
+
+
+

Description

+

+This element decodes a CELT stream to raw integer audio. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
gst-launch -v filesrc location=celt.ogg ! oggdemux ! celtdec ! audioconvert ! audioresample ! alsasink
+
+ Decode an Ogg/Celt file. To create an Ogg/Celt file refer to the documentation of celtenc. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ celt +

author

Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-celt
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16
+
+
+

+

+
+
+

Details

+
+

struct GstCeltDec

+
struct GstCeltDec;
+

+

+
+
+
+

See Also

+celtenc, oggdemux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-celtenc.html b/docs/plugins/html/gst-plugins-bad-plugins-celtenc.html new file mode 100644 index 0000000..28bb324 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-celtenc.html @@ -0,0 +1,247 @@ + + + + +celtenc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

celtenc

+

celtenc — Encodes audio in Celt format

+
+
+

Synopsis

+
struct              GstCeltEnc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstCeltEnc
+
+
+
+

Implemented Interfaces

+

+GstCeltEnc implements + GstTagSetter and GstPreset.

+
+
+

Properties

+
+  "bitrate"                  gint                  : Read / Write
+  "framesize"                gint                  : Read / Write
+  "cbr"                      gboolean              : Read / Write
+  "complexity"               gint                  : Read / Write
+  "max-bitrate"              gint                  : Read / Write
+  "prediction"               GstCeltEncPrediction  : Read / Write
+  "start-band"               gint                  : Read / Write
+
+
+
+

Description

+

+This element raw audio to CELT. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
gst-launch -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! celtenc ! oggmux ! filesink location=sine.ogg
+
+ Encode a test sine signal to Ogg/CELT. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ celt +

author

Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Codec/Encoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-celt, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], frame-size=(int)[ 64, 512 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCeltEnc

+
struct GstCeltEnc;
+

+

+
+
+
+

Property Details

+
+

The "bitrate" property

+
  "bitrate"                  gint                  : Read / Write
+

Specify an encoding bit-rate (in bps).

+

Allowed values: [10000,320000]

+

Default value: 64000

+
+
+
+

The "framesize" property

+
  "framesize"                gint                  : Read / Write
+

The number of samples per frame.

+

Allowed values: [64,512]

+

Default value: 480

+
+
+
+

The "cbr" property

+
  "cbr"                      gboolean              : Read / Write
+

Constant bit rate.

+

Default value: TRUE

+
+
+
+

The "complexity" property

+
  "complexity"               gint                  : Read / Write
+

Complexity.

+

Allowed values: [0,10]

+

Default value: 9

+
+
+
+

The "max-bitrate" property

+
  "max-bitrate"              gint                  : Read / Write
+

Specify a maximum encoding bit rate (in bps) for variable bit rate encoding.

+

Allowed values: [10000,320000]

+

Default value: 64000

+
+
+
+

The "prediction" property

+
  "prediction"               GstCeltEncPrediction  : Read / Write
+

Controls the use of interframe prediction.

+

Default value: Independent frames

+
+
+
+

The "start-band" property

+
  "start-band"               gint                  : Read / Write
+

Controls the start band that should be used.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

See Also

+celtdec, oggmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-chromium.html b/docs/plugins/html/gst-plugins-bad-plugins-chromium.html new file mode 100644 index 0000000..e75934f --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-chromium.html @@ -0,0 +1,211 @@ + + + + +chromium + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

chromium

+

chromium — Chromium breaks the colors of the video signal.

+
+
+

Synopsis

+
typedef             GstChromium;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstChromium
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+  "edge-a"                   guint                 : Read / Write
+  "edge-b"                   guint                 : Read / Write
+
+
+
+

Description

+

+Chromium breaks the colors of a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! chromium ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of chromium on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

GstChromium

+
typedef struct GstChromium      GstChromium;
+
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "edge-a" property

+
  "edge-a"                   guint                 : Read / Write
+

First edge parameter.

+

Allowed values: <= 256

+

Default value: 200

+
+
+
+

The "edge-b" property

+
  "edge-b"                   guint                 : Read / Write
+

Second edge parameter.

+

Allowed values: <= 256

+

Default value: 1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-circle.html b/docs/plugins/html/gst-plugins-bad-plugins-circle.html new file mode 100644 index 0000000..2c9be83 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-circle.html @@ -0,0 +1,286 @@ + + + + +circle + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

circle

+

circle — Warps the picture into an arc shaped form

+
+
+

Synopsis

+
struct              GstCircle;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstCircle
+
+
+
+

Properties

+
+  "angle"                    gdouble               : Read / Write
+  "height"                   gint                  : Read / Write
+  "spread-angle"             gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCircle

+
struct GstCircle;
+

+

+
+
+
+

Property Details

+
+

The "angle" property

+
  "angle"                    gdouble               : Read / Write
+

Angle at which the arc starts in radians.

+

Default value: 0

+
+
+
+

The "height" property

+
  "height"                   gint                  : Read / Write
+

Height of the arc.

+

Allowed values: >= 0

+

Default value: 20

+
+
+
+

The "spread-angle" property

+
  "spread-angle"             gdouble               : Read / Write
+

Length of the arc in radians.

+

Default value: 3.14159

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html b/docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html new file mode 100644 index 0000000..cccba55 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-coloreffects.html @@ -0,0 +1,265 @@ + + + + +coloreffects + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

coloreffects

+

coloreffects — Color Look-up Table filter

+
+
+

Synopsis

+
struct              GstColorEffects;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstColorEffects
+
+
+
+

Properties

+
+  "preset"                   GstColorEffectsPreset  : Read / Write
+
+
+
+

Description

+

+Map colors of the video input to a lookup table +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! coloreffects preset=heat ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of coloreffects on a test stream. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ coloreffects +

author

Filippo Argiolas <filippo.argiolas@gmail.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstColorEffects

+
struct GstColorEffects;
+

+Opaque datastructure. +

+
+
+
+

Property Details

+
+

The "preset" property

+
  "preset"                   GstColorEffectsPreset  : Read / Write
+

Color effect preset to use.

+

Default value: Do nothing preset

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-curlsink.html b/docs/plugins/html/gst-plugins-bad-plugins-curlsink.html new file mode 100644 index 0000000..5b3faf2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-curlsink.html @@ -0,0 +1,272 @@ + + + + +curlsink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

curlsink

+

curlsink — sink that uploads data to a server using libcurl

+
+
+

Synopsis

+
struct              GstCurlSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstCurlSink
+
+
+
+

Properties

+
+  "accept-self-signed"       gboolean              : Read / Write
+  "content-type"             gchar*                : Read / Write
+  "file-name"                gchar*                : Read / Write
+  "location"                 gchar*                : Read / Write
+  "passwd"                   gchar*                : Read / Write
+  "proxy"                    gchar*                : Read / Write
+  "proxy-passwd"             gchar*                : Read / Write
+  "proxy-port"               gint                  : Read / Write
+  "proxy-user"               gchar*                : Read / Write
+  "qos-dscp"                 gint                  : Read / Write
+  "timeout"                  gint                  : Read / Write
+  "use-content-length"       gboolean              : Read / Write
+  "user"                     gchar*                : Read / Write
+
+
+
+

Description

+

+This is a network sink that uses libcurl as a client to upload data to +a server (e.g. a HTTP/FTP server). +

+

+

+
+

Example launch line (upload a JPEG file to an HTTP server)

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
gst-launch filesrc filesrc location=image.jpg ! jpegparse ! curlsink  \
+    file-name=image.jpg  \
+    location=http://192.168.0.1:8080/cgi-bin/patupload.cgi/  \
+    user=test passwd=test  \
+    content-type=image/jpeg  \
+    use-content-length=false
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ curl +

author

Patricia Muscalu <patricia@axis.com>

class

Sink/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstCurlSink

+
struct GstCurlSink;
+

+

+
+
+
+

Property Details

+
+

The "accept-self-signed" property

+
  "accept-self-signed"       gboolean              : Read / Write
+

Accept self-signed SSL/TLS certificates.

+

Default value: FALSE

+
+
+
+

The "content-type" property

+
  "content-type"             gchar*                : Read / Write
+

The mime type of the body of the request.

+

Default value: NULL

+
+
+
+

The "file-name" property

+
  "file-name"                gchar*                : Read / Write
+

The base file name for the uploaded images.

+

Default value: NULL

+
+
+
+

The "location" property

+
  "location"                 gchar*                : Read / Write
+

URI location to write to.

+

Default value: NULL

+
+
+
+

The "passwd" property

+
  "passwd"                   gchar*                : Read / Write
+

User password to use for server authentication.

+

Default value: NULL

+
+
+
+

The "proxy" property

+
  "proxy"                    gchar*                : Read / Write
+

HTTP proxy server URI.

+

Default value: NULL

+
+
+
+

The "proxy-passwd" property

+
  "proxy-passwd"             gchar*                : Read / Write
+

Proxy user password to use for proxy authentication.

+

Default value: NULL

+
+
+
+

The "proxy-port" property

+
  "proxy-port"               gint                  : Read / Write
+

HTTP proxy server port.

+

Allowed values: >= 0

+

Default value: 3128

+
+
+
+

The "proxy-user" property

+
  "proxy-user"               gchar*                : Read / Write
+

Proxy user name to use for proxy authentication.

+

Default value: NULL

+
+
+
+

The "qos-dscp" property

+
  "qos-dscp"                 gint                  : Read / Write
+

Quality of Service, differentiated services code point (0 default).

+

Allowed values: [0,63]

+

Default value: 0

+
+
+
+

The "timeout" property

+
  "timeout"                  gint                  : Read / Write
+

Number of seconds waiting to write before timeout.

+

Allowed values: >= 0

+

Default value: 30

+
+
+
+

The "use-content-length" property

+
  "use-content-length"       gboolean              : Read / Write
+

Use the Content-Length HTTP header instead of Transfer-Encoding header.

+

Default value: FALSE

+
+
+
+

The "user" property

+
  "user"                     gchar*                : Read / Write
+

User name to use for server authentication.

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html b/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html new file mode 100644 index 0000000..8c912ae --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvdilate.html @@ -0,0 +1,244 @@ + + + + +cvdilate + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cvdilate

+

cvdilate — Applies cvDilate OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvDilate;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvDilateErode
+                                       +----GstCvDilate
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvDilate

+
struct GstCvDilate;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html b/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html new file mode 100644 index 0000000..7cb47a5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvequalizehist.html @@ -0,0 +1,147 @@ + + + + +cvequalizehist + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cvequalizehist

+

cvequalizehist — Applies cvEqualizeHist OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvEqualizeHist;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvEqualizeHist
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvEqualizeHist

+
struct GstCvEqualizeHist;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cverode.html b/docs/plugins/html/gst-plugins-bad-plugins-cverode.html new file mode 100644 index 0000000..80ce819 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cverode.html @@ -0,0 +1,244 @@ + + + + +cverode + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cverode

+

cverode — Applies cvErode OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvErode;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvDilateErode
+                                       +----GstCvErode
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvErode

+
struct GstCvErode;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html b/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html new file mode 100644 index 0000000..5406bcb --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvlaplace.html @@ -0,0 +1,165 @@ + + + + +cvlaplace + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cvlaplace

+

cvlaplace — Applies cvLaplace OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvLaplace;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvLaplace
+
+
+
+

Properties

+
+  "aperture-size"            gint                  : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvLaplace

+
struct GstCvLaplace;
+

+

+
+
+
+

Property Details

+
+

The "aperture-size" property

+
  "aperture-size"            gint                  : Read / Write
+

Size of the extended Laplace Kernel (1, 3, 5 or 7).

+

Allowed values: [1,7]

+

Default value: 3

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html b/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html new file mode 100644 index 0000000..bc0c700 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsmooth.html @@ -0,0 +1,216 @@ + + + + +cvsmooth + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cvsmooth

+

cvsmooth — Applies cvSmooth OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvSmooth;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvSmooth
+
+
+
+

Properties

+
+  "param1"                   gint                  : Read / Write
+  "param2"                   gint                  : Read / Write
+  "param3"                   gdouble               : Read / Write
+  "param4"                   gdouble               : Read / Write
+  "type"                     GstCvSmoothTypeType   : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvSmooth

+
struct GstCvSmooth;
+

+

+
+
+
+

Property Details

+
+

The "param1" property

+
  "param1"                   gint                  : Read / Write
+

The aperture width (Must be positive and odd).Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth.

+

Allowed values: >= 1

+

Default value: 3

+
+
+
+

The "param2" property

+
  "param2"                   gint                  : Read / Write
+

The aperture height, if zero, the width is used.(Must be positive and odd or zero, unuset in median and bilateral types). Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "param3" property

+
  "param3"                   gdouble               : Read / Write
+

If type is gaussian, this means the standard deviation.If type is bilateral, this means the color-sigma. If zero, Default values are used.Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "param4" property

+
  "param4"                   gdouble               : Read / Write
+

Only used in bilateral type, means the spatial-sigma.Check cvSmooth OpenCV docs: http://opencv.willowgarage.com/documentation/image_filtering.html#cvSmooth.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "type" property

+
  "type"                     GstCvSmoothTypeType   : Read / Write
+

Smooth Type.

+

Default value: CV Gaussian

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html b/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html new file mode 100644 index 0000000..6bbee51 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-cvsobel.html @@ -0,0 +1,183 @@ + + + + +cvsobel + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cvsobel

+

cvsobel — Applies cvSobel OpenCV function to the image

+
+
+

Synopsis

+
struct              GstCvSobel;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstOpencvVideoFilter
+                                 +----GstCvSobel
+
+
+
+

Properties

+
+  "aperture-size"            gint                  : Read / Write
+  "x-order"                  gint                  : Read / Write
+  "y-order"                  gint                  : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstCvSobel

+
struct GstCvSobel;
+

+

+
+
+
+

Property Details

+
+

The "aperture-size" property

+
  "aperture-size"            gint                  : Read / Write
+

Size of the extended Sobel Kernel (1, 3, 5 or 7).

+

Allowed values: [1,7]

+

Default value: 3

+
+
+
+

The "x-order" property

+
  "x-order"                  gint                  : Read / Write
+

Order of the derivative x.

+

Allowed values: >= G_MAXULONG

+

Default value: 1

+
+
+
+

The "y-order" property

+
  "y-order"                  gint                  : Read / Write
+

Order of the derivative y.

+

Allowed values: >= G_MAXULONG

+

Default value: 0

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html b/docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html new file mode 100644 index 0000000..22cfda9 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dataurisrc.html @@ -0,0 +1,170 @@ + + + + +dataurisrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dataurisrc

+

dataurisrc — Handles data: uris

+
+
+

Synopsis

+
struct              GstDataURISrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstDataURISrc
+
+
+
+

Implemented Interfaces

+

+GstDataURISrc implements + GstURIHandler.

+
+
+

Properties

+
+  "uri"                      gchar*                : Read / Write
+
+
+
+

Description

+

+dataurisrc handles data: URIs, see RFC 2397 for more information. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 -v dataurisrc uri="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAfElEQVQ4je2MwQnAIAxFgziA4EnczIsO4MEROo/gzZWc4xdTbe1R6LGRR74heYS7iKElzfcMiRnt4hf8gk8EayB6luefue/HzlJfCA50XsNjYRxprZmenXNIKSGEsC+QUqK1hhgj521BzhnWWiilUGvdF5RS4L2HMQZCCJy8sHMm2TYdJAAAAABJRU5ErkJggg==" ! pngdec ! ffmpegcolorspace ! freeze ! ffmpegcolorspace ! autovideosink
+
+ This pipeline displays a small 16x16 PNG image from the data URI. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dataurisrc +

author

Philippe Normand <pnormand@igalia.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Source
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstDataURISrc

+
struct GstDataURISrc;
+

+

+
+
+
+

Property Details

+
+

The "uri" property

+
  "uri"                      gchar*                : Read / Write
+

URI that should be used.

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html new file mode 100644 index 0000000..e2027aa --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsink.html @@ -0,0 +1,259 @@ + + + + +dccpclientsink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dccpclientsink

+

dccpclientsink — Send data as a client over the network via DCCP

+
+
+

Synopsis

+
struct              GstDCCPClientSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstDCCPClientSink
+
+
+
+

Properties

+
+  "ccid"                     gint                  : Read / Write
+  "close-socket"             gboolean              : Read / Write
+  "host"                     gchar*                : Read / Write
+  "port"                     gint                  : Read / Write
+  "sockfd"                   gint                  : Read / Write
+
+
+
+

Signals

+
+  "connected"                                      : Run First
+
+
+
+

Description

+

+This element connect to a DCCP server and send data to it. +DCCP (Datagram +Congestion Control Protocol) is a Transport Layer protocol like +TCP and UDP. +

+

+

+
+

Example pipeline

+

+

+
+ + + + + + + +
1
gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpclientsink host=localhost port=9011 ccid=2
+
+ +

Client +

+
+ + + + + + + +
1
gst-launch -v dccpserversrc port=9011 ccid=2 ! decodebin ! alsasink
+
+ +

Server +

+

+This example pipeline will send a MP3 stream to the server using DCCP. +The server will decode the MP3 and play it. +Run the server pipeline first than the client pipeline. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dccp +

author

E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com>

class

Sink/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstDCCPClientSink

+
struct GstDCCPClientSink;
+

+dccpclientsink object structure. +

+
+
+
+

Property Details

+
+

The "ccid" property

+
  "ccid"                     gint                  : Read / Write
+

The Congestion Control IDentified to be used.

+

Allowed values: >= 2

+

Default value: 2

+
+
+
+

The "close-socket" property

+
  "close-socket"             gboolean              : Read / Write
+

Close socket at end of stream.

+

Default value: TRUE

+
+
+
+

The "host" property

+
  "host"                     gchar*                : Read / Write
+

The host IP address to send packets to.

+

Default value: "127.0.0.1"

+
+
+
+

The "port" property

+
  "port"                     gint                  : Read / Write
+

The port to send the packets to.

+

Allowed values: [0,65535]

+

Default value: 5001

+
+
+
+

The "sockfd" property

+
  "sockfd"                   gint                  : Read / Write
+

The socket file descriptor.

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

Signal Details

+
+

The "connected" signal

+
void                user_function                      (GstDCCPClientSink *gstdccpclientsink,
+                                                        gint               arg1,
+                                                        gpointer           user_data)              : Run First
+

+

+
++ + + + + + + + + + +

gstdccpclientsink :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

See Also

+dccpserversrc, dccpclientsrc, dccpserversink +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html new file mode 100644 index 0000000..2bd81d2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpclientsrc.html @@ -0,0 +1,267 @@ + + + + +dccpclientsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dccpclientsrc

+

dccpclientsrc — Receive data as a client over the network via DCCP

+
+
+

Synopsis

+
struct              GstDCCPClientSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstDCCPClientSrc
+
+
+
+

Properties

+
+  "caps"                     GstCaps*              : Read / Write
+  "ccid"                     gint                  : Read / Write
+  "close-socket"             gboolean              : Read / Write
+  "host"                     gchar*                : Read / Write
+  "port"                     gint                  : Read / Write
+  "sockfd"                   gint                  : Read / Write
+
+
+
+

Signals

+
+  "connected"                                      : Run First
+
+
+
+

Description

+

+This element connect to a DCCP server and send data to it. +DCCP (Datagram +Congestion Control Protocol) is a Transport Layer protocol like +TCP and UDP. +

+

+

+
+

Example pipeline

+

+

+
+ + + + + + + +
1
gst-launch -v dccpclientsrc host=localhost port=9011 ccid=2 ! decodebin ! alsasink
+
+ +

Client +

+
+ + + + + + + +
1
gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpserversink port=9011 ccid=2
+
+ +

Server +

+

+This example pipeline will send a MP3 stream to the client using DCCP. +The client will decode the MP3 and play it. Run the server pipeline +first than the client pipeline. If you want, you can run more than one dccpclientsrc +to connect to the same server (see wait-connections property at dccpserversink). +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dccp +

author

E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com>

class

Source/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstDCCPClientSrc

+
struct GstDCCPClientSrc;
+

+

+
+
+
+

Property Details

+
+

The "caps" property

+
  "caps"                     GstCaps*              : Read / Write
+

The caps of the source pad.

+
+
+
+

The "ccid" property

+
  "ccid"                     gint                  : Read / Write
+

The Congestion Control IDentified to be used.

+

Allowed values: >= 2

+

Default value: 2

+
+
+
+

The "close-socket" property

+
  "close-socket"             gboolean              : Read / Write
+

Close socket at the end of stream.

+

Default value: TRUE

+
+
+
+

The "host" property

+
  "host"                     gchar*                : Read / Write
+

The host IP address to receive packets from.

+

Default value: "127.0.0.1"

+
+
+
+

The "port" property

+
  "port"                     gint                  : Read / Write
+

The port to receive packets from.

+

Allowed values: [0,65535]

+

Default value: 5001

+
+
+
+

The "sockfd" property

+
  "sockfd"                   gint                  : Read / Write
+

The socket file descriptor.

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

Signal Details

+
+

The "connected" signal

+
void                user_function                      (GstDCCPClientSrc *gstdccpclientsrc,
+                                                        gint              arg1,
+                                                        gpointer          user_data)             : Run First
+

+

+
++ + + + + + + + + + +

gstdccpclientsrc :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

See Also

+dccpclientsink, dccpserversink, dccpserversrc +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html new file mode 100644 index 0000000..ca41eba --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversink.html @@ -0,0 +1,259 @@ + + + + +dccpserversink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dccpserversink

+

dccpserversink — Send data as a server over the network via DCCP

+
+
+

Synopsis

+
struct              GstDCCPServerSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstDCCPServerSink
+
+
+
+

Properties

+
+  "ccid"                     gint                  : Read / Write
+  "close-socket"             gboolean              : Read / Write
+  "port"                     gint                  : Read / Write
+  "sockfd"                   gint                  : Read / Write
+  "wait-connections"         gboolean              : Read / Write
+
+
+
+

Signals

+
+  "connected"                                      : Run First
+
+
+
+

Description

+

+This element wait for connections from clients and send data to them. +DCCP (Datagram +Congestion Control Protocol) is a Transport Layer protocol like +TCP and UDP. +

+

+

+
+

Example pipeline

+

+

+
+ + + + + + + +
1
gst-launch -v dccpclientsrc host=localhost port=9011 ccid=2 ! decodebin ! alsasink
+
+ +

Client +

+
+ + + + + + + +
1
gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpserversink port=9011 ccid=2
+
+ +

Server +

+

+This example pipeline will send a MP3 stream to the client using DCCP. +The client will decode the MP3 and play it. Run the server pipeline +first than the client pipeline. If you want, you can run more than one dccpclientsrc +to connect to the same server (see wait-connections property at dccpserversink). +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dccp +

author

E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com>

class

Sink/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstDCCPServerSink

+
struct GstDCCPServerSink;
+

+

+
+
+
+

Property Details

+
+

The "ccid" property

+
  "ccid"                     gint                  : Read / Write
+

The Congestion Control IDentified to be used.

+

Allowed values: >= 2

+

Default value: 2

+
+
+
+

The "close-socket" property

+
  "close-socket"             gboolean              : Read / Write
+

Close the client sockets at end of stream.

+

Default value: TRUE

+
+
+
+

The "port" property

+
  "port"                     gint                  : Read / Write
+

The port to listen to.

+

Allowed values: [0,65535]

+

Default value: 5001

+
+
+
+

The "sockfd" property

+
  "sockfd"                   gint                  : Read / Write
+

The client socket file descriptor.

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

The "wait-connections" property

+
  "wait-connections"         gboolean              : Read / Write
+

Wait for many client connections.

+

Default value: FALSE

+
+
+
+

Signal Details

+
+

The "connected" signal

+
void                user_function                      (GstDCCPServerSink *gstdccpserversink,
+                                                        gint               arg1,
+                                                        gpointer           user_data)              : Run First
+

+

+
++ + + + + + + + + + +

gstdccpserversink :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

See Also

+dccpclientsink, dccpclientsrc, dccpserversrc +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html new file mode 100644 index 0000000..f29fbb6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dccpserversrc.html @@ -0,0 +1,266 @@ + + + + +dccpserversrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dccpserversrc

+

dccpserversrc — Receive data as a server over the network via DCCP

+
+
+

Synopsis

+
struct              GstDCCPServerSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstDCCPServerSrc
+
+
+
+

Properties

+
+  "caps"                     GstCaps*              : Read / Write
+  "ccid"                     gint                  : Read / Write
+  "close-socket"             gboolean              : Read / Write
+  "host"                     gchar*                : Read / Write
+  "port"                     gint                  : Read / Write
+  "sockfd"                   gint                  : Read / Write
+
+
+
+

Signals

+
+  "connected"                                      : Run First
+
+
+
+

Description

+

+This element wait for connection from a client and receive data. +DCCP (Datagram +Congestion Control Protocol) is a Transport Layer protocol like +TCP and UDP. +

+

+

+
+

Example pipeline

+

+

+
+ + + + + + + +
1
gst-launch -v filesrc location=music.mp3 ! mp3parse ! dccpclientsink host=localhost port=9011 ccid=2
+
+ +

Client +

+
+ + + + + + + +
1
gst-launch -v dccpserversrc port=9011 ccid=2 ! decodebin ! alsasink
+
+ +

Server +

+

+This example pipeline will send a MP3 stream to the server using DCCP. +The server will decode the MP3 and play it. +Run the server pipeline first than the client pipeline. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dccp +

author

E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com>

class

Source/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstDCCPServerSrc

+
struct GstDCCPServerSrc;
+

+

+
+
+
+

Property Details

+
+

The "caps" property

+
  "caps"                     GstCaps*              : Read / Write
+

The caps of the source pad.

+
+
+
+

The "ccid" property

+
  "ccid"                     gint                  : Read / Write
+

The Congestion Control IDentified to be used.

+

Allowed values: >= 2

+

Default value: 2

+
+
+
+

The "close-socket" property

+
  "close-socket"             gboolean              : Read / Write
+

Close client socket at the end of stream.

+

Default value: TRUE

+
+
+
+

The "host" property

+
  "host"                     gchar*                : Read / Write
+

The hostname to listen as.

+

Default value: NULL

+
+
+
+

The "port" property

+
  "port"                     gint                  : Read / Write
+

The port to listen to.

+

Allowed values: [0,65535]

+

Default value: 5001

+
+
+
+

The "sockfd" property

+
  "sockfd"                   gint                  : Read / Write
+

The client socket file descriptor.

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

Signal Details

+
+

The "connected" signal

+
void                user_function                      (GstDCCPServerSrc *gstdccpserversrc,
+                                                        gint              arg1,
+                                                        gpointer          user_data)             : Run First
+

+

+
++ + + + + + + + + + +

gstdccpserversrc :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

See Also

+dccpclientsink, dccpclientsrc, dccpserversink +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html b/docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html new file mode 100644 index 0000000..fc07f79 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dfbvideosink.html @@ -0,0 +1,370 @@ + + + + +dfbvideosink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dfbvideosink

+

dfbvideosink — A DirectFB based videosink

+
+
+

Synopsis

+
struct              GstDfbVideoSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstVideoSink
+                           +----GstDfbVideoSink
+
+
+
+

Implemented Interfaces

+

+GstDfbVideoSink implements + GstImplementsInterface, GstNavigation and GstColorBalance.

+
+
+

Properties

+
+  "brightness"               gint                  : Read / Write
+  "contrast"                 gint                  : Read / Write
+  "hue"                      gint                  : Read / Write
+  "pixel-aspect-ratio"       gchar*                : Read / Write
+  "saturation"               gint                  : Read / Write
+  "surface"                  gpointer              : Write
+  "vsync"                    gboolean              : Read / Write
+
+
+
+

Description

+

+DfbVideoSink renders video frames using the +DirectFB library. +Rendering can happen in two different modes : +

+
    +
  • +

    + Standalone: this mode will take complete control of the monitor forcing + DirectFB to fullscreen layout. + This is convenient to test using the gst-launch command line tool or + other simple applications. It is possible to interrupt playback while + being in this mode by pressing the Escape key. +

    +

    + This mode handles navigation events for every input device supported by + the DirectFB library, it will + look for available video modes in the fb.modes file and try to switch + the framebuffer video mode to the most suitable one. Depending on + hardware acceleration capabilities the element will handle scaling or not. + If no acceleration is available it will do clipping or centering of the + video frames respecting the original aspect ratio. +

    +
  • +
  • +

    + Embedded: this mode will render video frames in a + "surface" provided by the + application developer. This is a more advanced usage of the element and + it is required to integrate video playback in existing + DirectFB applications. +

    +

    + When using this mode the element just renders to the + "surface" provided by the + application, that means it won't handle navigation events and won't resize + the "surface" to fit video + frames geometry. Application has to implement the necessary code to grab + informations about the negotiated geometry and resize there + "surface" accordingly. +

    +
  • +
+

+For both modes the element implements a buffer pool allocation system to +optimize memory allocation time and handle reverse negotiation. Indeed if +you insert an element like videoscale in the pipeline the video sink will +negotiate with it to try get a scaled video for either the fullscreen layout +or the application provided external "surface". +

+

+

+
+

Example application

+

+

+
+
+#include <directfb.h>
+#include <stdio.h>
+#include <gst/gst.h>
+
+static IDirectFB *dfb = NULL;
+static IDirectFBSurface *primary = NULL;
+static GMainLoop *loop;
+
+#define DFBCHECK(x...)                                         \
+  {                                                            \
+    DFBResult err = x;                                         \
+                                                               \
+    if (err != DFB_OK)                                         \
+      {                                                        \
+        fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \
+        DirectFBErrorFatal( #x, err );                         \
+      }                                                        \
+  }
+
+static gboolean
+get_me_out (gpointer data)
+{
+  g_main_loop_quit (loop);
+  return FALSE;
+}
+
+int
+main (int argc, char *argv[])
+{
+  DFBSurfaceDescription dsc;
+  GstElement *pipeline, *src, *sink;
+
+  /* Init both GStreamer and DirectFB */
+  DFBCHECK (DirectFBInit (&argc, &argv));
+  gst_init (&argc, &argv);
+
+  /* Creates DirectFB main context and set it to fullscreen layout */
+  DFBCHECK (DirectFBCreate (&dfb));
+  DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN));
+
+  /* We want a double buffered primary surface */
+  dsc.flags = DSDESC_CAPS;
+  dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING;
+
+  DFBCHECK (dfb->CreateSurface (dfb, &dsc, &primary));
+
+  /* Creating our pipeline : videotestsrc ! dfbvideosink */
+  pipeline = gst_pipeline_new (NULL);
+  g_assert (pipeline);
+  src = gst_element_factory_make ("videotestsrc", NULL);
+  g_assert (src);
+  sink = gst_element_factory_make ("dfbvideosink", NULL);
+  g_assert (sink);
+  /* That's the interesting part, giving the primary surface to dfbvideosink */
+  g_object_set (sink, "surface", primary, NULL);
+
+  /* Adding elements to the pipeline */
+  gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);
+  if (!gst_element_link (src, sink))
+    g_error ("Couldn't link videotestsrc and dfbvideosink");
+
+  /* Let's play ! */
+  gst_element_set_state (pipeline, GST_STATE_PLAYING);
+
+  /* we need to run a GLib main loop to get out of here */
+  loop = g_main_loop_new (NULL, FALSE);
+  /* Get us out after 20 seconds */
+  g_timeout_add (20000, get_me_out, NULL);
+  g_main_loop_run (loop);
+
+  /* Release elements and stop playback */
+  gst_element_set_state (pipeline, GST_STATE_NULL);
+
+  /* Free the main loop */
+  g_main_loop_unref (loop);
+
+  /* Release DirectFB context and surface */
+  primary->Release (primary);
+  dfb->Release (dfb);
+
+  return 0;
+}
+
+
+

+

+
+

+

+
+
+

Example pipelines

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! dfbvideosink hue=20000 saturation=40000 brightness=25000
+
+ test the colorbalance interface implementation in dfbvideosink +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dfbvideosink +

author

Julien Moutte <julien@moutte.net>

class

Sink/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]

video/x-raw-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]
+
+
+

+

+
+
+

Details

+
+

struct GstDfbVideoSink

+
struct GstDfbVideoSink;
+

+The opaque GstDfbVideoSink structure. +

+
+
+
+

Property Details

+
+

The "brightness" property

+
  "brightness"               gint                  : Read / Write
+

The brightness of the video.

+

Allowed values: [0,65535]

+

Default value: 32768

+
+
+
+

The "contrast" property

+
  "contrast"                 gint                  : Read / Write
+

The contrast of the video.

+

Allowed values: [0,65535]

+

Default value: 32768

+
+
+
+

The "hue" property

+
  "hue"                      gint                  : Read / Write
+

The hue of the video.

+

Allowed values: [0,65535]

+

Default value: 32768

+
+
+
+

The "pixel-aspect-ratio" property

+
  "pixel-aspect-ratio"       gchar*                : Read / Write
+

The pixel aspect ratio of the device.

+

Default value: "1/1"

+
+
+
+

The "saturation" property

+
  "saturation"               gint                  : Read / Write
+

The saturation of the video.

+

Allowed values: [0,65535]

+

Default value: 32768

+
+
+
+

The "surface" property

+
  "surface"                  gpointer              : Write
+

The target surface for video.

+
+
+
+

The "vsync" property

+
  "vsync"                    gboolean              : Read / Write
+

Wait for next vertical sync to draw frames.

+

Default value: TRUE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-diffuse.html b/docs/plugins/html/gst-plugins-bad-plugins-diffuse.html new file mode 100644 index 0000000..0dc69df --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-diffuse.html @@ -0,0 +1,269 @@ + + + + +diffuse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

diffuse

+

diffuse — Diffuses the image by moving its pixels in random directions

+
+
+

Synopsis

+
struct              GstDiffuse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstDiffuse
+
+
+
+

Properties

+
+  "scale"                    gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstDiffuse

+
struct GstDiffuse;
+

+

+
+
+
+

Property Details

+
+

The "scale" property

+
  "scale"                    gdouble               : Read / Write
+

Scale of the texture.

+

Allowed values: >= 1

+

Default value: 4

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dilate.html b/docs/plugins/html/gst-plugins-bad-plugins-dilate.html new file mode 100644 index 0000000..5ec0119 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dilate.html @@ -0,0 +1,200 @@ + + + + +dilate + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dilate

+

dilate — Dilate copies the brightest pixel around.

+
+
+

Synopsis

+
struct              GstDilate;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstDilate
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+  "erode"                    gboolean              : Read / Write
+
+
+
+

Description

+

+Dilate adjusts the colors of a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! dilate ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of dilate on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstDilate

+
struct GstDilate;
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "erode" property

+
  "erode"                    gboolean              : Read / Write
+

Erode parameter.

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html b/docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html new file mode 100644 index 0000000..53b21b8 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-directdrawsink.html @@ -0,0 +1,167 @@ + + + + +directdrawsink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

directdrawsink

+

directdrawsink — Direct Draw video sink

+
+
+

Synopsis

+
struct              GstDirectDrawSink;
+
+
+
+

Description

+

+DirectdrawSink renders video RGB frames to any win32 window. This element +can receive a window ID from the application through the XOverlay interface +and will then render video frames in this window. +If no Window ID was provided by the application, the element will create its +own internal window and render into it. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! directdrawsink
+
+ a simple pipeline to test the sink +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ directdraw +

author

Sebastien Moutte <sebastien@moutte.net>

class

Sink/Video
+
+
+
+

Element Pads

+
+
+

+

+
+
+

Details

+
+

struct GstDirectDrawSink

+
struct GstDirectDrawSink {
+  GstVideoSink videosink;
+
+  /* directdraw offscreen surfaces pool */
+  GSList *buffer_pool;
+  GMutex *pool_lock;
+
+  /* directdraw objects */
+  LPDIRECTDRAW ddraw_object;
+  LPDIRECTDRAWSURFACE primary_surface;
+  LPDIRECTDRAWSURFACE offscreen_surface;
+  LPDIRECTDRAWCLIPPER clipper; 
+
+  /* last buffer displayed (used for XOverlay interface expose method) */
+  GstBuffer * last_buffer;
+
+  /* directdraw caps */
+  GstCaps *caps;
+
+  /* video window management */
+  HWND video_window;
+  gboolean our_video_window;
+  HANDLE window_created_signal;
+  
+  /* video properties */
+  gint video_width, video_height;
+  gint out_width, out_height;
+  gint fps_n;
+  gint fps_d;
+
+  /* properties */
+  gboolean keep_aspect_ratio;
+
+  /*pixel format */
+  DDPIXELFORMAT dd_pixel_format;
+
+  /* thread processing our default window messages */
+  GThread *window_thread;
+
+  /* TRUE when directdraw object is set up */
+  gboolean setup;
+
+  /* TRUE if the hardware supports blitting from one colorspace to another */
+  gboolean can_blit_between_colorspace;
+
+  /* This flag is used to force re-creation of our offscreen surface.
+   * It's needed when hardware doesn't support fourcc blit and the bit depth
+   * of the current display mode changes.
+   */
+  gboolean must_recreate_offscreen;
+};
+
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dodge.html b/docs/plugins/html/gst-plugins-bad-plugins-dodge.html new file mode 100644 index 0000000..1696985 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dodge.html @@ -0,0 +1,192 @@ + + + + +dodge + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dodge

+

dodge — Dodge saturates the colors in the video signal.

+
+
+

Synopsis

+
struct              GstDodge;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstDodge
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+
+
+
+

Description

+

+Dodge saturates the colors of a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! dodge ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of dodge on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstDodge

+
struct GstDodge;
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html b/docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html new file mode 100644 index 0000000..c3b4a43 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtmfdetect.html @@ -0,0 +1,172 @@ + + + + +dtmfdetect + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dtmfdetect

+

dtmfdetect — Detects DTMF tones

+
+
+

Synopsis

+
struct              GstDtmfDetect;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstDtmfDetect
+
+
+
+

Description

+

+This element will detect DTMF tones and emit messages. +

+

+The message is called "dtmf-event" and has +the following fields: +

+
    +
  • + gint type (0-1): + The application uses this field to specify which of the two methods + specified in RFC 2833 to use. The value should be 0 for tones and 1 for + named events. Tones are specified by their frequencies and events are + specfied by their number. This element can only take events as input. + Do not confuse with "method" which specified the output. +

  • +
  • + gint number (0-16): + The event number. +

  • +
  • + gint method (2): + This field will always been 2 (ie sound) from this element. +

  • +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dtmf +

author

Olivier Crete <olivier.crete@collabora.co.uk>

class

Filter/Analyzer/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
+
+
+

+

+
+
+

Details

+
+

struct GstDtmfDetect

+
struct GstDtmfDetect;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html new file mode 100644 index 0000000..9788f47 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtmfsrc.html @@ -0,0 +1,238 @@ + + + + +dtmfsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dtmfsrc

+

dtmfsrc — Generates DTMF tones

+
+
+

Synopsis

+
struct              GstDTMFSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstDTMFSrc
+
+
+
+

Properties

+
+  "interval"                 guint                 : Read / Write
+
+
+
+

Description

+

+The DTMFSrc element generates DTMF (ITU-T Q.23 Specification) tone packets on request +from application. The application communicates the beginning and end of a +DTMF event using custom upstream gstreamer events. To report a DTMF event, an +application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a +structure of name "dtmf-event" with fields set according to the following +table: +

+

+

+
++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameGTypePossible valuesPurpose
typeG_TYPE_INT0-1The application uses this field to specify which of the two methods +specified in RFC 2833 to use. The value should be 0 for tones and 1 for +named events. Tones are specified by their frequencies and events are specied +by their number. This element can only take events as input. Do not confuse +with "method" which specified the output. +
numberG_TYPE_INT0-16The event number.
volumeG_TYPE_INT0-36This field describes the power level of the tone, expressed in dBm0 +after dropping the sign. Power levels range from 0 to -63 dBm0. The range of +valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. +
startG_TYPE_BOOLEANTrue or FalseWhether the event is starting or ending.
methodG_TYPE_INT2The method used for sending event, this element will react if this +field is absent or 2. +
+

+

+

+For example, the following code informs the pipeline (and in turn, the +DTMFSrc element inside the pipeline) about the start of a DTMF named +event '1' of volume -25 dBm0: +

+

+

+
+structure = gst_structure_new ("dtmf-event",
+                   "type", G_TYPE_INT, 1,
+                   "number", G_TYPE_INT, 1,
+                   "volume", G_TYPE_INT, 25,
+                   "start", G_TYPE_BOOLEAN, TRUE, NULL);
+
+event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+gst_element_send_event (pipeline, event);
+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dtmf +

author

Youness Alaoui <youness.alaoui@collabora.co.uk>

class

Source/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 1, 2147483647 ], channels=(int)1
+
+
+

+

+
+
+

Details

+
+

struct GstDTMFSrc

+
struct GstDTMFSrc;
+

+The opaque GstDTMFSrc data structure. +

+
++ +
+
+
+
+

Property Details

+
+

The "interval" property

+
  "interval"                 guint                 : Read / Write
+

Interval in ms between two tone packets.

+

Allowed values: [10,50]

+

Default value: 50

+
+
+
+

See Also

+rtpdtmsrc, rtpdtmfmuxx +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html b/docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html new file mode 100644 index 0000000..ad6faba --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dtsdec.html @@ -0,0 +1,197 @@ + + + + +dtsdec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dtsdec

+

dtsdec — Decodes DTS audio streams

+
+
+

Synopsis

+
struct              GstDtsDec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstDtsDec
+
+
+
+

Properties

+
+  "drc"                      gboolean              : Read / Write
+
+
+
+

Description

+

+Digital Theatre System (DTS) audio decoder +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch dvdreadsrc title=1 ! mpegpsdemux ! dtsdec ! audioresample ! audioconvert ! alsasink
+
+ Play a DTS audio track from a dvd. +
+ + + + + + + +
1
gst-launch filesrc location=abc.dts ! dtsdec ! audioresample ! audioconvert ! alsasink
+
+ Decode a standalone file and play it. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dtsdec +

author

Jan Schmidt <thaytan@noraisin.net>, Ronald Bultje <rbultje@ronald.bitfreak.net>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-dts

audio/x-private1-dts
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]
+
+
+

+

+
+
+

Details

+
+

struct GstDtsDec

+
struct GstDtsDec;
+

+

+
+
+
+

Property Details

+
+

The "drc" property

+
  "drc"                      gboolean              : Read / Write
+

Use Dynamic Range Compression.

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html new file mode 100644 index 0000000..ecdf928 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dvbsrc.html @@ -0,0 +1,358 @@ + + + + +dvbsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dvbsrc

+

dvbsrc — Digital Video Broadcast Source

+
+
+

Synopsis

+
struct              GstDvbSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstDvbSrc
+
+
+
+

Properties

+
+  "bandwidth"                GstDvbSrcBandwidth    : Read / Write
+  "code-rate-hp"             GstDvbSrcCode_Rate    : Read / Write
+  "code-rate-lp"             GstDvbSrcCode_Rate    : Read / Write
+  "device"                   gchararray            : Read / Write
+  "diseqc-src"               gint                  : Read / Write
+  "freq"                     gint                  : Read / Write
+  "guard"                    GstDvbSrcGuard        : Read / Write
+  "hierarchy"                GstDvbSrcHierarchy    : Read / Write
+  "inversion"                GstDvbSrcInversion    : Read / Write
+  "modulation"               GstDvbSrcModulation   : Read / Write
+  "pids"                     gchar*                : Write
+  "pol"                      gchararray            : Read / Write
+  "srate"                    gint                  : Read / Write
+  "trans-mode"               GstDvbSrcTransmission_Mode  : Read / Write
+  "tune"                     gpointer              : Write
+  "adapter"                  gint                  : Read / Write
+  "diseqc-source"            gint                  : Read / Write
+  "frequency"                guint                 : Read / Write
+  "frontend"                 gint                  : Read / Write
+  "polarity"                 gchar*                : Read / Write / Construct
+  "symbol-rate"              guint                 : Read / Write
+  "stats-reporting-interval" guint                 : Read / Write
+
+
+
+

Description

+

+dvbsrc can be used to capture video from DVB cards, DVB-T, DVB-S or DVB-T. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=514000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4  hierarchy=0 ! mpegtsdemux name=demux ! queue max-size-buffers=0 max-size-time=0 ! mpeg2dec ! xvimagesink demux. ! queue max-size-buffers=0 max-size-time=0 ! mad ! alsasink
+
+ Captures a full transport stream from dvb card 0 that is a DVB-T card at tuned frequency 514000000 with other parameters as seen in the pipeline and renders the first tv program on the transport stream. +
+ + + + + + + +
1
gst-launch dvbsrc modulation="QAM 64" trans-mode=8k bandwidth=8 frequency=514000000 code-rate-lp=AUTO code-rate-hp=2/3 guard=4  hierarchy=0 pids=100:256:257 ! mpegtsdemux name=demux ! queue max-size-buffers=0 max-size-time=0 ! mpeg2dec ! xvimagesink demux. ! queue max-size-buffers=0 max-size-time=0 ! mad ! alsasink
+
+ Captures and renders a transport stream from dvb card 0 that is a DVB-T card for a program at tuned frequency 514000000 with PMT pid 100 and elementary stream pids of 256, 257 with other parameters as seen in the pipeline. +
+ + + + + + + +
1
gst-launch dvbsrc polarity="h" frequency=11302000 symbol-rate=27500 diseqc-src=0 pids=50:102:103 ! mpegtsdemux name=demux ! queue max-size-buffers=0 max-size-time=0 ! mpeg2dec ! xvimagesink demux. ! queue max-size-buffers=0 max-size-time=0 ! mad ! alsasink
+
+ Captures and renders a transport stream from dvb card 0 that is a DVB-S card for a program at tuned frequency 11302000 Hz, symbol rate of 27500 kHz with PMT pid of 50 and elementary stream pids of 102 and 103. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dvb +

author

P2P-VCR, C-Lab, University of Paderborn,Zaheer Abbas Merali <zaheerabbas at merali dot org>

class

Source/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/mpegts, mpegversion=(int)2, systemstream=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstDvbSrc

+
struct GstDvbSrc;
+

+

+
+
+
+

Property Details

+
+

The "bandwidth" property

+
  "bandwidth"                GstDvbSrcBandwidth    : Read / Write
+

Bandwidth (DVB-T).

+

Default value: 7

+
+
+
+

The "code-rate-hp" property

+
  "code-rate-hp"             GstDvbSrcCode_Rate    : Read / Write
+

High Priority Code Rate (DVB-T, DVB-S and DVB-C).

+

Default value: AUTO

+
+
+
+

The "code-rate-lp" property

+
  "code-rate-lp"             GstDvbSrcCode_Rate    : Read / Write
+

Low Priority Code Rate (DVB-T).

+

Default value: 1/2

+
+
+
+

The "device" property

+
  "device"                   gchararray            : Read / Write
+

The device directory.

+

Default value: "/dev/dvb/adapter0"

+
+
+
+

The "diseqc-src" property

+
  "diseqc-src"               gint                  : Read / Write
+

DISEqC selected source (-1 disabled) (DVB-S).

+

Allowed values: [-1,7]

+

Default value: -1

+
+
+
+

The "freq" property

+
  "freq"                     gint                  : Read / Write
+

Frequency.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "guard" property

+
  "guard"                    GstDvbSrcGuard        : Read / Write
+

Guard Interval (DVB-T).

+

Default value: 16

+
+
+
+

The "hierarchy" property

+
  "hierarchy"                GstDvbSrcHierarchy    : Read / Write
+

Hierarchy Information (DVB-T).

+

Default value: 1

+
+
+
+

The "inversion" property

+
  "inversion"                GstDvbSrcInversion    : Read / Write
+

Inversion Information (DVB-T and DVB-C).

+

Default value: ON

+
+
+
+

The "modulation" property

+
  "modulation"               GstDvbSrcModulation   : Read / Write
+

Modulation (DVB-T and DVB-C).

+

Default value: QAM 16

+
+
+
+

The "pids" property

+
  "pids"                     gchar*                : Write
+

Colon seperated list of pids (eg. 110:120).

+

Default value: "8192"

+
+
+
+

The "pol" property

+
  "pol"                      gchararray            : Read / Write
+

Polarity [vhHV] (DVB-S).

+

Default value: "h"

+
+
+
+

The "srate" property

+
  "srate"                    gint                  : Read / Write
+

Symbol Rate (DVB-S, DVB-C).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "trans-mode" property

+
  "trans-mode"               GstDvbSrcTransmission_Mode  : Read / Write
+

Transmission Mode (DVB-T).

+

Default value: 8K

+
+
+
+

The "tune" property

+
  "tune"                     gpointer              : Write
+

Atomically tune to channel. (For Apps).

+
+
+
+

The "adapter" property

+
  "adapter"                  gint                  : Read / Write
+

The adapter device number (eg. 0 for adapter0).

+

Allowed values: [0,16]

+

Default value: 0

+
+
+
+

The "diseqc-source" property

+
  "diseqc-source"            gint                  : Read / Write
+

DISEqC selected source (-1 disabled) (DVB-S).

+

Allowed values: [G_MAXULONG,7]

+

Default value: -1

+
+
+
+

The "frequency" property

+
  "frequency"                guint                 : Read / Write
+

Frequency.

+

Default value: 0

+
+
+
+

The "frontend" property

+
  "frontend"                 gint                  : Read / Write
+

The frontend device number (eg. 0 for frontend0).

+

Allowed values: [0,16]

+

Default value: 0

+
+
+
+

The "polarity" property

+
  "polarity"                 gchar*                : Read / Write / Construct
+

Polarity [vhHV] (DVB-S).

+

Default value: "H"

+
+
+
+

The "symbol-rate" property

+
  "symbol-rate"              guint                 : Read / Write
+

Symbol Rate (DVB-S, DVB-C).

+

Default value: 0

+
+
+
+

The "stats-reporting-interval" property

+
  "stats-reporting-interval" guint                 : Read / Write
+

The number of reads before reporting frontend stats.

+

Default value: 100

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html b/docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html new file mode 100644 index 0000000..2afb521 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-dvdspu.html @@ -0,0 +1,190 @@ + + + + +dvdspu + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dvdspu

+

dvdspu — Parses Sub-Picture command streams and renders the SPU overlay onto the video as it passes through

+
+
+

Synopsis

+
                    GstDVDSpu;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstDVDSpu
+
+
+
+

Description

+

+DVD sub picture overlay element. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
FIXME: gst-launch ...
+
+ FIXME: description for the sample launch pipeline +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dvdspu +

author

Jan Schmidt <thaytan@noraisin.net>

class

Mixer/Video/Overlay/SubPicture/DVD/Bluray
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

subpicture

direction

sink

presence

always

details

video/x-dvd-subpicture

subpicture/x-pgs
+
++ + + + + + + + + + + + + + + + + + +

name

video

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]
+
+
+

+

+
+
+

Details

+
+

GstDVDSpu

+
typedef struct _GstDVDSpu GstDVDSpu;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html b/docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html new file mode 100644 index 0000000..d10c5f5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-edgedetect.html @@ -0,0 +1,209 @@ + + + + +edgedetect + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

edgedetect

+

edgedetect — Performs canny edge detection on videos and images.

+
+
+

Synopsis

+
struct              Gstedgedetect;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----Gstedgedetect
+
+
+
+

Properties

+
+  "aperture"                 gint                  : Read / Write
+  "mask"                     gboolean              : Read / Write
+  "threshold1"               gint                  : Read / Write
+  "threshold2"               gint                  : Read / Write
+
+
+
+

Description

+

+FIXME:Describe edgedetect here. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc ! decodebin ! ffmpegcolorspace ! edgedetect ! ffmpegcolorspace ! xvimagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Michael Sheldon <mike@mikeasoft.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct Gstedgedetect

+
struct Gstedgedetect;
+

+

+
+
+
+

Property Details

+
+

The "aperture" property

+
  "aperture"                 gint                  : Read / Write
+

Aperture size for Sobel operator (Must be either 3, 5 or 7.

+

Allowed values: [3,7]

+

Default value: 3

+
+
+
+

The "mask" property

+
  "mask"                     gboolean              : Read / Write
+

Sets whether the detected edges should be used as a mask on the original input or not.

+

Default value: TRUE

+
+
+
+

The "threshold1" property

+
  "threshold1"               gint                  : Read / Write
+

Threshold value for canny edge detection.

+

Allowed values: [0,1000]

+

Default value: 50

+
+
+
+

The "threshold2" property

+
  "threshold2"               gint                  : Read / Write
+

Second threshold value for canny edge detection.

+

Allowed values: [0,1000]

+

Default value: 150

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-exclusion.html b/docs/plugins/html/gst-plugins-bad-plugins-exclusion.html new file mode 100644 index 0000000..62e9c33 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-exclusion.html @@ -0,0 +1,201 @@ + + + + +exclusion + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

exclusion

+

exclusion — Exclusion exclodes the colors in the video signal.

+
+
+

Synopsis

+
struct              GstExclusion;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstExclusion
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+  "factor"                   guint                 : Read / Write
+
+
+
+

Description

+

+Exclusion saturates the colors of a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! exclusion ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of exclusion on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstExclusion

+
struct GstExclusion;
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "factor" property

+
  "factor"                   guint                 : Read / Write
+

Exclusion factor parameter.

+

Allowed values: <= 175

+

Default value: 175

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-faac.html b/docs/plugins/html/gst-plugins-bad-plugins-faac.html new file mode 100644 index 0000000..120efb3 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-faac.html @@ -0,0 +1,247 @@ + + + + +faac + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

faac

+

faac — Free MPEG-2/4 AAC encoder

+
+
+

Synopsis

+
struct              GstFaac;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstFaac
+
+
+
+

Implemented Interfaces

+

+GstFaac implements + GstPreset.

+
+
+

Properties

+
+  "bitrate"                  gint                  : Read / Write
+  "midside"                  gboolean              : Read / Write
+  "outputformat"             GstFaacOutputFormat   : Read / Write
+  "profile"                  GstFaacProfile        : Read / Write
+  "shortctl"                 GstFaacShortCtl       : Read / Write
+  "tns"                      gboolean              : Read / Write
+
+
+
+

Description

+

+faac encodes raw audio to AAC (MPEG-4 part 3) streams. +

+

+The "outputformat" property determines whether or not the +AAC data needs additional framing provided by a container +(such as Matroska or Quicktime). +This is required for raw data, whereas ADTS formatted AAC already provides +framing and needs no container. +

+

+The "profile" property determines the AAC profile, where the default +LC (Low Complexity) profile is most widely used, supported and suitable for +general use. The other profiles are very rarely used and often not supported. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch audiotestsrc wave=sine num-buffers=100 ! audioconvert ! faac ! matroskamux ! filesink location=sine.mkv
+
+ Encode a sine beep as aac and write to matroska container. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ faac +

author

Ronald Bultje <rbultje@ronald.bitfreak.net>

class

Codec/Encoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/mpeg, mpegversion=(int){ 4, 2 }, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 96000 ], stream-format=(string){ adts, raw }
+
+
+

+

+
+
+

Details

+
+

struct GstFaac

+
struct GstFaac;
+

+

+
+
+
+

Property Details

+
+

The "bitrate" property

+
  "bitrate"                  gint                  : Read / Write
+

Bitrate in bits/sec.

+

Allowed values: [8000,320000]

+

Default value: 128000

+
+
+
+

The "midside" property

+
  "midside"                  gboolean              : Read / Write
+

Allow mid/side encoding.

+

Default value: TRUE

+
+
+
+

The "outputformat" property

+
  "outputformat"             GstFaacOutputFormat   : Read / Write
+

Format of output frames.

+

Default value: OUTPUTFORMAT_RAW

+
+
+
+

The "profile" property

+
  "profile"                  GstFaacProfile        : Read / Write
+

MPEG/AAC encoding profile.

+

Default value: LC

+
+
+
+

The "shortctl" property

+
  "shortctl"                 GstFaacShortCtl       : Read / Write
+

Block type encorcing.

+

Default value: SHORTCTL_NORMAL

+
+
+
+

The "tns" property

+
  "tns"                      gboolean              : Read / Write
+

Use temporal noise shaping.

+

Default value: FALSE

+
+
+
+

See Also

+faad +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-faad.html b/docs/plugins/html/gst-plugins-bad-plugins-faad.html new file mode 100644 index 0000000..0aa7bc2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-faad.html @@ -0,0 +1,176 @@ + + + + +faad + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

faad

+

faad — Free MPEG-2/4 AAC decoder

+
+
+

Synopsis

+
                    GstFaad;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstFaad
+
+
+
+

Description

+

+faad decodes AAC (MPEG-4 part 3) stream. +

+

+

+
+

Example launch lines

+
+ + + + + + + +
1
gst-launch filesrc location=example.mp4 ! qtdemux ! faad ! audioconvert ! audioresample ! autoaudiosink
+
+ Play aac from mp4 file. +
+ + + + + + + +
1
gst-launch filesrc location=example.adts ! faad ! audioconvert ! audioresample ! autoaudiosink
+
+ Play standalone aac bitstream. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ faad +

author

Ronald Bultje <rbultje@ronald.bitfreak.net>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/mpeg, mpegversion=(int){ 2, 4 }
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 8 ]
+
+
+

+

+
+
+

Details

+
+

GstFaad

+
typedef struct _GstFaad GstFaad;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-faceblur.html b/docs/plugins/html/gst-plugins-bad-plugins-faceblur.html new file mode 100644 index 0000000..3d85a3d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-faceblur.html @@ -0,0 +1,182 @@ + + + + +faceblur + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

faceblur

+

faceblur — Blurs faces in images and videos

+
+
+

Synopsis

+
struct              Gstfaceblur;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----Gstfaceblur
+
+
+
+

Properties

+
+  "profile"                  gchar*                : Read / Write
+
+
+
+

Description

+

+FIXME:Describe faceblur here. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc ! decodebin ! ffmpegcolorspace ! faceblur ! ffmpegcolorspace ! xvimagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Michael Sheldon <mike@mikeasoft.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct Gstfaceblur

+
struct Gstfaceblur;
+

+

+
+
+
+

Property Details

+
+

The "profile" property

+
  "profile"                  gchar*                : Read / Write
+

Location of Haar cascade file to use for face blurion.

+

Default value: "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-facedetect.html b/docs/plugins/html/gst-plugins-bad-plugins-facedetect.html new file mode 100644 index 0000000..83e2de0 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-facedetect.html @@ -0,0 +1,246 @@ + + + + +facedetect + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

facedetect

+

facedetect — Performs face detection on videos and images, providing detected positions via bus messages

+
+
+

Synopsis

+
struct              Gstfaceblur;
+struct              Gstfacedetect;
+
+
+
+

Properties

+
+  "display"                  gboolean              : Read / Write
+  "profile"                  gchar*                : Read / Write
+  "flags"                    GstOpencvFaceDetectFlags  : Read / Write
+  "min-neighbors"            gint                  : Read / Write
+  "min-size-height"          gint                  : Read / Write
+  "min-size-width"           gint                  : Read / Write
+  "scale-factor"             gdouble               : Read / Write
+
+
+
+

Description

+

+FIXME:Describe facedetect here. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc ! decodebin ! ffmpegcolorspace ! facedetect ! ffmpegcolorspace ! xvimagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Michael Sheldon <mike@mikeasoft.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb
+
+
+

+

+
+
+

Details

+
+

struct Gstfaceblur

+
struct Gstfaceblur;
+

+

+
+
+
+

struct Gstfacedetect

+
struct Gstfacedetect {
+  GstOpencvVideoFilter element;
+
+  gboolean display;
+
+  gchar *profile;
+  gdouble scale_factor;
+  gint min_neighbors;
+  gint flags;
+  gint min_size_width;
+  gint min_size_height;
+
+  IplImage *cvGray;
+  CvHaarClassifierCascade *cvCascade;
+  CvMemStorage *cvStorage;
+};
+
+

+

+
+
+
+

Property Details

+
+

The "display" property

+
  "display"                  gboolean              : Read / Write
+

Sets whether the detected faces should be highlighted in the output.

+

Default value: TRUE

+
+
+
+

The "profile" property

+
  "profile"                  gchar*                : Read / Write
+

Location of Haar cascade file to use for face detection.

+

Default value: "/usr/share/opencv/haarcascades/haarcascade_frontalface_default.xml"

+
+
+
+

The "flags" property

+
  "flags"                    GstOpencvFaceDetectFlags  : Read / Write
+

Flags to cvHaarDetectObjects.

+
+
+
+

The "min-neighbors" property

+
  "min-neighbors"            gint                  : Read / Write
+

Minimum number (minus 1) of neighbor rectangles that makes up an object.

+

Allowed values: >= 0

+

Default value: 3

+
+
+
+

The "min-size-height" property

+
  "min-size-height"          gint                  : Read / Write
+

Minimum window height size.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "min-size-width" property

+
  "min-size-width"           gint                  : Read / Write
+

Minimum window width size.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "scale-factor" property

+
  "scale-factor"             gdouble               : Read / Write
+

Factor by which the windows is scaled after each scan.

+

Allowed values: [1.1,10]

+

Default value: 1.1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-festival.html b/docs/plugins/html/gst-plugins-bad-plugins-festival.html new file mode 100644 index 0000000..0c45a44 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-festival.html @@ -0,0 +1,170 @@ + + + + +festival + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

festival

+

festival — Synthesizes plain text into audio

+
+
+

Synopsis

+
struct              GstFestival;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstFestival
+
+
+
+

Description

+

+This element connects to a +festival +server process and uses it to synthesize speech. Festival need to run already +in server mode, started as

+
festival --server
+

+

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
echo 'Hello G-Streamer!' | gst-launch fdsrc fd=0 ! festival ! wavparse ! audioconvert ! alsasink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ festival +

author

Wim Taymans <wim.taymans@chello.be>

class

Filter/Effect/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

text/plain
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-wav
+
+
+

+

+
+
+

Details

+
+

struct GstFestival

+
struct GstFestival;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-fisheye.html b/docs/plugins/html/gst-plugins-bad-plugins-fisheye.html new file mode 100644 index 0000000..9b1d4ce --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-fisheye.html @@ -0,0 +1,251 @@ + + + + +fisheye + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

fisheye

+

fisheye — Split the image into two halves and reflect one over each other

+
+
+

Synopsis

+
struct              GstFisheye;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstFisheye
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstFisheye

+
struct GstFisheye;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html b/docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html new file mode 100644 index 0000000..b7d5ec0 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-fpsdisplaysink.html @@ -0,0 +1,307 @@ + + + + +fpsdisplaysink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

fpsdisplaysink

+

fpsdisplaysink — Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout

+
+
+

Synopsis

+
struct              GstFPSDisplaySink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBin
+                     +----GstFPSDisplaySink
+
+
+
+

Implemented Interfaces

+

+GstFPSDisplaySink implements + GstChildProxy.

+
+
+

Properties

+
+  "sync"                     gboolean              : Read / Write
+  "text-overlay"             gboolean              : Read / Write
+  "video-sink"               GstElement*           : Read / Write
+  "fps-update-interval"      gint                  : Read / Write
+  "max-fps"                  gdouble               : Read
+  "min-fps"                  gdouble               : Read
+  "signal-fps-measurements"  gboolean              : Read / Write
+  "frames-dropped"           guint                 : Read
+  "frames-rendered"          guint                 : Read
+  "last-message"             gchar*                : Read
+  "silent"                   gboolean              : Read / Write
+
+
+
+

Signals

+
+  "fps-measurements"                               : Run Last
+
+
+
+

Description

+

+Can display the current and average framerate as a testoverlay or on stdout. +

+

+

+
+

Example launch lines

+
+ + + + + + + +
1
+2
+3
+4
gst-launch videotestsrc ! fpsdisplaysink
+gst-launch videotestsrc ! fpsdisplaysink text-overlay=false
+gst-launch filesrc location=video.avi ! decodebin2 name=d ! queue ! fpsdisplaysink d. ! queue ! fakesink sync=true
+gst-launch playbin2 uri=file:///path/to/video.avi video-sink="fpsdisplaysink" audio-sink=fakesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ debugutilsbad +

author

Zeeshan Ali <zeeshan.ali@nokia.com>, Stefan Kost <stefan.kost@nokia.com>

class

Sink/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstFPSDisplaySink

+
struct GstFPSDisplaySink;
+

+

+
+
+
+

Property Details

+
+

The "sync" property

+
  "sync"                     gboolean              : Read / Write
+

Sync on the clock (if the internally used sink doesn't have this property it will be ignored.

+

Default value: TRUE

+
+
+
+

The "text-overlay" property

+
  "text-overlay"             gboolean              : Read / Write
+

Whether to use text-overlay.

+

Default value: TRUE

+
+
+
+

The "video-sink" property

+
  "video-sink"               GstElement*           : Read / Write
+

Video sink to use (Must only be called on NULL state).

+
+
+
+

The "fps-update-interval" property

+
  "fps-update-interval"      gint                  : Read / Write
+

Time between consecutive frames per second measures and update (in ms). Should be set on NULL state.

+

Allowed values: >= 1

+

Default value: 500

+
+
+
+

The "max-fps" property

+
  "max-fps"                  gdouble               : Read
+

Maximum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done.

+

Allowed values: >= -1

+

Default value: -1

+
+
+
+

The "min-fps" property

+
  "min-fps"                  gdouble               : Read
+

Minimum fps rate measured. Reset when going from NULL to READY.-1 means no measurement has yet been done.

+

Allowed values: >= -1

+

Default value: -1

+
+
+
+

The "signal-fps-measurements" property

+
  "signal-fps-measurements"  gboolean              : Read / Write
+

If the fps-measurements signal should be emited.

+

Default value: FALSE

+
+
+
+

The "frames-dropped" property

+
  "frames-dropped"           guint                 : Read
+

Number of frames dropped by the sink.

+

Default value: 0

+
+
+
+

The "frames-rendered" property

+
  "frames-rendered"          guint                 : Read
+

Number of frames rendered.

+

Default value: 0

+
+
+
+

The "last-message" property

+
  "last-message"             gchar*                : Read
+

The message describing current status.

+

Default value: NULL

+
+
+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Don't produce last_message events.

+

Default value: FALSE

+
+
+
+

Signal Details

+
+

The "fps-measurements" signal

+
void                user_function                      (GstFPSDisplaySink *fpsdisplaysink,
+                                                        gdouble            fps,
+                                                        gdouble            droprate,
+                                                        gdouble            avgfps,
+                                                        gpointer           user_data)           : Run Last
+

+Signals the application about the measured fps +

+
++ + + + + + + + + + + + + + + + + + + + + + +

fpsdisplaysink :

a GstFPSDisplaySink +

fps :

The current measured fps

droprate :

The rate at which buffers are being dropped

avgfps :

The average fps

user_data :

user data set when the signal handler was connected.
+

Since 0.10.20

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-freeze.html b/docs/plugins/html/gst-plugins-bad-plugins-freeze.html new file mode 100644 index 0000000..86006ce --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-freeze.html @@ -0,0 +1,186 @@ + + + + +freeze + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

freeze

+

freeze — Makes a stream from buffers of data

+
+
+

Synopsis

+
struct              GstFreeze;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstFreeze
+
+
+
+

Properties

+
+  "max-buffers"              guint                 : Read / Write
+
+
+
+

Description

+

+Makes a stream from buffers of data. +

+

+

+
+

Example launch line

+

+

+
+ + + + + + + +
1
gst-launch-0.10 filesrc location=gnome-home.png blocksize=4135 !  pngdec ! freeze ! ffmpegcolorspace ! xvimagesink
+
+ +

Produces a video stream from one picture. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ freeze +

author

Gergely Nagy <gergely.nagy@neteyes.hu>, Renato Filho <renato.filho@indt.org.br>

class

Generic
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstFreeze

+
struct GstFreeze;
+

+

+
+
+
+

Property Details

+
+

The "max-buffers" property

+
  "max-buffers"              guint                 : Read / Write
+

Maximum number of buffers.

+

Default value: 1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html b/docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html new file mode 100644 index 0000000..e111f3a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-gaussianblur.html @@ -0,0 +1,165 @@ + + + + +gaussianblur + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

gaussianblur

+

gaussianblur — Perform Gaussian blur/sharpen on a video

+
+
+

Synopsis

+
typedef             GaussBlur;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GaussBlur
+
+
+
+

Properties

+
+  "sigma"                    gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Jan Schmidt <thaytan@noraisin.net>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

GaussBlur

+
typedef struct GaussBlur GaussBlur;
+
+

+

+
+
+
+

Property Details

+
+

The "sigma" property

+
  "sigma"                    gdouble               : Read / Write
+

Sigma value for gaussian blur (negative for sharpen).

+

Allowed values: [-20,20]

+

Default value: 1.2

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html b/docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html new file mode 100644 index 0000000..5954ae5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-ivfparse.html @@ -0,0 +1,144 @@ + + + + +ivfparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

ivfparse

+

ivfparse — Demuxes a IVF stream

+
+
+

Synopsis

+
struct              GstIvfParse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstIvfParse
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ ivfparse +

author

Philip Jägenstedt <philipj@opera.com>

class

Codec/Demuxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-ivf
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstIvfParse

+
struct GstIvfParse;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html b/docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html new file mode 100644 index 0000000..5031fbc --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-jpegparse.html @@ -0,0 +1,230 @@ + + + + +jpegparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

jpegparse

+

jpegparse — JPEG parser

+
+
+

Synopsis

+
struct              GstJpegParse;
+
+struct              GstJpegParseClass;
+#define             GST_JPEG_PARSE                      (obj)
+#define             GST_JPEG_PARSE_CLASS                (klass)
+#define             GST_IS_JPEG_PARSE                   (obj)
+#define             GST_IS_JPEG_PARSE_CLASS             (klass)
+#define             GST_TYPE_JPEG_PARSE
+GType               gst_jpeg_parse_get_type             (void);
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstJpegParse
+
+
+
+

Description

+

+Parses a JPEG stream into JPEG images. It looks for EOI boundaries to +split a continuous stream into single-frame buffers. Also reads the +image header searching for image properties such as width and height +among others. Jpegparse can also extract metadata (e.g. xmp). +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v souphttpsrc location=... ! jpegparse ! matroskamux ! filesink location=...
+
+ +The above pipeline fetches a motion JPEG stream from an IP camera over +HTTP and stores it in a matroska file. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ jpegformat +

author

Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be>

class

Video/Parser
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

image/jpeg, parsed=(boolean)false
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

image/jpeg, format=(fourcc){ I420, Y41B, UYVY, YV12 }, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], interlaced=(boolean){ true, false }, framerate=(fraction)[ 0/1, 2147483647/1 ], parsed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstJpegParse

+
struct GstJpegParse;
+

+

+
+
+
+

struct GstJpegParseClass

+
struct GstJpegParseClass {
+  GstElementClass  parent_class;
+};
+
+

+

+
+
+
+

GST_JPEG_PARSE()

+
#define             GST_JPEG_PARSE(obj)
+

+

+
+
+
+

GST_JPEG_PARSE_CLASS()

+
#define             GST_JPEG_PARSE_CLASS(klass)
+

+

+
+
+
+

GST_IS_JPEG_PARSE()

+
#define             GST_IS_JPEG_PARSE(obj)
+

+

+
+
+
+

GST_IS_JPEG_PARSE_CLASS()

+
#define             GST_IS_JPEG_PARSE_CLASS(klass)
+

+

+
+
+
+

GST_TYPE_JPEG_PARSE

+
#define             GST_TYPE_JPEG_PARSE
+

+

+
+
+
+

gst_jpeg_parse_get_type ()

+
GType               gst_jpeg_parse_get_type             (void);
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html b/docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html new file mode 100644 index 0000000..2cbe98b --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-kaleidoscope.html @@ -0,0 +1,286 @@ + + + + +kaleidoscope + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

kaleidoscope

+

kaleidoscope — Applies 'kaleidoscope' geometric transform to the image

+
+
+

Synopsis

+
struct              GstKaleidoscope;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstKaleidoscope
+
+
+
+

Properties

+
+  "angle"                    gdouble               : Read / Write
+  "angle2"                   gdouble               : Read / Write
+  "sides"                    gint                  : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstKaleidoscope

+
struct GstKaleidoscope;
+

+

+
+
+
+

Property Details

+
+

The "angle" property

+
  "angle"                    gdouble               : Read / Write
+

primary angle in radians of the kaleidoscope effect.

+

Default value: 0

+
+
+
+

The "angle2" property

+
  "angle2"                   gdouble               : Read / Write
+

secondary angle in radians of the kaleidoscope effect.

+

Default value: 0

+
+
+
+

The "sides" property

+
  "sides"                    gint                  : Read / Write
+

Number of sides of the kaleidoscope.

+

Allowed values: >= 2

+

Default value: 3

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-katedec.html b/docs/plugins/html/gst-plugins-bad-plugins-katedec.html new file mode 100644 index 0000000..8d55b52 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-katedec.html @@ -0,0 +1,240 @@ + + + + +katedec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

katedec

+

katedec — Decodes Kate text streams

+
+
+

Synopsis

+
struct              GstKateDec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstKateDec
+
+
+
+

Properties

+
+  "category"                 gchar*                : Read
+  "language"                 gchar*                : Read
+  "original-canvas-height"   gint                  : Read
+  "original-canvas-width"    gint                  : Read
+  "remove-markup"            gboolean              : Read / Write
+
+
+
+

Description

+

+

+
+

Example pipeline

+

+This element decodes Kate streams +Kate is a free codec +for text based data, such as subtitles. Any number of kate streams can be +embedded in an Ogg stream. +

+

+libkate (see above url) is needed to build this plugin. +

+

+This explicitely decodes a Kate stream: +

+
+gst-launch filesrc location=test.ogg ! oggdemux ! katedec ! fakesink silent=TRUE
+
+

+

+

+This will automatically detect and use any Kate streams multiplexed +in an Ogg stream: +

+
+gst-launch playbin uri=file:///tmp/test.ogg
+
+

+

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ kate +

author

Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

class

Codec/Decoder/Subtitle
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

subtitle/x-kate
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

text/plain

text/x-pango-markup

video/x-dvd-subpicture
+
+
+

+

+
+
+

Details

+
+

struct GstKateDec

+
struct GstKateDec;
+

+

+
+
+
+

Property Details

+
+

The "category" property

+
  "category"                 gchar*                : Read
+

The category of the stream.

+

Default value: ""

+
+
+
+

The "language" property

+
  "language"                 gchar*                : Read
+

The language of the stream.

+

Default value: ""

+
+
+
+

The "original-canvas-height" property

+
  "original-canvas-height"   gint                  : Read
+

The canvas height this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "original-canvas-width" property

+
  "original-canvas-width"    gint                  : Read
+

The canvas width this stream was authored for.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "remove-markup" property

+
  "remove-markup"            gboolean              : Read / Write
+

Remove markup from decoded text ?.

+

Default value: FALSE

+
+
+
+

See Also

+oggdemux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-kateenc.html b/docs/plugins/html/gst-plugins-bad-plugins-kateenc.html new file mode 100644 index 0000000..d9ebae6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-kateenc.html @@ -0,0 +1,280 @@ + + + + +kateenc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

kateenc

+

kateenc — Encodes Kate streams from text or subpictures

+
+
+

Synopsis

+
struct              GstKateEnc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstKateEnc
+
+
+
+

Implemented Interfaces

+

+GstKateEnc implements + GstTagSetter.

+
+
+

Properties

+
+  "category"                 gchar*                : Read / Write
+  "default-spu-duration"     gfloat                : Read / Write
+  "granule-rate-denominator" gint                  : Read / Write
+  "granule-rate-numerator"   gint                  : Read / Write
+  "granule-shift"            gint                  : Read / Write
+  "keepalive-min-time"       gfloat                : Read / Write
+  "language"                 gchar*                : Read / Write
+  "original-canvas-height"   gint                  : Read / Write
+  "original-canvas-width"    gint                  : Read / Write
+
+
+
+

Description

+

+

+
+

Example pipeline

+

+This element encodes Kate streams +Kate is a free codec +for text based data, such as subtitles. Any number of kate streams can be +embedded in an Ogg stream. +

+

+libkate (see above url) is needed to build this plugin. +

+

+This encodes a DVD SPU track to a Kate stream: +

+
+gst-launch dvdreadsrc ! dvddemux ! dvdsubparse ! kateenc category=spu-subtitles ! oggmux ! filesink location=test.ogg
+
+

+

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ kate +

author

Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

class

Codec/Encoder/Subtitle
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

text/plain

text/x-pango-markup

video/x-dvd-subpicture
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

subtitle/x-kate

application/x-kate
+
+
+

+

+
+
+

Details

+
+

struct GstKateEnc

+
struct GstKateEnc;
+

+

+
+
+
+

Property Details

+
+

The "category" property

+
  "category"                 gchar*                : Read / Write
+

The category of the stream.

+

Default value: ""

+
+
+
+

The "default-spu-duration" property

+
  "default-spu-duration"     gfloat                : Read / Write
+

The assumed max duration (in seconds) of SPUs with no duration specified.

+

Allowed values: >= 0

+

Default value: 1.5

+
+
+
+

The "granule-rate-denominator" property

+
  "granule-rate-denominator" gint                  : Read / Write
+

The denominator of the granule rate.

+

Allowed values: >= 1

+

Default value: 1000

+
+
+
+

The "granule-rate-numerator" property

+
  "granule-rate-numerator"   gint                  : Read / Write
+

The numerator of the granule rate.

+

Allowed values: >= 1

+

Default value: 1

+
+
+
+

The "granule-shift" property

+
  "granule-shift"            gint                  : Read / Write
+

The granule shift.

+

Allowed values: [0,64]

+

Default value: 32

+
+
+
+

The "keepalive-min-time" property

+
  "keepalive-min-time"       gfloat                : Read / Write
+

Minimum time to emit keepalive packets (0 disables keepalive packets).

+

Allowed values: >= 0

+

Default value: 2.5

+
+
+
+

The "language" property

+
  "language"                 gchar*                : Read / Write
+

The language of the stream (e.g. "fr" or "fr_FR" for French).

+

Default value: ""

+
+
+
+

The "original-canvas-height" property

+
  "original-canvas-height"   gint                  : Read / Write
+

The height of the canvas this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "original-canvas-width" property

+
  "original-canvas-width"    gint                  : Read / Write
+

The width of the canvas this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

See Also

+oggmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-kateparse.html b/docs/plugins/html/gst-plugins-bad-plugins-kateparse.html new file mode 100644 index 0000000..a7d228f --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-kateparse.html @@ -0,0 +1,197 @@ + + + + +kateparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

kateparse

+

kateparse — parses kate streams

+
+
+

Synopsis

+
struct              GstKateParse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstKateParse
+                     +----GstKateTag
+
+
+
+

Description

+

+

+
+

Example pipelines

+

+The kateparse element will parse the header packets of the Kate +stream and put them as the streamheader in the caps. This is used in the +multifdsink case where you want to stream live kate streams to multiple +clients, each client has to receive the streamheaders first before they can +consume the kate packets. +

+

+This element also makes sure that the buffers that it pushes out are properly +timestamped and that their offset and offset_end are set. The buffers that +kateparse outputs have all of the metadata that oggmux expects to receive, +which allows you to (for example) remux an ogg/kate file. +

+

+

+
+gst-launch -v filesrc location=kate.ogg ! oggdemux ! kateparse ! fakesink
+
+

+This pipeline shows that the streamheader is set in the caps, and that each +buffer has the timestamp, duration, offset, and offset_end set. +

+

+

+
+gst-launch filesrc location=kate.ogg ! oggdemux ! kateparse \
+           ! oggmux ! filesink location=kate-remuxed.ogg
+
+

+This pipeline shows remuxing. kate-remuxed.ogg might not be exactly the same +as kate.ogg, but they should produce exactly the same decoded data. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ kate +

author

Vincent Penquerc'h <ogg.k.ogg.k at googlemail dot com>

class

Codec/Parser/Subtitle
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

subtitle/x-kate

application/x-kate
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

subtitle/x-kate

application/x-kate
+
+
+

+

+
+
+

Details

+
+

struct GstKateParse

+
struct GstKateParse;
+

+Opaque data structure. +

+
+
+
+

See Also

+katedec, vorbisparse, oggdemux, theoraparse +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-katetag.html b/docs/plugins/html/gst-plugins-bad-plugins-katetag.html new file mode 100644 index 0000000..76ab82b --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-katetag.html @@ -0,0 +1,254 @@ + + + + +katetag + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

katetag

+

katetag — retags kate streams

+
+
+

Synopsis

+
struct              GstKateTag;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstKateParse
+                     +----GstKateTag
+
+
+
+

Implemented Interfaces

+

+GstKateTag implements + GstTagSetter.

+
+
+

Properties

+
+  "category"                 gchar*                : Read / Write
+  "language"                 gchar*                : Read / Write
+  "original-canvas-height"   gint                  : Read / Write
+  "original-canvas-width"    gint                  : Read / Write
+
+
+
+

Description

+

+

+
+

Example pipelines

+

+The katetag element can change the tag contained within a raw +kate stream. Specifically, it modifies the comments header packet +of the kate stream, as well as the language and category of the +kate stream. +

+

+The element will also process the stream as the kateparse element does +so it can be used when remuxing an Ogg Kate stream, without additional +elements. +

+

+Applications can set the tags to write using the GstTagSetter interface. +Tags contained within the kate stream will be picked up +automatically (and merged according to the merge mode set via the tag +setter interface). +

+

+This element is only useful with gst-launch for modifying the language +and/or category (which are properties of the stream located in the kate +beginning of stream header), because it does not support setting the tags +on a GstTagSetter interface. Conceptually, the element will usually be +used like: +

+
+gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag ! oggmux ! filesink location=bar.ogg
+
+

+

+

+This pipeline will set the language and category of the stream to the +given values: +

+
+gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag language=pt_BR category=subtitles ! oggmux ! filesink location=bar.ogg
+
+

+

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ kate +

author

Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

class

Formatter/Metadata
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

subtitle/x-kate

application/x-kate
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

subtitle/x-kate

application/x-kate
+
+
+

+

+
+
+

Details

+
+

struct GstKateTag

+
struct GstKateTag;
+

+Opaque data structure. +

+
+
+
+

Property Details

+
+

The "category" property

+
  "category"                 gchar*                : Read / Write
+

Set the category of the stream.

+

Default value: ""

+
+
+
+

The "language" property

+
  "language"                 gchar*                : Read / Write
+

Set the language of the stream.

+

Default value: ""

+
+
+
+

The "original-canvas-height" property

+
  "original-canvas-height"   gint                  : Read / Write
+

Set the height of the canvas this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "original-canvas-width" property

+
  "original-canvas-width"    gint                  : Read / Write
+

Set the width of the canvas this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

See Also

+oggdemux, oggmux, kateparse, GstTagSetter +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-ladspa.html b/docs/plugins/html/gst-plugins-bad-plugins-ladspa.html new file mode 100644 index 0000000..c81a07e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-ladspa.html @@ -0,0 +1,78 @@ + + + + +ladspa + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

ladspa

+

ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API)

+
+
+

Synopsis

+
struct              GstLADSPA;
+
+
+
+

Description

+

+The ladspa (Linux Audio Developer's Simple Plugin API) element is a bridge +for plugins using the ladspa API. +It scans all installed ladspa plugins and registers them as gstreamer +elements. If available it can also parse lrdf files and use the metadata for +element classification. +

+

+

+
+
+

Details

+
+

struct GstLADSPA

+
struct GstLADSPA {
+  GstSignalProcessor parent;
+
+  LADSPA_Descriptor *descriptor;
+  LADSPA_Handle *handle;
+
+  gboolean activated;
+  gboolean inplace_broken;
+};
+
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html b/docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html new file mode 100644 index 0000000..1dd18fd --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-legacyresample.html @@ -0,0 +1,214 @@ + + + + +legacyresample + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

legacyresample

+

legacyresample — Resample audio

+
+
+

Synopsis

+
struct              GstLegacyresample;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstLegacyresample
+
+
+
+

Properties

+
+  "filter-length"            gint                  : Read / Write / Construct
+
+
+
+

Description

+

+legacyresample resamples raw audio buffers to different sample rates using +a configurable windowing function to enhance quality. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v filesrc location=sine.ogg ! oggdemux ! vorbisdec ! audioconvert ! legacyresample ! audio/x-raw-int, rate=8000 ! alsasink
+
+ Decode an Ogg/Vorbis downsample to 8Khz and play sound through alsa. +To create the Ogg/Vorbis file refer to the documentation of vorbisenc. +
+

+

+

+Last reviewed on 2006-03-02 (0.10.4) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ legacyresample +

author

David Schleef <ds@schleef.org>

class

Filter/Converter/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)64
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)64
+
+
+

+

+
+
+

Details

+
+

struct GstLegacyresample

+
struct GstLegacyresample;
+

+Opaque data structure. +

+
+
+
+

Property Details

+
+

The "filter-length" property

+
  "filter-length"            gint                  : Read / Write / Construct
+

Length of the resample filter.

+

Allowed values: >= 0

+

Default value: 16

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-liveadder.html b/docs/plugins/html/gst-plugins-bad-plugins-liveadder.html new file mode 100644 index 0000000..55cc34e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-liveadder.html @@ -0,0 +1,185 @@ + + + + +liveadder + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

liveadder

+

liveadder — Mixes live/discontinuous audio streams

+
+
+

Synopsis

+
struct              GstLiveAdder;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstLiveAdder
+
+
+
+

Properties

+
+  "latency"                  guint                 : Read / Write
+
+
+
+

Description

+

+The live adder allows to mix several streams into one by adding the data. +Mixed data is clamped to the min/max values of the data format. +

+

+Unlike the adder, the liveadder mixes the streams according the their +timestamps and waits for some milli-seconds before trying doing the mixing. +

+

+Last reviewed on 2008-02-10 (0.10.11) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ liveadder +

author

Olivier Crete <olivier.crete@collabora.co.uk>

class

Generic/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink%d

direction

sink

presence

request

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
+
+

+

+
+
+

Details

+
+

struct GstLiveAdder

+
struct GstLiveAdder;
+

+The adder object structure. +

+
+
+
+

Property Details

+
+

The "latency" property

+
  "latency"                  guint                 : Read / Write
+

Amount of data to buffer.

+

Default value: 60

+
+
+
+

See Also

+adder +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-marble.html b/docs/plugins/html/gst-plugins-bad-plugins-marble.html new file mode 100644 index 0000000..969a595 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-marble.html @@ -0,0 +1,296 @@ + + + + +marble + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

marble

+

marble — Applies a marbling effect to the image

+
+
+

Synopsis

+
struct              GstMarble;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstMarble
+
+
+
+

Properties

+
+  "amount"                   gdouble               : Read / Write
+  "turbulence"               gdouble               : Read / Write
+  "x-scale"                  gdouble               : Read / Write
+  "y-scale"                  gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstMarble

+
struct GstMarble;
+

+

+
+
+
+

Property Details

+
+

The "amount" property

+
  "amount"                   gdouble               : Read / Write
+

Amount of effect.

+

Allowed values: [0,1]

+

Default value: 1

+
+
+
+

The "turbulence" property

+
  "turbulence"               gdouble               : Read / Write
+

Turbulence of the effect.

+

Allowed values: [0,1]

+

Default value: 1

+
+
+
+

The "x-scale" property

+
  "x-scale"                  gdouble               : Read / Write
+

X scale of the texture.

+

Allowed values: >= 0

+

Default value: 4

+
+
+
+

The "y-scale" property

+
  "y-scale"                  gdouble               : Read / Write
+

Y scale of the texture.

+

Allowed values: >= 0

+

Default value: 4

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mimdec.html b/docs/plugins/html/gst-plugins-bad-plugins-mimdec.html new file mode 100644 index 0000000..d52a818 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mimdec.html @@ -0,0 +1,159 @@ + + + + +mimdec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mimdec

+

mimdec — MSN Messenger compatible Mimic video decoder element

+
+
+

Synopsis

+
struct              GstMimDec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMimDec
+
+
+
+

Description

+

+The MIMIC codec is used by MSN Messenger's webcam support. It consumes the +TCP header for the MIMIC codec. +

+

+Its fourcc is ML20. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mimic +

author

Andre Moreira Magalhaes <andre.magalhaes@indt.org.br>, Rob Taylor <robtaylor@fastmail.fm>, Philippe Khalaf <burger@speedy.org>, Ole André Vadla Ravnås <oleavr@gmail.com>,Olivier Crête <olivier.crete@collabora.co.uk

class

Codec/Decoder/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-mimic
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)0/1, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)320, height=(int)240

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)0/1, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)160, height=(int)120
+
+
+

+

+
+
+

Details

+
+

struct GstMimDec

+
struct GstMimDec;
+

+

+
+
+
+

See Also

+mimenc +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mimenc.html b/docs/plugins/html/gst-plugins-bad-plugins-mimenc.html new file mode 100644 index 0000000..35d962a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mimenc.html @@ -0,0 +1,184 @@ + + + + +mimenc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mimenc

+

mimenc — MSN Messenger compatible Mimic video encoder element

+
+
+

Synopsis

+
struct              GstMimEnc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMimEnc
+
+
+
+

Properties

+
+  "paused-mode"              gboolean              : Read / Write
+
+
+
+

Description

+

+The MIMIC codec is used by MSN Messenger's webcam support. It creates the +TCP header for the MIMIC codec. +

+

+When using it to communicate directly with MSN Messenger, if the sender +wants to stop sending, he has to send a special buffer every 4 seconds. +When the "paused-mode" property is set to TRUE, if the element receives no +buffer on its sink pad for 4 seconds, it will produced a special paused +frame and will continue doing so every 4 seconds until a new buffer is +u received on its sink pad. +

+

+Its fourcc is ML20. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mimic +

author

Andre Moreira Magalhaes <andre.magalhaes@indt.org.br>,Olivier Crête <olivier.crete@collabora.co.uk

class

Codec/Encoder/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)[ 1/1, 30/1 ], red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)320, height=(int)240

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)[ 1/1, 30/1 ], red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)160, height=(int)120
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-mimic
+
+
+

+

+
+
+

Details

+
+

struct GstMimEnc

+
struct GstMimEnc;
+

+

+
+
+
+

Property Details

+
+

The "paused-mode" property

+
  "paused-mode"              gboolean              : Read / Write
+

If enabled, empty frames will be generated every 4 seconds when no data is received.

+

Default value: FALSE

+
+
+
+

See Also

+mimdec +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mirror.html b/docs/plugins/html/gst-plugins-bad-plugins-mirror.html new file mode 100644 index 0000000..8a4cba8 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mirror.html @@ -0,0 +1,268 @@ + + + + +mirror + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mirror

+

mirror — Split the image into two halves and reflect one over each other

+
+
+

Synopsis

+
struct              GstMirror;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstMirror
+
+
+
+

Properties

+
+  "mode"                     GstMirrorMode         : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstMirror

+
struct GstMirror;
+

+

+
+
+
+

Property Details

+
+

The "mode" property

+
  "mode"                     GstMirrorMode         : Read / Write
+

How to split the video frame and which side reflect.

+

Default value: Split horizontally and reflect left into right

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-modplug.html b/docs/plugins/html/gst-plugins-bad-plugins-modplug.html new file mode 100644 index 0000000..48f5380 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-modplug.html @@ -0,0 +1,301 @@ + + + + +modplug + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

modplug

+

modplug — Module decoder based on modplug engine

+
+
+

Synopsis

+
                    GstModPlug;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstModPlug
+
+
+
+

Properties

+
+  "megabass"                 gboolean              : Read / Write
+  "megabass-amount"          gint                  : Read / Write
+  "megabass-range"           gint                  : Read / Write
+  "noise-reduction"          gboolean              : Read / Write
+  "oversamp"                 gboolean              : Read / Write
+  "reverb"                   gboolean              : Read / Write
+  "reverb-delay"             gint                  : Read / Write
+  "reverb-depth"             gint                  : Read / Write
+  "songname"                 gchar*                : Read
+  "surround"                 gboolean              : Read / Write
+  "surround-delay"           gint                  : Read / Write
+  "surround-depth"           gint                  : Read / Write
+
+
+
+

Description

+

+Modplug uses the modplug +library to decode tracked music in the MOD/S3M/XM/IT and related formats. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch -v filesrc location=1990s-nostalgia.xm ! modplug ! audioconvert ! alsasink
+
+ Play a FastTracker xm file. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ modplug +

author

Jeremy SIMON <jsimon13@yahoo.fr>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-mod

audio/x-xm

audio/x-it

audio/x-s3m

audio/x-stm
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]

audio/x-raw-int, endianness=(int)1234, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]
+
+
+

+

+
+
+

Details

+
+

GstModPlug

+
typedef struct _GstModPlug GstModPlug;
+

+

+
+
+
+

Property Details

+
+

The "megabass" property

+
  "megabass"                 gboolean              : Read / Write
+

Megabass.

+

Default value: FALSE

+
+
+
+

The "megabass-amount" property

+
  "megabass-amount"          gint                  : Read / Write
+

Megabass amount.

+

Allowed values: [0,100]

+

Default value: 40

+
+
+
+

The "megabass-range" property

+
  "megabass-range"           gint                  : Read / Write
+

Megabass range.

+

Allowed values: [0,100]

+

Default value: 30

+
+
+
+

The "noise-reduction" property

+
  "noise-reduction"          gboolean              : Read / Write
+

noise reduction.

+

Default value: TRUE

+
+
+
+

The "oversamp" property

+
  "oversamp"                 gboolean              : Read / Write
+

oversamp.

+

Default value: TRUE

+
+
+
+

The "reverb" property

+
  "reverb"                   gboolean              : Read / Write
+

Reverb.

+

Default value: FALSE

+
+
+
+

The "reverb-delay" property

+
  "reverb-delay"             gint                  : Read / Write
+

Reverb delay.

+

Allowed values: [0,200]

+

Default value: 100

+
+
+
+

The "reverb-depth" property

+
  "reverb-depth"             gint                  : Read / Write
+

Reverb depth.

+

Allowed values: [0,100]

+

Default value: 30

+
+
+
+

The "songname" property

+
  "songname"                 gchar*                : Read
+

The song name.

+

Default value: NULL

+
+
+
+

The "surround" property

+
  "surround"                 gboolean              : Read / Write
+

Surround.

+

Default value: TRUE

+
+
+
+

The "surround-delay" property

+
  "surround-delay"           gint                  : Read / Write
+

Surround delay.

+

Allowed values: [0,40]

+

Default value: 20

+
+
+
+

The "surround-depth" property

+
  "surround-depth"           gint                  : Read / Write
+

Surround depth.

+

Allowed values: [0,100]

+

Default value: 20

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html b/docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html new file mode 100644 index 0000000..de1bf3f --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mpeg2enc.html @@ -0,0 +1,503 @@ + + + + +mpeg2enc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpeg2enc

+

mpeg2enc — High-quality MPEG-1/2 video encoder

+
+
+

Synopsis

+
                    GstMpeg2enc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMpeg2enc
+
+
+
+

Implemented Interfaces

+

+GstMpeg2enc implements + GstPreset.

+
+
+

Properties

+
+  "altscan-mpeg2"            gboolean              : Read / Write
+  "aspect"                   GstMpeg2encAspect     : Read / Write
+  "b-per-refframe"           gint                  : Read / Write
+  "bitrate"                  gint                  : Read / Write
+  "bufsize"                  gint                  : Read / Write
+  "closed-gop"               gboolean              : Read / Write
+  "constraints"              gboolean              : Read / Write
+  "correct-svcd-hds"         gboolean              : Read / Write
+  "dualprime"                gboolean              : Read / Write
+  "dummy-svcd-sof"           gboolean              : Read / Write
+  "force-b-b-p"              gboolean              : Read / Write
+  "format"                   GstMpeg2encFormat     : Read / Write
+  "framerate"                GstMpeg2encFramerate  : Read / Write
+  "interlace-mode"           GstMpeg2encInterlaceMode  : Read / Write
+  "intra-dc-prec"            gint                  : Read / Write
+  "keep-hf"                  gboolean              : Read / Write
+  "max-gop-size"             gint                  : Read / Write
+  "min-gop-size"             gint                  : Read / Write
+  "motion-search-radius"     gint                  : Read / Write
+  "non-video-bitrate"        gint                  : Read / Write
+  "norm"                     GstMpeg2encVideoNorm  : Read / Write
+  "playback-field-order"     GstMpeg2encPlaybackFieldOrders  : Read / Write
+  "pulldown-3-2"             gboolean              : Read / Write
+  "quant-matrix"             GstMpeg2encQuantisationMatrix  : Read / Write
+  "quant-reduction-max-var"  gfloat                : Read / Write
+  "quantisation"             gint                  : Read / Write
+  "quantisation-reduction"   gfloat                : Read / Write
+  "reduce-hf"                gfloat                : Read / Write
+  "reduction-2x2"            gint                  : Read / Write
+  "reduction-4x4"            gint                  : Read / Write
+  "sequence-header-every-gop" gboolean              : Read / Write
+  "sequence-length"          gint                  : Read / Write
+  "unit-coeff-elim"          gint                  : Read / Write
+  "vcd-still-size"           gint                  : Read / Write
+
+
+
+

Description

+

+This element encodes raw video into an MPEG-1/2 elementary stream using the +mjpegtools library. +Documentation on MPEG encoding in general can be found in the +MJPEG Howto +and on the various available parameters in the documentation +of the mpeg2enc tool in particular, which shares options with this element. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc num-buffers=1000 ! mpeg2enc ! filesink location=videotestsrc.m1v
+
+ This example pipeline will encode a test video source to a an MPEG1 +elementary stream (with Generic MPEG1 profile). +

+Likely, the "format" property +is most important, as it selects the type of MPEG stream that is produced. +In particular, default property values are dependent on the format, +and can even be forcibly restrained to certain pre-sets (and thereby ignored). +Note that the (S)VCD profiles also restrict the image size, so some scaling +may be needed to accomodate this. The so-called generic profiles (as used +in the example above) allow most parameters to be adjusted. +

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc num-buffers=1000 ! videoscale ! mpeg2enc format=1 norm=p ! filesink location=videotestsrc.m1v
+
+ This will produce an MPEG1 profile stream according to VCD2.0 specifications +for PAL "norm" (as the image height is dependent on video norm). +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mpeg2enc +

author

Andrew Stevens <andrew.stevens@nexgo.de> +Ronald Bultje <rbultje@ronald.bitfreak.net>

class

Codec/Encoder/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/mpeg, systemstream=(boolean)false, mpegversion=(int){ 1, 2 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }
+
+
+

+

+
+
+

Details

+
+

GstMpeg2enc

+
typedef struct _GstMpeg2enc GstMpeg2enc;
+

+

+
+
+
+

Property Details

+
+

The "altscan-mpeg2" property

+
  "altscan-mpeg2"            gboolean              : Read / Write
+

Alternate MPEG-2 block scanning. Disabling this might make buggy players play SVCD streams.

+

Default value: TRUE

+
+
+
+

The "aspect" property

+
  "aspect"                   GstMpeg2encAspect     : Read / Write
+

Display aspect ratio.

+

Default value: Deduce from input

+
+
+
+

The "b-per-refframe" property

+
  "b-per-refframe"           gint                  : Read / Write
+

Number of B frames between each I/P frame.

+

Allowed values: [0,2]

+

Default value: 0

+
+
+
+

The "bitrate" property

+
  "bitrate"                  gint                  : Read / Write
+

Compressed video bitrate (kbps).

+

Allowed values: [0,10000]

+

Default value: 1125

+
+
+
+

The "bufsize" property

+
  "bufsize"                  gint                  : Read / Write
+

Target decoders video buffer size (kB) (default depends on format).

+

Allowed values: [20,4000]

+

Default value: 46

+
+
+
+

The "closed-gop" property

+
  "closed-gop"               gboolean              : Read / Write
+

All Group-of-Pictures are closed (for multi-angle DVDs).

+

Default value: FALSE

+
+
+
+

The "constraints" property

+
  "constraints"              gboolean              : Read / Write
+

Use strict video resolution and bitrate checks.

+

Default value: TRUE

+
+
+
+

The "correct-svcd-hds" property

+
  "correct-svcd-hds"         gboolean              : Read / Write
+

Force SVCD width to 480 instead of 540/720.

+

Default value: FALSE

+
+
+
+

The "dualprime" property

+
  "dualprime"                gboolean              : Read / Write
+

Dual Prime Motion Estimation Mode for MPEG-2 I/P-frame only streams. Quite some players do not support this.

+

Default value: FALSE

+
+
+
+

The "dummy-svcd-sof" property

+
  "dummy-svcd-sof"           gboolean              : Read / Write
+

Generate dummy SVCD scan-data (for vcdimager).

+

Default value: TRUE

+
+
+
+

The "force-b-b-p" property

+
  "force-b-b-p"              gboolean              : Read / Write
+

Force two B frames between I/P frames when closing GOP boundaries.

+

Default value: FALSE

+
+
+
+

The "format" property

+
  "format"                   GstMpeg2encFormat     : Read / Write
+

Encoding profile format.

+

Default value: Generic MPEG-1

+
+
+
+

The "framerate" property

+
  "framerate"                GstMpeg2encFramerate  : Read / Write
+

Output framerate.

+

Default value: Same as input

+
+
+
+

The "interlace-mode" property

+
  "interlace-mode"           GstMpeg2encInterlaceMode  : Read / Write
+

MPEG-2 motion estimation and encoding modes.

+

Default value: Progressive

+
+
+
+

The "intra-dc-prec" property

+
  "intra-dc-prec"            gint                  : Read / Write
+

Number of bits precision for DC (base colour) in MPEG-2 blocks.

+

Allowed values: [8,11]

+

Default value: 9

+
+
+
+

The "keep-hf" property

+
  "keep-hf"                  gboolean              : Read / Write
+

Maximize high-frequency resolution (for high-quality sources).

+

Default value: FALSE

+
+
+
+

The "max-gop-size" property

+
  "max-gop-size"             gint                  : Read / Write
+

Maximal size per Group-of-Pictures (-1=default).

+

Allowed values: [G_MAXULONG,250]

+

Default value: -1

+
+
+
+

The "min-gop-size" property

+
  "min-gop-size"             gint                  : Read / Write
+

Minimal size per Group-of-Pictures (-1=default).

+

Allowed values: [G_MAXULONG,250]

+

Default value: -1

+
+
+
+

The "motion-search-radius" property

+
  "motion-search-radius"     gint                  : Read / Write
+

Motion compensation search radius.

+

Allowed values: [0,32]

+

Default value: 16

+
+
+
+

The "non-video-bitrate" property

+
  "non-video-bitrate"        gint                  : Read / Write
+

Assumed bitrate of non-video for sequence splitting (kbps).

+

Allowed values: [0,10000]

+

Default value: 0

+
+
+
+

The "norm" property

+
  "norm"                     GstMpeg2encVideoNorm  : Read / Write
+

Tag output for specific video norm.

+

Default value: Unspecified

+
+
+
+

The "playback-field-order" property

+
  "playback-field-order"     GstMpeg2encPlaybackFieldOrders  : Read / Write
+

Force specific playback field order.

+

Default value: Unspecified

+
+
+
+

The "pulldown-3-2" property

+
  "pulldown-3-2"             gboolean              : Read / Write
+

Generate header flags for 3-2 pull down 24fps movies.

+

Default value: FALSE

+
+
+
+

The "quant-matrix" property

+
  "quant-matrix"             GstMpeg2encQuantisationMatrix  : Read / Write
+

Quantisation matrix to use for encoding.

+

Default value: Default

+
+
+
+

The "quant-reduction-max-var" property

+
  "quant-reduction-max-var"  gfloat                : Read / Write
+

Maximal luma variance below which quantisation boost is used.

+

Allowed values: [0,2500]

+

Default value: 100

+
+
+
+

The "quantisation" property

+
  "quantisation"             gint                  : Read / Write
+

Quantisation factor (-1=cbr, 0=default, 1=best, 31=worst).

+

Allowed values: [G_MAXULONG,31]

+

Default value: 0

+
+
+
+

The "quantisation-reduction" property

+
  "quantisation-reduction"   gfloat                : Read / Write
+

Max. quantisation reduction for highly active blocks.

+

Allowed values: [-4,10]

+

Default value: 0

+
+
+
+

The "reduce-hf" property

+
  "reduce-hf"                gfloat                : Read / Write
+

How much to reduce high-frequency resolution (by increasing quantisation).

+

Allowed values: [0,2]

+

Default value: 0

+
+
+
+

The "reduction-2x2" property

+
  "reduction-2x2"            gint                  : Read / Write
+

Reduction factor for 2x2 subsampled candidate motion estimates (1=max. quality, 4=max. speed).

+

Allowed values: [1,4]

+

Default value: 3

+
+
+
+

The "reduction-4x4" property

+
  "reduction-4x4"            gint                  : Read / Write
+

Reduction factor for 4x4 subsampled candidate motion estimates (1=max. quality, 4=max. speed).

+

Allowed values: [1,4]

+

Default value: 2

+
+
+
+

The "sequence-header-every-gop" property

+
  "sequence-header-every-gop" gboolean              : Read / Write
+

Include a sequence header in every GOP.

+

Default value: FALSE

+
+
+
+

The "sequence-length" property

+
  "sequence-length"          gint                  : Read / Write
+

Place a sequence boundary after each <num> MB (0=disable).

+

Allowed values: [0,10240]

+

Default value: 0

+
+
+
+

The "unit-coeff-elim" property

+
  "unit-coeff-elim"          gint                  : Read / Write
+

How agressively small-unit picture blocks should be skipped.

+

Allowed values: [-40,40]

+

Default value: 0

+
+
+
+

The "vcd-still-size" property

+
  "vcd-still-size"           gint                  : Read / Write
+

Size of VCD stills (in KB).

+

Allowed values: [0,512]

+

Default value: 0

+
+
+
+

See Also

+mpeg2dec +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mplex.html b/docs/plugins/html/gst-plugins-bad-plugins-mplex.html new file mode 100644 index 0000000..7158664 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mplex.html @@ -0,0 +1,286 @@ + + + + +mplex + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mplex

+

mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer

+
+
+

Synopsis

+
                    GstMplex;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMplex
+
+
+
+

Properties

+
+  "bufsize"                  gint                  : Read / Write
+  "format"                   GstMplexFormat        : Read / Write
+  "mux-bitrate"              gint                  : Read / Write
+  "packets-per-pack"         gint                  : Read / Write
+  "sector-size"              gint                  : Read / Write
+  "system-headers"           gboolean              : Read / Write
+  "vbr"                      gboolean              : Read / Write
+
+
+
+

Description

+

+This element is an audio/video multiplexer for MPEG-1/2 video streams +and (un)compressed audio streams such as AC3, MPEG layer I/II/III. +It is based on the mjpegtools library. +Documentation on creating MPEG videos in general can be found in the +MJPEG Howto +and the man-page of the mplex tool documents the properties of this element, +which are shared with the mplex tool. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch -v videotestsrc num-buffers=1000 ! mpeg2enc ! mplex ! filesink location=videotestsrc.mpg
+
+ This example pipeline will encode a test video source to an +MPEG1 elementary stream and multiplexes this to an MPEG system stream. +

+If several streams are being multiplexed, there should (as usual) be +a queue in each stream, and due to mplex' buffering the capacities of these +may have to be set to a few times the default settings to prevent the +pipeline stalling. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mplex +

author

Andrew Stevens <andrew.stevens@nexgo.de> +Ronald Bultje <rbultje@ronald.bitfreak.net> +Mark Nauwelaerts <mnauw@users.sourceforge.net

class

Codec/Muxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

audio_%d

direction

sink

presence

request

details

audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]

audio/x-ac3, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]

audio/x-dts

audio/x-raw-int, endianness=(int)4321, signed=(boolean)true, width=(int){ 16, 20, 24 }, depth=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 6 ]
+
++ + + + + + + + + + + + + + + + + + +

name

video_%d

direction

sink

presence

request

details

video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/mpeg, systemstream=(boolean)true
+
+
+

+

+
+
+

Details

+
+

GstMplex

+
typedef struct _GstMplex GstMplex;
+

+

+
+
+
+

Property Details

+
+

The "bufsize" property

+
  "bufsize"                  gint                  : Read / Write
+

Target decoders video buffer size (kB) [default determined by format if not explicitly set].

+

Allowed values: [20,4000]

+

Default value: 46

+
+
+
+

The "format" property

+
  "format"                   GstMplexFormat        : Read / Write
+

Encoding profile format.

+

Default value: Generic MPEG-1

+
+
+
+

The "mux-bitrate" property

+
  "mux-bitrate"              gint                  : Read / Write
+

Bitrate of output stream in kbps (0 = autodetect).

+

Allowed values: [0,15360]

+

Default value: 0

+
+
+
+

The "packets-per-pack" property

+
  "packets-per-pack"         gint                  : Read / Write
+

Number of packets per pack for generic formats.

+

Allowed values: [1,100]

+

Default value: 1

+
+
+
+

The "sector-size" property

+
  "sector-size"              gint                  : Read / Write
+

Specify sector size in bytes for generic formats.

+

Allowed values: [256,16384]

+

Default value: 2048

+
+
+
+

The "system-headers" property

+
  "system-headers"           gboolean              : Read / Write
+

Create system header in every pack for generic formats.

+

Default value: FALSE

+
+
+
+

The "vbr" property

+
  "vbr"                      gboolean              : Read / Write
+

Whether the input video stream is variable bitrate.

+

Default value: FALSE

+
+
+
+

See Also

+mpeg2enc +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html b/docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html new file mode 100644 index 0000000..1945d6c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mxfdemux.html @@ -0,0 +1,198 @@ + + + + +mxfdemux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mxfdemux

+

mxfdemux — Demux MXF files

+
+
+

Synopsis

+
struct              GstMXFDemux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMXFDemux
+
+
+
+

Properties

+
+  "package"                  gchar*                : Read / Write
+  "max-drift"                guint64               : Read / Write
+  "structure"                GstStructure*         : Read
+
+
+
+

Description

+

+mxfdemux demuxes an MXF file into the different contained streams. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v filesrc location=/path/to/mxf ! mxfdemux ! audioconvert ! autoaudiosink
+
+ This pipeline demuxes an MXF file and outputs one of the contained raw audio streams. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mxf +

author

Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Codec/Demuxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

application/mxf
+
++ + + + + + + + + + + + + + + + + + +

name

track_%u

direction

source

presence

sometimes

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstMXFDemux

+
struct GstMXFDemux;
+

+

+
+
+
+

Property Details

+
+

The "package" property

+
  "package"                  gchar*                : Read / Write
+

Material or Source package to use for playback.

+

Default value: NULL

+
+
+
+

The "max-drift" property

+
  "max-drift"                guint64               : Read / Write
+

Maximum number of nanoseconds by which tracks can differ.

+

Allowed values: >= 100000000

+

Default value: 500000000

+
+
+
+

The "structure" property

+
  "structure"                GstStructure*         : Read
+

Structural metadata of the MXF file.

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html b/docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html new file mode 100644 index 0000000..2213765 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mxfmux.html @@ -0,0 +1,388 @@ + + + + +mxfmux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mxfmux

+

mxfmux — Muxes video/audio streams into a MXF stream

+
+
+

Synopsis

+
                    GstMXFMux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstMXFMux
+
+
+
+

Description

+

+mxfmux muxes different streams into an MXF file. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v filesrc location=/path/to/audio ! decodebin2 ! queue ! mxfmux name=m ! filesink location=file.mxf   filesrc location=/path/to/video ! decodebin2 ! queue ! m.
+
+ This pipeline muxes an audio and video file into a single MXF file. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mxf +

author

Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Codec/Muxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

alaw_audio_sink_%u

direction

sink

presence

request

details

audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

bwf_audio_sink_%u

direction

sink

presence

request

details

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)32, depth=(int)32, signed=(boolean)true

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)24, depth=(int)24, signed=(boolean)true

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)16, depth=(int)16, signed=(boolean)true

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)8, depth=(int)8, signed=(boolean)false
+
++ + + + + + + + + + + + + + + + + + +

name

dv_dif_video_sink_%u

direction

sink

presence

request

details

video/x-dv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)true
+
++ + + + + + + + + + + + + + + + + + +

name

jpeg2000_video_sink_%u

direction

sink

presence

request

details

image/x-jpc, fields=(int)1, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], fourcc=(fourcc){ sRGB, sYUV }
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

mpeg_audio_sink_%u

direction

sink

presence

request

details

audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true

audio/x-ac3, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]

audio/mpeg, mpegversion=(int)2, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 8 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

mpeg_video_sink_%u

direction

sink

presence

request

details

video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-h264, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

up_video_sink_%u

direction

sink

presence

request

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)v308, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

vc3_video_sink_%u

direction

sink

presence

request

details

video/x-dnxhd, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

application/mxf
+
+
+

+

+
+
+

Details

+
+

GstMXFMux

+
typedef struct _GstMXFMux GstMXFMux;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html new file mode 100644 index 0000000..e1de10d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-mythtvsrc.html @@ -0,0 +1,257 @@ + + + + +mythtvsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mythtvsrc

+

mythtvsrc — Control and receive data as a client over the network via raw socket connections using the MythTV protocol

+
+
+

Synopsis

+
struct              GstMythtvSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstMythtvSrc
+
+
+
+

Implemented Interfaces

+

+GstMythtvSrc implements + GstURIHandler.

+
+
+

Properties

+
+  "location"                 gchar*                : Read / Write
+  "mythtv-channel"           gchar*                : Read / Write
+  "mythtv-enable-timing-position" gboolean              : Read / Write
+  "mythtv-live"              gboolean              : Read / Write
+  "mythtv-live-chainid"      gchar*                : Read / Write
+  "mythtv-live-id"           gint                  : Read / Write
+  "mythtv-version"           gint                  : Read / Write
+
+
+
+

Description

+

+MythTVSrc allows to access a remote MythTV backend streaming Video/Audio server, +and to render audio and video content through a TCP/IP connection to a specific +port on this server, and based on a known MythTV protocol that is based on +some message passing, such as REQUEST_BLOCK on a specified number of bytes, to get +some chunk of remote file data. +You should pass the information aboute the remote MythTV backend server +through the "location" property. +

+

+

+
+

Examples

+

+If you want to get the LiveTV content (set channel, TV tuner, RemoteEncoder, +Recorder), use the following URI: +

+
+ myth://xxx.xxx.xxx.xxx:6543/livetv?channel=BBC
+
+

+

+

+This URI will configure the Recorder instance (used to change the channel, +start the TV multimedia content transmition, etc.), using +the IP address (xxx.xxx.xxx.xxx) and port number (6543) of the MythTV backend +server, and setting the channel name to "BBC". +

+

+To get a already recorded the MythTV NUV file, put the following URI: +

+
+ myth://xxx.xxx.xxx.xxx:6543/filename.nuv
+
+

+

+

+Another possible way to use the LiveTV content, and just in the case you want to +use the mysql database, put the location URI in the following format: +

+
+ myth://mythtv:mythtv@xxx.xxx.xxx.xxx:6543/?mythconverg&channel=9
+
+

+

+

+Where the first field is the protocol (myth), the second and third are user +name (mythtv) and password (mythtv), then backend host name and port number, +and the last field is the database name (mythconverg). +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ mythtv +

author

Rosfran Borges <rosfran.borges@indt.org.br>, Renato Filho <renato.filho@indt.org.br>

class

Source/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstMythtvSrc

+
struct GstMythtvSrc;
+

+

+
+
+
+

Property Details

+
+

The "location" property

+
  "location"                 gchar*                : Read / Write
+

+

Default value: ""

+
+
+
+

The "mythtv-channel" property

+
  "mythtv-channel"           gchar*                : Read / Write
+

Change MythTV channel number.

+

Default value: ""

+
+
+
+

The "mythtv-enable-timing-position" property

+
  "mythtv-enable-timing-position" gboolean              : Read / Write
+

Enable MythTV Live TV content size continuous updating.

+

Default value: FALSE

+
+
+
+

The "mythtv-live" property

+
  "mythtv-live"              gboolean              : Read / Write
+

Enable MythTV Live TV content streaming.

+

Default value: FALSE

+
+
+
+

The "mythtv-live-chainid" property

+
  "mythtv-live-chainid"      gchar*                : Read / Write
+

Sets the MythTV chain ID (from TV Chain).

+

Default value: ""

+
+
+
+

The "mythtv-live-id" property

+
  "mythtv-live-id"           gint                  : Read / Write
+

Change MythTV version.

+

Allowed values: [0,200]

+

Default value: 1

+
+
+
+

The "mythtv-version" property

+
  "mythtv-version"           gint                  : Read / Write
+

Change MythTV version.

+

Allowed values: [26,30]

+

Default value: 26

+
+
+
+

See Also

+nuvdemux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html b/docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html new file mode 100644 index 0000000..f5910dc --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-nuvdemux.html @@ -0,0 +1,197 @@ + + + + +nuvdemux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

nuvdemux

+

nuvdemux — Demultiplex a MythTV NuppleVideo .nuv file into audio and video

+
+
+

Synopsis

+
                    GstNuvDemux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstNuvDemux
+
+
+
+

Description

+

+Demuxes MythTVs NuppelVideo .nuv file into raw or compressed audio and/or +video streams. +

+

+This element currently only supports pull-based scheduling. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch filesrc test.nuv ! nuvdemux name=demux  demux.audio_00 ! decodebin ! audioconvert ! audioresample ! autoaudiosink   demux.video_00 ! queue ! decodebin ! ffmpegcolorspace ! videoscale ! autovideosink
+
+ Play (parse and decode) an .nuv file and try to output it to +an automatically detected soundcard and videosink. If the NUV file contains +compressed audio or video data, this will only work if you have the +right decoder elements/plugins installed. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ nuvdemux +

author

Renato Araujo Oliveira Filho <renato.filho@indt.org.br>,Rosfran Borges <rosfran.borges@indt.org.br>

class

Codec/Demuxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-nuv
+
++ + + + + + + + + + + + + + + + + + +

name

audio_src

direction

source

presence

sometimes

details

ANY
+
++ + + + + + + + + + + + + + + + + + +

name

video_src

direction

source

presence

sometimes

details

ANY
+
+
+

+

+
+
+

Details

+
+

GstNuvDemux

+
typedef struct _GstNuvDemux GstNuvDemux;
+

+

+
+
+
+

See Also

+mythtvsrc +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html b/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html new file mode 100644 index 0000000..9deaeea --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-opencvtextoverlay.html @@ -0,0 +1,268 @@ + + + + +opencvtextoverlay + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

opencvtextoverlay

+

opencvtextoverlay — Write text on the top of video

+
+
+

Synopsis

+
                    GstNuvDemux;
+struct              GstOpencvTextOverlay;
+
+
+
+

Properties

+
+  "colorB"                   gint                  : Read / Write
+  "colorG"                   gint                  : Read / Write
+  "colorR"                   gint                  : Read / Write
+  "height"                   gdouble               : Read / Write
+  "text"                     gchar*                : Read / Write
+  "thickness"                gint                  : Read / Write
+  "width"                    gdouble               : Read / Write
+  "xpos"                     gint                  : Read / Write
+  "ypos"                     gint                  : Read / Write
+
+
+
+

Description

+

+opencvtextoverlay renders the text on top of the video frames +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc ! ffmpegcolorspace ! opencvtextoverlay text="Opencv Text Overlay " ! ffmpegcolorspace ! xvimagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

sreerenj<bsreerenj@gmail.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

GstNuvDemux

+
typedef struct _GstNuvDemux GstNuvDemux;
+

+

+
+
+
+

struct GstOpencvTextOverlay

+
struct GstOpencvTextOverlay {
+  GstElement element;
+
+  GstPad *sinkpad, *srcpad;
+
+  IplImage *cvImage;
+  CvMemStorage *cvStorage;
+  CvFont font;  
+
+  gint xpos;
+  gint ypos;
+  gint thickness;
+  gint colorR,colorG,colorB;
+  gdouble height;
+  gdouble width;
+  gchar *textbuf;
+};
+
+

+

+
+
+
+

Property Details

+
+

The "colorB" property

+
  "colorB"                   gint                  : Read / Write
+

Sets the color -B.

+

Allowed values: [0,255]

+

Default value: 0

+
+
+
+

The "colorG" property

+
  "colorG"                   gint                  : Read / Write
+

Sets the color -G.

+

Allowed values: [0,255]

+

Default value: 0

+
+
+
+

The "colorR" property

+
  "colorR"                   gint                  : Read / Write
+

Sets the color -R.

+

Allowed values: [0,255]

+

Default value: 0

+
+
+
+

The "height" property

+
  "height"                   gdouble               : Read / Write
+

Sets the height of fonts.

+

Allowed values: [1,5]

+

Default value: 1

+
+
+
+

The "text" property

+
  "text"                     gchar*                : Read / Write
+

Text to be display.

+

Default value: ""

+
+
+
+

The "thickness" property

+
  "thickness"                gint                  : Read / Write
+

Sets the Thickness of Font.

+

Allowed values: >= 0

+

Default value: 2

+
+
+
+

The "width" property

+
  "width"                    gdouble               : Read / Write
+

Sets the width of fonts.

+

Allowed values: [1,5]

+

Default value: 1

+
+
+
+

The "xpos" property

+
  "xpos"                     gint                  : Read / Write
+

Sets the Horizontal position.

+

Allowed values: >= 0

+

Default value: 50

+
+
+
+

The "ypos" property

+
  "ypos"                     gint                  : Read / Write
+

Sets the Vertical position.

+

Allowed values: >= 0

+

Default value: 50

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html b/docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html new file mode 100644 index 0000000..52d5f6d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-pcapparse.html @@ -0,0 +1,222 @@ + + + + +pcapparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

pcapparse

+

pcapparse — Parses a raw pcap stream

+
+
+

Synopsis

+
struct              GstPcapParse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstPcapParse
+
+
+
+

Properties

+
+  "dst-ip"                   gchar*                : Read / Write
+  "dst-port"                 gint                  : Read / Write
+  "src-ip"                   gchar*                : Read / Write
+  "src-port"                 gint                  : Read / Write
+  "caps"                     GstCaps*              : Read / Write
+
+
+
+

Description

+

+Extracts payloads from Ethernet-encapsulated IP packets, currently limited +to UDP. Use "src-ip", "dst-ip", +"src-port" and "dst-port" to restrict which packets +should be included. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
+2
gst-launch-0.10 filesrc location=h264crasher.pcap ! pcapparse ! rtph264depay
+! ffdec_h264 ! fakesink
+
+ Read from a pcap dump file using filesrc, extract the raw UDP packets, +depayload and decode them. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ pcapparse +

author

Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com>

class

Raw/Parser
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

raw/x-pcap
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstPcapParse

+
struct GstPcapParse;
+

+GstPcapParse element. +

+
+
+
+

Property Details

+
+

The "dst-ip" property

+
  "dst-ip"                   gchar*                : Read / Write
+

Destination IP to restrict to.

+

Default value: ""

+
+
+
+

The "dst-port" property

+
  "dst-port"                 gint                  : Read / Write
+

Destination port to restrict to.

+

Allowed values: [G_MAXULONG,65535]

+

Default value: -1

+
+
+
+

The "src-ip" property

+
  "src-ip"                   gchar*                : Read / Write
+

Source IP to restrict to.

+

Default value: ""

+
+
+
+

The "src-port" property

+
  "src-port"                 gint                  : Read / Write
+

Source port to restrict to.

+

Allowed values: [G_MAXULONG,65535]

+

Default value: -1

+
+
+
+

The "caps" property

+
  "caps"                     GstCaps*              : Read / Write
+

The caps of the source pad.

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-pinch.html b/docs/plugins/html/gst-plugins-bad-plugins-pinch.html new file mode 100644 index 0000000..4cbdade --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-pinch.html @@ -0,0 +1,270 @@ + + + + +pinch + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

pinch

+

pinch — Applies 'pinch' geometric transform to the image

+
+
+

Synopsis

+
struct              GstPinch;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstPinch
+
+
+
+

Properties

+
+  "intensity"                gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstPinch

+
struct GstPinch;
+

+

+
+
+
+

Property Details

+
+

The "intensity" property

+
  "intensity"                gdouble               : Read / Write
+

intensity of the pinch effect.

+

Allowed values: [-1,1]

+

Default value: 0.5

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html new file mode 100644 index 0000000..ef14384 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-aiff.html @@ -0,0 +1,80 @@ + + + + +aiff + + + + + + + + + + + + + + + + +
+
+
+ + +
+

aiff

+

aiff — Create and parse Audio Interchange File Format (AIFF) files

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstaiff.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

aiffmux

Multiplex raw audio into AIFF

aiffparse

Parse a .aiff file into raw audio
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html new file mode 100644 index 0000000..249a270 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-amrwbenc.html @@ -0,0 +1,74 @@ + + + + +amrwbenc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

amrwbenc

+

amrwbenc — Adaptive Multi-Rate Wide-Band Encoder

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstamrwbenc.so

version

0.10.22

run-time license

unknown

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

amrwbenc

Adaptive Multi-Rate Wideband audio encoder
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html new file mode 100644 index 0000000..aaa459d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-assrender.html @@ -0,0 +1,74 @@ + + + + +assrender + + + + + + + + + + + + + + + + +
+
+
+ + +
+

assrender

+

assrender — ASS/SSA subtitle renderer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstassrender.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

assrender

Renders ASS/SSA subtitles with libass
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html new file mode 100644 index 0000000..66e26ff --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-autoconvert.html @@ -0,0 +1,80 @@ + + + + +autoconvert + + + + + + + + + + + + + + + + +
+
+
+ + +
+

autoconvert

+

autoconvert — Selects convertor element based on caps

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstautoconvert.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

autoconvert

Selects the right transform element based on the caps

autovideoconvert

Selects the right color space convertor based on the caps
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html new file mode 100644 index 0000000..7e1348c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bayer.html @@ -0,0 +1,80 @@ + + + + +bayer + + + + + + + + + + + + + + + + +
+
+
+ + +
+

bayer

+

bayer — Elements to convert Bayer images

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstbayer.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

bayer2rgb

Converts video/x-raw-bayer to video/x-raw-rgb

rgb2bayer

Converts video/x-raw-rgb to video/x-raw-bayer
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html new file mode 100644 index 0000000..43e89be --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-bz2.html @@ -0,0 +1,80 @@ + + + + +bz2 + + + + + + + + + + + + + + + + +
+
+
+ + +
+

bz2

+

bz2 — Compress or decompress streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstbz2.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

bz2dec

Decodes compressed streams

bz2enc

Compresses streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html new file mode 100644 index 0000000..d5059e3 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-camerabin.html @@ -0,0 +1,74 @@ + + + + +camerabin + + + + + + + + + + + + + + + + +
+
+
+ + +
+

camerabin

+

camerabin — High level api for DC (Digital Camera) application

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcamerabin.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

camerabin

Handle lot of features present in DSC
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html new file mode 100644 index 0000000..66dbe36 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdaudio.html @@ -0,0 +1,74 @@ + + + + +cdaudio + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cdaudio

+

cdaudio — Play CD audio through the CD Drive

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcdaudio.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

cdaudio

Play CD audio through the CD Drive
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html new file mode 100644 index 0000000..6e5cd9c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-cdxaparse.html @@ -0,0 +1,80 @@ + + + + +cdxaparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

cdxaparse

+

cdxaparse — Parse a .dat file (VCD) into raw mpeg1

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcdxaparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

cdxaparse

Parse a .dat file from (S)VCD into raw MPEG-1

vcdparse

Strip (S)VCD stream from its sync headers
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html new file mode 100644 index 0000000..fa07568 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-celt.html @@ -0,0 +1,80 @@ + + + + +celt + + + + + + + + + + + + + + + + +
+
+
+ + +
+

celt

+

celt — CELT plugin library

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcelt.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

celtdec

decode celt streams to audio

celtenc

Encodes audio in Celt format
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html new file mode 100644 index 0000000..9a4debb --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-coloreffects.html @@ -0,0 +1,80 @@ + + + + +coloreffects + + + + + + + + + + + + + + + + +
+
+
+ + +
+

coloreffects

+

coloreffects — Color Look-up Table filters

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcoloreffects.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

chromahold

Removes all color information except for one color

coloreffects

Color Look-up Table filter
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html new file mode 100644 index 0000000..84df30e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-curl.html @@ -0,0 +1,74 @@ + + + + +curl + + + + + + + + + + + + + + + + +
+
+
+ + +
+

curl

+

curl — libcurl-based elements

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstcurl.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

curlsink

Upload data over the network to a server using libcurl
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html new file mode 100644 index 0000000..e673492 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dataurisrc.html @@ -0,0 +1,74 @@ + + + + +dataurisrc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dataurisrc

+

dataurisrc — data: URI source

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdataurisrc.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

dataurisrc

Handles data: uris
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html new file mode 100644 index 0000000..5ae6382 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dccp.html @@ -0,0 +1,88 @@ + + + + +dccp + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dccp

+

dccp — transfer data over the network via DCCP.

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdccp.so

version

0.10.22

run-time license

LGPL

package

DCCP

origin

http://garage.maemo.org/projects/ephone
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + +

dccpclientsink

Send data as a client over the network via DCCP

dccpclientsrc

Receive data as a client over the network via DCCP

dccpserversink

Send data as a server over the network via DCCP

dccpserversrc

Receive data as a server over the network via DCCP
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html new file mode 100644 index 0000000..1ecfe06 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-debugutilsbad.html @@ -0,0 +1,84 @@ + + + + +debugutilsbad + + + + + + + + + + + + + + + + +
+
+
+ + +
+

debugutilsbad

+

debugutilsbad — Collection of elements that may or may not be useful for debugging

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdebugutilsbad.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + +

checksumsink

Calculates a checksum for buffers

chopmydata

FIXME

fpsdisplaysink

Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html new file mode 100644 index 0000000..3b004b3 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dfbvideosink.html @@ -0,0 +1,74 @@ + + + + +dfbvideosink + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dfbvideosink

+

dfbvideosink — DirectFB video output plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdfbvideosink.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

dfbvideosink

A DirectFB based videosink
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html new file mode 100644 index 0000000..81a1d88 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dirac.html @@ -0,0 +1,74 @@ + + + + +dirac + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dirac

+

dirac — Dirac plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdirac.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

diracenc

Encode raw YUV video into Dirac stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html new file mode 100644 index 0000000..2437299 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-directdraw.html @@ -0,0 +1,74 @@ + + + + +directdraw + + + + + + + + + + + + + + + + +
+
+
+ + +
+

directdraw

+

directdraw — Direct Draw plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdirectdraw.dll

version

0.10.4.1

run-time license

LGPL

package

GStreamer Bad Plug-ins CVS

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

directdrawsink

Direct Draw video sink
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html new file mode 100644 index 0000000..861d069 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtmf.html @@ -0,0 +1,88 @@ + + + + +dtmf + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dtmf

+

dtmf — DTMF plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdtmf.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + +

dtmfdetect

This element detects DTMF tones

dtmfsrc

Generates DTMF tones

rtpdtmfdepay

Generates DTMF Sound from telephone-event RTP packets

rtpdtmfsrc

Generates RTP DTMF packets
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html new file mode 100644 index 0000000..848a837 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dtsdec.html @@ -0,0 +1,74 @@ + + + + +dtsdec + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dtsdec

+

dtsdec — Decodes DTS audio streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdtsdec.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

dtsdec

Decodes DTS audio streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html new file mode 100644 index 0000000..68a5445 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvb.html @@ -0,0 +1,80 @@ + + + + +dvb + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dvb

+

dvb — DVB elements

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdvb.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

dvbbasebin

Access descramble and split DVB streams

dvbsrc

Digital Video Broadcast Source
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html new file mode 100644 index 0000000..be8da43 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-dvdspu.html @@ -0,0 +1,74 @@ + + + + +dvdspu + + + + + + + + + + + + + + + + +
+
+
+ + +
+

dvdspu

+

dvdspu — DVD Sub-picture Overlay element

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstdvdspu.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

dvdspu

Parses Sub-Picture command streams and renders the SPU overlay onto the video as it passes through
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html new file mode 100644 index 0000000..b2bd5c0 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faac.html @@ -0,0 +1,74 @@ + + + + +faac + + + + + + + + + + + + + + + + +
+
+
+ + +
+

faac

+

faac — Free AAC Encoder (FAAC)

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfaac.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

faac

Free MPEG-2/4 AAC encoder
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html new file mode 100644 index 0000000..db4fa54 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-faad.html @@ -0,0 +1,74 @@ + + + + +faad + + + + + + + + + + + + + + + + +
+
+
+ + +
+

faad

+

faad — Free AAC Decoder (FAAD)

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfaad.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

faad

Free MPEG-2/4 AAC decoder
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html new file mode 100644 index 0000000..885ec20 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-fbdevsink.html @@ -0,0 +1,74 @@ + + + + +fbdevsink + + + + + + + + + + + + + + + + +
+
+
+ + +
+

fbdevsink

+

fbdevsink — linux framebuffer video sink

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfbdevsink.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

fbdevsink

A linux framebuffer videosink
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html new file mode 100644 index 0000000..f8fc617 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-festival.html @@ -0,0 +1,74 @@ + + + + +festival + + + + + + + + + + + + + + + + +
+
+
+ + +
+

festival

+

festival — Synthesizes plain text into audio

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfestival.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

festival

Synthesizes plain text into audio
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html new file mode 100644 index 0000000..44fb37c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-filter.html @@ -0,0 +1,74 @@ + + + + +filter + + + + + + + + + + + + + + + + +
+
+
+ + +
+

filter

+

filter — IIR audio filter element

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfilter.so

version

0.10.10

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

iir

IIR filter based on vorbis code
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html new file mode 100644 index 0000000..3fd6819 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-freeze.html @@ -0,0 +1,74 @@ + + + + +freeze + + + + + + + + + + + + + + + + +
+
+
+ + +
+

freeze

+

freeze — Stream freezer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfreeze.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

freeze

Makes a stream from buffers of data
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html new file mode 100644 index 0000000..b1db996 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-frei0r.html @@ -0,0 +1,420 @@ + + + + +frei0r + + + + + + + + + + + + + + + + +
+
+
+ + +
+

frei0r

+

frei0r — frei0r plugin library

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstfrei0r.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

frei0r-filter-3-point-color-balance

Adjust color balance with 3 color points

frei0r-filter-3dflippo

Frame rotation in 3d-space

frei0r-filter-b

Extracts Blue from Image

frei0r-filter-baltan

delayed alpha smoothed blit of time

frei0r-filter-bluescreen0r

Color to alpha (blit SRCALPHA)

frei0r-filter-brightness

Adjusts the brightness of a source image

frei0r-filter-bw0r

Turns image black/white.

frei0r-filter-cartoon

Cartoonify video, do a form of edge detect

frei0r-filter-color-distance

frei0r-filter-contrast0r

Adjusts the contrast of a source image

frei0r-filter-curves

Adjust luminance or color channel intensity with curve level mapping

frei0r-filter-dealygrab

delayed frame blitting mapped on a time bitmap

frei0r-filter-delay0r

video delay

frei0r-filter-distort0r

Plasma

frei0r-filter-edgeglow

Edgeglow filter

frei0r-filter-equaliz0r

Equalizes the intensity histograms

frei0r-filter-flippo

Flipping in x and y axis

frei0r-filter-g

Extracts Green from Image

frei0r-filter-gamma

Adjusts the gamma value of a source image

frei0r-filter-glow

Creates a Glamorous Glow

frei0r-filter-hueshift0r

Shifts the hue of a source image

frei0r-filter-invert0r

Inverts all colors of a source image

frei0r-filter-k-means-clustering

Clusters of a source image by color and spatial distance

frei0r-filter-lens-correction

Allows compensation of lens distortion

frei0r-filter-letterb0xed

Adds Black Borders at top and bottom for Cinema Look

frei0r-filter-levels

Adjust luminance or color channel intensity

frei0r-filter-luminance

Creates a luminance map of the image

frei0r-filter-mask0mate

Creates an square alpha-channel mask

frei0r-filter-nervous

flushes frames in time in a nervous way

frei0r-filter-nosync0r

broken tv

frei0r-filter-perspective

Distorts the image for a pseudo perspective

frei0r-filter-pixeliz0r

Pixelize input image.

frei0r-filter-primaries

Reduce image to primary colors

frei0r-filter-r

Extracts Red from Image

frei0r-filter-rgb-parade

Displays a histogram of R, G and B of the video-data

frei0r-filter-saturat0r

Adjusts the saturation of a source image

frei0r-filter-scale0tilt

Scales, Tilts and Crops an Image

frei0r-filter-scanline0r

interlaced blak lines

frei0r-filter-sobel

Sobel filter

frei0r-filter-squareblur

Variable-size square blur

frei0r-filter-tehroxx0r

Something videowall-ish

frei0r-filter-threelay0r

dynamic 3 level thresholding

frei0r-filter-threshold0r

Thresholds a source image

frei0r-filter-tint0r

Tint a source image with specified color

frei0r-filter-transparency

Tunes the alpha channel.

frei0r-filter-twolay0r

dynamic thresholding

frei0r-filter-vectorscope

Displays the vectorscope of the video-data

frei0r-filter-vertigo

alpha blending with zoomed and rotated images

frei0r-filter-water

water drops on a video surface

frei0r-filter-white-balance

Adjust the white balance / color temperature

frei0r-mixer-addition

Perform an RGB[A] addition operation of the pixel sources.

frei0r-mixer-alpha-injection

Averages Input 1 and uses this as Alpha Channel on Input 2

frei0r-mixer-alphaatop

the alpha ATOP operation

frei0r-mixer-alphain

the alpha IN operation

frei0r-mixer-alphaout

the alpha OUT operation

frei0r-mixer-alphaover

the alpha OVER operation

frei0r-mixer-alphaxor

the alpha XOR operation

frei0r-mixer-blend

Perform a blend operation between two sources

frei0r-mixer-burn

Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: +D = saturation of 255 or depletion of 0, of ((255 - A) * 256) / (B + 1)

frei0r-mixer-color-only

Perform a conversion to color only of the source input1 using the hue and saturation values of input2.

frei0r-mixer-composition

Composites Image 2 onto Image 1 according to its Alpha Channel

frei0r-mixer-darken

Perform a darken operation between two sources (minimum value of both sources).

frei0r-mixer-difference

Perform an RGB[A] difference operation between the pixel sources.

frei0r-mixer-divide

Perform an RGB[A] divide operation between the pixel sources: input1 is the numerator, input2 the denominator

frei0r-mixer-dodge

Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: +D = saturation of 255 or (A * 256) / (256 - B)

frei0r-mixer-grain-extract

Perform an RGB[A] grain-extract operation between the pixel sources.

frei0r-mixer-grain-merge

Perform an RGB[A] grain-merge operation between the pixel sources.

frei0r-mixer-hardlight

Perform an RGB[A] hardlight operation between the pixel sources

frei0r-mixer-hue

Perform a conversion to hue only of the source input1 using the hue of input2.

frei0r-mixer-lighten

Perform a lighten operation between two sources (maximum value of both sources).

frei0r-mixer-multiply

Perform an RGB[A] multiply operation between the pixel sources.

frei0r-mixer-overlay

Perform an RGB[A] overlay operation between the pixel sources, using the generalised algorithm: +D = A * (B + (2 * B) * (255 - A))

frei0r-mixer-rgb

Averages each Input and uses each as R, G or B channel of the Output

frei0r-mixer-saturation

Perform a conversion to saturation only of the source input1 using the saturation level of input2.

frei0r-mixer-screen

Perform an RGB[A] screen operation between the pixel sources, using the generalised algorithm: +D = 255 - (255 - A) * (255 - B)

frei0r-mixer-softlight

Perform an RGB[A] softlight operation between the pixel sources.

frei0r-mixer-subtract

Perform an RGB[A] subtract operation of the pixel source input2 from input1.

frei0r-mixer-uv-map

Uses Input 1 as UV Map to distort Input 2

frei0r-mixer-value

Perform a conversion to value only of the source input1 using the value of input2.

frei0r-mixer-xfade0r

a simple xfader

frei0r-src-ising0r

Generates ising noise

frei0r-src-lissajous0r

Generates Lissajous0r images

frei0r-src-nois0r

Generates white noise images

frei0r-src-onecol0r

image with just one color

frei0r-src-partik0l

Particles generated on prime number sinusoidal blossoming

frei0r-src-plasma

Demo scene 8bit plasma
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html new file mode 100644 index 0000000..bb8298f --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gaudieffects.html @@ -0,0 +1,100 @@ + + + + +gaudieffects + + + + + + + + + + + + + + + + +
+
+
+ + +
+

gaudieffects

+

gaudieffects — Gaudi video effects.

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstgaudieffects.so

version

0.10.22

run-time license

LGPL

package

GStreamer

origin

http://gstreamer.net/
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

burn

Burn adjusts the colors in the video signal.

chromium

Chromium breaks the colors of the video signal.

dilate

Dilate copies the brightest pixel around.

dodge

Dodge saturates the colors in the video signal.

exclusion

Exclusion exclodes the colors in the video signal.

gaussianblur

Perform Gaussian blur/sharpen on a video

solarize

Solarize tunable inverse in the video signal.
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html new file mode 100644 index 0000000..15ea720 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-geometrictransform.html @@ -0,0 +1,132 @@ + + + + +geometrictransform + + + + + + + + + + + + + + + + +
+
+
+ + +
+

geometrictransform

+

geometrictransform — Various geometric image transform elements

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstgeometrictransform.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

bulge

Adds a protuberance in the center point

circle

Warps the picture into an arc shaped form

diffuse

Diffuses the image by moving its pixels in random directions

fisheye

Split the image into two halves and reflect one over each other

kaleidoscope

Applies 'kaleidoscope' geometric transform to the image

marble

Applies a marbling effect to the image

mirror

Split the image into two halves and reflect one over each other

pinch

Applies 'pinch' geometric transform to the image

rotate

Warps the picture into an arc shaped form

sphere

Applies 'sphere' geometric transform to the image

square

Distort center part of the image into a square

stretch

Stretch the image in a circle around the center point

tunnel

Light tunnel effect

twirl

Twists the image from the center out

waterripple

Creates a water ripple effect on the image
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html new file mode 100644 index 0000000..bbebf63 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-gsm.html @@ -0,0 +1,80 @@ + + + + +gsm + + + + + + + + + + + + + + + + +
+
+
+ + +
+

gsm

+

gsm — GSM encoder/decoder

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstgsm.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

gsmdec

Decodes GSM encoded audio

gsmenc

Encodes GSM audio
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html new file mode 100644 index 0000000..e6171af --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-h264parse.html @@ -0,0 +1,74 @@ + + + + +h264parse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

h264parse

+

h264parse — Element parsing raw h264 streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgsth264parse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

legacyh264parse

Parses raw h264 stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html new file mode 100644 index 0000000..6d76b9a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ivfparse.html @@ -0,0 +1,74 @@ + + + + +ivfparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

ivfparse

+

ivfparse — IVF parser

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstivfparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

ivfparse

Demuxes a IVF stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html new file mode 100644 index 0000000..1d9784e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-jpegformat.html @@ -0,0 +1,80 @@ + + + + +jpegformat + + + + + + + + + + + + + + + + +
+
+
+ + +
+

jpegformat

+

jpegformat — JPEG interchange format plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstjpegformat.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

jifmux

Remuxes JPEG images with markers and tags

jpegparse

Parse JPEG images into single-frame buffers
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html new file mode 100644 index 0000000..a1dca29 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-kate.html @@ -0,0 +1,92 @@ + + + + +kate + + + + + + + + + + + + + + + + +
+
+
+ + +
+

kate

+

kate — Kate plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstkate.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + +

katedec

Decodes Kate text streams

kateenc

Encodes Kate streams from text or subpictures

kateparse

parse raw kate streams

katetag

Retags kate streams

tiger

Decodes and renders Kate streams on top of a video
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html new file mode 100644 index 0000000..6c782d5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-ladspa.html @@ -0,0 +1,664 @@ + + + + +ladspa + + + + + + + + + + + + + + + + +
+
+
+ + +
+

ladspa

+

ladspa — All LADSPA plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstladspa.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

ladspa-Chorus1

Chorus1 - Based on CSound orchestra by Sean Costello

ladspa-Chorus2

Chorus2 - Based on CSound orchestra by Sean Costello

ladspa-G2reverb

Stereo reverb

ladspa-Mvchpf-1

Mvchpf-1 Digital implementation of the VC HP filter invented by R.A. Moog

ladspa-Mvclpf-1

Mvclpf-1 Digital implementation of the VC filter invented by R.A.Moog

ladspa-Mvclpf-2

Mvclpf-2 Digital implementation of the VC filter invented by R.A.Moog

ladspa-Mvclpf-3

Mvclpf-3 Digital implementation of the VC filter invented by R.A.Moog

ladspa-Mvclpf-4

Mvclpf-4 Digital implementation of the VC filter invented by R.A.Moog

ladspa-Phaser1

Phaser1 - Similar to CSound's phaser1 by Sean Costello

ladspa-Phaser1+LFO

Phaser1 with LFO

ladspa-TripleChorus

Triple chorus

ladspa-alias

Aliasing

ladspa-allpass-c

Allpass delay line, cubic spline interpolation

ladspa-allpass-l

Allpass delay line, linear interpolation

ladspa-allpass-n

Allpass delay line, noninterpolating

ladspa-amPitchshift

AM pitchshifter

ladspa-amp

Simple amplifier

ladspa-amp-mono

Mono Amplifier

ladspa-amp-stereo

Stereo Amplifier

ladspa-analogueOsc

Analogue Oscillator

ladspa-artificialLatency

Artificial latency

ladspa-autoPhaser

Auto phaser

ladspa-bandpass-a-iir

Glame Bandpass Analog Filter

ladspa-bandpass-iir

Glame Bandpass Filter

ladspa-bodeShifter

Bode frequency shifter

ladspa-bodeShifterCV

Bode frequency shifter (CV)

ladspa-butthigh-iir

GLAME Butterworth Highpass

ladspa-buttlow-iir

GLAME Butterworth Lowpass

ladspa-bwxover-iir

Glame Butterworth X-over Filter

ladspa-chebstortion

Chebyshev distortion

ladspa-comb

Comb Filter

ladspa-comb-c

Comb delay line, cubic spline interpolation

ladspa-comb-l

Comb delay line, linear interpolation

ladspa-comb-n

Comb delay line, noninterpolating

ladspa-combSplitter

Comb Splitter

ladspa-const

Constant Signal Generator

ladspa-crossoverDist

Crossover distortion

ladspa-dcRemove

DC Offset Remover

ladspa-decay

Exponential signal decay

ladspa-decimator

Decimator

ladspa-declip

Declipper

ladspa-delay-5s

Simple Delay Line

ladspa-delay-c

Simple delay line, cubic spline interpolation

ladspa-delay-l

Simple delay line, linear interpolation

ladspa-delay-n

Simple delay line, noninterpolating

ladspa-delayorama

Delayorama

ladspa-diode

Diode Processor

ladspa-divider

Audio Divider (Suboctave Generator)

ladspa-dj-eq

DJ EQ

ladspa-dj-eq-mono

DJ EQ (mono)

ladspa-djFlanger

DJ flanger

ladspa-dysonCompress

Dyson compressor

ladspa-fadDelay

Fractionally Addressed Delay Line

ladspa-fastLookaheadLimiter

Fast Lookahead limiter

ladspa-flanger

Flanger

ladspa-fmOsc

FM Oscillator

ladspa-foldover

Foldover distortion

ladspa-fourByFourPole

4 x 4 pole allpass

ladspa-foverdrive

Fast overdrive

ladspa-freqTracker

Frequency tracker

ladspa-gate

Gate

ladspa-giantFlange

Giant flange

ladspa-gong

Gong model

ladspa-gongBeater

Gong beater

ladspa-gsm

GSM simulator

ladspa-gverb

GVerb

ladspa-hardLimiter

Hard Limiter

ladspa-harmonicGen

Harmonic generator

ladspa-hermesFilter

Hermes Filter

ladspa-highpass-iir

Glame Highpass Filter

ladspa-hilbert

Hilbert transformer

ladspa-hpf

Simple High Pass Filter

ladspa-imp

Impulse convolver

ladspa-impulse-fc

Nonbandlimited single-sample impulses (Frequency: Control)

ladspa-inv

Inverter

ladspa-karaoke

Karaoke

ladspa-lcrDelay

L/C/R Delay

ladspa-lfoPhaser

LFO Phaser

ladspa-lowpass-iir

Glame Lowpass Filter

ladspa-lpf

Simple Low Pass Filter

ladspa-lsFilter

LS Filter

ladspa-matrixMSSt

Matrix: MS to Stereo

ladspa-matrixSpatialiser

Matrix Spatialiser

ladspa-matrixStMS

Matrix: Stereo to MS

ladspa-mbeq

Multiband EQ

ladspa-modDelay

Modulatable delay

ladspa-multivoiceChorus

Multivoice Chorus

ladspa-noise-white

White Noise Source

ladspa-notch-iir

Mag's Notch Filter

ladspa-pitchScale

Pitch Scaler

ladspa-pitchScaleHQ

Higher Quality Pitch Scaler

ladspa-plate

Plate reverb

ladspa-pointerCastDistortion

Pointer cast distortion

ladspa-rateShifter

Rate shifter

ladspa-retroFlange

Retro Flanger

ladspa-revdelay

Reverse Delay (5s max)

ladspa-ringmod-1i1o1l

Ringmod with LFO

ladspa-ringmod-2i1o

Ringmod with two inputs

ladspa-satanMaximiser

Barry's Satan Maximiser

ladspa-sc1

SC1

ladspa-sc2

SC2

ladspa-sc3

SC3

ladspa-sc4

SC4

ladspa-sc4m

SC4 mono

ladspa-se4

SE4

ladspa-shaper

Wave shaper

ladspa-sifter

Signal sifter

ladspa-sinCos

Sine + cosine oscillator

ladspa-sine-faaa

Sine Oscillator (Freq:audio, Amp:audio)

ladspa-sine-faac

Sine Oscillator (Freq:audio, Amp:control)

ladspa-sine-fcaa

Sine Oscillator (Freq:control, Amp:audio)

ladspa-sine-fcac

Sine Oscillator (Freq:control, Amp:control)

ladspa-singlePara

Single band parametric

ladspa-sinusWavewrapper

Sinus wavewrapper

ladspa-smoothDecimate

Smooth Decimator

ladspa-split

Mono to Stereo splitter

ladspa-stepMuxer

Step Demuxer

ladspa-surroundEncoder

Surround matrix encoder

ladspa-svf

State Variable Filter

ladspa-tap-autopan

TAP AutoPanner

ladspa-tap-chorusflanger

TAP Chorus/Flanger

ladspa-tap-deesser

TAP DeEsser

ladspa-tap-doubler

TAP Fractal Doubler

ladspa-tap-dynamics-m

TAP Dynamics (M)

ladspa-tap-dynamics-st

TAP Dynamics (St)

ladspa-tap-equalizer

TAP Equalizer

ladspa-tap-equalizer-bw

TAP Equalizer/BW

ladspa-tap-limiter

TAP Scaling Limiter

ladspa-tap-pinknoise

TAP Pink/Fractal Noise

ladspa-tap-pitch

TAP Pitch Shifter

ladspa-tap-reflector

TAP Reflector

ladspa-tap-reverb

TAP Reverberator

ladspa-tap-rotspeak

TAP Rotary Speaker

ladspa-tap-sigmoid

TAP Sigmoid Booster

ladspa-tap-stereo-echo

TAP Stereo Echo

ladspa-tap-tremolo

TAP Tremolo

ladspa-tap-tubewarmth

TAP TubeWarmth

ladspa-tap-vibrato

TAP Vibrato

ladspa-tapeDelay

Tape Delay Simulation

ladspa-transient

Transient mangler

ladspa-triplePara

Triple band parametric with shelves

ladspa-valve

Valve saturation

ladspa-valveRect

Valve rectifier

ladspa-vynil

VyNil (Vinyl Effect)

ladspa-waveTerrain

Wave Terrain Oscillator

ladspa-xfade

Crossfade

ladspa-xfade4

Crossfade (4 outs)

ladspa-zm1

z-1
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html new file mode 100644 index 0000000..0252f57 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-legacyresample.html @@ -0,0 +1,74 @@ + + + + +legacyresample + + + + + + + + + + + + + + + + +
+
+
+ + +
+

legacyresample

+

legacyresample — Resamples audio

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstlegacyresample.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

legacyresample

Resample audio
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html new file mode 100644 index 0000000..7efff03 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-liveadder.html @@ -0,0 +1,74 @@ + + + + +liveadder + + + + + + + + + + + + + + + + +
+
+
+ + +
+

liveadder

+

liveadder — Adds multiple live discontinuous streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstliveadder.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

liveadder

Mixes live/discontinuous audio streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html new file mode 100644 index 0000000..c12dec7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-lv2.html @@ -0,0 +1,144 @@ + + + + +lv2 + + + + + + + + + + + + + + + + +
+
+
+ + +
+

lv2

+

lv2 — All LV2 plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstlv2.so

version

0.10.19.1

run-time license

LGPL

package

GStreamer Bad Plug-ins git

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

invadarecords-com-plugins-lv2-compressor-mono

Invada Compressor (mono)

invadarecords-com-plugins-lv2-compressor-stereo

Invada Compressor (stereo)

invadarecords-com-plugins-lv2-delay-mono

Invada Delay Munge (mono in)

invadarecords-com-plugins-lv2-delay-sum

Invada Delay Munge (sum L+R in)

invadarecords-com-plugins-lv2-erreverb-mono

Invada Early Reflection Reverb (mono in)

invadarecords-com-plugins-lv2-erreverb-sum

Invada Early Reflection Reverb (sum L+R in)

invadarecords-com-plugins-lv2-filter-hpf-mono

Invada High Pass Filter (mono)

invadarecords-com-plugins-lv2-filter-hpf-stereo

Invada High Pass Filter (stereo)

invadarecords-com-plugins-lv2-filter-lpf-mono

Invada Low Pass Filter (mono)

invadarecords-com-plugins-lv2-filter-lpf-stereo

Invada Low Pass Filter (stereo)

invadarecords-com-plugins-lv2-input

Invada Input Module

invadarecords-com-plugins-lv2-meter

Invada Meter

invadarecords-com-plugins-lv2-phaser-mono

Invada Stereo Phaser (mono in)

invadarecords-com-plugins-lv2-phaser-stereo

Invada Stereo Phaser (stereo in)

invadarecords-com-plugins-lv2-phaser-sum

Invada Stereo Phaser (sum L+R in)

invadarecords-com-plugins-lv2-testtone

Invada Test Tones

invadarecords-com-plugins-lv2-tube-mono

Invada Tube Distortion (mono)

invadarecords-com-plugins-lv2-tube-stereo

Invada Tube Distortion (stereo)
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html new file mode 100644 index 0000000..9519611 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mimic.html @@ -0,0 +1,80 @@ + + + + +mimic + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mimic

+

mimic — Mimic codec

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmimic.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

mimdec

MSN Messenger compatible Mimic video decoder element

mimenc

MSN Messenger compatible Mimic video encoder element
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html new file mode 100644 index 0000000..154c1f7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mms.html @@ -0,0 +1,74 @@ + + + + +mms + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mms

+

mms — Microsoft Multi Media Server streaming protocol support

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmms.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mmssrc

Receive data streamed via MSFT Multi Media Server protocol
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html new file mode 100644 index 0000000..8ef7a93 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-modplug.html @@ -0,0 +1,74 @@ + + + + +modplug + + + + + + + + + + + + + + + + +
+
+
+ + +
+

modplug

+

modplug — .MOD audio decoding

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmodplug.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

modplug

Module decoder based on modplug engine
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html new file mode 100644 index 0000000..89ebea1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg2enc.html @@ -0,0 +1,74 @@ + + + + +mpeg2enc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpeg2enc

+

mpeg2enc — High-quality MPEG-1/2 video encoder

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpeg2enc.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mpeg2enc

High-quality MPEG-1/2 video encoder
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html new file mode 100644 index 0000000..eff9b11 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpeg4videoparse.html @@ -0,0 +1,74 @@ + + + + +mpeg4videoparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpeg4videoparse

+

mpeg4videoparse — MPEG-4 video parser

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpeg4videoparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mpeg4videoparse

Parses MPEG-4 Part 2 elementary video streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html new file mode 100644 index 0000000..d0d8461 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegdemux2.html @@ -0,0 +1,84 @@ + + + + +mpegdemux2 + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpegdemux2

+

mpegdemux2 — MPEG demuxers

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpegdemux.so

version

0.10.22

run-time license

unknown

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + +

mpegpsdemux

Demultiplexes MPEG Program Streams

mpegtsdemux

Demultiplexes MPEG2 Transport Streams

mpegtsparse

Parses MPEG2 transport streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html new file mode 100644 index 0000000..32009dd --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegpsmux.html @@ -0,0 +1,74 @@ + + + + +mpegpsmux + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpegpsmux

+

mpegpsmux — MPEG-PS muxer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpegpsmux.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mpegpsmux

Multiplexes media streams into an MPEG Program Stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html new file mode 100644 index 0000000..7dd050c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegtsmux.html @@ -0,0 +1,74 @@ + + + + +mpegtsmux + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpegtsmux

+

mpegtsmux — MPEG-TS muxer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpegtsmux.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mpegtsmux

Multiplexes media streams into an MPEG Transport Stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html new file mode 100644 index 0000000..60f02d7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mpegvideoparse.html @@ -0,0 +1,74 @@ + + + + +mpegvideoparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mpegvideoparse

+

mpegvideoparse — MPEG-1 and MPEG-2 video parser

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmpegvideoparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mpegvideoparse

Parses and frames MPEG-1 and MPEG-2 elementary video streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html new file mode 100644 index 0000000..c8676ad --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mplex.html @@ -0,0 +1,74 @@ + + + + +mplex + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mplex

+

mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmplex.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

mplex

High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html new file mode 100644 index 0000000..330557d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musepack.html @@ -0,0 +1,74 @@ + + + + +musepack + + + + + + + + + + + + + + + + +
+
+
+ + +
+

musepack

+

musepack — Musepack decoder

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmusepack.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

musepackdec

Musepack decoder
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html new file mode 100644 index 0000000..97af081 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-musicbrainz.html @@ -0,0 +1,74 @@ + + + + +musicbrainz + + + + + + + + + + + + + + + + +
+
+
+ + +
+

musicbrainz

+

musicbrainz — A TRM signature producer based on libmusicbrainz

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgsttrm.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

trm

Compute MusicBrainz TRM Id using libmusicbrainz
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html new file mode 100644 index 0000000..ad4aa79 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mve.html @@ -0,0 +1,80 @@ + + + + +mve + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mve

+

mve — Interplay MVE movie format manipulation

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmve.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

mvedemux

Demultiplex an Interplay movie (MVE) stream into audio and video

mvemux

Muxes audio and video into an MVE stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html new file mode 100644 index 0000000..6449818 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-mxf.html @@ -0,0 +1,80 @@ + + + + +mxf + + + + + + + + + + + + + + + + +
+
+
+ + +
+

mxf

+

mxf — MXF plugin library

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstmxf.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

mxfdemux

Demux MXF files

mxfmux

Muxes video/audio streams into a MXF stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html new file mode 100644 index 0000000..a2145f1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nas.html @@ -0,0 +1,74 @@ + + + + +nas + + + + + + + + + + + + + + + + +
+
+
+ + +
+

nas

+

nas — NAS (Network Audio System) support for GStreamer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstnassink.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

nassink

Plays audio to a Network Audio Server
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html new file mode 100644 index 0000000..ea47b45 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-neon.html @@ -0,0 +1,74 @@ + + + + +neon + + + + + + + + + + + + + + + + +
+
+
+ + +
+

neon

+

neon — lib neon http client src

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstneonhttpsrc.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

neonhttpsrc

Receive data as a client over the network via HTTP using NEON
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html new file mode 100644 index 0000000..d53651d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nsf.html @@ -0,0 +1,74 @@ + + + + +nsf + + + + + + + + + + + + + + + + +
+
+
+ + +
+

nsf

+

nsf — Uses nosefart to decode .nsf files

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstnsf.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

nsfdec

Using nosefart to decode NSF audio tunes
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html new file mode 100644 index 0000000..c0c6f6a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-nuvdemux.html @@ -0,0 +1,74 @@ + + + + +nuvdemux + + + + + + + + + + + + + + + + +
+
+
+ + +
+

nuvdemux

+

nuvdemux — Demuxes MythTV NuppelVideo files

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstnuvdemux.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

nuvdemux

Demultiplex a MythTV NuppleVideo .nuv file into audio and video
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html new file mode 100644 index 0000000..cd5687b --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-opencv.html @@ -0,0 +1,120 @@ + + + + +opencv + + + + + + + + + + + + + + + + +
+
+
+ + +
+

opencv

+

opencv — GStreamer OpenCV Plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstopencv.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

cvdilate

Applies cvDilate OpenCV function to the image

cvequalizehist

Applies cvEqualizeHist OpenCV function to the image

cverode

Applies cvErode OpenCV function to the image

cvlaplace

Applies cvLaplace OpenCV function to the image

cvsmooth

Applies cvSmooth OpenCV function to the image

cvsobel

Applies cvSobel OpenCV function to the image

edgedetect

Performs canny edge detection on videos and images.

faceblur

Blurs faces in images and videos

facedetect

Performs face detection on videos and images, providing detected positions via bus messages

opencvtextoverlay

Write text on the top of video

pyramidsegment

Applies pyramid segmentation to a video or image.

templatematch

Performs template matching on videos and images, providing detected positions via bus messages
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html new file mode 100644 index 0000000..747a8a1 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-pcapparse.html @@ -0,0 +1,74 @@ + + + + +pcapparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

pcapparse

+

pcapparse — Element parsing raw pcap streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstpcapparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer

origin

http://gstreamer.net/
+
+
+

Elements

+
++ + + + +

pcapparse

Parses a raw pcap stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html new file mode 100644 index 0000000..8ec8388 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rawparse.html @@ -0,0 +1,80 @@ + + + + +rawparse + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rawparse

+

rawparse — Parses byte streams into raw frames

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstrawparse.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

audioparse

Converts stream into audio frames

videoparse

Converts stream into video frames
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html new file mode 100644 index 0000000..b09dd0d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-real.html @@ -0,0 +1,80 @@ + + + + +real + + + + + + + + + + + + + + + + +
+
+
+ + +
+

real

+

real — Decode REAL streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstreal.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

realaudiodec

Decoder for RealAudio streams

realvideodec

Decoder for RealVideo streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html new file mode 100644 index 0000000..6965716 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rfbsrc.html @@ -0,0 +1,74 @@ + + + + +rfbsrc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rfbsrc

+

rfbsrc — Connects to a VNC server and decodes RFB stream

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstrfbsrc.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

rfbsrc

Creates a rfb video stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html new file mode 100644 index 0000000..40262b2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rsvg.html @@ -0,0 +1,80 @@ + + + + +rsvg + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rsvg

+

rsvg — RSVG plugin library

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstrsvg.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

rsvgdec

Uses librsvg to decode SVG images

rsvgoverlay

Overlays SVG graphics over a video stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html new file mode 100644 index 0000000..79df05f --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-rtpmux.html @@ -0,0 +1,80 @@ + + + + +rtpmux + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rtpmux

+

rtpmux — RTP Muxer plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstrtpmux.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

rtpdtmfmux

mixes RTP DTMF streams into other RTP streams

rtpmux

multiplex N rtp streams into one
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html new file mode 100644 index 0000000..f4b015a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-scaletempo.html @@ -0,0 +1,74 @@ + + + + +scaletempo + + + + + + + + + + + + + + + + +
+
+
+ + +
+

scaletempo

+

scaletempo — Scale audio tempo in sync with playback rate

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstscaletempoplugin.so

version

0.10.22

run-time license

LGPL

package

GStreamer

origin

http://gstreamer.freedesktop.org/
+
+
+

Elements

+
++ + + + +

scaletempo

Sync audio tempo with playback rate
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html new file mode 100644 index 0000000..9f562ab --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdl.html @@ -0,0 +1,80 @@ + + + + +sdl + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sdl

+

sdl — SDL (Simple DirectMedia Layer) support for GStreamer

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstsdl.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

sdlaudiosink

Output to a sound card via SDLAUDIO

sdlvideosink

An SDL-based videosink
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html new file mode 100644 index 0000000..40ddbe7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sdp.html @@ -0,0 +1,74 @@ + + + + +sdp + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sdp

+

sdp — configure streaming sessions using SDP

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstsdpelem.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

sdpdemux

Receive data over the network via SDP
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html new file mode 100644 index 0000000..ac56efb --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-shm.html @@ -0,0 +1,80 @@ + + + + +shm + + + + + + + + + + + + + + + + +
+
+
+ + +
+

shm

+

shm — shared memory sink source

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstshm.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

shmsink

Send data over shared memory to the matching source

shmsrc

Receive data from the sharem memory sink
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html new file mode 100644 index 0000000..a5e5f59 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-sndfile.html @@ -0,0 +1,80 @@ + + + + +sndfile + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sndfile

+

sndfile — use libsndfile to read and write audio from and to files

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstsndfile.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

sfsink

Write audio streams to disk using libsndfile

sfsrc

Read audio streams from disk using libsndfile
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html new file mode 100644 index 0000000..a4c9a5d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-soundtouch.html @@ -0,0 +1,80 @@ + + + + +soundtouch + + + + + + + + + + + + + + + + +
+
+
+ + +
+

soundtouch

+

soundtouch — Audio Pitch Controller & BPM Detection

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstsoundtouch.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

bpmdetect

Detect the BPM of an audio stream

pitch

Control the pitch of an audio stream
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html new file mode 100644 index 0000000..a4599e4 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-spcdec.html @@ -0,0 +1,74 @@ + + + + +spcdec + + + + + + + + + + + + + + + + +
+
+
+ + +
+

spcdec

+

spcdec — OpenSPC Audio Decoder

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstspc.so

version

0.10.17

run-time license

LGPL

package

GStreamer Bad Plug-ins prerelease

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

spcdec

Uses OpenSPC to emulate an SPC processor
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html new file mode 100644 index 0000000..c18096c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-speed.html @@ -0,0 +1,74 @@ + + + + +speed + + + + + + + + + + + + + + + + +
+
+
+ + +
+

speed

+

speed — Set speed/pitch on audio/raw streams (resampler)

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstspeed.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

speed

Set speed/pitch on audio/raw streams (resampler)
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html new file mode 100644 index 0000000..40210ee --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-stereo.html @@ -0,0 +1,74 @@ + + + + +stereo + + + + + + + + + + + + + + + + +
+
+
+ + +
+

stereo

+

stereo — Muck with the stereo signal, enhance it's 'stereo-ness'

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgststereo.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

stereo

Muck with the stereo signal to enhance its 'stereo-ness'
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html new file mode 100644 index 0000000..1bec8c3 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-swfdec.html @@ -0,0 +1,74 @@ + + + + +swfdec + + + + + + + + + + + + + + + + +
+
+
+ + +
+

swfdec

+

swfdec — Uses libswfdec to decode Flash video streams

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstswfdec.so

version

0.10.4

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

swfdec

Uses libswfdec to decode Flash video streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html new file mode 100644 index 0000000..fd47f31 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-timidity.html @@ -0,0 +1,74 @@ + + + + +timidity + + + + + + + + + + + + + + + + +
+
+
+ + +
+

timidity

+

timidity — Timidity Plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgsttimidity.so

version

0.10.14.1

run-time license

GPL

package

GStreamer Bad Plug-ins git/prerelease

origin

http://gstreamer.freedesktop.org
+
+
+

Elements

+
++ + + + +

timidity

Midi Synthesizer Element
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html new file mode 100644 index 0000000..ab82d6e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-tta.html @@ -0,0 +1,80 @@ + + + + +tta + + + + + + + + + + + + + + + + +
+
+
+ + +
+

tta

+

tta — TTA lossless audio format handling

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgsttta.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

ttadec

Decode TTA audio data

ttaparse

Parses TTA files
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html new file mode 100644 index 0000000..6e0d20e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vcdsrc.html @@ -0,0 +1,74 @@ + + + + +vcdsrc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vcdsrc

+

vcdsrc — Asynchronous read from VCD disk

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstvcdsrc.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

vcdsrc

Asynchronous read from VCD disk
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html new file mode 100644 index 0000000..64b2ab7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videomaxrate.html @@ -0,0 +1,74 @@ + + + + +videomaxrate + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videomaxrate

+

videomaxrate — Drop extra frames

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstvideomaxrate.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

videomaxrate

Drops extra frames
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html new file mode 100644 index 0000000..c77945a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-videosignal.html @@ -0,0 +1,84 @@ + + + + +videosignal + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videosignal

+

videosignal — Various video signal analysers

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstvideosignal.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + + + + + +

videoanalyse

Analyse video signal

videodetect

Detect patterns in a video signal

videomark

Marks a video signal with a pattern
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html new file mode 100644 index 0000000..9c45f47 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vmnc.html @@ -0,0 +1,74 @@ + + + + +vmnc + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vmnc

+

vmnc — VmWare Video Codec plugins

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstvmnc.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

vmncdec

Decode VmWare video to raw (RGB) video
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html new file mode 100644 index 0000000..733791e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-vp8.html @@ -0,0 +1,80 @@ + + + + +vp8 + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vp8

+

vp8 — VP8 plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstvp8.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

vp8dec

Decode VP8 video streams

vp8enc

Encode VP8 video streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html new file mode 100644 index 0000000..1c9ae56 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-wildmidi.html @@ -0,0 +1,74 @@ + + + + +wildmidi + + + + + + + + + + + + + + + + +
+
+
+ + +
+

wildmidi

+

wildmidi — Wildmidi Plugin

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstwildmidi.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

wildmidi

Midi Synthesizer Element
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html new file mode 100644 index 0000000..66a53a0 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-xvid.html @@ -0,0 +1,80 @@ + + + + +xvid + + + + + + + + + + + + + + + + +
+
+
+ + +
+

xvid

+

xvid — XviD plugin library

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstxvid.so

version

0.10.22

run-time license

GPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + + + + + + + +

xviddec

XviD decoder based on xvidcore

xvidenc

XviD encoder based on xvidcore
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html new file mode 100644 index 0000000..b03f64e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-plugin-zbar.html @@ -0,0 +1,74 @@ + + + + +zbar + + + + + + + + + + + + + + + + +
+
+
+ + +
+

zbar

+

zbar — zbar barcode scanner

+
+
+

Plugin Information

+
++ + + + + + + + + + + + + + + + + + + + + + +

filename

libgstzbar.so

version

0.10.22

run-time license

LGPL

package

GStreamer Bad Plug-ins source release

origin

Unknown package origin
+
+
+

Elements

+
++ + + + +

zbar

Detect bar codes in the video streams
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html b/docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html new file mode 100644 index 0000000..5d84cc8 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-pyramidsegment.html @@ -0,0 +1,223 @@ + + + + +pyramidsegment + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

pyramidsegment

+

pyramidsegment — Applies pyramid segmentation to a video or image.

+
+
+

Synopsis

+
struct              GstPinch;
+struct              Gstpyramidsegment;
+
+
+
+

Properties

+
+  "level"                    gint                  : Read / Write
+  "silent"                   gboolean              : Read / Write
+  "threshold1"               gdouble               : Read / Write
+  "threshold2"               gdouble               : Read / Write
+
+
+
+

Description

+

+FIXME:Describe pyramidsegment here. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v -m fakesrc ! pyramidsegment ! fakesink silent=TRUE
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Michael Sheldon <mike@mikeasoft.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstPinch

+
struct GstPinch;
+

+

+
+
+
+

struct Gstpyramidsegment

+
struct Gstpyramidsegment {
+  GstElement element;
+
+  GstPad *sinkpad, *srcpad;
+
+  gboolean silent;
+
+  IplImage *cvImage, *cvSegmentedImage;
+
+  CvMemStorage *storage;
+
+  CvSeq *comp;
+
+  double threshold1, threshold2;
+
+  int level;
+};
+
+

+

+
+
+
+

Property Details

+
+

The "level" property

+
  "level"                    gint                  : Read / Write
+

Maximum level of the pyramid segmentation.

+

Allowed values: [0,4]

+

Default value: 4

+
+
+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "threshold1" property

+
  "threshold1"               gdouble               : Read / Write
+

Error threshold for establishing links.

+

Allowed values: [0,1000]

+

Default value: 50

+
+
+
+

The "threshold2" property

+
  "threshold2"               gdouble               : Read / Write
+

Error threshold for segment clustering.

+

Allowed values: [0,1000]

+

Default value: 60

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html b/docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html new file mode 100644 index 0000000..6adeee7 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rsvgdec.html @@ -0,0 +1,169 @@ + + + + +rsvgdec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rsvgdec

+

rsvgdec — Uses librsvg to decode SVG images

+
+
+

Synopsis

+
struct              GstRsvgDec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstRsvgDec
+
+
+
+

Description

+

+This elements renders SVG graphics. +

+

+

+
+

Example launch lines

+
+ + + + + + + +
1
gst-launch filesrc location=image.svg ! rsvgdec ! imagefreeze ! ffmpegcolorspace ! autovideosink
+
+ render and show a svg image. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ rsvg +

author

Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Codec/Decoder/Image
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

image/svg+xml

image/svg
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstRsvgDec

+
struct GstRsvgDec;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html b/docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html new file mode 100644 index 0000000..ecb79d5 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rsvgoverlay.html @@ -0,0 +1,344 @@ + + + + +rsvgoverlay + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rsvgoverlay

+

rsvgoverlay — Overlays SVG graphics over a video stream

+
+
+

Synopsis

+
struct              GstRsvgOverlay;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstRsvgOverlay
+
+
+
+

Properties

+
+  "data"                     gchar*                : Write
+  "fit-to-frame"             gboolean              : Read / Write
+  "location"                 gchar*                : Write
+  "x"                        gint                  : Read / Write
+  "y"                        gint                  : Read / Write
+  "height"                   gint                  : Read / Write
+  "height-relative"          gfloat                : Read / Write
+  "width"                    gint                  : Read / Write
+  "width-relative"           gfloat                : Read / Write
+  "x-relative"               gfloat                : Read / Write
+  "y-relative"               gfloat                : Read / Write
+
+
+
+

Description

+

+This elements overlays SVG graphics over the video. SVG data can +either be specified through properties, or fed through the +data-sink pad. +

+

+Position and dimension of the SVG graphics can be achieved by +specifying appropriate dimensions in the SVG file itself, but +shortcuts are provided by the element to specify x/y position and +width/height dimension, both in absolute form (pixels) and in +relative form (percentage of video dimension). +

+

+For any measure (x/y/width/height), the absolute value (in pixels) +takes precedence over the relative one if both are +specified. Absolute values must be set to 0 to disable them. +

+

+If all parameters are 0, the image is displayed without rescaling +at (0, 0) position. +

+

+The fit-to-frame property is a shortcut for displaying the SVG +overlay at (0, 0) position filling the whole screen. It modifies +the values of the x/y/width/height attributes, by setting +height-/width-relative to 1.0. and all other attributes to 0. +

+

+

+
+

Example launch lines

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! ffmpegcolorspace ! rsvgoverlay location=foo.svg ! ffmpegcolorspace ! autovideosink
+
+ specifies the SVG location through the filename property. +
+ + + + + + + +
1
gst-launch -v videotestsrc ! ffmpegcolorspace ! rsvgoverlay name=overlay ! ffmpegcolorspace ! autovideosink filesrc location=foo.svg ! image/svg ! overlay.data_sink
+
+ does the same by feeding data through the data_sink pad. You can also specify the SVG data itself as parameter: +
+ + + + + + + +
1
gst-launch -v videotestsrc ! ffmpegcolorspace ! rsvgoverlay data='<svg viewBox="0 0 800 600"><image x="80%" y="80%" width="10%" height="10%" xlink:href="foo.jpg" /></svg>' ! ffmpegcolorspace ! autovideosink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ rsvg +

author

Olivier Aubert <olivier.aubert@liris.cnrs.fr>

class

Filter/Editor/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + +

name

data_sink

direction

sink

presence

always

details

image/svg+xml

image/svg

text/plain
+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstRsvgOverlay

+
struct GstRsvgOverlay;
+

+Opaque object data structure. +

+
+
+
+

Property Details

+
+

The "data" property

+
  "data"                     gchar*                : Write
+

SVG data.

+

Default value: ""

+
+
+
+

The "fit-to-frame" property

+
  "fit-to-frame"             gboolean              : Read / Write
+

Fit the SVG to fill the whole frame.

+

Default value: TRUE

+
+
+
+

The "location" property

+
  "location"                 gchar*                : Write
+

SVG file location.

+

Default value: ""

+
+
+
+

The "x" property

+
  "x"                        gint                  : Read / Write
+

Specify an x offset.

+

Allowed values: >= -2147483647

+

Default value: 0

+
+
+
+

The "y" property

+
  "y"                        gint                  : Read / Write
+

Specify a y offset.

+

Allowed values: >= -2147483647

+

Default value: 0

+
+
+
+

The "height" property

+
  "height"                   gint                  : Read / Write
+

Specify a height in pixels.

+

Allowed values: >= -2147483647

+

Default value: 0

+
+
+
+

The "height-relative" property

+
  "height-relative"          gfloat                : Read / Write
+

Specify a height relative to the display size.

+

Default value: 0

+
+
+
+

The "width" property

+
  "width"                    gint                  : Read / Write
+

Specify a width in pixels.

+

Allowed values: >= -2147483647

+

Default value: 0

+
+
+
+

The "width-relative" property

+
  "width-relative"           gfloat                : Read / Write
+

Specify a width relative to the display size.

+

Default value: 0

+
+
+
+

The "x-relative" property

+
  "x-relative"               gfloat                : Read / Write
+

Specify an x offset relative to the display size.

+

Default value: 0

+
+
+
+

The "y-relative" property

+
  "y-relative"               gfloat                : Read / Write
+

Specify a y offset relative to the display size.

+

Default value: 0

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html new file mode 100644 index 0000000..4743b5e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfdepay.html @@ -0,0 +1,233 @@ + + + + +rtpdtmfdepay + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rtpdtmfdepay

+

rtpdtmfdepay — Generates DTMF Sound from telephone-event RTP packets

+
+
+

Synopsis

+
struct              GstRtpDTMFDepay;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseRTPDepayload
+                     +----GstRtpDTMFDepay
+
+
+
+

Properties

+
+  "max-duration"             guint                 : Read / Write
+  "unit-time"                guint                 : Read / Write
+
+
+
+

Description

+

+This element takes RTP DTMF packets and produces sound. It also emits a +message on the GstBus. +

+

+The message is called "dtmf-event" and has the following fields +

+
++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameGTypePossible valuesPurpose
 G_TYPE_INT0-1Which of the two methods +specified in RFC 2833 to use. The value should be 0 for tones and 1 for +named events. Tones are specified by their frequencies and events are specied +by their number. This element currently only recognizes events. +Do not confuse with "method" which specified the output. +
numberG_TYPE_INT0-16The event number.
volumeG_TYPE_INT0-36This field describes the power level of the tone, expressed in dBm0 +after dropping the sign. Power levels range from 0 to -63 dBm0. The range of +valid DTMF is from 0 to -36 dBm0. +
methodG_TYPE_INT1This field will always been 1 (ie RTP event) from this element. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dtmf +

author

Youness Alaoui <youness.alaoui@collabora.co.uk>

class

Codec/Depayloader/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 0, 2147483647 ], channels=(int)1
+
+
+

+

+
+
+

Details

+
+

struct GstRtpDTMFDepay

+
struct GstRtpDTMFDepay;
+

+

+
+
+
+

Property Details

+
+

The "max-duration" property

+
  "max-duration"             guint                 : Read / Write
+

The maxumimum duration (ms) of the outgoing soundpacket. (0 = no limit).

+

Default value: 0

+
+
+
+

The "unit-time" property

+
  "unit-time"                guint                 : Read / Write
+

The smallest unit (ms) the duration must be a multiple of (0 disables it).

+

Allowed values: <= 1000

+

Default value: 0

+
+
+
+

See Also

+rtpdtmfsrc, rtpdtmfmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html new file mode 100644 index 0000000..6a7fad6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfmux.html @@ -0,0 +1,237 @@ + + + + +rtpdtmfmux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rtpdtmfmux

+

rtpdtmfmux — mixes RTP DTMF streams into other RTP streams

+
+
+

Synopsis

+
struct              GstRTPDTMFMux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstRTPMux
+                     +----GstRTPDTMFMux
+
+
+
+

Signals

+
+  "locking"                                        : Run Last
+  "unlocked"                                       : Run Last
+
+
+
+

Description

+

+The RTP "DTMF" Muxer muxes multiple RTP streams into a valid RTP +stream. It does exactly what it's parent (rtpmux) does, except +that it prevent buffers coming over a regular sink_%d pad from going through +for the duration of buffers that came in a priority_sink_%d pad. +

+

+This is especially useful if a discontinuous source like dtmfsrc or +rtpdtmfsrc are connected to the priority sink pads. This way, the generated +DTMF signal can replace the recorded audio while the tone is being sent. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ rtpmux +

author

Zeeshan Ali <first.last@nokia.com>

class

Codec/Muxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

priority_sink_%d

direction

sink

presence

request

details

application/x-rtp
+
++ + + + + + + + + + + + + + + + + + +

name

sink_%d

direction

sink

presence

request

details

application/x-rtp
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

application/x-rtp
+
+
+

+

+
+
+

Details

+
+

struct GstRTPDTMFMux

+
struct GstRTPDTMFMux;
+

+The opaque GstRTPDTMFMux structure. +

+
+
+
+

Signal Details

+
+

The "locking" signal

+
void                user_function                      (GstRTPDTMFMux *gstrtpdtmfmux,
+                                                        GstPad        *arg1,
+                                                        gpointer       user_data)          : Run Last
+

+

+
++ + + + + + + + + + +

gstrtpdtmfmux :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "unlocked" signal

+
void                user_function                      (GstRTPDTMFMux *gstrtpdtmfmux,
+                                                        GstPad        *arg1,
+                                                        gpointer       user_data)          : Run Last
+

+

+
++ + + + + + + + + + +

gstrtpdtmfmux :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

See Also

+rtpdtmfsrc, dtmfsrc, rtpmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html new file mode 100644 index 0000000..a5516fd --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpdtmfsrc.html @@ -0,0 +1,306 @@ + + + + +rtpdtmfsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rtpdtmfsrc

+

rtpdtmfsrc — Generates RTP DTMF packets

+
+
+

Synopsis

+
struct              GstRTPDTMFSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstRTPDTMFSrc
+
+
+
+

Properties

+
+  "clock-rate"               guint                 : Read / Write
+  "interval"                 guint                 : Read / Write
+  "packet-redundancy"        guint                 : Read / Write
+  "pt"                       guint                 : Read / Write
+  "seqnum"                   guint                 : Read
+  "seqnum-offset"            gint                  : Read / Write
+  "ssrc"                     guint                 : Read / Write
+  "timestamp"                guint                 : Read
+  "timestamp-offset"         gint                  : Read / Write
+
+
+
+

Description

+

+The RTPDTMFSrc element generates RTP DTMF (RFC 2833) event packets on request +from application. The application communicates the beginning and end of a +DTMF event using custom upstream gstreamer events. To report a DTMF event, an +application must send an event of type GST_EVENT_CUSTOM_UPSTREAM, having a +structure of name "dtmf-event" with fields set according to the following +table: +

+

+

+
++++++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameGTypePossible valuesPurpose
typeG_TYPE_INT0-1The application uses this field to specify which of the two methods +specified in RFC 2833 to use. The value should be 0 for tones and 1 for +named events. Tones are specified by their frequencies and events are specied +by their number. This element can only take events as input. Do not confuse +with "method" which specified the output. +
numberG_TYPE_INT0-16The event number.
volumeG_TYPE_INT0-36This field describes the power level of the tone, expressed in dBm0 +after dropping the sign. Power levels range from 0 to -63 dBm0. The range of +valid DTMF is from 0 to -36 dBm0. Can be omitted if start is set to FALSE. +
startG_TYPE_BOOLEANTrue or FalseWhether the event is starting or ending.
methodG_TYPE_INT1The method used for sending event, this element will react if this +field is absent or 1. +
+

+

+

+For example, the following code informs the pipeline (and in turn, the +RTPDTMFSrc element inside the pipeline) about the start of an RTP DTMF named +event '1' of volume -25 dBm0: +

+

+

+
+structure = gst_structure_new ("dtmf-event",
+                   "type", G_TYPE_INT, 1,
+                   "number", G_TYPE_INT, 1,
+                   "volume", G_TYPE_INT, 25,
+                   "start", G_TYPE_BOOLEAN, TRUE, NULL);
+
+event = gst_event_new_custom (GST_EVENT_CUSTOM_UPSTREAM, structure);
+gst_element_send_event (pipeline, event);
+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ dtmf +

author

Zeeshan Ali <zeeshan.ali@nokia.com>

class

Source/Network
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], ssrc=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT
+
+
+

+

+
+
+

Details

+
+

struct GstRTPDTMFSrc

+
struct GstRTPDTMFSrc;
+

+The opaque GstRTPDTMFSrc data structure. +

+
++ +
+
+
+
+

Property Details

+
+

The "clock-rate" property

+
  "clock-rate"               guint                 : Read / Write
+

The clock-rate at which to generate the dtmf packets.

+

Default value: 8000

+
+
+
+

The "interval" property

+
  "interval"                 guint                 : Read / Write
+

Interval in ms between two rtp packets.

+

Allowed values: [10,50]

+

Default value: 50

+
+
+
+

The "packet-redundancy" property

+
  "packet-redundancy"        guint                 : Read / Write
+

Number of packets to send to indicate start and stop dtmf events.

+

Allowed values: [1,5]

+

Default value: 1

+
+
+
+

The "pt" property

+
  "pt"                       guint                 : Read / Write
+

The payload type of the packets.

+

Allowed values: <= 128

+

Default value: 96

+
+
+
+

The "seqnum" property

+
  "seqnum"                   guint                 : Read
+

The RTP sequence number of the last processed packet.

+

Default value: 0

+
+
+
+

The "seqnum-offset" property

+
  "seqnum-offset"            gint                  : Read / Write
+

Offset to add to all outgoing seqnum (-1 = random).

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

The "ssrc" property

+
  "ssrc"                     guint                 : Read / Write
+

The SSRC of the packets (-1 == random).

+

Default value: 4294967295

+
+
+
+

The "timestamp" property

+
  "timestamp"                guint                 : Read
+

The RTP timestamp of the last processed packet.

+

Default value: 0

+
+
+
+

The "timestamp-offset" property

+
  "timestamp-offset"         gint                  : Read / Write
+

Offset to add to all outgoing timestamps (-1 = random).

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

See Also

+dtmfsrc, rtpdtmfdepay, rtpdtmfmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html b/docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html new file mode 100644 index 0000000..bb43e86 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-rtpmux.html @@ -0,0 +1,231 @@ + + + + +rtpmux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

rtpmux

+

rtpmux — multiplex N rtp streams into one

+
+
+

Synopsis

+
struct              GstRTPMux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstRTPMux
+                     +----GstRTPDTMFMux
+
+
+
+

Properties

+
+  "seqnum"                   guint                 : Read
+  "seqnum-offset"            gint                  : Read / Write
+  "ssrc"                     guint                 : Read / Write
+  "timestamp-offset"         gint                  : Read / Write
+
+
+
+

Description

+

+The rtp muxer takes multiple RTP streams having the same clock-rate and +muxes into a single stream with a single SSRC. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
+2
+3
+4
+5
+6
gst-launch rtpmux name=mux ! udpsink host=127.0.0.1 port=8888        \
+             alsasrc ! alawenc ! rtppcmapay !                        \
+             application/x-rtp, payload=8, rate=8000 ! mux.sink_0    \
+             audiotestsrc is-live=1 !                                \
+             mulawenc ! rtppcmupay !                                 \
+             application/x-rtp, payload=0, rate=8000 ! mux.sink_1
+
+ +In this example, an audio stream is captured from ALSA and another is +generated, both are encoded into different payload types and muxed together +so they can be sent on the same port. +
+

+

+

+Last reviewed on 2010-09-30 (0.10.21) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ rtpmux +

author

Zeeshan Ali <first.last@nokia.com>

class

Codec/Muxer
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink_%d

direction

sink

presence

request

details

application/x-rtp
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

application/x-rtp
+
+
+

+

+
+
+

Details

+
+

struct GstRTPMux

+
struct GstRTPMux;
+

+The opaque GstRTPMux structure. +

+
+
+
+

Property Details

+
+

The "seqnum" property

+
  "seqnum"                   guint                 : Read
+

The RTP sequence number of the last processed packet.

+

Default value: 0

+
+
+
+

The "seqnum-offset" property

+
  "seqnum-offset"            gint                  : Read / Write
+

Offset to add to all outgoing seqnum (-1 = random).

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

The "ssrc" property

+
  "ssrc"                     guint                 : Read / Write
+

The SSRC of the packets (-1 == random).

+

Default value: 4294967295

+
+
+
+

The "timestamp-offset" property

+
  "timestamp-offset"         gint                  : Read / Write
+

Offset to add to all outgoing timestamps (-1 = random).

+

Allowed values: >= G_MAXULONG

+

Default value: -1

+
+
+
+

See Also

+rtpdtmfmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html b/docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html new file mode 100644 index 0000000..8a6299e --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-scaletempo.html @@ -0,0 +1,243 @@ + + + + +scaletempo + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

scaletempo

+

scaletempo — Sync audio tempo with playback rate

+
+
+

Synopsis

+
struct              GstScaletempo;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstScaletempo
+
+
+
+

Properties

+
+  "overlap"                  gdouble               : Read / Write
+  "rate"                     gdouble               : Read
+  "search"                   guint                 : Read / Write
+  "stride"                   guint                 : Read / Write
+
+
+
+

Description

+

+

+
+

Example pipelines

+

+Scale tempo while maintaining pitch +(WSOLA-like technique with cross correlation) +Inspired by SoundTouch library by Olli Parviainen +

+

+Use Sceletempo to apply playback rates without the chipmunk effect. +

+

+

+
+filesrc location=media.ext ! decodebin name=d \
+    d. ! queue ! audioconvert ! audioresample ! scaletempo ! audioconvert ! audioresample ! autoaudiosink \
+    d. ! queue ! ffmpegcolorspace ! autovideosink
+
+

+OR +

+
+playbin uri=... audio_sink="scaletempo ! audioconvert ! audioresample ! autoaudiosink"
+
+

+When an application sends a seek event with rate != 1.0, Scaletempo applies +the rate change by scaling the tempo without scaling the pitch. +

+

+Scaletempo works by producing audio in constant sized chunks (a "stride") but +consuming chunks proportional to the playback rate. +

+

+Scaletempo then smooths the output by blending the end of one stride with +the next ("overlap"). +

+

+Scaletempo smooths the overlap further by searching within the input buffer +for the best overlap position. Scaletempo uses a statistical cross correlation +(roughly a dot-product). Scaletempo consumes most of its CPU cycles here. +

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ scaletempo +

author

Rov Juvano <rovjuvano@users.sourceforge.net>

class

Filter/Effect/Rate
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstScaletempo

+
struct GstScaletempo;
+

+

+
+
+
+

Property Details

+
+

The "overlap" property

+
  "overlap"                  gdouble               : Read / Write
+

Percentage of stride to overlap.

+

Allowed values: [0,1]

+

Default value: 0.2

+
+
+
+

The "rate" property

+
  "rate"                     gdouble               : Read
+

Current playback rate.

+

Allowed values: [-2.14748e+09,2.14748e+09]

+

Default value: 1

+
+
+
+

The "search" property

+
  "search"                   guint                 : Read / Write
+

Length in milliseconds to search for best overlap position.

+

Allowed values: <= 500

+

Default value: 14

+
+
+
+

The "stride" property

+
  "stride"                   guint                 : Read / Write
+

Length in milliseconds to output each stride.

+

Allowed values: [1,5000]

+

Default value: 30

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html b/docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html new file mode 100644 index 0000000..defb455 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdlaudiosink.html @@ -0,0 +1,130 @@ + + + + +sdlaudiosink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sdlaudiosink

+

sdlaudiosink — Output to a sound card via SDLAUDIO

+
+
+

Synopsis

+
struct              GstSDLAudioSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstBaseAudioSink
+                           +----GstAudioSink
+                                 +----GstSDLAudioSink
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ sdl +

author

Edgard Lima <edgard.lima@indt.org.br>

class

Sink/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, endianness=(int){ 1234 }, signed=(boolean){ true, false }, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]

audio/x-raw-int, endianness=(int){ 1234 }, signed=(boolean){ true, false }, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSDLAudioSink

+
struct GstSDLAudioSink;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html b/docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html new file mode 100644 index 0000000..0e13f12 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdlvideosink.html @@ -0,0 +1,166 @@ + + + + +sdlvideosink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sdlvideosink

+

sdlvideosink — An SDL-based videosink

+
+
+

Synopsis

+
struct              GstSDLVideoSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstVideoSink
+                           +----GstSDLVideoSink
+
+
+
+

Implemented Interfaces

+

+GstSDLVideoSink implements + GstImplementsInterface, GstXOverlay and GstNavigation.

+
+
+

Properties

+
+  "fullscreen"               gboolean              : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ sdl +

author

Ronald Bultje <rbultje@ronald.bitfreak.net>, Edgard Lima <edgard.lima@indt.org.br>, Jan Schmidt <thaytan@mad.scientist.com>

class

Sink/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]

video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]

video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]

video/x-raw-yuv, format=(fourcc)YVYU, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]

video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSDLVideoSink

+
struct GstSDLVideoSink;
+

+

+
+
+
+

Property Details

+
+

The "fullscreen" property

+
  "fullscreen"               gboolean              : Read / Write
+

If true it will be Full screen.

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html b/docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html new file mode 100644 index 0000000..8023316 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-sdpdemux.html @@ -0,0 +1,232 @@ + + + + +sdpdemux + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sdpdemux

+

sdpdemux — Receive data over the network via SDP

+
+
+

Synopsis

+
struct              GstSDPDemux;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBin
+                     +----GstSDPDemux
+
+
+
+

Implemented Interfaces

+

+GstSDPDemux implements + GstChildProxy.

+
+
+

Properties

+
+  "debug"                    gboolean              : Read / Write / Construct
+  "latency"                  guint                 : Read / Write / Construct
+  "timeout"                  guint64               : Read / Write / Construct
+  "redirect"                 gboolean              : Read / Write / Construct
+
+
+
+

Description

+

+sdpdemux currently understands SDP as the input format of the session description. +For each stream listed in the SDP a new rtp_streamd pad will be created +with caps derived from the SDP media description. This is a caps of mime type +"application/x-rtp" that can be connected to any available RTP depayloader +element. +

+

+sdpdemux will internally instantiate an RTP session manager element +that will handle the RTCP messages to and from the server, jitter removal, +packet reordering along with providing a clock for the pipeline. +

+

+sdpdemux acts like a live element and will therefore only generate data in the +PLAYING state. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch gnomevfssrc location=http://some.server/session.sdp ! sdpdemux ! fakesink
+
+ Establish a connection to an HTTP server that contains an SDP session description +that gets parsed by sdpdemux and send the raw RTP packets to a fakesink. +
+

+

+

+Last reviewed on 2007-10-01 (0.10.6) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ sdp +

author

Wim Taymans <wim.taymans@gmail.com>

class

Codec/Demuxer/Network/RTP
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

application/sdp
+
++ + + + + + + + + + + + + + + + + + +

name

stream%d

direction

source

presence

sometimes

details

application/x-rtp
+
+
+

+

+
+
+

Details

+
+

struct GstSDPDemux

+
struct GstSDPDemux;
+

+

+
+
+
+

Property Details

+
+

The "debug" property

+
  "debug"                    gboolean              : Read / Write / Construct
+

Dump request and response messages to stdout.

+

Default value: FALSE

+
+
+
+

The "latency" property

+
  "latency"                  guint                 : Read / Write / Construct
+

Amount of ms to buffer.

+

Default value: 200

+
+
+
+

The "timeout" property

+
  "timeout"                  guint64               : Read / Write / Construct
+

Fail transport after UDP timeout microseconds (0 = disabled).

+

Default value: 10000000

+
+
+
+

The "redirect" property

+
  "redirect"                 gboolean              : Read / Write / Construct
+

Sends a redirection message instead of using a custom session element.

+

Default value: TRUE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-shmsink.html b/docs/plugins/html/gst-plugins-bad-plugins-shmsink.html new file mode 100644 index 0000000..5a9de6c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-shmsink.html @@ -0,0 +1,221 @@ + + + + +shmsink + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

shmsink

+

shmsink — Send data over shared memory to the matching source

+
+
+

Synopsis

+
struct              GstShmSink;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSink
+                     +----GstShmSink
+
+
+
+

Properties

+
+  "perms"                    guint                 : Read / Write
+  "shm-size"                 guint                 : Read / Write
+  "socket-path"              gchar*                : Read / Write
+  "wait-for-connection"      gboolean              : Read / Write
+
+
+ +
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ shm +

author

Olivier Crete <olivier.crete@collabora.co.uk>

class

Sink
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstShmSink

+
struct GstShmSink;
+

+

+
+
+
+

Property Details

+
+

The "perms" property

+
  "perms"                    guint                 : Read / Write
+

Permissions to set on the shm area.

+

Allowed values: <= 4095

+

Default value: 416

+
+
+
+

The "shm-size" property

+
  "shm-size"                 guint                 : Read / Write
+

Size of the shared memory area.

+

Default value: 262144

+
+
+
+

The "socket-path" property

+
  "socket-path"              gchar*                : Read / Write
+

The path to the control socket used to control the shared memory transport.

+

Default value: NULL

+
+
+
+

The "wait-for-connection" property

+
  "wait-for-connection"      gboolean              : Read / Write
+

Block the stream until the shm pipe is connected.

+

Default value: TRUE

+
+
+
+

Signal Details

+
+

The "client-connected" signal

+
void                user_function                      (GstShmSink *gstshmsink,
+                                                        gint        arg1,
+                                                        gpointer    user_data)       : Run Last
+

+

+
++ + + + + + + + + + +

gstshmsink :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+

The "client-disconnected" signal

+
void                user_function                      (GstShmSink *gstshmsink,
+                                                        gint        arg1,
+                                                        gpointer    user_data)       : Run Last
+

+

+
++ + + + + + + + + + +

gstshmsink :

the object which received the signal.

user_data :

user data set when the signal handler was connected.
+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html b/docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html new file mode 100644 index 0000000..f61a89a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-shmsrc.html @@ -0,0 +1,150 @@ + + + + +shmsrc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

shmsrc

+

shmsrc — Receive data from the sharem memory sink

+
+
+

Synopsis

+
struct              GstShmSrc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseSrc
+                     +----GstPushSrc
+                           +----GstShmSrc
+
+
+
+

Properties

+
+  "is-live"                  gboolean              : Read / Write
+  "socket-path"              gchar*                : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ shm +

author

Olivier Crete <olivier.crete@collabora.co.uk

class

Source
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

ANY
+
+
+

+

+
+
+

Details

+
+

struct GstShmSrc

+
struct GstShmSrc;
+

+

+
+
+
+

Property Details

+
+

The "is-live" property

+
  "is-live"                  gboolean              : Read / Write
+

True if the element cannot produce data in PAUSED.

+

Default value: FALSE

+
+
+
+

The "socket-path" property

+
  "socket-path"              gchar*                : Read / Write
+

The path to the control socket used to control the shared memory transport.

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-solarize.html b/docs/plugins/html/gst-plugins-bad-plugins-solarize.html new file mode 100644 index 0000000..935e73c --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-solarize.html @@ -0,0 +1,219 @@ + + + + +solarize + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

solarize

+

solarize — Solarize tunable inverse in the video signal.

+
+
+

Synopsis

+
struct              GstSolarize;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstSolarize
+
+
+
+

Properties

+
+  "silent"                   gboolean              : Read / Write
+  "end"                      guint                 : Read / Write
+  "start"                    guint                 : Read / Write
+  "threshold"                guint                 : Read / Write
+
+
+
+

Description

+

+Solarize does a smart inverse in a video stream in realtime. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -v videotestsrc ! solarize ! ffmpegcolorspace ! autovideosink
+
+ This pipeline shows the effect of solarize on a test stream +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ gaudieffects +

author

Luis de Bethencourt <luis@debethencourt.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSolarize

+
struct GstSolarize;
+

+

+
+
+
+

Property Details

+
+

The "silent" property

+
  "silent"                   gboolean              : Read / Write
+

Produce verbose output ?.

+

Default value: FALSE

+
+
+
+

The "end" property

+
  "end"                      guint                 : Read / Write
+

End parameter.

+

Allowed values: <= 256

+

Default value: 185

+
+
+
+

The "start" property

+
  "start"                    guint                 : Read / Write
+

Start parameter.

+

Allowed values: <= 256

+

Default value: 50

+
+
+
+

The "threshold" property

+
  "threshold"                guint                 : Read / Write
+

Threshold parameter.

+

Allowed values: <= 256

+

Default value: 127

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-speed.html b/docs/plugins/html/gst-plugins-bad-plugins-speed.html new file mode 100644 index 0000000..8eed5cc --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-speed.html @@ -0,0 +1,200 @@ + + + + +speed + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

speed

+

speed — Set speed/pitch on audio/raw streams (resampler)

+
+
+

Synopsis

+
struct              GstSpeed;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstSpeed
+
+
+
+

Properties

+
+  "speed"                    gfloat                : Read / Write / Construct
+
+
+
+

Description

+

+Plays an audio stream at a different speed. +

+

+Do not use this element. Either use the 'pitch' element, or do a seek with +a non-1.0 rate parameter, this will have the same effect as using the speed +element (but relies on the decoder/demuxer to handle this correctly, also +requires a fairly up-to-date gst-plugins-base, as of February 2007). +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch filesrc location=test.ogg ! decodebin ! audioconvert ! speed speed=1.5 ! audioconvert ! audioresample ! autoaudiosink
+
+ Plays an .ogg file at 1.5x speed. +
+

+

+

+Last reviewed on 2007-02-26 (0.10.4.1) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ speed +

author

Andy Wingo <apwingo@eos.ncsu.edu>, Tim-Philipp Müller <tim@centricular.net>

class

Filter/Effect/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32

audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstSpeed

+
struct GstSpeed;
+

+

+
+
+
+

Property Details

+
+

The "speed" property

+
  "speed"                    gfloat                : Read / Write / Construct
+

speed.

+

Allowed values: [0.1,40]

+

Default value: 1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-sphere.html b/docs/plugins/html/gst-plugins-bad-plugins-sphere.html new file mode 100644 index 0000000..33c5fe9 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-sphere.html @@ -0,0 +1,269 @@ + + + + +sphere + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

sphere

+

sphere — Applies 'sphere' geometric transform to the image

+
+
+

Synopsis

+
struct              GstSphere;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstSphere
+
+
+
+

Properties

+
+  "refraction"               gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSphere

+
struct GstSphere;
+

+

+
+
+
+

Property Details

+
+

The "refraction" property

+
  "refraction"               gdouble               : Read / Write
+

refraction index.

+

Default value: 1.5

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-square.html b/docs/plugins/html/gst-plugins-bad-plugins-square.html new file mode 100644 index 0000000..b9953c6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-square.html @@ -0,0 +1,287 @@ + + + + +square + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

square

+

square — Distort center part of the image into a square

+
+
+

Synopsis

+
struct              GstSquare;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstSquare
+
+
+
+

Properties

+
+  "height"                   gdouble               : Read / Write
+  "width"                    gdouble               : Read / Write
+  "zoom"                     gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstSquare

+
struct GstSquare;
+

+

+
+
+
+

Property Details

+
+

The "height" property

+
  "height"                   gdouble               : Read / Write
+

Height of the square, relative to the frame height.

+

Allowed values: [0,1]

+

Default value: 0.5

+
+
+
+

The "width" property

+
  "width"                    gdouble               : Read / Write
+

Width of the square, relative to the frame width.

+

Allowed values: [0,1]

+

Default value: 0.5

+
+
+
+

The "zoom" property

+
  "zoom"                     gdouble               : Read / Write
+

Zoom amount in the center region.

+

Allowed values: [1,100]

+

Default value: 2

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-stereo.html b/docs/plugins/html/gst-plugins-bad-plugins-stereo.html new file mode 100644 index 0000000..9232fbf --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-stereo.html @@ -0,0 +1,193 @@ + + + + +stereo + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

stereo

+

stereo — Muck with the stereo signal to enhance its 'stereo-ness'

+
+
+

Synopsis

+
struct              GstStereo;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstAudioFilter
+                           +----GstStereo
+
+
+
+

Properties

+
+  "active"                   gboolean              : Read / Write
+  "stereo"                   gfloat                : Read / Write
+
+
+
+

Description

+

+Create a wide stereo effect. +

+

+

+
+

Example pipelines

+
+ + + + + + + +
1
gst-launch -v filesrc location=sine.ogg ! oggdemux ! vorbisdec ! audioconvert ! stereo ! audioconvert ! audioresample ! alsasink
+
+ Play an Ogg/Vorbis file. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ stereo +

author

Erik Walthinsen <omega@cse.ogi.edu>

class

Filter/Effect/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)2, signed=(boolean)true
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)2, signed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstStereo

+
struct GstStereo;
+

+

+
+
+
+

Property Details

+
+

The "active" property

+
  "active"                   gboolean              : Read / Write
+

active.

+

Default value: TRUE

+
+
+
+

The "stereo" property

+
  "stereo"                   gfloat                : Read / Write
+

stereo.

+

Allowed values: [0,1]

+

Default value: 0.1

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-stretch.html b/docs/plugins/html/gst-plugins-bad-plugins-stretch.html new file mode 100644 index 0000000..fecf8a0 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-stretch.html @@ -0,0 +1,270 @@ + + + + +stretch + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

stretch

+

stretch — Stretch the image in a circle around the center point

+
+
+

Synopsis

+
struct              GstStretch;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstStretch
+
+
+
+

Properties

+
+  "intensity"                gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstStretch

+
struct GstStretch;
+

+

+
+
+
+

Property Details

+
+

The "intensity" property

+
  "intensity"                gdouble               : Read / Write
+

Intensity of the stretch effect.

+

Allowed values: [0,1]

+

Default value: 0.5

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html b/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html new file mode 100644 index 0000000..2420a9a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-templatematch.html @@ -0,0 +1,208 @@ + + + + +templatematch + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

templatematch

+

templatematch — Performs template matching on videos and images, providing detected positions via bus messages

+
+
+

Synopsis

+
struct              GstStretch;
+struct              GstTemplateMatch;
+
+
+
+

Properties

+
+  "display"                  gboolean              : Read / Write
+  "method"                   gint                  : Read / Write
+  "template"                 gchar*                : Read / Write
+
+
+
+

Description

+

+FIXME:Describe templatematch here. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch-0.10 videotestsrc ! decodebin ! ffmpegcolorspace ! templatematch template=/path/to/file.jpg ! ffmpegcolorspace ! xvimagesink
+
+ +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ opencv +

author

Noam Lewis <jones.noamle@gmail.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstStretch

+
struct GstStretch;
+

+

+
+
+
+

struct GstTemplateMatch

+
struct GstTemplateMatch {
+  GstElement element;
+
+  GstPad *sinkpad, *srcpad;
+
+  gint method;
+  gboolean display;
+
+  gchar *template;
+
+  IplImage *cvImage, *cvGray, *cvTemplateImage, *cvDistImage;
+};
+
+

+

+
+
+
+

Property Details

+
+

The "display" property

+
  "display"                  gboolean              : Read / Write
+

Sets whether the detected template should be highlighted in the output.

+

Default value: TRUE

+
+
+
+

The "method" property

+
  "method"                   gint                  : Read / Write
+

Specifies the way the template must be compared with image regions. 0=SQDIFF, 1=SQDIFF_NORMED, 2=CCOR, 3=CCOR_NORMED, 4=CCOEFF, 5=CCOEFF_NORMED.

+

Allowed values: [0,5]

+

Default value: 3

+
+
+
+

The "template" property

+
  "template"                 gchar*                : Read / Write
+

Filename of template image.

+

Default value: NULL

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-tiger.html b/docs/plugins/html/gst-plugins-bad-plugins-tiger.html new file mode 100644 index 0000000..20c0560 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-tiger.html @@ -0,0 +1,360 @@ + + + + +tiger + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

tiger

+

tiger — Decodes and renders Kate streams on top of a video

+
+
+

Synopsis

+
struct              GstKateTiger;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstKateTiger
+
+
+
+

Properties

+
+  "category"                 gchar*                : Read
+  "default-background-alpha" gint                  : Read / Write
+  "default-background-blue"  gint                  : Read / Write
+  "default-background-green" gint                  : Read / Write
+  "default-background-red"   gint                  : Read / Write
+  "default-font-alpha"       gint                  : Read / Write
+  "default-font-blue"        gint                  : Read / Write
+  "default-font-desc"        gchar*                : Read / Write
+  "default-font-effect"      GstFontEffect         : Read / Write / Construct
+  "default-font-effect-strength" gdouble               : Read / Write
+  "default-font-green"       gint                  : Read / Write
+  "default-font-red"         gint                  : Read / Write
+  "language"                 gchar*                : Read
+  "original-canvas-height"   gint                  : Read
+  "original-canvas-width"    gint                  : Read
+  "quality"                  gdouble               : Read / Write
+
+
+
+

Description

+

+

+
+

Example pipeline

+

+This element decodes and renders Kate streams +Kate is a free codec +for text based data, such as subtitles. Any number of kate streams can be +embedded in an Ogg stream. +

+

+libkate (see above url) and libtiger +are needed to build this element. +

+

+This pipeline renders a Kate stream on top of a Theora video multiplexed +in the same stream: +

+
+gst-launch \
+  filesrc location=video.ogg ! oggdemux name=demux \
+  demux. ! queue ! theoradec ! ffmpegcolorspace ! tiger name=tiger \
+  demux. ! queue ! kateparse ! tiger. \
+  tiger. ! ffmpegcolorspace ! autovideosink
+
+

+

+
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ kate +

author

Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com>

class

Mixer/Video/Overlay/Subtitle
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

subtitle_sink

direction

sink

presence

always

details

subtitle/x-kate

application/x-kate
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

video_sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)1234, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)1234, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstKateTiger

+
struct GstKateTiger;
+

+

+
+
+
+

Property Details

+
+

The "category" property

+
  "category"                 gchar*                : Read
+

The category of the stream.

+

Default value: ""

+
+
+
+

The "default-background-alpha" property

+
  "default-background-alpha" gint                  : Read / Write
+

Default background color (alpha component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-background-blue" property

+
  "default-background-blue"  gint                  : Read / Write
+

Default background color (blue component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-background-green" property

+
  "default-background-green" gint                  : Read / Write
+

Default background color (green component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-background-red" property

+
  "default-background-red"   gint                  : Read / Write
+

Default background color (red component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-font-alpha" property

+
  "default-font-alpha"       gint                  : Read / Write
+

Default font color (alpha component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-font-blue" property

+
  "default-font-blue"        gint                  : Read / Write
+

Default font color (blue component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-font-desc" property

+
  "default-font-desc"        gchar*                : Read / Write
+

Default font description (Pango style) to render text with.

+

Default value: ""

+
+
+
+

The "default-font-effect" property

+
  "default-font-effect"      GstFontEffect         : Read / Write / Construct
+

Whether to apply an effect to text by default, for increased readability.

+

Default value: outline

+
+
+
+

The "default-font-effect-strength" property

+
  "default-font-effect-strength" gdouble               : Read / Write
+

How pronounced should the font effect be (effect dependent).

+

Allowed values: [0,1]

+

Default value: 0.5

+
+
+
+

The "default-font-green" property

+
  "default-font-green"       gint                  : Read / Write
+

Default font color (green component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "default-font-red" property

+
  "default-font-red"         gint                  : Read / Write
+

Default font color (red component, between 0 and 255) to render text with.

+

Allowed values: [0,255]

+

Default value: 255

+
+
+
+

The "language" property

+
  "language"                 gchar*                : Read
+

The language of the stream.

+

Default value: ""

+
+
+
+

The "original-canvas-height" property

+
  "original-canvas-height"   gint                  : Read
+

The canvas height this stream was authored for (0 is unspecified).

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "original-canvas-width" property

+
  "original-canvas-width"    gint                  : Read
+

The canvas width this stream was authored for.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "quality" property

+
  "quality"                  gdouble               : Read / Write
+

Rendering quality (0 is faster, 1 is best and slower).

+

Allowed values: [0,1]

+

Default value: 1

+
+
+
+

See Also

+katedec +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-timidity.html b/docs/plugins/html/gst-plugins-bad-plugins-timidity.html new file mode 100644 index 0000000..6b66afa --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-timidity.html @@ -0,0 +1,190 @@ + + + + +timidity + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

timidity

+

timidity — Midi Synthesizer Element

+
+
+

Synopsis

+
struct              GstTimidity;
+
+
+
+

Description

+

+This element renders midi-files as audio streams using +Timidity. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch filesrc location=song.mid ! timidity ! alsasink
+
+ This example pipeline will parse the midi and render to raw audio which is +played via alsa. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ timidity +

author

Wouter Paesen <wouter@blue-gate.be>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/midi

audio/riff-midi
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstTimidity

+
struct GstTimidity {
+    GstElement element;
+
+    GstPad *sinkpad, *srcpad;
+
+    gboolean initialized;
+
+    /* input stream properties */
+    gint64 mididata_size, mididata_offset;
+    gchar *mididata;
+    gboolean mididata_filled;
+
+    MidSong *song;
+
+    /* output data */
+    gboolean o_new_segment, o_segment_changed, o_seek;
+    GstSegment o_segment[1];
+    gint64 o_len;
+
+    /* format of the stream */
+    MidSongOptions song_options[1];
+    gint64 bytes_per_frame;
+    GstClockTime time_per_frame;
+
+    GstCaps *out_caps;
+};
+
+

+

+
+
+
+

See Also

+wildmidi +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-trm.html b/docs/plugins/html/gst-plugins-bad-plugins-trm.html new file mode 100644 index 0000000..9edffdb --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-trm.html @@ -0,0 +1,209 @@ + + + + +trm + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

trm

+

trm — Compute MusicBrainz TRM Id using libmusicbrainz

+
+
+

Synopsis

+
struct              GstTRM;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstTRM
+
+
+
+

Properties

+
+  "proxy-address"            gchar*                : Read / Write
+  "proxy-port"               guint                 : Read / Write
+
+
+
+

Description

+

+GstTRM computes MusicBrainz +TRM identifiers for audio streams using libmusicbrainz. +

+

+A TRM identifier is something like an 'acoustic fingerprint', the aim is +to uniquely identify the same song regardless of which source it comes from +or which audio format the stream is in. +

+

+The TRM element will collect about 30 seconds of audio and let +libmusicbrainz calculate a preliminary audio signature from that. That audio +signature will then be sent over the internet to a musicbrainz.org server +which will calculate the TRM for that signature. +

+

+The TRM element will post a tag message with a GST_TAG_MUSICBRAINZ_TRMID +tag on the bus once the TRM has been calculated (and also send a tag event +with that information downstream). +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch -m filesrc location=somefile.ogg ! decodebin ! audioconvert ! trm ! fakesink
+
+ calculate the TRM and print the tag message with the TRM ID. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ musicbrainz +

author

Jeremy Simon <jsimon13@yahoo.fr>

class

Filter/Analyzer/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]
+
+
+

+

+
+
+

Details

+
+

struct GstTRM

+
struct GstTRM;
+

+GStreamer TRM element. This structure is opaque (private). +

+
+
+
+

Property Details

+
+

The "proxy-address" property

+
  "proxy-address"            gchar*                : Read / Write
+

proxy address.

+

Default value: NULL

+
+
+
+

The "proxy-port" property

+
  "proxy-port"               guint                 : Read / Write
+

proxy port.

+

Allowed values: [1,65535]

+

Default value: 8080

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-tunnel.html b/docs/plugins/html/gst-plugins-bad-plugins-tunnel.html new file mode 100644 index 0000000..741c71d --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-tunnel.html @@ -0,0 +1,252 @@ + + + + +tunnel + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

tunnel

+

tunnel — Light tunnel effect

+
+
+

Synopsis

+
struct              GstTunnel;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstTunnel
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Filippo Argiolas <filippo.argiolas@gmail.com>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstTunnel

+
struct GstTunnel;
+

+

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-twirl.html b/docs/plugins/html/gst-plugins-bad-plugins-twirl.html new file mode 100644 index 0000000..22895ce --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-twirl.html @@ -0,0 +1,269 @@ + + + + +twirl + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

twirl

+

twirl — Twists the image from the center out

+
+
+

Synopsis

+
struct              GstTwirl;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstTwirl
+
+
+
+

Properties

+
+  "angle"                    gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstTwirl

+
struct GstTwirl;
+

+

+
+
+
+

Property Details

+
+

The "angle" property

+
  "angle"                    gdouble               : Read / Write
+

This is the angle in radians by which pixels at the nearest edge of the image will move.

+

Default value: 3.14159

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html b/docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html new file mode 100644 index 0000000..a026c35 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-videoanalyse.html @@ -0,0 +1,227 @@ + + + + +videoanalyse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videoanalyse

+

videoanalyse — Analyse video signal

+
+
+

Synopsis

+
struct              GstVideoAnalyse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstVideoAnalyse
+
+
+
+

Properties

+
+  "message"                  gboolean              : Read / Write / Construct
+
+
+
+

Description

+

+This plugin analyses every video frame and if the "message" +property is TRUE, posts an element message with video statistics called +"GstVideoAnalyse". +

+

+The message's structure contains these fields: +

+
    +
  • + GstClockTime + "timestamp": + the timestamp of the buffer that triggered the message. +

  • +
  • + GstClockTime + "stream-time": + the stream time of the buffer. +

  • +
  • + GstClockTime + "running-time": + the running_time of the buffer. +

  • +
  • + GstClockTime + "duration": + the duration of the buffer. +

  • +
  • + gdouble + "brightness": + the average brightness of the frame. +

  • +
  • + gdouble + "brightness-variance": + the brightness variance of the frame. +

  • +
+

+

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch -m videotestsrc ! videoanalyse ! ffmpegcolorspace ! ximagesink
+
+ This pipeline emits messages to the console for each frame that has been analysed. +
+

+

+

+Last reviewed on 2007-05-30 (0.10.5) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ videosignal +

author

Wim Taymans <wim@fluendo.com>

class

Filter/Analyzer/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstVideoAnalyse

+
struct GstVideoAnalyse;
+

+Opaque datastructure. +

+
+
+
+

Property Details

+
+

The "message" property

+
  "message"                  gboolean              : Read / Write / Construct
+

Post statics messages.

+

Default value: TRUE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-videodetect.html b/docs/plugins/html/gst-plugins-bad-plugins-videodetect.html new file mode 100644 index 0000000..71a49cd --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-videodetect.html @@ -0,0 +1,324 @@ + + + + +videodetect + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videodetect

+

videodetect — Detect patterns in a video signal

+
+
+

Synopsis

+
struct              GstVideoDetect;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstVideoDetect
+
+
+
+

Properties

+
+  "message"                  gboolean              : Read / Write / Construct
+  "pattern-count"            gint                  : Read / Write / Construct
+  "pattern-data-count"       gint                  : Read / Write / Construct
+  "pattern-height"           gint                  : Read / Write / Construct
+  "pattern-sensitivity"      gdouble               : Read / Write / Construct
+  "pattern-width"            gint                  : Read / Write / Construct
+  "bottom-offset"            gint                  : Read / Write / Construct
+  "left-offset"              gint                  : Read / Write / Construct
+  "pattern-center"           gdouble               : Read / Write / Construct
+
+
+
+

Description

+

+This plugin detects "pattern-count" squares in the bottom left +corner of the video frames. The squares have a width and height of +respectively "pattern-width" and "pattern-height". +Even squares must be black and odd squares must be white. +

+

+When the pattern has been found, "pattern-data-count" squares +after the pattern squares are read as a bitarray. White squares represent a 1 +bit and black squares a 0 bit. The bitarray will will included in the element +message that is posted (see below). +

+

+After the pattern has been found and the data pattern has been read, an +element message called "GstVideoDetect" will +be posted on the bus. If the pattern is no longer found in the frame, the +same element message is posted with the have-pattern field set to FALSE. +The message is only posted if the "message" property is TRUE. +

+

+The message's structure contains these fields: +

+
    +
  • + gboolean + "have-pattern": + if the pattern was found. This field will be set to TRUE for as long as + the pattern was found in the frame and set to FALSE for the first frame + that does not contain the pattern anymore. +

  • +
  • + GstClockTime + "timestamp": + the timestamp of the buffer that triggered the message. +

  • +
  • + GstClockTime + "stream-time": + the stream time of the buffer. +

  • +
  • + GstClockTime + "running-time": + the running_time of the buffer. +

  • +
  • + GstClockTime + "duration": + the duration of the buffer. +

  • +
  • + guint64 + "data-uint64": + the data-pattern found after the pattern or 0 when have-signal is FALSE. +

  • +
  • + guint + "data": + the data-pattern found after the pattern or 0 when have-signal is FALSE. +

  • +
+

+

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch videotestsrc ! videodetect ! ffmpegcolorspace ! ximagesink
+
+ +
+

+

+

+Last reviewed on 2007-05-30 (0.10.5) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ videosignal +

author

Wim Taymans <wim@fluendo.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstVideoDetect

+
struct GstVideoDetect;
+

+Opaque datastructure. +

+
+
+
+

Property Details

+
+

The "message" property

+
  "message"                  gboolean              : Read / Write / Construct
+

Post statics messages.

+

Default value: TRUE

+
+
+
+

The "pattern-count" property

+
  "pattern-count"            gint                  : Read / Write / Construct
+

The number of pattern markers.

+

Allowed values: >= 0

+

Default value: 4

+
+
+
+

The "pattern-data-count" property

+
  "pattern-data-count"       gint                  : Read / Write / Construct
+

The number of extra data pattern markers.

+

Allowed values: >= 0

+

Default value: 5

+
+
+
+

The "pattern-height" property

+
  "pattern-height"           gint                  : Read / Write / Construct
+

The height of the pattern markers.

+

Allowed values: >= 1

+

Default value: 16

+
+
+
+

The "pattern-sensitivity" property

+
  "pattern-sensitivity"      gdouble               : Read / Write / Construct
+

The sensitivity around the center for detecting the markers (0.0 = lowest, 1.0 highest).

+

Allowed values: [0,1]

+

Default value: 0.3

+
+
+
+

The "pattern-width" property

+
  "pattern-width"            gint                  : Read / Write / Construct
+

The width of the pattern markers.

+

Allowed values: >= 1

+

Default value: 4

+
+
+
+

The "bottom-offset" property

+
  "bottom-offset"            gint                  : Read / Write / Construct
+

The offset from the bottom border where the pattern starts.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "left-offset" property

+
  "left-offset"              gint                  : Read / Write / Construct
+

The offset from the left border where the pattern starts.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "pattern-center" property

+
  "pattern-center"           gdouble               : Read / Write / Construct
+

The center of the black/white separation (0.0 = lowest, 1.0 highest).

+

Allowed values: [0,1]

+

Default value: 0.5

+
+
+
+

See Also

+GstVideoMark +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-videomark.html b/docs/plugins/html/gst-plugins-bad-plugins-videomark.html new file mode 100644 index 0000000..04db1b6 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-videomark.html @@ -0,0 +1,276 @@ + + + + +videomark + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videomark

+

videomark — Marks a video signal with a pattern

+
+
+

Synopsis

+
struct              GstVideoMark;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstVideoMark
+
+
+
+

Properties

+
+  "enabled"                  gboolean              : Read / Write / Construct
+  "pattern-count"            gint                  : Read / Write / Construct
+  "pattern-data"             gint                  : Read / Write
+  "pattern-data-count"       gint                  : Read / Write / Construct
+  "pattern-height"           gint                  : Read / Write / Construct
+  "pattern-width"            gint                  : Read / Write / Construct
+  "bottom-offset"            gint                  : Read / Write / Construct
+  "left-offset"              gint                  : Read / Write / Construct
+  "pattern-data-uint64"      guint64               : Read / Write / Construct
+
+
+
+

Description

+

+This plugin produces "pattern-count" squares in the bottom left +corner of the video frames. The squares have a width and height of +respectively "pattern-width" and "pattern-height". +Even squares will be black and odd squares will be white. +

+

+After writing the pattern, "pattern-data-count" squares after the +pattern squares are produced as the bitarray given in +"pattern-data". 1 bits will produce white squares and 0 bits will +produce black squares. +

+

+The element can be enabled with the "enabled" property. It is +mostly used together with the GstVideoDetect plugin. +

+

+

+
+

Example launch line

+
+ + + + + + + +
1
gst-launch videotestsrc ! videomark ! ximagesink
+
+ Add the default black/white squares at the bottom left of the video frames. +
+

+

+

+Last reviewed on 2007-06-01 (0.10.6) +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ videosignal +

author

Wim Taymans <wim@fluendo.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstVideoMark

+
struct GstVideoMark;
+

+Opaque datastructure. +

+
+
+
+

Property Details

+
+

The "enabled" property

+
  "enabled"                  gboolean              : Read / Write / Construct
+

Enable or disable the filter.

+

Default value: TRUE

+
+
+
+

The "pattern-count" property

+
  "pattern-count"            gint                  : Read / Write / Construct
+

The number of pattern markers.

+

Allowed values: >= 0

+

Default value: 4

+
+
+
+

The "pattern-data" property

+
  "pattern-data"             gint                  : Read / Write
+

The extra data pattern markers.

+

Allowed values: >= 0

+

Default value: 10

+
+
+
+

The "pattern-data-count" property

+
  "pattern-data-count"       gint                  : Read / Write / Construct
+

The number of extra data pattern markers.

+

Allowed values: [0,64]

+

Default value: 5

+
+
+
+

The "pattern-height" property

+
  "pattern-height"           gint                  : Read / Write / Construct
+

The height of the pattern markers.

+

Allowed values: >= 1

+

Default value: 16

+
+
+
+

The "pattern-width" property

+
  "pattern-width"            gint                  : Read / Write / Construct
+

The width of the pattern markers.

+

Allowed values: >= 1

+

Default value: 4

+
+
+
+

The "bottom-offset" property

+
  "bottom-offset"            gint                  : Read / Write / Construct
+

The offset from the bottom border where the pattern starts.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "left-offset" property

+
  "left-offset"              gint                  : Read / Write / Construct
+

The offset from the left border where the pattern starts.

+

Allowed values: >= 0

+

Default value: 0

+
+
+
+

The "pattern-data-uint64" property

+
  "pattern-data-uint64"      guint64               : Read / Write / Construct
+

The extra data pattern markers.

+

Default value: 10

+
+
+
+

See Also

+GstVideoDetect +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html b/docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html new file mode 100644 index 0000000..997f068 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-videomaxrate.html @@ -0,0 +1,209 @@ + + + + +videomaxrate + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videomaxrate

+

videomaxrate — Drops extra frames

+
+
+

Synopsis

+
struct              GstVideoMaxRate;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoMaxRate
+
+
+
+

Properties

+
+  "average-period"           guint64               : Read / Write
+
+
+
+

Description

+

+This object will drop buffers that go beyond a certain buffer rate +(ie frame rate). It should work with any kind of data where each buffer +is independent. This currently means raw video frames and still image +formats. +

+

+The framerate is computed using a moving average. The period over which this +average is computed is configurable using the "average-period" property. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ videomaxrate +

author

Justin Karneges <justin@affinix.com>

class

Filter/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv

video/x-raw-rgb

video/x-raw-gray

image/jpeg

image/png
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv

video/x-raw-rgb

video/x-raw-gray

image/jpeg

image/png
+
+
+

+

+
+
+

Details

+
+

struct GstVideoMaxRate

+
struct GstVideoMaxRate;
+

+

+
+
+
+

Property Details

+
+

The "average-period" property

+
  "average-period"           guint64               : Read / Write
+

Period over which to average the framerate (in ns).

+

Allowed values: [1,G_MAXLONG]

+

Default value: 1000000000

+
+
+
+

See Also

+videorate +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-videoparse.html b/docs/plugins/html/gst-plugins-bad-plugins-videoparse.html new file mode 100644 index 0000000..e22326a --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-videoparse.html @@ -0,0 +1,283 @@ + + + + +videoparse + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

videoparse

+

videoparse — Converts stream into video frames

+
+
+

Synopsis

+
struct              GstVideoParse;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstRawParse
+                     +----GstVideoParse
+
+
+
+

Properties

+
+  "alpha-mask"               gint                  : Read / Write
+  "blue-mask"                gint                  : Read / Write
+  "bpp"                      gint                  : Read / Write
+  "depth"                    gint                  : Read / Write
+  "endianness"               GstVideoParseEndianness  : Read / Write
+  "format"                   GstVideoFormat        : Read / Write
+  "framerate"                GstFraction           : Read / Write
+  "green-mask"               gint                  : Read / Write
+  "height"                   gint                  : Read / Write
+  "pixel-aspect-ratio"       GstFraction           : Read / Write
+  "red-mask"                 gint                  : Read / Write
+  "width"                    gint                  : Read / Write
+  "interlaced"               gboolean              : Read / Write
+  "top-field-first"          gboolean              : Read / Write
+
+
+
+

Description

+

+Converts a byte stream into video frames. +

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ rawparse +

author

David Schleef <ds@schleef.org>, Sebastian Dröge <sebastian.droege@collabora.co.uk>

class

Filter/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

ANY
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb

video/x-raw-yuv

video/x-raw-gray

video/x-raw-bayer
+
+
+

+

+
+
+

Details

+
+

struct GstVideoParse

+
struct GstVideoParse;
+

+

+
+
+
+

Property Details

+
+

The "alpha-mask" property

+
  "alpha-mask"               gint                  : Read / Write
+

Alpha mask of images in raw stream.

+

Default value: 0

+
+
+
+

The "blue-mask" property

+
  "blue-mask"                gint                  : Read / Write
+

Blue mask of images in raw stream.

+

Default value: 255

+
+
+
+

The "bpp" property

+
  "bpp"                      gint                  : Read / Write
+

Bits per pixel of images in raw stream.

+

Allowed values: >= 0

+

Default value: 24

+
+
+
+

The "depth" property

+
  "depth"                    gint                  : Read / Write
+

Depth of images in raw stream.

+

Allowed values: >= 0

+

Default value: 24

+
+
+
+

The "endianness" property

+
  "endianness"               GstVideoParseEndianness  : Read / Write
+

Endianness of images in raw stream.

+

Default value: Little Endian

+
+
+
+

The "format" property

+
  "format"                   GstVideoFormat        : Read / Write
+

Format of images in raw stream.

+

Default value: GST_VIDEO_FORMAT_I420

+
+
+
+

The "framerate" property

+
  "framerate"                GstFraction           : Read / Write
+

Frame rate of images in raw stream.

+
+
+
+

The "green-mask" property

+
  "green-mask"               gint                  : Read / Write
+

Green mask of images in raw stream.

+

Default value: 65280

+
+
+
+

The "height" property

+
  "height"                   gint                  : Read / Write
+

Height of images in raw stream.

+

Allowed values: >= 0

+

Default value: 240

+
+
+
+

The "pixel-aspect-ratio" property

+
  "pixel-aspect-ratio"       GstFraction           : Read / Write
+

Pixel aspect ratio of images in raw stream.

+
+
+
+

The "red-mask" property

+
  "red-mask"                 gint                  : Read / Write
+

Red mask of images in raw stream.

+

Default value: 16711680

+
+
+
+

The "width" property

+
  "width"                    gint                  : Read / Write
+

Width of images in raw stream.

+

Allowed values: >= 0

+

Default value: 320

+
+
+
+

The "interlaced" property

+
  "interlaced"               gboolean              : Read / Write
+

True if video is interlaced.

+

Default value: FALSE

+
+
+
+

The "top-field-first" property

+
  "top-field-first"          gboolean              : Read / Write
+

True if top field is earlier than bottom field.

+

Default value: TRUE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html b/docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html new file mode 100644 index 0000000..e829c34 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-vp8dec.html @@ -0,0 +1,218 @@ + + + + +vp8dec + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vp8dec

+

vp8dec — Decode VP8 video streams

+
+
+

Synopsis

+
struct              GstVP8Dec;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseVideoCodec
+                     +----GstBaseVideoDecoder
+                           +----GstVP8Dec
+
+
+
+

Properties

+
+  "deblocking-level"         guint                 : Read / Write
+  "noise-level"              guint                 : Read / Write
+  "post-processing"          gboolean              : Read / Write
+  "post-processing-flags"    GstVP8DecPostProcessingFlags  : Read / Write
+
+
+
+

Description

+

+This element decodes VP8 streams into raw video. +VP8 is a royalty-free +video codec maintained by Google +. It's the successor of On2 VP3, which was the base of the +Theora video codec. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch -v filesrc location=videotestsrc.webm ! matroskademux ! vp8dec ! xvimagesink
+
+ This example pipeline will decode a WebM stream and decodes the VP8 video. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ vp8 +

author

David Schleef <ds@entropywave.com>

class

Codec/Decoder/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-vp8
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstVP8Dec

+
struct GstVP8Dec;
+

+

+
+
+
+

Property Details

+
+

The "deblocking-level" property

+
  "deblocking-level"         guint                 : Read / Write
+

Deblocking level.

+

Allowed values: <= 16

+

Default value: 4

+
+
+
+

The "noise-level" property

+
  "noise-level"              guint                 : Read / Write
+

Noise level.

+

Allowed values: <= 16

+

Default value: 0

+
+
+
+

The "post-processing" property

+
  "post-processing"          gboolean              : Read / Write
+

Enable post processing.

+

Default value: FALSE

+
+
+
+

The "post-processing-flags" property

+
  "post-processing-flags"    GstVP8DecPostProcessingFlags  : Read / Write
+

Flags to control post processing.

+

Default value: Deblock|Demacroblock

+
+
+
+

See Also

+vp8enc, matroskademux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html b/docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html new file mode 100644 index 0000000..1799011 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-vp8enc.html @@ -0,0 +1,294 @@ + + + + +vp8enc + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

vp8enc

+

vp8enc — Encode VP8 video streams

+
+
+

Synopsis

+
struct              GstVP8Enc;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseVideoCodec
+                     +----GstBaseVideoEncoder
+                           +----GstVP8Enc
+
+
+
+

Implemented Interfaces

+

+GstVP8Enc implements + GstTagSetter and GstPreset.

+
+
+

Properties

+
+  "bitrate"                  gint                  : Read / Write
+  "error-resilient"          gboolean              : Read / Write
+  "max-keyframe-distance"    gint                  : Read / Write
+  "max-latency"              gint                  : Read / Write
+  "mode"                     GstVP8EncMode         : Read / Write
+  "quality"                  gdouble               : Read / Write
+  "speed"                    gint                  : Read / Write
+  "threads"                  gint                  : Read / Write
+  "multipass-cache-file"     gchar*                : Read / Write
+  "multipass-mode"           GstVP8EncMultipassMode  : Read / Write
+  "auto-alt-ref-frames"      gboolean              : Read / Write
+
+
+
+

Description

+

+This element encodes raw video into a VP8 stream. +VP8 is a royalty-free +video codec maintained by Google +. It's the successor of On2 VP3, which was the base of the +Theora video codec. +

+

+To control the quality of the encoding, the "bitrate" and +"quality" properties can be used. These two properties are +mutualy exclusive. Setting the bitrate property will produce a constant +bitrate (CBR) stream while setting the quality property will produce a +variable bitrate (VBR) stream. +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch -v videotestsrc num-buffers=1000 ! vp8enc ! webmmux ! filesink location=videotestsrc.webm
+
+ This example pipeline will encode a test video source to VP8 muxed in an +WebM container. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ vp8 +

author

David Schleef <ds@entropywave.com>

class

Codec/Encoder/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-vp8
+
+
+

+

+
+
+

Details

+
+

struct GstVP8Enc

+
struct GstVP8Enc;
+

+

+
+
+
+

Property Details

+
+

The "bitrate" property

+
  "bitrate"                  gint                  : Read / Write
+

Bit rate (in bits/sec).

+

Allowed values: [0,1000000000]

+

Default value: 0

+
+
+
+

The "error-resilient" property

+
  "error-resilient"          gboolean              : Read / Write
+

Encode streams that are error resilient.

+

Default value: FALSE

+
+
+
+

The "max-keyframe-distance" property

+
  "max-keyframe-distance"    gint                  : Read / Write
+

Maximum distance between key frames.

+

Allowed values: [0,9999]

+

Default value: 60

+
+
+
+

The "max-latency" property

+
  "max-latency"              gint                  : Read / Write
+

Number of frames in encoder queue.

+

Allowed values: [0,25]

+

Default value: 10

+
+
+
+

The "mode" property

+
  "mode"                     GstVP8EncMode         : Read / Write
+

Mode.

+

Default value: Variable Bit Rate (VBR) mode

+
+
+
+

The "quality" property

+
  "quality"                  gdouble               : Read / Write
+

Quality.

+

Allowed values: [0,10]

+

Default value: 5

+
+
+
+

The "speed" property

+
  "speed"                    gint                  : Read / Write
+

Speed.

+

Allowed values: [0,2]

+

Default value: 0

+
+
+
+

The "threads" property

+
  "threads"                  gint                  : Read / Write
+

Threads.

+

Allowed values: [1,64]

+

Default value: 1

+
+
+
+

The "multipass-cache-file" property

+
  "multipass-cache-file"     gchar*                : Read / Write
+

Multipass cache file.

+

Default value: NULL

+
+
+
+

The "multipass-mode" property

+
  "multipass-mode"           GstVP8EncMultipassMode  : Read / Write
+

Multipass encode mode.

+

Default value: One pass encoding (default)

+
+
+
+

The "auto-alt-ref-frames" property

+
  "auto-alt-ref-frames"      gboolean              : Read / Write
+

Automatically create alternative reference frames.

+

Default value: FALSE

+
+
+
+

See Also

+vp8dec, webmmux, oggmux +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-waterripple.html b/docs/plugins/html/gst-plugins-bad-plugins-waterripple.html new file mode 100644 index 0000000..9766d5b --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-waterripple.html @@ -0,0 +1,285 @@ + + + + +waterripple + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

waterripple

+

waterripple — Creates a water ripple effect on the image

+
+
+

Synopsis

+
struct              GstWaterRipple;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstGeometricTransform
+                                 +----GstCircleGeometricTransform
+                                       +----GstWaterRipple
+
+
+
+

Properties

+
+  "amplitude"                gdouble               : Read / Write
+  "phase"                    gdouble               : Read / Write
+  "wavelength"               gdouble               : Read / Write
+
+
+
+

Description

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ geometrictransform +

author

Thiago Santos<thiago.sousa.santos@collabora.co.uk>

class

Transform/Effect/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]

video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstWaterRipple

+
struct GstWaterRipple;
+

+

+
+
+
+

Property Details

+
+

The "amplitude" property

+
  "amplitude"                gdouble               : Read / Write
+

amplitude.

+

Default value: 10

+
+
+
+

The "phase" property

+
  "phase"                    gdouble               : Read / Write
+

phase.

+

Default value: 0

+
+
+
+

The "wavelength" property

+
  "wavelength"               gdouble               : Read / Write
+

wavelength.

+

Default value: 16

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html b/docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html new file mode 100644 index 0000000..8c33e91 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-wildmidi.html @@ -0,0 +1,203 @@ + + + + +wildmidi + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

wildmidi

+

wildmidi — Midi Synthesizer Element

+
+
+

Synopsis

+
struct              GstWildmidi;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstWildmidi
+
+
+
+

Properties

+
+  "high-quality"             gboolean              : Read / Write
+  "linear-volume"            gboolean              : Read / Write
+
+
+
+

Description

+

+This element renders midi-files as audio streams using +Wildmidi. +It offers better sound quality compared to the timidity element. Wildmidi +uses the same sound-patches as timidity (it tries the path in $WILDMIDI_CFG, +$HOME/.wildmidirc and /etc/wildmidi.cfg) +

+

+

+
+

Example pipeline

+
+ + + + + + + +
1
gst-launch filesrc location=song.mid ! wildmidi ! alsasink
+
+ This example pipeline will parse the midi and render to raw audio which is +played via alsa. +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ wildmidi +

author

Wouter Paesen <wouter@blue-gate.be>

class

Codec/Decoder/Audio
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

audio/midi

audio/riff-midi
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

audio/x-raw-int, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+

+

+
+
+

Details

+
+

struct GstWildmidi

+
struct GstWildmidi;
+

+

+
+
+
+

Property Details

+
+

The "high-quality" property

+
  "high-quality"             gboolean              : Read / Write
+

High Quality.

+

Default value: TRUE

+
+
+
+

The "linear-volume" property

+
  "linear-volume"            gboolean              : Read / Write
+

Linear volume.

+

Default value: TRUE

+
+
+
+

See Also

+timidity +
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins-zbar.html b/docs/plugins/html/gst-plugins-bad-plugins-zbar.html new file mode 100644 index 0000000..8c02bc2 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins-zbar.html @@ -0,0 +1,235 @@ + + + + +zbar + + + + + + + + + + + + + + + + + + + +
+
+
+ + +
+

zbar

+

zbar — Detect bar codes in the video streams

+
+
+

Synopsis

+
struct              GstZBar;
+
+
+
+

Object Hierarchy

+
+  GObject
+   +----GstObject
+         +----GstElement
+               +----GstBaseTransform
+                     +----GstVideoFilter
+                           +----GstZBar
+
+
+
+

Properties

+
+  "message"                  gboolean              : Read / Write
+  "cache"                    gboolean              : Read / Write
+
+
+
+

Description

+

+Detect bar codes in the video streams and send them as element messages to +the GstBus if ."message" property is TRUE. +

+

+The element generate messages named +"barcode". The structure containes these +fields: +

+
    +
  • + GstClockTime + "timestamp": + the timestamp of the buffer that triggered the message. +

  • +
  • + gchar* + "type": + the symbol type. +

  • +
  • + gchar* + "symbol": + the deteted bar code data. +

  • +
  • + gint + "quality": + an unscaled, relative quantity: larger values are better than smaller + values. +

  • +
+

+

+

+

+
+

Example launch lines

+
+ + + + + + + +
1
gst-launch -m v4l2src ! ffmpegcolorspace ! zbar ! ffmpegcolorspace ! xvimagesink
+
+ This pipeline will detect barcodes and send them as messages. +
+ + + + + + + +
1
gst-launch -m v4l2src ! tee name=t ! queue ! ffmpegcolorspace ! zbar ! fakesink t. ! queue ! xvimagesink
+
+ Same as above, but running the filter on a branch to keep the display in color +
+

+

+
+

Synopsis

+
+

Element Information

+
++ + + + + + + + + + + + + + +

plugin

+ zbar +

author

Stefan Kost <ensonic@users.sf.net>

class

Filter/Analyzer/Video
+
+
+
+

Element Pads

+
++ + + + + + + + + + + + + + + + + + +

name

sink

direction

sink

presence

always

details

video/x-raw-yuv, format=(fourcc){ Y800, I420, YV12, NV12, NV21, Y41B, Y42B }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
++ + + + + + + + + + + + + + + + + + +

name

src

direction

source

presence

always

details

video/x-raw-yuv, format=(fourcc){ Y800, I420, YV12, NV12, NV21, Y41B, Y42B }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+

+

+
+
+

Details

+
+

struct GstZBar

+
struct GstZBar;
+

+Opaque data structure. +

+
+
+
+

Property Details

+
+

The "message" property

+
  "message"                  gboolean              : Read / Write
+

Post a barcode message for each detected code.

+

Default value: TRUE

+
+
+
+

The "cache" property

+
  "cache"                    gboolean              : Read / Write
+

Enable or disable the inter-image result cache.

+

Default value: FALSE

+
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/gst-plugins-bad-plugins.devhelp b/docs/plugins/html/gst-plugins-bad-plugins.devhelp new file mode 100644 index 0000000..6386eec --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins.devhelp @@ -0,0 +1,1090 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 b/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 new file mode 100644 index 0000000..f840268 --- /dev/null +++ b/docs/plugins/html/gst-plugins-bad-plugins.devhelp2 @@ -0,0 +1,1097 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/plugins/html/home.png b/docs/plugins/html/home.png new file mode 100644 index 0000000000000000000000000000000000000000..17003611d9df2b066afc682cbde962f3a575002d GIT binary patch literal 654 zcmV;90&)F`P)~yY zO1cF+0vxb!W?!x?K+*#62Jq)nA4q`)5S6sgX4ao{=)(Mgq+YMr)7sjak|a^9)zS!j zlk{-n29mabXYF=7SYBQx&vO8xC}MYams+hxqtO7sImhPaCf@rq;I^3!#u*2aUP)55 zT2&N90xmEJ0s&fGT~(T<3d2xYmK9C>IP*x-M@ib*+0pFm>>uW37N2Wzaq-fCnIZE9 zpb8}0+uN+KuQM2oZVHfP8U6kQdo3?>Wo2dT)WeM9So8DqhLi#T0 z-i(>mfjhvbsYV`;4sgfJ-p>G-SqJ!fjR6BQYs1h*y9xaN0l{VB;o%`08yiy@)$8@~ z2PD1gcDuiy;j1tR0v#V8OH%W)25-YKyx(j#IXO9*YWf0mb8}QG6@b@;cHxh9{t7+@ o!Yd`f8L$sLH?yBt^q3C6015TtIu@BS5dZ)H07*qoM6N<$f*igdr~m)} literal 0 HcmV?d00001 diff --git a/docs/plugins/html/index.html b/docs/plugins/html/index.html new file mode 100644 index 0000000..567b88d --- /dev/null +++ b/docs/plugins/html/index.html @@ -0,0 +1,612 @@ + + + + +GStreamer Bad Plugins 0.10 Plugins Reference Manual + + + + + + + +
+
+
+
+

+ for GStreamer Bad Plugins 0.10 (0.10.22) + The latest version of this documentation can be found on-line at + http://gstreamer.freedesktop.org/data/doc/gstreamer/head/gst-plugins-bad/html/. +

+
+
+
+
+
gst-plugins-bad Elements
+
+
+aiffparse — Parse a .aiff file into raw audio +
+
+aiffmux — Multiplex raw audio into AIFF +
+
+amrwbenc — Adaptive Multi-Rate Wideband audio encoder +
+
+assrender — Renders ASS/SSA subtitles with libass +
+
+autoconvert — Selects the right transform element based on the caps +
+
+bulge — Adds a protuberance in the center point +
+
+burn — Burn adjusts the colors in the video signal. +
+
+camerabin — Handle lot of features present in DSC +
+
+celtdec — decode celt streams to audio +
+
+celtenc — Encodes audio in Celt format +
+
+chromium — Chromium breaks the colors of the video signal. +
+
+circle — Warps the picture into an arc shaped form +
+
+coloreffects — Color Look-up Table filter +
+
+curlsink — sink that uploads data to a server using libcurl +
+
+cvdilate — Applies cvDilate OpenCV function to the image +
+
+cverode — Applies cvErode OpenCV function to the image +
+
+cvequalizehist — Applies cvEqualizeHist OpenCV function to the image +
+
+cvlaplace — Applies cvLaplace OpenCV function to the image +
+
+cvsmooth — Applies cvSmooth OpenCV function to the image +
+
+cvsobel — Applies cvSobel OpenCV function to the image +
+
+dataurisrc — Handles data: uris +
+
+dccpclientsink — Send data as a client over the network via DCCP +
+
+dccpclientsrc — Receive data as a client over the network via DCCP +
+
+dccpserversink — Send data as a server over the network via DCCP +
+
+dccpserversrc — Receive data as a server over the network via DCCP +
+
+dfbvideosink — A DirectFB based videosink +
+
+diffuse — Diffuses the image by moving its pixels in random directions +
+
+dilate — Dilate copies the brightest pixel around. +
+
+directdrawsink — Direct Draw video sink +
+
+dodge — Dodge saturates the colors in the video signal. +
+
+dtmfdetect — Detects DTMF tones +
+
+dtmfsrc — Generates DTMF tones +
+
+dtsdec — Decodes DTS audio streams +
+
+dvbsrc — Digital Video Broadcast Source +
+
+dvdspu — Parses Sub-Picture command streams and renders the SPU overlay onto the video as it passes through +
+
+exclusion — Exclusion exclodes the colors in the video signal. +
+
+edgedetect — Performs canny edge detection on videos and images. +
+
+faac — Free MPEG-2/4 AAC encoder +
+
+faad — Free MPEG-2/4 AAC decoder +
+
+faceblur — Blurs faces in images and videos +
+
+facedetect — Performs face detection on videos and images, providing detected positions via bus messages +
+
+festival — Synthesizes plain text into audio +
+
+fisheye — Split the image into two halves and reflect one over each other +
+
+fpsdisplaysink — Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout +
+
+freeze — Makes a stream from buffers of data +
+
+gaussianblur — Perform Gaussian blur/sharpen on a video +
+
+ivfparse — Demuxes a IVF stream +
+
+jpegparse — JPEG parser +
+
+kaleidoscope — Applies 'kaleidoscope' geometric transform to the image +
+
+kateenc — Encodes Kate streams from text or subpictures +
+
+katedec — Decodes Kate text streams +
+
+kateparse — parses kate streams +
+
+katetag — retags kate streams +
+
+ladspa — bridge for ladspa (Linux Audio Developer's Simple Plugin API) +
+
+legacyresample — Resample audio +
+
+liveadder — Mixes live/discontinuous audio streams +
+
+marble — Applies a marbling effect to the image +
+
+mimenc — MSN Messenger compatible Mimic video encoder element +
+
+mimdec — MSN Messenger compatible Mimic video decoder element +
+
+mirror — Split the image into two halves and reflect one over each other +
+
+modplug — Module decoder based on modplug engine +
+
+mpeg2enc — High-quality MPEG-1/2 video encoder +
+
+mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer +
+
+mythtvsrc — Control and receive data as a client over the network via raw socket connections using the MythTV protocol +
+
+mxfdemux — Demux MXF files +
+
+mxfmux — Muxes video/audio streams into a MXF stream +
+
+nuvdemux — Demultiplex a MythTV NuppleVideo .nuv file into audio and video +
+
+pcapparse — Parses a raw pcap stream +
+
+pinch — Applies 'pinch' geometric transform to the image +
+
+pyramidsegment — Applies pyramid segmentation to a video or image. +
+
+rsvgdec — Uses librsvg to decode SVG images +
+
+rsvgoverlay — Overlays SVG graphics over a video stream +
+
+rtpdtmfdepay — Generates DTMF Sound from telephone-event RTP packets +
+
+rtpdtmfsrc — Generates RTP DTMF packets +
+
+rtpdtmfmux — mixes RTP DTMF streams into other RTP streams +
+
+rtpmux — multiplex N rtp streams into one +
+
+scaletempo — Sync audio tempo with playback rate +
+
+sdlaudiosink — Output to a sound card via SDLAUDIO +
+
+sdlvideosink — An SDL-based videosink +
+
+shmsink — Send data over shared memory to the matching source +
+
+shmsrc — Receive data from the sharem memory sink +
+
+sdpdemux — Receive data over the network via SDP +
+
+solarize — Solarize tunable inverse in the video signal. +
+
+speed — Set speed/pitch on audio/raw streams (resampler) +
+
+sphere — Applies 'sphere' geometric transform to the image +
+
+square — Distort center part of the image into a square +
+
+stereo — Muck with the stereo signal to enhance its 'stereo-ness' +
+
+stretch — Stretch the image in a circle around the center point +
+
+templatematch — Performs template matching on videos and images, providing detected positions via bus messages +
+
+opencvtextoverlay — Write text on the top of video +
+
+tiger — Decodes and renders Kate streams on top of a video +
+
+timidity — Midi Synthesizer Element +
+
+trm — Compute MusicBrainz TRM Id using libmusicbrainz +
+
+tunnel — Light tunnel effect +
+
+twirl — Twists the image from the center out +
+
+videoanalyse — Analyse video signal +
+
+videodetect — Detect patterns in a video signal +
+
+videomark — Marks a video signal with a pattern +
+
+videomaxrate — Drops extra frames +
+
+videoparse — Converts stream into video frames +
+
+waterripple — Creates a water ripple effect on the image +
+
+wildmidi — Midi Synthesizer Element +
+
+zbar — Detect bar codes in the video streams +
+
+vp8dec — Decode VP8 video streams +
+
+vp8enc — Encode VP8 video streams +
+
+
gst-plugins-bad Plugins
+
+
+aiff — Create and parse Audio Interchange File Format (AIFF) files +
+
+autoconvert — Selects convertor element based on caps +
+
+legacyresample — Resamples audio +
+
+amrwbenc — Adaptive Multi-Rate Wide-Band Encoder +
+
+assrender — ASS/SSA subtitle renderer +
+
+bayer — Elements to convert Bayer images +
+
+bz2 — Compress or decompress streams +
+
+camerabin — High level api for DC (Digital Camera) application +
+
+cdaudio — Play CD audio through the CD Drive +
+
+cdxaparse — Parse a .dat file (VCD) into raw mpeg1 +
+
+celt — CELT plugin library +
+
+coloreffects — Color Look-up Table filters +
+
+curl — libcurl-based elements +
+
+dataurisrc — data: URI source +
+
+dccp — transfer data over the network via DCCP. +
+
+debugutilsbad — Collection of elements that may or may not be useful for debugging +
+
+dfbvideosink — DirectFB video output plugin +
+
+dirac — Dirac plugin +
+
+directdraw — Direct Draw plugin +
+
+dtmf — DTMF plugins +
+
+dtsdec — Decodes DTS audio streams +
+
+dvb — DVB elements +
+
+dvdspu — DVD Sub-picture Overlay element +
+
+faac — Free AAC Encoder (FAAC) +
+
+faad — Free AAC Decoder (FAAD) +
+
+fbdevsink — linux framebuffer video sink +
+
+festival — Synthesizes plain text into audio +
+
+filter — IIR audio filter element +
+
+freeze — Stream freezer +
+
+frei0r — frei0r plugin library +
+
+gaudieffects — Gaudi video effects. +
+
+geometrictransform — Various geometric image transform elements +
+
+gsm — GSM encoder/decoder +
+
+h264parse — Element parsing raw h264 streams +
+
+ivfparse — IVF parser +
+
+jpegformat — JPEG interchange format plugin +
+
+kate — Kate plugin +
+
+ladspa — All LADSPA plugins +
+
+liveadder — Adds multiple live discontinuous streams +
+
+lv2 — All LV2 plugins +
+
+mimic — Mimic codec +
+
+mms — Microsoft Multi Media Server streaming protocol support +
+
+modplug — .MOD audio decoding +
+
+mpeg2enc — High-quality MPEG-1/2 video encoder +
+
+mpeg4videoparse — MPEG-4 video parser +
+
+mpegdemux2 — MPEG demuxers +
+
+mpegpsmux — MPEG-PS muxer +
+
+mpegtsmux — MPEG-TS muxer +
+
+mpegvideoparse — MPEG-1 and MPEG-2 video parser +
+
+mplex — High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer +
+
+musepack — Musepack decoder +
+
+musicbrainz — A TRM signature producer based on libmusicbrainz +
+
+mve — Interplay MVE movie format manipulation +
+
+mxf — MXF plugin library +
+
+nas — NAS (Network Audio System) support for GStreamer +
+
+neon — lib neon http client src +
+
+nsf — Uses nosefart to decode .nsf files +
+
+nuvdemux — Demuxes MythTV NuppelVideo files +
+
+opencv — GStreamer OpenCV Plugins +
+
+pcapparse — Element parsing raw pcap streams +
+
+rawparse — Parses byte streams into raw frames +
+
+real — Decode REAL streams +
+
+rfbsrc — Connects to a VNC server and decodes RFB stream +
+
+rsvg — RSVG plugin library +
+
+rtpmux — RTP Muxer plugins +
+
+scaletempo — Scale audio tempo in sync with playback rate +
+
+sdl — SDL (Simple DirectMedia Layer) support for GStreamer +
+
+sdp — configure streaming sessions using SDP +
+
+shm — shared memory sink source +
+
+sndfile — use libsndfile to read and write audio from and to files +
+
+soundtouch — Audio Pitch Controller & BPM Detection +
+
+spcdec — OpenSPC Audio Decoder +
+
+speed — Set speed/pitch on audio/raw streams (resampler) +
+
+stereo — Muck with the stereo signal, enhance it's 'stereo-ness' +
+
+swfdec — Uses libswfdec to decode Flash video streams +
+
+timidity — Timidity Plugin +
+
+tta — TTA lossless audio format handling +
+
+vcdsrc — Asynchronous read from VCD disk +
+
+videomaxrate — Drop extra frames +
+
+videosignal — Various video signal analysers +
+
+vmnc — VmWare Video Codec plugins +
+
+wildmidi — Wildmidi Plugin +
+
+xvid — XviD plugin library +
+
+vp8 — VP8 plugin +
+
+zbar — zbar barcode scanner +
+
+
gst-plugins-bad Interfaces
+
+GstPhotography — Interface for digital image capture elements +
+
+
+ + + \ No newline at end of file diff --git a/docs/plugins/html/index.sgml b/docs/plugins/html/index.sgml new file mode 100644 index 0000000..ecadf80 --- /dev/null +++ b/docs/plugins/html/index.sgml @@ -0,0 +1,1633 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/docs/plugins/html/left.png b/docs/plugins/html/left.png new file mode 100644 index 0000000000000000000000000000000000000000..2d05b3d5b4aeec9384bbfe404bfc4ed0897051c4 GIT binary patch literal 459 zcmV;+0W|)JP)40xL?wO*>WZ(J#ML5j2<9jD6A%Q&kC}jOeEc;X{s;`zcnxLeZR6?6h#^ihmNF6NpGdilO$m<82oD9WQ|6nVv1`? z>KufRi{?QPXg;4;wroQu4?mN1Ydd@|kaQ|ZyWLK!)yi7Wb%=0{}lD)tfliHAUyWRQ+fD_;aV6j->y6!O_8bENg6P)Cd4HCN^TYHBC0dz3r5|}*T3c5!K}0^NPTey!^rYo;W&eW{b1SE%dR-1ljcju- zJITo5P_e{cPDWDszO|97o#m$fni3V4d%~7^?0HU4-k!+X`e~w55Q}HA=c?CM9`EK` z^o5GF_RsnG`ey+9wOf8O4bzg>7W*;jU~M?g`OZAA$mNp|Lz<$s+~N9!2`ir8RcClo$(Q~19INM~9}j;&*|enC yGd}kJak0wj?aUKd8;%}`i}SSew>!A-2iw}^5}Rh(M>+vRkipZ{&t;ucLK6U4uc96R literal 0 HcmV?d00001 diff --git a/docs/plugins/inspect/plugin-adpcmdec.xml b/docs/plugins/inspect/plugin-adpcmdec.xml new file mode 100644 index 0000000..5a66410 --- /dev/null +++ b/docs/plugins/inspect/plugin-adpcmdec.xml @@ -0,0 +1,34 @@ + + adpcmdec + ADPCM decoder + ../../gst/adpcmdec/.libs/libgstadpcmdec.so + libgstadpcmdec.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + adpcmdec + ADPCM decoder + Codec/Decoder/Audio + Decode MS and IMA ADPCM audio + Pioneers of the Inevitable <songbird@songbirdnest.com + + + sink + sink + always +
audio/x-adpcm, layout=(string){ microsoft, dvi }, block_align=(int)[ 64, 8192 ], rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]
+
+ + src + source + always +
audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, signed=(boolean)true, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-adpcmenc.xml b/docs/plugins/inspect/plugin-adpcmenc.xml new file mode 100644 index 0000000..eb32208 --- /dev/null +++ b/docs/plugins/inspect/plugin-adpcmenc.xml @@ -0,0 +1,34 @@ + + adpcmenc + ADPCM encoder + ../../gst/adpcmenc/.libs/libgstadpcmenc.so + libgstadpcmenc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + adpcmenc + ADPCM encoder + Codec/Encoder/Audio + Encode ADPCM audio + Pioneers of the Inevitable <songbird@songbirdnest.com + + + sink + sink + always +
audio/x-raw-int, depth=(int)16, width=(int)16, channels=(int)[ 1, 2 ], rate=(int)[ 1, 2147483647 ]
+
+ + src + source + always +
audio/x-adpcm, layout=(string){ dvi }, block_align=(int)[ 64, 8192 ], rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-aiff.xml b/docs/plugins/inspect/plugin-aiff.xml new file mode 100644 index 0000000..47c7bea --- /dev/null +++ b/docs/plugins/inspect/plugin-aiff.xml @@ -0,0 +1,55 @@ + + aiff + Create and parse Audio Interchange File Format (AIFF) files + ../../gst/aiff/.libs/libgstaiff.so + libgstaiff.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + aiffmux + AIFF audio muxer + Muxer/Audio + Multiplex raw audio into AIFF + Robert Swain <robert.swain@gmail.com> + + + sink + sink + always +
audio/x-raw-int, width=(int)8, depth=(int)[ 1, 8 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)16, depth=(int)[ 9, 16 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)24, depth=(int)[ 17, 24 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-int, width=(int)32, depth=(int)[ 25, 32 ], signed=(boolean)true, endianness=(int)4321, channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]
+
+ + src + source + always +
audio/x-aiff
+
+
+
+ + aiffparse + AIFF audio demuxer + Codec/Demuxer/Audio + Parse a .aiff file into raw audio + Pioneers of the Inevitable <songbird@songbirdnest.com> + + + sink + sink + always +
audio/x-aiff
+
+ + src + source + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-amrwbenc.xml b/docs/plugins/inspect/plugin-amrwbenc.xml new file mode 100644 index 0000000..3fb7e4c --- /dev/null +++ b/docs/plugins/inspect/plugin-amrwbenc.xml @@ -0,0 +1,34 @@ + + amrwbenc + Adaptive Multi-Rate Wide-Band Encoder + ../../ext/amrwbenc/.libs/libgstamrwbenc.so + libgstamrwbenc.so + 0.10.22 + unknown + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + amrwbenc + AMR-WB audio encoder + Codec/Encoder/Audio + Adaptive Multi-Rate Wideband audio encoder + Renato Araujo <renato.filho@indt.org.br> + + + sink + sink + always +
audio/x-raw-int, width=(int)16, depth=(int)16, signed=(boolean)true, endianness=(int)1234, rate=(int)16000, channels=(int)1
+
+ + src + source + always +
audio/AMR-WB, rate=(int)16000, channels=(int)1
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-apexsink.xml b/docs/plugins/inspect/plugin-apexsink.xml new file mode 100644 index 0000000..95dcedc --- /dev/null +++ b/docs/plugins/inspect/plugin-apexsink.xml @@ -0,0 +1,28 @@ + + apexsink + Apple AirPort Express Plugin + ../../ext/apexsink/.libs/libgstapexsink.so + libgstapexsink.so + 0.10.21.1 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins git + Unknown package origin + + + apexsink + Apple AirPort Express Audio Sink + Sink/Audio/Wireless + Output stream to an AirPort Express + Jérémie Bernard [GRemi] <gremimail@gmail.com> + + + sink + sink + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, channels=(int)2, rate=(int)44100, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-asfmux.xml b/docs/plugins/inspect/plugin-asfmux.xml new file mode 100644 index 0000000..e68e442 --- /dev/null +++ b/docs/plugins/inspect/plugin-asfmux.xml @@ -0,0 +1,82 @@ + + asfmux + ASF Muxer Plugin + ../../gst/asfmux/.libs/libgstasfmux.so + libgstasfmux.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + asfmux + ASF muxer + Codec/Muxer + Muxes audio and video into an ASF stream + Thiago Santos <thiagoss@embedded.ufcg.edu.br> + + + audio_%d + sink + request +
audio/x-wma, wmaversion=(int)[ 1, 3 ]; audio/mpeg, layer=(int)3, mpegversion=(int)1, channels=(int)[ 1, 2 ], rate=(int)[ 8000, 96000 ]
+
+ + video_%d + sink + request +
video/x-wmv, wmvversion=(int)[ 1, 3 ]
+
+ + src + source + always +
video/x-ms-asf, parsed=(boolean)true
+
+
+
+ + asfparse + ASF parser + Parser + Parses ASF + Thiago Santos <thiagoss@embedded.ufcg.edu.br> + + + sink + sink + always +
video/x-ms-asf, parsed=(boolean)false
+
+ + src + source + always +
video/x-ms-asf, parsed=(boolean)true
+
+
+
+ + rtpasfpay + RTP ASF payloader + Codec/Payloader/Network + Payload-encodes ASF into RTP packets (MS_RTSP) + Thiago Santos <thiagoss@embedded.ufcg.edu.br> + + + sink + sink + always +
video/x-ms-asf, parsed=(boolean)true
+
+ + src + source + always +
application/x-rtp, media=(string){ audio, video, application }, clock-rate=(int)1000, encoding-name=(string)X-ASF-PF
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-assrender.xml b/docs/plugins/inspect/plugin-assrender.xml new file mode 100644 index 0000000..0f91fd2 --- /dev/null +++ b/docs/plugins/inspect/plugin-assrender.xml @@ -0,0 +1,40 @@ + + assrender + ASS/SSA subtitle renderer + ../../ext/assrender/.libs/libgstassrender.so + libgstassrender.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + assrender + ASS/SSA Render + Mixer/Video/Overlay/Subtitle + Renders ASS/SSA subtitles with libass + Benjamin Schmitz <vortex@wolpzone.de>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + text_sink + sink + always +
application/x-ass; application/x-ssa
+
+ + video_sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-autoconvert.xml b/docs/plugins/inspect/plugin-autoconvert.xml new file mode 100644 index 0000000..3171fd2 --- /dev/null +++ b/docs/plugins/inspect/plugin-autoconvert.xml @@ -0,0 +1,55 @@ + + autoconvert + Selects convertor element based on caps + ../../gst/autoconvert/.libs/libgstautoconvert.so + libgstautoconvert.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + autoconvert + Select convertor based on caps + Generic/Bin + Selects the right transform element based on the caps + Olivier Crete <olivier.crete@collabora.co.uk> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+ + autovideoconvert + Select color space convertor based on caps + Generic/Bin + Selects the right color space convertor based on the caps + Benjamin Gaignard <benjamin.gaignard@stericsson.com> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-bayer.xml b/docs/plugins/inspect/plugin-bayer.xml new file mode 100644 index 0000000..1de4ddd --- /dev/null +++ b/docs/plugins/inspect/plugin-bayer.xml @@ -0,0 +1,55 @@ + + bayer + Elements to convert Bayer images + ../../gst/bayer/.libs/libgstbayer.so + libgstbayer.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + bayer2rgb + Bayer to RGB decoder for cameras + Filter/Converter/Video + Converts video/x-raw-bayer to video/x-raw-rgb + William Brack <wbrack@mmm.com.hk> + + + sink + sink + always +
video/x-raw-bayer, format=(string){ bggr, grbg, gbrg, rggb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + rgb2bayer + RGB to Bayer converter + Filter/Converter/Video + Converts video/x-raw-rgb to video/x-raw-bayer + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-bayer, format=(string){ bggr, gbrg, grbg, rggb }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-bz2.xml b/docs/plugins/inspect/plugin-bz2.xml new file mode 100644 index 0000000..84cd7ae --- /dev/null +++ b/docs/plugins/inspect/plugin-bz2.xml @@ -0,0 +1,55 @@ + + bz2 + Compress or decompress streams + ../../ext/bz2/.libs/libgstbz2.so + libgstbz2.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + bz2dec + BZ2 decoder + Codec/Decoder + Decodes compressed streams + Lutz Mueller <lutz@users.sourceforge.net> + + + sink + sink + always +
application/x-bzip
+
+ + src + source + always +
ANY
+
+
+
+ + bz2enc + BZ2 encoder + Codec/Encoder + Compresses streams + Lutz Mueller <lutz@users.sourceforge.net> + + + sink + sink + always +
ANY
+
+ + src + source + always +
application/x-bzip
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-camerabin.xml b/docs/plugins/inspect/plugin-camerabin.xml new file mode 100644 index 0000000..e0dedde --- /dev/null +++ b/docs/plugins/inspect/plugin-camerabin.xml @@ -0,0 +1,22 @@ + + camerabin + High level api for DC (Digital Camera) application + ../../gst/camerabin/.libs/libgstcamerabin.so + libgstcamerabin.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + camerabin + Camera Bin + Generic/Bin/Camera + Handle lot of features present in DSC + Nokia Corporation <multimedia@maemo.org>, Edgard Lima <edgard.lima@indt.org.br> + + + + + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-cdaudio.xml b/docs/plugins/inspect/plugin-cdaudio.xml new file mode 100644 index 0000000..f38433a --- /dev/null +++ b/docs/plugins/inspect/plugin-cdaudio.xml @@ -0,0 +1,22 @@ + + cdaudio + Play CD audio through the CD Drive + ../../ext/cdaudio/.libs/libgstcdaudio.so + libgstcdaudio.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + cdaudio + CD player + Generic/Bin + Play CD audio through the CD Drive + Wim Taymans <wim@fluendo.com> + + + + + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-cdxaparse.xml b/docs/plugins/inspect/plugin-cdxaparse.xml new file mode 100644 index 0000000..e2ebac9 --- /dev/null +++ b/docs/plugins/inspect/plugin-cdxaparse.xml @@ -0,0 +1,55 @@ + + cdxaparse + Parse a .dat file (VCD) into raw mpeg1 + ../../gst/cdxaparse/.libs/libgstcdxaparse.so + libgstcdxaparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + cdxaparse + (S)VCD parser + Codec/Parser + Parse a .dat file from (S)VCD into raw MPEG-1 + Wim Taymans <wim.taymans@tvd.be> + + + sink + sink + always +
video/x-cdxa
+
+ + src + source + always +
video/mpeg, systemstream=(boolean)true
+
+
+
+ + vcdparse + (S)VCD stream parser + Codec/Parser + Strip (S)VCD stream from its sync headers + Tim-Philipp Müller <tim centricular net>, Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
video/x-vcd
+
+ + src + source + always +
video/mpeg, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-celt.xml b/docs/plugins/inspect/plugin-celt.xml new file mode 100644 index 0000000..d7bb3ee --- /dev/null +++ b/docs/plugins/inspect/plugin-celt.xml @@ -0,0 +1,55 @@ + + celt + CELT plugin library + ../../ext/celt/.libs/libgstcelt.so + libgstcelt.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + celtdec + Celt audio decoder + Codec/Decoder/Audio + decode celt streams to audio + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
audio/x-celt
+
+ + src + source + always +
audio/x-raw-int, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16
+
+
+
+ + celtenc + Celt audio encoder + Codec/Encoder/Audio + Encodes audio in Celt format + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
audio/x-raw-int, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16
+
+ + src + source + always +
audio/x-celt, rate=(int)[ 32000, 64000 ], channels=(int)[ 1, 2 ], frame-size=(int)[ 64, 512 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-cog.xml b/docs/plugins/inspect/plugin-cog.xml new file mode 100644 index 0000000..d042cd6 --- /dev/null +++ b/docs/plugins/inspect/plugin-cog.xml @@ -0,0 +1,145 @@ + + cog + Cog plugin + ../../ext/cog/.libs/libgstcog.so + libgstcog.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + cogcolorconvert + Convert colorspace + Filter/Effect/Video + Convert between SDTV and HDTV colorspace + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cogcolorspace + YCbCr/RGB format conversion + Filter/Converter/Video + YCbCr/RGB format conversion + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV, Y42B, Y444, v216, v210 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV, Y42B, Y444, v216, v210 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cogdownsample + Scale down video by factor of 2 + Filter/Effect/Video + Scales down video by a factor of 2 + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + coglogoinsert + Overlay image onto video + Filter/Effect/Video + Overlay image onto video + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cogmse + Calculate MSE + Filter/Effect + Calculates mean squared error between two video streams + David Schleef <ds@schleef.org> + + + sink_ref + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_test + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cogscale + Video scaler + Filter/Effect/Video + Resizes video + Wim Taymans <wim.taymans@chello.be> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV, Y42B }, width=(int)[ 2, 2147483647 ], height=(int)[ 2, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 2, 2147483647 ], height=(int)[ 2, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV, Y42B }, width=(int)[ 2, 2147483647 ], height=(int)[ 2, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 2, 2147483647 ], height=(int)[ 2, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-coloreffects.xml b/docs/plugins/inspect/plugin-coloreffects.xml new file mode 100644 index 0000000..1a35ae4 --- /dev/null +++ b/docs/plugins/inspect/plugin-coloreffects.xml @@ -0,0 +1,55 @@ + + coloreffects + Color Look-up Table filters + ../../gst/coloreffects/.libs/libgstcoloreffects.so + libgstcoloreffects.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + chromahold + Chroma hold filter + Filter/Effect/Video + Removes all color information except for one color + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + coloreffects + Color Look-up Table filter + Filter/Effect/Video + Color Look-up Table filter + Filippo Argiolas <filippo.argiolas@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-colorspace.xml b/docs/plugins/inspect/plugin-colorspace.xml new file mode 100644 index 0000000..90ef7c2 --- /dev/null +++ b/docs/plugins/inspect/plugin-colorspace.xml @@ -0,0 +1,34 @@ + + colorspace + Colorspace conversion + ../../gst/colorspace/.libs/libgstcolorspace.so + libgstcolorspace.so + 0.10.22 + LGPL + gst-plugins-bad + + + + + colorspace + Colorspace converter + Filter/Converter/Video + Converts video from one colorspace to another + GStreamer maintainers <gstreamer-devel@lists.sourceforge.net> + + + sink + sink + always +
video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, NV12, NV21, YV12, YUY2, Y42B, Y444, YUV9, YVU9, Y41B, Y800, Y8 , GREY, Y16 , UYVY, YVYU, IYU1, v308, AYUV, v210, v216, A420, AY64 }; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)31, green_mask=(int)2016, blue_mask=(int)63488, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31, green_mask=(int)992, blue_mask=(int)31744, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)30, endianness=(int)4321, red_mask=(int)1072693248, green_mask=(int)1047552, blue_mask=(int)1023, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)64, depth=(int)64, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], format=(fourcc){ I420, NV12, NV21, YV12, YUY2, Y42B, Y444, YUV9, YVU9, Y41B, Y800, Y8 , GREY, Y16 , UYVY, YVYU, IYU1, v308, AYUV, v210, v216, A420, AY64 }; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)31, green_mask=(int)2016, blue_mask=(int)63488, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31, green_mask=(int)992, blue_mask=(int)31744, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)30, endianness=(int)4321, red_mask=(int)1072693248, green_mask=(int)1047552, blue_mask=(int)1023, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)64, depth=(int)64, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-curl.xml b/docs/plugins/inspect/plugin-curl.xml new file mode 100644 index 0000000..ce1524c --- /dev/null +++ b/docs/plugins/inspect/plugin-curl.xml @@ -0,0 +1,28 @@ + + curl + libcurl-based elements + ../../ext/curl/.libs/libgstcurl.so + libgstcurl.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + curlsink + Curl sink + Sink/Network + Upload data over the network to a server using libcurl + Patricia Muscalu <patricia@axis.com> + + + sink + sink + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dataurisrc.xml b/docs/plugins/inspect/plugin-dataurisrc.xml new file mode 100644 index 0000000..becc63d --- /dev/null +++ b/docs/plugins/inspect/plugin-dataurisrc.xml @@ -0,0 +1,28 @@ + + dataurisrc + data: URI source + ../../gst/dataurisrc/.libs/libgstdataurisrc.so + libgstdataurisrc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dataurisrc + data: URI source element + Source + Handles data: uris + Philippe Normand <pnormand@igalia.com>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dc1394.xml b/docs/plugins/inspect/plugin-dc1394.xml new file mode 100644 index 0000000..ffdeeb3 --- /dev/null +++ b/docs/plugins/inspect/plugin-dc1394.xml @@ -0,0 +1,28 @@ + + dc1394 + 1394 IIDC Video Source + ../../ext/dc1394/.libs/libgstdc1394.so + libgstdc1394.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dc1394src + 1394 IIDC Video Source + Source/Video + libdc1394 based source, supports 1394 IIDC cameras + Antoine Tremblay <hexa00@gmail.com> + + + src + source + always +
video/x-raw-yuv, format=(fourcc)IYU2, bpp=(int)16, width=(int)160, height=(int)120, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)64; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)320, height=(int)240, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)65; video/x-raw-yuv, format=(fourcc)IYU1, bpp=(int)12, width=(int)640, height=(int)480, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)66; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)640, height=(int)480, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)67; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)640, height=(int)480, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)68; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)640, height=(int)480, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)69; video/x-raw-gray, bpp=(int)16, depth=(int)16, width=(int)640, height=(int)480, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)70; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)800, height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)71; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)800, height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)72; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)800, height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)73; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)1024, height=(int)768, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)74; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)1024, height=(int)768, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)75; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)1024, height=(int)768, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)76; video/x-raw-gray, bpp=(int)16, depth=(int)16, width=(int)800, height=(int)600, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)77; video/x-raw-gray, bpp=(int)16, depth=(int)16, width=(int)1024, height=(int)768, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)78; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)1280, height=(int)960, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)79; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)1280, height=(int)960, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)80; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)1280, height=(int)960, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)81; video/x-raw-yuv, format=(fourcc)UYVY, bpp=(int)16, width=(int)1600, height=(int)1200, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)82; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)1600, height=(int)1200, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)83; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)1600, height=(int)1200, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)84; video/x-raw-gray, bpp=(int)16, depth=(int)16, width=(int)1280, height=(int)960, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)85; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)1600, height=(int)1200, framerate=(fraction)[ 0/1, 2147483647/1 ], vmode=(int)86; video/x-raw-gray, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], bpp=(int)8, depth=(int)8; video/x-raw-yuv, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], format=(fourcc)IYU1, bpp=(int)12; video/x-raw-yuv, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], format=(fourcc)UYVY, bpp=(int)16; video/x-raw-yuv, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], format=(fourcc)IYU2, bpp=(int)16; video/x-raw-rgb, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255; video/x-raw-gray, vmode=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], bpp=(int)16, depth=(int)16
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dccp.xml b/docs/plugins/inspect/plugin-dccp.xml new file mode 100644 index 0000000..a2f6712 --- /dev/null +++ b/docs/plugins/inspect/plugin-dccp.xml @@ -0,0 +1,73 @@ + + dccp + transfer data over the network via DCCP. + ../../gst/dccp/.libs/libgstdccp.so + libgstdccp.so + 0.10.22 + LGPL + gst-plugins-bad + DCCP + http://garage.maemo.org/projects/ephone + + + dccpclientsink + DCCP client sink + Sink/Network + Send data as a client over the network via DCCP + E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com> + + + sink + sink + always +
ANY
+
+
+
+ + dccpclientsrc + DCCP client source + Source/Network + Receive data as a client over the network via DCCP + E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com> + + + src + source + always +
ANY
+
+
+
+ + dccpserversink + DCCP server sink + Sink/Network + Send data as a server over the network via DCCP + E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com> + + + sink + sink + always +
ANY
+
+
+
+ + dccpserversrc + DCCP server source + Source/Network + Receive data as a server over the network via DCCP + E-Phone Team at Federal University of Campina Grande <leandroal@gmail.com> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-debugutilsbad.xml b/docs/plugins/inspect/plugin-debugutilsbad.xml new file mode 100644 index 0000000..911dc0d --- /dev/null +++ b/docs/plugins/inspect/plugin-debugutilsbad.xml @@ -0,0 +1,70 @@ + + debugutilsbad + Collection of elements that may or may not be useful for debugging + ../../gst/debugutils/.libs/libgstdebugutilsbad.so + libgstdebugutilsbad.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + checksumsink + Checksum sink + Debug/Sink + Calculates a checksum for buffers + David Schleef <ds@schleef.org> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+ + chopmydata + FIXME + Generic + FIXME + David Schleef <ds@schleef.org> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+ + fpsdisplaysink + Measure and show framerate on videosink + Sink/Video + Shows the current frame-rate and drop-rate of the videosink as overlay or text on stdout + Zeeshan Ali <zeeshan.ali@nokia.com>, Stefan Kost <stefan.kost@nokia.com> + + + sink + sink + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-decklink.xml b/docs/plugins/inspect/plugin-decklink.xml new file mode 100644 index 0000000..6d1e6d1 --- /dev/null +++ b/docs/plugins/inspect/plugin-decklink.xml @@ -0,0 +1,55 @@ + + decklink + Blackmagic Decklink plugin + ../../sys/decklink/.libs/libgstdecklink.so + libgstdecklink.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + decklinksink + Decklink Sink + Video/Sink + Decklink Sink + David Schleef <ds@entropywave.com> + + + audiosink + sink + always +
audio/x-raw-int, width=(int)16, depth=(int)16, channels=(int)2, rate=(int)48000
+
+ + videosink + sink + always +
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)30000/1001, interlaced=(boolean)true
+
+
+
+ + decklinksrc + Decklink source + Source/Video + DeckLink Source + David Schleef <ds@entropywave.com> + + + audiosrc + source + always +
audio/x-raw-int, width=(int)16, depth=(int)16, channels=(int)2, rate=(int)48000
+
+ + videosrc + source + always +
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)30000/1001, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)486, framerate=(fraction)24000/1001, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576, framerate=(fraction)25/1, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)24000/1001, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)24/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30000/1001, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlaced=(boolean)false; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)25/1, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30000/1001, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1920, height=(int)1080, framerate=(fraction)30/1, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)50/1, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60000/1001, interlaced=(boolean)true; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)1280, height=(int)720, framerate=(fraction)60/1, interlaced=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dfbvideosink.xml b/docs/plugins/inspect/plugin-dfbvideosink.xml new file mode 100644 index 0000000..ca19c66 --- /dev/null +++ b/docs/plugins/inspect/plugin-dfbvideosink.xml @@ -0,0 +1,28 @@ + + dfbvideosink + DirectFB video output plugin + ../../ext/directfb/.libs/libgstdfbvideosink.so + libgstdfbvideosink.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dfbvideosink + DirectFB video sink + Sink/Video + A DirectFB based videosink + Julien Moutte <julien@moutte.net> + + + sink + sink + always +
video/x-raw-rgb, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]; video/x-raw-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dirac.xml b/docs/plugins/inspect/plugin-dirac.xml new file mode 100644 index 0000000..e6758e0 --- /dev/null +++ b/docs/plugins/inspect/plugin-dirac.xml @@ -0,0 +1,34 @@ + + dirac + Dirac plugin + ../../ext/dirac/.libs/libgstdirac.so + libgstdirac.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + diracenc + Dirac Encoder + Codec/Encoder/Video + Encode raw YUV video into Dirac stream + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-dirac; video/x-qt-part; video/x-mp4-part
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-directdraw.xml b/docs/plugins/inspect/plugin-directdraw.xml new file mode 100644 index 0000000..2411032 --- /dev/null +++ b/docs/plugins/inspect/plugin-directdraw.xml @@ -0,0 +1,20 @@ + + directdraw + Direct Draw plugin + ../../win32/vs6/release/libgstdirectdraw.dll + libgstdirectdraw.dll + 0.10.4.1 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins CVS + Unknown package origin + + + directdrawsink + Direct Draw video sink + Sink/Video + Direct Draw video sink + Sebastien Moutte <sebastien@moutte.net> + + + diff --git a/docs/plugins/inspect/plugin-dtmf.xml b/docs/plugins/inspect/plugin-dtmf.xml new file mode 100644 index 0000000..fb3fdd7 --- /dev/null +++ b/docs/plugins/inspect/plugin-dtmf.xml @@ -0,0 +1,85 @@ + + dtmf + DTMF plugins + ../../gst/dtmf/.libs/libgstdtmf.so + libgstdtmf.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dtmfdetect + DTMF detector element + Filter/Analyzer/Audio + This element detects DTMF tones + Olivier Crete <olivier.crete@collabora.co.uk> + + + sink + sink + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
+
+ + src + source + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)8000, channels=(int)1
+
+
+
+ + dtmfsrc + DTMF tone generator + Source/Audio + Generates DTMF tones + Youness Alaoui <youness.alaoui@collabora.co.uk> + + + src + source + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 1, 2147483647 ], channels=(int)1
+
+
+
+ + rtpdtmfdepay + RTP DTMF packet depayloader + Codec/Depayloader/Network + Generates DTMF Sound from telephone-event RTP packets + Youness Alaoui <youness.alaoui@collabora.co.uk> + + + sink + sink + always +
application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT
+
+ + src + source + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)[ 0, 2147483647 ], channels=(int)1
+
+
+
+ + rtpdtmfsrc + RTP DTMF packet generator + Source/Network + Generates RTP DTMF packets + Zeeshan Ali <zeeshan.ali@nokia.com> + + + src + source + always +
application/x-rtp, media=(string)audio, payload=(int)[ 96, 127 ], clock-rate=(int)[ 0, 2147483647 ], ssrc=(int)[ 0, 2147483647 ], encoding-name=(string)TELEPHONE-EVENT
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dtsdec.xml b/docs/plugins/inspect/plugin-dtsdec.xml new file mode 100644 index 0000000..a22b43f --- /dev/null +++ b/docs/plugins/inspect/plugin-dtsdec.xml @@ -0,0 +1,34 @@ + + dtsdec + Decodes DTS audio streams + ../../ext/dts/.libs/libgstdtsdec.so + libgstdtsdec.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dtsdec + DTS audio decoder + Codec/Decoder/Audio + Decodes DTS audio streams + Jan Schmidt <thaytan@noraisin.net>, Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
audio/x-dts; audio/x-private1-dts
+
+ + src + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dvb.xml b/docs/plugins/inspect/plugin-dvb.xml new file mode 100644 index 0000000..a09e421 --- /dev/null +++ b/docs/plugins/inspect/plugin-dvb.xml @@ -0,0 +1,49 @@ + + dvb + DVB elements + ../../sys/dvb/.libs/libgstdvb.so + libgstdvb.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dvbbasebin + DVB bin + Source/Bin/Video + Access descramble and split DVB streams + Alessandro Decina <alessandro@nnva.org> + + + program_%d + source + sometimes +
video/mpegts, systemstream=(boolean)true
+
+ + src%d + source + request +
video/mpegts, systemstream=(boolean)true
+
+
+
+ + dvbsrc + DVB Source + Source/Video + Digital Video Broadcast Source + P2P-VCR, C-Lab, University of Paderborn,Zaheer Abbas Merali <zaheerabbas at merali dot org> + + + src + source + always +
video/mpegts, mpegversion=(int)2, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dvbsuboverlay.xml b/docs/plugins/inspect/plugin-dvbsuboverlay.xml new file mode 100644 index 0000000..51ec1ee --- /dev/null +++ b/docs/plugins/inspect/plugin-dvbsuboverlay.xml @@ -0,0 +1,40 @@ + + dvbsuboverlay + DVB subtitle renderer + ../../gst/dvbsuboverlay/.libs/libgstdvbsuboverlay.so + libgstdvbsuboverlay.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dvbsuboverlay + DVB Subtitles Overlay + Mixer/Video/Overlay/Subtitle + Renders DVB subtitles + Mart Raudsepp <mart.raudsepp@collabora.co.uk> + + + text_sink + sink + always +
subpicture/x-dvb
+
+ + video_sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-dvdspu.xml b/docs/plugins/inspect/plugin-dvdspu.xml new file mode 100644 index 0000000..cfc1b58 --- /dev/null +++ b/docs/plugins/inspect/plugin-dvdspu.xml @@ -0,0 +1,40 @@ + + dvdspu + DVD Sub-picture Overlay element + ../../gst/dvdspu/.libs/libgstdvdspu.so + libgstdvdspu.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + dvdspu + Sub-picture Overlay + Mixer/Video/Overlay/SubPicture/DVD/Bluray + Parses Sub-Picture command streams and renders the SPU overlay onto the video as it passes through + Jan Schmidt <thaytan@noraisin.net> + + + subpicture + sink + always +
video/x-dvd-subpicture; subpicture/x-pgs
+
+ + video + sink + always +
video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-faac.xml b/docs/plugins/inspect/plugin-faac.xml new file mode 100644 index 0000000..0812bb8 --- /dev/null +++ b/docs/plugins/inspect/plugin-faac.xml @@ -0,0 +1,34 @@ + + faac + Free AAC Encoder (FAAC) + ../../ext/faac/.libs/libgstfaac.so + libgstfaac.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + faac + AAC audio encoder + Codec/Encoder/Audio + Free MPEG-2/4 AAC encoder + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 6 ]
+
+ + src + source + always +
audio/mpeg, mpegversion=(int){ 4, 2 }, channels=(int)[ 1, 6 ], rate=(int)[ 8000, 96000 ], stream-format=(string){ adts, raw }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-faad.xml b/docs/plugins/inspect/plugin-faad.xml new file mode 100644 index 0000000..6c4805f --- /dev/null +++ b/docs/plugins/inspect/plugin-faad.xml @@ -0,0 +1,34 @@ + + faad + Free AAC Decoder (FAAD) + ../../ext/faad/.libs/libgstfaad.so + libgstfaad.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + faad + AAC audio decoder + Codec/Decoder/Audio + Free MPEG-2/4 AAC decoder + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
audio/mpeg, mpegversion=(int){ 2, 4 }
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 8 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-fbdevsink.xml b/docs/plugins/inspect/plugin-fbdevsink.xml new file mode 100644 index 0000000..1ee9556 --- /dev/null +++ b/docs/plugins/inspect/plugin-fbdevsink.xml @@ -0,0 +1,28 @@ + + fbdevsink + linux framebuffer video sink + ../../sys/fbdev/.libs/libgstfbdevsink.so + libgstfbdevsink.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + fbdevsink + fbdev video sink + Sink/Video + A linux framebuffer videosink + Sean D'Epagnier <sean@depagnier.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-festival.xml b/docs/plugins/inspect/plugin-festival.xml new file mode 100644 index 0000000..a1f1ea8 --- /dev/null +++ b/docs/plugins/inspect/plugin-festival.xml @@ -0,0 +1,34 @@ + + festival + Synthesizes plain text into audio + ../../gst/festival/.libs/libgstfestival.so + libgstfestival.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + festival + Festival Text-to-Speech synthesizer + Filter/Effect/Audio + Synthesizes plain text into audio + Wim Taymans <wim.taymans@chello.be> + + + sink + sink + always +
text/plain
+
+ + src + source + always +
audio/x-wav
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-fieldanalysis.xml b/docs/plugins/inspect/plugin-fieldanalysis.xml new file mode 100644 index 0000000..3044050 --- /dev/null +++ b/docs/plugins/inspect/plugin-fieldanalysis.xml @@ -0,0 +1,34 @@ + + fieldanalysis + Video field analysis + ../../gst/fieldanalysis/.libs/libgstfieldanalysis.so + libgstfieldanalysis.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + fieldanalysis + Video field analysis + Filter/Analysis/Video + Analyse fields from video frames to identify if they are progressive/telecined/interlaced + Robert Swain <robert.swain@collabora.co.uk> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ YUY2, UYVY, I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ YUY2, UYVY, I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-filter.xml b/docs/plugins/inspect/plugin-filter.xml new file mode 100644 index 0000000..f6852f8 --- /dev/null +++ b/docs/plugins/inspect/plugin-filter.xml @@ -0,0 +1,34 @@ + + filter + IIR audio filter element + ../../gst/filter/.libs/libgstfilter.so + libgstfilter.so + 0.10.10 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + iir + Infinite Impulse Response (IIR) filter + Filter/Effect/Audio + IIR filter based on vorbis code + Monty <monty@xiph.org>, Thomas Vander Stichele <thomas at apestaart dot org>, Dreamlab Technologies Ltd. <mathis.hofer@dreamlab.net> + + + sink + sink + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32
+
+ + src + source + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-fragmented.xml b/docs/plugins/inspect/plugin-fragmented.xml new file mode 100644 index 0000000..c21052a --- /dev/null +++ b/docs/plugins/inspect/plugin-fragmented.xml @@ -0,0 +1,35 @@ + + fragmented + Fragmented streaming plugins + ../../gst/hls/.libs/libgstfragmented.so + libgstfragmented.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + http://www.gstreamer.org/ + + + hlsdemux + HLS Demuxer + Demuxer/URIList + HTTP Live Streaming demuxer + Marc-Andre Lureau <marcandre.lureau@gmail.com> +Andoni Morales Alastruey <ylatuya@gmail.com> + + + sink + sink + always +
application/x-hls
+
+ + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-freeze.xml b/docs/plugins/inspect/plugin-freeze.xml new file mode 100644 index 0000000..c486b74 --- /dev/null +++ b/docs/plugins/inspect/plugin-freeze.xml @@ -0,0 +1,34 @@ + + freeze + Stream freezer + ../../gst/freeze/.libs/libgstfreeze.so + libgstfreeze.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + freeze + Stream freezer + Generic + Makes a stream from buffers of data + Gergely Nagy <gergely.nagy@neteyes.hu>, Renato Filho <renato.filho@indt.org.br> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-frei0r.xml b/docs/plugins/inspect/plugin-frei0r.xml new file mode 100644 index 0000000..060f64c --- /dev/null +++ b/docs/plugins/inspect/plugin-frei0r.xml @@ -0,0 +1,1973 @@ + + frei0r + frei0r plugin library + ../../gst/frei0r/.libs/libgstfrei0r.so + libgstfrei0r.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + frei0r-filter-3-point-color-balance + 3 point color balance + Filter/Effect/Video + Adjust color balance with 3 color points + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Maksim Golovkin + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-3dflippo + 3dflippo + Filter/Effect/Video + Frame rotation in 3d-space + Sebastian Dröge <sebastian.droege@collabora.co.uk>, c.e. prelz AS FLUIDO <fluido@fluido.as> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-b + B + Filter/Effect/Video + Extracts Blue from Image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-baltan + Baltan + Filter/Effect/Video + delayed alpha smoothed blit of time + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Kentaro, Jaromil + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-bluescreen0r + bluescreen0r + Filter/Effect/Video + Color to alpha (blit SRCALPHA) + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Hedde Bosman + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-brightness + Brightness + Filter/Effect/Video + Adjusts the brightness of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-bw0r + bw0r + Filter/Effect/Video + Turns image black/white. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, coma@gephex.org + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-cartoon + Cartoon + Filter/Effect/Video + Cartoonify video, do a form of edge detect + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Dries Pruimboom, Jaromil + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-color-distance + Color Distance + Filter/Effect/Video + + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-contrast0r + Contrast0r + Filter/Effect/Video + Adjusts the contrast of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-curves + Curves + Filter/Effect/Video + Adjust luminance or color channel intensity with curve level mapping + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Maksim Golovkin + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-dealygrab + Dealygrab + Filter/Effect/Video + delayed frame blitting mapped on a time bitmap + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Bill Spinhover, Andreas Schiffler, Jaromil + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-delay0r + delay0r + Filter/Effect/Video + video delay + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-distort0r + Distort0r + Filter/Effect/Video + Plasma + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Gephex crew + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-edgeglow + Edgeglow + Filter/Effect/Video + Edgeglow filter + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Salsaman + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-equaliz0r + Equaliz0r + Filter/Effect/Video + Equalizes the intensity histograms + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal (Drone) + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-flippo + Flippo + Filter/Effect/Video + Flipping in x and y axis + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Carlo Emilio, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-g + G + Filter/Effect/Video + Extracts Green from Image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-gamma + Gamma + Filter/Effect/Video + Adjusts the gamma value of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-glow + Glow + Filter/Effect/Video + Creates a Glamorous Glow + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-hueshift0r + Hueshift0r + Filter/Effect/Video + Shifts the hue of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-invert0r + Invert0r + Filter/Effect/Video + Inverts all colors of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Gephex crew + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-k-means-clustering + K-Means Clustering + Filter/Effect/Video + Clusters of a source image by color and spatial distance + Sebastian Dröge <sebastian.droege@collabora.co.uk>, binarymillenium + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-lens-correction + Lens Correction + Filter/Effect/Video + Allows compensation of lens distortion + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-letterb0xed + LetterB0xed + Filter/Effect/Video + Adds Black Borders at top and bottom for Cinema Look + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-levels + Levels + Filter/Effect/Video + Adjust luminance or color channel intensity + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Maksim Golovkin + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-luminance + Luminance + Filter/Effect/Video + Creates a luminance map of the image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-mask0mate + Mask0Mate + Filter/Effect/Video + Creates an square alpha-channel mask + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-nervous + Nervous + Filter/Effect/Video + flushes frames in time in a nervous way + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Tannenbaum, Kentaro, Jaromil + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-nosync0r + nosync0r + Filter/Effect/Video + broken tv + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-perspective + Perspective + Filter/Effect/Video + Distorts the image for a pseudo perspective + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-pixeliz0r + pixeliz0r + Filter/Effect/Video + Pixelize input image. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Gephex crew + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-primaries + primaries + Filter/Effect/Video + Reduce image to primary colors + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Hedde Bosman + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-r + R + Filter/Effect/Video + Extracts Red from Image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-rgb-parade + RGB-Parade + Filter/Effect/Video + Displays a histogram of R, G and B of the video-data + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Albert Frisch + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-saturat0r + Saturat0r + Filter/Effect/Video + Adjusts the saturation of a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-scale0tilt + Scale0Tilt + Filter/Effect/Video + Scales, Tilts and Crops an Image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-scanline0r + scanline0r + Filter/Effect/Video + interlaced blak lines + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-sobel + Sobel + Filter/Effect/Video + Sobel filter + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal (Drone) + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-squareblur + Squareblur + Filter/Effect/Video + Variable-size square blur + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Drone + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-tehroxx0r + TehRoxx0r + Filter/Effect/Video + Something videowall-ish + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Coma + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-threelay0r + threelay0r + Filter/Effect/Video + dynamic 3 level thresholding + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Hedde Bosman + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-threshold0r + Threshold0r + Filter/Effect/Video + Thresholds a source image + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-tint0r + Tint0r + Filter/Effect/Video + Tint a source image with specified color + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Maksim Golovkin + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-transparency + Transparency + Filter/Effect/Video + Tunes the alpha channel. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-twolay0r + Twolay0r + Filter/Effect/Video + dynamic thresholding + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-vectorscope + Vectorscope + Filter/Effect/Video + Displays the vectorscope of the video-data + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Albert Frisch + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-vertigo + Vertigo + Filter/Effect/Video + alpha blending with zoomed and rotated images + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Fukuchi Kentarou + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-water + Water + Filter/Effect/Video + water drops on a video surface + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jaromil + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-filter-white-balance + White Balance + Filter/Effect/Video + Adjust the white balance / color temperature + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Dan Dennedy + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-addition + addition + Filter/Editor/Video + Perform an RGB[A] addition operation of the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alpha-injection + Alpha Injection + Filter/Editor/Video + Averages Input 1 and uses this as Alpha Channel on Input 2 + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alphaatop + alphaatop + Filter/Editor/Video + the alpha ATOP operation + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alphain + alphain + Filter/Editor/Video + the alpha IN operation + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alphaout + alphaout + Filter/Editor/Video + the alpha OUT operation + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alphaover + alphaover + Filter/Editor/Video + the alpha OVER operation + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-alphaxor + alphaxor + Filter/Editor/Video + the alpha XOR operation + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-blend + blend + Filter/Editor/Video + Perform a blend operation between two sources + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-burn + burn + Filter/Editor/Video + Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: +D = saturation of 255 or depletion of 0, of ((255 - A) * 256) / (B + 1) + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-color-only + color_only + Filter/Editor/Video + Perform a conversion to color only of the source input1 using the hue and saturation values of input2. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-composition + Composition + Filter/Editor/Video + Composites Image 2 onto Image 1 according to its Alpha Channel + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-darken + darken + Filter/Editor/Video + Perform a darken operation between two sources (minimum value of both sources). + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-difference + difference + Filter/Editor/Video + Perform an RGB[A] difference operation between the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-divide + divide + Filter/Editor/Video + Perform an RGB[A] divide operation between the pixel sources: input1 is the numerator, input2 the denominator + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-dodge + dodge + Filter/Editor/Video + Perform an RGB[A] dodge operation between the pixel sources, using the generalised algorithm: +D = saturation of 255 or (A * 256) / (256 - B) + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-grain-extract + grain_extract + Filter/Editor/Video + Perform an RGB[A] grain-extract operation between the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-grain-merge + grain_merge + Filter/Editor/Video + Perform an RGB[A] grain-merge operation between the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-hardlight + hardlight + Filter/Editor/Video + Perform an RGB[A] hardlight operation between the pixel sources + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-hue + hue + Filter/Editor/Video + Perform a conversion to hue only of the source input1 using the hue of input2. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-lighten + lighten + Filter/Editor/Video + Perform a lighten operation between two sources (maximum value of both sources). + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-multiply + multiply + Filter/Editor/Video + Perform an RGB[A] multiply operation between the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-overlay + overlay + Filter/Editor/Video + Perform an RGB[A] overlay operation between the pixel sources, using the generalised algorithm: +D = A * (B + (2 * B) * (255 - A)) + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-rgb + RGB + Filter/Editor/Video + Averages each Input and uses each as R, G or B channel of the Output + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_2 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-saturation + saturation + Filter/Editor/Video + Perform a conversion to saturation only of the source input1 using the saturation level of input2. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-screen + screen + Filter/Editor/Video + Perform an RGB[A] screen operation between the pixel sources, using the generalised algorithm: +D = 255 - (255 - A) * (255 - B) + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-softlight + softlight + Filter/Editor/Video + Perform an RGB[A] softlight operation between the pixel sources. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-subtract + subtract + Filter/Editor/Video + Perform an RGB[A] subtract operation of the pixel source input2 from input1. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-uv-map + UV Map + Filter/Editor/Video + Uses Input 1 as UV Map to distort Input 2 + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Richard Spindler + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-value + value + Filter/Editor/Video + Perform a conversion to value only of the source input1 using the value of input2. + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jean-Sebastien Senecal + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-mixer-xfade0r + xfade0r + Filter/Editor/Video + a simple xfader + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + sink_0 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + sink_1 + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-ising0r + Ising0r + Src/Video + Generates ising noise + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Gephex crew + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-lissajous0r + Lissajous0r + Src/Video + Generates Lissajous0r images + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-nois0r + Nois0r + Src/Video + Generates white noise images + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-onecol0r + onecol0r + Src/Video + image with just one color + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Martin Bayer + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-partik0l + Partik0l + Src/Video + Particles generated on prime number sinusoidal blossoming + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jaromil + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + frei0r-src-plasma + Plasma + Src/Video + Demo scene 8bit plasma + Sebastian Dröge <sebastian.droege@collabora.co.uk>, Jaromil + + + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-gaudieffects.xml b/docs/plugins/inspect/plugin-gaudieffects.xml new file mode 100644 index 0000000..5602dff --- /dev/null +++ b/docs/plugins/inspect/plugin-gaudieffects.xml @@ -0,0 +1,160 @@ + + gaudieffects + Gaudi video effects. + ../../gst/gaudieffects/.libs/libgstgaudieffects.so + libgstgaudieffects.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + burn + Burn + Filter/Effect/Video + Burn adjusts the colors in the video signal. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + chromium + Chromium + Filter/Effect/Video + Chromium breaks the colors of the video signal. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + dilate + Dilate + Filter/Effect/Video + Dilate copies the brightest pixel around. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + dodge + Dodge + Filter/Effect/Video + Dodge saturates the colors in the video signal. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + exclusion + Exclusion + Filter/Effect/Video + Exclusion exclodes the colors in the video signal. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + gaussianblur + GaussBlur + Filter/Effect/Video + Perform Gaussian blur/sharpen on a video + Jan Schmidt <thaytan@noraisin.net> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + solarize + Solarize + Filter/Effect/Video + Solarize tunable inverse in the video signal. + Luis de Bethencourt <luis@debethencourt.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-geometrictransform.xml b/docs/plugins/inspect/plugin-geometrictransform.xml new file mode 100644 index 0000000..76dc1dc --- /dev/null +++ b/docs/plugins/inspect/plugin-geometrictransform.xml @@ -0,0 +1,328 @@ + + geometrictransform + Various geometric image transform elements + ../../gst/geometrictransform/.libs/libgstgeometrictransform.so + libgstgeometrictransform.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + bulge + bulge + Transform/Effect/Video + Adds a protuberance in the center point + Filippo Argiolas <filippo.argiolas@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + circle + circle + Transform/Effect/Video + Warps the picture into an arc shaped form + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + diffuse + diffuse + Transform/Effect/Video + Diffuses the image by moving its pixels in random directions + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + fisheye + fisheye + Transform/Effect/Video + Split the image into two halves and reflect one over each other + Filippo Argiolas <filippo.argiolas@gmail.com + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + kaleidoscope + kaleidoscope + Transform/Effect/Video + Applies 'kaleidoscope' geometric transform to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + marble + marble + Transform/Effect/Video + Applies a marbling effect to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + mirror + mirror + Transform/Effect/Video + Split the image into two halves and reflect one over each other + Filippo Argiolas <filippo.argiolas@gmail.com + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + pinch + pinch + Transform/Effect/Video + Applies 'pinch' geometric transform to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + rotate + rotate + Transform/Effect/Video + Warps the picture into an arc shaped form + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + sphere + sphere + Transform/Effect/Video + Applies 'sphere' geometric transform to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + square + square + Transform/Effect/Video + Distort center part of the image into a square + Filippo Argiolas <filippo.argiolas@gmail.com + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + stretch + stretch + Transform/Effect/Video + Stretch the image in a circle around the center point + Filippo Argiolas <filippo.argiolas@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + tunnel + tunnel + Transform/Effect/Video + Light tunnel effect + Filippo Argiolas <filippo.argiolas@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + twirl + twirl + Transform/Effect/Video + Twists the image from the center out + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + waterripple + waterripple + Transform/Effect/Video + Creates a water ripple effect on the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-gmedec.xml b/docs/plugins/inspect/plugin-gmedec.xml new file mode 100644 index 0000000..2d280c8 --- /dev/null +++ b/docs/plugins/inspect/plugin-gmedec.xml @@ -0,0 +1,34 @@ + + gmedec + GME Audio Decoder + ../../ext/gme/.libs/libgstgme.so + libgstgme.so + 0.10.19.1 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins git + Unknown package origin + + + gmedec + Gaming console music file decoder + Codec/Audio/Decoder + Uses libgme to emulate a gaming console sound processors + Chris Lee <clee@kde.org>, Brian Koropoff <bkoropoff@gmail.com>, Michael Pyne <mpyne@kde.org>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
audio/x-ay; audio/x-gbs; audio/x-gym; audio/x-hes; audio/x-kss; audio/x-nsf; audio/x-sap; audio/x-spc; audio/x-vgm
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)32000, channels=(int)2
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-gsettings.xml b/docs/plugins/inspect/plugin-gsettings.xml new file mode 100644 index 0000000..231c9c8 --- /dev/null +++ b/docs/plugins/inspect/plugin-gsettings.xml @@ -0,0 +1,49 @@ + + gsettings + GSettings plugin + ../../ext/gsettings/.libs/libgstgsettingselements.so + libgstgsettingselements.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + gsettingsaudiosink + GSettings audio sink + Sink/Audio + Audio sink embedding the GSettings preferences for audio output + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + + + gsettingsaudiosrc + GSettings audio src + Src/Audio + Audio src embedding the GSettings preferences for audio input + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + + + gsettingsvideosink + GSettings video sink + Sink/Video + Video sink embedding the GSettings preferences for video input + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + + + gsettingsvideosrc + GSettings video src + Src/Video + Video src embedding the GSettings preferences for video input + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + + + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-gsm.xml b/docs/plugins/inspect/plugin-gsm.xml new file mode 100644 index 0000000..9273958 --- /dev/null +++ b/docs/plugins/inspect/plugin-gsm.xml @@ -0,0 +1,55 @@ + + gsm + GSM encoder/decoder + ../../ext/gsm/.libs/libgstgsm.so + libgstgsm.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + gsmdec + GSM audio decoder + Codec/Decoder/Audio + Decodes GSM encoded audio + Philippe Khalaf <burger@speedy.org> + + + sink + sink + always +
audio/x-gsm, rate=(int)8000, channels=(int)1; audio/ms-gsm, rate=(int)[ 1, 2147483647 ], channels=(int)1
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)1
+
+
+
+ + gsmenc + GSM audio encoder + Codec/Encoder/Audio + Encodes GSM audio + Philippe Khalaf <burger@speedy.org> + + + sink + sink + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)8000, channels=(int)1
+
+ + src + source + always +
audio/x-gsm, rate=(int)8000, channels=(int)1
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-gstsiren.xml b/docs/plugins/inspect/plugin-gstsiren.xml new file mode 100644 index 0000000..c52f98c --- /dev/null +++ b/docs/plugins/inspect/plugin-gstsiren.xml @@ -0,0 +1,55 @@ + + gstsiren + Siren encoder/decoder/payloader/depayloader plugins + ../../gst/siren/.libs/libgstsiren.so + libgstsiren.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + sirendec + Siren Decoder element + Codec/Decoder/Audio + Decode streams encoded with the Siren7 codec into 16bit PCM + Youness Alaoui <kakaroto@kakaroto.homelinux.net> + + + sink + sink + always +
audio/x-siren, dct-length=(int)320
+
+ + src + source + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)16000, channels=(int)1
+
+
+
+ + sirenenc + Siren Encoder element + Codec/Encoder/Audio + Encode 16bit PCM streams into the Siren7 codec + Youness Alaoui <kakaroto@kakaroto.homelinux.net> + + + sink + sink + always +
audio/x-raw-int, width=(int)16, depth=(int)16, endianness=(int)1234, signed=(boolean)true, rate=(int)16000, channels=(int)1
+
+ + src + source + always +
audio/x-siren, dct-length=(int)320
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-h264parse.xml b/docs/plugins/inspect/plugin-h264parse.xml new file mode 100644 index 0000000..fcc63aa --- /dev/null +++ b/docs/plugins/inspect/plugin-h264parse.xml @@ -0,0 +1,34 @@ + + h264parse + Element parsing raw h264 streams + ../../gst/h264parse/.libs/libgsth264parse.so + libgsth264parse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + legacyh264parse + H264Parse + Codec/Parser/Video + Parses raw h264 stream + Michal Benes <michal.benes@itonis.tv>,Wim Taymans <wim.taymans@gmail.com> + + + sink + sink + always +
video/x-h264
+
+ + src + source + always +
video/x-h264
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-hdvparse.xml b/docs/plugins/inspect/plugin-hdvparse.xml new file mode 100644 index 0000000..fa817ca --- /dev/null +++ b/docs/plugins/inspect/plugin-hdvparse.xml @@ -0,0 +1,34 @@ + + hdvparse + HDV private stream parser + ../../gst/hdvparse/.libs/libgsthdvparse.so + libgsthdvparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + hdvparse + HDVParser + Data/Parser + HDV private stream Parser + Edward Hervey <bilboed@bilboed.com> + + + sink + sink + always +
hdv/aux-v; hdv/aux-a
+
+ + src + source + always +
hdv/aux-v, parsed=(boolean)true; hdv/aux-a, parsed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-id3tag.xml b/docs/plugins/inspect/plugin-id3tag.xml new file mode 100644 index 0000000..e8957b2 --- /dev/null +++ b/docs/plugins/inspect/plugin-id3tag.xml @@ -0,0 +1,34 @@ + + id3tag + ID3 v1 and v2 muxing plugin + ../../gst/id3tag/.libs/libgstid3tag.so + libgstid3tag.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + id3mux + ID3 v1 and v2 Muxer + Formatter/Metadata + Adds an ID3v2 header and ID3v1 footer to a file + Michael Smith <msmith@songbirdnest.com>, Tim-Philipp Müller <tim centricular net> + + + sink + sink + always +
ANY
+
+ + src + source + always +
application/x-id3
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-interlace.xml b/docs/plugins/inspect/plugin-interlace.xml new file mode 100644 index 0000000..4f7fd8d --- /dev/null +++ b/docs/plugins/inspect/plugin-interlace.xml @@ -0,0 +1,34 @@ + + interlace + Create an interlaced video stream + ../../gst/interlace/.libs/libgstinterlace.so + libgstinterlace.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + interlace + Interlace filter + Filter/Video + Creates an interlaced video from progressive frames + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ AYUV, YUY2, UYVY, I420, YV12, Y42B, Y444, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean)false
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ AYUV, YUY2, UYVY, I420, YV12, Y42B, Y444, NV12, NV21 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-invtelecine.xml b/docs/plugins/inspect/plugin-invtelecine.xml new file mode 100644 index 0000000..12d41d3 --- /dev/null +++ b/docs/plugins/inspect/plugin-invtelecine.xml @@ -0,0 +1,34 @@ + + invtelecine + Inverse Telecine + ../../gst/invtelecine/.libs/libgstinvtelecine.so + libgstinvtelecine.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + invtelecine + Inverse Telecine filter + Filter/Video + Detects and reconstructs progressive content from telecine video + Entropy Wave <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ YUY2, UYVY, I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ YUY2, UYVY, I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-ivfparse.xml b/docs/plugins/inspect/plugin-ivfparse.xml new file mode 100644 index 0000000..05e7706 --- /dev/null +++ b/docs/plugins/inspect/plugin-ivfparse.xml @@ -0,0 +1,34 @@ + + ivfparse + IVF parser + ../../gst/ivfparse/.libs/libgstivfparse.so + libgstivfparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + ivfparse + IVF parser + Codec/Demuxer + Demuxes a IVF stream + Philip Jägenstedt <philipj@opera.com> + + + sink + sink + always +
video/x-ivf
+
+ + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-jp2kdecimator.xml b/docs/plugins/inspect/plugin-jp2kdecimator.xml new file mode 100644 index 0000000..1306a4e --- /dev/null +++ b/docs/plugins/inspect/plugin-jp2kdecimator.xml @@ -0,0 +1,34 @@ + + jp2kdecimator + JPEG2000 decimator + ../../gst/jp2kdecimator/.libs/libgstjp2kdecimator.so + libgstjp2kdecimator.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + jp2kdecimator + JPEG2000 decimator + Filter/Image + Removes information from JPEG2000 streams without recompression + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
image/x-jpc
+
+ + src + source + always +
image/x-jpc
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-jpegformat.xml b/docs/plugins/inspect/plugin-jpegformat.xml new file mode 100644 index 0000000..5a52140 --- /dev/null +++ b/docs/plugins/inspect/plugin-jpegformat.xml @@ -0,0 +1,55 @@ + + jpegformat + JPEG interchange format plugin + ../../gst/jpegformat/.libs/libgstjpegformat.so + libgstjpegformat.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + jifmux + JPEG stream muxer + Video/Muxer + Remuxes JPEG images with markers and tags + Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> + + + sink + sink + always +
image/jpeg
+
+ + src + source + always +
image/jpeg
+
+
+
+ + jpegparse + JPEG stream parser + Video/Parser + Parse JPEG images into single-frame buffers + Arnout Vandecappelle (Essensium/Mind) <arnout@mind.be> + + + sink + sink + always +
image/jpeg, parsed=(boolean)false
+
+ + src + source + always +
image/jpeg, format=(fourcc){ I420, Y41B, UYVY, YV12 }, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], interlaced=(boolean){ true, false }, framerate=(fraction)[ 0/1, 2147483647/1 ], parsed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-kate.xml b/docs/plugins/inspect/plugin-kate.xml new file mode 100644 index 0000000..2e53429 --- /dev/null +++ b/docs/plugins/inspect/plugin-kate.xml @@ -0,0 +1,124 @@ + + kate + Kate plugin + ../../ext/kate/.libs/libgstkate.so + libgstkate.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + katedec + Kate stream text decoder + Codec/Decoder/Subtitle + Decodes Kate text streams + Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com> + + + sink + sink + always +
subtitle/x-kate
+
+ + src + source + always +
text/plain; text/x-pango-markup; video/x-dvd-subpicture
+
+
+
+ + kateenc + Kate stream encoder + Codec/Encoder/Subtitle + Encodes Kate streams from text or subpictures + Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com> + + + sink + sink + always +
text/plain; text/x-pango-markup; video/x-dvd-subpicture
+
+ + src + source + always +
subtitle/x-kate; application/x-kate
+
+
+
+ + kateparse + Kate stream parser + Codec/Parser/Subtitle + parse raw kate streams + Vincent Penquerc'h <ogg.k.ogg.k at googlemail dot com> + + + sink + sink + always +
subtitle/x-kate; application/x-kate
+
+ + src + source + always +
subtitle/x-kate; application/x-kate
+
+
+
+ + katetag + Kate stream tagger + Formatter/Metadata + Retags kate streams + Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com> + + + sink + sink + always +
subtitle/x-kate; application/x-kate
+
+ + src + source + always +
subtitle/x-kate; application/x-kate
+
+
+
+ + tiger + Kate stream renderer + Mixer/Video/Overlay/Subtitle + Decodes and renders Kate streams on top of a video + Vincent Penquerc'h <ogg.k.ogg.k@googlemail.com> + + + subtitle_sink + sink + always +
subtitle/x-kate; application/x-kate
+
+ + video_sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)1234, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)1234, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-ladspa.xml b/docs/plugins/inspect/plugin-ladspa.xml new file mode 100644 index 0000000..f9cf918 --- /dev/null +++ b/docs/plugins/inspect/plugin-ladspa.xml @@ -0,0 +1,3679 @@ + + ladspa + All LADSPA plugins + ../../ext/ladspa/.libs/libgstladspa.so + libgstladspa.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + ladspa-Chorus1 + Chorus1 - Based on CSound orchestra by Sean Costello + Filter/Effect/Audio/LADSPA + Chorus1 - Based on CSound orchestra by Sean Costello + Fons Adriaensen <fons@kokkinizita.net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Chorus2 + Chorus2 - Based on CSound orchestra by Sean Costello + Filter/Effect/Audio/LADSPA + Chorus2 - Based on CSound orchestra by Sean Costello + Fons Adriaensen <fons@kokkinizita.net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-G2reverb + Stereo reverb + Filter/Effect/Audio/LADSPA + Stereo reverb + Fons Adriaensen <fons.adriaensen@alcatel.be> + + + In_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + In_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Out_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Out_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Mvchpf-1 + Mvchpf-1 Digital implementation of the VC HP filter invented by R.A. Moog + Filter/Effect/Audio/LADSPA + Mvchpf-1 Digital implementation of the VC HP filter invented by R.A. Moog + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Mvclpf-1 + Mvclpf-1 Digital implementation of the VC filter invented by R.A.Moog + Filter/Effect/Audio/LADSPA + Mvclpf-1 Digital implementation of the VC filter invented by R.A.Moog + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Resonance + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Mvclpf-2 + Mvclpf-2 Digital implementation of the VC filter invented by R.A.Moog + Filter/Effect/Audio/LADSPA + Mvclpf-2 Digital implementation of the VC filter invented by R.A.Moog + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Resonance + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Mvclpf-3 + Mvclpf-3 Digital implementation of the VC filter invented by R.A.Moog + Filter/Effect/Audio/LADSPA + Mvclpf-3 Digital implementation of the VC filter invented by R.A.Moog + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Resonance + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Mvclpf-4 + Mvclpf-4 Digital implementation of the VC filter invented by R.A.Moog + Filter/Effect/Audio/LADSPA + Mvclpf-4 Digital implementation of the VC filter invented by R.A.Moog + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Resonance + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Phaser1 + Phaser1 - Similar to CSound's phaser1 by Sean Costello + Filter/Effect/Audio/LADSPA + Phaser1 - Similar to CSound's phaser1 by Sean Costello + Fons Adriaensen <fons@kokkinizita.net> + + + Exp_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Lin_FM + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-Phaser1+LFO + Phaser1 with LFO + Filter/Effect/Audio/LADSPA + Phaser1 with LFO + Fons Adriaensen <fons@kokkinizita.net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-TripleChorus + Triple chorus + Filter/Effect/Audio/LADSPA + Triple chorus + Fons Adriaensen <fons@kokkinizita.net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output1 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output2 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output3 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-alias + Aliasing + Filter/Effect/Audio/LADSPA + Aliasing + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-allpass-c + Allpass delay line, cubic spline interpolation + Filter/Effect/Audio/LADSPA + Allpass delay line, cubic spline interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-allpass-l + Allpass delay line, linear interpolation + Filter/Effect/Audio/LADSPA + Allpass delay line, linear interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-allpass-n + Allpass delay line, noninterpolating + Filter/Effect/Audio/LADSPA + Allpass delay line, noninterpolating + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-amPitchshift + AM pitchshifter + Filter/Effect/Audio/LADSPA + AM pitchshifter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-amp + Simple amplifier + Filter/Effect/Audio/LADSPA + Simple amplifier + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-amp-mono + Mono Amplifier + Filter/Effect/Audio/LADSPA + Mono Amplifier + Richard Furse (LADSPA example plugins) + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-amp-stereo + Stereo Amplifier + Filter/Effect/Audio/LADSPA + Stereo Amplifier + Richard Furse (LADSPA example plugins) + + + Input_-Left- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_-Right- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_-Left- + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_-Right- + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-analogueOsc + Analogue Oscillator + Source/Audio/LADSPA + Analogue Oscillator + Steve Harris <steve@plugin.org.uk> + + + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-artificialLatency + Artificial latency + Filter/Effect/Audio/LADSPA + Artificial latency + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-autoPhaser + Auto phaser + Filter/Effect/Audio/LADSPA + Auto phaser + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-bandpass-a-iir + Glame Bandpass Analog Filter + Filter/Effect/Audio/LADSPA + Glame Bandpass Analog Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-bandpass-iir + Glame Bandpass Filter + Filter/Effect/Audio/LADSPA + Glame Bandpass Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-bodeShifter + Bode frequency shifter + Filter/Effect/Audio/LADSPA + Bode frequency shifter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Down_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Up_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-bodeShifterCV + Bode frequency shifter (CV) + Filter/Effect/Audio/LADSPA + Bode frequency shifter (CV) + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Shift_CV + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Down_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Mix_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Up_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-butthigh-iir + GLAME Butterworth Highpass + Filter/Effect/Audio/LADSPA + GLAME Butterworth Highpass + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-buttlow-iir + GLAME Butterworth Lowpass + Filter/Effect/Audio/LADSPA + GLAME Butterworth Lowpass + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-bwxover-iir + Glame Butterworth X-over Filter + Filter/Effect/Audio/LADSPA + Glame Butterworth X-over Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + HP-Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + LP-Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-chebstortion + Chebyshev distortion + Filter/Effect/Audio/LADSPA + Chebyshev distortion + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-comb + Comb Filter + Filter/Effect/Audio/LADSPA + Comb Filter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-comb-c + Comb delay line, cubic spline interpolation + Filter/Effect/Audio/LADSPA + Comb delay line, cubic spline interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-comb-l + Comb delay line, linear interpolation + Filter/Effect/Audio/LADSPA + Comb delay line, linear interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-comb-n + Comb delay line, noninterpolating + Filter/Effect/Audio/LADSPA + Comb delay line, noninterpolating + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-combSplitter + Comb Splitter + Filter/Effect/Audio/LADSPA + Comb Splitter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_1 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_2 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-const + Constant Signal Generator + Filter/Effect/Audio/LADSPA + Constant Signal Generator + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-crossoverDist + Crossover distortion + Filter/Effect/Audio/LADSPA + Crossover distortion + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-dcRemove + DC Offset Remover + Filter/Effect/Audio/LADSPA + DC Offset Remover + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-decay + Exponential signal decay + Filter/Effect/Audio/LADSPA + Exponential signal decay + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-decimator + Decimator + Filter/Effect/Audio/LADSPA + Decimator + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-declip + Declipper + Filter/Effect/Audio/LADSPA + Declipper + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-delay-5s + Simple Delay Line + Filter/Effect/Audio/LADSPA + Simple Delay Line + Richard Furse (LADSPA example plugins) + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-delay-c + Simple delay line, cubic spline interpolation + Filter/Effect/Audio/LADSPA + Simple delay line, cubic spline interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-delay-l + Simple delay line, linear interpolation + Filter/Effect/Audio/LADSPA + Simple delay line, linear interpolation + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-delay-n + Simple delay line, noninterpolating + Filter/Effect/Audio/LADSPA + Simple delay line, noninterpolating + Andy Wingo <wingo at pobox dot com> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-delayorama + Delayorama + Filter/Effect/Audio/LADSPA + Delayorama + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-diode + Diode Processor + Filter/Effect/Audio/LADSPA + Diode Processor + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-divider + Audio Divider (Suboctave Generator) + Filter/Effect/Audio/LADSPA + Audio Divider (Suboctave Generator) + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-dj-eq + DJ EQ + Filter/Effect/Audio/LADSPA + DJ EQ + Steve Harris <steve@plugin.org.uk> + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-dj-eq-mono + DJ EQ (mono) + Filter/Effect/Audio/LADSPA + DJ EQ (mono) + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-djFlanger + DJ flanger + Filter/Effect/Audio/LADSPA + DJ flanger + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-dysonCompress + Dyson compressor + Filter/Effect/Audio/LADSPA + Dyson compressor + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-fadDelay + Fractionally Addressed Delay Line + Filter/Effect/Audio/LADSPA + Fractionally Addressed Delay Line + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-fastLookaheadLimiter + Fast Lookahead limiter + Filter/Effect/Audio/LADSPA + Fast Lookahead limiter + Steve Harris <steve@plugin.org.uk> + + + Input_1 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_2 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_1 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_2 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-flanger + Flanger + Filter/Effect/Audio/LADSPA + Flanger + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-fmOsc + FM Oscillator + Filter/Effect/Audio/LADSPA + FM Oscillator + Steve Harris <steve@plugin.org.uk> + + + Frequency_-Hz- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-foldover + Foldover distortion + Filter/Effect/Audio/LADSPA + Foldover distortion + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-fourByFourPole + 4 x 4 pole allpass + Filter/Effect/Audio/LADSPA + 4 x 4 pole allpass + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-foverdrive + Fast overdrive + Filter/Effect/Audio/LADSPA + Fast overdrive + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-freqTracker + Frequency tracker + Filter/Effect/Audio/LADSPA + Frequency tracker + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency_-Hz- + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-gate + Gate + Filter/Effect/Audio/LADSPA + Gate + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-giantFlange + Giant flange + Filter/Effect/Audio/LADSPA + Giant flange + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-gong + Gong model + Filter/Effect/Audio/LADSPA + Gong model + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-gongBeater + Gong beater + Filter/Effect/Audio/LADSPA + Gong beater + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-gsm + GSM simulator + Filter/Effect/Audio/LADSPA + GSM simulator + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-gverb + GVerb + Filter/Effect/Audio/LADSPA + GVerb + Juhana Sadeharju <kouhia at nic.funet.fi>, LADSPAification by Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-hardLimiter + Hard Limiter + Filter/Effect/Audio/LADSPA + Hard Limiter + Marcus Andersson + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-harmonicGen + Harmonic generator + Filter/Effect/Audio/LADSPA + Harmonic generator + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-hermesFilter + Hermes Filter + Filter/Effect/Audio/LADSPA + Hermes Filter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-highpass-iir + Glame Highpass Filter + Filter/Effect/Audio/LADSPA + Glame Highpass Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-hilbert + Hilbert transformer + Filter/Effect/Audio/LADSPA + Hilbert transformer + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + 0deg_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + 90deg_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-hpf + Simple High Pass Filter + Filter/Effect/Audio/LADSPA + Simple High Pass Filter + Richard Furse (LADSPA example plugins) + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-imp + Impulse convolver + Filter/Effect/Audio/LADSPA + Impulse convolver + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-impulse-fc + Nonbandlimited single-sample impulses (Frequency: Control) + Source/Audio/LADSPA + Nonbandlimited single-sample impulses (Frequency: Control) + Andy Wingo <wingo at pobox dot com> + + + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-inv + Inverter + Filter/Effect/Audio/LADSPA + Inverter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-karaoke + Karaoke + Filter/Effect/Audio/LADSPA + Karaoke + Steve Harris <steve@plugin.org.uk> + + + Left_in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-lcrDelay + L/C/R Delay + Filter/Effect/Audio/LADSPA + L/C/R Delay + Steve Harris <steve@plugin.org.uk> + + + L_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + R_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + L_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + R_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-lfoPhaser + LFO Phaser + Filter/Effect/Audio/LADSPA + LFO Phaser + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-lowpass-iir + Glame Lowpass Filter + Filter/Effect/Audio/LADSPA + Glame Lowpass Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-lpf + Simple Low Pass Filter + Filter/Effect/Audio/LADSPA + Simple Low Pass Filter + Richard Furse (LADSPA example plugins) + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-lsFilter + LS Filter + Filter/Effect/Audio/LADSPA + LS Filter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-matrixMSSt + Matrix: MS to Stereo + Filter/Effect/Audio/LADSPA + Matrix: MS to Stereo + Steve Harris <steve@plugin.org.uk> + + + Mid + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Side + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-matrixSpatialiser + Matrix Spatialiser + Filter/Effect/Audio/LADSPA + Matrix Spatialiser + Joern Nettingsmeier <nettings@folkwang-hochschule.de> + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-matrixStMS + Matrix: Stereo to MS + Filter/Effect/Audio/LADSPA + Matrix: Stereo to MS + Steve Harris <steve@plugin.org.uk> + + + Left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Mid + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Side + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-mbeq + Multiband EQ + Filter/Effect/Audio/LADSPA + Multiband EQ + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-modDelay + Modulatable delay + Filter/Effect/Audio/LADSPA + Modulatable delay + Steve Harris <steve@plugin.org.uk> + + + Delay_-s- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-multivoiceChorus + Multivoice Chorus + Filter/Effect/Audio/LADSPA + Multivoice Chorus + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-noise-white + White Noise Source + Source/Audio/LADSPA + White Noise Source + Richard Furse (LADSPA example plugins) + + + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-notch-iir + Mag's Notch Filter + Filter/Effect/Audio/LADSPA + Mag's Notch Filter + Alexander Ehlert <mag@glame.de> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-pitchScale + Pitch Scaler + Filter/Effect/Audio/LADSPA + Pitch Scaler + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-pitchScaleHQ + Higher Quality Pitch Scaler + Filter/Effect/Audio/LADSPA + Higher Quality Pitch Scaler + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-plate + Plate reverb + Filter/Effect/Audio/LADSPA + Plate reverb + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-pointerCastDistortion + Pointer cast distortion + Filter/Effect/Audio/LADSPA + Pointer cast distortion + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-rateShifter + Rate shifter + Filter/Effect/Audio/LADSPA + Rate shifter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-retroFlange + Retro Flanger + Filter/Effect/Audio/LADSPA + Retro Flanger + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-revdelay + Reverse Delay (5s max) + Filter/Effect/Audio/LADSPA + Reverse Delay (5s max) + Jesse Chappell <jesse at essej dot net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-ringmod-1i1o1l + Ringmod with LFO + Filter/Effect/Audio/LADSPA + Ringmod with LFO + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-ringmod-2i1o + Ringmod with two inputs + Filter/Effect/Audio/LADSPA + Ringmod with two inputs + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Modulator + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-satanMaximiser + Barry's Satan Maximiser + Filter/Effect/Audio/LADSPA + Barry's Satan Maximiser + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sc1 + SC1 + Filter/Effect/Audio/LADSPA + SC1 + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sc2 + SC2 + Filter/Effect/Audio/LADSPA + SC2 + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Sidechain + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sc3 + SC3 + Filter/Effect/Audio/LADSPA + SC3 + Steve Harris <steve@plugin.org.uk> + + + Left_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Sidechain + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sc4 + SC4 + Filter/Effect/Audio/LADSPA + SC4 + Steve Harris <steve@plugin.org.uk> + + + Left_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sc4m + SC4 mono + Filter/Effect/Audio/LADSPA + SC4 mono + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-se4 + SE4 + Filter/Effect/Audio/LADSPA + SE4 + Steve Harris <steve@plugin.org.uk> + + + Left_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Left_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Right_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-shaper + Wave shaper + Filter/Effect/Audio/LADSPA + Wave shaper + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sifter + Signal sifter + Filter/Effect/Audio/LADSPA + Signal sifter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sinCos + Sine + cosine oscillator + Source/Audio/LADSPA + Sine + cosine oscillator + Steve Harris <steve@plugin.org.uk> + + + Cosine_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Sine_output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sine-faaa + Sine Oscillator (Freq:audio, Amp:audio) + Filter/Effect/Audio/LADSPA + Sine Oscillator (Freq:audio, Amp:audio) + Richard Furse (LADSPA example plugins) + + + Amplitude + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Frequency_-Hz- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sine-faac + Sine Oscillator (Freq:audio, Amp:control) + Filter/Effect/Audio/LADSPA + Sine Oscillator (Freq:audio, Amp:control) + Richard Furse (LADSPA example plugins) + + + Frequency_-Hz- + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sine-fcaa + Sine Oscillator (Freq:control, Amp:audio) + Filter/Effect/Audio/LADSPA + Sine Oscillator (Freq:control, Amp:audio) + Richard Furse (LADSPA example plugins) + + + Amplitude + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sine-fcac + Sine Oscillator (Freq:control, Amp:control) + Source/Audio/LADSPA + Sine Oscillator (Freq:control, Amp:control) + Richard Furse (LADSPA example plugins) + + + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-singlePara + Single band parametric + Filter/Effect/Audio/LADSPA + Single band parametric + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-sinusWavewrapper + Sinus wavewrapper + Filter/Effect/Audio/LADSPA + Sinus wavewrapper + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-smoothDecimate + Smooth Decimator + Filter/Effect/Audio/LADSPA + Smooth Decimator + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-split + Mono to Stereo splitter + Filter/Effect/Audio/LADSPA + Mono to Stereo splitter + Frank Neumann <franky@users.sourceforge.net> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_1 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_2 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-stepMuxer + Step Demuxer + Filter/Effect/Audio/LADSPA + Step Demuxer + Steve Harris <steve@plugin.org.uk> + + + Clock + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_1 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_2 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_3 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_4 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_5 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_6 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_7 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_8 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-surroundEncoder + Surround matrix encoder + Filter/Effect/Audio/LADSPA + Surround matrix encoder + Steve Harris <steve@plugin.org.uk> + + + C + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + S + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Lt + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Rt + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-svf + State Variable Filter + Filter/Effect/Audio/LADSPA + State Variable Filter + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-autopan + TAP AutoPanner + Filter/Effect/Audio/LADSPA + TAP AutoPanner + Tom Szilagyi + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-chorusflanger + TAP Chorus/Flanger + Filter/Effect/Audio/LADSPA + TAP Chorus/Flanger + Tom Szilagyi + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-deesser + TAP DeEsser + Filter/Effect/Audio/LADSPA + TAP DeEsser + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-doubler + TAP Fractal Doubler + Filter/Effect/Audio/LADSPA + TAP Fractal Doubler + Tom Szilagyi + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-dynamics-m + TAP Dynamics (M) + Filter/Effect/Audio/LADSPA + TAP Dynamics (M) + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-dynamics-st + TAP Dynamics (St) + Filter/Effect/Audio/LADSPA + TAP Dynamics (St) + Tom Szilagyi + + + Input_Left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_Right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-equalizer + TAP Equalizer + Filter/Effect/Audio/LADSPA + TAP Equalizer + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-equalizer-bw + TAP Equalizer/BW + Filter/Effect/Audio/LADSPA + TAP Equalizer/BW + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-limiter + TAP Scaling Limiter + Filter/Effect/Audio/LADSPA + TAP Scaling Limiter + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-pinknoise + TAP Pink/Fractal Noise + Filter/Effect/Audio/LADSPA + TAP Pink/Fractal Noise + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-pitch + TAP Pitch Shifter + Filter/Effect/Audio/LADSPA + TAP Pitch Shifter + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-reflector + TAP Reflector + Filter/Effect/Audio/LADSPA + TAP Reflector + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-reverb + TAP Reverberator + Filter/Effect/Audio/LADSPA + TAP Reverberator + Tom Szilagyi + + + Input_Left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_Right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-rotspeak + TAP Rotary Speaker + Filter/Effect/Audio/LADSPA + TAP Rotary Speaker + Tom Szilagyi + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-sigmoid + TAP Sigmoid Booster + Filter/Effect/Audio/LADSPA + TAP Sigmoid Booster + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-stereo-echo + TAP Stereo Echo + Filter/Effect/Audio/LADSPA + TAP Stereo Echo + Tom Szilagyi + + + Input_Left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_Right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_Right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-tremolo + TAP Tremolo + Filter/Effect/Audio/LADSPA + TAP Tremolo + Tom Szilagyi + + + Input_0 + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_0 + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-tubewarmth + TAP TubeWarmth + Filter/Effect/Audio/LADSPA + TAP TubeWarmth + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tap-vibrato + TAP Vibrato + Filter/Effect/Audio/LADSPA + TAP Vibrato + Tom Szilagyi + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-tapeDelay + Tape Delay Simulation + Filter/Effect/Audio/LADSPA + Tape Delay Simulation + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-transient + Transient mangler + Filter/Effect/Audio/LADSPA + Transient mangler + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-triplePara + Triple band parametric with shelves + Filter/Effect/Audio/LADSPA + Triple band parametric with shelves + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-valve + Valve saturation + Filter/Effect/Audio/LADSPA + Valve saturation + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-valveRect + Valve rectifier + Filter/Effect/Audio/LADSPA + Valve rectifier + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-vynil + VyNil (Vinyl Effect) + Filter/Effect/Audio/LADSPA + VyNil (Vinyl Effect) + Steve Harris <steve@plugin.org.uk> + + + Input_L + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_R + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_L + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_R + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-waveTerrain + Wave Terrain Oscillator + Filter/Effect/Audio/LADSPA + Wave Terrain Oscillator + Steve Harris <steve@plugin.org.uk> + + + x + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + y + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + z + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-xfade + Crossfade + Filter/Effect/Audio/LADSPA + Crossfade + Steve Harris <steve@plugin.org.uk> + + + Input_A_left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_A_right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_B_left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_B_right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-xfade4 + Crossfade (4 outs) + Filter/Effect/Audio/LADSPA + Crossfade (4 outs) + Steve Harris <steve@plugin.org.uk> + + + Input_A_left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_A_right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_B_left + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Input_B_right + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_A_left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_A_right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_B_left + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output_B_right + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + ladspa-zm1 + z-1 + Filter/Effect/Audio/LADSPA + z-1 + Steve Harris <steve@plugin.org.uk> + + + Input + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + Output + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-legacyresample.xml b/docs/plugins/inspect/plugin-legacyresample.xml new file mode 100644 index 0000000..3aac738 --- /dev/null +++ b/docs/plugins/inspect/plugin-legacyresample.xml @@ -0,0 +1,34 @@ + + legacyresample + Resamples audio + ../../gst/legacyresample/.libs/libgstlegacyresample.so + libgstlegacyresample.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + legacyresample + Audio scaler + Filter/Converter/Audio + Resample audio + David Schleef <ds@schleef.org> + + + sink + sink + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)64
+
+ + src + source + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32, depth=(int)32, signed=(boolean)true; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)64
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-linsys.xml b/docs/plugins/inspect/plugin-linsys.xml new file mode 100644 index 0000000..fddd936 --- /dev/null +++ b/docs/plugins/inspect/plugin-linsys.xml @@ -0,0 +1,43 @@ + + linsys + FIXME + ../../sys/linsys/.libs/libgstlinsys.so + libgstlinsys.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + http://FIXME.org/ + + + linsyssdisink + SDI video sink + Sink/Video + Writes video from SDI transmit device + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)480, pixel-aspect-ratio=(fraction)10/11, framerate=(fraction)30000/1001, interlaced=(boolean)true, colorspec=(string)sdtv, chroma-site=(string)mpeg2
+
+
+
+ + linsyssdisrc + SDI video source + Source/Video + Reads video from SDI capture device + David Schleef <ds@entropywave.com> + + + src + source + always +
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)480, pixel-aspect-ratio=(fraction)10/11, framerate=(fraction)30000/1001, interlaced=(boolean)true, colorspec=(string)sdtv, chroma-site=(string)mpeg2
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-liveadder.xml b/docs/plugins/inspect/plugin-liveadder.xml new file mode 100644 index 0000000..d7e1542 --- /dev/null +++ b/docs/plugins/inspect/plugin-liveadder.xml @@ -0,0 +1,34 @@ + + liveadder + Adds multiple live discontinuous streams + ../../gst/liveadder/.libs/libgstliveadder.so + libgstliveadder.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + liveadder + Live Adder element + Generic/Audio + Mixes live/discontinuous audio streams + Olivier Crete <olivier.crete@collabora.co.uk> + + + sink%d + sink + request +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
+ + src + source + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 8, 16, 24, 32 }, depth=(int)[ 1, 32 ], signed=(boolean){ true, false }; audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int){ 32, 64 }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-lv2.xml b/docs/plugins/inspect/plugin-lv2.xml new file mode 100644 index 0000000..ff9a727 --- /dev/null +++ b/docs/plugins/inspect/plugin-lv2.xml @@ -0,0 +1,403 @@ + + lv2 + All LV2 plugins + ../../ext/lv2/.libs/libgstlv2.so + libgstlv2.so + 0.10.19.1 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins git + Unknown package origin + + + invadarecords-com-plugins-lv2-compressor-mono + Invada Compressor (mono) + Filter/Effect/Audio/LV2 + Invada Compressor (mono) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-compressor-stereo + Invada Compressor (stereo) + Source/Audio/LV2 + Invada Compressor (stereo) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-delay-mono + Invada Delay Munge (mono in) + Sink/Analyzer/Audio/LV2 + Invada Delay Munge (mono in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-delay-sum + Invada Delay Munge (sum L+R in) + Source/Audio/LV2 + Invada Delay Munge (sum L+R in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-erreverb-mono + Invada Early Reflection Reverb (mono in) + Sink/Analyzer/Audio/LV2 + Invada Early Reflection Reverb (mono in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-erreverb-sum + Invada Early Reflection Reverb (sum L+R in) + Source/Audio/LV2 + Invada Early Reflection Reverb (sum L+R in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-filter-hpf-mono + Invada High Pass Filter (mono) + Filter/Effect/Audio/LV2 + Invada High Pass Filter (mono) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-filter-hpf-stereo + Invada High Pass Filter (stereo) + Source/Audio/LV2 + Invada High Pass Filter (stereo) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-filter-lpf-mono + Invada Low Pass Filter (mono) + Filter/Effect/Audio/LV2 + Invada Low Pass Filter (mono) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-filter-lpf-stereo + Invada Low Pass Filter (stereo) + Source/Audio/LV2 + Invada Low Pass Filter (stereo) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-input + Invada Input Module + Source/Audio/LV2 + Invada Input Module + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-meter + Invada Meter + Filter/Effect/Audio/LV2 + Invada Meter + Invada + + + inL + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + inR + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + outL + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + outR + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-phaser-mono + Invada Stereo Phaser (mono in) + Sink/Analyzer/Audio/LV2 + Invada Stereo Phaser (mono in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-phaser-stereo + Invada Stereo Phaser (stereo in) + Sink/Analyzer/Audio/LV2 + Invada Stereo Phaser (stereo in) + Invada + + + inL + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + inR + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-phaser-sum + Invada Stereo Phaser (sum L+R in) + Source/Audio/LV2 + Invada Stereo Phaser (sum L+R in) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-testtone + Invada Test Tones + Source/Audio/LV2 + Invada Test Tones + Invada + + + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-tube-mono + Invada Tube Distortion (mono) + Filter/Effect/Audio/LV2 + Invada Tube Distortion (mono) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)1, rate=(int)[ 1, 2147483647 ]
+
+
+
+ + invadarecords-com-plugins-lv2-tube-stereo + Invada Tube Distortion (stereo) + Source/Audio/LV2 + Invada Tube Distortion (stereo) + Invada + + + in + sink + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+ + out + source + always +
audio/x-raw-float, endianness=(int)1234, width=(int)32, channels=(int)2, rate=(int)[ 1, 2147483647 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mimic.xml b/docs/plugins/inspect/plugin-mimic.xml new file mode 100644 index 0000000..2e14804 --- /dev/null +++ b/docs/plugins/inspect/plugin-mimic.xml @@ -0,0 +1,55 @@ + + mimic + Mimic codec + ../../ext/mimic/.libs/libgstmimic.so + libgstmimic.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mimdec + Mimic Decoder + Codec/Decoder/Video + MSN Messenger compatible Mimic video decoder element + Andre Moreira Magalhaes <andre.magalhaes@indt.org.br>, Rob Taylor <robtaylor@fastmail.fm>, Philippe Khalaf <burger@speedy.org>, Ole André Vadla Ravnås <oleavr@gmail.com>,Olivier Crête <olivier.crete@collabora.co.uk + + + sink + sink + always +
video/x-mimic
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)0/1, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)320, height=(int)240; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)0/1, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)160, height=(int)120
+
+
+
+ + mimenc + Mimic Encoder + Codec/Encoder/Video + MSN Messenger compatible Mimic video encoder element + Andre Moreira Magalhaes <andre.magalhaes@indt.org.br>,Olivier Crête <olivier.crete@collabora.co.uk + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)[ 1/1, 30/1 ], red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)320, height=(int)240; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, framerate=(fraction)[ 1/1, 30/1 ], red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)160, height=(int)120
+
+ + src + source + always +
video/x-mimic
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mms.xml b/docs/plugins/inspect/plugin-mms.xml new file mode 100644 index 0000000..0367e48 --- /dev/null +++ b/docs/plugins/inspect/plugin-mms.xml @@ -0,0 +1,28 @@ + + mms + Microsoft Multi Media Server streaming protocol support + ../../ext/libmms/.libs/libgstmms.so + libgstmms.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mmssrc + MMS streaming source + Source/Network + Receive data streamed via MSFT Multi Media Server protocol + Maciej Katafiasz <mathrick@users.sourceforge.net> + + + src + source + always +
video/x-ms-asf
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-modplug.xml b/docs/plugins/inspect/plugin-modplug.xml new file mode 100644 index 0000000..4566d7d --- /dev/null +++ b/docs/plugins/inspect/plugin-modplug.xml @@ -0,0 +1,34 @@ + + modplug + .MOD audio decoding + ../../ext/modplug/.libs/libgstmodplug.so + libgstmodplug.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + modplug + ModPlug + Codec/Decoder/Audio + Module decoder based on modplug engine + Jeremy SIMON <jsimon13@yahoo.fr> + + + sink + sink + always +
audio/x-mod; audio/x-xm; audio/x-it; audio/x-s3m; audio/x-stm
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)32, depth=(int)32, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]; audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]; audio/x-raw-int, endianness=(int)1234, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int){ 8000, 11025, 22050, 44100 }, channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpeg2enc.xml b/docs/plugins/inspect/plugin-mpeg2enc.xml new file mode 100644 index 0000000..29b5046 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpeg2enc.xml @@ -0,0 +1,35 @@ + + mpeg2enc + High-quality MPEG-1/2 video encoder + ../../ext/mpeg2enc/.libs/libgstmpeg2enc.so + libgstmpeg2enc.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpeg2enc + mpeg2enc video encoder + Codec/Encoder/Video + High-quality MPEG-1/2 video encoder + Andrew Stevens <andrew.stevens@nexgo.de> +Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }
+
+ + src + source + always +
video/mpeg, systemstream=(boolean)false, mpegversion=(int){ 1, 2 }, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction){ 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpeg4videoparse.xml b/docs/plugins/inspect/plugin-mpeg4videoparse.xml new file mode 100644 index 0000000..21ebf36 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpeg4videoparse.xml @@ -0,0 +1,34 @@ + + mpeg4videoparse + MPEG-4 video parser + ../../gst/mpeg4videoparse/.libs/libgstmpeg4videoparse.so + libgstmpeg4videoparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpeg4videoparse + MPEG 4 video elementary stream parser + Codec/Parser/Video + Parses MPEG-4 Part 2 elementary video streams + Julien Moutte <julien@fluendo.com> + + + sink + sink + always +
video/mpeg, mpegversion=(int)4, parsed=(boolean)false, systemstream=(boolean)false
+
+ + src + source + always +
video/mpeg, mpegversion=(int)4, parsed=(boolean)true, systemstream=(boolean)false
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpegdemux2.xml b/docs/plugins/inspect/plugin-mpegdemux2.xml new file mode 100644 index 0000000..b887040 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpegdemux2.xml @@ -0,0 +1,118 @@ + + mpegdemux2 + MPEG demuxers + ../../gst/mpegdemux/.libs/libgstmpegdemux.so + libgstmpegdemux.so + 0.10.22 + unknown + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpegpsdemux + The Fluendo MPEG Program Stream Demuxer + Codec/Demuxer + Demultiplexes MPEG Program Streams + Wim Taymans <wim@fluendo.com> + + + sink + sink + always +
video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)true; video/x-cdxa
+
+ + audio_%02x + source + sometimes +
audio/mpeg, mpegversion=(int){ 1, 4 }; audio/x-private1-lpcm; audio/x-private1-ac3; audio/x-private1-dts; audio/ac3
+
+ + private_%d + source + sometimes +
ANY
+
+ + subpicture_%02x + source + sometimes +
video/x-dvd-subpicture
+
+ + video_%02x + source + sometimes +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h264
+
+
+
+ + mpegtsdemux + The Fluendo MPEG Transport stream demuxer + Codec/Demuxer + Demultiplexes MPEG2 Transport Streams + Wim Taymans <wim@fluendo.com> + + + sink + sink + always +
video/mpegts
+
+ + audio_%04x + source + sometimes +
audio/mpeg, mpegversion=(int){ 1, 4 }; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }; audio/x-ac3; audio/x-eac3; audio/x-dts; audio/x-private-ts-lpcm
+
+ + private_%04x + source + sometimes +
ANY
+
+ + subpicture_%04x + source + sometimes +
subpicture/x-pgs; video/x-dvd-subpicture
+
+ + video_%04x + source + sometimes +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal; video/x-dirac; video/x-wmv, wmvversion=(int)3, format=(fourcc)WVC1
+
+
+
+ + mpegtsparse + MPEG transport stream parser + Codec/Parser + Parses MPEG2 transport streams + Alessandro Decina <alessandro@nnva.org>, Zaheer Abbas Merali <zaheerabbas at merali dot org> + + + sink + sink + always +
video/mpegts, systemstream=(boolean)true
+
+ + program_%d + source + sometimes +
video/mpegts, systemstream=(boolean)true
+
+ + src%d + source + request +
video/mpegts, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpegpsmux.xml b/docs/plugins/inspect/plugin-mpegpsmux.xml new file mode 100644 index 0000000..95c0809 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpegpsmux.xml @@ -0,0 +1,34 @@ + + mpegpsmux + MPEG-PS muxer + ../../gst/mpegpsmux/.libs/libgstmpegpsmux.so + libgstmpegpsmux.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpegpsmux + MPEG Program Stream Muxer + Codec/Muxer + Multiplexes media streams into an MPEG Program Stream + Lin YANG <oxcsnicho@gmail.com> + + + sink_%d + sink + request +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-dirac; video/x-h264; audio/mpeg, mpegversion=(int){ 1, 2, 4 }; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }
+
+ + src + source + always +
video/mpeg, mpegversion=(int)2, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpegtsdemux.xml b/docs/plugins/inspect/plugin-mpegtsdemux.xml new file mode 100644 index 0000000..e41ca44 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpegtsdemux.xml @@ -0,0 +1,79 @@ + + mpegtsdemux + MPEG TS demuxer + ../../gst/mpegtsdemux/.libs/libgstmpegtsdemux.so + libgstmpegtsdemux.so + 0.10.22 + unknown + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + tsdemux + MPEG transport stream demuxer + Codec/Demuxer + Demuxes MPEG2 transport streams + Zaheer Abbas Merali <zaheerabbas at merali dot org>; Edward Hervey <edward.hervey@collabora.co.uk> + + + sink + sink + always +
video/mpegts, systemstream=(boolean)true
+
+ + audio_%04x + source + sometimes +
audio/mpeg, mpegversion=(int){ 1, 4 }; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }; audio/x-ac3; audio/x-eac3; audio/x-dts; audio/x-private-ts-lpcm
+
+ + private_%04x + source + sometimes +
ANY
+
+ + subpicture_%04x + source + sometimes +
subpicture/x-pgs; video/x-dvd-subpicture
+
+ + video_%04x + source + sometimes +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-h264, stream-format=(string)byte-stream, alignment=(string)nal; video/x-dirac; video/x-wmv, wmvversion=(int)3, format=(fourcc)WVC1
+
+
+
+ + tsparse + MPEG transport stream parser + Codec/Parser + Parses MPEG2 transport streams + Alessandro Decina <alessandro@nnva.org>, Zaheer Abbas Merali <zaheerabbas at merali dot org> + + + sink + sink + always +
video/mpegts, systemstream=(boolean)true
+
+ + program_%d + source + sometimes +
video/mpegts, systemstream=(boolean)true
+
+ + src%d + source + request +
video/mpegts, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpegtsmux.xml b/docs/plugins/inspect/plugin-mpegtsmux.xml new file mode 100644 index 0000000..a83cc83 --- /dev/null +++ b/docs/plugins/inspect/plugin-mpegtsmux.xml @@ -0,0 +1,34 @@ + + mpegtsmux + MPEG-TS muxer + ../../gst/mpegtsmux/.libs/libgstmpegtsmux.so + libgstmpegtsmux.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpegtsmux + MPEG Transport Stream Muxer + Codec/Muxer + Multiplexes media streams into an MPEG Transport Stream + Fluendo <contact@fluendo.com> + + + sink_%d + sink + request +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false; video/x-dirac; video/x-h264, stream-format=(string)byte-stream; audio/mpeg, mpegversion=(int){ 1, 2, 4 }; audio/x-lpcm, width=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 8 ], dynamic_range=(int)[ 0, 255 ], emphasis=(boolean){ false, true }, mute=(boolean){ false, true }; audio/x-ac3; audio/x-dts
+
+ + src + source + always +
video/mpegts, systemstream=(boolean)true, packetsize=(int){ 188, 192 }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mpegvideoparse.xml b/docs/plugins/inspect/plugin-mpegvideoparse.xml new file mode 100644 index 0000000..e75848d --- /dev/null +++ b/docs/plugins/inspect/plugin-mpegvideoparse.xml @@ -0,0 +1,34 @@ + + mpegvideoparse + MPEG-1 and MPEG-2 video parser + ../../gst/mpegvideoparse/.libs/libgstmpegvideoparse.so + libgstmpegvideoparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mpegvideoparse + MPEG video elementary stream parser + Codec/Parser/Video + Parses and frames MPEG-1 and MPEG-2 elementary video streams + Wim Taymans <wim.taymans@chello.be>, Jan Schmidt <thaytan@mad.scientist.com> + + + sink + sink + always +
video/mpeg, mpegversion=(int)[ 1, 2 ], parsed=(boolean)false, systemstream=(boolean)false
+
+ + src + source + always +
video/mpeg, mpegversion=(int)[ 1, 2 ], parsed=(boolean)true, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mplex.xml b/docs/plugins/inspect/plugin-mplex.xml new file mode 100644 index 0000000..2380b86 --- /dev/null +++ b/docs/plugins/inspect/plugin-mplex.xml @@ -0,0 +1,42 @@ + + mplex + High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer + ../../ext/mplex/.libs/libgstmplex.so + libgstmplex.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mplex + mplex video multiplexer + Codec/Muxer + High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer + Andrew Stevens <andrew.stevens@nexgo.de> +Ronald Bultje <rbultje@ronald.bitfreak.net> +Mark Nauwelaerts <mnauw@users.sourceforge.net + + + audio_%d + sink + request +
audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]; audio/x-ac3, channels=(int)[ 1, 8 ], rate=(int)[ 8000, 96000 ]; audio/x-dts; audio/x-raw-int, endianness=(int)4321, signed=(boolean)true, width=(int){ 16, 20, 24 }, depth=(int){ 16, 20, 24 }, rate=(int){ 48000, 96000 }, channels=(int)[ 1, 6 ]
+
+ + video_%d + sink + request +
video/mpeg, mpegversion=(int){ 1, 2 }, systemstream=(boolean)false, width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/mpeg, systemstream=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-musepack.xml b/docs/plugins/inspect/plugin-musepack.xml new file mode 100644 index 0000000..8e0a30b --- /dev/null +++ b/docs/plugins/inspect/plugin-musepack.xml @@ -0,0 +1,34 @@ + + musepack + Musepack decoder + ../../ext/musepack/.libs/libgstmusepack.so + libgstmusepack.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + musepackdec + Musepack decoder + Codec/Decoder/Audio + Musepack decoder + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
audio/x-musepack, streamversion=(int){ 7, 8 }
+
+ + src + source + always +
audio/x-raw-float, width=(int)32, endianness=(int)1234, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-musicbrainz.xml b/docs/plugins/inspect/plugin-musicbrainz.xml new file mode 100644 index 0000000..f7bf1a4 --- /dev/null +++ b/docs/plugins/inspect/plugin-musicbrainz.xml @@ -0,0 +1,34 @@ + + musicbrainz + A TRM signature producer based on libmusicbrainz + ../../ext/musicbrainz/.libs/libgsttrm.so + libgsttrm.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + trm + MusicBrainz TRM generator + Filter/Analyzer/Audio + Compute MusicBrainz TRM Id using libmusicbrainz + Jeremy Simon <jsimon13@yahoo.fr> + + + sink + sink + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mve.xml b/docs/plugins/inspect/plugin-mve.xml new file mode 100644 index 0000000..d695d35 --- /dev/null +++ b/docs/plugins/inspect/plugin-mve.xml @@ -0,0 +1,67 @@ + + mve + Interplay MVE movie format manipulation + ../../gst/mve/.libs/libgstmve.so + libgstmve.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mvedemux + MVE Demuxer + Codec/Demuxer + Demultiplex an Interplay movie (MVE) stream into audio and video + Jens Granseuer <jensgr@gmx.net> + + + sink + sink + always +
video/x-mve
+
+ + audio + source + sometimes +
audio/x-raw-int, width=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], depth=(int)8, signed=(boolean)false; audio/x-raw-int, width=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], depth=(int)16, signed=(boolean)true, endianness=(int){ 1234, 4321 }
+
+ + video + source + sometimes +
video/x-raw-rgb, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31; video/x-raw-rgb, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], bpp=(int)8, depth=(int)8, endianness=(int)1234
+
+
+
+ + mvemux + MVE Multiplexer + Codec/Muxer + Muxes audio and video into an MVE stream + Jens Granseuer <jensgr@gmx.net> + + + audio + sink + request +
audio/x-raw-int, width=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], depth=(int)8, signed=(boolean)false; audio/x-raw-int, width=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], depth=(int)16, signed=(boolean)true, endianness=(int)1234
+
+ + video + sink + request +
video/x-raw-rgb, width=(int)[ 24, 1600 ], height=(int)[ 24, 1200 ], framerate=(fraction)[ 1/1, 2147483647/1 ], bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31; video/x-raw-rgb, bpp=(int)8, depth=(int)8, width=(int)[ 24, 1600 ], height=(int)[ 24, 1200 ], framerate=(fraction)[ 1/1, 2147483647/1 ], endianness=(int)1234
+
+ + src + source + always +
video/x-mve
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mxf.xml b/docs/plugins/inspect/plugin-mxf.xml new file mode 100644 index 0000000..e651a56 --- /dev/null +++ b/docs/plugins/inspect/plugin-mxf.xml @@ -0,0 +1,97 @@ + + mxf + MXF plugin library + ../../gst/mxf/.libs/libgstmxf.so + libgstmxf.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mxfdemux + MXF Demuxer + Codec/Demuxer + Demux MXF files + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
application/mxf
+
+ + track_%u + source + sometimes +
ANY
+
+
+
+ + mxfmux + MXF muxer + Codec/Muxer + Muxes video/audio streams into a MXF stream + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + alaw_audio_sink_%u + sink + request +
audio/x-alaw, rate=(int)[ 8000, 192000 ], channels=(int)[ 1, 2 ]
+
+ + bwf_audio_sink_%u + sink + request +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)32, depth=(int)32, signed=(boolean)true; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)24, depth=(int)24, signed=(boolean)true; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)16, depth=(int)16, signed=(boolean)true; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int){ 1234, 4321 }, width=(int)8, depth=(int)8, signed=(boolean)false
+
+ + dv_dif_video_sink_%u + sink + request +
video/x-dv, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], systemstream=(boolean)true
+
+ + jpeg2000_video_sink_%u + sink + request +
image/x-jpc, fields=(int)1, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], fourcc=(fourcc){ sRGB, sYUV }
+
+ + mpeg_audio_sink_%u + sink + request +
audio/mpeg, mpegversion=(int)1, layer=(int)[ 1, 3 ], rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ], parsed=(boolean)true; audio/x-ac3, rate=(int)[ 4000, 96000 ], channels=(int)[ 1, 6 ]; audio/mpeg, mpegversion=(int)2, rate=(int)[ 8000, 96000 ], channels=(int)[ 1, 8 ]
+
+ + mpeg_video_sink_%u + sink + request +
video/mpeg, mpegversion=(int){ 1, 2, 4 }, systemstream=(boolean)false, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-h264, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + up_video_sink_%u + sink + request +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)v308, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + vc3_video_sink_%u + sink + request +
video/x-dnxhd, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
application/mxf
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-mythtv.xml b/docs/plugins/inspect/plugin-mythtv.xml new file mode 100644 index 0000000..e96d6dd --- /dev/null +++ b/docs/plugins/inspect/plugin-mythtv.xml @@ -0,0 +1,28 @@ + + mythtv + lib MythTV src + ../../ext/mythtv/.libs/libgstmythtvsrc.so + libgstmythtvsrc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + mythtvsrc + MythTV client source + Source/Network + Control and receive data as a client over the network via raw socket connections using the MythTV protocol + Rosfran Borges <rosfran.borges@indt.org.br>, Renato Filho <renato.filho@indt.org.br> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-nas.xml b/docs/plugins/inspect/plugin-nas.xml new file mode 100644 index 0000000..5e3ff0a --- /dev/null +++ b/docs/plugins/inspect/plugin-nas.xml @@ -0,0 +1,28 @@ + + nas + NAS (Network Audio System) support for GStreamer + ../../ext/nas/.libs/libgstnassink.so + libgstnassink.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + nassink + NAS audio sink + Sink/Audio + Plays audio to a Network Audio Server + Laurent Vivier <Laurent.Vivier@bull.net>, Arwed v. Merkatz <v.merkatz@gmx.net> + + + sink + sink + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]; audio/x-raw-int, signed=(boolean)false, width=(int)8, depth=(int)8, rate=(int)[ 1000, 96000 ], channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-neon.xml b/docs/plugins/inspect/plugin-neon.xml new file mode 100644 index 0000000..b1c14b8 --- /dev/null +++ b/docs/plugins/inspect/plugin-neon.xml @@ -0,0 +1,28 @@ + + neon + lib neon http client src + ../../ext/neon/.libs/libgstneonhttpsrc.so + libgstneonhttpsrc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + neonhttpsrc + HTTP client source + Source/Network + Receive data as a client over the network via HTTP using NEON + Edgard Lima <edgard.lima@indt.org.br>, Rosfran Borges <rosfran.borges@indt.org.br>, Andre Moreira Magalhaes <andre.magalhaes@indt.org.br> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-nsf.xml b/docs/plugins/inspect/plugin-nsf.xml new file mode 100644 index 0000000..f828566 --- /dev/null +++ b/docs/plugins/inspect/plugin-nsf.xml @@ -0,0 +1,34 @@ + + nsf + Uses nosefart to decode .nsf files + ../../gst/nsf/.libs/libgstnsf.so + libgstnsf.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + nsfdec + Nsf decoder + Codec/Decoder/Audio + Using nosefart to decode NSF audio tunes + Johan Dahlin <johan@gnome.org> + + + sink + sink + always +
audio/x-nsf
+
+ + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int){ 8, 16 }, depth=(int){ 8, 16 }, rate=(int)[ 8000, 48000 ], channels=(int)[ 1, 2 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-nuvdemux.xml b/docs/plugins/inspect/plugin-nuvdemux.xml new file mode 100644 index 0000000..94eb4e9 --- /dev/null +++ b/docs/plugins/inspect/plugin-nuvdemux.xml @@ -0,0 +1,40 @@ + + nuvdemux + Demuxes MythTV NuppelVideo files + ../../gst/nuvdemux/.libs/libgstnuvdemux.so + libgstnuvdemux.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + nuvdemux + Nuv demuxer + Codec/Demuxer + Demultiplex a MythTV NuppleVideo .nuv file into audio and video + Renato Araujo Oliveira Filho <renato.filho@indt.org.br>,Rosfran Borges <rosfran.borges@indt.org.br> + + + sink + sink + always +
video/x-nuv
+
+ + audio_src + source + sometimes +
ANY
+
+ + video_src + source + sometimes +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-ofa.xml b/docs/plugins/inspect/plugin-ofa.xml new file mode 100644 index 0000000..455cb6f --- /dev/null +++ b/docs/plugins/inspect/plugin-ofa.xml @@ -0,0 +1,34 @@ + + ofa + Calculate MusicIP fingerprint from audio files + ../../ext/ofa/.libs/libgstofa.so + libgstofa.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + ofa + OFA + MusicIP Fingerprinting element + Find a music fingerprint using MusicIP's libofa + Milosz Derezynski <internalerror@gmail.com>, Eric Buehl <eric.buehl@gmail.com> + + + sink + sink + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int){ 1234, 4321 }, width=(int){ 16 }, depth=(int){ 16 }, signed=(boolean)true
+
+ + src + source + always +
audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int){ 1234, 4321 }, width=(int){ 16 }, depth=(int){ 16 }, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-opencv.xml b/docs/plugins/inspect/plugin-opencv.xml new file mode 100644 index 0000000..598546c --- /dev/null +++ b/docs/plugins/inspect/plugin-opencv.xml @@ -0,0 +1,265 @@ + + opencv + GStreamer OpenCV Plugins + ../../ext/opencv/.libs/libgstopencv.so + libgstopencv.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + cvdilate + cvdilate + Transform/Effect/Video + Applies cvDilate OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cvequalizehist + cvequalizehist + Transform/Effect/Video + Applies cvEqualizeHist OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cverode + cverode + Transform/Effect/Video + Applies cvErode OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)4321, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, alpha_mask=(int)-16777216, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cvlaplace + cvlaplace + Transform/Effect/Video + Applies cvLaplace OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cvsmooth + cvsmooth + Transform/Effect/Video + Applies cvSmooth OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + cvsobel + cvsobel + Transform/Effect/Video + Applies cvSobel OpenCV function to the image + Thiago Santos<thiago.sousa.santos@collabora.co.uk> + + + sink + sink + always +
video/x-raw-gray, bpp=(int)8, depth=(int)8, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-gray, bpp=(int)16, depth=(int)16, endianness=(int)1234, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + edgedetect + edgedetect + Filter/Effect/Video + Performs canny edge detection on videos and images. + Michael Sheldon <mike@mikeasoft.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + faceblur + faceblur + Filter/Effect/Video + Blurs faces in images and videos + Michael Sheldon <mike@mikeasoft.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + facedetect + facedetect + Filter/Effect/Video + Performs face detection on videos and images, providing detected positions via bus messages + Michael Sheldon <mike@mikeasoft.com> + + + sink + sink + always +
video/x-raw-rgb
+
+ + src + source + always +
video/x-raw-rgb
+
+
+
+ + opencvtextoverlay + opencvtextoverlay + Filter/Effect/Video + Write text on the top of video + sreerenj<bsreerenj@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + pyramidsegment + pyramidsegment + Filter/Effect/Video + Applies pyramid segmentation to a video or image. + Michael Sheldon <mike@mikeasoft.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + templatematch + templatematch + Filter/Effect/Video + Performs template matching on videos and images, providing detected positions via bus messages + Noam Lewis <jones.noamle@gmail.com> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-patchdetect.xml b/docs/plugins/inspect/plugin-patchdetect.xml new file mode 100644 index 0000000..0f78894 --- /dev/null +++ b/docs/plugins/inspect/plugin-patchdetect.xml @@ -0,0 +1,34 @@ + + patchdetect + patchdetect element + ../../gst/patchdetect/.libs/libgstpatchdetect.so + libgstpatchdetect.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + patchdetect + Color Patch Detector + Video/Analysis + Detects color patches from a color calibration chart + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-pcapparse.xml b/docs/plugins/inspect/plugin-pcapparse.xml new file mode 100644 index 0000000..bfcc239 --- /dev/null +++ b/docs/plugins/inspect/plugin-pcapparse.xml @@ -0,0 +1,34 @@ + + pcapparse + Element parsing raw pcap streams + ../../gst/pcapparse/.libs/libgstpcapparse.so + libgstpcapparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + pcapparse + PCapParse + Raw/Parser + Parses a raw pcap stream + Ole André Vadla Ravnås <ole.andre.ravnas@tandberg.com> + + + sink + sink + always +
raw/x-pcap
+
+ + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-pnm.xml b/docs/plugins/inspect/plugin-pnm.xml new file mode 100644 index 0000000..a0480c8 --- /dev/null +++ b/docs/plugins/inspect/plugin-pnm.xml @@ -0,0 +1,55 @@ + + pnm + PNM plugin + ../../gst/pnm/.libs/libgstpnm.so + libgstpnm.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + pnmdec + PNM image decoder + Codec/Decoder/Image + Decodes images in portable pixmap/graymap/bitmap/anymamp (PNM) format + Lutz Mueller <lutz@users.sourceforge.net> + + + sink + sink + always +
image/x-portable-bitmap; image/x-portable-graymap; image/x-portable-pixmap; image/x-portable-anymap
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], bpp=(int)8, depth=(int)8
+
+
+
+ + pnmenc + PNM image encoder + Codec/Encoder/Image + Encodes images into portable pixmap or graymap (PNM) format + Lutz Mueller <lutz@users.sourceforge.net> + + + sink + sink + always +
video/x-raw-rgb, bpp=(int)24, depth=(int)24, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-gray, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], bpp=(int)8, depth=(int)8
+
+ + src + source + always +
image/x-portable-bitmap; image/x-portable-graymap; image/x-portable-pixmap; image/x-portable-anymap
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rawparse.xml b/docs/plugins/inspect/plugin-rawparse.xml new file mode 100644 index 0000000..9c0b9c1 --- /dev/null +++ b/docs/plugins/inspect/plugin-rawparse.xml @@ -0,0 +1,55 @@ + + rawparse + Parses byte streams into raw frames + ../../gst/rawparse/.libs/libgstrawparse.so + libgstrawparse.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + audioparse + Audio Parse + Filter/Audio + Converts stream into audio frames + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
ANY
+
+ + src + source + always +
audio/x-raw-int, depth=(int)[ 1, 32 ], width=(int){ 8, 16, 24, 32 }, endianness=(int){ 1234, 4321 }, signed=(boolean){ true, false }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int){ 32, 64 }, endianness=(int){ 1234, 4321 }, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-alaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]; audio/x-mulaw, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
+
+
+
+ + videoparse + Video Parse + Filter/Video + Converts stream into video frames + David Schleef <ds@schleef.org>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
ANY
+
+ + src + source + always +
video/x-raw-rgb; video/x-raw-yuv; video/x-raw-gray; video/x-raw-bayer
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-real.xml b/docs/plugins/inspect/plugin-real.xml new file mode 100644 index 0000000..13ee561 --- /dev/null +++ b/docs/plugins/inspect/plugin-real.xml @@ -0,0 +1,55 @@ + + real + Decode REAL streams + ../../gst/real/.libs/libgstreal.so + libgstreal.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + realaudiodec + RealAudio decoder + Codec/Decoder/Audio + Decoder for RealAudio streams + Lutz Mueller <lutz@topfrose.de> + + + sink + sink + always +
audio/x-pn-realaudio, raversion=(int){ 3, 4, 5, 6, 8 }; audio/x-sipro
+
+ + src + source + always +
audio/x-raw-int, width=(int)[ 1, 2147483647 ], depth=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ]
+
+
+
+ + realvideodec + RealVideo decoder + Codec/Decoder/Video + Decoder for RealVideo streams + Lutz Mueller <lutz@topfrose.de> + + + sink + sink + always +
video/x-pn-realvideo, rmversion=(int)[ 2, 4 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-resindvd.xml b/docs/plugins/inspect/plugin-resindvd.xml new file mode 100644 index 0000000..ddcc18b --- /dev/null +++ b/docs/plugins/inspect/plugin-resindvd.xml @@ -0,0 +1,40 @@ + + resindvd + Resin DVD playback elements + ../../ext/resindvd/.libs/libresindvd.so + libresindvd.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + rsndvdbin + rsndvdbin + Generic/Bin/Player + DVD playback element + Jan Schmidt <thaytan@noraisin.net> + + + audio + source + sometimes +
audio/x-raw-int; audio/x-raw-float
+
+ + subpicture + source + sometimes +
video/x-dvd-subpicture
+
+ + video + source + sometimes +
video/x-raw-yuv
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rfbsrc.xml b/docs/plugins/inspect/plugin-rfbsrc.xml new file mode 100644 index 0000000..a72a64a --- /dev/null +++ b/docs/plugins/inspect/plugin-rfbsrc.xml @@ -0,0 +1,28 @@ + + rfbsrc + Connects to a VNC server and decodes RFB stream + ../../gst/librfb/.libs/libgstrfbsrc.so + libgstrfbsrc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + rfbsrc + Rfb source + Source/Video + Creates a rfb video stream + David A. Schleef <ds@schleef.org>, Andre Moreira Magalhaes <andre.magalhaes@indt.org.br>, Thijs Vermeir <thijsvermeir@gmail.com> + + + src + source + always +
video/x-raw-rgb, bpp=(int)[ 1, 255 ], depth=(int)[ 1, 255 ], endianness=(int)[ 1234, 4321 ], red_mask=(int)[ -2147483648, 2147483647 ], green_mask=(int)[ -2147483648, 2147483647 ], blue_mask=(int)[ -2147483648, 2147483647 ], width=(int)[ 16, 4096 ], height=(int)[ 16, 4096 ], framerate=(fraction)0/1
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rsvg.xml b/docs/plugins/inspect/plugin-rsvg.xml new file mode 100644 index 0000000..45b0152 --- /dev/null +++ b/docs/plugins/inspect/plugin-rsvg.xml @@ -0,0 +1,61 @@ + + rsvg + RSVG plugin library + ../../ext/rsvg/.libs/libgstrsvg.so + libgstrsvg.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + rsvgdec + SVG image decoder + Codec/Decoder/Image + Uses librsvg to decode SVG images + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
image/svg+xml; image/svg
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + rsvgoverlay + RSVG overlay + Filter/Editor/Video + Overlays SVG graphics over a video stream + Olivier Aubert <olivier.aubert@liris.cnrs.fr> + + + data_sink + sink + always +
image/svg+xml; image/svg; text/plain
+
+ + sink + sink + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-rgb, bpp=(int)32, depth=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rtmpsrc.xml b/docs/plugins/inspect/plugin-rtmpsrc.xml new file mode 100644 index 0000000..a51ac7a --- /dev/null +++ b/docs/plugins/inspect/plugin-rtmpsrc.xml @@ -0,0 +1,28 @@ + + rtmpsrc + RTMP source + ../../ext/rtmp/.libs/libgstrtmp.so + libgstrtmp.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + rtmpsrc + RTMP Source + Source/File + Read RTMP streams + Bastien Nocera <hadess@hadess.net>, Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rtpmux.xml b/docs/plugins/inspect/plugin-rtpmux.xml new file mode 100644 index 0000000..4129c0f --- /dev/null +++ b/docs/plugins/inspect/plugin-rtpmux.xml @@ -0,0 +1,61 @@ + + rtpmux + RTP Muxer plugins + ../../gst/rtpmux/.libs/libgstrtpmux.so + libgstrtpmux.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + rtpdtmfmux + RTP muxer + Codec/Muxer + mixes RTP DTMF streams into other RTP streams + Zeeshan Ali <first.last@nokia.com> + + + priority_sink_%d + sink + request +
application/x-rtp
+
+ + sink_%d + sink + request +
application/x-rtp
+
+ + src + source + always +
application/x-rtp
+
+
+
+ + rtpmux + RTP muxer + Codec/Muxer + multiplex N rtp streams into one + Zeeshan Ali <first.last@nokia.com> + + + sink_%d + sink + request +
application/x-rtp
+
+ + src + source + always +
application/x-rtp
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-rtpvp8.xml b/docs/plugins/inspect/plugin-rtpvp8.xml new file mode 100644 index 0000000..bf236a5 --- /dev/null +++ b/docs/plugins/inspect/plugin-rtpvp8.xml @@ -0,0 +1,55 @@ + + rtpvp8 + rtpvp8 + ../../gst/rtpvp8/.libs/libgstrtpvp8.so + libgstrtpvp8.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + rtpvp8depay + RTP VP8 depayloader + Codec/Depayloader/Network/RTP + Extracts VP8 video from RTP packets) + Sjoerd Simons <sjoerd@luon.net> + + + sink + sink + always +
application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, media=(string)video, encoding-name=(string)VP8-DRAFT-0-3-2
+
+ + src + source + always +
video/x-vp8
+
+
+
+ + rtpvp8pay + RTP VP8 payloader + Codec/Payloader/Network/RTP + Puts VP8 video in RTP packets) + Sjoerd Simons <sjoerd@luon.net> + + + sink + sink + always +
video/x-vp8
+
+ + src + source + always +
application/x-rtp, payload=(int)[ 96, 127 ], clock-rate=(int)90000, encoding-name=(string)VP8-DRAFT-0-3-2
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-scaletempo.xml b/docs/plugins/inspect/plugin-scaletempo.xml new file mode 100644 index 0000000..91b283e --- /dev/null +++ b/docs/plugins/inspect/plugin-scaletempo.xml @@ -0,0 +1,34 @@ + + scaletempo + Scale audio tempo in sync with playback rate + ../../gst/scaletempo/.libs/libgstscaletempoplugin.so + libgstscaletempoplugin.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.freedesktop.org/ + + + scaletempo + Scaletempo + Filter/Effect/Rate + Sync audio tempo with playback rate + Rov Juvano <rovjuvano@users.sourceforge.net> + + + sink + sink + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+ + src + source + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-schro.xml b/docs/plugins/inspect/plugin-schro.xml new file mode 100644 index 0000000..8772bcb --- /dev/null +++ b/docs/plugins/inspect/plugin-schro.xml @@ -0,0 +1,55 @@ + + schro + Schroedinger plugin + ../../ext/schroedinger/.libs/libgstschro.so + libgstschro.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + schrodec + Dirac Decoder + Codec/Decoder/Video + Decode Dirac streams + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-dirac
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + schroenc + Dirac Encoder + Codec/Encoder/Video + Encode raw video into Dirac stream + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, YUY2, UYVY, AYUV }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-dirac; video/x-qt-part; video/x-mp4-part
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-sdi.xml b/docs/plugins/inspect/plugin-sdi.xml new file mode 100644 index 0000000..d725e43 --- /dev/null +++ b/docs/plugins/inspect/plugin-sdi.xml @@ -0,0 +1,55 @@ + + sdi + SDI elements + ../../gst/sdi/.libs/libgstsdi.so + libgstsdi.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + sdidemux + SDI Demuxer + Demuxer + Demultiplex SDI streams into raw audio and video + David Schleef <ds@schleef.org> + + + sink + sink + always +
application/x-raw-sdi
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)480, framerate=(fraction)30000/1001, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)10/11, chroma-site=(string)mpeg2, color-matrix=(string)sdtv; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)720, height=(int)576, framerate=(fraction)25/1, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)12/11, chroma-site=(string)mpeg2, color-matrix=(string)sdtv
+
+
+
+ + sdimux + SDI Muxer + Muxer + Multiplex raw audio and video into SDI + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ UYVY, v210 }, width=(int)720, height=(int)480, framerate=(fraction)30000/1001, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)10/11, chroma-site=(string)mpeg2, color-matrix=(string)sdtv; video/x-raw-yuv, format=(fourcc){ UYVY, v210 }, width=(int)720, height=(int)576, framerate=(fraction)25/1, interlaced=(boolean)true, pixel-aspect-ratio=(fraction)12/11, chroma-site=(string)mpeg2, color-matrix=(string)sdtv
+
+ + src + source + always +
application/x-raw-sdi, rate=(int)270, format=(fourcc){ UYVY, v210 }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-sdl.xml b/docs/plugins/inspect/plugin-sdl.xml new file mode 100644 index 0000000..85923d8 --- /dev/null +++ b/docs/plugins/inspect/plugin-sdl.xml @@ -0,0 +1,43 @@ + + sdl + SDL (Simple DirectMedia Layer) support for GStreamer + ../../ext/sdl/.libs/libgstsdl.so + libgstsdl.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + sdlaudiosink + SDL audio sink + Sink/Audio + Output to a sound card via SDLAUDIO + Edgard Lima <edgard.lima@indt.org.br> + + + sink + sink + always +
audio/x-raw-int, endianness=(int){ 1234 }, signed=(boolean){ true, false }, width=(int)16, depth=(int)16, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]; audio/x-raw-int, endianness=(int){ 1234 }, signed=(boolean){ true, false }, width=(int)8, depth=(int)8, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2 ]
+
+
+
+ + sdlvideosink + SDL video sink + Sink/Video + An SDL-based videosink + Ronald Bultje <rbultje@ronald.bitfreak.net>, Edgard Lima <edgard.lima@indt.org.br>, Jan Schmidt <thaytan@mad.scientist.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)YVYU, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 100/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-sdp.xml b/docs/plugins/inspect/plugin-sdp.xml new file mode 100644 index 0000000..88ea6bd --- /dev/null +++ b/docs/plugins/inspect/plugin-sdp.xml @@ -0,0 +1,34 @@ + + sdp + configure streaming sessions using SDP + ../../gst/sdp/.libs/libgstsdpelem.so + libgstsdpelem.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + sdpdemux + SDP session setup + Codec/Demuxer/Network/RTP + Receive data over the network via SDP + Wim Taymans <wim.taymans@gmail.com> + + + sink + sink + always +
application/sdp
+
+ + stream%d + source + sometimes +
application/x-rtp
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-segmentclip.xml b/docs/plugins/inspect/plugin-segmentclip.xml new file mode 100644 index 0000000..fb4e49f --- /dev/null +++ b/docs/plugins/inspect/plugin-segmentclip.xml @@ -0,0 +1,55 @@ + + segmentclip + Segment clip elements + ../../gst/segmentclip/.libs/libgstsegmentclip.so + libgstsegmentclip.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + audiosegmentclip + Audio buffer segment clipper + Filter/Audio + Clips audio buffers to the configured segment + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
audio/x-raw-int, width=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]
+
+ + src + source + always +
audio/x-raw-int, width=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]; audio/x-raw-float, width=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], rate=(int)[ 1, 2147483647 ]
+
+
+
+ + videosegmentclip + Video buffer segment clipper + Filter/Video + Clips video buffers to the configured segment + Sebastian Dröge <sebastian.droege@collabora.co.uk> + + + sink + sink + always +
video/x-raw-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-grey, framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-grey, framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-shm.xml b/docs/plugins/inspect/plugin-shm.xml new file mode 100644 index 0000000..c65cbd8 --- /dev/null +++ b/docs/plugins/inspect/plugin-shm.xml @@ -0,0 +1,43 @@ + + shm + shared memory sink source + ../../sys/shm/.libs/libgstshm.so + libgstshm.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + shmsink + Shared Memory Sink + Sink + Send data over shared memory to the matching source + Olivier Crete <olivier.crete@collabora.co.uk> + + + sink + sink + always +
ANY
+
+
+
+ + shmsrc + Shared Memory Source + Source + Receive data from the sharem memory sink + Olivier Crete <olivier.crete@collabora.co.uk + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-sndfile.xml b/docs/plugins/inspect/plugin-sndfile.xml new file mode 100644 index 0000000..cd6d281 --- /dev/null +++ b/docs/plugins/inspect/plugin-sndfile.xml @@ -0,0 +1,43 @@ + + sndfile + use libsndfile to read and write audio from and to files + ../../ext/sndfile/.libs/libgstsndfile.so + libgstsndfile.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + sfsink + Sndfile sink + Sink/Audio + Write audio streams to disk using libsndfile + Andy Wingo <wingo at pobox dot com> + + + sink + sink + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int){ 16, 32 }, depth=(int){ 16, 32 }, signed=(boolean)true
+
+
+
+ + sfsrc + Sndfile source + Source/Audio + Read audio streams from disk using libsndfile + Andy Wingo <wingo at pobox dot com> + + + src + source + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int){ 16, 32 }, depth=(int){ 16, 32 }, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-soundtouch.xml b/docs/plugins/inspect/plugin-soundtouch.xml new file mode 100644 index 0000000..36409a1 --- /dev/null +++ b/docs/plugins/inspect/plugin-soundtouch.xml @@ -0,0 +1,55 @@ + + soundtouch + Audio Pitch Controller & BPM Detection + ../../ext/soundtouch/.libs/libgstsoundtouch.so + libgstsoundtouch.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + bpmdetect + BPM Detector + Filter/Analyzer/Audio + Detect the BPM of an audio stream + Sebastian Dröge <slomo@circular-chaos.org> + + + sink + sink + always +
audio/x-raw-float, width=(int)32, endianness=(int)1234, rate=(int)[ 8000, 2147483647 ], channels=(int)[ 1, 2 ]
+
+ + src + source + always +
audio/x-raw-float, width=(int)32, endianness=(int)1234, rate=(int)[ 8000, 2147483647 ], channels=(int)[ 1, 2 ]
+
+
+
+ + pitch + Pitch controller + Filter/Converter/Audio + Control the pitch of an audio stream + Wouter Paesen <wouter@blue-gate.be> + + + sink + sink + always +
audio/x-raw-float, rate=(int)[ 8000, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, width=(int)32
+
+ + src + source + always +
audio/x-raw-float, rate=(int)[ 8000, 2147483647 ], channels=(int)[ 1, 2 ], endianness=(int)1234, width=(int)32
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-spcdec.xml b/docs/plugins/inspect/plugin-spcdec.xml new file mode 100644 index 0000000..b5a7911 --- /dev/null +++ b/docs/plugins/inspect/plugin-spcdec.xml @@ -0,0 +1,34 @@ + + spcdec + OpenSPC Audio Decoder + ../../ext/spc/.libs/libgstspc.so + libgstspc.so + 0.10.17 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins prerelease + Unknown package origin + + + spcdec + OpenSPC SPC decoder + Codec/Audio/Decoder + Uses OpenSPC to emulate an SPC processor + Chris Lee <clee@kde.org>, Brian Koropoff <bkoropoff@gmail.com> + + + src + source + always +
audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)32000, channels=(int)2
+
+ + sink + sink + always +
audio/x-spc
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-speed.xml b/docs/plugins/inspect/plugin-speed.xml new file mode 100644 index 0000000..ca337fe --- /dev/null +++ b/docs/plugins/inspect/plugin-speed.xml @@ -0,0 +1,34 @@ + + speed + Set speed/pitch on audio/raw streams (resampler) + ../../gst/speed/.libs/libgstspeed.so + libgstspeed.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + speed + Speed + Filter/Effect/Audio + Set speed/pitch on audio/raw streams (resampler) + Andy Wingo <apwingo@eos.ncsu.edu>, Tim-Philipp Müller <tim@centricular.net> + + + sink + sink + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+ + src + source + always +
audio/x-raw-float, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)32; audio/x-raw-int, rate=(int)[ 1, 2147483647 ], channels=(int)[ 1, 2147483647 ], endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-stereo.xml b/docs/plugins/inspect/plugin-stereo.xml new file mode 100644 index 0000000..01807d6 --- /dev/null +++ b/docs/plugins/inspect/plugin-stereo.xml @@ -0,0 +1,34 @@ + + stereo + Muck with the stereo signal, enhance it's 'stereo-ness' + ../../gst/stereo/.libs/libgststereo.so + libgststereo.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + stereo + Stereo effect + Filter/Effect/Audio + Muck with the stereo signal to enhance its 'stereo-ness' + Erik Walthinsen <omega@cse.ogi.edu> + + + sink + sink + always +
audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)2, signed=(boolean)true
+
+ + src + source + always +
audio/x-raw-int, depth=(int)16, width=(int)16, endianness=(int)1234, rate=(int)[ 1, 2147483647 ], channels=(int)2, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-subenc.xml b/docs/plugins/inspect/plugin-subenc.xml new file mode 100644 index 0000000..5f7f3ad --- /dev/null +++ b/docs/plugins/inspect/plugin-subenc.xml @@ -0,0 +1,34 @@ + + subenc + subtitle encoders + ../../gst/subenc/.libs/libgstsubenc.so + libgstsubenc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + srtenc + Srt encoder + Codec/Encoder/Subtitle + Srt subtitle encoder + Thijs Vermeir <thijsvermeir@gmail.com> + + + sink + sink + always +
text/plain; text/x-pango-markup
+
+ + src + source + always +
application/x-subtitle
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-swfdec.xml b/docs/plugins/inspect/plugin-swfdec.xml new file mode 100644 index 0000000..8d517e5 --- /dev/null +++ b/docs/plugins/inspect/plugin-swfdec.xml @@ -0,0 +1,20 @@ + + swfdec + Uses libswfdec to decode Flash video streams + ../../ext/swfdec/.libs/libgstswfdec.so + libgstswfdec.so + 0.10.4 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + swfdec + SWF video decoder + Codec/Decoder/Video + Uses libswfdec to decode Flash video streams + David Schleef <ds@schleef.org> + + + \ No newline at end of file diff --git a/docs/plugins/inspect/plugin-timidity.xml b/docs/plugins/inspect/plugin-timidity.xml new file mode 100644 index 0000000..cfc6c12 --- /dev/null +++ b/docs/plugins/inspect/plugin-timidity.xml @@ -0,0 +1,34 @@ + + timidity + Timidity Plugin + ../../ext/timidity/.libs/libgsttimidity.so + libgsttimidity.so + 0.10.14.1 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins git/prerelease + http://gstreamer.freedesktop.org + + + timidity + Timidity + Codec/Decoder/Audio + Midi Synthesizer Element + Wouter Paesen <wouter@blue-gate.be> + + + sink + sink + always +
audio/midi; audio/riff-midi
+
+ + src + source + always +
audio/x-raw-int, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-tta.xml b/docs/plugins/inspect/plugin-tta.xml new file mode 100644 index 0000000..e5ff84f --- /dev/null +++ b/docs/plugins/inspect/plugin-tta.xml @@ -0,0 +1,55 @@ + + tta + TTA lossless audio format handling + ../../gst/tta/.libs/libgsttta.so + libgsttta.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + ttadec + TTA audio decoder + Codec/Decoder/Audio + Decode TTA audio data + Arwed v. Merkatz <v.merkatz@gmx.net> + + + sink + sink + always +
audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]
+
+ + src + source + always +
audio/x-raw-int, width=(int){ 8, 16, 24 }, depth=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ], endianness=(int)1234, signed=(boolean)true
+
+
+
+ + ttaparse + TTA file parser + Codec/Demuxer/Audio + Parses TTA files + Arwed v. Merkatz <v.merkatz@gmx.net> + + + sink + sink + always +
audio/x-ttafile
+
+ + src + source + always +
audio/x-tta, width=(int){ 8, 16, 24 }, channels=(int){ 1, 2 }, rate=(int)[ 8000, 96000 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-vcdsrc.xml b/docs/plugins/inspect/plugin-vcdsrc.xml new file mode 100644 index 0000000..a8941eb --- /dev/null +++ b/docs/plugins/inspect/plugin-vcdsrc.xml @@ -0,0 +1,28 @@ + + vcdsrc + Asynchronous read from VCD disk + ../../sys/vcd/.libs/libgstvcdsrc.so + libgstvcdsrc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + vcdsrc + VCD Source + Source/File + Asynchronous read from VCD disk + Erik Walthinsen <omega@cse.ogi.edu> + + + src + source + always +
ANY
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-vdpau.xml b/docs/plugins/inspect/plugin-vdpau.xml new file mode 100644 index 0000000..a65ed34 --- /dev/null +++ b/docs/plugins/inspect/plugin-vdpau.xml @@ -0,0 +1,112 @@ + + vdpau + Various elements utilizing VDPAU + ../../sys/vdpau/.libs/libgstvdpau.so + libgstvdpau.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer + http://gstreamer.net/ + + + vdpauh264dec + VDPAU H264 Decoder + Decoder + Decode h264 stream with vdpau + Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> + + + sink + sink + always +
video/x-h264, interlaced=(boolean)false
+
+ + src + source + always +
video/x-vdpau-video, chroma-type=(int)0, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
+
+
+
+ + vdpaumpeg4dec + VDPAU Mpeg4 Decoder + Decoder + Decode mpeg4 stream with vdpau + Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> + + + sink + sink + always +
video/mpeg, mpegversion=(int)4, systemstream=(boolean)false; video/x-divx, divxversion=(int)[ 4, 5 ]; video/x-xvid
+
+ + src + source + always +
video/x-vdpau-video, chroma-type=(int)0, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
+
+
+
+ + vdpaumpegdec + VDPAU Mpeg Decoder + Decoder + Decode mpeg stream with vdpau + Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> + + + sink + sink + always +
video/mpeg, mpegversion=(int)[ 1, 2 ], systemstream=(boolean)false
+
+ + src + source + always +
video/x-vdpau-video, chroma-type=(int)0, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
+
+
+
+ + vdpausink + VDPAU Sink + Sink/Video + VDPAU Sink + Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> + + + sink + sink + always +
video/x-vdpau-output, rgba-format=(int)[ 0, 4 ], width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]
+
+
+
+ + vdpauvideopostprocess + VdpauVideoPostProcess + Filter/Converter/Decoder/Video + Post process GstVdpVideoBuffers and output GstVdpOutputBuffers + Carl-Anton Ingmarsson <ca.ingmarsson@gmail.com> + + + sink + sink + always +
video/x-vdpau-video, chroma-type=(int)0, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-vdpau-video, chroma-type=(int)1, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-vdpau-video, chroma-type=(int)2, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)YV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)NV12, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)UYVY, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)AYUV, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)AVUY, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]; video/x-raw-yuv, format=(fourcc)YUY2, width=(int)[ 1, 4096 ], height=(int)[ 1, 4096 ]
+
+ + src + source + always +
video/x-vdpau-output, rgba-format=(int)4, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-vdpau-output, rgba-format=(int)3, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-vdpau-output, rgba-format=(int)0, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-vdpau-output, rgba-format=(int)2, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-vdpau-output, rgba-format=(int)1, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-raw-rgb, bpp=(int)8, depth=(int)8, endianness=(int)4321, red_mask=(int)0, green_mask=(int)0, blue_mask=(int)0, alpha_mask=(int)255, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)30, endianness=(int)4321, red_mask=(int)1020, green_mask=(int)4190208, blue_mask=(int)-4194304, alpha_mask=(int)3, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216, alpha_mask=(int)255, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)30, endianness=(int)4321, red_mask=(int)-4194304, green_mask=(int)4190208, blue_mask=(int)1020, alpha_mask=(int)3, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]; video/x-raw-rgb, bpp=(int)32, depth=(int)24, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280, alpha_mask=(int)255, width=(int)[ 1, 8192 ], height=(int)[ 1, 8192 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-videofiltersbad.xml b/docs/plugins/inspect/plugin-videofiltersbad.xml new file mode 100644 index 0000000..82e24f5 --- /dev/null +++ b/docs/plugins/inspect/plugin-videofiltersbad.xml @@ -0,0 +1,55 @@ + + videofiltersbad + Video filters in gst-plugins-bad + ../../gst/videofilters/.libs/libgstvideofiltersbad.so + libgstvideofiltersbad.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + scenechange + Scene change detector + Video/Filter + Detects scene changes in video + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean){ true, false }
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean){ true, false }
+
+
+
+ + zebrastripe + Zebra stripe overlay + Filter/Analysis + Overlays zebra striping on overexposed areas of video + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean){ true, false }
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], pixel-aspect-ratio=(fraction)[ 0/1, 2147483647/1 ], interlaced=(boolean){ true, false }
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-videomaxrate.xml b/docs/plugins/inspect/plugin-videomaxrate.xml new file mode 100644 index 0000000..b18601c --- /dev/null +++ b/docs/plugins/inspect/plugin-videomaxrate.xml @@ -0,0 +1,34 @@ + + videomaxrate + Drop extra frames + ../../gst/videomaxrate/.libs/libgstvideomaxrate.so + libgstvideomaxrate.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + videomaxrate + Video maximum rate adjuster + Filter/Effect/Video + Drops extra frames + Justin Karneges <justin@affinix.com> + + + sink + sink + always +
video/x-raw-yuv; video/x-raw-rgb; video/x-raw-gray; image/jpeg; image/png
+
+ + src + source + always +
video/x-raw-yuv; video/x-raw-rgb; video/x-raw-gray; image/jpeg; image/png
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-videomeasure.xml b/docs/plugins/inspect/plugin-videomeasure.xml new file mode 100644 index 0000000..17c6b20 --- /dev/null +++ b/docs/plugins/inspect/plugin-videomeasure.xml @@ -0,0 +1,61 @@ + + videomeasure + Various video measurers + ../../gst/videomeasure/.libs/libgstvideomeasure.so + libgstvideomeasure.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + measurecollector + Video measure collector + Filter/Effect/Video + Collect measurements from a measuring element + Руслан Ижбулатов <lrn _at_ gmail _dot_ com> + + + sink + sink + always +
ANY
+
+ + src + source + always +
ANY
+
+
+
+ + ssim + SSim + Filter/Analyzer/Video + Calculate Y-SSIM for n+2 YUV video streams + Руслан Ижбулатов <lrn1986 _at_ gmail _dot_ com> + + + modified%d + sink + request +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B }
+
+ + original + sink + request +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B }
+
+ + src%d + source + sometimes +
video/x-raw-gray, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], bpp=(int)8, depth=(int)8
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-videoparsersbad.xml b/docs/plugins/inspect/plugin-videoparsersbad.xml new file mode 100644 index 0000000..5244dde --- /dev/null +++ b/docs/plugins/inspect/plugin-videoparsersbad.xml @@ -0,0 +1,76 @@ + + videoparsersbad + videoparsers + ../../gst/videoparsers/.libs/libgstvideoparsersbad.so + libgstvideoparsersbad.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + diracparse + Dirac parser + Codec/Parser/Video + Parses Dirac streams + David Schleef <ds@schleef.org> + + + sink + sink + always +
video/x-dirac, parsed=(boolean)false
+
+ + src + source + always +
video/x-dirac, parsed=(boolean)true
+
+
+
+ + h263parse + H.263 parser + Codec/Parser/Video + Parses H.263 streams + Arun Raghavan <arun.raghavan@collabora.co.uk>,Edward Hervey <edward.hervey@collabora.co.uk> + + + sink + sink + always +
video/x-h263, variant=(string)itu, parsed=(boolean)false
+
+ + src + source + always +
video/x-h263, variant=(string)itu, parsed=(boolean)true
+
+
+
+ + h264parse + H.264 parser + Codec/Parser/Video + Parses H.264 streams + Mark Nauwelaerts <mark.nauwelaerts@collabora.co.uk> + + + sink + sink + always +
video/x-h264, parsed=(boolean)false
+
+ + src + source + always +
video/x-h264, parsed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-videosignal.xml b/docs/plugins/inspect/plugin-videosignal.xml new file mode 100644 index 0000000..e87dc3b --- /dev/null +++ b/docs/plugins/inspect/plugin-videosignal.xml @@ -0,0 +1,76 @@ + + videosignal + Various video signal analysers + ../../gst/videosignal/.libs/libgstvideosignal.so + libgstvideosignal.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + videoanalyse + Video analyser + Filter/Analyzer/Video + Analyse video signal + Wim Taymans <wim@fluendo.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + videodetect + Video detecter + Filter/Effect/Video + Detect patterns in a video signal + Wim Taymans <wim@fluendo.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + videomark + Video marker + Filter/Effect/Video + Marks a video signal with a pattern + Wim Taymans <wim@fluendo.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YV12, Y41B, Y42B, Y444, YUY2, UYVY, AYUV, YVYU }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-vmnc.xml b/docs/plugins/inspect/plugin-vmnc.xml new file mode 100644 index 0000000..9205de3 --- /dev/null +++ b/docs/plugins/inspect/plugin-vmnc.xml @@ -0,0 +1,34 @@ + + vmnc + VmWare Video Codec plugins + ../../gst/vmnc/.libs/libgstvmnc.so + libgstvmnc.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + vmncdec + VMnc video decoder + Codec/Decoder/Video + Decode VmWare video to raw (RGB) video + Michael Smith <msmith@xiph.org> + + + sink + sink + always +
video/x-vmnc, version=(int)1, framerate=(fraction)[ 0/1, 2147483647/1 ], width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ]
+
+ + src + source + always +
video/x-raw-rgb
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-vp8.xml b/docs/plugins/inspect/plugin-vp8.xml new file mode 100644 index 0000000..f49d0bf --- /dev/null +++ b/docs/plugins/inspect/plugin-vp8.xml @@ -0,0 +1,55 @@ + + vp8 + VP8 plugin + ../../ext/vp8/.libs/libgstvp8.so + libgstvp8.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + vp8dec + On2 VP8 Decoder + Codec/Decoder/Video + Decode VP8 video streams + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-vp8
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + vp8enc + On2 VP8 Encoder + Codec/Encoder/Video + Encode VP8 video streams + David Schleef <ds@entropywave.com> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc)I420, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-vp8
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-wildmidi.xml b/docs/plugins/inspect/plugin-wildmidi.xml new file mode 100644 index 0000000..26840c3 --- /dev/null +++ b/docs/plugins/inspect/plugin-wildmidi.xml @@ -0,0 +1,34 @@ + + wildmidi + Wildmidi Plugin + ../../ext/timidity/.libs/libgstwildmidi.so + libgstwildmidi.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + wildmidi + WildMidi + Codec/Decoder/Audio + Midi Synthesizer Element + Wouter Paesen <wouter@blue-gate.be> + + + sink + sink + always +
audio/midi; audio/riff-midi
+
+ + src + source + always +
audio/x-raw-int, rate=(int)44100, channels=(int)2, endianness=(int)1234, width=(int)16, depth=(int)16, signed=(boolean)true
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-xvid.xml b/docs/plugins/inspect/plugin-xvid.xml new file mode 100644 index 0000000..c38ba48 --- /dev/null +++ b/docs/plugins/inspect/plugin-xvid.xml @@ -0,0 +1,55 @@ + + xvid + XviD plugin library + ../../ext/xvid/.libs/libgstxvid.so + libgstxvid.so + 0.10.22 + GPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + xviddec + XviD video decoder + Codec/Decoder/Video + XviD decoder based on xvidcore + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
video/x-xvid, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, YV12, YVYU, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+ + xvidenc + XviD video encoder + Codec/Encoder/Video + XviD encoder based on xvidcore + Ronald Bultje <rbultje@ronald.bitfreak.net> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ I420, YUY2, YV12, YVYU, UYVY }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)16711680, green_mask=(int)65280, blue_mask=(int)255; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)-16777216, green_mask=(int)16711680, blue_mask=(int)65280; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)65280, green_mask=(int)16711680, blue_mask=(int)-16777216; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)32, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680; video/x-raw-rgb, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ], depth=(int)24, bpp=(int)24, endianness=(int)4321, red_mask=(int)255, green_mask=(int)65280, blue_mask=(int)16711680; video/x-raw-rgb, bpp=(int)16, depth=(int)15, endianness=(int)1234, red_mask=(int)31744, green_mask=(int)992, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/x-raw-rgb, bpp=(int)16, depth=(int)16, endianness=(int)1234, red_mask=(int)63488, green_mask=(int)2016, blue_mask=(int)31, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-xvid, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]; video/mpeg, mpegversion=(int)4, systemstream=(boolean)false, width=(int)[ 0, 2147483647 ], height=(int)[ 0, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-y4mdec.xml b/docs/plugins/inspect/plugin-y4mdec.xml new file mode 100644 index 0000000..826dffa --- /dev/null +++ b/docs/plugins/inspect/plugin-y4mdec.xml @@ -0,0 +1,34 @@ + + y4mdec + Demuxes/decodes YUV4MPEG streams + ../../gst/y4m/.libs/libgsty4mdec.so + libgsty4mdec.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins + Unknown package origin + + + y4mdec + YUV4MPEG demuxer/decoder + Codec/Demuxer + Demuxes/decodes YUV4MPEG streams + David Schleef <ds@schleef.org> + + + sink + sink + always +
application/x-yuv4mpeg, y4mversion=(int)2
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ I420, Y42B, Y444 }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/plugins/inspect/plugin-zbar.xml b/docs/plugins/inspect/plugin-zbar.xml new file mode 100644 index 0000000..4ac2096 --- /dev/null +++ b/docs/plugins/inspect/plugin-zbar.xml @@ -0,0 +1,34 @@ + + zbar + zbar barcode scanner + ../../ext/zbar/.libs/libgstzbar.so + libgstzbar.so + 0.10.22 + LGPL + gst-plugins-bad + GStreamer Bad Plug-ins source release + Unknown package origin + + + zbar + Barcode detector + Filter/Analyzer/Video + Detect bar codes in the video streams + Stefan Kost <ensonic@users.sf.net> + + + sink + sink + always +
video/x-raw-yuv, format=(fourcc){ Y800, I420, YV12, NV12, NV21, Y41B, Y42B }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+ + src + source + always +
video/x-raw-yuv, format=(fourcc){ Y800, I420, YV12, NV12, NV21, Y41B, Y42B }, width=(int)[ 1, 2147483647 ], height=(int)[ 1, 2147483647 ], framerate=(fraction)[ 0/1, 2147483647/1 ]
+
+
+
+
+
\ No newline at end of file diff --git a/docs/random/ChangeLog-0.8 b/docs/random/ChangeLog-0.8 new file mode 100644 index 0000000..d683895 --- /dev/null +++ b/docs/random/ChangeLog-0.8 @@ -0,0 +1,17760 @@ +2005-09-02 Flavio Oliveira + + * configure.ac: + * ext/Makefile.am: + * ext/gsm/Makefile.am: + * ext/gsm/gstgsm.c: + * ext/gsm/gstgsmenc.c: Ported GSM Encoder to GStreamer 0.9. + * PORTED_09: + +2005-08-31 Flavio Oliveira + + * configure.ac: + * ext/Makefile.am: + * ext/faac/Makefile.am: + * ext/faac/gstfaac.c: Ported to GStreamer 0.9. + +2005-08-31 Thomas Vander Stichele + + * configure.ac: + * ext/Makefile.am: + * ext/mad/Makefile.am: + * ext/mad/gstid3tag.c: + * ext/mad/gstmad.c: + * ext/mad/gstmad.h: + * gst/mpegaudio/.cvsignore: + * gst/mpegaudio/Makefile.am: + * gst/mpegaudio/README.crh: + * gst/mpegaudio/common.c: + * gst/mpegaudio/common.h: + * gst/mpegaudio/encode.c: + * gst/mpegaudio/encoder.h: + * gst/mpegaudio/fixes.txt: + * gst/mpegaudio/gstmpegaudio.c: + * gst/mpegaudio/gstmpegaudio.h: + * gst/mpegaudio/mpegaudio.vcproj: + * gst/mpegaudio/musicin.c: + * gst/mpegaudio/musicin.h: + * gst/mpegaudio/psy.c: + * gst/mpegaudio/putbits.c: + * gst/mpegaudio/putbits.h: + * gst/mpegaudio/readme.txt: + * gst/mpegaudio/release.txt: + * gst/mpegaudio/subs.c: + * gst/mpegaudio/table_absthr.h: + * gst/mpegaudio/table_alloc.h: + * gst/mpegaudio/table_cb.h: + * gst/mpegaudio/table_enwindow.h: + * gst/mpegaudio/table_th.h: + * gst/mpegaudio/tables.c: + * gst/mpegaudio/tonal.c: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + * po/vi.po: + * sys/Makefile.am: + + all these plugins are moved to gst-plugins-ugly + +2005-08-31 Michael Smith + + * configure.ac: + * gst/dvdlpcmdec/Makefile.am: + * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcm_reset), + (gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link), (update_timestamps), + (gst_dvdlpcmdec_chain): + * gst/dvdlpcmdec/gstdvdlpcmdec.h: + Port LPCM decoder to 0.9 + +2005-08-30 Jan Schmidt + + * configure.ac: + Remove plugins that should have disappeared. + +2005-08-30 Jan Schmidt + + * autogen.sh: + * configure.ac: + Make autogen work again. + +2005-08-30 Thomas Vander Stichele + + * configure.ac: + * ext/Makefile.am: + * ext/aalib/Makefile.am: + * ext/aalib/gstaasink.c: + * ext/aalib/gstaasink.h: + * ext/cairo/Makefile.am: + * ext/cairo/gstcairo.c: + * ext/cairo/gsttextoverlay.c: + * ext/cairo/gsttextoverlay.h: + * ext/cairo/gsttimeoverlay.c: + * ext/cairo/gsttimeoverlay.h: + * ext/dv/Makefile.am: + * ext/dv/NOTES: + * ext/dv/demo-play.c: + * ext/dv/gstdv.c: + * ext/dv/gstdvdec.c: + * ext/dv/gstdvdec.h: + * ext/dv/gstdvdemux.c: + * ext/dv/gstdvdemux.h: + * ext/esd/Makefile.am: + * ext/esd/README: + * ext/esd/esdmon.c: + * ext/esd/esdmon.h: + * ext/esd/esdsink.c: + * ext/esd/esdsink.h: + * ext/esd/gstesd.c: + * ext/flac/Makefile.am: + * ext/flac/flac_compat.h: + * ext/flac/gstflac.c: + * ext/flac/gstflacdec.c: + * ext/flac/gstflacdec.h: + * ext/flac/gstflacenc.c: + * ext/flac/gstflacenc.h: + * ext/flac/gstflactag.c: + * ext/flac/gstflactag.h: + * ext/gconf/Makefile.am: + * ext/gconf/gconf.c: + * ext/gconf/gconf.h: + * ext/gconf/gstgconfaudiosink.c: + * ext/gconf/gstgconfaudiosink.h: + * ext/gconf/gstgconfelements.c: + * ext/gconf/gstgconfelements.h: + * ext/gconf/gstgconfvideosink.c: + * ext/gconf/gstgconfvideosink.h: + * ext/gdk_pixbuf/Makefile.am: + * ext/gdk_pixbuf/gst_loader.c: + * ext/gdk_pixbuf/gstgdkanimation.c: + * ext/gdk_pixbuf/gstgdkanimation.h: + * ext/gdk_pixbuf/gstgdkpixbuf.c: + * ext/gdk_pixbuf/gstgdkpixbuf.h: + * ext/gdk_pixbuf/pixbufscale.c: + * ext/gdk_pixbuf/pixbufscale.h: + * ext/jpeg/Makefile.am: + * ext/jpeg/README: + * ext/jpeg/gstjpeg.c: + * ext/jpeg/gstjpegdec.c: + * ext/jpeg/gstjpegdec.h: + * ext/jpeg/gstjpegenc.c: + * ext/jpeg/gstjpegenc.h: + * ext/jpeg/gstsmokedec.c: + * ext/jpeg/gstsmokedec.h: + * ext/jpeg/gstsmokeenc.c: + * ext/jpeg/gstsmokeenc.h: + * ext/jpeg/smokecodec.c: + * ext/jpeg/smokecodec.h: + * ext/jpeg/smokeformat.h: + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.c: + * ext/ladspa/gstladspa.h: + * ext/ladspa/gstsignalprocessor.c: + * ext/ladspa/gstsignalprocessor.h: + * ext/ladspa/load.c: + * ext/ladspa/search.c: + * ext/ladspa/utils.h: + * ext/libcaca/Makefile.am: + * ext/libcaca/gstcacasink.c: + * ext/libcaca/gstcacasink.h: + * ext/libmng/Makefile.am: + * ext/libmng/gstmng.c: + * ext/libmng/gstmng.h: + * ext/libmng/gstmngdec.c: + * ext/libmng/gstmngdec.h: + * ext/libmng/gstmngenc.c: + * ext/libmng/gstmngenc.h: + * ext/libpng/Makefile.am: + * ext/libpng/gstpng.c: + * ext/libpng/gstpng.h: + * ext/libpng/gstpngdec.c: + * ext/libpng/gstpngdec.h: + * ext/libpng/gstpngenc.c: + * ext/libpng/gstpngenc.h: + * ext/mikmod/Makefile.am: + * ext/mikmod/README: + * ext/mikmod/drv_gst.c: + * ext/mikmod/gstmikmod.c: + * ext/mikmod/gstmikmod.h: + * ext/mikmod/mikmod_reader.c: + * ext/mikmod/mikmod_types.c: + * ext/mikmod/mikmod_types.h: + * ext/pango/Makefile.am: + * ext/pango/gsttextoverlay.c: + * ext/pango/gsttextoverlay.h: + * ext/pango/gsttimeoverlay.c: + * ext/pango/gsttimeoverlay.h: + * ext/raw1394/Makefile.am: + * ext/raw1394/gst1394.c: + * ext/raw1394/gstdv1394src.c: + * ext/raw1394/gstdv1394src.h: + * ext/shout2/Makefile.am: + * ext/shout2/gstshout2.c: + * ext/shout2/gstshout2.h: + * ext/speex/Makefile.am: + * ext/speex/gstspeex.c: + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.c: + * ext/speex/gstspeexenc.h: + * gst/avi/.cvsignore: + * gst/avi/Makefile.am: + * gst/avi/README: + * gst/avi/avi-ids.h: + * gst/avi/avi.vcproj: + * gst/avi/gstavi.c: + * gst/avi/gstavidemux.c: + * gst/avi/gstavidemux.h: + * gst/avi/gstavimux.c: + * gst/avi/gstavimux.h: + * gst/level/gstlevel.c: (gst_level_transform): + * sys/Makefile.am: + * sys/oss/.cvsignore: + * sys/oss/Makefile.am: + * sys/oss/gst-i18n-plugin.h: + * sys/oss/gstossaudio.c: + * sys/oss/gstossdmabuffer.c: + * sys/oss/gstossdmabuffer.h: + * sys/oss/gstosshelper.c: + * sys/oss/gstosshelper.h: + * sys/oss/gstossmixer.c: + * sys/oss/gstossmixer.h: + * sys/oss/gstossmixerelement.c: + * sys/oss/gstossmixerelement.h: + * sys/oss/gstossmixertrack.c: + * sys/oss/gstossmixertrack.h: + * sys/oss/gstosssink.c: + * sys/oss/gstosssink.h: + * sys/oss/gstosssrc.c: + * sys/oss/gstosssrc.h: + * sys/oss/oss_probe.c: + * sys/osxaudio/Makefile.am: + * sys/osxaudio/gstosxaudio.c: + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxaudioelement.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxaudio/gstosxaudiosrc.h: + * sys/osxvideo/Makefile.am: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + all these plugins are moved to gst-plugins-good + +2005-08-28 Flavio Oliveira + + * gst/wavenc/gstwavenc.c: Ported to GStreamer 0.9. + Need to fix performance issues. + +2005-08-28 Andy Wingo + + * Updates for two-arg init from GST_BOILERPLATE. + + * ext/ladspa/gstsignalprocessor.c (gst_signal_processor_init): Use + the second arg for the class, because G_OBJECT_GET_CLASS (self) + returns the wrong thing. + (gst_signal_processor_add_pad_from_template): Make pads of the + right type. + + * ext/ladspa/gstladspa.c (gst_ladspa_class_get_param_spec): Make + writable param specs G_PARAM_CONSTRUCT so default values work. + (gst_ladspa_init): Use the second arg for the class. + +2005-08-26 Andy Wingo + + * ext/ladspa/gstladspa.c: + * ext/ladspa/gstladspa.h: Finish porting, still doesn't work but + it does compile and register. I have more features than you. + + * ext/ladspa/gstsignalprocessor.h: + * ext/ladspa/gstsignalprocessor.c: Updates, bug fixen. + +2005-08-26 Thomas Vander Stichele + + * gst/effectv/gstquark.c: (gst_quarktv_init), + (gst_quarktv_change_state): + do proper cleanup/creation, fixes state changes + +2005-08-25 Jan Schmidt + + * gst/level/gstlevel.c: (gst_level_message_new): + Revert unpopular change for GST_MESSAGE_SRC to GObject. + +2005-08-25 Andy Wingo + + * ext/ladspa/gstladspa.h: + * ext/ladspa/gstladspa.c: Halfway-ported. Doesn't compile yet. + + * ext/ladspa/gstsignalprocessor.h: + * ext/ladspa/gstsignalprocessor.c: New files, the start of a base + class for DSP elements. + + * configure.ac: Sort the external libs checks, add a ladspa check, + output the ladspa makefile. + +2005-08-25 Owen Fraser-Green + + * gst/realmedia/rmdemux.c (gst_rmdemux_loop, gst_rmdemux_chain): + Fixed EOS. + (gst_rmdemux_parse_indx_data, gst_rmdemux_parse_indx): Handle + malformed index headers where the packet size is incorrect. + +2005-08-24 Andy Wingo + + * ext/dv/gstdvdemux.c (gst_dvdemux_demux_frame): Send out valid + segment end timestamps. + +2005-08-24 Thomas Vander Stichele + + * configure.ac: + * ext/Makefile.am: + lame and mpegaudioparse seem to work + * gst/videobox/gstvideobox.c: (gst_video_box_class_init), + (gst_video_box_transform_caps), (gst_video_box_get_unit_size): + update for basetransform changes + +2005-08-24 Jan Schmidt + * gst/level/gstlevel.c: (gst_level_message_new): + GST_MESSAGE_SRC became a GObject + +2005-08-23 Stefan Kost + + * ext/speex/gstspeexenc.h: + Fixed include path of adapter + +2005-08-23 Wim Taymans + + * ext/speex/gstspeexdec.c: (gst_speex_dec_class_init): + * ext/speex/gstspeexenc.c: (gst_speexenc_class_init): + Fix property warning. + +2005-08-23 Wim Taymans + + * gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init), + (gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain): + * gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init), + (gst_rtpamrenc_init), (gst_rtpamrenc_chain): + * gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init), + (gst_rtph263penc_flush), (gst_rtph263penc_chain): + Small updates, RFC reference to payload encoders. + +2005-08-23 Ronald S. Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/speex/Makefile.am: + * ext/speex/gstspeex.c: (plugin_init): + * ext/speex/gstspeexdec.c: (speex_get_query_types), + (gst_speex_dec_init), (speex_dec_src_query), (speex_dec_src_event), + (speex_dec_event), (speex_dec_chain): + Port speexdec. Leads to some unfamiliar warnings on console, + but works otherwise. + +2005-08-23 Andy Wingo + + * sys/oss/gstosssrc.c (gst_oss_src_open): Set the device-name + property after opening the mixer. + + * sys/oss/gstosssrc.c: + * sys/oss/gstosssrc.h: Easy to implement a mixer, eh... + + * sys/oss/gstossmixerelement.h: + * sys/oss/gstossmixerelement.c: Added mixer element like + alsamixer. + + * sys/oss/Makefile.am: + * sys/oss/gstossaudio.c: Register the ossmixer element. + + * sys/oss/gstossmixer.h: + * sys/oss/gstossmixer.c: Refactored to be more like alsamixer. + + * sys/oss/gstossmixertrack.h: + * sys/oss/gstossmixertrack.c: Split out from gstossmixer.[ch], + like gstalsamixer. + + * sys/oss/gstosssrc.c: + * sys/oss/gstosssink.c: Where before we used a gstosselement + object as a helper library, now just call functions from + gstosshelper. + + * sys/oss/gstosshelper.h: + * sys/oss/gstosshelper.c: Made a real library. Removed + propertyprobe for now, should add it back later. + + * sys/oss/gstosselement.h: + * sys/oss/gstosselement.c: Removed, we don't have a shared base + class. + + * sys/oss/gstosshelper.c (gst_oss_helper_probe_caps): Search + higher-to-lower, makes 16 bit appear earlier in the caps, which + makes it preferred. + + * sys/oss/gstosssrc.h: + * sys/oss/gstosssrc.c: Totally ported, dude. + + * sys/oss/Makefile.am: + * sys/oss/gstossaudio.c: Add osssrc. + + * sys/oss/gstosssink.c: We do native byte order. + +2005-08-23 Owen Fraser-Green + + * gst/realmedia/rmdemux.c (gst_rmdemux_src_event): Fixed bug + causing events to be passed wrong way. + (gst_rmdemux_parse_packet): Avoid accidentally skipping audio. + +2005-08-22 Jan Schmidt + + * ext/mad/gstid3tag.c: (gst_id3_tag_init), + (gst_id3_tag_sink_event), (gst_id3_tag_do_caps_nego), + (gst_id3_tag_chain), (gst_id3_tag_change_state), (plugin_init): + Works a bit better now, but still needs a rewrite to use + get_range instead of this seeking nastiness. + +2005-08-22 Ronald S. Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/flac/Makefile.am: + * ext/flac/gstflac.c: (plugin_init): + * ext/flac/gstflacdec.c: (flacdec_get_type), (gst_flacdec_init), + (gst_flacdec_update_metadata), (gst_flacdec_seek), + (gst_flacdec_tell), (gst_flacdec_length), (gst_flacdec_read), + (gst_flacdec_write), (gst_flacdec_loop), + (gst_flacdec_get_src_query_types), (gst_flacdec_src_query), + (gst_flacdec_src_event), (gst_flacdec_sink_activate), + (gst_flacdec_sink_activate_pull), (gst_flacdec_change_state): + * ext/flac/gstflacdec.h: + Port flacdec (seeking is still slow'ish). + +2005-08-22 Owen Fraser-Green + + * gst/realmedia/rmdemux.c: + (gst_rmdemux_perform_seek, gst_rmdemux_parse_packet): + Seeking improvements. + +2005-08-19 Wim Taymans + + * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_class_init): + Remove get_time code that is both wrong and unneeded. + +2005-08-19 Wim Taymans + + * gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init), + (gst_rtph263penc_flush), (gst_rtph263penc_chain), + (gst_rtph263penc_set_property), (gst_rtph263penc_get_property): + * gst/rtp/gstrtph263penc.h: + Added configurable pt and ssrc, to be merged in the caps or + a base class... + +2005-08-19 Wim Taymans + + * gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_init), + (gst_rtph263pdec_chain): + * gst/rtp/gstrtph263penc.c: (gst_rtph263penc_class_init), + (gst_rtph263penc_flush), (gst_rtph263penc_chain): + Some cleanups in the h263p (de)payloaders. + +2005-08-19 Wim Taymans + + * ext/amrnb/amrnbdec.c: + * ext/amrnb/amrnbenc.c: (gst_amrnbenc_setcaps): + * ext/amrnb/amrnbparse.c: + Update caps with audio/AMR. + + * gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init), + (gst_rtpamrdec_sink_setcaps), (gst_rtpamrdec_chain), + (gst_rtpamrdec_change_state): + * gst/rtp/gstrtpamrdec.h: + * gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init), + (gst_rtpamrenc_init), (gst_rtpamrenc_chain): + Dont set FT headers twice, it was already in the encoded + bitstream. + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open), + (gst_rtspsrc_close), (gst_rtspsrc_play): + * gst/rtsp/rtspconnection.c: (parse_line): + Cleanups + + * gst/udp/gstudpsrc.c: (gst_udpsrc_class_init), + (gst_udpsrc_create), (gst_udpsrc_set_property), + (gst_udpsrc_get_property): + * gst/udp/gstudpsrc.h: + Added caps property, we need this soon to type the buffers. + +2005-08-18 Wim Taymans + + * gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_init), + (gst_rtpamrdec_chain): + Fix up amr depayloader a bit. + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open), + (gst_rtspsrc_close), (gst_rtspsrc_play): + Look for options result in Public and Allow header fields.. + spec says Allow but some servers return Public... + +2005-08-18 Wim Taymans + + * gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_class_init), + (gst_rtpamrenc_init), (gst_rtpamrenc_chain), + (gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property): + * gst/rtp/gstrtpamrenc.h: + Added payload_type and ssrc properties to the payloader. + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open), + (gst_rtspsrc_close), (gst_rtspsrc_play): + Options need to be stripped and are in the Public header field. + + * gst/rtsp/rtspurl.c: (rtsp_url_parse): + Fix url / parsing... + + +2005-08-18 Wim Taymans + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: (plugin_init): + * gst/rtp/gstrtpamrdec.c: (gst_rtpamrdec_get_type), + (gst_rtpamrdec_base_init), (gst_rtpamrdec_class_init), + (gst_rtpamrdec_init), (gst_rtpamrdec_chain), + (gst_rtpamrdec_set_property), (gst_rtpamrdec_get_property), + (gst_rtpamrdec_change_state), (gst_rtpamrdec_plugin_init): + * gst/rtp/gstrtpamrdec.h: + * gst/rtp/gstrtpamrenc.c: (gst_rtpamrenc_get_type), + (gst_rtpamrenc_base_init), (gst_rtpamrenc_class_init), + (gst_rtpamrenc_init), (gst_rtpamrenc_chain), + (gst_rtpamrenc_set_property), (gst_rtpamrenc_get_property), + (gst_rtpamrenc_change_state), (gst_rtpamrenc_plugin_init): + * gst/rtp/gstrtpamrenc.h: + * gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_class_init), + (gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain): + Added very simplistic amr payloader. depayloader does not + work yet. + +2005-08-18 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_send), (gst_rtspsrc_open), + (gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause), + (gst_rtspsrc_change_state): + * gst/rtsp/gstrtspsrc.h: + * gst/rtsp/rtspdefs.c: (rtsp_method_as_text), (rtsp_find_method): + * gst/rtsp/rtspdefs.h: + * gst/rtsp/rtsptransport.c: (rtsp_transport_parse): + Handle RTSP defaults better. + Issue OPTIONS request to figure out what we are allowed to do. + Make the methods a bitfield so we can easily collect supported + options. + Fix rtsp_find_method. + Do proper RTSP connection shutdown. + +2005-08-18 Wim Taymans + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp-common.h: + * gst/rtp/gstrtp.c: (plugin_init): + * gst/rtp/gstrtpL16enc.h: + * gst/rtp/gstrtpdec.c: (gst_rtpdec_get_type), + (gst_rtpdec_class_init), (gst_rtpdec_chain_rtp), + (gst_rtpdec_chain_rtcp), (gst_rtpdec_change_state), + (gst_rtpdec_plugin_init): + * gst/rtp/gstrtph263pdec.c: (gst_rtph263pdec_get_type), + (gst_rtph263pdec_base_init), (gst_rtph263pdec_class_init), + (gst_rtph263pdec_init), (gst_rtph263pdec_chain), + (gst_rtph263pdec_set_property), (gst_rtph263pdec_get_property), + (gst_rtph263pdec_change_state), (gst_rtph263pdec_plugin_init): + * gst/rtp/gstrtph263pdec.h: + * gst/rtp/gstrtph263penc.c: (gst_rtph263penc_get_type), + (gst_rtph263penc_base_init), (gst_rtph263penc_class_init), + (gst_rtph263penc_init), (gst_rtph263penc_flush), + (gst_rtph263penc_chain), (gst_rtph263penc_set_property), + (gst_rtph263penc_get_property), (gst_rtph263penc_change_state), + (gst_rtph263penc_plugin_init): + * gst/rtp/gstrtph263penc.h: + * gst/rtp/gstrtpmpadec.c: (gst_rtpmpadec_get_type), + (gst_rtpmpadec_base_init), (gst_rtpmpadec_class_init), + (gst_rtpmpadec_init), (gst_rtpmpadec_chain), + (gst_rtpmpadec_set_property), (gst_rtpmpadec_get_property), + (gst_rtpmpadec_change_state), (gst_rtpmpadec_plugin_init): + * gst/rtp/gstrtpmpadec.h: + * gst/rtp/gstrtpmpaenc.c: (gst_rtpmpaenc_get_type), + (gst_rtpmpaenc_base_init), (gst_rtpmpaenc_class_init), + (gst_rtpmpaenc_init), (gst_rtpmpaenc_flush), (gst_rtpmpaenc_chain), + (gst_rtpmpaenc_set_property), (gst_rtpmpaenc_get_property), + (gst_rtpmpaenc_change_state), (gst_rtpmpaenc_plugin_init): + * gst/rtp/gstrtpmpaenc.h: + * gst/rtp/rtp-packet.c: + * gst/rtp/rtp-packet.h: + Remove old code that is now in gst-libs/gst/rtp/. + Added some payload/depayloaders. + + * gst/udp/gstudpsink.c: (gst_udpsink_class_init): + Fix port number range. + +2005-08-17 Wim Taymans + + * configure.ac: + Added mpegaudioparse + + * ext/lame/gstlame.c: (gst_lame_src_getcaps), + (gst_lame_src_setcaps), (gst_lame_sink_setcaps), + (gst_lame_sink_event), (gst_lame_chain): + Some cleanups. + Fix memleak. + + * gst/mpegaudioparse/gstmpegaudioparse.c: + (gst_mp3parse_class_init), (gst_mp3parse_init), + (gst_mp3parse_chain), (gst_mp3parse_change_state): + * gst/mpegaudioparse/gstmpegaudioparse.h: + Ported mpegaudioparse + +2005-08-17 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_open), (gst_rtspsrc_play): + Support absolute control urls too. + +2005-08-16 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_parse_stream), + (gst_avi_demux_stream_header): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_add_stream), (qtdemux_parse_tree): + Uncomment metadata and codec-name handling. + +2005-08-16 Wim Taymans + + * configure.ac: + * ext/amrnb/amrnbparse.c: (gst_amrnbparse_read_header): + Fix compile warning. + + * ext/lame/gstlame.c: (gst_lame_class_init), + (gst_lame_src_getcaps), (gst_lame_src_setcaps), + (gst_lame_sink_setcaps), (gst_lame_init), (gst_lame_sink_event), + (gst_lame_chain), (gst_lame_change_state): + * ext/lame/gstlame.h: + Port lame plugin + +2005-08-16 Andy Wingo + + * ext/dv/gstdvdemux.c (gst_dvdemux_flush): Use gst_adapter_take so + we have our own copy of the data. + (gst_dvdemux_demux_video): Set the take() data as malloc_data so + it will get freed later. + + * ext/raw1394/gstdv1394src.c (gst_dv1394src_iso_receive): Note + license info in the source code -- was only in the commit log + before. + + * ext/dv/gstdvdec.h: + * ext/dv/gstdvdec.c: Only decodes systemstream=FALSE dv video -- + old pipelines using dvdec should probably have a dvdemux first. + + * ext/dv/gstdvdemux.h: + * ext/dv/gstdvdemux.c: Split out from dvdec, chunks the incoming + systemstream=TRUE data into frames, sets caps data, and spits out + PCM audio in addition to systemstream=FALSE video frames. Operates + in chain mode only for now; should make a getrange version as + well. + + * ext/dv/gstdv.c: New file, registers the libgstdv plugin. + + * ext/dv/Makefile.am: Library name changed to libgstdv. Split + dvdec into dvdemux and dvdec. + +2005-08-16 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_event), (gst_faad_chain): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + Handle _push() return values. + +2005-08-15 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_event): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + Fix debug. + +2005-08-15 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak), + (qtdemux_video_caps): + Forwardport from 0.8 to implement RLE. + +2005-08-15 Wim Taymans + + * gst/rtsp/README: + Added rtsp server implementation docs. + +2005-08-14 Thomas Vander Stichele + + * ext/aalib/gstaasink.c: + aalib is LGPL, so this plugin can be LGPL + * ext/arts/gst_arts.c: (plugin_init): + rename, we don't like underscores + * ext/audiofile/gstaf.c: + * ext/sndfile/gstsf.c: + rename, we like a descriptive plugin name + * ext/gconf/gstgconfelements.c: + change description a little + * ext/musicbrainz/gsttrm.c: + musicbrainz is LGPL, so plugin can be LGPL + * ext/raw1394/gst1394.c: + rename, we like all-digit names + * gst/equalizer/gstiirequalizer.c: + * gst/fdsrc/gstfdsrc.c: + * gst/multifilesink/gstmultifilesink.c: + rename + * gst/virtualdub/gstvirtualdub.c: + use GST_PLUGIN_DEFINE + * sys/dxr3/dxr3init.c: + only uses system headers, and code is LGPL, so plugin is LGPL + +2005-08-13 Tim-Philipp Müller + + * ext/mad/Makefile.am: + * gst/avi/Makefile.am: + * gst/effectv/Makefile.am: + * gst/udp/Makefile.am: + * gst/wavparse/Makefile.am: + Use -lgstfoo-@GST_MAJORMINOR@ instead of -lgstfoo-0.9 + +2005-08-12 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_decode_indirect), + (gst_jpeg_dec_decode_direct), (gst_jpeg_dec_chain): + Fix decoding of pictures with certain uneven or unaligned + widths where jpeglib needs more horizontal padding than our + I420 buffers provide, resulting in blocky artifacts at the + left side of the picture (#164176). + Also make use of our shiny new GST_ROUND_N() macros. + +2005-08-11 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), (gst_jpeg_dec_chain), + (gst_jpeg_dec_change_state): + * ext/jpeg/gstjpegdec.h: + Fix crashes/invalid memory access for pictures that have a height + that is not a multiple of 16 (or rather: v_samp_factor * DCTSIZE). + + Also fix the state change function for downwards state changes + (need to chain up to parent before destroying our resources, to + make sure pads get deactivated and our chain function isn't + running and using those very same resources in another thread). + + The jpeg line buffer only needs to be v_samp_factor*DCTSIZE lines + per plane, not picture_height lines; allocate that on the stack. + +2005-08-10 Tim-Philipp Müller + + * gst/wavparse/gstwavparse.c: (gst_wavparse_stream_headers), + (gst_wavparse_stream_data): + Add some fixes from 0.8 branch: allow 24/32bps songs and + blockalign samples to the header-specified size, if any + (#311070); error out on channels==0 or bitrate==0 + (#309043, #304588). + +2005-08-10 Thomas Vander Stichele + + * gst/level/gstlevel.c: (gst_level_init), (gst_level_set_caps), + (gst_level_transform): + * gst/level/gstlevel.h: + remove unused MS struct member + don't reset the CS values for channels on every _chain, so that + level actually correctly calculates the RMS value. sigh. + calculate RMS values correctly for peak and decay peak sums; + before we were signalling them as if they already were amplitude + and not power values. sigh. + Remind me to not try and pretend I'm writing DSP code. + +2005-08-10 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_class_init), (gst_faad_setcaps): + Add debug category, remove Close() call that made it crash + whenever reusing, renegotiating or anything; Close() actually + free()s the handle and should only be called on READY->NULL. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header): + Actually set caps on buffer (in addition to pad), also. + +2005-08-10 Owen Fraser-Green + + * gst/realmedia/rmdemux.c (gst_rmdemux_sink_activate) + (gst_rmdemux_sink_activate_push, gst_rmdemux_sink_activate_pull) + (gst_rmdemux_loop, gst_rmdemux_src_event) + (gst_rmdemux_perform_seek, gst_rmdemux_src_query): Implemented + push-pull and seeking. + +2005-08-09 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_event): + Sign/unsign mismatch. + * configure.ac: + * gst/qtdemux/qtdemux.c: (gst_qtdemux_class_init), + (gst_qtdemux_init), (gst_qtdemux_get_src_query_types), + (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event), + (plugin_init), (gst_qtdemux_handle_sink_event), + (gst_qtdemux_change_state), (gst_qtdemux_loop_header), + (qtdemux_sink_activate), (qtdemux_sink_activate_pull), + (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree), + (qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps): + * gst/qtdemux/qtdemux.h: + Half-assed port (hey, it works). + +2005-08-09 Tim-Philipp Müller + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_header): + Fix AVI header parsing: add missing break statement after + GST_RIFF_INFO_LIST parsing code; gst_riff_read_chunk() has + already advanced the avi->offset, no need to do it twice + (fixes MovieOfMovies.avi). + +2005-08-09 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), + (gst_jpeg_dec_setcaps), (gst_jpeg_dec_chain), + (gst_jpeg_dec_change_state): + * ext/jpeg/gstjpegdec.h: + Make mjpeg actually work and skip jpeg data parsing if we + know that the input is packetized (ie. each input buffer + is exactly one jpeg frame). + +2005-08-09 Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_init), (gst_mad_chain): + It'd be nice if I could listen to my mp3 files, so send out an + initial discont, as the sink apparently wants. + +2005-08-09 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), + (gst_avi_demux_handle_seek): + Fix seeking (or, well, fix threading issue where a variable was + set before a lock was taken and was already unset before that + same lock was taken and was thus no longer in existance when it + actually had to be used). + +2005-08-09 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): + Mixing binary and logical operators is not going to work; fix + position-querying in Totem. + +2005-08-08 Tim-Philipp Müller + + * ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_class_init), + (gst_faad_init), (gst_faad_setcaps), (gst_faad_srcgetcaps), + (gst_faad_event), (gst_faad_update_caps), (gst_faad_chain), + (gst_faad_change_state): + * ext/faad/gstfaad.h: + Fix negotiation (#310932) and miscellaneous other stuff. Probably + still needs some more work. + +2005-08-08 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_init), + (gst_jpeg_dec_setcaps), (gst_jpeg_dec_chain): + Add setcaps() function (for mjpeg). + +2005-08-08 Andy Wingo + + * ext/esd/esdsink.c (gst_esdsink_getcaps): Seems that wierd + va_list caps setting function was borked. Fixed esdsink. + + * sys/oss/gstosssink.c (gst_oss_sink_open, gst_oss_sink_close) + (gst_oss_sink_prepare, gst_oss_sink_unprepare): Update for newer + audiosink api. + + * ext/raw1394/gstdv1394src.c (gst_dv1394src_get_property) + (gst_dv1394src_set_property): Style. All about the style. + + * ext/esd/esdsink.c (gst_esdsink_getcaps): Return specific caps + only if in READY or higher (i.e., if _open() has been called.) + (gst_esdsink_open, gst_esdsink_close, gst_esdsink_prepare) + (gst_esdsink_unprepare): Update for audiosink changes. + (gst_esdsink_change_state): Die! + +2005-08-08 Ronald S. Bultje + + * ext/jpeg/Makefile.am: + Fix compile. + +2005-08-08 Tim-Philipp Müller + + * configure.ac: + * ext/Makefile.am: + * ext/jpeg/Makefile.am: + * ext/jpeg/gstjpeg.c: (plugin_init): + * ext/jpeg/gstjpegdec.c: (gst_jpeg_dec_get_type), + (gst_jpeg_dec_finalize), (gst_jpeg_dec_base_init), + (gst_jpeg_dec_class_init), (gst_jpeg_dec_fill_input_buffer), + (gst_jpeg_dec_init_source), (gst_jpeg_dec_skip_input_data), + (gst_jpeg_dec_resync_to_restart), (gst_jpeg_dec_term_source), + (gst_jpeg_dec_my_output_message), (gst_jpeg_dec_my_emit_message), + (gst_jpeg_dec_my_error_exit), (gst_jpeg_dec_init), + (is_jpeg_start_marker), (is_jpeg_end_marker), + (gst_jpeg_dec_find_jpeg_header), (gst_jpeg_dec_ensure_header), + (gst_jpeg_dec_have_end_marker), + (gst_jpeg_dec_parse_tag_has_entropy_segment), + (gst_jpeg_dec_parse_image_data), (gst_jpeg_dec_chain), + (gst_jpeg_dec_change_state): + * ext/jpeg/gstjpegdec.h: + Port jpegdec to 0.9; handles 'progressive loading' now, ie. input does + no longer need to be one single buffer. + +2005-08-04 Andy Wingo + + * sys/oss/gstossaudio.c (plugin_init): Second-class citizen. + + * gst/videobox/gstvideobox.c (gst_video_box_get_size): Update for + API changes. + + * configure.ac (DEFAULT_AUDIOSINK, DEFAULT_VIDEOSINK): Set to + autoaudiosink and autovideosink. + +2005-08-04 Edward Hervey + + * gst/avi/gstavidemux.c: (gst_avi_demux_reset), + (gst_avi_demux_parse_stream), (gst_avi_demux_process_next_entry): + You need to allocatate (len+1) characters to store a len size string. + Also don't stop the processing task if the output pad is not linked. + +2005-08-03 Ronald S. Bultje + + * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_reset), + (gst_gconf_audio_sink_init), (do_toggle_element), + (cb_toggle_element), (gst_gconf_audio_sink_change_state): + * ext/gconf/gstgconfaudiosink.h: + * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_reset), + (gst_gconf_video_sink_init), (do_toggle_element), + (cb_toggle_element), (gst_gconf_video_sink_change_state): + * ext/gconf/gstgconfvideosink.h: + * gst/autodetect/gstautoaudiosink.c: (gst_auto_audio_sink_reset), + (gst_auto_audio_sink_init), (gst_auto_audio_sink_detect), + (gst_auto_audio_sink_change_state): + * gst/autodetect/gstautoaudiosink.h: + * gst/autodetect/gstautovideosink.c: (gst_auto_video_sink_reset), + (gst_auto_video_sink_init), (gst_auto_video_sink_detect), + (gst_auto_video_sink_change_state): + * gst/autodetect/gstautovideosink.h: + Use new ghostpad API; now they actually work in Totem, also. + +2005-08-03 Ronald S. Bultje + + * ext/libpng/Makefile.am: + Fix uninstalled build. + +2005-08-02 Edward Hervey + + * configure.ac: + * ext/Makefile.am: + * ext/libpng/Makefile.am: + * ext/libpng/gstpng.c: + * ext/libpng/gstpngenc.c: + Ported pngenc , still have to port pngdec... + +2005-08-01 Stefan Kost + + reviewed by: + + * configure.ac: + * ext/ladspa/Makefile.am: + * ext/ladspa/gstladspa.c: (gst_ladspa_init), (gst_ladspa_loop), + (gst_ladspa_chain), (gst_ladspa_get), (plugin_init): + * ext/ladspa/gstladspa.h: + deactivate and remove dparams (libgstcontrol) + +2005-07-27 Wim Taymans + + * ext/faad/gstfaad.c: (gst_faad_event): + Compile fixes. + +2005-07-27 Wim Taymans + + * ext/amrnb/amrnbparse.c: (gst_amrnbparse_event), + (gst_amrnbparse_loop): + * ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event), + (gst_dvdec_handle_src_event), (gst_dvdec_decode_frame): + * ext/mad/gstid3tag.c: (gst_id3_tag_src_event), + (gst_id3_tag_sink_event), (gst_id3_tag_chain): + * ext/mad/gstmad.c: (gst_mad_src_query), (index_seek), + (normal_seek), (gst_mad_sink_event), (gst_mad_chain): + * ext/mpeg2dec/gstmpeg2dec.c: + * ext/shout2/gstshout2.c: (gst_shout2send_event): + * ext/sidplay/gstsiddec.cc: + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event), + (gst_avi_demux_send_event), (gst_avi_demux_stream_header), + (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry): + * gst/goom/gstgoom.c: (gst_goom_event): + * gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event), + (gst_rmdemux_chain), (gst_rmdemux_send_event), + (gst_rmdemux_add_stream): + * gst/wavparse/gstwavparse.c: (gst_wavparse_handle_seek), + (gst_wavparse_stream_headers), (gst_wavparse_stream_data), + (gst_wavparse_loop), (gst_wavparse_srcpad_event): + Various event updates and cleanups. + +2005-07-25 Christian Schaller + + + * gst-plugins.spec.in: add silence and videoflip + * gst/videofilter/Makefile.am: add missing header to noinst + +2005-07-25 Thomas Vander Stichele + + * gst/videofilter/Makefile.am: + * gst/videofilter/gstgamma.c: (gst_gamma_setup): + * gst/videofilter/gstvideobalance.c: (gst_videobalance_setup): + * gst/videofilter/gstvideofilter.c: (gst_videofilter_class_init), + (gst_videofilter_getcaps), (gst_videofilter_setcaps), + (gst_videofilter_init), (gst_videofilter_chain), + (gst_videofilter_set_property), (gst_videofilter_get_property), + (gst_videofilter_setup), (gst_videofilter_class_add_pad_templates): + * gst/videofilter/gstvideofilter.h: + * gst/videofilter/gstvideoflip.c: (gst_videoflip_init), + (gst_videoflip_set_property), (gst_videoflip_get_property), + (plugin_init), (gst_videoflip_setup), (gst_videoflip_planar411): + forward port from 0.9 and enable videoflip now that it works + +2005-07-23 Edward Hervey + + * configure.ac: + * gst/silence/Makefile.am: + * gst/silence/gstsilence.h: + * gst/silence/gstsilence.c: + Ported silence to 0.9 using GstBaseSrc ... 180 lines :) + +2005-07-22 Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_src_event): + First try forwarding events, makes seeking in AVI files with mp3 + audio work again. + +2005-07-20 Andy Wingo + + * ext/mpeg2dec/gstmpeg2dec.c (gst_mpeg2dec_sink_event): Signedness + fix. + +2005-07-20 Edward Hervey + + * configure.ac: + * gst/wavparse/gstwavparse.c: + * gst/wavparse/gstwavparse.h: + * gst/wavparse/Makefile.am: + Ported wavparse to 0.9 . Playing, seeking and state changes work. + Could need more loving on the headers though. + +2005-07-20 Ronald S. Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/gconf/Makefile.am: + * ext/gconf/gconf.c: (gst_bin_find_unconnected_pad), + (gst_gconf_render_bin_from_description), + (gst_gconf_get_default_video_sink): + * ext/gconf/gstgconfaudiosink.c: (gst_gconf_audio_sink_base_init), + (gst_gconf_audio_sink_class_init), (gst_gconf_audio_sink_dispose), + (cb_toggle_element), (gst_gconf_audio_sink_change_state): + * ext/gconf/gstgconfelements.h: + * ext/gconf/gstgconfvideosink.c: (gst_gconf_video_sink_base_init), + (gst_gconf_video_sink_class_init), (gst_gconf_video_sink_dispose), + (cb_toggle_element), (gst_gconf_video_sink_change_state): + * gst/autodetect/gstautoaudiosink.c: + (gst_auto_audio_sink_base_init), (gst_auto_audio_sink_class_init), + (gst_auto_audio_sink_detect), (gst_auto_audio_sink_change_state): + * gst/autodetect/gstautovideosink.c: + (gst_auto_video_sink_base_init), (gst_auto_video_sink_class_init), + (gst_auto_video_sink_find_best), (gst_auto_video_sink_detect): + Port auto/gconfsinks to 0.9. They actually appear to work here in + Totem as well, making them actually useful. + +2005-07-20 Ronald S. Bultje + + * ext/faad/Makefile.am: + Fix uninstalled build. + +2005-07-19 Wim Taymans + + * sys/oss/gstosssink.c: (gst_oss_sink_get_format), + (gst_oss_sink_open): + Parse spec to set correct oss values. + +2005-07-19 Edgard N. A. G. Lima + + * configure.ac + * ext/Makefile.am + * ext/amrnb/amrnbdec.c + * ext/amrnb/amrnbenc.c + * ext/amrnb/amrnbparse.c + * ext/faad/gstfaad.c + * ext/mpeg2dec/gstmpeg2dec.c + Ported amrnb, faad, mpeg2dec to 0.9 + +2005-07-19 Andy Wingo + + * ext/dv/gstdvdec.c (gst_dvdec_decode_video): Set the proper + framerate on the outbound buffer. + + * ext/dv/gstdvdec.c (gst_dvdec_decode_video): Don't clobber + alloc_buffer's return value. + (gst_dvdec_decode_frame): Handle unlinked pads with grace and + agility. + + * ext/dv/gstdvdec.h: Fix signedness error. + +2005-07-19 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert), + (gst_dvdec_sink_convert), (gst_dvdec_get_src_query_types), + (gst_dvdec_src_query), (gst_dvdec_get_sink_query_types), + (gst_dvdec_sink_query), (gst_dvdec_send_event), + (gst_dvdec_handle_sink_event), (gst_dvdec_handle_src_event), + (gst_dvdec_decode_audio), (gst_dvdec_decode_video), + (gst_dvdec_decode_frame), (gst_dvdec_flush), (gst_dvdec_chain): + * ext/dv/gstdvdec.h: + Implemented seeking in dvdec. + +2005-07-19 Andy Wingo + + * ext/Makefile.am: Enable dvdev and raw1394src. + +2005-07-18 Andy Wingo + + * configure.ac: Use AS_LIBTOOL_TAGS. Fix crap gettext commit + comment. + +2005-07-18 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtspsrc_add_element), + (gst_rtspsrc_play): + Fix for core changes. + +2005-07-18 Jan Schmidt + + * ext/mad/gstid3tag.c: (gst_id3_tag_sink_event): + When returning to NORMAL state after reading tags, + pass on the discont event. + +2005-07-18 Wim Taymans + + * gst/realmedia/rmdemux.c: (gst_rmdemux_sink_event), + (gst_rmdemux_change_state), (gst_rmdemux_chain), + (gst_rmdemux_get_stream_by_id), (gst_rmdemux_send_event), + (gst_rmdemux_add_stream): + Send discont event before pushing first buffer. + +2005-07-17 Philippe Khalaf + + * gst/fdsrc/gstfdsrc.c: + Removed #include + +2005-07-16 Philippe Khalaf + + * gst/fdsrc/gstfdsrc.c: + * gst/fdsrc/gstfdsrc.h: + * gst/fdsrc/Makefile.am: + Moved fdsrc 0.9 port from gstreamer/gst/elements to here. + +2005-07-16 Wim Taymans + + * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_sink_event), + (gst_mad_chain): + Add convert function for proper timestamp calculations. + + * gst/avi/gstavidemux.c: (gst_avi_demux_send_event), + (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), + (gst_avi_demux_process_next_entry), (gst_avi_demux_loop): + Send out initial discont. + +2005-07-15 Wim Taymans + + * gst/level/gstlevel.c: (gst_level_transform): + * gst/videobox/gstvideobox.c: (gst_video_box_class_init), + (gst_video_box_get_size), (gst_video_box_transform): + Port to new base class. + +2005-07-14 Wim Taymans + + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type), + (gst_dv1394src_class_init), (gst_dv1394src_init), + (gst_dv1394src_iso_receive), (gst_dv1394src_create), + (gst_dv1394src_change_state), (gst_dv1394src_query): + It's PUSH_SRC now. + +2005-07-14 Thomas Vander Stichele + + * gst/udp/gstudpsrc.c: (gst_udpsrc_get_type), + (gst_udpsrc_class_init): + more autistic cleanliness in functions/names/defines + + +2005-07-10 Thomas Vander Stichele + + * ext/aalib/gstaasink.c: (gst_aasink_get_type), + (gst_aasink_class_init), (gst_aasink_init): + * ext/esd/esdsink.c: (gst_esdsink_get_type), + (gst_esdsink_class_init): + * ext/libcaca/gstcacasink.c: (gst_cacasink_get_type), + (gst_cacasink_class_init), (gst_cacasink_init): + * ext/shout2/gstshout2.c: (gst_shout2send_get_type), + (gst_shout2send_class_init), (gst_shout2send_init): + * gst/udp/gstdynudpsink.c: (gst_dynudpsink_get_type), + (gst_dynudpsink_class_init): + * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type), + (gst_multiudpsink_class_init): + more macro splitting + +2005-07-08 Andy Wingo + + * sys/oss/: Port from THREADED+wim's fixes. + + * gst/avi/Makefile.am (libgstavi_la_CFLAGS): No gettext hacks, the + defines come from config.h. + + * autogen.sh: Run autopoint, etc. + + * Makefile.am (DIST_SUBDIRS, SUBDIRS): Go into po/. + + * configure.ac: Add gettext stuff. + +2005-07-07 Wim Taymans + + * gst/videobox/gstvideobox.c: (gst_video_box_init), + (gst_video_box_transform_caps), (gst_video_box_set_caps): + Logic was reversed. Needs some more fixes in the transform + function to include AYUV output. + Moved AYUV as prefered format. + +2005-07-07 Wim Taymans + + * configure.ac: + * ext/dv/Makefile.am: + * ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init), + (gst_dvdec_get_src_query_types), (gst_dvdec_src_query), + (gst_dvdec_handle_sink_event), (gst_dvdec_handle_src_event), + (gst_dvdec_video_getcaps), (gst_dvdec_video_setcaps), + (gst_dvdec_decode_audio), (gst_dvdec_decode_video), + (gst_dvdec_decode_frame), (gst_dvdec_chain), + (gst_dvdec_change_state), (gst_dvdec_set_property), + (gst_dvdec_get_property), (plugin_init): + * ext/dv/gstdvdec.h: + * ext/esd/esdsink.c: (gst_esdsink_class_init): + Ported DVdec to 0.9. + Parent of esdsink is GstAudioSink. + +2005-07-07 Wim Taymans + + * configure.ac: + * ext/raw1394/Makefile.am: + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type), + (gst_dv1394src_class_init), (gst_dv1394src_init), + (gst_dv1394src_iso_receive), (gst_dv1394src_create), + (gst_dv1394src_change_state), (gst_dv1394src_convert), + (gst_dv1394src_get_query_types), (gst_dv1394src_query): + * ext/raw1394/gstdv1394src.h: + Ported the 1394 source to 0.9. + +2005-07-07 Wim Taymans + + * ext/mad/gstid3tag.c: (gst_id3_tag_get_query_types): + * ext/mad/gstmad.c: (gst_mad_get_query_types), (gst_mad_src_query): + * gst/avi/gstavidemux.c: (gst_avi_demux_get_src_query_types): + Remove deprecated/unsed code. + +2005-07-06 Edward Hervey + + * gst/udp/gstudpsrc.c: (gst_udpsrc_init): + GST_BASESRC --> GST_BASE_SRC + +2005-07-05 Andy Wingo + + * gst/oneton: Removed (replaced by deinterleave). + + * gst/adder: + * gst/audioconvert: + * gst/audiorate: + * gst/audioscale: + * gst/ffmpegcolorspace: + * gst/playback: + * gst/sine: + * gst/subparse: + * gst/tags: + * gst/tcp: + * gst/videoscale: + * gst/volume: Removed dirs that are now in gst-plugins-base. + +2005-07-05 Edward Hervey + + * configure.ac: (GST_PLUGINS_ALL): + videofilter must be compiled first, since other plugins depend ont it. + +2005-07-05 Andy Wingo + + * Way, way, way too many files: + Remove crack comment from the 2000 era. + +2005-07-05 Andy Wingo + + * gst/videobox/gstvideobox.c: Clean up, port to 0.9, use + BaseTransform. + + * gst/videobox/Makefile.am: Link to base libs, include + plugins-base cflags, dist the README. + + * configure.ac (GST_PLUGIN_ALL, AC_CONFIG_FILES): Add videobox to + the build. + +2005-07-04 Wim Taymans + + * gst/realmedia/rmdemux.c: + I don't think that piece of changelog should go there. + +2005-07-04 Andy Wingo + + * examples/level/: + * examples/level/Makefile.am: + * examples/level/README: + * examples/level/demo.c: + * examples/level/plot.c: Examples moved out of the source dir. Not + updated tho. + + * configure.ac: Add level to the build. + + * gst/level/Makefile.am: + * gst/level/gstlevel.h: + * gst/level/gstlevel.c: Cleaned up, ported to 0.9. + + * ext/aalib/gstaasink.c (gst_aasink_fixate): Update for newer + fixate prototype. + +2005-07-03 Owen Fraser-Green + + * gst/realmedia/rmdemux.c (gst_rmdemux_add_stream), + (gst_rmdemux_src_getcaps), (gst_rmdemux_chain): + Added getcaps function no_more_pads call + +2005-07-01 Philippe Khalaf + * gst/udp/Makefile.am: + * gst/udp/gstudp.c: + * gst/udp/gstdynudpsink.c: (new) + * gst/udp/gstdynudpsink.h: (new) + Added new element (udpdynsink) that receives GstNetBuffers and sends the + udp packets to the source given in the buffer. It's used by rtpsession + element for now. + * gst/udp/gstudpsrc.c: + Fixed memory leak. + +2005-07-01 Jan Schmidt + + * configure.ac: + * ext/mad/Makefile.am: + * sys/oss/Makefile.am: + Roll gstreamer-interfaces-0.9.pc into gstreamer-plugins-base-0.9.pc + +2005-07-01 Jan Schmidt + * ext/libcaca/Makefile.am: + * ext/mad/Makefile.am: + * gst/effectv/Makefile.am: + * gst/udp/Makefile.am: + Replace GST_PLUGINS_LIBS_* with GST_PLUGINS_BASE_* + + * ext/mad/gstid3tag.c: (gst_id3_tag_src_query), + (gst_id3_tag_src_event), (gst_id3_tag_sink_event), + (gst_id3_tag_chain), (plugin_init): + * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_chain): + Signedness warning fix, use gst_pad_get_peer instead of GST_PAD_PEER + in querying and event handling, because we're not holding the pad + lock and the peer may disappear. + * gst/avi/gstavidemux.c: (gst_avi_demux_parse_subindex), + (gst_avi_demux_parse_index), (gst_avi_demux_massage_index): + Signedness warning fixes. + + * gst/videofilter/gstvideotemplate.c: (plugin_init): + Remove gst_library_load + +2005-06-30 Edward Hervey + + * gst/avi/Makefile.am: (libgstavi_la_LIBADD): + Added linking to libgstriff-0.9 + + * ext/mad/gstmad.c: (gst_mad_src_query): + check the format of the upstream query and return query if it's the + same format as the requested one. + +2005-06-30 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): + Compiler pains. + +2005-06-30 Ronald S. Bultje + + * configure.ac: + * gst/avi/Makefile.am: + * gst/avi/gstavi.c: (plugin_init): + * gst/avi/gstavidemux.c: (gst_avi_demux_get_type), + (gst_avi_demux_class_init), (gst_avi_demux_init), + (gst_avi_demux_reset), (gst_avi_demux_index_next), + (gst_avi_demux_index_entry_for_time), + (gst_avi_demux_index_entry_for_byte), + (gst_avi_demux_index_entry_for_frame), (gst_avi_demux_src_convert), + (gst_avi_demux_handle_src_query), (gst_avi_demux_handle_src_event), + (gst_avi_demux_parse_file_header), (gst_avi_demux_stream_init), + (gst_avi_demux_parse_avih), (gst_avi_demux_parse_superindex), + (gst_avi_demux_parse_subindex), (gst_avi_demux_read_subindexes), + (gst_avi_demux_parse_stream), (gst_avi_demux_parse_odml), + (gst_avi_demux_parse_index), (gst_avi_demux_stream_index), + (gst_avi_demux_stream_scan), (gst_avi_demux_massage_index), + (gst_avi_demux_stream_header), (gst_avi_demux_handle_seek), + (gst_avi_demux_process_next_entry), (gst_avi_demux_stream_data), + (gst_avi_demux_loop), (gst_avi_demux_sink_activate), + (gst_avi_demux_sink_activate_pull): + * gst/avi/gstavidemux.h: + Port from -THREADED to HEAD, and fix for latest API changes of + the day. Keep avimux dead for now. + +2005-06-29 Wim Taymans + + * ext/shout2/gstshout2.c: (gst_shout2send_render): + Fix build. + +2005-06-29 Andy Wingo + + * gst/videofilter/gstvideoexample.c: Removed gst_library_load, I + think. Whatever this plugin actually does, that I don't know. + +2005-06-29 Andy Wingo + + * ext/mad/gstid3tag.c (gst_id3_tag_get_event_masks): Reschmoove. + + * ext/mad/gstmad.c (gst_mad_get_event_masks): Remove. + (gst_mad_chain): Appease GCC. + + * ext/libcaca/gstcacasink.c (gst_cacasink_setcaps): Signedness. + + * ext/aalib/gstaasink.c (gst_aasink_fixate): Unref caps, not free. + (gst_aasink_scale): Signedness. + + * gst/udp/gstudpsink.c (gst_udpsink_get_type): Actually add the + URI handler. + + * gst/udp/gstudpsrc.c (gst_udpsrc_start): + (gst_udpsrc_create): Signedness. + + * gst/rtsp/sdpmessage.c (sdp_message_parse_buffer): Thanks + compiler! + (sdp_parse_line): Signedness fix. + + * configure.ac (GST_CFLAGS): GCC strikes back!!! Let the build + breakage ensue!!! + + * gst/rtsp/gstrtspsrc.c (gst_rtspsrc_loop, gst_rtspsrc_open): + Signedness, unused var fixes. + (gst_rtspsrc_close): Unused? + + * gst/realmedia/rmdemux.c (re_hexdump_bytes): Unused. + + * gst/law/mulaw-encode.c (gst_mulawenc_chain): Signeness fix. + + * gst/law/alaw-encode.c (alawenc_getcaps): Remove unneeded + declarations. Typo (probably crasher) fix. + + * gst/law/mulaw-encode.c (mulawdec_getcaps): + * gst/law/mulaw-encode.c (mulawenc_getcaps): + * gst/law/alaw-decode.c (alawdec_getcaps): Same crasher fix. + + * gst/goom/gstgoom.c (gst_goom_init): Hook up the event function. + + * gst/effectv/gstwarp.c (gst_warptv_setup): Signedness fix. + + * gst/effectv/gstdice.c (gst_dicetv_draw): Um, deferencing + uninitialized pointer not good. + + * gst/videofilter/gstvideoexample.c (plugin_init): + * gst/videofilter/Makefile.am (libgstvideoexample_la_LIBADD): Link + to libgstvideofilter instead of gst_library_load. + + * gst/alpha/gstalpha.c (gst_alpha_chroma_key_i420) + (gst_alpha_chroma_key_ayuv): Signedness fixen. + +2005-06-29 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_class_init), (gst_rtspsrc_create_stream), + (gst_rtspsrc_add_element), (gst_rtspsrc_set_state), + (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play), + (gst_rtspsrc_change_state): + Fix case where outpad could not be decided. + +2005-06-29 Andy Wingo + + * ext/Makefile.am (MAD_DIR): Add mad to the build. + +2005-06-28 Wim Taymans + + * ext/mad/gstid3tag.c: (gst_id3_tag_src_link): + * gst/udp/gstudpsrc.c: (gst_udpsrc_init): + Fix old RPAD macro. + basesrc -> base_src + +2005-06-27 Wim Taymans + + * ext/mad/gstid3tag.c: (gst_id3_tag_src_link): + * ext/mad/gstmad.c: (gst_mad_chain): + RPAD_ -> PAD + Fix args in bufferalloc function call. + Makes the mad plugin compile again + +2005-06-27 Owen Fraser-Green + + * gst/realmedia/rmdemux.c: Rewrote to use gstadapter. Also parses + audio and video header packets for known properties. + +2005-06-23 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_class_init), (gst_rtspsrc_create_stream), + (gst_rtspsrc_add_element), (gst_rtspsrc_set_state), + (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play), + (gst_rtspsrc_change_state): + * gst/rtsp/rtspurl.c: (rtsp_url_parse): + Make rtspsrc a live source. + Don't try to parse NULL urls. + +2005-06-23 Wim Taymans + + * gst/udp/gstudpsrc.c: (gst_udpsrc_init): + Make udpsrc a live source. + +2005-06-02 Wim Taymans + + * gst/udp/Makefile.am: + Use versioned net lib. + +2005-06-02 Wim Taymans + + * gst/udp/Makefile.am: + Fix hack in makefile. + +2005-06-02 Andy Wingo + + * ext/mad/gstid3tag.c: Finish porting to 0.9: no more gstdata, + check for link functions before calling them, give + gst_message_new_tag its own copy of the tag list, set the parser + state before sending the event (because in 0.9 events are + processed immediately), casting fixes. + + * ext/mad/Makefile.am (libgstmad_la_LDFLAGS): Link with + gsttagedit. + +2005-06-02 Wim Taymans + + * gst/udp/Makefile.am: + * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type), + (gst_multiudpsink_base_init), (gst_multiudpsink_class_init), + (gst_multiudpsink_init), (gst_multiudpsink_finalize), + (gst_multiudpsink_get_times), (gst_multiudpsink_render), + (gst_multiudpsink_set_property), (gst_multiudpsink_init_send), + (gst_multiudpsink_add), (client_compare), (free_client), + (gst_multiudpsink_remove), (gst_multiudpsink_clear), + (gst_multiudpsink_get_stats): + * gst/udp/gstudpsrc.c: (gst_udpsrc_get_type), + (gst_udpsrc_base_init), (gst_udpsrc_class_init), + (gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start), + (gst_udpsrc_unlock), (gst_udpsrc_stop): + Use NetBuffer and small cleanups. + Implement client removal in multiudpsink. + +2005-06-02 Wim Taymans + + * gst/rtsp/README: + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_class_init), (gst_rtspsrc_create_stream), + (gst_rtspsrc_add_element), (gst_rtspsrc_set_state), + (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play), + (gst_rtspsrc_change_state): + * gst/rtsp/rtsptransport.c: (rtsp_transport_new), + (rtsp_transport_init), (parse_mode), (parse_range), + (rtsp_transport_parse), (rtsp_transport_free): + RTSP cleanups. + +2005-06-02 Wim Taymans + + * gst/effectv/gstquark.c: (gst_quarktv_chain): + * gst/goom/gstgoom.c: (gst_goom_chain): + * gst/videobox/Makefile.am: + * gst/videobox/gstvideobox.c: (gst_video_box_class_init), + (gst_video_box_init), (gst_video_box_sink_setcaps), + (gst_video_box_chain): + * gst/videofilter/gstvideofilter.c: (gst_videofilter_chain): + * gst/videorate/gstvideorate.c: (gst_videorate_class_init), + (gst_videorate_getcaps), (gst_videorate_setcaps), + (gst_videorate_init), (gst_videorate_event), (gst_videorate_chain), + (gst_videorate_change_state): + Bufferalloc changes. + +2005-05-25 Wim Taymans + + * ext/mad/gstmad.c: (gst_mad_chain), (gst_mad_change_state): + * ext/sidplay/gstsiddec.cc: + * gst/alpha/gstalpha.c: (gst_alpha_chain): + * gst/goom/gstgoom.c: (gst_goom_chain): + No need to take the lock anymore, core already did + that before calling us. + +2005-05-25 Wim Taymans + + * ext/amrnb/amrnbdec.c: (gst_amrnbdec_init), (gst_amrnbdec_chain), + (gst_amrnbdec_state_change): + * ext/amrnb/amrnbenc.c: (gst_amrnbenc_base_init), + (gst_amrnbenc_finalize), (gst_amrnbenc_chain), + (gst_amrnbenc_state_change): + * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init), + (gst_amrnbparse_query), (gst_amrnbparse_chain), + (gst_amrnbparse_read_header), (gst_amrnbparse_loop), + (gst_amrnbparse_sink_activate), (gst_amrnbparse_state_change): + Core already took the lock. + +2005-05-19 Ronald S. Bultje + + * configure.ac: + * ext/esd/Makefile.am: + Disable tcp elements and esdmon (they don't compile). + +2005-05-19 Jan Schmidt + + * Makefile.am: + * ext/Makefile.am: + * sys/Makefile.am: + Make my automake version shut up about undefined variables + * gst/goom/gstgoom.c: + GstAdapter moved to base objects. + +2005-05-18 Wim Taymans + + * ext/amrnb/Makefile.am: + * ext/amrnb/amrnb.c: (plugin_init): + * ext/amrnb/amrnbdec.c: (gst_amrnbdec_init), + (gst_amrnbdec_setcaps), (gst_amrnbdec_chain), + (gst_amrnbdec_state_change): + * ext/amrnb/amrnbdec.h: + * ext/amrnb/amrnbenc.c: (gst_amrnbenc_get_type), + (gst_amrnbenc_base_init), (gst_amrnbenc_class_init), + (gst_amrnbenc_init), (gst_amrnbenc_finalize), + (gst_amrnbenc_setcaps), (gst_amrnbenc_chain), + (gst_amrnbenc_state_change): + * ext/amrnb/amrnbenc.h: + * ext/amrnb/amrnbparse.c: (gst_amrnbparse_init), + (gst_amrnbparse_query), (gst_amrnbparse_event), + (gst_amrnbparse_chain), (gst_amrnbparse_read_header), + (gst_amrnbparse_loop), (gst_amrnbparse_sink_activate), + (gst_amrnbparse_state_change): + * ext/amrnb/amrnbparse.h: + Ported AMR decoder/parse. + Added AMR encoder. + +2005-05-18 Wim Taymans + + * configure.ac: + * gst/goom/Makefile.am: + * gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_sink_setcaps), + (gst_goom_src_setcaps), (gst_goom_src_negotiate), (gst_goom_event), + (gst_goom_chain), (gst_goom_change_state), (plugin_init): + Ported goom. + Added goom and alpha to build. + +2005-05-17 Wim Taymans + + * configure.ac: + * gst/alpha/Makefile.am: + * gst/alpha/gstalpha.c: (gst_alpha_class_init), (gst_alpha_init), + (gst_alpha_sink_setcaps), (gst_alpha_chain): + Ported alpha, remove alphacolor as functionality is in + ffmpegcolorspace. + +2005-05-17 Wim Taymans + + * ext/libcaca/gstcacasink.c: (gst_cacasink_setcaps), + (gst_cacasink_render), (gst_cacasink_open), (gst_cacasink_close), + (gst_cacasink_change_state): + * ext/libcaca/gstcacasink.h: + Cleanups. + +2005-05-15 David Schleef + + Move core plugins out of core. I don't mind fdsrc/fdsink + going back into the core; they were just disabled there, so + I moved them. Some of this stuff could (should) be deleted. + * gst/oldcore/Makefile.am: + * gst/oldcore/gstaggregator.c: + * gst/oldcore/gstaggregator.h: + * gst/oldcore/gstelements.c: + * gst/oldcore/gstfdsink.c: + * gst/oldcore/gstfdsink.h: + * gst/oldcore/gstfdsrc.c: + * gst/oldcore/gstfdsrc.h: + * gst/oldcore/gstmd5sink.c: + * gst/oldcore/gstmd5sink.h: + * gst/oldcore/gstmultifilesrc.c: + * gst/oldcore/gstmultifilesrc.h: + * gst/oldcore/gstpipefilter.c: + * gst/oldcore/gstpipefilter.h: + * gst/oldcore/gstshaper.c: + * gst/oldcore/gstshaper.h: + * gst/oldcore/gststatistics.c: + * gst/oldcore/gststatistics.h: + +2005-05-13 Christian Schaller + + * ext/Makefile.am: dist esd directory + * gst-plugins.spec.in: add rtp plugins and esd plugin + * gst/effectv/Makefile.am: fix videofilter linking + * gst/rtp/Makefile.am: add missing headers + * gst/rtsp/Makefile.am: add missing headers + +2005-05-12 Wim Taymans + + * configure.ac: + * ext/sidplay/gstsiddec.cc: + Add working plugins to build. + Make sidplay compile again. + +2005-05-12 Wim Taymans + + * ext/mad/gstid3tag.c: (gst_id3_tag_src_query): + * ext/mad/gstmad.c: (gst_mad_chain): + Fix mad and id3tag compilation again. + +2005-05-12 Wim Taymans + + * gst/udp/.cvsignore: + * gst/udp/Makefile.am: + * gst/udp/gstmultiudpsink.c: (gst_multiudpsink_get_type), + (gst_multiudpsink_base_init), (gst_multiudpsink_class_init), + (gst_multiudpsink_init), (gst_multiudpsink_finalize), + (gst_multiudpsink_get_times), (gst_multiudpsink_render), + (gst_multiudpsink_set_property), (gst_multiudpsink_get_property), + (gst_multiudpsink_init_send), (gst_multiudpsink_close), + (gst_multiudpsink_add), (gst_multiudpsink_remove), + (gst_multiudpsink_clear), (gst_multiudpsink_get_stats), + (gst_multiudpsink_change_state): + * gst/udp/gstmultiudpsink.h: + * gst/udp/gstudp-marshal.list: + * gst/udp/gstudp.c: (plugin_init): + * gst/udp/gstudp.h: + * gst/udp/gstudpsink.c: (gst_udpsink_get_type), + (gst_udpsink_base_init), (gst_udpsink_class_init), + (gst_udpsink_init), (gst_udpsink_set_uri), + (gst_udpsink_set_property), (gst_udpsink_get_property), + (gst_udpsink_uri_get_type), (gst_udpsink_uri_get_protocols), + (gst_udpsink_uri_get_uri), (gst_udpsink_uri_set_uri), + (gst_udpsink_uri_handler_init): + * gst/udp/gstudpsink.h: + * gst/udp/gstudpsrc.c: (gst_udpsrc_get_type), + (gst_udpsrc_base_init), (gst_udpsrc_class_init), + (gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start), + (gst_udpsrc_unlock), (gst_udpsrc_stop): + * gst/udp/gstudpsrc.h: + Added multifdsink to send UDP to multiple addresses. + Cleaned up UDP source/sink elements some more. + Make UDP sink extends from multiudpsink. + +2005-05-12 Tim-Philipp Müller + + * ext/mad/gstmad.c: (gst_mad_src_query), (gst_mad_sink_event): + Make queries actually work (update core first). + +2005-05-12 Wim Taymans + + * gst/rtsp/README: + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get_type), + (gst_tcpclientsrc_base_init), (gst_tcpclientsrc_class_init), + (gst_tcpclientsrc_init), (gst_tcpclientsrc_getcaps), + (gst_tcpclientsrc_stop), (gst_tcpclientsrc_eos), + (gst_tcpclientsrc_create), (gst_tcpclientsrc_start): + * gst/tcp/gsttcpclientsrc.h: + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get_type), + (gst_tcpserversrc_base_init), (gst_tcpserversrc_class_init), + (gst_tcpserversrc_init), (gst_tcpserversrc_create), + (gst_tcpserversrc_start), (gst_tcpserversrc_stop): + * gst/tcp/gsttcpserversrc.h: + * gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get_type), + (gst_tcpsrc_base_init), (gst_tcpsrc_class_init), (gst_tcpsrc_init), + (gst_tcpsrc_create), (gst_tcpsrc_start), (gst_tcpsrc_stop): + * gst/tcp/gsttcpsrc.h: + * gst/udp/gstudpsink.c: (gst_udpsink_base_init), + (gst_udpsink_init), (gst_udpsink_get_times), (gst_udpsink_render), + (gst_udpsink_set_property), (gst_udpsink_get_property), + (gst_udpsink_change_state): + * gst/udp/gstudpsink.h: + * gst/udp/gstudpsrc.c: (gst_udpsrc_get_type), + (gst_udpsrc_base_init), (gst_udpsrc_class_init), (gst_udpsrc_init), + (gst_udpsrc_create), (gst_udpsrc_set_uri), (gst_udpsrc_start), + (gst_udpsrc_stop): + * gst/udp/gstudpsrc.h: + Make UDP and TCP elements use PushSrc. + + +2005-05-11 Tim-Philipp Müller + + * ext/mad/gstmad.c: (gst_mad_init), (gst_mad_src_query), + (index_seek), (normal_seek), (gst_mad_sink_event): + Port to new query API and replace gst_pad_convert() + and gst_pad_get_formats() usage. gstid3tag looks like + it needs some more love before it will work again, if + not a rewrite. + +2005-05-12 Zeeshan Ali + + * gst/effectv/Makefile.am: + Fixed the effectv build again. + +2005-05-11 Wim Taymans + + * gst/tcp/Makefile.am: + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_get_type), + (gst_multifdsink_base_init), (gst_multifdsink_class_init), + (gst_multifdsink_init), (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_render), + (gst_multifdsink_change_state): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_get_type), + (gst_tcpclientsink_base_init), (gst_tcpclientsink_class_init), + (gst_tcpclientsink_init), (gst_tcpclientsink_render), + (gst_tcpclientsink_set_property), (gst_tcpclientsink_get_property), + (gst_tcpclientsink_change_state): + * gst/tcp/gsttcpclientsink.h: + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init), + (gst_tcpclientsrc_init_receive): + * gst/tcp/gsttcpplugin.c: (plugin_init): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init): + * gst/tcp/gsttcpserversink.h: + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init): + * gst/tcp/gsttcpsink.c: (gst_tcpsink_get_type), + (gst_tcpsink_base_init), (gst_tcpsink_class_init), + (gst_tcpsink_setcaps), (gst_tcpsink_init), (gst_tcpsink_get_times), + (gst_tcpsink_render), (gst_tcpsink_set_property), + (gst_tcpsink_get_property): + * gst/tcp/gsttcpsink.h: + * gst/tcp/gsttcpsrc.c: (gst_tcpsrc_class_init), (gst_tcpsrc_get): + Ported over some sink elements. + Sources not ported yet as they require a PushSource base class. + +2005-05-11 Tim-Philipp Müller + + * gst/effectv/Makefile.am: + * gst/videofilter/Makefile.am: + Turn videofilter into a library (private for now) + +2005-05-11 Wim Taymans + + * gst/rtsp/README: + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_class_init), (gst_rtspsrc_create_stream), + (gst_rtspsrc_add_element), (gst_rtspsrc_set_state), + (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_play): + * gst/rtsp/rtsp.h: + * gst/rtsp/rtspconnection.c: (rtsp_connection_create), + (rtsp_connection_send), (read_line), (parse_request_line), + (parse_line), (read_body), (rtsp_connection_receive), + (rtsp_connection_free): + * gst/rtsp/rtspconnection.h: + * gst/rtsp/rtspdefs.c: (rtsp_find_method): + * gst/rtsp/rtspdefs.h: + * gst/rtsp/rtspmessage.c: (rtsp_message_set_body), + (rtsp_message_take_body): + * gst/rtsp/rtspmessage.h: + * gst/rtsp/rtspstream.h: + * gst/rtsp/sdpmessage.c: (sdp_parse_line): + Added README + Some cleanups. + +2005-05-11 Wim Taymans + + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_class_init), (gst_rtspsrc_init), + (gst_rtspsrc_create_stream), (gst_rtspsrc_add_element), + (gst_rtspsrc_set_state), (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_open), (gst_rtspsrc_close), + (gst_rtspsrc_play), (gst_rtspsrc_change_state): + * gst/rtsp/gstrtspsrc.h: + Setup UDP sources correctly, receives raw data from RTSP + compliant servers now. + +2005-05-11 Wim Taymans + + * gst/rtsp/.cvsignore: + * gst/rtsp/Makefile.am: + * gst/rtsp/gstrtsp.c: (plugin_init): + * gst/rtsp/gstrtsp.h: + * gst/rtsp/gstrtspsrc.c: (gst_rtsp_proto_get_type), + (gst_rtspsrc_get_type), (gst_rtspsrc_base_init), + (gst_rtspsrc_class_init), (gst_rtspsrc_init), + (gst_rtspsrc_set_property), (gst_rtspsrc_get_property), + (gst_rtspsrc_create_stream), (rtspsrc_add_element), + (gst_rtspsrc_stream_setup_rtp), + (gst_rtspsrc_stream_configure_transport), (find_stream), + (gst_rtspsrc_loop), (gst_rtspsrc_send), (gst_rtspsrc_open), + (gst_rtspsrc_close), (gst_rtspsrc_play), (gst_rtspsrc_pause), + (gst_rtspsrc_activate), (gst_rtspsrc_change_state): + * gst/rtsp/gstrtspsrc.h: + * gst/rtsp/rtsp.h: + * gst/rtsp/rtspconnection.c: (rtsp_connection_open), + (rtsp_connection_create), (append_header), (rtsp_connection_send), + (read_line), (read_string), (read_key), (parse_response_status), + (parse_line), (read_body), (rtsp_connection_receive), + (rtsp_connection_close): + * gst/rtsp/rtspconnection.h: + * gst/rtsp/rtspdefs.c: (rtsp_init_status), (rtsp_method_as_text), + (rtsp_header_as_text), (rtsp_status_as_text), + (rtsp_status_to_string), (rtsp_find_header_field): + * gst/rtsp/rtspdefs.h: + * gst/rtsp/rtspmessage.c: (rtsp_message_new_request), + (rtsp_message_init_request), (rtsp_message_new_response), + (rtsp_message_init_response), (rtsp_message_init_data), + (rtsp_message_add_header), (rtsp_message_remove_header), + (rtsp_message_get_header), (rtsp_message_get_header_copy), + (rtsp_message_set_body), (rtsp_message_set_body_copy), + (rtsp_message_get_body), (rtsp_message_get_body_copy), (dump_mem), + (dump_key_value), (rtsp_message_dump): + * gst/rtsp/rtspmessage.h: + * gst/rtsp/rtspstream.h: + * gst/rtsp/rtsptransport.c: (rtsp_transport_new), + (rtsp_transport_init), (parse_mode), (parse_range), + (rtsp_transport_parse), (rtsp_transport_free): + * gst/rtsp/rtsptransport.h: + * gst/rtsp/rtspurl.c: (rtsp_url_parse), (rtsp_url_free): + * gst/rtsp/rtspurl.h: + * gst/rtsp/sdp.h: + * gst/rtsp/sdpmessage.c: (sdp_message_new), (sdp_message_init), + (sdp_message_clean), (sdp_message_free), (sdp_media_new), + (sdp_media_init), (sdp_message_set_origin), + (sdp_message_get_origin), (sdp_message_set_connection), + (sdp_message_get_connection), (sdp_message_add_bandwidth), + (sdp_message_add_time), (sdp_message_add_zone), + (sdp_message_set_key), (sdp_message_get_key), + (sdp_message_get_attribute_val), (sdp_message_add_attribute), + (sdp_message_add_media), (sdp_media_add_attribute), + (sdp_media_add_bandwidth), (sdp_media_add_format), + (sdp_media_get_attribute_val), (read_string), (read_string_del), + (sdp_parse_line), (sdp_message_parse_buffer), (print_media), + (sdp_message_dump): + * gst/rtsp/sdpmessage.h: + * gst/rtsp/test.c: (main): + Ported to 0.9. + Set up transports, init UDP ports, init RTP session managers. + +2005-05-11 Wim Taymans + + * gst/rtp/Makefile.am: + * gst/rtp/gstrtp.c: (plugin_init): + * gst/rtp/gstrtpdec.c: (gst_rtpdec_get_type), + (gst_rtpdec_class_init), (gst_rtpdec_init), (gst_rtpdec_chain_rtp), + (gst_rtpdec_chain_rtcp), (gst_rtpdec_set_property), + (gst_rtpdec_get_property), (gst_rtpdec_change_state), + (gst_rtpdec_plugin_init): + * gst/rtp/gstrtpdec.h: + * gst/udp/gstudpsink.c: (gst_udpsink_base_init), + (gst_udpsink_get_times), (gst_udpsink_render), + (gst_udpsink_change_state): + * gst/udp/gstudpsrc.c: (gst_udpsrc_get_type), + (gst_udpsrc_base_init), (gst_udpsrc_class_init), (gst_udpsrc_init), + (gst_udpsrc_loop), (gst_udpsrc_set_uri), (gst_udpsrc_set_property), + (gst_udpsrc_get_property), (gst_udpsrc_init_receive), + (gst_udpsrc_activate), (gst_udpsrc_change_state), + (gst_udpsrc_uri_get_type), (gst_udpsrc_uri_get_protocols), + (gst_udpsrc_uri_get_uri), (gst_udpsrc_uri_set_uri), + (gst_udpsrc_uri_handler_init): + * gst/udp/gstudpsrc.h: + UDP fixes, added uri handler. + Added rtpdec that will manage the RTP session in the future. + +2005-05-10 Arwed v. Merkatz + + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/esd/Makefile.am: + * ext/esd/esdsink.c: (gst_esdsink_get_type), + (gst_esdsink_class_init), (gst_esdsink_init), + (gst_esdsink_dispose), (gst_esdsink_change_state), + (gst_caps_set_each), (gst_esdsink_getcaps), (gst_esdsink_open), + (gst_esdsink_close), (gst_esdsink_write), (gst_esdsink_delay), + (gst_esdsink_reset), (gst_esdsink_set_property), + (gst_esdsink_get_property), (gst_esdsink_factory_init): + * ext/esd/esdsink.h: + * ext/esd/gstesd.c: (plugin_init): + Ported esdsink plugin + +2005-05-10 Wim Taymans + + * gst/udp/Makefile.am: + * gst/udp/gstudpsink.c: (gst_udpsink_get_type), + (gst_udpsink_base_init), (gst_udpsink_class_init), + (gst_udpsink_init), (gst_udpsink_get_times), (gst_udpsink_render), + (gst_udpsink_set_property), (gst_udpsink_get_property), + (gst_udpsink_init_send), (gst_udpsink_close), + (gst_udpsink_change_state): + * gst/udp/gstudpsink.h: + * gst/udp/gstudpsrc.c: (gst_udpsrc_base_init), + (gst_udpsrc_class_init), (gst_udpsrc_init), (gst_udpsrc_loop), + (gst_udpsrc_set_property), (gst_udpsrc_get_property), + (gst_udpsrc_init_receive), (gst_udpsrc_close), + (gst_udpsrc_activate), (gst_udpsrc_change_state): + * gst/udp/gstudpsrc.h: + Ported udp src/sink. + +2005-05-09 Zaheer Abbas Merali + + * PORTED_09: + * configure.ac: + * ext/Makefile.am: + * ext/shout2/Makefile.am: + * ext/shout2/gstshout2.c: (gst_shout2send_get_type), + (gst_shout2send_base_init), (gst_shout2send_class_init), + (gst_shout2send_init), (gst_shout2send_event), + (gst_shout2send_render), (gst_shout2send_set_property), + (gst_shout2send_get_property), (gst_shout2send_setcaps), + (gst_shout2send_change_state): + * ext/shout2/gstshout2.h: + + Port shout2 plugin + +2005-05-08 Zeeshan Ali + + * configure.ac: + * ext/Makefile.am: + * ext/libcaca/Makefile.am: + * ext/libcaca/gstcacasink.c: (gst_cacasink_get_type), + (gst_cacasink_class_init), (gst_cacasink_get_times), + (gst_cacasink_setcaps), (gst_cacasink_init), (gst_cacasink_render), + (plugin_init): + * ext/libcaca/gstcacasink.h: + Ported the libcaca plugin. + +2005-05-08 Zeeshan Ali + + * configure.ac: + * ext/mad/Makefile.am: + * effectv/Makefile.am: + Fixed a few things to enable the mad and effectv to be able to find the + headers in the gst-plugins-base/gst-libs and to link against the libs + in there. + +2005-05-07 Zeeshan Ali + + * configure.ac: + Fixed the build by fixing a small mistake of Wim. + +2005-05-06 Wim Taymans + + * configure.ac: + * ext/aalib/Makefile.am: + * ext/aalib/gstaasink.c: (gst_aasink_get_type), + (gst_aasink_class_init), (gst_aasink_fixate), (gst_aasink_setcaps), + (gst_aasink_init), (gst_aasink_get_times), (gst_aasink_render), + (gst_aasink_set_property), (gst_aasink_get_property), + (gst_aasink_open), (gst_aasink_close), (gst_aasink_change_state): + * ext/aalib/gstaasink.h: + * gst/smpte/Makefile.am: + * gst/smpte/gstsmpte.c: (gst_smpte_setcaps), (gst_smpte_init), + (gst_smpte_collected): + * gst/smpte/gstsmpte.h: + Ported 2 more plugins. usgly hack in the Makefile.am though, I'm + sure someone will fix it. + +2005-05-06 Christian Schaller + + * configure.ac: add sidplay + * ext/Makefile.am: add sidplay + * ext/sidplay/Makefile.am: add GST_PLUGINS_CFLAGS + * ext/sidplay/gstsiddec.cc: remove bytestream.h + +2005-05-06 Christian Schaller + + * configure.ac: add gst-plugins-libs + +2005-05-06 Wim Taymans + + * configure.ac: + * ext/sidplay/gstsiddec.cc: + * ext/sidplay/gstsiddec.h: + Ported sidplay. + +2005-05-06 Christian Schaller + + * configure.ac: + * ext/mad/Makefile.am: add linking of gstinterfaces + * ext/mad/gstid3tag.c: (plugin_init): remove library_load + * gst-plugins.spec.in: + * gst/effectv/Makefile.am: link to libgstvideofilter + * gst/effectv/gsteffectv.c: (plugin_init): same as for mad + * gst/videofilter/Makefile.am: make sure videoflip is not built + +2005-05-06 Wim Taymans + + * gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_setcaps), + (gst_alawdec_init), (gst_alawdec_chain): + * gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_setcaps), + (gst_alawenc_init), (gst_alawenc_chain): + * gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_setcaps), + (gst_mulawdec_init), (gst_mulawdec_chain): + * gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_setcaps), + (gst_mulawenc_init), (gst_mulawenc_chain): + Ported alaw and mulaw plugins to 0.9, fixed the negotiation as + well. + +2005-05-06 Christian Schaller + + * ext/alsa: removed plugins that are now in gst-plugins-base + * ext/gnomevfs: + * ext/theora: + * ext/vorbis: + * gst/adder: + * gst/audioconvert: + * gst/ffmpegcolorspace: + * gst/typefind: + * gst/videofilter: comment out videoflip and gamma plugins + +2005-05-06 Christian Schaller + + * gst-libs: Remove all files as this is in gst-plugins-base now + * gst-libs/README: add a remove informing of this move + +2005-05-06 Christian Schaller + + * PORTED_09: update to add videofilter + * configure.ac: re-add videofilter + * gst/videofilter/Makefile.am: remove videobalance (not ported yet) + * gst/videofilter/gstgamma.c: (gst_gamma_class_init): + * gst/videofilter/gstvideobalance.c: (gst_videobalance_class_init): + * gst/videofilter/gstvideofilter.c: (gst_videofilter_getcaps), + (gst_videofilter_setcaps), (gst_videofilter_init), + (gst_videofilter_chain), (gst_videofilter_set_output_size): + * gst/videofilter/gstvideoflip.c: (gst_videoflip_class_init): + +2005-05-06 Christian Schaller + + * ext/mad: ported plugin from threaded branch + * gst/effectv: ported plugins from threaded branch + * gst/law: enable law plugin as it compiles (Wim will fixor) + +2005-05-06 Zaheer Abbas Merali + + * configure.ac: + fix typo + +2005-05-05 Christian Schaller + + * Update configure.ac and Makefiles to only build what is actually + ported and not moved into gst-plugins-base + +2005-02-22 Thomas Vander Stichele + + * configure.ac: + hunting season on 0.9 is now OPEN + +2005-02-22 Ronald S. Bultje + + * sys/oss/gstosselement.c: (gst_osselement_class_probe_devices): + Kick the hell out of gcc for not warning me about a symbol conflict. + +2005-02-22 Luca Ognibene + + Reviewed by: Tim-Philipp Müller + + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link): + Don't leak caps string (fixes #168134) + + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init), + (gst_jpegenc_init), (gst_jpegenc_finalize), + (gst_jpegenc_change_state): + Don't leak line buffers and context struct (fixes #168133). + +2005-02-21 Tim-Philipp Müller + + * configure.ac: + * ext/dirac/gstdiracdec.cc: + (gst_diracdec_chain): + Since dirac 0.5.0 the framerate in dirac is expressed as a + rational number. Fix build and up requirement to 0.5.0, and + also pass parameters to gst_diracdec_link in the right order + (fixes #167959). + +2005-02-21 Maciej Katafiasz + + * ext/faad/gstfaad.c: (gst_faad_sinkconnect), (gst_faad_chain): + * ext/faad/gstfaad.h: + TEH LONGEST DEBUGGING SESSION EVAR is over. Fix interaction with + certain invalid muxed streams, where some packets will contain + junk after decoder data. Partially fixes #149158. + +2005-02-21 Jan Schmidt + * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_chain): + Make sure we only write to writable buffers + +2005-02-20 Tim-Philipp Müller + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data): + Do actually fix invalid RIFF fmt header values for alaw + and mulaw audio instead of just saying so. + + * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): + Give gst_riff_create_audio_caps_with_data() a chance to + fix up broken format header fields before extracting any + parameters from the header. (fixes #167633) + +2005-02-19 Martin Holters + + Reviewed by: Tim-Philipp Müller + + * gst/audioconvert/bufferframesconvert.c: + (buffer_frames_convert_link): + Don't leak othercaps. (fixes #167878) + +2005-02-19 Arwed v. Merkatz > + + * configure.ac: + * ext/libvisual/visual.c: (gst_visual_srclink), + (gst_visual_change_state): + Support libvisual 0.2.0. + +2005-02-18 Tim-Philipp Müller + + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_chain): + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_resync), (gst_jpegenc_chain): + Use same rowstrides for I420 as used everywhere else. + +2005-02-17 Tim-Philipp Müller + + * gst/avi/gstavidemux.c: (gst_avi_demux_invert): + Declare variables at beginning of block and make gcc-2.95 happy + (fixes # 167482, patch by Gergely Nagy). + + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpclientsrc.h: + Move some includes into the header, so that struct sockaddr_in is + defined when it should be defined on FreeBSD as well (fixes + #167483). + + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive): + Don't pass uninitialised values to setsockopt() here either. + +2005-02-17 Luca Ognibene + + Reviewed by: Tim-Philipp Müller + + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send): + Don't pass uninitialised values to setsockopt(). (fixes #167704) + +2005-02-16 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (add_sink): + Invert bin_add/link order to workaround deadlock in opt. + +2005-02-15 Ronald S. Bultje + + * gst/modplug/gstmodplug.cc: + Add missing break causing position queries to fail. + +2005-02-15 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_populate): + Granpos can apparently be -1, which screws up calculations... + +2005-02-16 Jan Schmidt + + * sys/ximage/ximagesink.c: (gst_ximagesink_chain), + (gst_ximagesink_send_pending_navigation), + (gst_ximagesink_navigation_send_event), (gst_ximagesink_finalize), + (gst_ximagesink_init): + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain), + (gst_xvimagesink_send_pending_navigation), + (gst_xvimagesink_navigation_send_event), + (gst_xvimagesink_finalize), (gst_xvimagesink_init): + * sys/xvimage/xvimagesink.h: + Use a mutex protected list to marshal navigation + events into the stream thread from whichever thread + sends them. + +2005-02-15 Tim-Philipp Müller + + * gst/speed/demo-mp3.c: (time_tick_cb), (main): + Display current position and track length; misc. clean-ups. + + * gst/speed/gstspeed.c: (speed_get_query_types), (speed_src_query), + (speed_init), (speed_chain): + Add query function, so that the stream length and current position + get adjusted when queried (note that current position queries may + still be wrong if the audio sink returns values based on buffer + timestamps instead of passing on the query). + +2005-02-13 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link), + (gst_audio_convert_channels): + create channel conversion matrix when linking + * gst/audioconvert/.cvsignore: + * gst/audioconvert/Makefile.am: + * gst/audioconvert/channelmixtest.c: (main): + add (ugly) test that ensures stereo <=> mono conversion works + correctly + +2005-02-13 Benjamin Otte + + * gst/audioconvert/gstchannelmix.h: + include missing header file + * gst/audioconvert/gstchannelmix.c: + (gst_audio_convert_fill_compatible): + use same sign for both channels when converting to/from compatible + channel. Previously used different signs made the signals cancel + each other out and appear like silence. (fixes #167269) + +2005-02-12 Tim-Philipp Müller + + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt), + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/imgconvert.c: + Convert to and from YV12 (fixes #156379). + +2005-02-12 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new), + (gst_ximagesink_sink_link), (gst_ximagesink_change_state), + (gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id), + (gst_ximagesink_expose), (gst_ximagesink_set_property), + (gst_ximagesink_finalize), (gst_ximagesink_init): Protect interface + methods from chain and negotiation and vice versa (Fixes #166142). + * sys/ximage/ximagesink.h: Add stream_lock. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_free), + (gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id), + (gst_xvimagesink_expose): Check for xcontext before trying to link. + +2005-02-12 Tim-Philipp Müller + + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_open): + Don't send "Hey! You gave me a NULL pointer you naughty person" as + error message when we can't open the DVD device (when dvdnav_open() + fails, src->dvdnav is NULL, so dvdnav_err_to_string() will return + the above). Send something more useful instead (fixes #167117). + +2005-02-11 Julien MOUTTE + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_put), + (gst_xvimagesink_sink_link), (gst_xvimagesink_change_state), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_free), + (gst_xvimagesink_buffer_alloc), (gst_xvimagesink_set_xwindow_id), + (gst_xvimagesink_expose), (gst_xvimagesink_set_property), + (gst_xvimagesink_finalize), (gst_xvimagesink_init): Protect interface + methods from chain and negotiation and vice versa (Fixes #166142). + Fix a possible bug of images in the buffer pool being discarded because + we are looking at the wrong geometry. + * sys/xvimage/xvimagesink.h: Add stream_lock. + +2005-02-11 David Schleef + + * ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer): Change uint to + unsigned int. (fixes #167128) + +2005-02-11 David Schleef + + * gst/librfb/Makefile.am: Testing stuff before committing is + for wimps... and people with fast machines. Fix stupid + mistake. + +2005-02-11 David Schleef + + * configure.ac: Pull in librfb from my CVS tree, because it is + too small and annoying to be separate. Move rfbsrc plugin + to gst/. + * ext/Makefile.am: + * ext/librfb/Makefile.am: + * ext/librfb/gstrfbsrc.c: + * gst/librfb/Makefile.am: + * gst/librfb/gstrfbsrc.c: + * gst/librfb/rfb.c: + * gst/librfb/rfb.h: + * gst/librfb/rfbbuffer.c: + * gst/librfb/rfbbuffer.h: + * gst/librfb/rfbbytestream.c: + * gst/librfb/rfbbytestream.h: + * gst/librfb/rfbcontext.h: + * gst/librfb/rfbdecoder.c: + * gst/librfb/rfbdecoder.h: + * gst/librfb/rfbutil.h: + +2005-02-10 Tim-Philipp Müller + + * gst/speed/Makefile.am: + * gst/speed/demo-mp3.c: (main): + * gst/speed/filter.func: + * gst/speed/gstspeed.c: (speed_link), (speed_parse_caps), + (speed_class_init), (speed_init), (speed_chain_int16), + (speed_chain_float32), (speed_chain), (speed_set_property), + (speed_get_property), (speed_change_state): + * gst/speed/gstspeed.h: + Fix speed element and make it chain-based (fixes #156467), + and make it handle more than one channel. + +2005-02-10 Jan Schmidt + + * ext/dts/gstdtsdec.c: (gst_dtsdec_init), (gst_dtsdec_channels), + (gst_dtsdec_handle_event), (gst_dtsdec_handle_frame), + (gst_dtsdec_chain), (gst_dtsdec_change_state): + * ext/dts/gstdtsdec.h: + Don't clobber the stack constructing the channels array. + Make the element chain-based. DTS tracks can now be played. + +2005-02-09 Tim-Philipp Müller + + * gst-libs/gst/audio/multichannel.h: + * gst-libs/gst/gconf/gconf.h: + * gst-libs/gst/idct/idct.h: + * gst-libs/gst/media-info/media-info-priv.h: + * gst-libs/gst/play/play.h: + * gst-libs/gst/resample/private.h: + * gst-libs/gst/resample/resample.h: + * gst-libs/gst/riff/riff-ids.h: + * gst-libs/gst/video/video.h: + * gst-libs/gst/video/videosink.h: + Add G_BEGIN_DECLS and G_END_DECLS around headers where + missing, so that they work when included from C++ code. + +2005-02-09 David Schleef + + * testsuite/gst-lint: Check for non-statically scoped + parent_class variables. This won't be a problem once + plugins are loaded with RTLD_LOCAL. + +2005-02-09 Ronald S. Bultje + + * ext/mplex/gstmplexibitstream.cc: + gcc madness. + +2005-02-09 Ronald S. Bultje + + * ext/ogg/gstogmparse.c: + * gst/debug/gstnavigationtest.c: + Die, thou faulty symbol pollutors (non-static parent_class). + +2005-02-08 Ronald S. Bultje + + * ext/mplex/gstmplexibitstream.cc: + Fix event handling (#165525). + +2005-02-08 Ronald S. Bultje + + * ext/mikmod/gstmikmod.c: + * gst/modplug/gstmodplug.cc: + Add missing endianness to template (fixes #165509). + +2005-02-08 Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_data): + Fix wrong order of reading of optional bytes (#165290). + +2005-02-08 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + Implement FILLER event awareness. + +2005-02-08 Ronald S. Bultje + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_convert): + Fix track calculations (#166208). + +2005-02-08 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * ext/libpng/gstpngdec.c: (gst_pngdec_init), (gst_pngdec_chain): + * ext/libpng/gstpngenc.c: + Fix byte-order, use proper fixed caps. Fixes #164197. + +2005-02-08 Jan Schmidt + + * configure.ac: + Add dvdlpcmdec + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_reset), + (free_all_buffers), (gst_mpeg2dec_alloc_buffer): + Don't push buffers if the src pad isn't negotiated yet. + + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_buffer_to_default_format), + (gst_audio_convert_buffer_from_default_format): + Add support for 24-bit width. + + * gst/dvdlpcmdec/.cvsignore: + * gst/dvdlpcmdec/Makefile.am: + * gst/dvdlpcmdec/gstdvdlpcmdec.c: (gst_dvdlpcmdec_get_type), + (gst_dvdlpcmdec_base_init), (gst_dvdlpcmdec_class_init), + (gst_dvdlpcm_reset), (gst_dvdlpcmdec_init), (gst_dvdlpcmdec_link), + (gst_dvdlpcmdec_chain), (gst_dvdlpcmdec_change_state), + (plugin_init): + * gst/dvdlpcmdec/gstdvdlpcmdec.h: + New decoder for rearranging DVD LPCM into our audio/x-raw-int + format. Needs support for the channels maps if someone can find + a DVD LPCM track with > 2 channels. + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_handle_dvd_event), + (gst_dvd_demux_send_discont), (gst_dvd_demux_handle_discont), + (gst_dvd_demux_get_audio_stream), (gst_dvd_demux_process_private): + * gst/mpegstream/gstdvddemux.h: + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont), + (gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_init_stream), + (gst_mpeg_demux_send_subbuffer), (gst_mpeg_demux_handle_src_query): + * gst/mpegstream/gstmpegdemux.h: + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_reset), + (gst_mpeg_parse_parse_packhead), (gst_mpeg_parse_loop), + (gst_mpeg_parse_get_rate), (gst_mpeg_parse_convert_src), + (gst_mpeg_parse_handle_src_query), + (gst_mpeg_parse_handle_src_event): + Use audio/x-dvd-lpcm for LPCM output. + Add DTS output. + +2005-02-08 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * gst/alpha/gstalphacolor.c: (gst_alpha_color_sink_link), + (transform_rgb), (transform_bgr), (gst_alpha_color_chain): + Add BGRA handling (#165736). + +2005-02-08 Francis Labonte + + Reviewed by: Ronald S. Bultje + + * gst/law/alaw-decode.c: (alawdec_link): + * gst/law/alaw-encode.c: (alawenc_link): + * gst/law/mulaw-decode.c: (mulawdec_link): + * gst/law/mulaw-encode.c: (mulawenc_link): + Fix caps memleaks (#166600). + +2005-02-08 Tim-Philipp Müller + + * ext/tarkin/mem.h: + * ext/tarkin/wavelet.h: + * ext/tarkin/yuv.h: + * gst/ffmpegcolorspace/avcodec.h: + Include "_stdint.h" instead of . Fixes build on + systems that don't have stdint.h, like Solaris9 (fixes #166631). + +2005-02-05 Ronald S. Bultje + + * sys/ximage/ximagesink.c: (gst_ximagesink_change_state): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_clear), + (gst_xvimagesink_change_state): + Clear window on PAUSED->READY instead of READY->PAUSED. Stop + Xv video (and thereby regenerate Xv colourkey) in clear() so + that PLAY -> READY -> PLAY works (fixes #162504). + +2005-02-05 Ronald S. Bultje + + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_getcaps): + Switch to list instead of range, since MJPEG-devices really just + support decimations, not any size. + +2005-02-05 Jan Schmidt + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_open_decoder), + (gst_mpeg2dec_reset), (free_all_buffers), + (gst_mpeg2dec_alloc_buffer), (handle_sequence): + * ext/mpeg2dec/gstmpeg2dec.h: + The libmpeg2 user-allocated buffer management is awkward, + to say the least. Hopefully this fixes things. + +2005-02-04 Andy Wingo + + * gst/audioconvert/bufferframesconvert.c + (buffer_frames_convert_fixate): New function, fixates to 256 + frames per buffer by default. (Much better than 1.) + (buffer_frames_convert_init): Set the fixate function for both src + and sink pad. + (buffer_frames_convert_link): After success setting nonfixed caps, + get the negotiated caps so we can know how many buffer-frames it + will be. No idea how this worked at all before. + +2005-02-05 Jan Schmidt + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init), + (gst_mpeg2dec_close_decoder), (put_buffer), (check_buffer), + (free_buffer), (free_all_buffers), (gst_mpeg2dec_alloc_buffer), + (handle_sequence), (handle_picture): + * ext/mpeg2dec/gstmpeg2dec.h: + Rearrange buffer tracking and refcounting and refactor + a little for readability. + +2005-02-04 Jan Schmidt + * sys/v4l/gstv4l.c: (plugin_init): + * sys/v4l/gstv4ljpegsrc.c: (gst_v4ljpegsrc_get_type), + (gst_v4ljpegsrc_base_init), (gst_v4ljpegsrc_class_init), + (gst_v4ljpegsrc_init), (gst_v4ljpegsrc_src_link), + (gst_v4ljpegsrc_getcaps), (gst_v4ljpegsrc_get): + * sys/v4l/gstv4ljpegsrc.h: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_open), (gst_v4lsrc_src_link): + * sys/v4l/v4l_calls.h: + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_palette_name), + (gst_v4lsrc_get_fps): + * sys/v4l/v4lsrc_calls.h: + Add new v4ljpegsrc for handling the ov51x hacky "I'll give + you jpeg inside rgb frames" driver. + Don't error in the v4lsrc link function, just return + REFUSED. + +2005-02-03 Ronald S. Bultje + + * sys/qcam/gstqcamsrc.c: (gst_qcamsrc_change_state), + (gst_qcamsrc_open): + Use GST_ELEMENT_ERROR, not g_warning, if open failed. + +2005-02-02 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Change caps on MJPEG-B so it doesn't interfere with MJPEG/JPEG. + +2005-02-02 Ronald S. Bultje + + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_change_state): + Reset negotiated state on PAUSED->READY. + +2005-02-02 David Schleef + + * configure.ac: Put DEFAULT_AUDIOSINK in config.h and use + whereever possible. (Fixes #165997) + * examples/capsfilter/capsfilter1.c: (main): + * examples/dynparams/filter.c: (create_ui): + * examples/seeking/cdparanoia.c: (get_track_info), (main): + * examples/seeking/chained.c: (main): + * examples/seeking/seek.c: (make_mod_pipeline), (make_dv_pipeline), + (make_wav_pipeline), (make_flac_pipeline), (make_sid_pipeline), + (make_vorbis_pipeline), (make_mp3_pipeline), (make_avi_pipeline), + (make_mpeg_pipeline), (make_mpegnt_pipeline): + * examples/seeking/spider_seek.c: (make_spider_pipeline): + * examples/switch/switcher.c: (main): + * ext/dv/demo-play.c: (main): + * ext/faad/gstfaad.c: (gst_faad_change_state): + * ext/mad/gstmad.c: (gst_mad_chain): + * ext/smoothwave/demo-osssrc.c: (main): + * gst-libs/gst/gconf/gconf.c: (gst_gconf_set_string), + (gst_gconf_render_bin_from_description), + (gst_gconf_get_default_audio_sink), + (gst_gconf_get_default_video_sink), + (gst_gconf_get_default_audio_src), + (gst_gconf_get_default_video_src), + (gst_gconf_get_default_visualization_element): + * gst/level/demo.c: (main): + * gst/level/plot.c: (main): + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element): + * gst/playback/test.c: (gen_video_element), (gen_audio_element): + * gst/playondemand/demo-mp3.c: (setup_pipeline): + * gst/sine/demo-dparams.c: (main): + * gst/spectrum/demo-osssrc.c: (main): + * gst/speed/demo-mp3.c: (main): + * gst/volume/demo.c: (main): + * testsuite/embed/embed.c: (main): + +2005-02-02 Jan Schmidt + + * gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_class_init), + (gst_tcpclientsink_finalize): + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init), + (gst_tcpclientsrc_finalize): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init), + (gst_tcpserversink_init), (gst_tcpserversink_finalize): + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init), + (gst_tcpserversrc_init), (gst_tcpserversrc_finalize): + Don't leak the hostname when shutting down. + In tcpserversrc, take a copy of the default hostname. + +2005-02-01 Ronald S. Bultje + + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_iso_receive): + Set caps to systemstream=TRUE. + +2005-02-01 Ronald S. Bultje + + * testsuite/Makefile.am: + Fix more OSX buildbots. + +2005-02-02 Jan Schmidt + + * ext/mpeg2dec/gstmpeg2dec.c: + Don't send things to NULL PAD_PEERs + + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_chain): + Copy-on-write the incoming buffer. + + * gst/mpegstream/gstdvddemux.h: + * gst/mpegstream/gstmpegclock.h: + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead), + (normal_seek), (gst_mpeg_demux_handle_src_event): + * gst/mpegstream/gstmpegdemux.h: + * gst/mpegstream/gstmpegpacketize.h: + * gst/mpegstream/gstmpegparse.c: + (gst_mpeg_parse_update_streaminfo), (gst_mpeg_parse_reset), + (gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead), + (gst_mpeg_parse_loop), (gst_mpeg_parse_get_rate), + (gst_mpeg_parse_convert_src), (gst_mpeg_parse_handle_src_query), + (gst_mpeg_parse_handle_src_event), (gst_mpeg_parse_change_state): + * gst/mpegstream/gstmpegparse.h: + * gst/mpegstream/gstrfc2250enc.h: + Various changes to the way time is computed that make seeking and + total time estimation much better here. + Use G_BEGIN/END_DECLS instead of __cplusplus + + * gst/videocrop/gstvideocrop.c: (gst_video_crop_chain): + Use gst_buffer_stamp instead of only copying the TIMESTAMP + +2005-02-01 Ronald S. Bultje + + * gst/subparse/gstsubparse.c: + Fix OSX buildbot. + +2005-01-31 Tim-Philipp Müller + + * ext/theora/theoraenc.c: (theora_buffer_from_packet), + (theora_enc_chain), (theora_enc_change_state): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_init), + (gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_chain), + (gst_vorbisenc_change_state): + * ext/vorbis/vorbisenc.h: + Set granulepos and timestamp correctly for streams not + starting at 0, taking into account the initial delay. + +2005-01-31 Tim-Philipp Müller + + * gst/mpegstream/gstdvddemux.c: + Add audio/x-dts to audio pad template caps + +2005-01-30 David Schleef + + * ext/polyp/polypsink.c: (gst_polypsink_base_init), + (create_context), (gst_polypsink_link): Fix silly endianness + bug. Add some debugging. Remove float from caps; it doesn't + work. Attempt to get remote audio working. + +2005-01-29 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): + Add 3IV2 fourcc. + +2005-01-29 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream), (swap_line), + (gst_avi_demux_invert), (gst_avi_demux_process_next_entry), + (gst_avi_demux_stream_data): + * gst/avi/gstavidemux.h: + Invert DIB images. Fixes #132341. + +2005-01-29 Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_chain): + D'oh, reference the palette data, not the palette structure. + Fixes color distortion in #132341. + +2005-01-29 Ronald S. Bultje + + * gst/videoscale/gstvideoscale.c: (gst_videoscale_link): + PAR can be non-fixed when not provided as argument (#162626). + +2005-01-29 David Moore + + Reviewed by: Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_loop_header): + Re-apply patch from #142272 that allows non-seekable sources, + re-proposed by Daniel Drake . + +2005-01-29 Ronald S. Bultje + + * gst/rtp/gstrtpgsmenc.c: (gst_rtpgsmenc_init): + Use the src template for creating the src pad (#162330). + +2005-01-29 Ronald S. Bultje + + * configure.ac: + * ext/musepack/Makefile.am: + * ext/musepack/gstmusepackdec.c: (gst_musepackdec_class_init), + (gst_musepackdec_init), (gst_musepackdec_dispose), + (gst_musepackdec_src_query), (gst_musepackdec_src_convert), + (gst_musepack_stream_init), (gst_musepackdec_loop), + (gst_musepackdec_change_state): + * ext/musepack/gstmusepackdec.cpp: + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.c: (gst_musepack_reader_peek), + (gst_musepack_reader_read), (gst_musepack_reader_seek), + (gst_musepack_reader_tell), (gst_musepack_reader_get_size), + (gst_musepack_reader_canseek), (gst_musepack_init_reader): + * ext/musepack/gstmusepackreader.cpp: + * ext/musepack/gstmusepackreader.h: + Update to 1.1 API (#165446). + +2005-01-28 Ronald S. Bultje + + * ext/Makefile.am: + Unbreak buildbot. + +2005-01-28 Andy Wingo + + * ext/dv/gstdvdec.c: Change the pixel aspect ratio of dvdec output + to reflect a different dubious internet source. Add a reference + and some commentary. + +2005-01-28 Ronald S. Bultje + + * gst/playback/gststreamselector.c: (gst_stream_selector_init), + (gst_stream_selector_get_caps), (gst_stream_selector_chain): + * gst/playback/gststreamselector.h: + Be more selective when we're redoing caps negotiation from + within the chain function on a stream change. + +2005-01-28 Ronald S. Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/amrnb/Makefile.am: + * ext/amrnb/amrnb.c: (plugin_init): + * ext/amrnb/amrnbdec.c: (gst_amrnbdec_get_type), + (gst_amrnbdec_base_init), (gst_amrnbdec_class_init), + (gst_amrnbdec_init), (gst_amrnbdec_link), (gst_amrnbdec_chain), + (gst_amrnbdec_state_change): + * ext/amrnb/amrnbdec.h: + * ext/amrnb/amrnbparse.c: (gst_amrnbparse_get_type), + (gst_amrnbparse_base_init), (gst_amrnbparse_class_init), + (gst_amrnbparse_init), (gst_amrnbparse_formats), + (gst_amrnbparse_querytypes), (gst_amrnbparse_query), + (gst_amrnbparse_handle_event), (gst_amrnbparse_reserve), + (gst_amrnbparse_loop), (gst_amrnbparse_state_change): + * ext/amrnb/amrnbparse.h: + Add support for AMR-NB (mobile phone audio format; #155163, #163286). + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + Add AMR-NB/-WB raw formats. + * ext/alsa/gstalsa.c: (gst_alsa_link): + Keep valid time when changing format. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse_trak): + Add some more format-specific options (#140141, #143555, #155163). + +2005-01-28 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_blockgroup): + Fix logic error in timing of subtitle stream synchronization. + * gst/typefind/gsttypefindfunctions.c: (qt_type_find): + Add skip-chunk, which is found in kodak-camera streams. + +2005-01-27 Thomas Vander Stichele + + * po/LINGUAS: + * po/vi.po: + Adding Vietnamese translation (submitted by Clytie Siddall) + +2005-01-27 Ronald S. Bultje + + * gst/playback/gstdecodebin.c: (try_to_link_1): + Use realpad for signal. + +2005-01-27 Ronald S. Bultje + + * ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_base_init): + Fix category so decodebin picks it up. + +2005-01-27 Ronald S. Bultje + + * ext/mad/Makefile.am: + * ext/mad/gstid3demuxbin.c: (gst_id3demux_bin_get_type), + (gst_id3demux_bin_base_init), (gst_id3demux_bin_class_init), + (gst_id3demux_bin_init), (gst_id3demux_bin_remove_pad), + (found_type), (gst_id3demux_bin_change_state): + * ext/mad/gstid3tag.c: (gst_id3_tag_add_src_pad), + (gst_id3_tag_init), (gst_id3_tag_handle_event), + (gst_id3_tag_src_link), (gst_id3_tag_chain), + (gst_id3_tag_change_state), (plugin_init): + * ext/mad/gstmad.h: + Add id3demuxbin (which is a simple bin consisting of id3demux + and typefind), take over rank from id3demux, remove typefind + code from id3demux. Makes all broken mp3s that I know of work, + and thereby fixes #152688. + +2005-01-27 Edward Hervey + + Reviewed by: Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_src_event): + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event): + Allow seeks on audio pad, make mad forward those (#164826). + * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): + Set duration (#165335). + +2005-01-27 Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init), + (gst_asf_demux_commit_taglist), (gst_asf_demux_process_comment), + (gst_asf_demux_process_ext_content_desc), + (gst_asf_demux_change_state), (gst_asf_demux_add_audio_stream), + (gst_asf_demux_add_video_stream), (gst_asf_demux_setup_pad): + * gst/asfdemux/gstasfdemux.h: + Improve metadata display, e.g. if the metadata comes before the + streams are loaded (which is perfectly valid). + +2005-01-27 Ronald S. Bultje + + * tools/gst-launch-ext-m.m: + Fix AVI/ASF pipelines (#165340). + +2005-01-26 Amaury Jacquot + * ext/cairo/gsttextoverlay.c: include string.h and strings.h to fix + build failure on amd64 + +2005-01-26 Tim-Philipp Müller + + * ext/mad/gstid3tag.c: (mad_id3_parse_latin1_string), + (mad_id3_parse_comment_frame), (gst_mad_id3_to_tag_list): + Check environment variables GST_ID3V2_TAG_ENCODING, + GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated + list of character encodings to force interpretation of non-unicode + strings stored in an ID3v2 tag to a particular encoding. If none + is specified, try to use current locale's encoding, then fall back + to ISO-8859-1 (which will always succeed). (Resolves #149274) + * gst/tags/gstid3tag.c: (gst_tag_from_id3_tag), + (gst_tag_extract_id3v1_string), (gst_tag_list_new_from_id3v1): + Check environment variables GST_ID3V1_TAG_ENCODING, + GST_ID3_TAG_ENCODING and GST_TAG_ENCODING for a colon-separated + list of character encodings to use in case a string encountered + in an ID3v1 tag is not valid UTF-8 already. If no encoding is + specified, try to use the current locale's encoding, then fall + back to ISO-8859-1 (which will always succeed). + +2005-01-25 Benjamin Otte + + * ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain): + - on half framerate, compute the rate in advance so the comparisons + don't compare wrong values + - don't use mad_synth/frame_mute anymore, this mirrors mad_decoder + behaviour + - don't use mad_header_decode anymore, mad_frame_decode does that + automatically + - when getting rid of consumed bytes, reset the stream's skiplen + (fixes #163867) + +2005-01-26 Jan Schmidt + + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init) + Use 1/2 a second for default max_discont, as PES streams from DVB + seem to have larger spacings in the SCR. + Fix a typo. + +2005-01-25 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (group_commit): + Notify delayed stream-info availability. + +2005-01-26 Jan Schmidt + * ext/a52dec/gsta52dec.c: (gst_a52dec_push), + (gst_a52dec_handle_event), (gst_a52dec_chain): + Add some debug output. Check that a discont has a valid + time associated. + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event), + (gst_alsa_sink_loop): + Ignore TAG events. A little extra debug for broken timestamps. + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), (dvdnavsrc_loop), + (dvdnavsrc_change_state): + Ensure we send a discont to engage the link before we send any + other events. + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_init), + (dvdreadsrc_finalize), (_close), (_open), (_seek_title), + (_seek_chapter), (seek_sector), (dvdreadsrc_get), + (dvdreadsrc_uri_get_uri), (dvdreadsrc_uri_set_uri): + Handle URI of the form dvd://title[,chapter[,angle]]. Currently only + dvd://title works in totem because typefinding sends a seek that ends + up going back to chapter 1 regardless. + * ext/mpeg2dec/gstmpeg2dec.c: + * ext/mpeg2dec/gstmpeg2dec.h: + Output correct timestamps and handle disconts. + * ext/ogg/gstoggdemux.c: (get_relative): + Small guard against a null dereference. + * ext/pango/gsttextoverlay.c: (gst_textoverlay_finalize), + (gst_textoverlay_set_property): + Free memory when done. Don't call gst_event_filler_get_duration on + EOS events. Use GST_LOG and GST_WARNING instead of g_message and + g_warning. + * ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_init), + (draw_line), (gst_smoothwave_dispose), (gst_sw_sinklink), + (gst_sw_srclink), (gst_smoothwave_chain): + Draw solid lines, prettier colours. + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_init): + Add a default palette that'll work for some movies. + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_init), + (gst_dvd_demux_handle_dvd_event), (gst_dvd_demux_send_discont), + (gst_dvd_demux_send_subbuffer), (gst_dvd_demux_reset): + * gst/mpegstream/gstdvddemux.h: + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_discont), + (gst_mpeg_demux_parse_syshead), (gst_mpeg_demux_parse_pes): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init), + (gst_mpeg_parse_handle_discont), (gst_mpeg_parse_parse_packhead): + * gst/mpegstream/gstmpegparse.h: + Use PTM/NAV events when for timestamp adjustment when connected to + dvdnavsrc. Don't use many discont events where one suffices. + * gst/playback/gstplaybasebin.c: (group_destroy), + (gen_preroll_element), (gst_play_base_bin_add_element): + * gst/playback/gstplaybasebin.h: + Make sure we remove subtitles from the same bin we put them in. + * gst/subparse/gstsubparse.c: (convert_encoding), (parse_subrip), + (gst_subparse_buffer_format_autodetect), + (gst_subparse_change_state): + Fix some memleaks and invalid accesses. + * gst/typefind/gsttypefindfunctions.c: (ogganx_type_find), + (oggskel_type_find), (cmml_type_find), (plugin_init): + Some typefind functions for Annodex v3.0 files + * gst/wavparse/gstwavparse.h: + GstRiffReadClass is the correct parent class. + +2005-01-25 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + Add extradata to huffyuv (fixes #165013). + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_vids_with_data): + Fix extradata extraction if it is in the chunk size. + +2005-01-25 Edward Hervey + + Reviewed by: Ronald S. Bultje + + * gst/effectv/gstquark.c: (gst_quarktv_class_init), + (gst_quarktv_change_state), (gst_quarktv_dispose): + Memory free'ing location fix (#164708). + +2005-01-25 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (group_commit), + (gen_preroll_element), (probe_triggered), (gen_source_element), + (setup_source), (gst_play_base_bin_change_state), + (gst_play_base_bin_add_element): + Don't block for streams. + * gst/playback/gststreaminfo.c: (stream_info_change_state), + (gst_stream_info_set_mute): + Use gst_pad_set_active_recursive. + +2005-01-25 Andy Wingo + + * sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Fix compile + for #ifndef HAVE_XVIDEO. + +2005-01-24 Jeffrey C. Ollie + + reviewed by: Maciej Katafiasz + + * ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_chain): + * ext/gsm/gstgsmdec.h: + * ext/gsm/gstgsmenc.c: (gst_gsmenc_init), (gst_gsmenc_chain): + * ext/gsm/gstgsmenc.h: + Fix rate to 8kHz as per spec, removes obscure errors when no rate + was given by property. Add proper buffer timestamps and offsets. + +2005-01-24 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data): + Audio can be <8000Hz. + +2005-01-22 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state): + Explicit state change to workaround refcount bugs. + +2005-01-22 Ronald S. Bultje + + * gst/avi/gstavimux.c: (gst_avimux_write_tag), + (gst_avimux_riff_get_avi_header): + Fix... + +2005-01-19 Ronald S. Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_element_data), + (gst_riff_read_element_data): + * gst-libs/gst/riff/riff-read.h: + Add _peek version (req'ed in CDXA). + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_init), + (gst_cdxaparse_loop): + Fix parsing in playbin. + * gst/playback/gstdecodebin.c: (close_pad_link): + Ignore current_ pads, they cause major annoyance. + +2005-01-19 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + Safety guard. + +2005-01-19 Ronald S. Bultje + + * gst/avi/gstavimux.c: (gst_avimux_write_tag): + Fix padding... + +2005-01-19 Ronald S. Bultje + + * gst/matroska/ebml-read.c: (gst_ebml_read_buffer): + Allow for 0-sized buffers. Fixes length query problems in + starwars.mkv from the testsuite. + +2005-01-19 Tim-Philipp Müller + + * gst/videobox/gstvideobox.c: (gst_video_box_copy_plane_i420), + (gst_video_box_i420), (gst_video_box_chain): + Fix row strides for I420 (fixes #163159) + +2005-01-19 Ronald S. Bultje + + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead): + MPEG2 has a useful rate property, so we can actually use that. + For MPEG-1, continue using the bytes/time properties. + +2005-01-19 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_template_caps): + Add intel-h263. + +2005-01-19 Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain): + Fail if caps negotiation fails. Should fix #162184, and should + definately be in there regardless of it fixing the actual bug. + * gst/avi/gstavimux.c: (gst_avimux_get_type), (gst_avimux_init), + (gst_avimux_write_tag), (gst_avimux_riff_get_avi_header), + (gst_avimux_riff_get_avix_header), + (gst_avimux_riff_get_video_header), + (gst_avimux_riff_get_audio_header), (gst_avimux_write_index), + (gst_avimux_start_file), (gst_avimux_handle_event), + (gst_avimux_change_state): + * gst/avi/gstavimux.h: + Refactor structure writing to use GST_WRITE_UINT macros, add + metadata writing support. + +2005-01-18 Ronald S. Bultje + + * gst/playback/gststreaminfo.c: (gst_stream_info_dispose): + Elements may already be destroyed when this function is called. + +2005-01-18 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_loop_header), (gst_qtdemux_handle_esds): + More memory leak fixes (#149162). + +2005-01-18 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_add_stream): + Fix two memleaks. + +2005-01-18 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_srcgetcaps): + Argh... + +2005-01-17 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_srcgetcaps): + Fix off-by-one bug. Fixes warnings during playback of sincity.mp4 + when fixating to six channels in Totem. + +2005-01-17 Tim-Philipp Müller + + * ext/dvdread/dvdreadsrc.c: (get_next_cell_for): + Fix compile warnings on Solaris 10 buildbot + +2005-01-17 Tim-Philipp Müller + + * ext/dvdread/dvdreadsrc.c: (_read): + Don't read beyond the last cell in a chapter (fixes + invalid memory access) + +2005-01-17 Tim-Philipp Müller + + * ext/dvdread/stream_labels.c: + (dvdreadsrc_get_audio_stream_labels): + Use NULL for an empty GList instead of g_list_alloc(); fix + memory leaks; s/LCPM/LPCM/; use g_strdup_printf() instead + of GString (easier to bulk free later) + +2005-01-17 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_pixfmt_to_caps): + Fix BGRA32 caps (#164209). + +2005-01-17 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_caps_to_pixfmt): + alpha_mask can be RGBA/ABGR. Fixes #164265. + +2005-01-17 Francis Labonte + + Reviewed by: Ronald S. Bultje + + * ext/mpeg2dec/gstmpeg2dec.c: (crop_buffer), + (gst_mpeg2dec_alloc_buffer): + * ext/mpeg2dec/gstmpeg2dec.h: + Crop if decoding size is not the actual image size (#163676). + +2005-01-17 Steve Baker + + Reviewed by: Ronald S. Bultje + + * gst/typefind/gsttypefindfunctions.c: (aiff_type_find), + (svx_type_find), (sds_type_find), (ircam_type_find), (plugin_init): + Add libsndfile typefind functions (#163309). + +2005-01-17 Ronald S. Bultje + + * tools/gst-launch-ext-m.m: + Add .aac, fix .m1v/.m2v (#163891). + +2005-01-17 Ronald S. Bultje + + * ext/alsa/gstalsaclock.c: (gst_alsa_clock_wait): + Sanity check, don't wait endlessly since the clock might not + actually run at this point (which is a deadlock). Fixes #164069. + +2005-01-16 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (probe_triggered): + Of course, only pause if group is done... + +2005-01-16 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (probe_triggered): + Thread safety. + +2005-01-16 Jan Schmidt + + * ext/swfdec/gstswfdec.c: (gst_swfdec_change_state): + Don't return state change success when the parent + failed. + +2005-01-16 Ronald S. Bultje + + * gst/avi/gstavimux.c: (gst_avimux_handle_event): + Free events (fix memleak in #162905). + +2005-01-15 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_caps_to_pixfmt): + Fix for depth = 15. Fixes #161675. + +2005-01-14 Ronald S. Bultje + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps): + Set FPS correctly, even for webcams and the like. + * sys/v4l/v4l_calls.c: (gst_v4l_set_chan_norm): + Don error on setting while capturing. + +2005-01-14 Stephane LOEUILLET + + * ext/dv/gstdvdec.c: + * gst/subparse/gstsubparse.c: (parse_mdvdsub): + * gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect): + I'm a bad boy. using /1001. to force C to do float division + and not integer division (as it did in my last commit) + Thanks to David I. Lehn for pointing this mistake. + +2005-01-14 Ronald S. Bultje + + * sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported): + Revert Johan´s 1.35->1.36 since it breaks compat. + +2005-01-14 Stephane LOEUILLET + + * ext/dv/gstdvdec.c: + * ext/libfame/gstlibfame.c: + * gst/subparse/gstsubparse.c: (parse_mdvdsub): + * gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect): + replace framerate aproximations by their real value + (24000/1001, 30000/1001, 60000/1001) + Finish fixing bug #164049 + +2005-01-13 Thomas Vander Stichele + + * ext/ogg/gstoggmux.c: + eos/bos debugging + * gst/tcp/gstmultifdsink.c: + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcp.h: + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversrc.c: + improve reusability of elements after state changes and errors + make multifdsink throw away streamheaders when receiving new ones + +2005-01-13 Ronald S. Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_rates_probe): + Fix for if items are already in list... + +2005-01-12 Benjamin Otte + + * gst/adder/gstadder.c: (gst_adder_loop): + fix adder a bit so it doesn't screw up with events as much anymore + +2005-01-12 Jan Schmidt + + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_link), + (pixbufscale_scale), (gst_pixbufscale_chain): + * ext/gdk_pixbuf/pixbufscale.h: + Incorporate changes from Tim-Philipp Mueller + to ensure rowstrides are calculated the same way as + ffmpegcolorspace + Use gst_buffer_stamp instead of copying TIMESTAMP manually, so + that we pick up duration and offset also. + +2005-01-11 Ronald S. Bultje + + * gst/avi/gstavimux.c: (gst_avimux_class_init), + (gst_avimux_pad_unlink), (gst_avimux_release_pad): + Reusability fixes. + +2005-01-11 Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update), + (gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume), + (gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record), + (gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option): + Update flags when requested. + +2005-01-11 Ronald S. Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_rates_probe): + Fix dmix. + +2005-01-11 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (gst_play_base_bin_init), (gst_play_base_bin_dispose), + (probe_triggered), (new_decoded_pad), (gen_source_element), + (gst_play_base_bin_set_property), (gst_play_base_bin_get_property): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_class_init), + (gst_play_bin_init), (group_switch), (remove_sinks), (setup_sinks), + (gst_play_bin_change_state): + Implement group-switch signal for use in apps to clear metadata + cache, clean up subtitle, add suburi property instead of # hack, + some error-out fixes. + +2005-01-11 Ronald S. Bultje + + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + Debug. + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame): + If we got a state change in the _get handler, don't return success. + +2005-01-10 Stephane LOEUILLET + + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_my_output_message), + (gst_jpegdec_my_emit_message), (gst_jpegdec_init): + Make jpegdec quiet on MJPEG decoding + * gst/asfdemux/README: + Fix mimetypes for MJPEG and H263 + +2005-01-10 Ronald S. Bultje + + * ext/theora/theoradec.c: (theora_dec_chain): + Fix broken code generation by gcc by swapping arguments. + * ext/vorbis/vorbisdec.c: (vorbis_dec_src_query): + Fix \n in debug. + +2005-01-10 Stephane LOEUILLET + + * TODO: + delete this file, it is by far outdated + * ext/alsa/gstalsa.1: remove + * ext/alsa/gstalsa.c: (add_rates), (add_channels), (gst_alsa_caps), + (gst_alsa_check_sample_rates), (gst_alsa_rates_probe), + (gst_alsa_get_caps): + Add HW probing for supported sample rates. Fixes #161704 + +2005-01-10 Ronald S. Bultje + + * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): + Don't crash, biatch! :). + +2005-01-10 Ronald S. Bultje + + * ext/musepack/gstmusepackreader.cpp: + * gst/apetag/apedemux.c: (gst_ape_demux_stream_data): + Some work on tags - still doesn't work in playbin... + * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): + Handle events... + +2005-01-10 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_parse_tree): + Also shove tags on kid pads. + +2005-01-10 Ronald S. Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event): + Don't bail on unknown events. + * gst/audioscale/gstaudioscale.c: (gst_audioscale_chain): + Don't crash on events before negotiation. + * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): + Send tags on pads, too. + * gst/playback/gststreamselector.c: + (gst_stream_selector_request_new_pad): + Forward events on first pad if no input was selected yet. + +2005-01-10 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (setup_substreams): + Don't disable streamtype if the stream doesn't exist, since + then playing a video after audio will disable both and nothing + will happen. Fixes the testsuite. + +2005-01-10 Ronald S. Bultje + + * sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_interface_init), + (gst_v4l_xoverlay_set_xwindow_id): + * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_interface_init), + (gst_v4l2_xoverlay_set_xwindow_id): + Add debug categories, fix overlay disabling. + +2005-01-10 Stephane LOEUILLET + + * ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_get_caps): + * ext/alsa/gstalsa.h: + Add HW probing for period_count/size and buffer_size MIX/MAX + Adjust default/user defined value if out of bounds + Should fix bug #162024 + +2005-01-09 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event): + Fix warning (#161191). + +2005-01-09 Stephane LOEUILLET + + * ext/dvdread/stream_labels.c: + (dvdreadsrc_get_audio_stream_labels): + Fix warning (init the good variable in switch default) + +2005-01-09 Koop Mast + + Reviewed by: Ronald S. Bultje + + * gst/tta/gstttaparse.c: (gst_tta_src_event): + Fix gcc-2.95 compile (#163485). + +2005-01-09 Ronald S. Bultje + + * configure.ac: + * ext/flac/gstflacenc.c: (gst_flacenc_init), + (gst_flacenc_seek_callback), (gst_flacenc_write_callback), + (gst_flacenc_tell_callback), (gst_flacenc_chain), + (gst_flacenc_change_state): + * ext/flac/gstflacenc.h: + Update for API change in flac-1.1.1. Update requirement in + configure.ac. Fixes #162974. + +2005-01-09 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (group_destroy): + Remove hack to get rid of assert and get rid of unlinked + signals properly. + +2005-01-09 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (setup_source): + Set source to NULL so that resources are free'ed. Fixes issues + with playback of CDDA and similar device-accessing things. + +2005-01-09 Ronald S. Bultje + + * testsuite/embed/Makefile.am: + test->noinst, fix make test in buildbot. + +2005-01-09 Stephane LOEUILLET + + * ext/dvdread/stream_labels.c: new file + * ext/dvdread/stream_labels.h: new file + * ext/dvdread/Makefile.am: + * ext/dvdread/dvdreadsrc.c: (_seek_title): + Extract audio stream label from DVD IFO files. + It only dump them on the console for now, still have to + make playbin aware of them. + +2005-01-09 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (setup_source): + Fix hanging subs. + +2005-01-09 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_init), + (gen_preroll_element), (remove_groups), (setup_subtitle), + (gen_source_element), (setup_source): + * gst/playback/gstplaybasebin.h: + Multiple .sub files is just a stupid idea... Fix some threading + mistakes. Interestingly, external .sub files cause playbin to + hang, I don't know why... Parsing fixes contributed by François + Kooman . + +2005-01-09 Ronald S. Bultje + + * testsuite/embed/Makefile.am: + Fix buildbot. + +2005-01-09 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * ext/libpng/gstpngenc.c: (gst_pngenc_class_init), + (gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property), + (gst_pngenc_set_property): + * ext/libpng/gstpngenc.h: + Add compression level property (#163323). + +2005-01-09 Ronald S. Bultje + + * configure.ac: + * examples/capsfilter/capsfilter1.c: (main): + * examples/seeking/spider_seek.c: (make_spider_pipeline): + * ext/dvdread/Makefile.am: + * ext/dvdread/demo-play: + * ext/dvdread/demo-play.c: + * gconf/gstreamer.schemas.in: + * gst-libs/gst/gconf/gconf.c: + * sys/v4l/TODO: + * testsuite/Makefile.am: + * testsuite/embed/Makefile.am: + * testsuite/embed/embed.c: (cb_expose), (main): + Remove all references to xvideosink, fix examples (#140845). + * gst/playback/gstplaybasebin.c: (group_destroy): + Apparently, disposal does not unlink - so do explicitely. + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + Add debug. + +2005-01-09 Maciej Katafiasz + + * README: fix PKG_CONFIG_PATH instructions, what was there + previously was breaking default search path, not nice. + Fixes #163358 + +2005-01-09 Ronald S. Bultje + + * gst/audioscale/gstaudioscale.c: (gst_audioscale_init), + (gst_audioscale_chain): + %#^@^#@^@#^#@^#@^@#^@#^@#^@#^#@^#@^#@^@#^#@ fix seeking + when resampling - how the ^@$^!@^! is this possible?!? + +2005-01-09 Ronald S. Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_change_state): + Reset variables on READY. + * gst/matroska/matroska-mux.c: (gst_matroska_mux_request_new_pad), + (gst_matroska_mux_loop): + Require data before writing header. + +2005-01-09 Francis Labonte + + Reviewed by: Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_chain): + Don't call mad_stream_sync() directly after recovering sync. + Fixes #151661. + +2005-01-09 Martin Eikermann + + Reviewed by: Ronald S. Bultje + + * ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init), + (snapshot_handler), (gst_snapshot_sinkconnect), + (gst_snapshot_chain): + Allocate resources when required, fix recursive signal emission + and fix caps. Fixes #161667. + +2005-01-09 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps), + (gst_pngdec_chain): + Handle only 8-bppc (bits-per-pixel-component) images, better + error handling and correct strides. Fixes #163177. + * ext/libpng/gstpngenc.c: (gst_pngenc_sinklink), + (gst_pngenc_chain): + Better error handling. Fixes #163348. + +2005-01-09 Ronald S. Bultje + + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_get_type), + (dvdnavsrc_uri_get_type), (dvdnavsrc_uri_get_protocols), + (dvdnavsrc_uri_get_uri), (dvdnavsrc_uri_set_uri), + (dvdnavsrc_uri_handler_init): + Add DVD-nav URI (dvdnav://) for Totem testing purposes. + * gst/playback/gstplaybasebin.c: (gen_source_element): + Add MMS to streaming URIs. + +2005-01-09 Ronald S. Bultje + + * sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event): + * sys/xvimage/xvimagesink.c: + (gst_xvimagesink_navigation_send_event): + Check for pad availability before sending event. + +2005-01-08 Ronald S. Bultje + + * gst-plugins.spec.in: + Add subparse. + +2005-01-08 Ronald S. Bultje + + * configure.ac: + Since we use functions from CVS, up requirement. + +2005-01-08 Ronald S. Bultje + + * gst/playback/Makefile.am: + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (group_destroy), (group_commit), (group_is_muted), + (gen_preroll_element), (add_stream), (unknown_type), + (probe_triggered), (preroll_unlinked), (mute_stream), + (silence_stream), (new_decoded_pad), (setup_substreams), + (setup_source), (get_active_source), (mute_group_type), + (muted_group_change_state), (set_active_source), + (gst_play_base_bin_set_property), (gst_play_base_bin_get_property), + (play_base_eos), (gst_play_base_bin_change_state): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (add_sink), (setup_sinks): + * gst/playback/gststreaminfo.c: (gst_stream_info_class_init), + (gst_stream_info_dispose), (stream_info_mute_pad), + (stream_info_change_state), (gst_stream_info_set_mute): + * gst/playback/gststreamselector.c: (gst_stream_selector_get_type), + (gst_stream_selector_base_init), (gst_stream_selector_class_init), + (gst_stream_selector_init), (gst_stream_selector_dispose), + (gst_stream_selector_get_linked_pad), + (gst_stream_selector_get_caps), (gst_stream_selector_link), + (gst_stream_selector_get_linked_pads), + (gst_stream_selector_request_new_pad), (gst_stream_selector_chain): + * gst/playback/gststreamselector.h: + Adding stream selection support plus required properties for + applications to use this. Fully fixes #100931. + +2005-01-08 Benjamin Otte + + * gst/games/gstpuzzle.c: (nav_event_handler): + - handle nav events differently: forward every event no matter if it + was handled or not. + - translate events + You can now cheat by using navigationtest ! puzzle and moving the + mouse close to the edge of a tile. ;) + +2005-01-08 Ronald S. Bultje + + * configure.ac: + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_new): + * ext/ogg/gstogmparse.c: (gst_ogm_text_parse_get_type), + (gst_ogm_text_parse_base_init), (gst_ogm_text_parse_init), + (gst_ogm_parse_get_sink_querytypes), (gst_ogm_parse_sink_convert), + (gst_ogm_parse_sink_query), (gst_ogm_parse_chain), + (gst_ogm_parse_plugin_init): + * ext/pango/gsttextoverlay.c: (gst_textoverlay_linkedpads), + (gst_textoverlay_link), (gst_textoverlay_getcaps), + (gst_textoverlay_event), (gst_textoverlay_video_chain), + (gst_textoverlay_loop), (gst_textoverlay_init), (plugin_init): + * ext/pango/gsttextoverlay.h: + * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), + (gst_matroska_demux_handle_seek_event), + (gst_matroska_demux_sync_streams), + (gst_matroska_demux_parse_blockgroup), + (gst_matroska_demux_subtitle_caps), + (gst_matroska_demux_plugin_init): + * gst/matroska/matroska-ids.h: + * gst/playback/gstdecodebin.c: (close_pad_link): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_init), + (gen_preroll_element), (remove_groups), (add_stream), + (new_decoded_pad), (setup_subtitles), (gen_source_element), + (setup_source): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gen_text_element), (setup_sinks): + * gst/subparse/Makefile.am: + * gst/subparse/gstsubparse.c: (gst_subparse_get_type), + (gst_subparse_base_init), (gst_subparse_class_init), + (gst_subparse_init), (gst_subparse_formats), + (gst_subparse_eventmask), (gst_subparse_event), + (gst_subparse_handle_event), (convert_encoding), (get_next_line), + (parse_mdvdsub), (parse_mdvdsub_init), (parse_subrip), + (parse_subrip_deinit), (parse_subrip_init), (parse_mpsub), + (parse_mpsub_deinit), (parse_mpsub_init), + (gst_subparse_buffer_format_autodetect), + (gst_subparse_format_autodetect), (gst_subparse_loop), + (gst_subparse_change_state), (gst_subparse_type_find), + (plugin_init): + * gst/subparse/gstsubparse.h: + * gst/typefind/gsttypefindfunctions.c: (ogmtext_type_find), + (plugin_init): + Add subtitle support, .sub parser (supports SRT and MPsub), + OGM text support, Matroska UTF-8 text support, deadlock fixes + all over the place, subtitle awareness in decodebin/playbin + and some fixes to textoverlay to handle subtitles in a stream + correctly. Fixes #100931. + +2005-01-08 Ronald S. Bultje + + * ext/vorbis/vorbisdec.c: (vorbis_dec_src_query): + Check for pad availability before doing a query on it. + +2005-01-08 Stephane LOEUILLET + + * ext/dv/gstdvdec.c: + really fix bpp24/32 dvdec caps (classic rgba indeed) + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc): + don't send text tags if they are empty (bis repetita) + +2005-01-08 Stephane LOEUILLET + + * ext/dv/gstdvdec.c: + remove unneeded comment from dvdec + (related to DV 4CC codes in AVI files) + moved them in gstreamer/docs/random/mimetypes + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc): + don't send text tags if they are empty + fix mem leak on error path + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt), + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/imgconvert.c: (img_get_alpha_info): + * gst/ffmpegcolorspace/imgconvert_template.h: + adds BGR32 and BGRA32 to ffmpegcolorspace + (still bad colors, fixing it on next commit) + helps with dvdec outputing BGR32 + +2005-01-08 Stephane LOEUILLET + + * ext/dv/gstdvdec.c: + Fix audio caps i just broke (missing ',') + * gst/matroska/matroska-mux.c: (gst_matroska_mux_get_type), + (gst_matroska_mux_reset): + Fix typo + add FIXME about old "x-gst-metadata" crap + +2005-01-07 Stephane LOEUILLET + + * ext/dv/demo-play.c: (main): + xvideosink -> xvimagesink + * ext/dv/gstdvdec.c: + change rgb 32/32 caps to 24/32 (no alpha) + change nb of channels to be a list (2 or 4, not 2) + change sample rate to be a list (32, 44.1, 48 kHz) not a range + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc): + Add 'date/year' to extracted metadata list + +2005-01-07 Ronald S. Bultje + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate): + The return value of fixate_to does not imply that the requested + value was set, so don't assume. + +2005-01-07 Gergely Nagy + + Reviewed by: Ronald S. Bultje + + * ext/libpng/gstpngdec.c: + * ext/libpng/gstpngenc.c: (gst_pngenc_base_init), + (gst_pngenc_sinklink), (gst_pngenc_init), (gst_pngenc_chain): + * ext/libpng/gstpngenc.h: + Alpha support (encoder; #163161), mime fixage. + +2005-01-07 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * ext/faac/gstfaac.c: (gst_faac_outputformat_get_type), + (gst_faac_class_init), (gst_faac_init), (gst_faac_srcconnect), + (gst_faac_set_property), (gst_faac_get_property): + * ext/faac/gstfaac.h: + Allow for ADTS output (#153434). + +2005-01-07 Ronald S. Bultje + + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps): + Fix against template (#150576). + +2005-01-06 Benjamin Otte + + * gst/games/gstpuzzle.c: (draw_puzzle): + don't draw a puzzle if either width or height of tiles would be 0. + +2005-01-06 Benjamin Otte + + * gst/games/gstpuzzle.c: (gst_puzzle_get_type), + (gst_puzzle_class_init), (gst_puzzle_finalize): + no memleaks, please + (gst_puzzle_create), (gst_puzzle_init), + (gst_puzzle_set_property), (gst_puzzle_setup): + change initialization code around so we don't reshuffle on resize + (draw_puzzle): + fix another stupid typo + +2005-01-06 Benjamin Otte + + * gst/games/gstvideoimage.c: (copy_hline_YUY2): + fix stupid typo that borked copying on YUY2 + +2005-01-06 Benjamin Otte + + * gst/games/gstpuzzle.c: (draw_puzzle): + fix edges when image sizes aren't multiples of tile sizes + +2005-01-06 Benjamin Otte + + * gst/games/gstpuzzle.c: (gst_puzzle_base_init): + make RGB endianness work correctly + (gst_puzzle_show), (gst_puzzle_swap), (gst_puzzle_move): + refactor and fix race with initial shuffling + (nav_event_handler): + allow using the mouse to puzzle + (draw_puzzle): + insist on tiles having width and height as multiples of 4 to get + clean YUV image handling + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new), + (gst_xvimagesink_handle_xevents), (gst_xvimagesink_buffer_alloc): + s/DEBUG/LOG/ for common messages + (gst_xvimagesink_navigation_send_event): + fix mouse event translation to not include screen PAR + * sys/ximage/ximagesink.c: (gst_ximagesink_navigation_send_event): + fix mouse event translation to actually work + +2005-01-06 Stephane LOEUILLET + + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc): + Extract TrackNumber metadata + clean up code + * gst/games/gstvideoimage.c: (gst_video_image_draw_rectangle): + Hope this is the good fix (var used unitialised) + +2005-01-06 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_chain): + Only increment timestamp if it's valid. Fixes raw AAC streams. + +2005-01-06 Benjamin Otte + + * configure.ac: + * gst/games/Makefile.am: + * gst/games/gstpuzzle.c: + add a puzzle game with... + * gst/games/gstvideoimage.c: + * gst/games/gstvideoimage.h: + ... full colorspace support (that includes YUV9 and RGB16)) stolen + from videotestsrc and made into something that would be a nice + library for a lot of other plugins. + +2005-01-06 Stephane LOEUILLET + + * configure.ac: + don't compile faad plugin if a RC of 2.0 is found + Fixes #155346 (and FC1 buildbot) + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc): + try to make Solaris compiler happier + +2005-01-06 Paul Jack + + Reviewed by: Ronald S. Bultje + + * ext/snapshot/gstsnapshot.c: (gst_snapshot_class_init): + Fix segfault (#161667). + +2005-01-05 Ronald S. Bultje + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps): + Fix framerate reporting. + +2005-01-05 Stephane LOEUILLET + + * gst-libs/gst/riff/riff-ids.h: + * gst/wavenc/riff.h: + Add AMR (VBR and CBR) ids to riff.h audio codec list + * gst/asfdemux/gstasfdemux.c: + (gst_asf_demux_process_ext_content_desc), + (gst_asf_demux_process_object): + Retrieve more tags from ASF files (Genre, AlbumTitle, Artist) + +2005-01-05 Martin Eikermann + + Reviewed by: Ronald S. Bultje + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init), + (gst_dvd_demux_handle_discont): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_class_init), + (gst_mpeg_demux_handle_discont): + Recreate pads on new-media (#160730). + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_new_pad): + Send discont even if manager changes timestamps (#161929). + +2005-01-05 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16): + Fix invalid memory access (#159211). + +2005-01-05 Ronald S. Bultje + + * examples/gstplay/player.c: (main): + Don't iterate. + * examples/seeking/seek.c: (fixate), (make_playerbin_pipeline): + Add visualizations. + * ext/a52dec/gsta52dec.c: (gst_a52dec_push), + (gst_a52dec_handle_frame): + Set duration. + * ext/dvdnav/gst-dvd: + Add audioconvert. Fixes #161325. + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get): + Explicitely case to gint64. Possible valgrind error. + * gst-libs/gst/play/play.c: (caps_set), (setup_size), + (gst_play_tick_callback), (gst_play_change_state), + (gst_play_dispose), (gst_play_init), (gst_play_class_init), + (gst_play_set_location), (gst_play_get_location), + (gst_play_seek_to_time), (gst_play_set_data_src), + (gst_play_set_video_sink), (gst_play_set_audio_sink), + (gst_play_set_visualization), (gst_play_connect_visualization), + (gst_play_get_framerate), (gst_play_get_all_by_interface), + (gst_play_new): + Use playbin. Fixes #139749 and #147744. + * gst/apetag/apedemux.c: (gst_ape_demux_parse_tags): + Add genre tag. + * gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type), + (audioscale_get_type), (gst_audioscale_base_init), + (gst_audioscale_class_init), (gst_audioscale_expand_caps), + (gst_audioscale_getcaps), (gst_audioscale_fixate), + (gst_audioscale_link), (gst_audioscale_get_buffer), + (gst_audioscale_decrease_rate), (gst_audioscale_increase_rate), + (gst_audioscale_init), (gst_audioscale_dispose), + (gst_audioscale_chain), (gst_audioscale_set_property), + (gst_audioscale_get_property), (plugin_init): + Indent properly. + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private): + Fix LPCM. + * gst/qtdemux/qtdemux.c: (qtdemux_parse_udta), + (qtdemux_tag_add_str), (qtdemux_tag_add_num), + (qtdemux_tag_add_gnre), (qtdemux_video_caps): + Add more metadata (fixes #162656). + +2005-01-05 Thomas Vander Stichele + + * configure.ac: + back to cvs + +=== release 0.8.7 === + +2005-01-05 Thomas Vander Stichele + + * NEWS: + * RELEASE: + * configure.ac: + releasing 0.8.7, "Hyperspace" + +2005-01-05 Thomas Vander Stichele + + patch by: Tim-Philipp Müller + + * gst/playback/gstplaybasebin.c: + Fix for #162924 - free caps after use, not before + +2005-01-04 Thomas Vander Stichele + + patch by: Ronald Bultje + + * gst/playback/gstplaybasebin.c: + * gst/wavparse/gstwavparse.c: + Fix for #154773 - fixes playback of small .wav files + +2005-01-03 Thomas Vander Stichele + + patch by: Ronald Bultje + + * gst/audioscale/gstaudioscale.c: + Fix for #162819 - make audioscale reusable + Fixes playback of more than one file with playbin/totem + +2004-12-29 Thomas Vander Stichele + + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + * gst/ffmpegcolorspace/imgconvert.c: + clean up the mess that made me cry and avoid needless duplication + +2004-12-29 Thomas Vander Stichele + + * gst/ffmpegcolorspace/imgconvert.c: + give some indication of why we're segfaulting + +2004-12-29 Ronald S. Bultje + + * configure.ac: + Fix indentation, fix v4l2 plugin detection. + * ext/Makefile.am: + Fix libmms location (Maciej, use diff -u!). + * ext/alsa/gstalsa.c: (gst_alsa_init): + Initialize caps cache to NULL. + * gst/playback/gstplaybin.c: (gst_play_bin_change_state): + Only change state on audiosink if it exists. + +2004-12-28 Maciej Katafiasz + + * gst/matroska/matroska-demux.c: + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-demux.h: + Fix Vorbis streams failing to decode in some files, where cluster_time + isn't 0, because then it doesn't send codec_priv before actual data. + Remove time-based test and replace it with marker set on beginning of + new stream + +2004-12-28 David Schleef + + Merge patch from Ronald fixing problems with streaming + text. + * ext/cairo/gstcairo.c: (plugin_init): + * ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text), + (gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2), + (gst_textoverlay_video_chain), (gst_textoverlay_loop), + (gst_textoverlay_font_init), (gst_textoverlay_init), + (gst_textoverlay_set_property): + * ext/cairo/gsttextoverlay.h: + +2004-12-27 David Schleef + + * ext/cairo/gsttextoverlay.c: (gst_textoverlay_render_text), + (gst_text_overlay_blit_1), (gst_text_overlay_blit_sub2x2), + (gst_textoverlay_video_chain), (gst_textoverlay_loop), + (gst_textoverlay_font_init), (gst_textoverlay_init), + (gst_textoverlay_set_property): Improvements to actually + render text as white on black outline on video, including + font selection and horizontal/vertical alignment. (Ronald's + christmas present) + * ext/cairo/gsttextoverlay.h: + +2004-12-26 Stephane Loeuillet + + * ext/ogg/gstogg.c: + * ext/ogg/gstogmparse.c: + fix ogm[audio/video]parse plugin registration + (riff won't load if bytestream is already loaded) + +2004-12-24 Thomas Vander Stichele + + * gst/audioconvert/gstchannelmix.c: + fix for GLIB < 2.4 + +2004-12-24 Thomas Vander Stichele + + * Makefile.am: + * configure.ac: + disable docs again until it actually passes make distcheck. + +2004-12-24 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_type_get), (qtdemux_audio_caps): + * gst/typefind/gsttypefindfunctions.c: (q3gp_type_find), + (plugin_init): + Add 3GP (variables name Q3GP because they can't start with a + number). Add samr audio fourcc (used in .3gp files), decoder + is work in progress. Also do a GST_WARNING instead of ERROR + in case of unknown nodes, to decrease output. + +2004-12-24 Thomas Vander Stichele + + * Makefile.am: + really fix dist + +2004-12-23 Thomas Vander Stichele + + * configure.ac: + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.h: + Fixes #158382. Make speex plugin compatible with both 1.0 and 1.1. + Fix detection code in configure.ac + +2004-12-23 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_blockgroup): + Save position, so that queries give proper return values. Don't + know how this could ever have worked before... + +2004-12-23 Thomas Vander Stichele + + * configure.ac: + Put additional LAME check inside the conditional. Fixes #152339 + +2004-12-23 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), + (gst_avi_demux_stream_scan): + Add some more debug. Fix logic error when setting movi offset + while reading index. + +2004-12-23 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), + (gst_avi_demux_stream_scan), (gst_avi_demux_handle_seek), + (gst_avi_demux_process_next_entry): + Add some debugging. Better detection of broken indexes and the + accompanying index recovery. No infinite loops on state changes + when we're still in our loopfunction. + +2004-12-22 Ronald S. Bultje + + * configure.ac: + Fix up. + +2004-12-22 Archana Shah + + Reviewed by: Ronald S. Bultje + + * sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_volume): + Normalizing the value before setting + (gst_sunaudiomixer_get_volume): + Normalizing the value after getting. Fixes bug# 161980 + +2004-12-22 Christian Fredrik Kalager Schaller + + * Makefile.am: Make sure docs gets disted + * docs/Makefile.am: Make sure all needed files get disted + * gst-plugins.spec.in: latest updates + +2004-12-22 Wim Taymans + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element): + Revert patch 1.38 as clock distribution over schedulers does + not work correcly in the core yet. + +2004-12-21 Stephane Loeuillet + + * sys/oss/README: remove this file, which predates my birth + (and which content is by far outdated) + +2004-12-20 Stefan Kost + + * Makefile.am: + * configure.ac: + * docs/Makefile.am: + * docs/libs/Makefile.am: + * docs/libs/gst-plugins-libs-docs.sgml: + * docs/libs/gst-plugins-libs-sections.txt: + * docs/libs/tmpl/gstgconf.sgml: + * docs/upload.mak: + * docs/version.entities.in: + Added boilerplate gtk-doc files for plugin-libs documentation. + +2004-12-19 Stephane Loeuillet + + * gst/auparse/gstauparse.c: fix int and float audio caps + +2004-12-19 Ronald S. Bultje + + * sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported): + * sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported): + g_assert() can be a macro, don't use #ifdef inside it. + +2004-12-19 Edward Hervey + + Reviewed by: Ronald S. Bultje + + * gst/videorate/gstvideorate.c: (gst_videorate_blank_data), + (gst_videorate_init), (gst_videorate_chain), + (gst_videorate_change_state): + Event handling (fixes #159986). + +2004-12-19 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + Add BLZ0 (Blizzard's version of DivX) fourcc. + +2004-12-18 David Schleef + + * gst/tta/gstttadec.c: (gst_tta_dec_link): And yet another + portability fix. + +2004-12-18 David Schleef + + * gst/tta/ttadec.h: Disable some header code that isn't used + and clearly isn't portable. + +2004-12-18 David Schleef + + * gst/ffmpegcolorspace/imgconvert.c: (get_pix_fmt_info), + (avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name), + (avcodec_get_pix_fmt), (avpicture_layout), + (avcodec_get_pix_fmt_loss), (avg_bits_per_pixel), (img_copy), + (get_convert_table_entry), (img_convert), (img_get_alpha_info): + Fix code to not use GCC extensions (and c99 extensions that + Forte does not like.) + +2004-12-19 Tim-Philipp Müller + + Reviewed by: Ronald S. Bultje + + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_link), + (gst_deinterlace_chain): + Rowstride fixes. Fixes #161039. + * gst/videocrop/gstvideocrop.c: (gst_video_crop_init), + (gst_video_crop_get_property), (gst_video_crop_add_to_struct_val), + (gst_video_crop_getcaps), (gst_video_crop_link), + (gst_video_crop_i420), (gst_video_crop_chain), + (gst_video_crop_change_state): + Rework of negotiation. Actually works now. Fixes #158650. + +2004-12-18 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_sint): + That was very stupid. + +2004-12-18 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_blockgroup): + Fix possible crasher. + +2004-12-18 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_ebmlnum_uint), + (gst_matroska_ebmlnum_sint), (gst_matroska_demux_parse_blockgroup): + Lace sizes can be zero. + +2004-12-18 Ronald S. Bultje + + * ext/musepack/gstmusepackdec.cpp: + Fetch error return values. Fixes #161624. + * gst/apetag/apedemux.c: (gst_ape_demux_stream_data): + Really EOS. + +2004-12-18 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index): + Work for truncated (unfinished download etc.) files. Fixes #160514. + +2004-12-18 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + Fix for integer overflow. Makes #156001 not crash. Probably masks + the real bug. + +2004-12-17 Ronald S. Bultje + + * gst/ac3parse/gstac3parse.c: (plugin_init): + Parsers never have ranks. Fixes #159651. + +2004-12-17 Benjamin Otte + + * gst/playback/gstdecodebin.c: (compare_ranks): + make sure the facotries are ordered the same every time even if they + have the same rank by using the name + * gst/playback/gstdecodebin.c: (find_compatibles): + make sure we don't add factories to the list twice + +2004-12-16 David Schleef + + * configure.ac: look for musepack headers as musepack/*.h + (fixes #159847) + * ext/musepack/gstmusepackdec.h: use + * ext/musepack/gstmusepackreader.h: same + +2004-12-17 Ronald S. Bultje + + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_auds_with_data): + Read extradata correctly (fixes #155879). + +2004-12-16 David Schleef + + * gst/audioscale/gstaudioscale.c: allow passthru of >2 channel + audio. does _not_ attempt or allow conversion unless channels + is 1 or 2. + +2004-12-16 Christian Fredrik Kalager Schaller + + * tools/gst-launch-ext-m.m: fix mpeg and vob pipelines + +2004-12-16 David Schleef + + * gst/audioscale/gstaudioscale.c: the resample library only + handles 1 or 2 channels. Change caps to compensate. + +2004-12-16 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: (aac_rate_idx), (aac_profile_idx), + (gst_matroska_demux_audio_caps): + Some MPEG-AAC hacks, because else it doesn't work... + +2004-12-16 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_template_caps): + Add h264. + +2004-12-16 Ronald S. Bultje + + * gst-libs/gst/audio/Makefile.am: + Try to fix buildbot. + +2004-12-16 Thomas Vander Stichele + + * gst/tcp/gstmultifdsink.c: + Clean up and uniformize debugging. + +2004-12-16 Edward Hervey + + Reviewed by: Ronald S. Bultje + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init), + (gst_dvd_demux_reset), (gst_dvd_demux_change_state): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_reset), + (gst_mpeg_demux_change_state): + Reset on ready. Fixes 160276. + +2004-12-16 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_pad_link): + Fix memleak (#154815). + +2004-12-16 James Bowes + + Reviewed by: Ronald S. Bultje + + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init), + (gst_musicbrainz_init), (gst_musicbrainz_chain), + (gst_musicbrainz_set_property), (gst_musicbrainz_get_property): + * ext/musicbrainz/gsttrm.h: + Add support for using a proxy server when getting a trm id from + the MusicBrainz database (#149613). + +2004-12-16 Christophe Fergeau + + Reviewed by: Ronald S. Bultje + + * gst/playback/gstdecodebin.c: (new_pad), (close_link): + * gst/playback/gstplaybasebin.c: (new_decoded_pad): + Fix memleaks (#157233). + +2004-12-16 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst-libs/gst/resample/resample.c: (gst_resample_close): + * gst-libs/gst/resample/resample.h: + * gst/audioscale/gstaudioscale.c: + Fix memleak (#159215). + +2004-12-16 Toni Willberg + + Reviewed by: Ronald S. Bultje + + * sys/oss/gstosselement.c: (gst_osselement_probe_caps): + * sys/oss/oss_probe.c: (main): + Check for mono/stereo support (similar to samplerate probing), + fixes #159433. Also add missing copyright header to oss_probe.c. + +2004-12-15 David Schleef + + * configure.ac: add audioresample and cairo plugins. Remove + HAVE_MMX stuff, because it's not used. + * ext/Makefile.am: same + * ext/audioresample/Makefile.am: You are not ready for an + audio resampling element based on audioresample. + * ext/audioresample/gstaudioresample.c: + * ext/audioresample/gstaudioresample.h: + * ext/cairo/Makefile.am: You are not ready for overlay elements + based on cairo. Don't look too closely, these elements kinda + suck right now. + * ext/cairo/gstcairo.c: new + * ext/cairo/gsttextoverlay.c: new + * ext/cairo/gsttextoverlay.h: new + * ext/cairo/gsttimeoverlay.c: new + * ext/cairo/gsttimeoverlay.h: new + * gst-libs/gst/media-info/media-info-priv.h: fix compile + problem with compilers that don't support variadic macros. + +2004-12-15 Balamurali Viswanathan + + Reviewed by: David Schleef + + * sys/sunaudio/gstsunaudio.c: (plugin_init): Apply patch from + Bala, registering sunaudiosrc (oops!), and cleaning up code a + bit. Also ran indent-gst. + * sys/sunaudio/gstsunaudiosrc.c: (gst_sunaudiosrc_init), + (gst_sunaudiosrc_change_state), (gst_sunaudiosrc_get), + (gst_sunaudiosrc_setparams): + +2004-12-14 David Schleef + + * gst/festival/gstfestival.c: (gst_festival_chain): Set the + output rate to 16000. Should fix #160235. + +2004-12-14 Zaheer Abbas Merali + + * gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find): + Add typefinding for mpeg2 pes streams + +2004-12-13 David Schleef + + * configure.ac: Applied patch from bug #143659, making default + sources and sinks OS-dependent (for Solaris), and added code + for OS/X. + * gconf/gstreamer.schemas.in: use OS-dependent sinks in gconf. + +2004-12-13 Stephane Loeuillet + + * gst-libs/gst/riff/riff-media.c: + forgot to add h2.64 to avidemux template caps + +2004-12-13 Stephane Loeuillet + + * gst/wavenc/riff.h: + * gst-libs/gst/riff/riff-media.c: + * gst-libs/gst/riff/riff-ids.h: + * gst/avi/gstavimux.c + add 4CC code for VideoSoft h264 in AVI (VSSH) + fixes bug #160655 + remove s323 from riff, it's quicktime specific :( + +2004-12-13 Stephane Loeuillet + + * gst/asfdemux/README + * gst/wavenc/riff.h + * gst-libs/gst/riff/riff-ids.h + * gst-libs/gst/riff/riff-media.c + * gst/qtdemux/qtdemux.c: + add new 4CC codes for h263 related codecs + fixes partially bug #155163 + +2004-12-12 Christian Fredrik Kalager Schaller + + * configure.ac: Update polyaudio requirement to 0.7 + * ext/polyp/polypsink.c: (create_stream): add patch from iain (158258) + +2004-12-11 Zaheer Abbas Merali + + * gst/interleave/deinterleave.c: + fix my name's spelling! :) + +2004-12-11 Stephane Loeuillet + + * AUTHORS ChangeLog + * gst/auparse/gstauparse.c + * gst/interleave/deinterleave.c + * gst/law/: + alaw-decode.c alaw-encode.c + mulaw-decode.c mulaw-encode.c + * gst/oneton/gstoneton.c + * sys/osxaudio/: + gstosxaudioelement.c gstosxaudiosink.c gstosxaudiosrc.c + * sys/osxvideo/: + cocoawindow.h cocoawindow.m + osxvideosink.h osxvideosink.m + + put the same mail address for Zaheer Abbas Merali everywhere + +2004-12-10 Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_loop): + Align by packetsize, and assert that we a packet available before + playing. The first makes webstreams work (they often include + trailing padding data in a packet), the second allows pausing a + ASF stream in totem without getting demux errors afterwards. + +2004-12-09 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (get_relative): + Check for non-NULL before accessing member (end-of-chain). + +2004-12-09 Ronald S. Bultje + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init), + (cdparanoia_set_property), (cdparanoia_get_property): + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init), + (dvdnavsrc_set_property), (dvdnavsrc_get_property): + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init), + (dvdreadsrc_init), (dvdreadsrc_set_property), + (dvdreadsrc_get_property): + * sys/vcd/vcdsrc.c: (gst_vcdsrc_class_init), + (gst_vcdsrc_set_property), (gst_vcdsrc_get_property): + Synchronize property names where not yet the case. Devices are + now device=X, other versions are deprecated (but still exist). + Also use g_free() unconditionally. + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (setup_source), (gst_play_base_bin_get_property): + Expose source. + +2004-12-09 Thomas Vander Stichele + + * configure.ac: move GCONF macro outside conditional for the am + conditional. Fixes #160439 + +2004-12-08 David Schleef + + * tools/gst-visualise-m.m: Switch to elements that currently + exist. + +2004-12-08 Ronald S. Bultje + + * ext/ogg/gstogmparse.c: (gst_ogm_parse_chain): + We love wrong commas. + +2004-12-08 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_handle_src_query): + Don't set DEFAULT, unsupported - makes length display incorrectly + in some cases. + +2004-12-07 Christian Fredrik Kalager Schaller + + * gst/monoscope/README: remove blurb about files being GPL + * gst/monoscope/gstmonoscope.c: Change license field to LGPL + * gst/monoscope/monoscope.c: Change license to BSD with explanation + monoscope is now effectively LGPL licensed + +2004-12-07 Christian Fredrik Kalager Schaller + + * gst/monoscope/README: Update information to be more correct + * gst/monoscope/convolve.c: Relicense to LGPL + * gst/monoscope/convolve.h: Relicense to LGPL + +2004-12-06 Arwed v. Merkatz + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + set BUFFER_DURATION to correct values (mpeg1 audio frame length is fixed) + * gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link): + set default_duration for mpeg1 audio + +2004-12-06 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_close_audio): + * ext/alsa/gstalsa.h: + refactor big chunks of the core caps negotiation code to make it + a lot faster, because people claim it's really slow + (actually, just cache the getcaps when the device is opened) + +2004-12-06 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_init), + (gst_a52dec_handle_event), (gst_a52dec_update_streaminfo), + (gst_a52dec_handle_frame), (gst_a52dec_chain), + (gst_a52dec_change_state), (plugin_init): + * ext/a52dec/gsta52dec.h: + Do something useful with timestamps. Make chain-based (since + there's really no reason to be loopbased). + * gst/avi/gstavidemux.c: (gst_avi_demux_process_next_entry): + Update current_byte/frame correctly. + +2004-12-04 Ronald S. Bultje + + * gst/apetag/apedemux.c: (gst_ape_demux_parse_tags), + (gst_ape_demux_stream_init): + Forward tags, too. + +2004-12-04 Ronald S. Bultje + + * gst/apetag/apedemux.c: (gst_ape_demux_stream_init): + Let's make sure we're done typefinding when detecting tags. + +2004-12-03 Ronald S. Bultje + + * gst/matroska/ebml-read.c: (gst_ebml_read_class_init), + (gst_ebml_read_init), (gst_ebml_read_use_event), + (gst_ebml_read_element_id), (gst_ebml_peek_id), + (gst_ebml_read_seek), (gst_ebml_read_skip), + (gst_ebml_read_reserve), (gst_ebml_read_buffer), + (gst_ebml_read_master): + * gst/matroska/ebml-read.h: + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_contents), + (gst_matroska_demux_loop_stream), (gst_matroska_demux_audio_caps): + Disgustingly evil hack for working around INTERRUPT events and + their extremely annoying habit of being a pain in the ass. We + simply peek a cluster before reading any of it. + +2004-12-03 Ronald S. Bultje + + * ext/musepack/gstmusepackdec.cpp: + There's also floating point libmusepacks. + +2004-12-03 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_chanpos_from_gst), + (gst_faad_chanpos_to_gst), (gst_faad_chain): + Set DURATION even if source buffer didn't. Also use increasing + timestamps. + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data): + Block_align can have larger values than 8192. + +2004-12-02 Ronald S. Bultje + + * gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link): + * gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link): + * gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link): + * gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link): + Fix caps. + +2004-12-01 Ronald S. Bultje + + * sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names): + Fix logic bug. + +2004-12-01 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_type_find): + Yay, another one. + +2004-12-01 Ronald S. Bultje + + * ext/esd/esdsink.c: (gst_esdsink_chain): + Make error actually say something useful (fixes #156798). + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_template_caps): + Add Intel Video 5.0 fourcc (IV50). + +2004-12-01 Christophe Fergeau + + * ext/mad/gstmad.c: (mpg123_parse_xing_header): fix xing header + detection on mono and stereo mp3 files. + +2004-12-01 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state): + Don't crash on EMPTY caps (e.g. when the demuxer didn't recognize + the contained stream). + +2004-12-01 Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_srcconnect), (gst_faad_chain): + Oops, remove debug. + +2004-12-01 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst/law/alaw-decode.c: (alawdec_getcaps): + * gst/law/mulaw-decode.c: (mulawdec_getcaps): + Prevent warnings when negotiating caps (fixes #159338). + +2004-12-01 Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_chain): + Remove old leftover that shouldn't be there... + +2004-12-01 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_use_event): + Don't forward DISCONT events (fixes #159684). + +2004-12-01 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (remove_sinks), (setup_sinks): + Unlink manually since sometimes bin disposal (and therefore + pad unlinking) is delayed, which will cause a new media file + to not be able to start playing instantly. + +2004-11-29 Ronald S. Bultje + + * gst/playback/gststreaminfo.c: (stream_info_mute_pad): + On mute of an unlinked stream, check for pad availability so + we don't crash on unlinked pad. + +2004-11-29 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), + (gst_avi_demux_massage_index): + Fix quite humiliating bug in omitting 0-sized index chunks but + forgetting to count them for timestamps. + +2004-11-29 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_loop): + Actually leave the loop if we failed to sync. Don't crash. + +2004-11-28 Ronald S. Bultje + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream), + (gst_dvd_demux_process_private): + * gst/mpegstream/gstdvddemux.h: + Fix crash (#159759). Doesn't work, though. :-(. + +2004-11-28 Benjamin Otte + + * gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix): + more overwriting protection due to modifying channels one by one + instead of all at once + +2004-11-28 Ronald S. Bultje + + * gst/audioconvert/gstchannelmix.c: + (gst_audio_convert_fill_normalize): + Normalize using absolute values. + +2004-11-28 Julien MOUTTE + + * configure.ac: + * ext/Makefile.am: + * ext/directfb/Makefile.am: + * ext/directfb/directfbvideosink.c: (gst_directfbvideosink_create), + (gst_directfbvideosink_get_pixel_format), + (gst_directfbvideosink_get_format_from_fourcc), + (gst_directfbvideosink_fixate), (gst_directfbvideosink_getcaps), + (gst_directfbvideosink_sink_link), + (gst_directfbvideosink_change_state), + (gst_directfbvideosink_chain), (gst_directfbvideosink_buffer_free), + (gst_directfbvideosink_buffer_alloc), + (gst_directfbvideosink_interface_supported), + (gst_directfbvideosink_interface_init), + (gst_directfbvideosink_navigation_send_event), + (gst_directfbvideosink_navigation_init), + (gst_directfbvideosink_set_property), + (gst_directfbvideosink_get_property), + (gst_directfbvideosink_finalize), (gst_directfbvideosink_init), + (gst_directfbvideosink_base_init), + (gst_directfbvideosink_class_init), + (gst_directfbvideosink_get_type), (plugin_init): + * ext/directfb/directfbvideosink.h: Adding a first version of + directfbvideosink. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): Initializing some + more. + +2004-11-28 Benjamin Otte + + * gst/audioconvert/gstchannelmix.c: (gst_audio_convert_mix): + walk the samples backwards if out_channels > in_channels so we don't + overwrite data + +2004-11-28 Ronald S. Bultje + + * gst/audioconvert/Makefile.am: + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init), + (gst_audio_convert_link), (gst_audio_convert_change_state), + (gst_audio_convert_channels): + * gst/audioconvert/gstchannelmix.c: + (gst_audio_convert_unset_matrix), + (gst_audio_convert_fill_identical), + (gst_audio_convert_fill_compatible), + (gst_audio_convert_detect_pos), (gst_audio_convert_fill_one_other), + (gst_audio_convert_fill_others), + (gst_audio_convert_fill_normalize), + (gst_audio_convert_fill_matrix), (gst_audio_convert_setup_matrix), + (gst_audio_convert_passthrough), (gst_audio_convert_mix): + * gst/audioconvert/gstchannelmix.h: + Implement a channel mixer. + +2004-11-28 Martin Soto + + * ext/alsa/gstalsasink.c (gst_alsa_sink_loop): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsa.c (gst_alsa_set_clock): + Make alsasink actually honor gst_element_set_clock and use that + clock instead of its internal one. + +2004-11-27 Christophe Fergeau + + * gst/playback/gstplaybasebin.c: (setup_source): fixed a caps leak + (gst_play_base_bin_change_state): nullify source and decoder when + going from READY to NULL so that we don't try to do weird stuff with + them when going from NULL to READY + * gst/playback/gstplaybin.c: (gst_play_bin_init): use gst_object_unref + instead of g_object_unref + (gen_video_element), (gen_audio_element): more refcounting fixes, now + it should be correct + (gst_play_bin_change_state): don't call remove_sinks if we are + currently disposing the object + +2004-11-27 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_loop): + Don't forget bass if it's there. Else left channel is silent... + +2004-11-27 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_loop), + (gst_a52dec_change_state): + Don't do sample adjusting anymore, we use float audio now. + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate): + Don't fixate to non-existing properties. + +2004-11-27 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_channels), + (gst_a52dec_change_state): + Advertise that we can do surround sound. + +2004-11-27 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_reneg): + Add buffer-frames=0. + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_get_type), + (dvdreadsrc_init), (dvdreadsrc_get_event_mask), + (dvdreadsrc_get_query_types), (dvdreadsrc_get_formats), + (dvdreadsrc_srcpad_event), (dvdreadsrc_srcpad_query), + (_seek_title), (_seek_chapter), (get_next_cell_for), (_read), + (seek_sector), (dvdreadsrc_get), (dvdreadsrc_open_file), + (dvdreadsrc_change_state), (dvdreadsrc_uri_get_type), + (dvdreadsrc_uri_get_protocols), (dvdreadsrc_uri_get_uri), + (dvdreadsrc_uri_set_uri), (dvdreadsrc_uri_handler_init): + * ext/dvdread/dvdreadsrc.h: + Add seeking, querying for bytes, sectors, title, angle and + chapter. Handle multiple chapters. Relicense to LGPL because + Billy agreed on that (thanks Billy!). + +2004-11-27 Christophe Fergeau + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_dispose): + call parent dispose method + +2004-11-27 Martin Soto + + * gst-libs/gst/audio/audioclock.c (gst_audio_clock_set_active) + (gst_audio_clock_get_internal_time): + Fix active <-> inactive transitions: ensure time value always + grows and avoid abrupt value changes. + +2004-11-27 Arwed v. Merkatz + + * configure.ac: + * gst/tta/Makefile.am: + * gst/tta/crc32.h: + * gst/tta/filters.h: + * gst/tta/gsttta.c: + * gst/tta/gstttadec.c: + * gst/tta/gstttadec.h: + * gst/tta/gstttaparse.c: + * gst/tta/gstttaparse.h: + * gst/tta/ttadec.h: + added TTA parser and decoder + +2004-11-26 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (probe_triggered), (check_queue), (buffer_underrun), + (buffer_running), (buffer_overrun), (gen_source_element), + (setup_source): + * gst/playback/gstplaybasebin.h: + Implement buffering. Needs some more work. + +2004-11-26 Ronald S. Bultje + + * ext/theora/theoradec.c: (theora_dec_chain): + Fix ilog mask range overflow. + +2004-11-26 Ronald S. Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_get_caps): + Don't omit the last (which in case of dmix is the only :) ) + channel count. Don't set channels if <= 2. + +2004-11-26 Christophe Fergeau + + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element): Removed 2 obsolete comments + +2004-11-26 Stephane Loeuillet + + * ext/vorbis/oggvorbisenc.c + * ext/vorbis/vorbisenc.c : + change description fields of those plugins to differentiate them + (pitivi show Encoders by description, they had the same one) + +2004-11-25 Christophe Fergeau + + Reviewed by: Ronald S. Bultje + + * gst/playback/gstplaybin.c: (gst_play_bin_dispose), + (gst_play_bin_set_property), (gen_video_element), + (gen_audio_element): + Refcounting fixes for provided audio-/videosinks. + +2004-11-25 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element), (setup_sinks), (gst_play_bin_change_state): + Don't reference all sinks, but only the video- and audiosinks. + The vis. element should be disposed when we're done with it. + We don't have any reason to keep it around. This fixes warnings + when reusing playbin for playing multiple audio files with + vis. enabled. Also release audio device on pause - idea stolen + from Rhythmbox. + +2004-11-25 Ronald S. Bultje + + * ext/a52dec/gsta52dec.c: (gst_a52dec_channels), (gst_a52dec_push), + (gst_a52dec_reneg), (gst_a52dec_loop), (plugin_init): + * ext/alsa/gstalsa.c: (gst_alsa_get_caps): + * ext/alsa/gstalsaplugin.c: (plugin_init): + * ext/dts/gstdtsdec.c: (gst_dtsdec_channels), + (gst_dtsdec_renegotiate), (gst_dtsdec_loop), (plugin_init): + * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_chanpos_from_gst), + (gst_faad_chanpos_to_gst), (gst_faad_sinkconnect), + (gst_faad_srcgetcaps), (gst_faad_srcconnect), (gst_faad_chain), + (gst_faad_change_state), (plugin_init): + * ext/faad/gstfaad.h: + * ext/vorbis/vorbis.c: (plugin_init): + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + * gst-libs/gst/audio/Makefile.am: + * gst-libs/gst/audio/audio.c: (plugin_init): + * gst-libs/gst/audio/multichannel.c: + (gst_audio_check_channel_positions), + (gst_audio_get_channel_positions), + (gst_audio_set_channel_positions), + (gst_audio_set_structure_channel_positions_list), + (add_list_to_struct), (gst_audio_set_caps_channel_positions_list), + (gst_audio_fixate_channel_positions): + * gst-libs/gst/audio/multichannel.h: + * gst-libs/gst/audio/testchannels.c: (main): + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_class_init), (gst_audio_convert_init), + (gst_audio_convert_dispose), (gst_audio_convert_getcaps), + (gst_audio_convert_parse_caps), (gst_audio_convert_link), + (gst_audio_convert_fixate), (gst_audio_convert_channels): + * gst/audioconvert/plugin.c: (plugin_init): + Surround sound support. + +2004-11-25 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_push): + Fix position for discont if we're close as well. Nitpicking, but + saves a few milliseconds of extra waiting or skipping. + +2004-11-25 Ronald S. Bultje + + * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter): + We sometimes need parsers for playback, so add those too. + +2004-11-25 Ronald S. Bultje + + * configure.ac: + * gst/apetag/Makefile.am: + * gst/apetag/apedemux.c: (gst_ape_demux_get_type), + (gst_ape_demux_base_init), (gst_ape_demux_class_init), + (gst_ape_demux_init), (gst_ape_demux_get_src_formats), + (gst_ape_demux_get_src_query_types), + (gst_ape_demux_handle_src_query), (gst_ape_demux_get_event_mask), + (gst_ape_demux_handle_src_event), (gst_ape_demux_handle_event), + (gst_ape_demux_typefind_peek), (gst_ape_demux_typefind_get_length), + (gst_ape_demux_typefind_suggest), (gst_ape_demux_typefind), + (gst_ape_demux_parse_tags), (gst_ape_demux_stream_init), + (gst_ape_demux_stream_data), (gst_ape_demux_loop), + (gst_ape_demux_change_state): + * gst/apetag/apedemux.h: + * gst/apetag/apetag.c: (plugin_init): + * gst/typefind/gsttypefindfunctions.c: (apetag_type_find), + (plugin_init): + APE v1/2 tag reader plus typefind function. + +2004-11-25 Ronald S. Bultje + + * configure.ac: + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element): + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find): + Remove hacks for older core. Require newer core version + accordingly. + +2004-11-25 Ronald S. Bultje + + * gst/cdxaparse/Makefile.am: + * gst/cdxaparse/gstcdxaparse.c: (gst_cdxaparse_get_type), + (gst_cdxaparse_class_init), (gst_cdxaparse_init), + (gst_cdxaparse_loop), (gst_cdxaparse_change_state), (plugin_init): + * gst/cdxaparse/gstcdxaparse.h: + * gst/cdxaparse/gstcdxastrip.c: (gst_cdxastrip_get_type), + (gst_cdxastrip_base_init), (gst_cdxastrip_class_init), + (gst_cdxastrip_init), (gst_cdxastrip_get_src_formats), + (gst_cdxastrip_get_src_query_types), + (gst_cdxastrip_handle_src_query), (gst_cdxastrip_get_event_mask), + (gst_cdxastrip_handle_src_event), (gst_cdxastrip_strip), + (gst_cdxastrip_sync), (gst_cdxastrip_handle_event), + (gst_cdxastrip_chain), (gst_cdxastrip_change_state): + * gst/cdxaparse/gstcdxastrip.h: + SVCD/VCD header stripping separated from CDXA image parsing. + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find), + (plugin_init): + Add VCD/SVCD header typefinding for VCD/SVCD. + * sys/vcd/vcdsrc.c: (gst_vcdsrc_get_type), (gst_vcdsrc_base_init), + (gst_vcdsrc_class_init), (gst_vcdsrc_init), + (gst_vcdsrc_set_property), (gst_vcdsrc_get_property), + (gst_vcdsrc_get_event_mask), (gst_vcdsrc_get_query_types), + (gst_vcdsrc_get_formats), (gst_vcdsrc_srcpad_event), + (gst_vcdsrc_srcpad_query), (gst_vcdsrc_get), + (gst_vcdsrc_open_file), (gst_vcdsrc_close_file), + (gst_vcdsrc_change_state), (gst_vcdsrc_msf), + (gst_vcdsrc_recalculate), (gst_vcdsrc_uri_get_type), + (gst_vcdsrc_uri_get_protocols), (gst_vcdsrc_uri_get_uri), + (gst_vcdsrc_uri_set_uri), (gst_vcdsrc_uri_handler_init): + * sys/vcd/vcdsrc.h: + Fix up, add seeking, querying, URI interface. Works in totem now. + +2004-11-25 Thomas Vander Stichele + + * configure.ac: + back to CVS + +=== release 0.8.6 === + +2004-11-25 Thomas Vander Stichele + + * NEWS: + * RELEASE: + * configure.ac: + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/it.po: + * po/nb.po: + * po/nl.po: + * po/or.po: + * po/sq.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + releasing 0.8.6, "IOU Love" + +2004-11-23 Thomas Vander Stichele + + patch by: Ronald Bultje + + * gst/playback/gstplaybasebin.c: + Fix unplayable files error handling. Fixes #158365 + +2004-11-23 Thomas Vander Stichele + + patch by: Ronald Bultje + + * gst/typefind/gsttypefindfunctions.c: + Fix broken mp3 typefinding. Fixes #158375 + +2004-11-23 Thomas Vander Stichele + + patch by: Ronald Bultje + + * ext/ogg/gstoggdemux.c: + Fix sync on broken files. Fixes #158976 + +2004-11-23 Thomas Vander Stichele + + patch by: Edward Hervey + + * ext/libpng/gstpngenc.c: + Copy over buffer properties. Fixes #158832 + +2004-11-23 Thomas Vander Stichele + + patch by: Tim-Philipp Müller + + * ext/dvdread/dvdreadsrc.c: + Fixes invalid reads (#158462) + +2004-11-23 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4lsrc_calls.c: + Probe less and cache it. Fixes #159187. + +2004-11-23 Thomas Vander Stichele + + * gst/videorate/gstvideorate.c: + Handle all video formats. Fixes #159186. + +2004-11-16 Jan Schmidt + * gst/synaesthesia/gstsynaesthesia.c: + (gst_synaesthesia_class_init), (gst_synaesthesia_init), + (gst_synaesthesia_dispose), (gst_synaesthesia_finalize), + (gst_synaesthesia_sink_link), (gst_synaesthesia_src_getcaps), + (gst_synaesthesia_src_link), (gst_synaesthesia_chain), + (gst_synaesthesia_change_state), (plugin_init): + Fix up synaesthesia to work under different samplerates/ buffer sizes. + Force 320x200 output, as that's the only thing the underlying + synaesthesia implementation supports. Still needs to be made + re-entrant. + +2004-11-14 Ronald S. Bultje + + * configure.ac: + Fix mpeg2enc configure check (similar to mplex check below). + +2004-11-14 Koop Mast + + reviewed by: Ronald S. Bultje + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + Fix for gcc-2.95 (fixes #158221). + +2004-11-13 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element): + Re-add clock distribution hack (until new core is released). + Fixes #158125. + +2004-11-13 Arwed v. Merkatz + * configure.ac: + fix mplex configure check segfaulting on some systems (bug #140994) + +2004-11-13 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_pcm_wait): + add debugging + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + do a wait when we enter the loop func with no data available to + write instead of getting into an 100% CPU loop by just returning and + being called again by the scheduler + +2004-11-13 Jan Schmidt + + * configure.ac: + * ext/libvisual/visual.c: (gst_visual_get_type), + (libvisual_log_handler), (gst_visual_getcaps), + (gst_visual_srclink), (gst_visual_change_state), (make_valid_name), + (plugin_init): + Update libvisual to 0.1.7. Link in the debug handling to gstreamer + * ext/smoothwave/Makefile.am: + * ext/smoothwave/demo-osssrc.c: (main): + * ext/smoothwave/gstsmoothwave.c: (gst_smoothwave_class_init), + (gst_smoothwave_init), (gst_smoothwave_dispose), (gst_sw_sinklink), + (gst_sw_srclink), (gst_smoothwave_chain), (gst_sw_change_state), + (plugin_init): + * ext/smoothwave/gstsmoothwave.h: + Make gstsmoothwave a working element in the 20th century. + + * gst/chart/gstchart.c: (gst_chart_init), (gst_chart_srcconnect): + Fix incorrect link function + +2004-11-12 Ronald S. Bultje + + * gst/volume/gstvolume.c: + Allow buffer-frames=0. + +2004-11-12 Iain + + * configure.ac: Check for polypaudio + + * ext/Makefile.am: Build the polyp dir + + * ext/polyp: The polypsink sources. + +2004-10-30 Iain + + * gst/interleave/interleave.c (interleave_unlink): Change the src pads + caps to reflect the new number of channels. + +2004-11-12 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + Fix for negotiation order problem. This would show when the + ALSA loopfuction was called before any other function. ALSA + wouldn't do anything because we're not negotiated yet, leading + to an infinite loop. Showed in e.g. Rhythmbox. Fixes #158006. + +2004-11-11 Tim-Philipp Müller + + reviewed by: Ronald S. Bultje + + * ext/vorbis/vorbisdec.c: (vorbis_dec_src_query): + No warnings (#157986). + +2004-11-11 Ronald S. Bultje + + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + Prefer apev1/2 and id3v1 (at end of file) over musepack. + +2004-11-11 Ronald S. Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_loop_stream): + Signal no-more-pads (so it works in playbin). + +2004-11-11 Ronald S. Bultje + + * ext/musepack/gstmusepackreader.cpp: + Workaround for older core. + +2004-11-11 Ronald S. Bultje + + * gst/ffmpegcolorspace/imgconvert.c: (yuv420p_to_yuv422): + Actually test for odd width/height rather than testing whether + a temporary variable that was 0 before we subtracted 1 is now + not equal to zero (which it always is). + +2004-11-11 Zaheer Abbas Merali + + * sys/v4l2/gstv4l2element.c: (gst_v4l2_iface_supported): + Fix compilation if HAVE_XVIDEO is not defined + +2004-11-11 Zaheer Abbas Merali + + * sys/v4l/gstv4lelement.c: (gst_v4l_iface_supported): + Fix compilation if HAVE_XVIDEO is not defined + +2004-11-11 Jan Schmidt + + * gst/goom/gstgoom.c: (gst_goom_class_init), (gst_goom_init), + (gst_goom_dispose), (gst_goom_sinkconnect), (gst_goom_chain), + (gst_goom_change_state), (plugin_init): + Use the bytestream adapter so goom doesn't depend on the input + buffer size. + Add a debug category + +2004-11-11 Ronald S. Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_change_state): + Only set hardware parameters *after* negotiation. Before + negotiation, it will set ANY and that seems to cause crashes + (see e.g. #151288, #153227). + +2004-11-10 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time): + This seems to be antique leftover. It needs to pass error + checking. + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init), + (gst_sdlvideosink_deinitsdl), (gst_sdlvideosink_initsdl), + (gst_sdlvideosink_destroy), (gst_sdlvideosink_create), + (gst_sdlvideosink_sinkconnect), (gst_sdlvideosink_chain): + Fix GstXOverlay implementation (#151059). + +2004-11-10 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state): + Don't assert (#157853). + +2004-11-10 Ronald S. Bultje + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event), + Fix bytes/samples confustion. + (gst_alsa_sink_mmap), (gst_alsa_sink_loop): + Fix for underrun (#144389). + +2004-11-09 Ronald S. Bultje + + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find): + Disable halfway-seek for pending release (since it needs a new + core release). + +2004-11-09 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4lsrc_calls.c: + add autoprobe-fps property so we can separate autoprobing parts + +2004-11-09 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: + * sys/v4l/v4lsrc_calls.c: + initialise fourcc to catch unset fourcc's, and debug + +2004-11-09 Wim Taymans + + * gst/playback/README: + * gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1): + * gst/playback/gstplaybin.c: (gst_play_bin_init), + (gst_play_bin_dispose), (gst_play_bin_set_property), + (remove_sinks), (setup_sinks), (gst_play_bin_change_state), + (gst_play_bin_get_event_masks), (gst_play_bin_send_event), + (gst_play_bin_get_formats), (gst_play_bin_convert), + (gst_play_bin_get_query_types), (gst_play_bin_query): + Cleanups and some more documentation. + +2004-11-09 Jan Schmidt + + * ext/libcaca/gstcacasink.c: (gst_cacasink_class_init), + (gst_cacasink_init), (gst_cacasink_chain): + * ext/libcaca/gstcacasink.h: + Cacasink inherits from VideoSink, so let that store the clock. + +2004-11-09 Wim Taymans + + * gst/playback/README: + * gst/playback/gstplaybasebin.c: (group_destroy), (group_is_muted), + (add_stream), (unknown_type), (add_element_stream), (no_more_pads), + (probe_triggered), (preroll_unlinked), (new_decoded_pad), + (gst_play_base_bin_change_state), (gst_play_base_bin_found_tag): + * gst/playback/gstplaybin.c: (gen_vis_element), (remove_sinks), + (setup_sinks): + * gst/playback/gststreaminfo.c: (gst_stream_info_set_mute), + (gst_stream_info_is_mute), (gst_stream_info_set_property): + * gst/playback/gststreaminfo.h: + Updated README. + Only switch groups if all streams have muted (EOSed). + Send Tags in sync with the stream playback instead of in + the playback/preroll phase. + Some cleanups, free the fakesrc elements. + +2004-11-09 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_get_caps_internal): + buffer-frames property was missing + * ext/arts/gst_arts.c: + rate missing from sinkcaps + * ext/audiofile/gstafparse.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/swfdec/gstswfdec.c: + int audio doesn't know buffer-frames + * ext/cdparanoia/gstcdparanoia.c: + int audio doesn't know chunksize either + * ext/nas/nassink.c: + it's endianness, not endianess + * gst-libs/gst/audio/audio.h: + make float standard pad template caps really describe float + * gst/law/mulaw.c: (linear_factory): + signed only, please + * gst/mpegstream/gstdvddemux.c: + widths of 20 are not valid + +2004-11-08 Thomas Vander Stichele + + Submitted by: Luca Ferretti + + * po/LINGUAS: + * po/it.po: + Add Italian + +2004-11-08 Wim Taymans + + * gst/playback/README: + * gst/playback/gstdecodebin.c: (close_pad_link), (try_to_link_1): + * gst/playback/gstplaybasebin.c: (probe_triggered), + (gst_play_base_bin_change_state): + Updated README, added more comments for fixmes etc.. + +2004-11-08 Wim Taymans + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_add_element): + We can remove this hack now. + +2004-11-08 Wim Taymans + + * gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_ayuv), + (gst_videomixer_fill_checker), (gst_videomixer_fill_color), + (gst_videomixer_blend_buffers), (gst_videomixer_loop): + Only mix AYUV for maximum quality. + +2004-11-08 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (get_relative), (gst_ogg_demux_src_query), + (gst_ogg_demux_push), (gst_ogg_pad_push): + Let's act as if we're synchronized now! :). + * ext/theora/theoradec.c: (theora_dec_chain): + Add some debug. + +2004-11-08 Wim Taymans + + * gst/alpha/gstalpha.c: (gst_alpha_method_get_type), + (gst_alpha_set_property), (gst_alpha_sink_link), + (gst_alpha_set_ayuv), (gst_alpha_set_i420), + (gst_alpha_chroma_key_ayuv), (gst_alpha_chroma_key_i420), + (gst_alpha_init_params), (gst_alpha_chain): + Implement alpha functions for AYUV too, this increases + accuracy quite a bit. + +2004-11-08 Wim Taymans + + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_caps_to_pixfmt), + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_caps_remove_format_info): + * gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size), + (shrink12), (img_get_alpha_info), (deinterlace_line), + (deinterlace_line_inplace): + * gst/ffmpegcolorspace/imgconvert_template.h: + Added AYUV colorspace and handle RGBA a bit more respectful. + +2004-11-08 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + Actually always send a discont (cornercase when resending the + same serial-tagged chain twice). + +2004-11-08 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_clear), + (gst_ximagesink_finalize): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_clear), + (gst_xvimagesink_finalize): Some more cleanups, leaks fixed and checks. + +2004-11-08 Wim Taymans + + * gst/typefind/gsttypefindfunctions.c: (aac_type_find): + Don't segfault on NULL data. + +2004-11-08 Wim Taymans + + * gst/playback/gstdecodebin.c: (unlinked): + * gst/playback/gstplay-marshal.list: + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (gst_play_base_bin_init), (group_create), (get_active_group), + (get_building_group), (group_destroy), (group_commit), + (queue_overrun), (remove_groups), (add_stream), (unknown_type), + (add_element_stream), (no_more_pads), (probe_triggered), + (preroll_unlinked), (new_decoded_pad), (removed_decoded_pad), + (state_change), (setup_source), (gst_play_base_bin_get_property), + (gst_play_base_bin_change_state), (gst_play_base_bin_add_element), + (gst_play_base_bin_link_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_class_init), + (remove_sinks), (setup_sinks), (gst_play_bin_change_state): + Add support for chained ogg files. Prepare for playlist + support. This patch introduces the concept of pad groups, which + together compose one playable media file. + +2004-11-07 David Schleef + + * testsuite/gst-lint: Check for pad templates that aren't statically + scoped. + +2004-11-07 Ronald S. Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/musepack/Makefile.am: + * ext/musepack/gstmusepackdec.cpp: + * ext/musepack/gstmusepackdec.h: + * ext/musepack/gstmusepackreader.cpp: + * ext/musepack/gstmusepackreader.h: + Add musepack decoder. + * ext/faad/gstfaad.c: (gst_faad_base_init): + Make pad templates static. + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find), + (plugin_init): + Add musepack typefinder, make mp3 typefinding work halfway stream, + which doesn't actually work yet because id3demux doesn't implement + _get_length(). + +2004-11-07 Ronald S. Bultje + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_queue_pads), (gst_ogg_mux_loop): + Fix interrupt event handling (#144436). + +2004-11-07 Ronald S. Bultje + + * ext/mad/gstid3tag.c: (gst_id3_tag_do_typefind): + Hide unused glory. + +2004-11-06 Tim-Philipp Müller + + reviewed by: Ronald S. Bultje + + * ext/vorbis/vorbisenc.c: (raw_caps_factory): + Fix weird caps (#157548). + +2004-11-06 Tim-Philipp Müller + + Reviewed by: Ronald S. Bultje + + * gst/rtp/gstrtpgsmparse.c: (gst_rtpgsm_caps_nego): + Add missing NULL terminator (#157543). + +2004-11-05 Thomas Vander Stichele + + * gst/tcp/gsttcp.h: + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversrc.c: + ports can go up to 65535. Move common defines to gsttcp.h + +2004-11-05 Wim Taymans + + * gst/videotestsrc/videotestsrc.c: (paint_setup_Y41B), + (paint_hline_Y41B), (paint_setup_Y42B), (paint_hline_Y42B): + Added two more colorspaces. + +2004-11-05 Wim Taymans + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size), + (yuv422p_to_yuv422), (yuv420p_to_yuv422), (shrink12), + (img_convert), (deinterlace_line), (deinterlace_line_inplace): + More stride fixes. + +2004-11-05 Wim Taymans + + * gst/alpha/gstalpha.c: (gst_alpha_set_property), (gst_alpha_add), + (gst_alpha_chroma_key), (gst_alpha_init_params), (gst_alpha_chain): + * gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420), + (gst_videomixer_fill_checker), (gst_videomixer_blend_buffers), + (gst_videomixer_loop): + More stride fixes. + +2004-11-05 Benjamin Otte + + * ext/mad/gstmad.c: (gst_mad_chain): + don't overflow data buffer. Flush not needed sync data when syncing + failed. + +2004-11-04 Wim Taymans + + * gst/alpha/gstalpha.c: (gst_alpha_method_get_type), + (gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property), + (gst_alpha_get_property), (gst_alpha_add), (gst_alpha_chroma_key), + (gst_alpha_init_params), (gst_alpha_chain), + (gst_alpha_change_state): + Updated the chroma keying algorithm with something more + sophisticated. + +2004-11-03 Wim Taymans + + * gst/videomixer/videomixer.c: (gst_videomixer_blend_ayuv_i420), + (gst_videomixer_fill_checker), (gst_videomixer_fill_color), + (gst_videomixer_blend_buffers), (gst_videomixer_loop): + Fix stride issues. Does not completely work for odd + heights. + +2004-11-03 Wim Taymans + + * gst/alpha/gstalpha.c: (gst_alpha_method_get_type), + (gst_alpha_chroma_key), (gst_alpha_chain): + Fix stride issues. Does not completely work for odd + heights. + +2004-11-03 Christophe Fergeau + + * gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps): + * gst/videoscale/videoscale.c: (videoscale_find_by_structure): + leak fixes + +2004-11-03 Wim Taymans + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/imgconvert.c: (avpicture_get_size), + (avpicture_alloc): + * gst/ffmpegcolorspace/imgconvert_template.h: + Use correct _fill function to get correct strides. + +2004-11-02 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_parse_tree), + (qtdemux_parse_udta), (qtdemux_tag_add), (gst_qtdemux_handle_esds): + Change all g_print()s to debugging. Add a bunch of consistency + checks. + +2004-11-02 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_class_init), + (try_to_link_1), (get_our_ghost_pad), (remove_element_chain), + (unlinked), (no_more_pads), (close_link): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_init), + (unknown_type), (add_element_stream), (new_decoded_pad), + (removed_decoded_pad), (setup_source): + * gst/playback/gststreaminfo.c: (gst_stream_info_get_type), + (gst_stream_info_class_init), (gst_stream_info_init), + (gst_stream_info_new), (gst_stream_info_dispose), + (stream_info_mute_pad), (gst_stream_info_set_property), + (gst_stream_info_get_property): + * gst/playback/gststreaminfo.h: + Fix playback of multiple files. + a slightly different approach to handling dynamic pad removals. + This one only looks at pads that we have linked. + +2004-11-01 Christophe Fergeau + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_finalize): fix an "invalid + free" warning from libc. + +2004-11-01 Ronald S. Bultje + + * gst/playback/gstdecodebin.c: (gst_decode_bin_class_init), + (get_unconnected_element), (remove_starting_from), (pad_removed), + (close_link): + Implement support for dynamic pad changing. We listen to "live" + pad removals (i.e. while playing) and re-setup autoplugging + after that. Playbasebin/playbin need some more work for this + to finally work, but decodebin supports (and replugs) chained + ogg now. + +2004-11-02 Jan Schmidt + + * ext/alsa/gstalsa.c: (gst_alsa_class_init), (gst_alsa_dispose), + (gst_alsa_finalize): + * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init), + (gst_cdaudio_finalize): + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init), + (cdparanoia_finalize): + * ext/divx/gstdivxdec.c: (gst_divxdec_dispose): + * ext/divx/gstdivxenc.c: (gst_divxenc_dispose): + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init), + (dvdreadsrc_finalize): + * ext/flac/gstflacdec.c: (gst_flacdec_class_init), + (gst_flacdec_finalize): + * ext/flac/gstflacenc.c: (gst_flacenc_class_init), + (gst_flacenc_finalize): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_class_init), + (gst_gnomevfssink_finalize): + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_class_init), + (gst_gnomevfssrc_finalize): + * ext/libfame/gstlibfame.c: (gst_fameenc_class_init), + (gst_fameenc_finalize): + * ext/nas/nassink.c: (gst_nassink_class_init), + (gst_nassink_finalize): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_finalize), + (gst_sdlvideosink_class_init): + * ext/sndfile/gstsf.c: (gst_sf_dispose): + * gst-libs/gst/mixer/mixertrack.c: (gst_mixer_track_dispose): + * gst-libs/gst/tuner/tunerchannel.c: (gst_tuner_channel_dispose): + * gst-libs/gst/tuner/tunernorm.c: (gst_tuner_norm_dispose): + * gst-libs/gst/xwindowlistener/xwindowlistener.c: + (gst_x_window_listener_dispose): + * gst/audioscale/gstaudioscale.c: + * gst/playondemand/gstplayondemand.c: (play_on_demand_class_init), + (play_on_demand_finalize): + * gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose): + * gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): + * sys/cdrom/gstcdplayer.c: (cdplayer_class_init), + (cdplayer_finalize): + * sys/glsink/glimagesink.c: (gst_glimagesink_finalize), + (gst_glimagesink_class_init): + * sys/oss/gstosselement.c: (gst_osselement_class_init), + (gst_osselement_finalize): + * sys/oss/gstosssink.c: (gst_osssink_dispose): + * sys/oss/gstosssrc.c: (gst_osssrc_dispose): + * sys/v4l/gstv4lelement.c: (gst_v4lelement_dispose): + Fixes a bunch of problems with finalize and dispose functions, + either assumptions that dispose is only called once, or not calling + the parent class dispose/finalize function + +2004-11-01 Stefan Kost + + * ext/esd/esdsink.c: (gst_esdsink_init), (gst_esdsink_link): + added two api precondition guards + use g_strdup with getenv to fix crash when using ENVVAR + +2004-11-01 Jan Schmidt + * ext/esd/esdsink.c: (gst_esdsink_class_init), + (gst_esdsink_finalize): + Use a finalize function, not dispose, and more importantly, + call the parent class finalize function too + +2004-11-01 Johan Dahlin + + * ext/ogg/gstoggdemux.c: + * gst/tags/gstvorbistag.c: + Plug leaks. + +2004-10-31 Benjamin Otte + + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain): + lotsa memleaks today. But they're all small... + +2004-10-31 Benjamin Otte + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + another memleak crushed + +2004-10-31 Benjamin Otte + + * gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments): + fix memleak + +2004-10-31 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + Hack to prevent crash when going to READY inside signal handler + while this function is active. + +2004-10-31 Ronald S. Bultje + + * gst/ffmpegcolorspace/Makefile.am: + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/common.h: + * gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init): + * gst/ffmpegcolorspace/dsputil.h: + * gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init): + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_get_palette), (gst_ffmpeg_set_palette), + (gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_smpfmt_to_caps), + (gst_ffmpegcsp_codectype_to_caps), (gst_ffmpeg_caps_to_smpfmt), + (gst_ffmpeg_caps_to_pixfmt), (gst_ffmpegcsp_caps_with_codectype), + (gst_ffmpegcsp_avpicture_fill): + * gst/ffmpegcolorspace/gstffmpegcodecmap.h: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps), + (gst_ffmpegcsp_pad_link), (gst_ffmpegcsp_get_type), + (gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init), + (gst_ffmpegcsp_init), (gst_ffmpegcsp_chain), + (gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property), + (gst_ffmpegcsp_get_property), (gst_ffmpegcolorspace_register): + * gst/ffmpegcolorspace/imgconvert.c: + (avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name), + (avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout), + (avpicture_get_size), (avcodec_get_pix_fmt_loss), + (avg_bits_per_pixel), (avcodec_find_best_pix_fmt1), + (avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy), + (yuv422_to_yuv420p), (uyvy422_to_yuv420p), (uyvy422_to_yuv422p), + (yuv422_to_yuv422p), (yuv422p_to_yuv422), (yuv422p_to_uyvy422), + (uyvy411_to_yuv411p), (yuv420p_to_yuv422), (C_JPEG_TO_CCIR), + (img_convert_init), (img_apply_table), (shrink41), (shrink21), + (shrink12), (shrink22), (shrink44), (grow21_line), (grow41_line), + (grow21), (grow22), (grow41), (grow44), (conv411), + (gif_clut_index), (build_rgb_palette), (bitcopy_n), (mono_to_gray), + (monowhite_to_gray), (monoblack_to_gray), (gray_to_mono), + (gray_to_monowhite), (gray_to_monoblack), (avpicture_alloc), + (avpicture_free), (is_yuv_planar), (img_convert), + (get_alpha_info_pal8), (img_get_alpha_info), (deinterlace_line), + (deinterlace_line_inplace), (deinterlace_bottom_field), + (deinterlace_bottom_field_inplace), (avpicture_deinterlace): + * gst/ffmpegcolorspace/imgconvert_template.h: + * gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free): + * gst/ffmpegcolorspace/mmx.h: + * gst/ffmpegcolorspace/utils.c: (av_mallocz), (av_strdup), + (av_fast_realloc), (av_mallocz_static), (av_free_static), + (av_freep), (avcodec_get_context_defaults), + (avcodec_alloc_context), (avcodec_init): + Sync back from gst-ffmpeg. Deprecates ffcolorspace. Adds palette + handling plus update from ffmpeg CVS. Large clean-up. + +2004-10-31 Ronald S. Bultje + + * gst/playback/Makefile.am: + We need the marshallers for decodebin, too. + +2004-10-30 David Schleef + + * gst/typefind/gsttypefindfunctions.c: (qt_type_find): Make + quicktime typefinding work with 64-bit offsets. + +2004-10-30 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_handle_sink_event): + Set EOS on the element when processing an EOS event. + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.h: + Only keep a const ptr to the mode + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data), + (gst_riff_create_audio_template_caps): + Allow WMAV3, with up to 6 channels. + * gst/asfdemux/gstasfmux.c: (gst_asfmux_request_new_pad): + Don't call gst_pad_set_event_function on a sink pad. + * gst/mpegstream/gstdvddemux.c: + (gst_dvd_demux_get_subpicture_stream), + (gst_dvd_demux_set_cur_audio), (gst_dvd_demux_set_cur_subpicture): + Copy the explicit caps that were set across to the cur_* pads, + instead of trying to use a possibly non-existent negotiated caps. + Reset the type of subpicture pads to UNKNOWN after calling + init_stream, so that the caps get set. + +2004-10-29 Martin Pitt + + Reviewed by: Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk): + Don't touch buffer if it is of size 0 (fixes #151064). + +2004-10-29 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_push), (gst_ogg_pad_push): + Synchronized discont handling. + +2004-10-29 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event), + (gst_ogg_demux_push): + Make seeking sort-of exact again (fixes #156387). + +2004-10-29 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (unknown_type), + (add_element_stream), (new_decoded_pad), + (gst_play_base_bin_change_state): + * gst/playback/gststreaminfo.c: (gst_stream_info_class_init), + (gst_stream_info_init), (gst_stream_info_new), + (gst_stream_info_dispose), (gst_stream_info_get_property): + * gst/playback/gststreaminfo.h: + Make caps explicitely available. Makes testing for unsupported + types possible. Improves error reporting. + +2004-10-29 Ronald S. Bultje + + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_buffer_to_default_format): + Really don't touch read-only buffers (#156563). + +2004-10-29 Sebastien Cote + + Reviewd by: Ronald S. Bultje + + * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): + Fix memleak (#155223). + +2004-10-29 Wim Taymans + + * gst/tcp/.cvsignore: + * gst/tcp/gstmultifdsink.c: (gst_sync_method_get_type), + (gst_multifdsink_class_init), (gst_multifdsink_init), + (gst_multifdsink_add), (gst_multifdsink_remove), + (gst_multifdsink_remove_client_link), (is_sync_frame), + (gst_multifdsink_new_client), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_set_property), + (gst_multifdsink_get_property): + * gst/tcp/gstmultifdsink.h: + Added burst on connect sync_method, deprecated sync_clients, + streamlined the sync code some more. + +2004-10-29 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (thread_error), (setup_source), + (gst_play_base_bin_change_state): + Improve error reporting. + +2004-10-28 Wim Taymans + + * gst/tcp/Makefile.am: + * gst/tcp/fdsetstress.c: (mess_some_more), (run_test), (main): + * gst/tcp/gstfdset.c: (nearest_pow), (resize), (ensure_size), + (gst_fdset_new), (gst_fdset_free), (gst_fdset_set_mode), + (gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read), + (gst_fdset_fd_has_closed), (gst_fdset_fd_has_error), + (gst_fdset_fd_can_read), (gst_fdset_fd_can_write), + (gst_fdset_wait): + Added more locks around fdset structures. Fixed/reworked + the poll array resizing code. + Added stress test for fdset. + +2004-10-28 Zaheer Abbas Merali + + * gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link): + fix build + +2004-10-28 Benjamin Otte + + * gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link): + fix link function to always query channels and query width for + floats + * configure.ac: + add equalizer dir + * gst/equalizer/Makefile.am: + * gst/equalizer/gstiirequalizer.c: (gst_iir_equalizer_get_type), + (gst_iir_equalizer_base_init), (gst_iir_equalizer_class_init), + (gst_iir_equalizer_init), (gst_iir_equalizer_finalize), + (arg_to_scale), (setup_filter), + (gst_iir_equalizer_compute_frequencies), + (gst_iir_equalizer_set_property), (gst_iir_equalizer_get_property), + (gst_iir_equalizer_filter_inplace), (gst_iir_equalizer_setup), + (plugin_init): + add an equalizer + +2004-10-27 Thomas Vander Stichele + + Submitted by: Kjartan Maraas + + * po/LINGUAS: + * po/nb.po: + Added Norwegian Bokmaal translation + +2004-10-27 Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + Don't break on options (fixes #156488). + +2004-10-27 Thomas Vander Stichele + + * configure.ac: + * ext/cdaudio/Makefile.am: + * sys/Makefile.am: + fix build on older automake + +2004-10-26 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps), + (gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop): + Allow a little margin when negotiating the framerate. + +2004-10-26 Stefan Kost + + * gst/level/gstlevel.c: + synchonised naming of pads and pad-templates + +2004-10-26 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event), + (gst_ogg_demux_handle_event), (_find_chain_get_unknown_part), + (_find_streams_check), (gst_ogg_demux_push): + Fix EOS again. Needs to be done in a better way. We should not + remove the pad if there is no new chained stream. + +2004-10-26 Iain + + * ext/ogg/gstoggdemux.c (gst_ogg_pad_new): Free the tag list. + * gst/audioscale/gstaudioscale.c (gst_audioscale_link): Free the copy + of the caps. + * gst/interleave/interleave.c (interleave_class_init): Hook up release + pad. + (interleave_release_pad): Remove the pad. + * gst/level/gstlevel.c: Allow the level to take 1 or 2 channels. + * sys/sunaudio/gstsunaudio.c (gst_sunaudio_setparams): Pay attention to + the set device. + * sys/xvimage/xvimagesink.c (gst_xvimagesink_get_xv_support): Free the + attrs + (gst_xvimagesink_xcontext_clear): Free the xcontext. + (gst_xvimagesink_finalize): Free the par. + +2004-10-26 Ronald S. Bultje + + * gst/avi/gstavimux.c: (gst_avimux_audsinkconnect), + (gst_avimux_stop_file): + First calculate the rate, and only then use it. Hdr.rate is a + multiple and not a derivative of hdr.scale. Scale is not the + same as blockalign but is solely related to rate. + +2004-10-26 Ronald S. Bultje + + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_init), + (gst_gnomevfssink_handle_event), (gst_gnomevfssink_chain): + Implement seeking. + +2004-10-25 James Henstridge + + Reviewed by: David Schleef + + * examples/gstplay/player.c: (got_stream_length), (main): + * examples/seeking/cdplayer.c: (update_scale): + * examples/seeking/seek.c: (format_value), (update_scale): + * examples/seeking/spider_seek.c: (format_value), (update_scale), + (stop_seek): + Build fixes on AMD64. + +2004-10-25 Zaheer Abbas Merali + + reviewed by: Ronald Bultje + + * sys/v4l/v4l_calls.c: (gst_v4l_get_chan_names): + Fix for some v4l cards which hang in v4lsrc + +2004-10-25 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_remove), + (gst_ogg_demux_push), (gst_ogg_chains_clear): + Make sure to remove the pad when a new chain is + encountered. Set some vars to NULL so we don't try + to reference freed memory. + +2004-10-25 Wim Taymans + + * examples/seeking/Makefile.am: + * examples/seeking/cdplayer.c: (update_scale): + * examples/seeking/chained.c: (unlinked), (new_pad), (main): + * examples/seeking/playbin.c: (make_playerbin_pipeline), + (format_value), (update_scale), (iterate), (start_seek), + (stop_seek), (print_media_info), (play_cb), (pause_cb), (stop_cb), + (print_usage), (main): + Added some more examples, update others. + +2004-10-25 Ronald S. Bultje + + * ext/flac/gstflacdec.c: (gst_flacdec_update_metadata): + * ext/speex/gstspeexdec.c: (speex_dec_chain): + * ext/theora/theoradec.c: (theora_dec_chain): + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + Add codec-name metadata. + +2004-10-25 Takao Fujiwara + + Reviewd by: Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): + * ext/alsa/gstalsamixertrack.h: + * po/POTFILES.in: + ALSA mixer track label internationalization (#154054). + +2004-10-25 Ronald S. Bultje + + * ext/theora/theoradec.c: (theora_dec_chain): + Export bitrate as metadata. + +2004-10-25 Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): + * ext/alsa/gstalsamixertrack.h: + Fix names, fix loop. + +2004-10-25 Ronald S. Bultje + + * ext/speex/gstspeexdec.c: (gst_speex_dec_init), + (speex_dec_convert): + sinkconvert function so oggdemux can get the file length (totem). + +2004-10-25 James Morrison + + Reviewed by: Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk): + Don't push incomplete packets. + * gst/typefind/gsttypefindfunctions.c: (m4a_type_find): + Fix MPEG-4 audio typefinding. + +2004-10-25 Ronald S. Bultje + + * sys/v4l/Makefile.am: + * sys/v4l/gstv4l.c: (plugin_init): + * sys/v4l/gstv4lelement.c: (gst_v4lelement_get_type), + (gst_v4lelement_init), (gst_v4lelement_dispose), + (gst_v4lelement_change_state): + * sys/v4l/gstv4lelement.h: + * sys/v4l/gstv4lxoverlay.c: (gst_v4l_xoverlay_open), + (gst_v4l_xoverlay_close), (idle_refresh), + (gst_v4l_xoverlay_set_xwindow_id): + * sys/v4l/gstv4lxoverlay.h: + * sys/v4l/v4l-overlay_calls.c: + * sys/v4l/v4l_calls.h: + * sys/v4l2/Makefile.am: + * sys/v4l2/gstv4l2.c: (plugin_init): + * sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_type), + (gst_v4l2element_init), (gst_v4l2element_dispose), + (gst_v4l2element_change_state): + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2xoverlay.c: (gst_v4l2_xoverlay_open), + (gst_v4l2_xoverlay_close), (idle_refresh), + (gst_v4l2_xoverlay_set_xwindow_id): + * sys/v4l2/gstv4l2xoverlay.h: + * sys/v4l2/v4l2-overlay_calls.c: + * sys/v4l2/v4l2_calls.h: + Remove client-side overlay handling, use the X-server v4l plugin + for that. Nicer overlay, less code. Also make the plugin + compileable without X (but then without overlay, obviously). + Makes xwindowlistener obsolete, should we remove that? + +2004-10-25 Ronald S. Bultje + + * sys/oss/gstosssrc.c: (gst_osssrc_get_time), (gst_osssrc_get), + (gst_osssrc_src_query): + * sys/oss/gstosssrc.h: + OK, so people want offset in DEFAULT. This time, actually fix all + cases. + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps): + Add FPS properly. + +2004-10-24 Ronald S. Bultje + + * gst/asfdemux/gstasfmux.c: + * gst/avi/gstavimux.c: + Framerate. + +2004-10-24 Ronald S. Bultje + + * sys/v4l2/gstv4l2element.c: (gst_v4l2element_set_property): + Fix properties (channel, norm, frequency). + +2004-10-24 Ronald S. Bultje + + * sys/v4l2/gstv4l2element.c: (gst_v4l2element_get_property): + Flag typo. + * sys/v4l2/v4l2_calls.c: (gst_v4l2_set_defaults): + No warnings. + +2004-10-24 Ronald S. Bultje + + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_clear_format_list): + Fix hang. + +2004-10-24 Ronald S. Bultje + + * sys/v4l2/gstv4l2element.h: + Yet Another Hack (tm) for kernel header borkedness. + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init), + (gst_v4l2src_v4l2fourcc_to_caps), (gst_v4l2_fourcc_from_structure), + (gst_v4l2src_link), (gst_v4l2src_getcaps), + (gst_v4l2src_change_state): + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_capture_init), + (gst_v4l2src_capture_start), (gst_v4l2src_capture_stop): + Fix caps, keep track of state, work. + +2004-10-24 Ronald S. Bultje + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_getcaps): + Quiet. + +2004-10-24 Ronald S. Bultje + + * sys/oss/gstosssrc.c: (gst_osssrc_get): + Don't mix bytes and samples. + +2004-10-24 Ronald S. Bultje + + * ext/ogg/gstoggmux.c: + Basic pad template which accepts OGM tracks, speex, flac, vorbis + and theora. Any is incorrect. + * gst/asfdemux/gstasfmux.c: (gst_asfmux_vidsink_link): + Fix caps. + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_base_init): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_base_init), + (gst_v4lmjpegsrc_init), (gst_v4lmjpegsrc_srcconnect), + (gst_v4lmjpegsrc_getcaps), (gst_v4lmjpegsrc_change_state): + * sys/v4l/gstv4lmjpegsrc.h: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps), + (gst_v4lsrc_change_state): + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_start), + (gst_v4lmjpegsrc_capture_stop): + Fix caps. Keep track of internal state. Work. + +2004-10-23 Ronald S. Bultje + + * ext/Makefile.am: + Fix the build fixes. + +2004-10-23 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (_find_chain_seek), + (gst_ogg_pad_push): + Check for pad availability before using it. + * ext/ogg/gstoggdemux.c: (_find_chain_process): + Fix parsing of chained ogg. Needs more work on the decoder side. + +2004-10-22 Benjamin Otte + + * gst/spectrum/Makefile.am: + * gst/spectrum/demo-osssrc.c: (spectrum_chain), (main), + (idle_func): + Fix demo and reenable it. Yes, I'm currently playing with audio + analysis tools + +2004-10-22 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + We love it if files that start at zero work too... + +2004-10-22 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate): + Handle files with missing EOS headers. + +2004-10-21 Zaheer Abbas Merali + + * gst/tcp/gsttcpserversink.c: + (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_init_send): + Zero some variables first (need for accept not to return EINVAL) + +2004-10-20 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (gst_ogg_pad_push): + * ext/theora/theoradec.c: (theora_dec_sink_convert), + (theora_dec_chain): + * ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats), + (gst_vorbis_dec_init), (vorbis_dec_convert), (vorbis_dec_chain): + Seeking and querying finetune. + +2004-10-20 Thomas Vander Stichele + + * configure.ac: + * ext/Makefile.am: + * ext/raw1394/Makefile.am: + fix the build + +2004-10-20 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate): + Wrong return. + * gst/playback/Makefile.am: + * gst/playback/gstdecodebin.c: (gst_decode_bin_class_init): + * gst/playback/gstplay-marshal.list: + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init): + Fix marshallers. + +2004-10-18 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event): + Silence. + +2004-10-18 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (gst_ogg_pad_populate), + (gst_ogg_pad_push): + Yay for non-lineair granulepos in theora. + +2004-10-18 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps), + (gst_dvdec_video_link), (gst_dvdec_push), (gst_dvdec_loop): + * ext/dv/gstdvdec.h: + Make sure we renegotiate aspect ratio when the camera switches. + +2004-10-18 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (gst_ogg_pad_push): + Start at zero. + * ext/theora/theoradec.c: (theora_dec_chain): + Skip headers. Bad idea for chained ogg, but fixes seeking. + +2004-10-18 Wim Taymans + + * configure.ac: + I swear, this is the last time I touch this. + +2004-10-18 Ronald S. Bultje + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (gst_ogg_pad_populate), + (_read_bos_process), (gst_ogg_demux_iterate), (gst_ogg_pad_new): + Faster seeking. + * ext/theora/theoradec.c: (theora_dec_sink_convert): + Time-to-default conversion. + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + Don't error on unknown packets, just skip. We should probably + read them if we want to support chained ogg. + +2004-10-18 Wim Taymans + + * configure.ac: + Added cdaudio to wrong list. + +2004-10-18 Wim Taymans + + * configure.ac: + Revive cdaudio. + +2004-10-18 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_video_getcaps), + (gst_dvdec_video_link), (gst_dvdec_push): + * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init), + (gst_smokeenc_resync), (gst_smokeenc_chain): + Fix mimetype on smoke encoder. + Add aspect ratio to dvdec. Not sure if these + values are correct though.... + +2004-10-18 Wim Taymans + + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init): + Fix vorbis property descriptions and ranges. + +2004-10-18 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate): + Really do nothing when no data is available. + Go to the playing state when the stream is not seekable + instead of failing. + +2004-10-18 Wim Taymans + + * ext/cdaudio/gstcdaudio.c: (_do_init), (gst_cdaudio_base_init), + (gst_cdaudio_get_event_masks), (gst_cdaudio_send_event), + (gst_cdaudio_query), (plugin_init), (cdaudio_uri_get_type), + (cdaudio_uri_get_protocols), (cdaudio_uri_get_uri), + (cdaudio_uri_set_uri), (cdaudio_uri_handler_init): + Added uri handler for cd:// + Port to new API. + +2004-10-18 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_class_init), + (gst_decode_bin_init), (find_compatibles), (close_pad_link), + (try_to_link_1), (no_more_pads), (close_link), (type_found): + * gst/playback/gstplaybasebin.c: (gen_preroll_element), + (remove_prerolls), (unknown_type), (add_element_stream), + (new_decoded_pad), (setup_source), (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_link_stream): + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_vis_element), (remove_sinks), (setup_sinks): + * gst/playback/gststreaminfo.c: (gst_stream_type_get_type), + (gst_stream_info_get_type), (gst_stream_info_class_init), + (gst_stream_info_init), (gst_stream_info_new), + (gst_stream_info_dispose), (stream_info_mute_pad), + (gst_stream_info_set_property), (gst_stream_info_get_property): + * gst/playback/gststreaminfo.h: + Add sink padtemplate to decodebin. + Added some more comments. + Make queue size configurable in playbasebin. + Added possibility to use elements as sinks (ex cdaudio). + +2004-10-15 Wim Taymans + + * ext/speex/gstspeexenc.c: (gst_speexenc_class_init), + (gst_speexenc_chain): + Fix speex timestamps so that it gets muxed properly. + +2004-10-15 Wim Taymans + + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_get_type), + (gst_dv1394src_base_init), (gst_dv1394src_class_init), + (gst_dv1394src_init), (gst_dv1394src_dispose), + (gst_dv1394src_iso_receive), (gst_dv1394src_discover_avc_node), + (gst_dv1394src_change_state), (gst_dv1394src_get_event_mask), + (gst_dv1394src_event), (gst_dv1394src_get_formats), + (gst_dv1394src_convert), (gst_dv1394src_get_query_types), + (gst_dv1394src_query), (gst_dv1394src_uri_get_type), + (gst_dv1394src_uri_get_protocols), (gst_dv1394src_uri_get_uri), + (gst_dv1394src_uri_set_uri), (gst_dv1394src_uri_handler_init): + * ext/raw1394/gstdv1394src.h: + Added conversion/query functions. + Update buffer timestamps, + Added signals. + Added uri dv:// so it might play from the firewire in playbin. + Fix a possible leak. + Added debugging. + +2004-10-15 Wim Taymans + + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_class_init), + (gst_dv1394src_init), (gst_dv1394src_set_property), + (gst_dv1394src_get_property), (gst_dv1394src_iso_receive), + (gst_dv1394src_discover_avc_node), (gst_dv1394src_change_state): + * ext/raw1394/gstdv1394src.h: + Added AV/C VTR control support needed for some cameras. + Added automatic port detection. + Added properties for selecting the channel. + The configure.ac script is not yet updated to reflect the + new libavc1394 and librom1394 dependencies. + +2004-10-15 Wim Taymans + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse), (gst_qtdemux_handle_esds): + An esds box is not a container. + Fix parsing of mp4v boxes. + Do not try to renegotiate fps for each frame. Need to + find a better method. This should fix mp4 playback. + +2004-10-14 David Schleef + + * configure.ac: update for swfdec-0.3 and liboil-0.2 + * ext/swfdec/gstswfdec.c: update for swfdec-0.3 + * ext/swfdec/gstswfdec.h: same + * gst/videofilter/gstvideobalance.c: update for liboil-0.2 + * gst/videotestsrc/videotestsrc.c: same + +2004-10-14 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_remove_client_link), + (is_sync_frame), (gst_multifdsink_new_client), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_change_state): + Turn warnings into info. + Don't allow a state change in the streaming thread. + +2004-10-14 Thomas Vander Stichele + + * ext/vorbis/oggvorbisenc.c: + * ext/vorbis/vorbisdec.c: + fix template sample rate + +2004-10-13 Wim Taymans + + * ext/mad/gstmad.c: (gst_mad_check_caps_reset), (gst_mad_chain): + Decoding the header first fixes some problems in resyncing + in more mp3s. + +2004-10-12 Wim Taymans + + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_vis_element), (remove_sinks), (setup_sinks): + Added vis plugin support, need to configure the vis + element to activate it. + +2004-10-12 Ronald S. Bultje + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get), + (gst_gnomevfssrc_srcpad_query), (gst_gnomevfssrc_srcpad_event): + Some debug. + * gst/avi/gstavidemux.c: (gst_avi_demux_reset), + (gst_avi_demux_handle_src_event), (gst_avi_demux_read_superindex), + (gst_avi_demux_read_subindexes), (gst_avi_demux_add_stream), + (gst_avi_demux_stream_index), (gst_avi_demux_skip), + (gst_avi_demux_sync), (gst_avi_demux_stream_scan), + (gst_avi_demux_massage_index), (gst_avi_demux_stream_header): + * gst/avi/gstavidemux.h: + Support for openDML-2.0 indx/ix## chunks. Support for broken index + recovery (where, if part of the index is broken, we will still read + the rest of the index and recover the broken part by stream + scanning). More broken media support. EOS workarounds. General AVI + braindamage headache recovery. Aspirin included. + +2004-10-11 Ronald S. Bultje + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_open), + (cdparanoia_event), (cdparanoia_query): + Get rid of hideous lead-in. + +2004-10-11 Wim Taymans + + * gst/playback/gstplaybasebin.c: (setup_source): + Wrong var used to get g_list_next. + +2004-10-11 Ronald S. Bultje + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init), + (cdparanoia_get), (cdparanoia_open): + Report discid as metadata, add duration. + +2004-10-11 Wim Taymans + + * gst/playback/gstplaybasebin.c: (setup_source): + Cleanup the previous pipeline a little earlier for the + case that a source element provides raw data. + +2004-10-11 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_chain): + reset v1 tag offset when there is no v1 tag. Fixes id3demux always + consuming the last 128 bytes, even though it was valid mp3 data. + +2004-10-10 Zaheer Abbas Merali + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps), + (gst_v4lsrc_getcaps), (gst_v4lsrc_get): + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay): + Change g_warnings to GST_WARNING_OBJECT and fix colourspace issue + +2004-10-10 Zaheer Abbas Merali + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps): + Fix for webcams that support only specific width or height + +2004-10-09 Tim-Philipp Müller + + Reviewed by: Ronald S. Bultje + + * gst/wavenc/gstwavenc.c: (gst_wavenc_stop_file): + Fix wrong discont event setup (fixes #154967). + +2004-10-09 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst/auparse/gstauparse.c: (gst_auparse_chain): + Error out on invalid data (fixes #154807). + +2004-10-09 Tim-Philipp Müller + + Reviewed by: Ronald S. Bultje + + * ext/dvdread/dvdreadsrc.c: (_read): + Make titles > 0 work again (fixes #154834). + +2004-10-09 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_template_caps): + WMV3 missing in template caps. + +2004-10-09 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): + OK, so the original code was too strict. It makes random AVI files + hang for seconds upon opening, which is unacceptable and is far + beyond the original goal of getting multiple chunks for one-chunk + sounc stream files. So now do just that. + +2004-10-09 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (setup_source), + (gst_play_base_bin_change_state): + Actually clean up streaminfo if output fails. This would trigger + if, for example, there was no CD in the drive. No preroll, so + a streaminfo structure is created, but the subsequent state change + of the thread fails. + * gst/playback/gstplaybin.c: (gst_play_bin_change_state): + Don't change state if parent failed. + +2004-10-08 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (gst_play_bin_class_init), + (gst_play_bin_init), (gst_play_bin_get_property), (handoff), + (gen_video_element), (remove_sinks): + Add small bits of code for screenshot handling. + +2004-10-08 Wim Taymans + + * gst/playback/gstplaybin.c: (gst_play_bin_set_property), + (gen_video_element), (gen_audio_element), (setup_sinks): + Don't assume the user provided sinks are named "sink"... + +2004-10-08 Wim Taymans + + * gst/playback/gstplaybasebin.c: (gen_preroll_element), + (unknown_type), (setup_source), (gst_play_base_bin_remove_element), + (gst_play_base_bin_link_stream): + Do not try to autoplug sources that generate raw streams like + cdparanoia. + disconnect the preroll overrun signal when we don't need it anymore. + +2004-10-08 Milosz Derezynski + + * ext/cdparanoia/gstcdparanoia.c: (_do_init), + Added reworked patch from #154903 from milosz derezynski (deadchip). + +2004-10-08 Wim Taymans + + * ext/cdparanoia/gstcdparanoia.c: (_do_init), + (cdparanoia_base_init), (cdparanoia_class_init), (cdparanoia_init), + (cdparanoia_dispose), (cdparanoia_get), (cdparanoia_change_state), + (cdparanoia_convert), (cdparanoia_uri_get_type), + (cdparanoia_uri_get_protocols), (cdparanoia_uri_get_uri), + (cdparanoia_uri_set_uri), (cdparanoia_uri_handler_init): + * ext/cdparanoia/gstcdparanoia.h: + This adds the cdda:// uri. + +2004-10-08 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_class_init), + (gst_decode_bin_init), (find_compatibles), (close_pad_link), + (try_to_link_1), (no_more_pads), (close_link), (type_found): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_class_init), + (unknown_type), (gst_play_base_bin_remove_element), + (gst_play_base_bin_link_stream): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_init), + (gst_play_bin_set_property), (gen_video_element), + (gen_audio_element), (setup_sinks): + * gst/playback/gststreaminfo.c: (gst_stream_type_get_type), + (gst_stream_info_get_type), (gst_stream_info_class_init), + (gst_stream_info_init), (gst_stream_info_new), + (gst_stream_info_dispose), (stream_info_mute_pad), + (gst_stream_info_set_property), (gst_stream_info_get_property): + * gst/playback/gststreaminfo.h: + Reuse the audio and video bins. + Some internal cleanups in the stream selection code. + +2004-10-08 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_sink_link), + (gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link), + (gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): + * sys/xvimage/xvimagesink.h: Reverting Ronald's changes as the issue is + not coming from those elements. Moreover these elements should not keep + the xid they have been given when in NULL state. + +2004-10-07 Ronald S. Bultje + + * sys/ximage/ximagesink.c: (gst_ximagesink_sink_link), + (gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link), + (gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): + * sys/xvimage/xvimagesink.h: + Actually only create a new toplevel window if we're not gonna + embed it right after. + +2004-10-07 Wim Taymans + + * gst/playback/gstplaybasebin.c: (play_base_bin_mute_pad), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream): + * gst/playback/gstplaybin.c: (setup_sinks): + Implement muting/unmuting of streams, mute streams that are not + used. + +2004-10-07 Wim Taymans + + * gst/typefind/gsttypefindfunctions.c: (ac3_type_find), + (plugin_init): + Added lame audio/x-ac3 typefind function. + +2004-10-06 Thomas Vander Stichele + + * configure.ac: + bump nano to cvs + +=== release 0.8.5 === + +2004-10-06 Thomas Vander Stichele + + * NEWS: + * RELEASE: + * configure.ac: + releasing 0.8.5, "Take You On" + +2004-10-06 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_init), + (find_compatibles), (close_pad_link), (try_to_link_1), (new_pad), + (no_more_pads), (close_link), (type_found): + * gst/playback/gstplaybasebin.c: (new_decoded_pad): + * gst/playback/gstplaybin.c: (gen_video_element): + Do not signal the no_more_pads after the first pad when + we are plugging a non dynamic element with multiple + output pads (like swfdec, dvdec, ...). + +2004-10-06 Thomas Vander Stichele + + * configure.ac: + bump for prerelease + +2004-10-06 Stephane Loeuillet + + * gst/wavparse/gstwavparse.c: + add ATRAC3 to STATIC CAPS to fix a warning + + * gst/matroska/ebml-read.c: + * gst-libs/gst/riff/riff-read.c: + fix typos + +2004-10-06 Stephane Loeuillet + + * gst-libs/gst/riff/riff-media.c: + generate caps for ATRAC3 audio streams + + * gst/realmedia/rmdemux.c: + generate caps for ATRAC3 audio streams + +2004-10-06 Stephane Loeuillet + + * gst/wavparse/Makefile.am + * gst/wavparse/riff.h + * gst/wavparse/wavparse.vcproj + riff.h removal (unused and duplication with riff-ids.h) + +2004-10-06 Stephane Loeuillet + + * gst/wavparse/gstwavparse.h + remove duplicated defines for audio codec codes + + * gst-libs/gst/riff/riff-ids.h + * gst/wavenc/riff.h: + add "4CC" code for ATRAC3 audio streams + add "4CC" code for ITU_G721_ADPCM (unused for now) + +2004-10-06 Wim Taymans + + * gst/flx/gstflxdec.c: (gst_flxdec_init), (gst_flxdec_loop): + Actually _do_ negotiation. Pass gdouble as arg instead + of guint64 for the framerate. + +2004-10-06 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_init), + (find_compatibles), (close_pad_link), (try_to_link_1), + (no_more_pads), (close_link), (type_found): + * gst/playback/gstplaybasebin.c: (new_decoded_pad): + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element): + Set state on newly added element to READY so that negotiation + can happen ASAP. + Addes some more debug info. + Do not try to plug pads with multiple caps structures or ANY + because it is too dangerous since we do not do dynamic + replugging. + +2004-10-06 Thomas Vander Stichele + + written by: Gora Mohanty + + * po/LINGUAS: + * po/or.po: + add Oriya translation + +2004-10-05 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): + Prevent overwrite of size member. Makes audio sound crappy. + +2004-10-05 Stephane Loeuillet + + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + Add rmvb to the list of known RealMedia extensions + +2004-10-05 Wim Taymans + + * ext/libmng/gstmngdec.c: (gst_mngdec_loop), (mngdec_error), + (mngdec_openstream), (mngdec_closestream), + (mngdec_handle_sink_event), (mngdec_readdata), + (mngdec_gettickcount), (mngdec_settimer), (mngdec_processheader), + (mngdec_getcanvasline), (mngdec_refresh), + (gst_mngdec_change_state): + Set the framerate correctly. + +2004-10-04 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): + There was something wrong with the index massaging. + +2004-10-04 Wim Taymans + + * ext/jpeg/gstjpeg.c: (smoke_type_find), (plugin_init): + * ext/jpeg/gstsmokedec.c: (gst_smokedec_init), + (gst_smokedec_chain): + * ext/jpeg/gstsmokedec.h: + * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_class_init), + (gst_smokeenc_init), (gst_smokeenc_resync), (gst_smokeenc_chain): + * ext/jpeg/gstsmokeenc.h: + * ext/jpeg/smokecodec.c: (smokecodec_encode_new), + (smokecodec_decode_new), (smokecodec_info_free), + (smokecodec_set_quality), (smokecodec_get_quality), + (smokecodec_set_threshold), (smokecodec_get_threshold), + (smokecodec_set_bitrate), (smokecodec_get_bitrate), + (find_best_size), (abs_diff), (put), (smokecodec_encode_id), + (smokecodec_encode), (smokecodec_parse_id), + (smokecodec_parse_header), (smokecodec_decode): + * ext/jpeg/smokecodec.h: + * ext/jpeg/smokeformat.h: + Updated smoke, new bitstream, allows embedding in ogg. + +2004-10-04 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_event): + Fix seeking in some files. All this code is no longer needed (and + actually breaks stuff) because we now synchronize the full index + right when reading the header. + +2004-10-04 Wim Taymans + + * configure.ac: + configure update for libmng. + +2004-10-04 Wim Taymans + + * ext/libmng/Makefile.am: + * ext/libmng/gstmng.c: (plugin_init): + * ext/libmng/gstmng.h: + * ext/libmng/gstmngdec.c: (gst_mngdec_get_type), + (gst_mngdec_base_init), (gst_mngdec_class_init), + (gst_mngdec_sinklink), (gst_mngdec_init), (gst_mngdec_src_getcaps), + (gst_mngdec_loop), (gst_mngdec_get_property), + (gst_mngdec_set_property), (mngdec_error), (mngdec_openstream), + (mngdec_closestream), (mngdec_handle_sink_event), + (mngdec_readdata), (mngdec_gettickcount), (mngdec_settimer), + (mngdec_processheader), (mngdec_getcanvasline), (mngdec_refresh), + (gst_mngdec_change_state): + * ext/libmng/gstmngdec.h: + * ext/libmng/gstmngenc.c: (gst_mngenc_get_type), + (mng_caps_factory), (raw_caps_factory), (gst_mngenc_base_init), + (gst_mngenc_class_init), (gst_mngenc_sinklink), (gst_mngenc_init), + (gst_mngenc_chain), (gst_mngenc_get_property), + (gst_mngenc_set_property): + * ext/libmng/gstmngenc.h: + Added basic MNG decoder. Needs more work. The encoder does + not work yet. + +2004-10-04 Ronald S. Bultje + + * gst/realmedia/rmdemux.c: (gst_rmdemux_handle_sink_event), + (gst_rmdemux_loop), (gst_rmdemux_add_stream), + (gst_rmdemux_parse_mdpr), (gst_rmdemux_dump_mdpr): + Don't hang on length=0 chunks. Some negotiation fixes. Signal + no-more-pads. + +2004-10-04 Thomas Vander Stichele + + * configure.ac: + you need at least 1.0.4 of speex + +2004-10-04 Iain + + * ext/speex/gstspeexdec.h: Revert the includes changes. + + * ext/speex/gstspeexenc.[ch]: Revert the includes changes. + +2004-09-30 Iain + + * sys/sunaudio/gstsunaudio.c (gst_sunaudiosink_open): Use the device + found during init or set as a property instead of hardcoding /dev/audio + +2004-10-04 Ronald S. Bultje + + * gst/realmedia/rmdemux.c: (gst_rmdemux_class_init), + (gst_rmdemux_init), (gst_rmdemux_handle_sink_event), + (gst_rmdemux_loop), (gst_rmdemux_add_stream), (re_hexdump_bytes), + (re_dump_pascal_string), (gst_rmdemux_dump__rmf), + (gst_rmdemux_dump_prop), (gst_rmdemux_parse_mdpr), + (gst_rmdemux_dump_mdpr), (gst_rmdemux_dump_indx), + (gst_rmdemux_dump_data): + Use debug category, fix EOS handling. filesrc ! rmdemux now + works. + +2004-10-04 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), + (gst_avi_demux_stream_scan), (sort), (gst_avi_demux_massage_index), + (gst_avi_demux_stream_header), (gst_avi_demux_stream_data): + Improve allocation, cutting and sorting of the index. How takes a + few seconds instead of minutes. + +2004-10-03 Christophe Fergeau + + * gst/realmedia/rmdemux.c: (gst_rmdemux_parse_mdpr): + fixed compilation + +2004-10-02 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_template_caps): + Add wing commander format mimetype/fourccs. + * gst/avi/gstavidemux.c: (gst_avi_demux_massage_index): + Don't crash if some value is 0. + +2004-10-02 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_template_caps): + Add DIB fourcc (raw, palettized 8-bit RGB). + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_vids_with_data): + Oops, fix strf_data reading bug. + * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): + Use a non-NULL tag. + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Time for hacks. Sorry Dave. At least one quicktime movie (a + trailer) that I've encountered contains multiple video tracks. + One of those is the actual video track, the other are one-frame + tracks (images). Unfortunately, the number of frames according + to the trak header is 1 for each, so that doesn't help. So + instead, I look at the duration and discard tracks with a + duration shorter than 20% of the length of the stream. Better + than nothing. + +2004-10-01 Christian Schaller + + * ext/ivorbis/vorbis.c: + Patch from Phil Blundell (Bug 152341) + +2004-10-01 Wim Taymans + + * ext/speex/gstspeexdec.c: (gst_speex_dec_class_init), + (speex_dec_get_formats), (speex_dec_convert), + (speex_dec_src_query), (speex_dec_src_event), (speex_dec_event), + (speex_dec_chain), (gst_speexdec_get_property), + (gst_speexdec_set_property): + Small cleanups. + +2004-10-01 Wim Taymans + + * gst/wavparse/gstwavparse.c: (gst_wavparse_class_init), + (gst_wavparse_stream_init), (gst_wavparse_fmt), + (gst_wavparse_other), (gst_wavparse_loop), + (gst_wavparse_pad_convert), (gst_wavparse_pad_query), + (gst_wavparse_srcpad_event): + * gst/wavparse/gstwavparse.h: + Added some more debugging info. + Fix the case where the length of the file is 0. + Make sure we seek to sample borders. + +2004-10-01 Wim Taymans + + * gst/playback/README: + * gst/playback/gstdecodebin.c: (gst_decode_bin_factory_filter), + (gst_decode_bin_init), (find_compatibles), (close_pad_link), + (try_to_link_1), (no_more_pads), (close_link), (type_found): + Add some debug info to decodebin, update README + +2004-10-01 Ronald S. Bultje + + * ext/dvdnav/dvdnavsrc.c: (dvdnav_handle_navigation_event): + Don't use g_print(); use GST_DEBUG(). + +2004-10-01 Ronald S. Bultje + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_queue_pads): + Handle EOS properly. + +2004-10-01 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_sinkconnect), + (gst_faad_chain), (gst_faad_change_state): + * ext/faad/gstfaad.h: + Allow playback of raw (unframed) MPEG AAC files (#148993). + +2004-10-01 Sebastien Cote + + Reviewed by: Ronald S. Bultje + + * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): + Throw error if we didn't recognize the stream. Fixes #152289. + +2004-10-01 Ronald S. Bultje + + * gst/videoscale/gstvideoscale.c: (gst_videoscale_link): + Fix negotiation. + +2004-10-01 Francis Labonte + + Reviewed by: Ronald S. Bultje + + * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt): + Fix memleak. + +2004-10-01 Balamurali Viswanathan + + Reviewed by: Ronald S. Bultje + + * sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_setparams): + Solve #152805. + * sys/sunaudio/gstsunmixer.c: (gst_sunaudiomixer_set_mute): + Solve 152806. + +2004-10-01 Ronald S. Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_audio_caps_with_data): + Add codec_data handling (like asfdemux used to do). + * gst/asfdemux/gstasf.c: (plugin_init): + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), + (gst_asf_demux_add_audio_stream), (gst_asf_demux_add_video_stream): + Use riff-media for caps creation instead of our own (mostly + broken) copy of its functions. + +2004-10-01 Ronald S. Bultje + + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_capture): + Don't actually error out if we get another return value than + -EINVAL. Opposite to what I first thought, drivers have random + return values for this, although -EINVAL is the expected return + value. Since this is not fatal, we shouldn't use + GST_ELEMENT_ERROR() but just GST_ERROR_OBJECT(). + +2004-10-01 Ronald S. Bultje + + * ext/dvdread/dvdreadsrc.c: (dvdreadsrc_class_init), + (dvdreadsrc_init), (dvdreadsrc_dispose), (dvdreadsrc_set_property), + (dvdreadsrc_get_property), (_open), (_seek), (_read), + (dvdreadsrc_get), (dvdreadsrc_open_file), + (dvdreadsrc_change_state): + Fix. Don't do one big huge loop around the whole DVD, that will + cache all data and thus eat sizeof(dvd) (several GB) before we + see something. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): + Actually NULL'ify event after using it. + * gst/matroska/ebml-read.c: (gst_ebml_read_use_event), + (gst_ebml_read_handle_event), (gst_ebml_read_element_id), + (gst_ebml_read_element_length), (gst_ebml_read_element_data), + (gst_ebml_read_seek), (gst_ebml_read_skip): + Handle events. + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_base_init), + (gst_dvd_demux_init), (gst_dvd_demux_get_audio_stream), + (gst_dvd_demux_get_subpicture_stream), (gst_dvd_demux_plugin_init): + Fix timing (this will probably break if I seek using menus, but + I didn't get there yet). VOBs and normal DVDs should now work. + Add a mpeg2-only pad with high rank so this get autoplugged for + MPEG-2 movies. + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_base_init), + (gst_mpeg_demux_class_init), (gst_mpeg_demux_init), + (gst_mpeg_demux_new_output_pad), (gst_mpeg_demux_get_video_stream), + (gst_mpeg_demux_get_audio_stream), + (gst_mpeg_demux_get_private_stream), (gst_mpeg_demux_parse_packet), + (gst_mpeg_demux_parse_pes), (gst_mpeg_demux_plugin_init): + Use this as second rank for MPEG-1 and MPEG-2. Still use this for + MPEG-1 but use dvddemux for MPEG-2. + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init), + (gst_mpeg_parse_init), (gst_mpeg_parse_new_pad), + (gst_mpeg_parse_parse_packhead): + Timing. Only add pad template if it exists. Add sink template from + class and not from ourselves. This means we will always use the + correct sink template even if it is not the one defined in this + file. + +2004-09-29 Wim Taymans + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_packet), + (gst_mpeg_demux_parse_pes): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead): + Fix playback of mpeg again, timestamps where screwed up by + patch 1.61. + +2004-09-29 Ronald S. Bultje + + * ext/flac/gstflacdec.c: (gst_flacdec_src_query): + Only return true if we actually filled something in. Prevents + player applications from showing a random length for flac files. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init), + (gst_riff_read_use_event), (gst_riff_read_handle_event), + (gst_riff_read_seek), (gst_riff_read_skip), (gst_riff_read_strh), + (gst_riff_read_strf_vids_with_data), + (gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_iavs): + OK, ok, so I implemented event handling. Apparently it's normal + that we receive random events at random points without asking + for it. + * gst/avi/gstavidemux.c: (gst_avi_demux_reset), + (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), + (gst_avi_demux_handle_src_event), (gst_avi_demux_stream_index), + (gst_avi_demux_sync), (gst_avi_demux_stream_scan), + (gst_avi_demux_massage_index), (gst_avi_demux_stream_header), + (gst_avi_demux_handle_seek), (gst_avi_demux_process_next_entry), + (gst_avi_demux_stream_data), (gst_avi_demux_loop): + * gst/avi/gstavidemux.h: + Implement non-lineair chunk handling and subchunk processing. + The first solves playback of AVI files where the audio and video + data of individual buffers that we read are not synchronized. + This should not happen according to the wonderful AVI specs, but + of course it does happen in reality. It is also a prerequisite for + the second. Subchunk processing allows us to cut chunks in small + pieces and process each of these pieces separately. This is + required because I've seen several AVI files with incredibly large + audio chunks, even some files with only one audio chunk for the + whole file. This allows for proper playback including seeking. + This patch is supposed to fix all AVI A/V sync issues. + * gst/flx/gstflxdec.c: (gst_flxdec_class_init), + (flx_decode_chunks), (flx_decode_color), (gst_flxdec_loop): + Work. + * gst/modplug/gstmodplug.cc: + Proper return value setting for the query() function. + * gst/playback/gstplaybasebin.c: (setup_source): + Being in non-playing state (after, e.g., EOS) is not necessarily + a bad thing. Allow for that. This fixes playback of short files. + They don't actually playback fully now, because the clock already + runs. This means that small files (<500kB) with a small length + (<2sec) will still not or barely play. Other files, such as mod + or flx, will work correctly, however. + +2004-09-28 Wim Taymans + + * ext/speex/gstspeex.c: (plugin_init): + * ext/speex/gstspeexdec.c: (gst_speex_dec_base_init), + (gst_speex_dec_class_init), (speex_dec_get_formats), + (speex_get_event_masks), (speex_get_query_types), + (gst_speex_dec_init), (speex_dec_convert), (speex_dec_src_query), + (speex_dec_src_event), (speex_dec_event), (speex_dec_chain), + (gst_speexdec_get_property), (gst_speexdec_set_property), + (speex_dec_change_state): + * ext/speex/gstspeexdec.h: + * ext/speex/gstspeexenc.c: (gst_speexenc_get_formats), + (gst_speexenc_get_type), (speex_caps_factory), (raw_caps_factory), + (gst_speexenc_base_init), (gst_speexenc_class_init), + (gst_speexenc_sinkconnect), (gst_speexenc_convert_src), + (gst_speexenc_convert_sink), (gst_speexenc_get_query_types), + (gst_speexenc_src_query), (gst_speexenc_init), + (gst_speexenc_get_tag_value), (comment_init), (comment_add), + (gst_speexenc_metadata_set1), (gst_speexenc_set_metadata), + (gst_speexenc_setup), (gst_speexenc_buffer_from_data), + (gst_speexenc_push_buffer), (gst_speexenc_set_header_on_caps), + (gst_speexenc_chain), (gst_speexenc_get_property), + (gst_speexenc_set_property), (gst_speexenc_change_state): + * ext/speex/gstspeexenc.h: + Rewrote speex encoder, make sure it can be embedded in ogg. + Implemented speex decoder. + +2004-09-28 Christian Schaller + + * configure.ac: + Remove kioslave plugin. Markey is brewing a new working one + * ext/Makefile.am: Remove kioslave plugin + * ext/kio: remove + * gst-plugins.spec.in: remove kio plugin from spec + +2004-09-27 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_remove_client_link), + (is_sync_frame), (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_new_client), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients): + * gst/tcp/gstmultifdsink.h: + Make syncing to keyframes actually work for new clients and lagging + clients. + +2004-09-26 Benjamin Otte + + * gst/debug/gstnavigationtest.c: (gst_navigationtest_class_init), + (gst_navigationtest_handle_src_event), (draw_box_planar411), + (gst_navigationtest_planar411), (gst_navigationtest_change_state): + * gst/debug/gstnavigationtest.h: + make navigationtest display button-press and button-release events + +2004-09-26 Iain + + * gst/interleave/interleave.c (all_channels_new_media): Checks if all + the channels have received a new media event. + (interleave_buffered_loop): Compresses a new media event on all + channels into one. + +2004-09-26 Iain + + * gst/wavenc/gstwavenc.c (gst_wavenc_chain): Company says we need to + call the sinkpad's default event handler and not the srcpads. He also + says this is confusing :) + (gst_wavenc_stop_file): Company says that seek events only go upstream + we should send a discontinuous downstream instead. + +2004-09-25 Christian Schaller + + * Update SPEC file to be usable in conjunction with Fedora Core, + Fedora.us and freshrpms packages + * Fix typo in multifilesrc test Makefile + +2004-09-24 Wim Taymans + + * gst/playback/gstplaybasebin.c: (new_decoded_pad): + Only signal the no_more_pads signal when we have + added the stream to our list. + +2004-09-24 Wim Taymans + + * gst/playback/gstplaybasebin.c: (remove_prerolls), + (new_decoded_pad): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (setup_sinks): + Don't try to preroll or decode more than one audio/video + track. + +2004-09-24 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state): + Throw error if we failed to find a suitable output. This should + throw an error if we successfully set up a pipeline (e.g. because + we recognized a media file) but found no decodable streams in it + (e.g. because it contains only media stream types for which we + have no decoders, or because it's not a media type). + +2004-09-23 Ronald S. Bultje + + * ext/dirac/Makefile.am: + * ext/dirac/gstdirac.cc: + * ext/dirac/gstdiracdec.cc: + * ext/dirac/gstdiracdec.h: + Do something. Don't actually know if this works because I don't + have a demuxer yet. + * ext/gsm/gstgsmdec.c: (gst_gsmdec_getcaps): + Add channels=1 to caps returned from _getcaps(). + * ext/ogg/gstogmparse.c: (gst_ogm_audio_parse_get_type), + (gst_ogm_video_parse_get_type), (gst_ogm_audio_parse_base_init), + (gst_ogm_video_parse_base_init), (gst_ogm_parse_init), + (gst_ogm_audio_parse_init), (gst_ogm_video_parse_init), + (gst_ogm_parse_sink_convert), (gst_ogm_parse_chain), + (gst_ogm_parse_change_state): + Separate between audio/video so ogmaudioparse actually uses the + audio pad templates. Both audio and video work now, including + autoplugging. Also use sometimes-srcpad hack. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): + Handle events better. Don't hang on infinite loops. + * gst/avi/gstavidemux.c: (gst_avi_demux_class_init), + (gst_avi_demux_init), (gst_avi_demux_reset), + (gst_avi_demux_src_convert), (gst_avi_demux_handle_src_query), + (gst_avi_demux_stream_header), (gst_avi_demux_stream_data), + (gst_avi_demux_change_state): + * gst/avi/gstavidemux.h: + Improve A/V sync. Still not perfect. + * gst/matroska/ebml-read.c: (gst_ebml_read_seek), + (gst_ebml_read_skip): + Handle events better. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), + (gst_qtdemux_loop_header), (qtdemux_parse_trak), + (qtdemux_audio_caps): + Add IMA4. Improve event handling. Save offset after a seek when + the headers are at the end of the file so that we don't end up in + an infinite loop. + * gst/typefind/gsttypefindfunctions.c: (qt_type_find): + Add low-priority typefind support for files with no length. + +2004-09-23 Zaheer Abbas Merali + + * testsuite/multifilesink/Makefile.am: + fix typo + +2004-09-22 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls): Fix + mistakes from thaytan's patches. + +2004-09-23 Jan Schmidt + + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy): + For completeness, XSync in the destroy function as xvimage does. + +2004-09-23 Jan Schmidt + + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps): + Correct caps negotiation + * gst/volume/gstvolume.c: (volume_chain_float), + (volume_chain_int16): + Modify debug output to be little more informative + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_destroy): + Add XSync calls after detaching from the shared memory segment to + avoid a crash. + +2004-09-22 Zaheer Abbas Merali + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_init), + (gst_ogg_mux_next_buffer), (gst_ogg_mux_loop): + * ext/vorbis/vorbis.c: (plugin_init): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_init), + (gst_vorbisenc_chain): + * ext/vorbis/vorbisenc.h: + remove explicit newmedia support from oggmux and vorbisenc + add debug category to vorbisenc + * gst/multifilesink/gstmultifilesink.c: + (gst_multifilesink_class_init), (gst_multifilesink_init), + (gst_multifilesink_dispose), (gst_multifilesink_set_location), + (gst_multifilesink_set_property), (gst_multifilesink_next_file), + (gst_multifilesink_handle_event), (gst_multifilesink_chain), + (plugin_init): + * gst/multifilesink/gstmultifilesink.h: + add support for streamheader in multifilesink + +2004-09-22 Ronald S. Bultje + + * gst/asfdemux/gstasfdemux.c: (_read_var_length), (_read_guid), + (gst_asf_demux_process_segment), (gst_asf_demux_handle_data), + (gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event): + Prevent infinite loops. More correct error reporting. + * gst/auparse/gstauparse.c: (gst_auparse_chain): + Error out if negotiation fails. + * gst/playback/gstplaybasebin.c: (setup_source), + (gst_play_base_bin_change_state), (gst_play_base_bin_error), + (gst_play_base_bin_found_tag): + Error/tag forwarding. Pre-roll fixes for source errors on state + changes (e.g. "file does not exist") to prevent hangs. + +2004-09-21 Zaheer Abbas Merali + + * testsuite/multifilesink/Makefile.am: + * testsuite/multifilesink/lame_test.c: (gst_newmedia_base_init), + (gst_newmedia_class_init), (gst_newmedia_init), + (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), + (newfile_signal), (test_signal), (main): + * testsuite/multifilesink/multifilesrc_test.c: (main): + * testsuite/multifilesink/oggtheora_test.c: + (gst_newmedia_base_init), (gst_newmedia_class_init), + (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), + (test_format), (newfile_signal), (test_signal), (main): + * testsuite/multifilesink/oggvorbis_test.c: + (gst_newmedia_base_init), (gst_newmedia_class_init), + (gst_newmedia_init), (gst_newmedia_chain), (gst_newmedia_trigger), + (test_format), (newfile_signal), (test_signal), (main): + * testsuite/multifilesink/wavenc_test.c: (gst_newmedia_base_init), + (gst_newmedia_class_init), (gst_newmedia_init), + (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), + (newfile_signal), (test_signal), (main): + New media tests + +2004-09-20 Christian Schaller + + * Fix mikmod license to LGPL as they have relicensed + * Move Dirac and Effectv into LGPL section of README_license + +2004-09-20 Ronald S. Bultje + + * ext/mad/gstmad.c: (gst_mad_check_caps_reset), + (gst_mad_change_state): + Allow for mp3 rate/channels changes. However, only very + conservatively. Reason that we *have* to enable this is smiply + because the mad find_sync() function is not good enough, it will + regularly sync on random data as valid frames and therefore make + us provide random caps as *final* caps of the stream. The best fix + I could think of is to simply require several of the same stream + changes in a row before we change caps. + The actual testcase that works now is # + * ext/ogg/Makefile.am: + * ext/ogg/gstogg.c: (plugin_init): + * ext/ogg/gstogmparse.c: + OGM support (video only for now; I need an audio sample file). + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), + (gst_asf_demux_process_stream), (gst_asf_demux_video_caps), + (gst_asf_demux_add_video_stream): + WMV extradata. + * gst/playback/gstplaybasebin.c: (unknown_type): + Don't error out on single unknown-types after all. It's wrong. + If we found type of video and audio but not of a subtitle stream, + it will still error out (which is unwanted). Will find a better fix + later on. + * gst/typefind/gsttypefindfunctions.c: (ogmvideo_type_find), + (ogmaudio_type_find), (plugin_init): + OGM support. + +2004-09-20 Johan Dahlin + + * ext/jpeg/gstjpegdec.c (gst_jpegdec_chain): Allocate the buffer + after setting caps. + +2004-09-19 Zaheer Abbas Merali + + * gst/wavenc/gstwavenc.c: (gst_wavenc_init), (gst_wavenc_chain): + * gst/wavenc/gstwavenc.h: + Added newmedia support to wavenc + +2004-09-17 Wim Taymans + + * gst/tcp/gstfdset.c: (gst_fdset_fd_has_closed), + (gst_fdset_fd_has_error), (gst_fdset_fd_can_read), + (gst_fdset_fd_can_write), (gst_fdset_wait): + * gst/tcp/gstmultifdsink.c: (gst_client_status_get_type), + (gst_multifdsink_init), (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_get_stats), + (gst_multifdsink_remove_client_link), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_handle_clients), + (gst_multifdsink_close), (gst_multifdsink_change_state): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init), + (gst_tcpserversink_removed): + Small cleanups in fdset.c + Use a hastable to map fd to the client structure for faster + lookup in _remove and get_stats. + Added virtual function to close the fds. + Handle clients even when the select/poll call was unblocked because + of a command. + Implement syncing to keyframe in the recovery procedure. + +2004-09-16 Iain + + * gst/audioconvert/gstaudioconvert.c (_fixate_caps_to_int): Free the + try caps. + +2004-09-15 Ronald S. Bultje + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_get_audio_stream): + Caps are only set if the type of the stream is unknown, but this + is initialized in ->init_stream(), so set to UNKNOWN after calling + ->init_stream() so that capsnego starts. + +2004-09-15 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), + (gst_avi_demux_stream_data): + Just hardcode for raw audio then. AVI audio sucks. + +2004-09-15 Arwed v. Merkatz + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps): + * gst/matroska/matroska-mux.c: (audiosink_templ), + (gst_matroska_mux_audio_pad_link): + * gst/typefind/gsttypefindfunctions.c: (tta_caps), (plugin_init): + Use audio/x-ttafile for tta files and audio/x-tta for raw tta frames. + +2004-09-15 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), + (gst_avi_demux_stream_data): + Try to fix a/v sync issues. + +2004-09-15 David Schleef + + * configure.ac: remove NASM check, since we don't use it. Update + dirac check to 0.4 + * ext/dirac/gstdiracdec.cc: update to current 0.4 API + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + Initialized variables. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_loop_header), (qtdemux_parse), (qtdemux_parse_trak), + (gst_qtdemux_handle_esds), (qtdemux_audio_caps): Fix seeking, add + SVQ3 format + +2004-09-15 Ronald S. Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), + (gst_avi_demux_add_stream), (gst_avi_demux_stream_data): + * gst/avi/gstavidemux.h: + Fix for compressed audio (mp3) timestamp generation. How did this + ever work? + +2004-09-15 Ronald S. Bultje + + * gst/playback/gstplaybin.c: (gst_play_bin_get_property): + Volume is a double not a float. + +2004-09-15 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_remove_client_link), + (gst_multifdsink_handle_clients), (gst_multifdsink_change_state): + Don't close the fd in multifdsink as we didn't open it in the + first place. Some cleanups. + +2004-09-15 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop): + Fix the case where the muxer would mark pages as delta + frames when they are not (vorbis only ogg). + +2004-09-15 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: (state_change), (setup_source), + (gst_play_base_bin_change_state): + Handle the case where we failed to setup a clear pipeline. This + will throw an error (or EOS, another nice case) and if you don't + catch that, the app will wait for the signal forever (and thus + hang). + +2004-09-15 Ronald S. Bultje + + * ext/gnomevfs/gstgnomevfssink.c: + (gst_gnomevfssink_uri_get_protocols): + * ext/gnomevfs/gstgnomevfssrc.c: + (gst_gnomevfssrc_uri_get_protocols): + * ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris): + * ext/gnomevfs/gstgnomevfsuri.h: + Use _uri_new() instead of _open(), so it doesn't take as long and + Christophe's computer won't hang. + * gst/playback/gstplaybasebin.c: (unknown_type): + Throw error on unknown media type, so apps actually display it. + +2004-09-14 Brian Cameron + + * gst/playback/gstplaybasebin.c: (queue_overrun), (no_more_pads), + (setup_source), (gst_play_base_bin_set_property), + (gst_play_base_bin_add_element): + * gst/playback/gstplaybin.c: (gst_play_bin_send_event): + Some more work on making sure seeking pauses the pipeline and + that changing the uri actually does something. + +2004-09-17 Wim Taymans + + * gst/tcp/gstfdset.c: (gst_fdset_wait): + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_close): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init_send), + (gst_tcpserversink_close): + Be a bit more paranoid when freeing memory. + +2004-09-13 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), + (qtdemux_parse_trak): + Don't crash by dividing by zero (see sample movie in #126922). + +2004-09-13 Ronald S. Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): + Don't touch non-existing data (fixes crash on file in #140147). + +2004-09-13 Ronald S. Bultje + + * gst/playback/gstplaybasebin.c: + (gst_play_base_bin_dispose), (gst_play_base_bin_set_property): + Handle double disposals, and proper change of URIs. + +2004-09-13 Martin Eikermann + + * gst/mpegstream/gstmpegparse.c: + fix synchronistation for streams recorded from digital PCR + fixes bug #119376 + +2004-09-13 Ronald S. Bultje + + * ext/gnomevfs/Makefile.am: + * ext/gnomevfs/gstgnomevfs.c: (plugin_init): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_get_type), + (gst_gnomevfssink_dispose), (gst_gnomevfssink_init), + (gst_gnomevfssink_uri_get_type), + (gst_gnomevfssink_uri_get_protocols), + (gst_gnomevfssink_uri_get_uri), (gst_gnomevfssink_uri_set_uri), + (gst_gnomevfssink_uri_handler_init), + (gst_gnomevfssink_set_property), (gst_gnomevfssink_get_property), + (gst_gnomevfssink_open_file), (gst_gnomevfssink_close_file): + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_type), + (gst_gnomevfssrc_init), (gst_gnomevfssrc_dispose), + (gst_gnomevfssrc_uri_get_type), + (gst_gnomevfssrc_uri_get_protocols), (gst_gnomevfssrc_uri_get_uri), + (gst_gnomevfssrc_uri_set_uri), (gst_gnomevfssrc_uri_handler_init), + (gst_gnomevfssrc_set_property), (gst_gnomevfssrc_get_property), + (gst_gnomevfssrc_open_file), (gst_gnomevfssrc_close_file): + * ext/gnomevfs/gstgnomevfsuri.c: (gst_gnomevfs_get_supported_uris): + * ext/gnomevfs/gstgnomevfsuri.h: + Add URI support to Gnome-VFS plugins. Tries to load a fixed list + of fake URIs to see which this version of Gnome-VFS likes, and + uses that for the Gst-URI interface. Makes playbin support http:// + streams. Also fix up some stupid behaviour in gnomevfssrc. + +2004-09-13 Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_update), + (gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume), + (gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record), + (gst_alsa_mixer_set_option), (gst_alsa_mixer_get_option): + Update mixer (to sync with other sessions) if we try to obtain + a new value. This makes alsamixer work accross applications. + * ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time): + Only call sync functions if we're running, else alsalib asserts. + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query): + Sometimes fails to compile. Possibly a gcc bug. + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element): + Add a reference to an application-provided object, because we lose + this same reference if we add it to the bin. If we don't do this, + we can only use this object once and thus crash if we go from + ready to playing, back to ready and back to playing again. + Also add an audioscale element because several cheap soundcards - + like mine - don't support all samplerates. + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get), + (gst_ximagesink_xcontext_clear), (gst_ximagesink_change_state): + Fix wrong order or PAR calls. Makes automatically obtained PAR + from the X server atually being used. + +2004-09-12 David Schleef + + Fixes: #151879, #151881, #151882, #151883, #151884, #151886, + #151887, #152102, #152247. + * examples/indexing/indexmpeg.c: 64-bit warning fixes. + * examples/seeking/cdparanoia.c: same + * examples/seeking/cdplayer.c: same + * examples/seeking/seek.c: same + * examples/seeking/spider_seek.c: same + * examples/seeking/vorbisfile.c: same + * examples/stats/mp2ogg.c: same + * ext/esd/esdsink.c: (gst_esdsink_class_init), + (gst_esdsink_dispose): Dispose of element properly. + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_seek): 64-bit warning + fixes. + * ext/nas/nassink.c: (gst_nassink_class_init), + (gst_nassink_dispose): Dispose of element correctly. + * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): Fix leak. + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), + (gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy): + Fix 64-bit warning. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy): + Fix 64-bit warning. + +2004-09-12 Stephane Loeuillet + + * configure.ac : change speex detection as 1.1.6 now uses + .pc/pkg-config and they changed their headers location. + +2004-09-09 Arwed v. Merkatz + + * gst/matroska/matroska-mux.h: + * gst/matroska/matroska-mux.c: (gst_matroska_mux_reset), + (gst_matroska_mux_start), (gst_matroska_mux_finish), + (gst_matroska_mux_write_data): + Write multiple blocks/frames per cluster. + Write meta-seek information (seek heads). + +2004-09-09 Scott Wheeler + + * gst/gstplaybin.c: (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_set_property), (gst_play_bin_get_property), + (gen_audio_element), (gen_audio_element): + Add a volume element / property to the pipeline. + +2004-09-07 Wim Taymans + + * gst/videomixer/videomixer.c: (gst_videomixer_blend_buffers): + Copy timestamps from the master pad to the output buffers. + +2004-09-03 Thomas Vander Stichele + + * ext/raw1394/gstdv1394src.c: + throw errors when applicable + +2004-09-01 Arwed v. Merkatz + + * gst/matroska/ebml-ids.h: + * gst/matroska/ebml-read.c: (gst_ebml_read_date): + * gst/matroska/ebml-write.c: (gst_ebml_write_date): + * gst/matroska/matroska-mux.c: (gst_matroska_mux_finish): + automatically convert unix time <-> ebml time when reading/writing + a date, use gst_ebml_write_uint to write CUETIME, + not gst_ebml_write_date. + * gst/matroska/matroska-ids.h: + * gst/matroska/matroska-mux.c: (gst_matroska_mux_create_uid), + (gst_matroska_mux_reset), (gst_matroska_mux_audio_pad_link), + (gst_matroska_mux_track_header), (gst_matroska_mux_start), + (gst_matroska_mux_write_data): + Write track and segment UIDs, write muxing date, write + TRACKDEFAULTDURATION for TTA audio, write BLOCKDURATION if known. + Create cues for audio only files. + +2004-08-31 Ronald S. Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): + Re-commit ALSA switches. + * gst/adder/gstadder.c: (gst_adder_loop): + 64-bit fix (#151416). + * gst/debug/progressreport.c: (gst_progressreport_report): + 64-bit fix (#151419). + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_contents): + 64-bit fix (#151420). + * gst/playback/test3.c: (update_scale): + 64-bit fix (#151421). + +2004-08-31 Thomas Vander Stichele + + * configure.ac: + bump nano to cvs + +=== release 0.8.4 === + +2004-08-02 Thomas Vander Stichele + + * configure.ac: releasing 0.8.4, "Alias" + +2004-08-31 Thomas Vander Stichele + + * ext/theora/Makefile.am: + fix makefile. Fixes #151462. + +2004-08-30 Wim Taymans + + * gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_wait): + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_add), + (gst_multifdsink_remove_client_link), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write): + * gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send): + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive): + Fix some memory leaks. + +2004-08-30 Thomas Vander Stichele + + Patch by: David Schleef + + * configure.ac: + * sys/Makefile.am: + rename our detection macro for V4L2. Fixes #151236. + +2004-08-30 Thomas Vander Stichele + + Patch by: David Schleef + + * configure.ac: + check to define LAMEPRESET. Fixes #151232. + +2004-08-27 David Schleef + + * sys/glsink/glimagesink.c: (gst_glimagesink_ximage_put), + (gst_glimagesink_xwindow_new), (gst_glimagesink_xcontext_get), + (gst_glimagesink_fixate): Move local variable declarations to + make gcc-2.95 happy. + +2004-08-27 Thomas Vander Stichele + + * configure.ac: + bump nano for prerelease + +2004-08-27 David Schleef + + * sys/sunaudio/Makefile.am: Add sunaudiosrc patch from Bala + * sys/sunaudio/gstsunaudiosrc.c: + * sys/sunaudio/gstsunaudiosrc.h: + +2004-08-27 Arwed v. Merkatz + + * gst/matroska/ebml-read.c: (gst_ebml_peed_id), (gst_ebml_read_element_id), + handle EOS correctly + * gst/matroska/matroska-mux.c: (gst_matroska_mux_video_pad_link): + * gst/matroska/matroska-mux.h: + added BITMAPINFOHEADER structure, mux video/x-divx and video/x-xvid in + VFW compatibility mode + +2004-08-27 Thomas Vander Stichele + + patch by: Zaheer Abbas Merali + + * ext/ogg/gstoggmux.c: + * ext/vorbis/vorbisenc.c: + * ext/vorbis/vorbisenc.h: + handle NEWMEDIA + +2004-08-26 Arwed v. Merkatz + + * gst/matroska/ebml-write.c: (gst_ebml_write_float), + fix byte order reversion on little endian machines. + * gst/matroska/matroska-mux.c: (audiosink_templ), + (gst_matroska_mux_audio_pad_link): + add TTA codec to the list of supported codecs. + * gst/matroska/matroska-mux.c: (gst_matroska_mux_init), + (gst_matroska_mux_start), (gst_matroska_mux_finish), + (gst_matroska_mux_write_data): + * gst/matroska/matroska-mux.h: + write segment duration correctly, write muxing app string, fixes bugs + #140897 and #140898. + * gst/matroska/matroska-mux.c: (gst_matroska_mux_loop), + wait for all pads to be negotiated before starting to mux. + +2004-08-26 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_init), (gst_lame_chain): + * ext/lame/gstlame.h: + Added new media support to lame + +2004-08-25 Arwed v. Merkatz + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_blockgroup), + send vorbis headers at the beginning of a stream, fixes bug #141554. + Interpret BLOCKDURATION and set buffer duration accordingly, fixes + bug #148950. + * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps), + (gst_matroska_demux_plugin_init): + * gst/matroska/matroska-ids.h: + enable demuxing of TTA audio streams, fixes bug #148951. + * gst/typefind/gsttypefindfunctions.c: (tta_type_find), (plugin_init), + enable typefinding for TTA audio files, fixes bug #148711. + * ext/xvid/gstxviddec.c: (gst_xviddec_chain), + set XVID_LOWDELAY flag for decoding so xvid always returns an image, + fixes playback of packed bitstream and xvid with bframes, bug #135407. + +2004-08-24 Sebastien Cote + + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), + (gst_riff_read_element_data), (gst_riff_read_seek), + (gst_riff_read_skip): fix infinite loop in wavparse, fixes bug + #144616, patch reviewed by Ronald and committed by Christophe Fergeau + + +2004-08-23 Iain + + * ext/mad/gstid3tag.c (gst_mad_id3_to_tag_list): Special case COMM + tags. They appear to be handled differently to normal. + (tag_list_to_id3_tag_foreach): Ditto. + +2004-08-22 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop): + Make sure we never send -1 granulepos. + +2004-08-20 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_loop): + I will accept bitchslappings with non sharp objects. + +2004-08-20 Zaheer Abbas Merali + + * configure.ac: + Clean up the test for lame presets + +2004-08-19 Zaheer Abbas Merali + + * configure.ac: + * ext/lame/Makefile.am: + * ext/lame/gstlame.c: (gst_lame_class_init), + (gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup): + Only enable lame presets if version of lame has presets in API + +2004-08-19 Jan Schmidt + * gst/udp/gstudpsrc.c: (gst_udpsrc_init), (gst_udpsrc_get): + * gst/udp/gstudpsrc.h: + Don't call gst_pad_push in a get function. Fixes #150449 + +2004-08-18 Wim Taymans + + * gst/tcp/gstfdset.c: (gst_fdset_free), (gst_fdset_set_mode), + (gst_fdset_get_mode), (gst_fdset_add_fd), (gst_fdset_remove_fd), + (gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read), + (gst_fdset_fd_has_closed), (gst_fdset_fd_has_error), + (gst_fdset_fd_can_read), (gst_fdset_fd_can_write), + (gst_fdset_wait): + * gst/tcp/gstfdset.h: + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_add), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write): + * gst/tcp/gstmultifdsink.h: + Some extra checks in gstfdset. + Only use send() when the fd is a socket. Don't try to + read from write only fds. + +2004-08-18 Wim Taymans + + * gst/tcp/gstfdset.c: (gst_fdset_add_fd), (gst_fdset_remove_fd), + (gst_fdset_fd_ctl_write), (gst_fdset_fd_ctl_read), + (gst_fdset_fd_has_closed), (gst_fdset_fd_has_error), + (gst_fdset_fd_can_read), (gst_fdset_fd_can_write), + (gst_fdset_wait): + Add more locking and bounds checking. + +2004-08-18 Wim Taymans + + * gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_wait): + Realloc test fdset in the lock and right before starting + the poll call. Bump the limit to 4096. + +2004-08-17 David Schleef + + * sys/sunaudio/Makefile.am: + * sys/sunaudio/gstsunaudio.c: Fix caps to handle full range + of rates and channels. Make debugging less obnoxious. + + Patch from Balamurali Viswanathan implementing a mixer for + Sun audio. (bug #144091): + * sys/sunaudio/gstsunelement.c: + * sys/sunaudio/gstsunelement.h: + * sys/sunaudio/gstsunmixer.c: + * sys/sunaudio/gstsunmixer.h: + +2004-08-17 Zaheer Abbas Merali + + * gst/audioscale/gstaudioscale.c: + * gst/audioscale/gstaudioscale.h: + made audioscale resample from any sample rate to any sample rate + +2004-08-17 Thomas Vander Stichele + + * ext/libpng/gstpngdec.c: + error out on unsupported types + +2004-08-17 Iain + + * ext/flac/gstflacenc.c (gst_flacenc_update_quality): Only set the + mid_side and loose_mid_side properties if its a stereo stream. + +2004-08-17 Wim Taymans + + * ext/theora/theoradec.c: (gst_theora_dec_class_init), + (theora_get_formats), (theora_dec_src_convert), + (theora_dec_sink_convert), (theora_dec_src_query), + (theora_dec_src_event), (theora_dec_event), (theora_dec_chain): + Add a debug line. + +2004-08-17 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_iterate), + (gst_ogg_pad_push): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_init), + (gst_ogg_mux_request_new_pad), (gst_ogg_mux_next_buffer), + (gst_ogg_mux_buffer_from_page), (gst_ogg_mux_push_page), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop): + Mark delta units in the muxer. + Try to decode the packet after an out-of-sync error from + libogg. + +2004-08-17 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_init), (gst_multifdsink_add), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_set_property), (gst_multifdsink_get_property): + * gst/tcp/gstmultifdsink.h: + Added option to send a keyframe to clients as the first buffer. + Make timeout property writable. + +2004-08-17 Thomas Vander Stichele + + patch by: Wim Taymans + + * gst/tcp/gstfdset.c: + * gst/tcp/gstmultifdsink.c: + fix index comparison, should include 0 + +2004-08-16 Wim Taymans + + * gst/tcp/gstfdset.c: (ensure_size), (gst_fdset_new), + (gst_fdset_add_fd), (gst_fdset_remove_fd), + (gst_fdset_fd_has_closed), (gst_fdset_fd_has_error), + (gst_fdset_fd_can_read), (gst_fdset_fd_can_write), + (gst_fdset_wait): + copy when reallocing for poll so the select arguments don't get + changed during the call + +2004-08-16 Wim Taymans + + * ext/theora/theoraenc.c: (gst_border_mode_get_type), + (gst_theora_enc_class_init), (theora_enc_sink_link), + (theora_buffer_from_packet), (theora_enc_chain): + Fix bug where buffers were not marked as keyframes + correctly. + +2004-08-15 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_vbrmode_get_type), + (gst_lame_preset_get_type), (gst_lame_class_init): + describe the enum values for vbr mode and presets more verbosely + +2004-08-13 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_mode_get_type), + (gst_lame_quality_get_type), (gst_lame_padding_get_type), + (gst_lame_preset_get_type), (gst_lame_class_init), (gst_lame_init), + (gst_lame_set_property), (gst_lame_get_property), (gst_lame_setup): + * ext/lame/gstlame.h: + add preset property to lame so it can use lame presets + +2004-08-13 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_get_property): + whoops forgot break, thanks teuf + +2004-08-13 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_vbrmode_get_type), + (gst_lame_class_init), (gst_lame_src_getcaps), + (gst_lame_sink_link), (gst_lame_init), (gst_lame_set_property), + (gst_lame_get_property), (gst_lame_setup): + * ext/lame/gstlame.h: + fix lame's broken vbr stuff, allow it to resample if need be, and also + make xing header optional + +2004-08-12 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_src_getcaps), (gst_lame_init): + added getcaps function so samplerate doesnt get fixated to silly values + +2004-08-12 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_src_link): + revert previous fix + +2004-08-12 Johan Dahlin + + * sys/v4l/gstv4lelement.c (gst_v4l_iface_supported): Remove bogus + checks. Doesn't matter what state we are in. Interfaces are a + compile time thing, not runtime. It also broke the python bindings. + +2004-08-12 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_src_link): + made source pad link function check if sinkpad is ok..fixes the problem + where core fixates the output rate of lame stupidly + +2004-08-12 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_src_link), (gst_v4lsrc_fixate): + * sys/v4l/v4l_calls.c: + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_set_capture): + fix fixate function to handle nonsimple caps. + remove bogus check in _link + cleanups + +2004-08-12 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_class_init), (gst_lame_init): + set default compression ratio parameter to 0.0 so bitrate parameter + works :) + +2004-08-11 David Schleef + + * gst/tcp/gstfdset.c: Fix compile problem on OS/X. + +2004-08-11 David Schleef + + * gst/mpeg1sys/gstmpeg1systemencode.c: Oops, this was correct + before. + +2004-08-11 David Schleef + + * gst-libs/gst/video/videosink.h: Change copyright block to LGPL. + +2004-08-11 David Schleef + + * ext/pango/gsttextoverlay.c: Add copyright block and fix plugin + license field + * gst-libs/gst/idct/Makefile.am: Remove mmx/sse code + * gst-libs/gst/video/gstvideosink.c: Change copyright block to + LGPL. + * gst/auparse/gstauparse.c: Fix plugin license field. + * gst/monoscope/gstmonoscope.c: Fix plugin license field. + * gst/mpeg1sys/gstmpeg1systemencode.c: Fix plugin license field. + * gst/rtp/gstrtp.c: Fix plugin license field. + +2004-08-11 Wim Taymans + + * gst/tcp/Makefile.am: + * gst/tcp/gstfdset.c: (gst_fdset_mode_get_type), (nearest_pow), + (ensure_size), (gst_fdset_new), (gst_fdset_free), + (gst_fdset_set_mode), (gst_fdset_get_mode), (gst_fdset_add_fd), + (gst_fdset_remove_fd), (gst_fdset_fd_ctl_write), + (gst_fdset_fd_ctl_read), (gst_fdset_fd_has_closed), + (gst_fdset_fd_has_error), (gst_fdset_fd_can_read), + (gst_fdset_fd_can_write), (gst_fdset_wait): + * gst/tcp/gstfdset.h: + * gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type), + (gst_multifdsink_class_init), (gst_multifdsink_init), + (gst_multifdsink_add), (gst_multifdsink_remove), + (gst_multifdsink_clear), (gst_multifdsink_get_stats), + (gst_multifdsink_remove_client_link), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_client_queue_data), + (gst_multifdsink_client_queue_caps), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_set_property), + (gst_multifdsink_get_property), (gst_multifdsink_init_send), + (gst_multifdsink_close): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init), + (gst_tcpserversink_init), (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_handle_wait), (gst_tcpserversink_init_send), + (gst_tcpserversink_close): + * gst/tcp/gsttcpserversink.h: + Abstracted away the select call, implemented poll (yes we ran into + the 1024 limit in production). + +2004-08-11 Thomas Vander Stichele + + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcpplugin.c: + improve debuggging, remove assert + +2004-08-10 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_unit_type_get_type), + (gst_client_status_get_type), (gst_multifdsink_class_init), + (gst_multifdsink_init), (gst_multifdsink_remove_client_link), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_set_property), + (gst_multifdsink_get_property): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcp-marshal.list: + Starting to prepare for specifying buffer time in other units + than buffers. Expose remove reason in signal. + +2004-08-10 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_clear), + (gst_multifdsink_remove_client_link), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_client_queue_data), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients), + (gst_multifdsink_chain), (gst_multifdsink_close): + * gst/tcp/gstmultifdsink.h: + Added more debugging info. Changed the way clients are + removed from the lists. Fixed a bug where a bad file descriptor + could cause many clients to be removed. + +2004-08-06 Benjamin Otte + + * gst/videotestsrc/gstvideotestsrc.c: (generate_capslist): + allow all pixel-aspect-ratios, not just 1:1 + +2004-08-09 David Schleef + + * sys/glsink/ARB_multitexture.h: Remove old files. + * sys/glsink/EXT_paletted_texture.h: + * sys/glsink/NV_register_combiners.h: + * sys/glsink/gstgl_nvimage.c: + * sys/glsink/gstgl_pdrimage.c: + * sys/glsink/gstgl_rgbimage.c: + * sys/glsink/gstglsink.c: + * sys/glsink/gstglsink.h: + * sys/glsink/gstglxwindow.c: + * sys/glsink/regcomb_yuvrgb.c: + +2004-08-09 David Schleef + + Patch from Gernot Ziegler rewriting the + GL sink plugin. (Bug #147302) + + * configure.ac: Test for OpenGL + * sys/Makefile.am: Use test for OpenGL + * sys/glsink/Makefile.am: + * sys/glsink/glimagesink.c: rewrite + * sys/glsink/glimagesink.h: rewrite + +2004-08-09 David Schleef + + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_base_init): Only allow + sane framerates. + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): same + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): same + * testsuite/gst-lint: Test for G_GUINT64_FORMAT usage near gettext. + +2004-08-09 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_get_stats), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients): + Do a bit more logging, make the client_read code more robust. + +2004-08-09 Thomas Vander Stichele + + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_init_source), + (gst_jpegdec_fill_input_buffer), (gst_jpegdec_skip_input_data), + (gst_jpegdec_resync_to_restart), (gst_jpegdec_term_source), + (gst_jpegdec_init), (gst_jpegdec_chain): + * gst/multipart/multipartdemux.c: (gst_multipart_demux_init), + (gst_multipart_demux_chain), (gst_multipart_demux_change_state): + cleanups, debugging fixes and memleak plugging + +2004-08-09 Wim Taymans + + * ext/theora/theoradec.c: (gst_theora_dec_class_init), + (theora_get_formats), (theora_dec_src_convert), + (theora_dec_sink_convert), (theora_dec_src_query), + (theora_dec_src_event), (theora_dec_event), (theora_dec_chain), + (theora_dec_change_state): + Don't crash on missing header packets. + +2004-08-09 Thomas Vander Stichele + + * po/LINGUAS: + * po/sq.po: + Added Albanian translation (Laurent Dhima) + * po/cs.po: + updated + +2004-08-09 Thomas Vander Stichele + + * ext/lame/gstlame.c: + fix/add debugging + +2004-08-09 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: + * sys/xvimage/xvimagesink.c: + assign all TOO_LAZY's to a real category. Thanks to Warthy Warthog. + +2004-08-06 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_get_stats), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients): + Make sure we don't try to read more from a client that what + ioctl says us or we deadlock. + +2004-08-05 Thomas Vander Stichele + + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_src_link), + (gst_videotestsrc_change_state), (gst_videotestsrc_src_query), + (gst_videotestsrc_handle_src_event), (gst_videotestsrc_get): + decouple running_time and n_frames so it can handle changing + framerate while running + +2004-08-05 Thomas Vander Stichele + + * po/nl.po: + * po/sv.po: + updated translations + +2004-08-04 Benjamin Otte + + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_get_capslist), (generate_capslist), + (plugin_init): + generate the list of supported caps at startup and reuse it instead + of always generating it + +2004-07-30 Benjamin Otte + + * gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link): + whoops, last checkin broke normal build + +2004-08-03 Benjamin Otte + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_get_volume), + (gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute), + (gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option), + (gst_alsa_mixer_get_option): + * ext/dvdnav/dvdnavsrc.c: (dvdnav_get_event_name), + (dvdnavsrc_print_event): + * ext/ogg/gstoggdemux.c: (_find_chain_process), (gst_ogg_print): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_pad_link), + (gst_ogg_mux_pad_unlink): + * gst/multipart/multipartmux.c: (gst_multipart_mux_pad_link), + (gst_multipart_mux_pad_unlink): + * gst/videofilter/gstvideobalance.c: + (gst_videobalance_colorbalance_set_value): + * gst/videomixer/videomixer.c: (gst_videomixer_pad_link), + (gst_videomixer_pad_unlink): + * po/uk.po: + * sys/oss/gstossmixer.c: + * sys/v4l/gstv4lcolorbalance.c: + * sys/v4l/gstv4ltuner.c: + * sys/v4l/v4lsrc_calls.c: + * sys/v4l2/gstv4l2colorbalance.c: + * sys/v4l2/gstv4l2tuner.c: + compile fixes for --disable-gst-debug, G_DISABLE_ASSERT and friends + +2004-08-03 Benjamin Otte + + * examples/dynparams/filter.c: (ui_control_create): + * examples/gstplay/player.c: (print_tag): + * ext/alsa/gstalsa.c: (gst_alsa_request_new_pad): + * ext/gdk_pixbuf/gstgdkanimation.c: + (gst_gdk_animation_iter_may_advance): + * ext/jack/gstjack.c: (gst_jack_request_new_pad): + * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list), + (tag_list_to_id3_tag_foreach), (gst_id3_tag_handle_event): + * ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_tag_value): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_tag_value): + * ext/xine/xineaudiodec.c: (gst_xine_audio_dec_chain): + * gst-libs/gst/media-info/media-info-test.c: (print_tag): + * gst/sine/demo-dparams.c: (main): + * gst/tags/gstvorbistag.c: (gst_tag_to_vorbis_comments): + * testsuite/alsa/formats.c: (create_pipeline): + * testsuite/alsa/sinesrc.c: (sinesrc_force_caps), (sinesrc_get): + fixes for G_DISABLE_ASSERT and friends + * gst/typefind/gsttypefindfunctions.c: (aac_type_find), + (mp3_type_frame_length_from_header), (mp3_type_find), + (plugin_init): + require mp3 typefinding to have at least MIN_HEADERS valid headers + add typefinding for AAC adts files + +2004-08-04 Jan Schmidt + + * sys/ximage/ximagesink.c: + (gst_ximagesink_calculate_pixel_aspect_ratio): + * sys/xvimage/xvimagesink.c: + (gst_xvimagesink_calculate_pixel_aspect_ratio): + Make sure we calculate pixel-aspect-ratio using floating point maths + +2004-08-03 Thomas Vander Stichele + + * po/uk.po: + updated translation + +2004-08-03 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get): + add debugging for display PAR calculation + +2004-08-02 David Schleef + + * configure.ac: Fix mikmod CFLAGS. + +2004-07-27 Benjamin Otte + + * gst/audioscale/gstaudioscale.c: + - fix templates to only support S16, it's the only format that works + - make caps nego code use try_set_caps_nonfixed and fixation instead + of try_set_caps twice, which is not nice for autopluggers + - change rank to secondary, so autopluggers can pick it up after + audioconvert + +2004-08-02 Iain + + * gst/interleave/interleave.c (interleave_init), + (interleave_request_new_pad), + (interleave_pad_removed), + (interleave_buffered_loop): Use the real pad count, not the artificial + one. + +2004-08-02 Thomas Vander Stichele + + * configure.ac: bump nano back to development + +=== release 0.8.3 === + +2004-08-02 Thomas Vander Stichele + + * configure.ac: releasing 0.8.3, "Water" + +2004-08-02 Thomas Vander Stichele + + * sys/xvimage/xvimagesink.c: + (gst_xvimagesink_calculate_pixel_aspect_ratio), + (gst_xvimagesink_xcontext_clear), (gst_xvimagesink_sink_link), + (gst_xvimagesink_change_state), (gst_xvimagesink_buffer_alloc), + (gst_xvimagesink_set_property), (gst_xvimagesink_get_property), + (gst_xvimagesink_init), (gst_xvimagesink_class_init): + * sys/xvimage/xvimagesink.h: + apply similar PAR fixes as to ximagesink + +2004-08-02 Thomas Vander Stichele + + patch from: Benjamin Otte + + * ext/lame/gstlame.c: (gst_lame_src_link), (gst_lame_init): + add link function to lame. Fixes #148986. + +2004-08-02 Johan Dahlin + + * gst/multipart/multipartmux.c (gst_multipart_mux_next_buffer): + fix debugging log + +2004-07-30 David Schleef + + * gst/videomixer/Makefile.am: Fix things that should have been + fixed in the last checkin. + +2004-07-30 David Schleef + + * gst/multipart/Makefile.am: Fix things that should have been + fixed in the last checkin. + +2004-07-30 David Schleef + + * testsuite/multifilesink/Makefile.am: Fix unused variable. + +2004-07-30 Thomas Vander Stichele + + * configure.ac: + bump nano for prerelease + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/nl.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + updates + +2004-07-30 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_remove), + (gst_multifdsink_clear), (gst_multifdsink_get_stats), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_handle_clients): + * gst/tcp/gstmultifdsink.h: + Recover from a select with a bad file descriptor by removing + the client. + +2004-07-30 Thomas Vander Stichele + + * configure.ac: + fix requirement of core + * gst-libs/gst/play/play.c: (gst_play_error_plugin), + (gst_play_pipeline_setup): + don't use colorspace element. do use hermescolorspace element. + make macro to get a colorspace element. + mark strings for translation. + * po/POTFILES.in: + add play.c + * po/af.po: + * po/az.po: + * po/cs.po: + * po/en_GB.po: + * po/hu.po: + * po/nl.po: + * po/sr.po: + * po/sv.po: + * po/uk.po: + update translations + +2004-07-30 Zaheer Abbas Merali + + * ext/libpng/gstpngenc.c: (gst_pngenc_class_init): + fix default for newmedia flag + +2004-07-30 Wim Taymans + + * ext/theora/theoradec.c: (gst_theora_dec_class_init), + (gst_theora_dec_init), (theora_get_formats), + (theora_dec_src_convert), (theora_dec_sink_convert), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_event), + (theora_dec_chain), (theora_dec_set_property), + (theora_dec_get_property): + * ext/theora/theoraenc.c: (gst_border_mode_get_type), + (gst_theora_enc_class_init), (gst_theora_enc_init), + (theora_enc_sink_link), (theora_enc_chain), + (theora_enc_set_property), (theora_enc_get_property): + Added cropping option to theora decoder. + Added border option to theora encoder. + +2004-07-30 Zaheer Abbas Merali + + * ext/libpng/gstpngenc.c: (gst_pngenc_class_init), + (gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property), + (gst_pngenc_set_property): + * ext/libpng/gstpngenc.h: + Added newmedia support to pngenc so now gst-launch-0.8 videotestsrc ! ffmpegcolorspace ! pngenc snapshot=false newmedia=true ! multifilesink location=blah%d.png works as expected + +2004-07-30 Wim Taymans + + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (theora_enc_sink_link), (theora_enc_chain), + (theora_enc_set_property), (theora_enc_get_property): + Fix encoding of non-multiple-of-16 video. + +2004-07-29 David Schleef + + * configure.ac: make test for audiofile more strict + +2004-07-25 Benjamin Otte + + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + give different names to typefind functions + +2004-07-28 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), + (gst_ximagesink_calculate_pixel_aspect_ratio), + (gst_ximagesink_xcontext_get), (gst_ximagesink_getcaps), + (gst_ximagesink_sink_link), (gst_ximagesink_change_state), + (gst_ximagesink_set_xwindow_id), (gst_ximagesink_set_property), + (gst_ximagesink_get_property), (gst_ximagesink_init): + * sys/ximage/ximagesink.h: + allocate PAR's dynamically. + use autodetected PAR if no object-set PAR is given. + add workaround for directfb's X not setting physical size. + fix to xvimagesink will follow tomorrow. + +2004-07-28 Zaheer Abbas Merali + + * ext/lame/gstlame.c: (gst_lame_chain): send tag events downstream + * ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type), + (gst_shout2send_get_type), (gst_shout2send_set_clock), + (gst_shout2send_class_init), (gst_shout2send_init), + (set_shout_metadata), (gst_shout2send_set_metadata), + (gst_shout2send_chain), (gst_shout2send_set_property), + (gst_shout2send_get_property), (gst_shout2send_connect), + (gst_shout2send_change_state): + * ext/shout2/gstshout2.h: + - fix for sending mp3 audio to icecast2 server, if pad link function not + called before PAUSED state + - added option to use GStreamer clock sync (as opposed to libshout's own sync) + - added tagging support for mp3 audio broadcasted + * gst/monoscope/gstmonoscope.c: (gst_monoscope_class_init): + debug info + +2004-07-28 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query), + (gst_ogg_demux_push): + Return query failure when we don't know the length of + an ogg stream insteda of returning TRUE with a bogus value. + +2004-07-28 Wim Taymans + + * ext/theora/theoradec.c: (theora_get_formats), + (theora_dec_src_convert), (theora_dec_sink_convert), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_event), + (theora_dec_chain): + Don't screw up the 1 Chroma for 1 luma sample situation when we + have an odd offset/width by adding a black border in those cases. + +2004-07-28 Wim Taymans + + * ext/theora/theoradec.c: (theora_get_formats), + (theora_dec_src_convert), (theora_dec_sink_convert), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_event), + (theora_dec_chain): + * ext/theora/theoraenc.c: (theora_enc_sink_link): + Added first attempt at cropping of the image as required by the + theora spec. We need more properties in the caps (offset_x, + offset_y,stride) to implement this correctly. + +2004-07-28 Jan Schmidt + + * ext/dvdnav/README: + Update the README to use dvddemux + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_getcaps): + Ensure getcaps returns a subset of the template caps + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_base_init), + (gst_mpeg2subt_init): + Ensure getcaps returns a subset of the template caps + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_class_init), + (gst_dvd_demux_init), (gst_dvd_demux_get_video_stream), + (gst_dvd_demux_get_subpicture_stream), + (gst_dvd_demux_send_subbuffer), (gst_dvd_demux_set_cur_subpicture): + * gst/mpegstream/gstdvddemux.h: + Set the explicit caps on the current_video pad before pushing + anything + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream), + (gst_mpeg_demux_get_audio_stream): + Free caps used to gst_pad_set_explicit_caps, which takes a const + GstCaps * + +2004-07-28 Thomas Vander Stichele + + * configure.ac: update GStreamer requirement to 0.8.4 because of + GstFraction. + +2004-07-28 Wim Taymans + + * gst/wavparse/gstwavparse.c: (gst_wavparse_fmt), + (gst_wavparse_handle_seek), (gst_wavparse_srcpad_event): + Add the pad to the element after setting up the caps. This + makes it a lot easier to autoplug. + +2004-07-27 Steve Lhomme + + * gst/median/gstmedian.c: + * gst/mpeg2subt/gstmpeg2subt.c: + * gst/mpegaudioparse/gstmpegaudioparse.c: + * gst/mpegstream/gstdvddemux.c: + * gst/mpegstream/gstmpegdemux.c: + * gst/mpegstream/gstmpegpacketize.c: + * gst/rtjpeg/gstrtjpeg.c: + * gst/rtjpeg/gstrtjpegdec.c: + * gst/rtjpeg/gstrtjpegenc.c: + * gst/sine/gstsinesrc.c: + * gst/smooth/gstsmooth.c: + * gst/smpte/gstsmpte.c: + * gst/smpte/gstsmpte.h: + * gst/stereo/gststereo.c: + * gst/videofilter/gstgamma.c: + * gst/videofilter/gstvideobalance.c: + * gst/videofilter/gstvideofilter.c: + * gst/videofilter/gstvideoflip.c: + * gst/videoscale/gstvideoscale.c: + * gst/videoscale/videoscale.c: + * gst/videotestsrc/gstvideotestsrc.c: + * gst/videotestsrc/videotestsrc.c: + * gst/wavenc/gstwavenc.c: + * gst/wavparse/gstwavparse.c: + fix local includes and 64 bits constants + +2004-07-27 Steve Lhomme + + * win32/gst.sln: + * gst-libs/gst/*/*.vcproj: + * gst/*/*.vcproj: + more working plugins + +2004-07-27 Zaheer Abbas Merali + + * testsuite/alsa/Makefile.am: + * testsuite/alsa/srcstate.c: + add test for alsasrc changing state + +2004-07-27 Zaheer Abbas Merali + + * gst/silence/gstsilence.c: (gst_silence_init), (gst_silence_link), + (gst_silence_get): + * gst/silence/gstsilence.h: + fix silence generation for 16bit raw audio + +2004-07-27 Thomas Vander Stichele + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_metadata), + (gst_matroska_demux_video_caps), (gst_matroska_demux_plugin_init): + * gst/mpegaudio/common.c: + * gst/videoscale/gstvideoscale.c: (gst_videoscale_class_init), + (gst_videoscale_getcaps), (gst_videoscale_link), + (gst_videoscale_src_fixate), (gst_videoscale_init), + (gst_videoscale_finalize): + * gst/videoscale/gstvideoscale.h: + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_get_capslist): + * gst/wavenc/gstwavenc.c: + * sys/oss/gstossmixer.c: (fill_labels): + * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), + (gst_ximagesink_handle_xevents), + (gst_ximagesink_calculate_pixel_aspect_ratio), + (gst_ximagesink_xcontext_get), (gst_ximagesink_fixate), + (gst_ximagesink_getcaps), (gst_ximagesink_sink_link), + (gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id), + (gst_ximagesink_set_property), (gst_ximagesink_get_property), + (gst_ximagesink_init), (gst_ximagesink_class_init): + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: + (gst_xvimagesink_calculate_pixel_aspect_ratio), + (gst_xvimagesink_xcontext_get), (gst_xvimagesink_sink_link), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc), + (gst_xvimagesink_set_property), (gst_xvimagesink_get_property), + (gst_xvimagesink_init), (gst_xvimagesink_class_init): + * sys/xvimage/xvimagesink.h: + first batch of pixel aspect ratio commits. + +2004-07-27 Thomas Vander Stichele + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_chain): + * gst/ffmpegcolorspace/imgconvert.c: (avpicture_fill): + handle stride, needs work if we want to move stride handling + upstream, but works correctly for our purposes. + +2004-07-27 Thomas Vander Stichele + + * gst/videoscale/README: + add testing examples + * gst/videoscale/gstvideoscale.c: (gst_videoscale_link), + (gst_videoscale_chain): + * gst/videoscale/videoscale.c: (gst_videoscale_setup), + (gst_videoscale_get_size): + add get_size function that handles stride like videotestsrc. + fixes conversion for YUV formats for as much as I can test them. + +2004-07-27 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), + (gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy), + (gst_xvimagesink_xvimage_put): + further cleanups, logging, error handling and synchronizing + +2004-07-27 Wim Taymans + + * gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type), + (gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property), + (gst_videomixer_pad_set_property), + (gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init), + (gst_video_mixer_background_get_type), (gst_videomixer_get_type), + (gst_videomixer_class_init), (gst_videomixer_init), + (gst_videomixer_getcaps), (gst_videomixer_request_new_pad), + (gst_videomixer_blend_ayuv_i420), (pad_zorder_compare), + (gst_videomixer_sort_pads), (gst_videomixer_fill_checker), + (gst_videomixer_fill_color), (gst_videomixer_fill_queues), + (gst_videomixer_blend_buffers), (gst_videomixer_update_queues), + (gst_videomixer_loop), (plugin_init): + Be a nicer negotiation citizen and provide a getcaps function on + the srcpad. This also fixes a crash when resizing. + +2004-07-27 Julien MOUTTE + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new): Some fixes to image size calculation. + +2004-07-27 Wim Taymans + + * ext/libpng/gstpngdec.c: (gst_pngdec_src_getcaps): + * ext/libpng/gstpngenc.c: (gst_pngenc_class_init), + (gst_pngenc_init), (gst_pngenc_chain), (gst_pngenc_get_property), + (gst_pngenc_set_property): + * ext/libpng/gstpngenc.h: + Added snapshot property to pngenc. + removed g_print from pngdec + +2004-07-27 Steve Lhomme + + * gst/ac3parse/ac3parse.vcproj + * gst/adder/adder.vcproj + * gst/alpha/alpha.vcproj + * gst/alpha/alphacolor.vcproj + * gst/asfdemux/asf.vcproj + * gst/audioconvert/audioconvert.vcproj + * gst/audiorate/audiorate.vcproj + * gst/audioscale/audioscale.vcproj + * gst/auparse/auparse.vcproj + * gst/avi/avi.vcproj + * gst/cdxaparse/cdxaparse.vcproj + * gst/chart/chart.vcproj + * gst/colorspace/colorspace.vcproj + * gst/cutter/cutter.vcproj + * gst/debug/debug.vcproj + * gst/debug/efence.vcproj + * gst/debug/navigationtest.vcproj + * gst/deinterlace/deinterlace.vcproj + * gst/effectv/effectv.vcproj + * gst/ffmpegcolorspace/ffmpegcolorspace.vcproj + * gst/filter/filter.vcproj + * gst/flx/flxdec.vcproj + * gst/goom/goom.vcproj + * gst/interleave/interleave.vcproj + * gst/law/alaw.vcproj + * gst/law/mulaw.vcproj + * gst/matroska/matroska.vcproj + * gst/median/median.vcproj + * gst/mixmatrix/mixmatrix.vcproj + * gst/mpeg1sys/mpeg1systemencode.vcproj + * gst/mpeg1videoparse/mp1videoparse.vcproj + * gst/mpeg2sub/mpeg2subt.vcproj + * gst/mpegaudio/mpegaudio.vcproj + * gst/mpegaudioparse/mpegaudioparse.vcproj + * gst/mpegstream/mpegstream.vcproj + * gst/multifilesink/multifilesink.vcproj + * gst/multipart/multipart.vcproj + * gst/oneton/oneton.vcproj + * gst/overlay/overlay.vcproj + * gst/passthrough/passthrough.vcproj + * gst/qtdemux/qtdemux.vcproj + * gst/realmedia/rmdemux.vcproj + * gst/rtjpeg/rtjpeg.vcproj + * gst/rtp/rtp.vcproj + * gst/silence/silence.vcproj + * gst/sine/sinesrc.vcproj + * gst/smooth/smooth.vcproj + * gst/smpte/smpte.vcproj + * gst/spectrum/spectrum.vcproj + * gst/speed/speed.vcproj + * gst/stereo/stereo.vcproj + * gst/switch/switch.vcproj + * gst/tags/tagedit.vcproj + * gst/tcp/tcp.vcproj + * gst/typefind/typefindfunctions.vcproj + * gst/udp/udp.vcproj + * gst/videobox/videobox.vcproj + * gst/videocrop/videocrop.vcproj + * gst/videodrop/videodrop.vcproj + * gst/videofilter/gamma.vcproj + * gst/videofilter/videobalance.vcproj + * gst/videofilter/videofilter.vcproj + * gst/videofilter/videoflip.vcproj + * gst/videoflip/videoflip.vcproj + * gst/videomixer/videomixer.vcproj + * gst/videorate/videorate.vcproj + * gst/videoscale/videoscale.vcproj + * gst/videotestsrc/videotestsrc.vcproj + * gst/virtualdub/virtualdub.vcproj + * gst/volenv/volenv.vcproj + * gst/volume/volume.vcproj + * gst/wavenc/wavenc.vcproj + * gst/wavparse/wavparse.vcproj + * gst/y4m/y4menc.vcproj + * gst-libs/gst/audio/audio.vcproj + * gst-libs/gst/audio/audiofilter.vcproj + * gst-libs/gst/colorbalance/colorbalance.vcproj + * gst-libs/gst/idct/idtc.vcproj + * gst-libs/gst/media-info/media-info.vcproj + * gst-libs/gst/mixer/mixer.vcproj + * gst-libs/gst/navigation/navigation.vcproj + * gst-libs/gst/play/play.vcproj + * gst-libs/gst/propertyprobe/propertyprobe.vcproj + * gst-libs/gst/resample/resample.vcproj + * gst-libs/gst/riff/riff.vcproj + * gst-libs/gst/tuner/tuner.vcproj + * gst-libs/gst/video/video.vcproj + * gst-libs/gst/xoverlay/xoverlay.vcproj + avoid problems with math.h, fix release dependancy + rename GStreamer-0.8.lib to libgstreamer.lib + +2004-07-27 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate): When + the atom is not available we have to unlock the mutex. Fixes #148023 + +2004-07-26 Steve Lhomme + + * gst-libs/gst/media-info/media-info.h: + issue for a vararg macro with MSVC + +2004-07-26 Steve Lhomme + + * gst/effectv/effectv.vcproj + * gst-libs/gst/idct/idct.vcproj: + * gst-libs/gst/media-info/media-info.vcproj: + * gst-libs/gst/navigation/navigation.vcproj: + * gst-libs/gst/propertyprobe/propertyprobe.vcproj: + * gst-libs/gst/video/video.vcproj: + * gst-libs/gst/xoverlay/xoverlay.vcproj: + fixes for build problems + +2004-07-26 Steve Lhomme + + * gst-libs/gst/audio/audio.def: + * gst-libs/gst/audio/riff.def: + add some definitions needed by plugins + +2004-07-26 Steve Lhomme + + * gst/asfdemux/gstasfmux.c + Fix some 64 bits constants to be glib friendly + +2004-07-26 Steve Lhomme + + * gst/ac3parse/gstac3parse.c + * gst/audioscale/gstaudioscale.c + * gst/auparse/gstauparse.c + * gst/colorspace/gstcolorspace.c + * gst/colorspace/yuv2rgb.h + local include fixes + +2004-07-26 Steve Lhomme + + * win32/gst.sln + add more plugins to the build + +2004-07-26 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), + (gst_ximagesink_ximage_new): Some more fixes to image size calculation. + +2004-07-26 Thomas Vander Stichele + + * gst/level/gstlevel.c: (gst_level_link), (gst_level_chain), + (gst_level_set_property), (gst_level_get_property), + (gst_level_base_init), (gst_level_class_init): + add debugging categories. cleanups. + +2004-07-26 Thomas Vander Stichele + + * gst/videoscale/videoscale.c: (gst_videoscale_setup), + (gst_videoscale_planar411), (gst_videoscale_planar400), + (gst_videoscale_packed422), (gst_videoscale_packed422rev), + (gst_videoscale_scale_nearest_str1), + (gst_videoscale_scale_nearest_str2), + (gst_videoscale_scale_nearest_str4), + (gst_videoscale_scale_nearest_16bit), + (gst_videoscale_scale_nearest_24bit): + fixed stride issues + tested with 320x240 -> 321, 322, 324 x240 + tested with YV12, I420, YUY2, UYVY + fixed packed422rev (don't think it could have worked before) + by testing with UYVY + +2004-07-26 Benjamin Otte + + * ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_init), + (gst_lame_chain), (gst_lame_setup), (gst_lame_change_state), + (plugin_init): + add debugging category, add error checks like checking return values + of setup calls, make sure it still works after + PLAYING=>NULL=>PLAYING, fix encoding of mono streams + +2004-07-26 Wim Taymans + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream), + (gst_mpeg_demux_get_audio_stream), + (gst_mpeg_demux_process_private): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_send_data): + Check for error codes from the negotiation functions. Make sure + we really set the pad caps when a new pad is created. + +2004-07-26 Thomas Vander Stichele + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_caps_to_pix_fmt): + * gst/ffmpegcolorspace/gstffmpegcodecmap.h: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_pad_link): + don't make function do two things at the same time without reason. + +2004-07-26 Steve Lhomme + + * gst/ac3parse/ac3parse.vcproj + * gst/adder/adder.vcproj + * gst/alpha/alpha.vcproj + * gst/alpha/alphacolor.vcproj + * gst/asfdemux/asf.vcproj + * gst/audioconvert/audioconvert.vcproj + * gst/audiorate/audiorate.vcproj + * gst/audioscale/audioscale.vcproj + * gst/auparse/auparse.vcproj + * gst/avi/avi.vcproj + * gst/cdxaparse/cdxaparse.vcproj + * gst/chart/chart.vcproj + * gst/colorspace/colorspace.vcproj + * gst/cutter/cutter.vcproj + * gst/debug/debug.vcproj + * gst/debug/efence.vcproj + * gst/debug/navigationtest.vcproj + * gst/deinterlace/deinterlace.vcproj + * gst/effectv/effectv.vcproj + * gst/ffmpegcolorspace/ffmpegcolorspace.vcproj + * gst/filter/filter.vcproj + * gst/flx/flxdec.vcproj + * gst/goom/goom.vcproj + * gst/interleave/interleave.vcproj + * gst/law/alaw.vcproj + * gst/law/mulaw.vcproj + * gst/matroska/matroska.vcproj + * gst/median/median.vcproj + * gst/mixmatrix/mixmatrix.vcproj + * gst/mpeg1sys/mpeg1systemencode.vcproj + * gst/mpeg1videoparse/mp1videoparse.vcproj + * gst/mpeg2sub/mpeg2subt.vcproj + * gst/mpegaudio/mpegaudio.vcproj + * gst/mpegaudioparse/mpegaudioparse.vcproj + * gst/mpegstream/mpegstream.vcproj + * gst/multifilesink/multifilesink.vcproj + * gst/multipart/multipart.vcproj + * gst/oneton/oneton.vcproj + * gst/overlay/overlay.vcproj + * gst/passthrough/passthrough.vcproj + * gst/qtdemux/qtdemux.vcproj + * gst/realmedia/rmdemux.vcproj + * gst/rtjpeg/rtjpeg.vcproj + * gst/rtp/rtp.vcproj + * gst/silence/silence.vcproj + * gst/sine/sinesrc.vcproj + * gst/smooth/smooth.vcproj + * gst/smpte/smpte.vcproj + * gst/spectrum/spectrum.vcproj + * gst/speed/speed.vcproj + * gst/stereo/stereo.vcproj + * gst/switch/switch.vcproj + * gst/tags/tagedit.vcproj + * gst/tcp/tcp.vcproj + * gst/typefind/typefindfunctions.vcproj + * gst/udp/udp.vcproj + * gst/videobox/videobox.vcproj + * gst/videocrop/videocrop.vcproj + * gst/videodrop/videodrop.vcproj + * gst/videofilter/gamma.vcproj + * gst/videofilter/videobalance.vcproj + * gst/videofilter/videofilter.vcproj + * gst/videofilter/videoflip.vcproj + * gst/videoflip/videoflip.vcproj + * gst/videomixer/videomixer.vcproj + * gst/videorate/videorate.vcproj + * gst/videoscale/videoscale.vcproj + * gst/videotestsrc/videotestsrc.vcproj + * gst/virtualdub/virtualdub.vcproj + * gst/volenv/volenv.vcproj + * gst/volume/volume.vcproj + * gst/wavenc/wavenc.vcproj + * gst/wavparse/wavparse.vcproj + * gst/y4m/y4menc.vcproj + more plugins supported under windows + +2004-07-26 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new), + (gst_ximagesink_ximage_put), (gst_ximagesink_renegotiate_size), + (gst_ximagesink_chain), (gst_ximagesink_buffer_alloc): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc): + Add debugging statements. Use the sizes as returned by the + *CreateImage calls. + +2004-07-26 Johan Dahlin + + * gst/tcp/gsttcpclientsrc.c (gst_tcpclientsrc_get): Make sure that + the pad is negotiated. + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c (gst_ffmpegcolorspace_chain): Ditto + +2004-07-26 Steve Lhomme + + * gst-libs/gst/colorbalance/colorbalance.vcproj: + * gst-libs/gst/idct/idct.vcproj: + * gst-libs/gst/media-info/media-info.vcproj: + * gst-libs/gst/mixer/mixer.vcproj: + * gst-libs/gst/navigation/navigation.vcproj: + * gst-libs/gst/play/play.vcproj: + * gst-libs/gst/propertyprobe/propertyprobe.vcproj: + * gst-libs/gst/resample/resample.vcproj: + * gst-libs/gst/tuner/tuner.vcproj: + * gst-libs/gst/video/video.vcproj: + * gst-libs/gst/xoverlay/xoverlay.vcproj: + more plugins supported under windows + +2004-07-25 Iain + + * gst/wavparse/gstwavparse.c (gst_wavparse_fmt): Set the caps on the + pad now rather than when the pad is created because state changes wipe + explicit caps (fixes #148043). + +2004-07-25 Sebastien Cote + + reviewed by Benjamin Otte + + * ext/mad/gstmad.c: + fix mad plugin crashing on Sun (fixes #148289) + +2004-07-25 Steve Lhomme + + * gst/avi/avi.def: + * gst/avi/avi.vcproj: + * gst/matroska/matroska.def: + * gst/matroska/matroska.vcproj: + remove unused .def files + +2004-07-25 Steve Lhomme + + * gst-libs/gst/audio/gstaudiofilter.c: + Clean the local include + +2004-07-25 Steve Lhomme + + * win32/gst.sln: + * gst-libs/gst/audio/audio.def: + * gst-libs/gst/audio/audio.vcproj: + * gst-libs/gst/audio/audiofilter.vcproj: + * gst-libs/gst/audio/riff.def: + * gst-libs/gst/audio/riff.vcproj: + * gst-libs/gst/gst-libs.def: + * gst-libs/gst/gst-libs.vcproj: + * gst/avi/avi.vcproj: + * gst/avi/avi.vcproj: + Copy the files where needed after building, cleaner projects + +2004-07-25 Steve Lhomme + + * gst/matroska/ebml-write.c: + Fix some 64 bits constants to be glib friendly + +2004-07-24 Steve Lhomme + + * win32/gst.sln: + * gst-libs/gst/gst-libs.def: + * gst-libs/gst/gst-libs.vcproj: + * gst/matroska/matroska.def: + * gst/matroska/matroska.vcproj: + Add the preliminary canvas to build plugins on Win32 + +2004-07-23 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + don't enfore negotiation from source side, it breaks + sinesrc ! audioconvert ! osssink + +2004-07-22 David Schleef + + * gst/typefind/gsttypefindfunctions.c: (plugin_init): Add typefind + for ELF files, since they can easily be recognized as audio/mpeg. + (bug #147441) + +2004-07-22 Thomas Vander Stichele + + * gst/videoscale/videoscale.c: (gst_videoscale_setup), + (gst_videoscale_planar411), (gst_videoscale_scale_nearest_32bit), + (gst_videoscale_scale_nearest_24bit), + (gst_videoscale_scale_nearest_16bit): + fix 16bit and 24bit for stride (24bit might need testing) + don't pretend we do more than one algorithm + +2004-07-22 Zaheer Abbas Merali + + * configure.ac: + * gst/Makefile.am: + * gst/multifilesink/Makefile.am: + * gst/multifilesink/gstmultifilesink.c: + (gst_multifilesink_get_formats), + (gst_multifilesink_get_query_types), (_do_init), + (gst_multifilesink_base_init), (gst_multifilesink_class_init), + (gst_multifilesink_init), (gst_multifilesink_dispose), + (gst_multifilesink_set_location), (gst_multifilesink_set_property), + (gst_multifilesink_get_property), (gst_multifilesink_open_file), + (gst_multifilesink_close_file), (gst_multifilesink_next_file), + (gst_multifilesink_pad_query), (gst_multifilesink_handle_event), + (gst_multifilesink_chain), (gst_multifilesink_change_state), + (gst_multifilesink_uri_get_type), + (gst_multifilesink_uri_get_protocols), + (gst_multifilesink_uri_get_uri), (gst_multifilesink_uri_set_uri), + (gst_multifilesink_uri_handler_init), (plugin_init): + * gst/multifilesink/gstmultifilesink.h: + * testsuite/Makefile.am: + * testsuite/multifilesink/Makefile.am: + * testsuite/multifilesink/fakesrc_test.c: (gst_newmedia_base_init), + (gst_newmedia_class_init), (gst_newmedia_init), + (gst_newmedia_chain), (gst_newmedia_trigger), (test_format), + (newfile_signal), (test_signal), (main): + multifilesink plugin for creating new files every time a new media + discontinuity event occurs + +2004-07-22 Wim Taymans + + * gst/alpha/Makefile.am: + * gst/alpha/gstalphacolor.c: (gst_alpha_color_get_type), + (gst_alpha_color_base_init), (gst_alpha_color_class_init), + (gst_alpha_color_init), (gst_alpha_color_set_property), + (gst_alpha_color_get_property), (gst_alpha_color_sink_link), + (transform), (gst_alpha_color_chain), + (gst_alpha_color_change_state), (plugin_init): + Stupid plugin to to RGBA to AYUV conversion because none of + the colorspace plugins can handle that yet. + +2004-07-22 Wim Taymans + + * examples/seeking/seek.c: (update_scale), (main): + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_is_dynamic), + (gst_decode_bin_factory_filter), (compare_ranks), (print_feature), + (gst_decode_bin_init), (gst_decode_bin_dispose), + (find_compatibles), (close_pad_link), (try_to_link_1), (new_pad), + (no_more_pads), (close_link), (type_found), + (gst_decode_bin_set_property), (gst_decode_bin_get_property), + (plugin_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type), + (gst_play_base_bin_class_init), (gst_play_base_bin_init), + (gst_play_base_bin_dispose), (queue_overrun), + (gen_preroll_element), (remove_prerolls), (unknown_type), + (no_more_pads), (new_stream), (setup_source), + (gst_play_base_bin_set_property), (gst_play_base_bin_get_property), + (play_base_eos), (gst_play_base_bin_change_state), + (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream), + (gst_play_base_bin_unlink_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybin.c: (gen_video_element), + (gen_audio_element): + * gst/playback/gststreaminfo.h: + More playback updates, attempt to fix things after the state change + breakage. + +2004-07-22 Thomas Vander Stichele + + * gst/videoscale/videoscale.c: (gst_videoscale_planar411), + (gst_videoscale_scale_nearest_16bit): + comment algorithm + +2004-07-22 Thomas Vander Stichele + + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_class_init), (gst_videotestsrc_src_link), + (gst_videotestsrc_init), (gst_videotestsrc_get), + (gst_videotestsrc_set_pattern), (gst_videotestsrc_set_property), + (gst_videotestsrc_get_property): + * gst/videotestsrc/gstvideotestsrc.h: + * gst/videotestsrc/videotestsrc.c: + * gst/videotestsrc/videotestsrc.h: + cleanup and commenting + +2004-07-21 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_init), + (gst_ogg_demux_get_formats), (gst_ogg_demux_src_query), + (gst_ogg_demux_src_event), (gst_ogg_demux_src_convert), + (gst_ogg_demux_handle_event), (gst_ogg_demux_seek_before), + (_find_chain_get_unknown_part), (_find_streams_check), + (gst_ogg_demux_push), (gst_ogg_pad_push): + * ext/theora/theoradec.c: (theora_get_formats), + (theora_dec_src_convert), (theora_dec_sink_convert), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_event), + (theora_dec_chain): + * ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats), + (vorbis_dec_convert), (vorbis_dec_src_query), + (vorbis_dec_src_event), (vorbis_dec_event): + More seeking fixes, oggdemux now supports seeking to time and + uses the downstream element to convert granulepos to time. + Seeking in theora-only ogg files now works. + +2004-07-21 Wim Taymans + + * ext/theora/theoradec.c: (gst_theora_dec_init), + (theora_get_formats), (theora_get_event_masks), + (theora_get_query_types), (theora_dec_src_convert), + (theora_dec_sink_convert), (theora_dec_src_query), + (theora_dec_src_event), (theora_dec_event), (theora_dec_chain): + * ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats), + (vorbis_get_event_masks), (vorbis_get_query_types), + (gst_vorbis_dec_init), (vorbis_dec_convert), + (vorbis_dec_src_query), (vorbis_dec_src_event), (vorbis_dec_event): + Added query/convert/formats functions to vorbis and theora decoders + so that the outside world can use them too. Fixed seeking on an + ogg/theora/vorbis file by disabling the seeking seeking on the + theora srcpad. + +2004-07-21 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new), + (gst_ximagesink_renegotiate_size), (gst_ximagesink_sink_link), + (gst_ximagesink_chain), (gst_ximagesink_set_xwindow_id): Optimize + images creation for both elements. We don't create the image on caps + nego or renego, we just destroy the internal one if present if it does + not match the needs. The chain function takes care of creating a new + image when needed. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new), + (gst_xvimagesink_xwindow_decorate), (gst_xvimagesink_sink_link), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_alloc), + (gst_xvimagesink_set_xwindow_id): Additionally xvimage now contains + the image format information. The buffer pool checks for the context + image format and discard images with different formats. + * sys/xvimage/xvimagesink.h: Adding im_format in the xvimage structure. + +2004-07-21 Thomas Vander Stichele + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_chain): + no point in doing any chaining if the pad we want to push from + isn't usable. + +2004-07-20 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data): + Fix double end-to-native symbol conversion (#148021). + +2004-07-20 David Schleef + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate): + Don't use an Atom that doesn't exist. + +2004-07-20 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_get_stats), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer): + * gst/tcp/gstmultifdsink.h: + More multifdsink stats. Avoid deadlock by releasing locks + before sending out a signal. + +2004-07-20 Thomas Vander Stichele + + * po/LINGUAS: + * po/hu.po: + added Hungarian translation (Laszlo Dvornik) + +2004-07-20 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer): + * gst/tcp/gsttcp-marshal.list: + Fixed the stupid marshal definition. + +2004-07-20 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_init), (gst_multifdsink_add), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_queue_buffer), (gst_multifdsink_chain), + (gst_multifdsink_set_property), (gst_multifdsink_get_property), + (gst_multifdsink_init_send): + * gst/tcp/gstmultifdsink.h: + Added more stats, added timeout for a client, fixed some typos + and added some comments. + +2004-07-20 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_class_init), + (gst_multifdsink_add), (gst_multifdsink_get_stats), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_write): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcp-marshal.list: + Added get_stats method that returns a GValueArray of + stats values. + +2004-07-19 Benjamin Otte + + * ext/ladspa/gstladspa.c: (gst_ladspa_base_init): + make sure longname, description and author are valid UTF-8 + +2004-07-19 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_change_state), + (gst_ximagesink_set_property): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state), + (gst_xvimagesink_set_property): + make sure SYNCHRONOUS is respected after getting the X context + +2004-07-18 Thomas Vander Stichele + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_handle_src_event), + (gst_matroska_demux_parse_blockgroup): + * gst/matroska/matroska-ids.h: + add BlockReference tag and ignore it to clear out log. + ignore NAVIGATION events to clear out log. + +2004-07-18 Thomas Vander Stichele + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init), + (gst_matroska_demux_add_stream): + * gst/matroska/matroska-mux.c: (gst_matroska_mux_class_init): + add debug categories + +2004-07-16 Wim Taymans + + * ext/libpng/Makefile.am: + * ext/libpng/gstpng.c: (plugin_init): + * ext/libpng/gstpngdec.c: (user_error_fn), (user_warning_fn), + (gst_pngdec_get_type), (gst_pngdec_base_init), + (gst_pngdec_class_init), (gst_pngdec_sinklink), (gst_pngdec_init), + (gst_pngdec_src_getcaps), (user_read_data), (gst_pngdec_chain): + * ext/libpng/gstpngdec.h: + Added png decoder. + +2004-07-16 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror), + (gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_new), + (gst_ximagesink_ximage_destroy), (gst_ximagesink_sink_link), + (gst_ximagesink_chain), (gst_ximagesink_buffer_free), + (gst_ximagesink_buffer_alloc): + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_free), + (gst_xvimagesink_buffer_alloc): + * sys/xvimage/xvimagesink.h: Getting the 2 video sinks synchronized + again. Using internal data pointer of the x(v)image to store image's + data to be coherent with the buffer alloc mechanism. Investigated the + image destruction code to be sure that everything gets freed correctly. + +2004-07-16 Wim Taymans + + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_vids_with_data), + (gst_riff_read_strf_auds_with_data): + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), + (gst_avi_demux_add_stream), (gst_avi_demux_stream_header): + Make sure we don't create 0 sized subbuffers in riff-read. + Signal the no more pads signal after reading the avi header. + +2004-07-16 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_is_dynamic), + (gst_decode_bin_factory_filter), (compare_ranks), (print_feature), + (gst_decode_bin_init), (gst_decode_bin_dispose), + (find_compatibles), (close_pad_link), (try_to_link_1), (new_pad), + (no_more_pads), (close_link), (type_found), + (gst_decode_bin_set_property), (gst_decode_bin_get_property), + (gst_decode_bin_change_state), (plugin_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type), + (gst_play_base_bin_class_init), (gst_play_base_bin_init), + (gst_play_base_bin_dispose), (queue_overrun), + (gen_preroll_element), (remove_prerolls), (unknown_type), + (no_more_pads), (new_stream), (setup_source), + (gst_play_base_bin_set_property), (gst_play_base_bin_get_property), + (play_base_eos), (gst_play_base_bin_change_state), + (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream), + (gst_play_base_bin_unlink_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybasebin.h: + Better error recovery. Added configurable preroll queue size. Faster + detection of no-more-pads. + +2004-07-16 Wim Taymans + + * gst-libs/gst/video/video.h: + Added 32 bits RGBA. Not sure if we should use another mime-type + for alpha rgb. Currently the presence of the alpha_mask property + signals an alpha channel. + +2004-07-16 Wim Taymans + + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): + FPS seems to be 0.0 to MAX everywhere else. + +2004-07-15 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + mp42/mp43 (no caps) exist too. + * gst/matroska/matroska-demux.c: (gst_matroska_demux_video_caps): + Set pixel_width/height; we've got them in-caps. + * gst/typefind/gsttypefindfunctions.c: (plugin_init): + * gst/wavparse/gstwavparse.c: (plugin_init): + Both are valid primary. + * sys/oss/gstossmixer.c: + Remove i18n hack and enable translations. + +2004-07-15 Benjamin Otte + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy): + fix for non-shm xv. Original patch by Tim Ringenbach (fixes #147248) + +2004-07-15 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_open_audio), + (gst_alsa_sw_params_dump), (gst_alsa_hw_params_dump), + (gst_alsa_close_audio): + disable some of the debugging code for now. Writing debugging to a + buffer is broken in current alsalib releases. + +2004-07-12 Benjamin Otte + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer): + use bufferpools + +2004-07-14 Thomas Vander Stichele + + * ext/theora/theoradec.c: (gst_theora_dec_class_init), + (theora_dec_src_query), (theora_dec_event): + * ext/theora/theoraenc.c: (gst_theora_enc_class_init): + add debugging categories. Remove \n's. + +2004-07-13 Johan Dahlin + + * gst/playback/gstplaybin.c (gst_play_bin_set_property) + (gst_play_bin_get_property): Impl. + +2004-07-13 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_seek_before): + When trying to find the stream length, seek back N pages + instead of just one, where N is the number of streams in + the current chain. + +2004-07-13 Wim Taymans + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_audio_caps_with_data), + (gst_riff_create_audio_caps), + (gst_riff_create_audio_template_caps): + * gst-libs/gst/riff/riff-media.h: + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_vids_with_data), + (gst_riff_read_strf_auds_with_data), (gst_riff_read_strf_auds): + * gst-libs/gst/riff/riff-read.h: + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query), + (gst_avi_demux_add_stream): + Set codec_data on caps for avidemuxer. + +2004-07-12 David Schleef + + * configure.ac: Fix test for Objective C + +2004-07-12 Jan Schmidt + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_get_capslist), + (gst_gdk_pixbuf_chain): + Add svg and pcx to template caps, and ensure that getcaps returns a + subset of the template caps. + Copy each row manually for output, as gdkpixbuf may pad the + rowstride to a 32-bit word boundary. + +2004-07-12 Wim Taymans + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps), + (gst_riff_create_video_template_caps): + Fix the template caps to include some more media types. + +2004-07-12 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_factory_filter), + (compare_ranks), (print_feature), (gst_decode_bin_init), + (gst_decode_bin_dispose), (find_compatibles), (close_pad_link), + (try_to_link_1), (new_pad), (close_link), (type_found), + (gst_decode_bin_set_property), (gst_decode_bin_get_property), + (gst_decode_bin_change_state), (plugin_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type), + (gst_play_base_bin_class_init), (gst_play_base_bin_init), + (gst_play_base_bin_dispose), (queue_overrun), + (gen_preroll_element), (remove_prerolls), (no_more_pads), + (new_stream), (setup_source), (gst_play_base_bin_set_property), + (gst_play_base_bin_get_property), (play_base_eos), + (gst_play_base_bin_change_state), (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream), + (gst_play_base_bin_unlink_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_get_type), + (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_dispose), (gst_play_bin_set_property), + (gst_play_bin_get_property), (gen_video_element), + (gen_audio_element), (remove_sinks), (setup_sinks), + (gst_play_bin_change_state), (gst_play_bin_get_event_masks), + (gst_play_bin_send_event), (gst_play_bin_get_formats), + (gst_play_bin_convert), (gst_play_bin_get_query_types), + (gst_play_bin_query), (plugin_init): + * gst/playback/test4.c: (main): + More fixes on reusing of the element. + +2004-07-11 Benjamin Otte + + * ext/mad/gstmad.c: (normal_seek): + allow seeking for other methods than just SET + +2004-07-11 Andy Wingo + + * gst/audioconvert/gstaudioconvert.c (gst_audio_convert_link): For + float, "any" caps -> buffer_frames=[0,MAX]. + + * gst/interleave/interleave.c (interleave_getcaps): Seems the core + doesn't intersect our caps with the template any more. Do it + ourselves. + (interleave_buffered_loop): Use g_newa instead of malloc/free. + +2004-07-09 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_factory_filter), + (compare_ranks), (print_feature), (gst_decode_bin_init), + (gst_decode_bin_dispose), (find_compatibles), (close_pad_link), + (try_to_link_1), (new_pad), (close_link), (type_found), + (gst_decode_bin_set_property), (gst_decode_bin_get_property), + (gst_decode_bin_change_state), (plugin_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type), + (gst_play_base_bin_class_init), (gst_play_base_bin_init), + (gst_play_base_bin_dispose), (queue_overrun), + (gen_preroll_element), (remove_prerolls), (no_more_pads), + (new_stream), (setup_source), (gst_play_base_bin_set_property), + (gst_play_base_bin_get_property), (play_base_eos), + (gst_play_base_bin_change_state), (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream), + (gst_play_base_bin_unlink_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_get_type), + (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_dispose), (gst_play_bin_set_property), + (gst_play_bin_get_property), (gen_video_element), + (gen_audio_element), (remove_sinks), (setup_sinks), + (gst_play_bin_change_state), (gst_play_bin_get_event_masks), + (gst_play_bin_send_event), (gst_play_bin_get_formats), + (gst_play_bin_convert), (gst_play_bin_get_query_types), + (gst_play_bin_query), (plugin_init): + * gst/playback/test4.c: (main): + Work on object reuse and seeking. + +2004-07-09 Wim Taymans + + * examples/seeking/seek.c: (iterate): + Don't consume all CPU in the idle loop. + +2004-07-09 Wim Taymans + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_new_output_pad), + (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_process_private): + Add pad to element *after* setting the pad functions so that + the scheduler can use the correct ones. + +2004-07-09 Wim Taymans + + * ext/theora/theoradec.c: (theora_dec_from_granulepos), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_chain): + Sync to keyframe after seek + +2004-07-09 Thomas Vander Stichele + + * ext/alsa/gstalsa.c: (gst_alsa_change_state): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event), + (gst_alsa_sink_loop), (gst_alsa_sink_change_state): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_change_state): + * ext/libvisual/visual.c: (gst_visual_change_state): + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_change_state): + * ext/theora/theoradec.c: (theora_dec_change_state): + * ext/theora/theoraenc.c: (theora_enc_change_state): + * ext/vorbis/vorbisdec.c: (vorbis_dec_change_state): + * gst-libs/gst/navigation/navigation.c: + * gst/adder/gstadder.c: (gst_adder_change_state): + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain), + (gst_audio_convert_get_buffer): + * gst/multipart/multipartdemux.c: + (gst_multipart_demux_change_state): + * gst/playback/gstdecodebin.c: (gst_decode_bin_change_state): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_change_state): + * gst/playback/gstplaybin.c: (gst_play_bin_change_state): + * gst/videoscale/gstvideoscale.c: + (gst_videoscale_handle_src_event): + * gst/volume/gstvolume.c: (volume_chain_int16): + don't assert in state change, this should be done by the base + GstElement class. + various debugging fixes. + +2004-07-08 Thomas Vander Stichele + + * configure.ac: + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup), + (gst_play_dispose), (gst_play_set_location), + (gst_play_set_data_src), (gst_play_set_video_sink), + (gst_play_set_audio_sink), (gst_play_set_visualization), + (gst_play_connect_visualization), (gst_play_get_sink_element), + (gst_play_get_all_by_interface): + * gst-libs/gst/play/play.h: + add new method to get elements implementing an interface. + add various error logging + +2004-07-08 Wim Taymans + + * examples/seeking/seek.c: (make_dv_pipeline), (make_avi_pipeline), + (make_mpeg_pipeline), (make_mpegnt_pipeline), + (make_playerbin_pipeline), (query_durations_elems), + (query_durations_pads), (query_positions_elems), + (query_positions_pads), (update_scale), (iterate), (stop_seek), + (main): + Added playbin seeking example. + +2004-07-08 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_set_location), + (gst_play_set_data_src), (gst_play_set_video_sink), + (gst_play_set_audio_sink), (gst_play_set_visualization), + (gst_play_connect_visualization), (gst_play_get_framerate): + use a macro to look up elements from hash table + +2004-07-08 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup), + (gst_play_get_length_callback), (gst_play_set_location), + (gst_play_seek_to_time), (gst_play_set_data_src), + (gst_play_set_video_sink), (gst_play_set_audio_sink), + (gst_play_set_visualization), (gst_play_connect_visualization), + (gst_play_get_sink_element): + - add debugging info + - fix looking up sink elements by iterating over complete caps + - put everything except for source and autoplugger in a complete bin + +2004-07-08 Thomas Vander Stichele + + * ext/alsa/gstalsa.c: (gst_alsa_drain_audio): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_flush_one_pad), + (gst_alsa_sink_check_event), (gst_alsa_sink_mmap), + (gst_alsa_sink_write), (gst_alsa_sink_loop): + * ext/alsa/gstalsasink.h: + - add debugging info + - clean up schizophrenia of data/buffer/event + - fix double event unref error + +2004-07-08 Wim Taymans + + * gst/playback/Makefile.am: + Add headers to noinst + +2004-07-08 Thomas Vander Stichele + + * tools/gst-launch-ext-m.m: + * tools/gst-launch-ext.1.in: + convert to the third millenium + +2004-07-07 David Schleef + + * sys/dxr3/Makefile.am: noinst_SOURCES should be nodist_SOURCES + +2004-07-07 Wim Taymans + + * gst/playback/Makefile.am: + * gst/playback/README: + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_factory_filter), + (compare_ranks), (print_feature), (gst_decode_bin_init), + (gst_decode_bin_dispose), (find_compatibles), (close_pad_link), + (try_to_link_1), (new_pad), (close_link), (type_found), + (gst_decode_bin_set_property), (gst_decode_bin_get_property), + (plugin_init): + * gst/playback/gstplaybasebin.c: (gst_play_base_bin_get_type), + (gst_play_base_bin_class_init), (gst_play_base_bin_init), + (gst_play_base_bin_dispose), (rebuild_pipeline), (queue_overrun), + (gen_preroll_element), (no_more_pads), (new_stream), + (setup_source), (gst_play_base_bin_set_property), + (gst_play_base_bin_get_property), (gst_play_base_bin_change_state), + (gst_play_base_bin_add_element), + (gst_play_base_bin_remove_element), + (gst_play_base_bin_mute_stream), (gst_play_base_bin_link_stream), + (gst_play_base_bin_unlink_stream), + (gst_play_base_bin_get_streaminfo): + * gst/playback/gstplaybasebin.h: + * gst/playback/gstplaybin.c: (gst_play_bin_get_type), + (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_dispose), (gst_play_bin_set_property), + (gst_play_bin_get_property), (gen_video_element), + (gen_audio_element), (setup_sinks), (gst_play_bin_change_state), + (gst_play_bin_get_event_masks), (gst_play_bin_send_event), + (gst_play_bin_get_formats), (gst_play_bin_convert), + (gst_play_bin_get_query_types), (gst_play_bin_query), + (plugin_init): + * gst/playback/gststreaminfo.c: (gst_stream_type_get_type), + (gst_stream_info_get_type), (gst_stream_info_class_init), + (gst_stream_info_init), (gst_stream_info_new), + (gst_stream_info_dispose), (gst_stream_info_set_property), + (gst_stream_info_get_property): + * gst/playback/gststreaminfo.h: + * gst/playback/test.c: (gen_video_element), (gen_audio_element), + (main): + * gst/playback/test2.c: (main): + * gst/playback/test3.c: (update_scale), (main): + More playbin fixes. Added README. Do better element filtering. + Added base class to preroll media. Added test apps. + +2004-07-07 Thomas Vander Stichele + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_flush_decoder): + * ext/mpeg2dec/gstmpeg2dec.h: + various debugging improvements. Reset stream to next picture + instead of sequence header, otherwise seeks cannot work. + +2004-07-07 Wim Taymans + + * gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type), + (gst_video_box_class_init), (gst_video_box_set_property), + (gst_video_box_i420), (gst_video_box_ayuv), (gst_video_box_chain): + Use pad_alloc where possible. + +2004-07-07 Wim Taymans + + * sys/oss/gstosselement.c: (gst_osselement_reset), + (gst_osselement_parse_caps): + * sys/oss/gstosselement.h: + * sys/oss/gstosssrc.c: (gst_osssrc_get): + Fix offset on osssrc. + +2004-07-07 Wim Taymans + + * ext/theora/theora.c: (plugin_init): + * ext/theora/theoradec.c: (theora_dec_from_granulepos), + (theora_dec_src_query), (theora_dec_chain): + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (theora_enc_sink_link), (theora_buffer_from_packet), + (theora_push_packet), (theora_enc_chain): + Fix theora granulepos calculation. + Fix overflow in duration/position calculation. + Bump rank to PRIMARY for theoradec. + Use granulepos of last packet to calculate position. + Set keyframe flag on buffers when needed. + +2004-07-06 David Schleef + + * gst/playback/Makefile.am: 'test' in bin_PROGRAMS? Are you + serious? (Fixed, obviously.) + +2004-07-06 Thomas Vander Stichele + + * po/LINGUAS: + * po/cs.po: + added Czech translation (Miloslav Trmac) + +2004-07-05 Wim Taymans + + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_factory_filter), + (compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose), + (find_compatibles), (close_pad_link), (try_to_link_1), (new_pad), + (close_link), (type_found), (gst_decode_bin_set_property), + (gst_decode_bin_get_property), (gst_decode_bin_get_event_masks), + (gst_decode_bin_send_event), (gst_decode_bin_get_formats), + (gst_decode_bin_convert), (gst_decode_bin_get_query_types), + (gst_decode_bin_query), (plugin_init): + * gst/playback/gstplaybin.c: (gst_play_bin_get_type), + (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_dispose), (rebuild_pipeline), (get_audio_element), + (get_video_element), (new_pad), (setup_source), + (gst_play_bin_set_property), (gst_play_bin_get_property), + (gst_play_bin_change_state), (gst_play_bin_add_element), + (gst_play_bin_remove_element), (gst_play_bin_get_event_masks), + (gst_play_bin_send_event), (gst_play_bin_get_formats), + (gst_play_bin_convert), (gst_play_bin_get_query_types), + (gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init): + * gst/playback/test.c: (main): + More fixes, cleaned up playbin, make it use decodebin. Added + threaded property to playbin. + +2004-07-05 Wim Taymans + + * configure.ac: + * gst/playback/Makefile.am: + * gst/playback/decodetest.c: (main): + * gst/playback/gstdecodebin.c: (gst_decode_bin_get_type), + (gst_decode_bin_class_init), (gst_decode_bin_factory_filter), + (compare_ranks), (gst_decode_bin_init), (gst_decode_bin_dispose), + (find_compatibles), (close_pad_link), (try_to_link_1), (new_pad), + (close_link), (type_found), (gst_decode_bin_set_property), + (gst_decode_bin_get_property), (gst_decode_bin_change_state), + (gst_decode_bin_get_event_masks), (gst_decode_bin_send_event), + (gst_decode_bin_get_formats), (gst_decode_bin_convert), + (gst_decode_bin_get_query_types), (gst_decode_bin_query), + (plugin_init): + * gst/playback/gstplaybin.c: (gst_play_bin_get_type), + (gst_play_bin_class_init), (gst_play_bin_init), + (gst_play_bin_dispose), (gen_default_output), (rebuild_pipeline), + (collect_sink_pads), (find_compatibles), (close_pad_link), + (try_to_link_1), (new_pad), (close_link), (type_found), + (setup_source), (gst_play_bin_set_property), + (gst_play_bin_get_property), (gst_play_bin_factory_filter), + (compare_ranks), (gst_play_bin_collect_factories), + (gst_play_bin_change_state), (gst_play_bin_add_element), + (gst_play_bin_remove_element), (gst_play_bin_get_event_masks), + (gst_play_bin_send_event), (gst_play_bin_get_formats), + (gst_play_bin_convert), (gst_play_bin_get_query_types), + (gst_play_bin_query), (gst_play_bin_get_clock), (plugin_init): + * gst/playback/test.c: (main): + Added some playback helper elements and some test apps, very alpha + still. + +2004-07-04 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery): + only restart audio when we indeed have an xrun to fix repeated + xruns. Fix suggested by Giuliano Pochini. + +2004-07-03 David Schleef + + * ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper): Disable + call to gst_debug_log() if debugging is disabled (bug #145118) + +2004-07-03 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_xrun_recovery): + use our own functions for restarting the alsa device. + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + I should apply patches myself - use MIN for the third argument, not + the second, this fixes seeking + +2004-07-02 David Schleef + + * ext/flac/gstflacdec.c: (gst_flacdec_class_init), + (gst_flacdec_write): Actually, GST_PAD_CAPS() has nothing to + do with the logic. + +2004-07-02 David Schleef + + * ext/flac/gstflacdec.c: (gst_flacdec_write): Set duration on + output buffers. Fix logic mistake. (bug #144866) + +2004-07-02 David Schleef + + * gst-libs/gst/xoverlay/Makefile.am: xoverlay no longer depends + on X. (bug #144753) + +2004-07-02 David Schleef + + * gst/wavenc/gstwavenc.c: (gst_wavenc_setup), + (gst_wavenc_stop_file): Switch to GST_WRITE_UINT32_LE macros + (bug #144624) + * sys/oss/gstosselement.c: (gst_osselement_probe_caps), + (gst_osselement_rate_probe_check): Add another workaround for + buggy drivers (bug #145336) + +2004-07-02 David Schleef + + * gst/tcp/gstmultifdsink.c: (gst_multifdsink_handle_client_write): + Most systems don't have MSG_NOSIGNAL. + +2004-07-02 Thomas Vander Stichele + + * Makefile.am: + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/tuner/Makefile.am: + (hopefully) fix both install and dist and make error message useful. + needs testing across automakes. + +2004-07-02 Benjamin Otte + + * ext/ogg/gstogg.c: (plugin_init): + we require bytestream now + * ext/ogg/gstoggdemux.c: + huge diff to implement chain setup in a fast and generic way. This + improves tag reading and startup of huge files (read: Theora videos) + quite a bit. It probably contains bugs, too, so please test. + Seeking is not improved to the fast method. + +2004-06-29 Wim Taymans + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + * ext/ogg/gstoggmux.c: + Fix memleak in oggdemux when running unconnected pads. + doc update in mux, start working on keyframe mode. + +2004-06-29 Benjamin Otte + + * sys/oss/gstosssink.c: + * sys/oss/gstosssrc.c: + advertise correct template caps - we indeed do non-native endianness + and 8bit audio has no endianness + * sys/ximage/ximagesink.c: (gst_ximagesink_getcaps): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_getcaps): + avoid (wrong) duplications in getcaps function and return + template caps + +2004-06-29 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type), + (gst_multifdsink_class_init), (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_clear), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_client_queue_data), + (gst_multifdsink_client_queue_caps), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_thread), + (gst_multifdsink_init_send), (gst_multifdsink_close): + Fix wrong GList iteration that could crash the server when + more then 2 clients disconnect at the same time. Read all the + pending commands in one batch to recover from command storms under + very heavy load. + +2004-06-28 Wim Taymans + + * gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type), + (gst_videomixer_pad_class_init), (gst_videomixer_pad_get_property), + (gst_videomixer_pad_set_property), + (gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_init), + (gst_video_mixer_background_get_type), (gst_videomixer_get_type), + (gst_videomixer_class_init), (gst_videomixer_init), + (gst_videomixer_request_new_pad), (gst_videomixer_blend_ayuv_i420), + (pad_zorder_compare), (gst_videomixer_sort_pads), + (gst_videomixer_fill_checker), (gst_videomixer_fill_color), + (gst_videomixer_fill_queues), (gst_videomixer_blend_buffers), + (gst_videomixer_update_queues), (gst_videomixer_loop), + (plugin_init): + Avoid divide by zero, choose masterpad as the pad with the highest + framerate. + +2004-06-27 Julien Moutte + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate), + (gst_ximagesink_xwindow_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate), + (gst_xvimagesink_xwindow_new): I prefer locking the mutex in the + function directly. We might want to call it from somewhere else one day. + +2004-06-27 Julien Moutte + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_decorate), + (gst_ximagesink_xwindow_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_decorate), + (gst_xvimagesink_xwindow_new): Trying to fix the random behaviour of + window decorations. + +2004-06-27 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_class_init), (gst_dvdec_init), + (gst_dvdec_video_getcaps), (gst_dvdec_video_link), + (gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state), + (gst_dvdec_set_property), (gst_dvdec_get_property): + * ext/dv/gstdvdec.h: + Implement drop_factor property to lower the framerate with + a factor. + +2004-06-27 Thomas Vander Stichele + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/tuner/Makefile.am: + unbreak Company's fix that didn't install the -enum.h files + +2004-06-27 Wim Taymans + + * ext/dv/gstdvdec.c: (gst_dvdec_push), (gst_dvdec_loop), + (gst_dvdec_change_state): + * ext/dv/gstdvdec.h: + Fix timestamp, duration and offset of the buffers. + +2004-06-27 Wim Taymans + + * gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type), + (gst_multifdsink_class_init), (gst_multifdsink_add), + (gst_multifdsink_remove), (gst_multifdsink_clear), + (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_client_queue_data), + (gst_multifdsink_client_queue_caps), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_thread), + (gst_multifdsink_init_send), (gst_multifdsink_close): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcpserversink.c: + (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_handle_select), (gst_tcpserversink_close): + More multifdsink fixes, more recovery policy fixes. + Removed stupid g_print + +2004-06-26 Wim Taymans + + * gst/tcp/Makefile.am: + * gst/tcp/gstmultifdsink.c: (gst_recover_policy_get_type), + (gst_multifdsink_get_type), (gst_multifdsink_base_init), + (gst_multifdsink_class_init), (gst_multifdsink_init), + (gst_multifdsink_debug_fdset), (gst_multifdsink_client_remove), + (gst_multifdsink_handle_client_read), + (gst_multifdsink_client_queue_data), + (gst_multifdsink_client_queue_caps), + (gst_multifdsink_client_queue_buffer), + (gst_multifdsink_handle_client_write), + (gst_multifdsink_recover_client), (gst_multifdsink_queue_buffer), + (gst_multifdsink_handle_clients), (gst_multifdsink_thread), + (gst_multifdsink_chain), (gst_multifdsink_set_property), + (gst_multifdsink_get_property), (gst_multifdsink_init_send), + (gst_multifdsink_close), (gst_multifdsink_change_state): + * gst/tcp/gstmultifdsink.h: + * gst/tcp/gsttcpplugin.c: (plugin_init): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_get_type), + (gst_tcpserversink_class_init), (gst_tcpserversink_init), + (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_handle_select), + (gst_tcpserversink_set_property), (gst_tcpserversink_get_property), + (gst_tcpserversink_init_send), (gst_tcpserversink_close): + * gst/tcp/gsttcpserversink.h: + Added multifdsink, made tcpserversink a subclass of fdsink, removed + one of the locks, added recovery policy to multifdsink. + +2004-06-26 Thomas Vander Stichele + + * gst/videorate/gstvideorate.c: (gst_videorate_chain): + fix decision for when getting frames with same timestamp + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init), + (gst_v4lsrc_get), (gst_v4lsrc_set_property), + (gst_v4lsrc_get_property): + * sys/v4l/gstv4lsrc.h: + add latency offset property + +2004-06-26 Thomas Vander Stichele + + * gst/videorate/gstvideorate.c: (gst_videorate_chain), + (plugin_init): + fix debugging. add category. + +2004-06-25 Thomas Vander Stichele + + * gst/sine/gstsinesrc.c: (gst_sinesrc_get): + fix wrong offsets + +2004-06-25 Thomas Vander Stichele + + * ext/alsa/gstalsasrc.c: (gst_alsa_src_init), + (gst_alsa_src_get_time), (gst_alsa_src_loop), + (gst_alsa_src_change_state): + return a time that is in sync with the element's processing + +2004-06-25 Wim Taymans + + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init), + (gst_tcpserversink_init), (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_client_remove), + (gst_tcpserversink_handle_client_read), + (gst_tcpserversink_client_queue_data), + (gst_tcpserversink_client_queue_caps), + (gst_tcpserversink_client_queue_buffer), + (gst_tcpserversink_handle_client_write), + (gst_tcpserversink_queue_buffer), + (gst_tcpserversink_handle_clients), (gst_tcpserversink_thread), + (gst_tcpserversink_chain), (gst_tcpserversink_set_property), + (gst_tcpserversink_get_property), (gst_tcpserversink_init_send), + (gst_tcpserversink_close): + * gst/tcp/gsttcpserversink.h: + Serversink rewrite. Really do non blocking writes to clients and + maintain an internal queue to handle slower clients while not + disturbing fast clients. + +2004-06-25 Thomas Vander Stichele + + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get): + better debug, don't override OFFSET and OFFSET_END + +2004-06-25 Iain + + * gst-libs/gst/media-info/media-info-priv.c (gmi_set_mime): Add + name=source for the wavparse pipeline. + +2004-06-24 Johan Dahlin + + * ext/theora/theoraenc.c (theora_enc_chain): Call + gst_pad_try_set_caps instead of gst_pad_set_explicit_caps so the + streamheader caps are set correctly. + +2004-06-24 Thomas Vander Stichele + + * ext/vorbis/vorbisenc.c: (raw_caps_factory), + (gst_vorbisenc_setup), (gst_vorbisenc_set_property): + respect minimum bitrate; same could be done for max bitrate + +2004-06-24 Thomas Vander Stichele + + * ext/vorbis/vorbisenc.c: (raw_caps_factory), + (gst_vorbisenc_setup): + fix sample rate range + +2004-06-24 Thomas Vander Stichele + + * ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_class_init), + (gst_oggvorbisenc_setup): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_class_init), + (gst_vorbisenc_setup): + resolve ambiguities in code and description + +2004-06-24 Wim Taymans + + * ext/alsa/gstalsa.c: (gst_alsa_start), (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsasrc.c: (gst_alsa_src_init), + (gst_alsa_src_update_avail), (gst_alsa_src_loop): + Use alsa trigger_tstamp to get the timestamp of the first + sample in the buffer for more precise sync. Some cleanups. + +2004-06-24 Wim Taymans + + * gst/audiorate/gstaudiorate.c: (gst_audiorate_link), + (gst_audiorate_init), (gst_audiorate_chain), + (gst_audiorate_set_property), (gst_audiorate_get_property): + * gst/videorate/gstvideorate.c: (gst_videorate_class_init), + (gst_videorate_chain): + Added some logging, fixed an overflow bug in videorate. + +2004-06-24 Benjamin Otte + + * ext/kio/Makefile.am: + fix for builddir != srcdir and distcheck + +2004-06-24 Benjamin Otte + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/tuner/Makefile.am: + * gst/tcp/Makefile.am: + * sys/dxr3/Makefile.am: + don't include -enumtypes.[ch] or -marshal.[ch] files in the disted + tarball. + Also add all *.list files that were missing. + * Makefile.am: + add a distcheck hook to ensure the above doesn't happen again. + +2004-06-23 David I. Lehn + + * ext/Makefile.am: s/DTS_DIR=dvdread/DTS_DIR=dts/ + +2004-06-23 Colin Walters + + * m4/Makefile.am: Distribute gst-fionread.m4. + +2004-06-23 Thomas Vander Stichele + + * configure.ac: back to dev + +2004-06-23 Wim Taymans + + * ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start), + (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event), + (gst_alsa_sink_loop), (gst_alsa_sink_get_time): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_init), + (gst_alsa_src_get_time), (gst_alsa_src_update_avail), + (gst_alsa_src_loop): + Add clock to alsasrc. Take new capture timestamp when + restarting after an overrun. Split up some functions between + alsasrc and alsasink. + +=== release 0.8.2 === + +2004-06-23 Thomas Vander Stichele + + * ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose), + (gst_alsa_change_state), (gst_alsa_update_avail), + (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + merge back changes from release + +2004-06-23 Wim Taymans + + * gst/audiorate/gstaudiorate.c: (gst_audiorate_class_init), + (gst_audiorate_init), (gst_audiorate_chain), + (gst_audiorate_set_property), (gst_audiorate_get_property): + Implement sample dropping and notify + +2004-06-22 Wim Taymans + + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (theora_enc_sink_link), (theora_buffer_from_packet), + (theora_push_packet), (theora_enc_chain): + Some cleanups, make sure the timestamps are correct. + +2004-06-22 Wim Taymans + + * ext/alsa/gstalsa.c: (gst_alsa_get_time), (gst_alsa_clock_update), + (gst_alsa_change_state), (gst_alsa_update_avail), + (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop): + Cleanups, take queued samples into account when reporting + the time. + +2004-06-22 Wim Taymans + + * gst/videorate/gstvideorate.c: (gst_videorate_class_init), + (gst_videorate_init): + Initialize the property as well. + +2004-06-22 Wim Taymans + + * gst/videorate/gstvideorate.c: (gst_videorate_class_init), + (gst_videorate_init), (gst_videorate_chain), + (gst_videorate_set_property), (gst_videorate_get_property): + Add property to make videorate silent. + Add property to prefer new frames over old ones. + +2004-06-22 Zaheer Abbas Merali + + * sys/osxvideo/Makefile.am: + Workaround so that the osxvideo .so file gets linked with the + Cocoa, OpenGL and QuickTime frameworks + +2004-06-22 Zaheer Abbas Merali + + * sys/osxaudio/Makefile.am: + Workaround so that the osxaudio .so file gets linked with the + CoreAudio framework + +2004-06-22 Zaheer Abbas Merali + + * configure.ac: + Whoops, my fault...fixed build issues + +2004-06-22 Zaheer Abbas Merali + + * configure.ac: + Add objective-c support if running in Darwin/Mac OS X + * sys/Makefile.am: + * sys/osxvideo: + * sys/osxvideo/Makefile.am: + * sys/osxvideo/osxvideosink.h: + * sys/osxvideo/osxvideosink.m: + * sys/osxvideo/cocoawindow.h: + * sys/osxvideo/cocoawindow.m: + Add osxvideosink, a cocoa-based osx video sink + + +2004-06-19 Jan Schmidt + * ext/dvdnav/gst-dvd: + Grab the gconf key from the right spot + * gst/debug/gstnavseek.c: (gst_navseek_init), + (gst_navseek_segseek), (gst_navseek_handle_src_event), + (gst_navseek_chain): + * gst/debug/gstnavseek.h: + Add 's', 'e' and 'l' keypresses to navseek to define the start,end + and loop parameters of a segment seek. + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_init), + (gst_videotestsrc_get_event_masks), + (gst_videotestsrc_handle_src_event), (gst_videotestsrc_get): + * gst/videotestsrc/gstvideotestsrc.h: + Add seeking support to videotestsrc + Initialise the timestamp_offset variable. + +2004-06-18 Wim Taymans + + * ext/sidplay/gstsiddec.cc: + Fix negotiation and set correct end offset. + +2004-06-18 Thomas Vander Stichele + + * configure.ac: branch and prerelease + +2004-06-17 Thomas Vander Stichele + + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init), + (gst_tcpclientsrc_getcaps), (gst_tcpclientsrc_get), + (gst_tcpclientsrc_init_receive): + * gst/tcp/gsttcpclientsrc.h: + read caps when connecting to server for GDP so we set them correctly + +2004-06-17 Thomas Vander Stichele + + * gst/videorate/gstvideorate.c: (gst_videorate_chain): + notify drops and duplicates + * gst/videoscale/videoscale.c: (videoscale_get_structure): + no good reason to limit ourselves to 100x100 + +2004-06-17 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init), + (gst_v4lsrc_open), (gst_v4lsrc_src_link), (gst_v4lsrc_getcaps), + (gst_v4lsrc_get), (gst_v4lsrc_set_property), + (gst_v4lsrc_get_property): + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties), + (gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio), + (gst_v4l_set_audio): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_grab_frame), + (gst_v4lsrc_try_capture): + * sys/v4l/v4lsrc_calls.h: + change try_palette to more general try_capture + add autoprobe option so we can turn off autoprobing + various fixes + +2004-06-17 Thomas Vander Stichele + + * configure.ac: + add videorate + * sys/ximage/ximagesink.c: (gst_ximagesink_finalize), + (gst_ximagesink_class_init): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_finalize), + (gst_xvimagesink_class_init): + run them as finalize, not dispose, since dispose can be invoked + multiple times + +2004-06-17 Wim Taymans + + * ext/alsa/gstalsa.c: (gst_alsa_init), (gst_alsa_dispose), + (gst_alsa_get_time), (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_init), (gst_alsa_src_loop), + (gst_alsa_src_change_state): + * ext/alsa/gstalsasrc.h: + Make the xrun code timestamp and offset the buffers correctly. + moved the clock to the base class, use alsa methods to get time. + Do correct timestamping on outgoing buffers. + +2004-06-17 Wim Taymans + + * gst/audiorate/Makefile.am: + * gst/audiorate/gstaudiorate.c: (gst_audiorate_get_type), + (gst_audiorate_base_init), (gst_audiorate_class_init), + (gst_audiorate_link), (gst_audiorate_init), (gst_audiorate_chain), + (gst_audiorate_set_property), (gst_audiorate_get_property), + (gst_audiorate_change_state), (plugin_init): + Added an audiorate converter that fills in gaps. + +2004-06-17 Johan Dahlin + + * ext/tcp/*: Revert Zaheer changes, to make things actually work again. + +2004-06-16 Wim Taymans + + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type), + (gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps), + (gst_v4lsrc_get), (gst_v4lsrc_set_property), + (gst_v4lsrc_get_property): + * sys/v4l/gstv4lsrc.h: + Added a copy mode to v4lsrc where it will output a copied version + of its internal hardware buffer. + Fix the wrong FLAG_SET usage. The flags are integers, not bits, you + can't | them. + +2004-06-16 Wim Taymans + + * sys/oss/gstosssrc.c: (gst_osssrc_get): + Timestamp fixes. + +2004-06-16 Wim Taymans + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_sync_mode_get_type), + (gst_v4lsrc_class_init), (gst_v4lsrc_init), (gst_v4lsrc_get_fps), + (gst_v4lsrc_get), (gst_v4lsrc_set_property), + (gst_v4lsrc_get_property): + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay): + Added a sync mode enum property to control v4lsrc timestamp method + Removed the use-fixed-fps property and moved functionality in + the enum. + Don't error on an error value from v4l-conf, it might not always + be a real error. + +2004-06-16 Wim Taymans + + * gst/videorate/Makefile.am: + * gst/videorate/gstvideorate.c: (gst_videorate_get_type), + (gst_videorate_base_init), (gst_videorate_class_init), + (gst_videorate_getcaps), (gst_videorate_link), + (gst_videorate_init), (gst_videorate_chain), + (gst_videorate_set_property), (gst_videorate_get_property), + (gst_videorate_change_state), (plugin_init): + Added a video timestamp corrector. + +2004-06-15 Zaheer Abbas Merali + + fixed a potential leak with previous commit + + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): + +2004-06-15 Zaheer Abbas Merali + + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): + Added missing refcount, fixes bug #144425 + Cheers Tim for finding the bug + +2004-06-15 Thomas Vander Stichele + + * sys/v4l/gstv4l.c: (plugin_init): + * sys/v4l/gstv4lcolorbalance.c: + * sys/v4l/gstv4lcolorbalance.h: + * sys/v4l/gstv4lelement.c: + * sys/v4l/gstv4lelement.h: + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init): + * sys/v4l/gstv4lmjpegsink.h: + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init): + * sys/v4l/gstv4lmjpegsrc.h: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list), + (gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect), + (gst_v4lsrc_getcaps), (gst_v4lsrc_get): + * sys/v4l/gstv4lsrc.h: + * sys/v4l/gstv4ltuner.c: + * sys/v4l/gstv4ltuner.h: + * sys/v4l/gstv4lxoverlay.c: + * sys/v4l/gstv4lxoverlay.h: + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay), + (gst_v4l_set_window), (gst_v4l_enable_overlay): + * sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties), + (gst_v4l_open), (gst_v4l_get_picture), (gst_v4l_get_audio), + (gst_v4l_set_audio): + * sys/v4l/v4l_calls.h: + * sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread), + (gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_sync_frame), + (gst_v4lmjpegsink_set_buffer), (gst_v4lmjpegsink_set_playback), + (gst_v4lmjpegsink_playback_init), + (gst_v4lmjpegsink_playback_start), (gst_v4lmjpegsink_get_buffer), + (gst_v4lmjpegsink_play_frame), (gst_v4lmjpegsink_wait_frame), + (gst_v4lmjpegsink_playback_stop), + (gst_v4lmjpegsink_playback_deinit): + * sys/v4l/v4lmjpegsink_calls.h: + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame), + (gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_buffer), + (gst_v4lmjpegsrc_set_capture), (gst_v4lmjpegsrc_set_capture_m), + (gst_v4lmjpegsrc_capture_init), (gst_v4lmjpegsrc_capture_start), + (gst_v4lmjpegsrc_grab_frame), (gst_v4lmjpegsrc_requeue_frame), + (gst_v4lmjpegsrc_capture_stop), (gst_v4lmjpegsrc_capture_deinit): + * sys/v4l/v4lmjpegsrc_calls.h: + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame), + (gst_v4lsrc_sync_frame), (gst_v4lsrc_set_capture), + (gst_v4lsrc_capture_init), (gst_v4lsrc_capture_start), + (gst_v4lsrc_grab_frame), (gst_v4lsrc_requeue_frame), + (gst_v4lsrc_capture_stop), (gst_v4lsrc_capture_deinit), + (gst_v4lsrc_try_palette): + * sys/v4l/v4lsrc_calls.h: + bunch of paranoia cleanups + +2004-06-14 David Schleef + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_init), + (cdparanoia_get), (cdparanoia_open), (cdparanoia_change_state): + Send discont events and change timestamps appropriately when + we get a seek event. (bug #144240) + * ext/cdparanoia/gstcdparanoia.h: + +2004-06-14 Benjamin Otte + + * ext/alsa/gstalsa.c: Use snd_pcm_hw_params_set_rate _near instead of + snd_pcm_hw_params_set_rate since the latter fails for no good + reason on some setups. + +2004-06-14 David Schleef + + * gst/volume/demo.c: (value_changed_callback): exp10() is not + standard. Thank you for playing. + +2004-06-14 Wim Taymans + + * gst/ffmpegcolorspace/imgconvert.c: (img_convert): + Patch 1.3 broke the ordering of the colorspace info and + made the plugin basically work by coincidence, reordered + the info. + +2004-06-14 Thomas Vander Stichele + + * ext/lame/gstlame.c: + * ext/mad/gstmad.c: + sync caps. Make sure mad can only output a list of rates, not + a full range. In the future, have three caps lists for each of the + mpeg versions. Change mpegversion to a double as well. + +2004-06-14 Thomas Vander Stichele + + * gst/volume/.cvsignore: + * gst/volume/Makefile.am: + * gst/volume/demo.c: (value_changed_callback), (idler), + (setup_gui), (main): + added small demo app + +2004-06-13 Jan Schmidt + * ext/esd/esdsink.c: (gst_esdsink_change_state): + * ext/esd/esdsink.h: + Close the esd connection on pause, because esd will just wait - + blocking all other esd clients indefinitely. + +2004-06-12 Christophe Fergeau + + * gst/tags/gstvorbistag.c: replaced a g_warning which I added in my + previous commit with GST_DEBUG + +2004-06-12 Thomas Vander Stichele + + * configure.ac: + add a header check for a dvdread header in dvdnav. Fixes #133002 + +2004-06-12 Zaheer Abbas Merali + + * gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_init_send): + * gst/tcp/gsttcpclientsink.h: + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_init_receive): + * gst/tcp/gsttcpclientsrc.h: + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_init), + (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_init_send): + * gst/tcp/gsttcpserversink.h: + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_init_receive): + * gst/tcp/gsttcpserversrc.h: + Modified the tcp plugins so they are portable (IPv4,IPv6, any future + version of IP) + +2004-06-12 Zaheer Abbas Merali + + * configure.ac: + Added ogg library so that OSX detects libtheora properly + +2004-06-11 Wim Taymans + + * ext/theora/theoradec.c: (theora_dec_chain), + (theora_dec_change_state): + Don't try to decode frames before we received a keyframe. + +2004-06-11 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init), + (gst_ogg_mux_init), (gst_ogg_mux_next_buffer), + (gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop), + (gst_ogg_mux_get_property), (gst_ogg_mux_set_property): + Added property to set the maximum delay of a page. + +2004-06-10 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_class_init), + (gst_ogg_mux_init), (gst_ogg_mux_next_buffer), + (gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop), + (gst_ogg_mux_get_property), (gst_ogg_mux_set_property): + Added max-delay property to control the maximum amount + of data to put in one page. + +2004-06-10 Wim Taymans + + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (gst_theora_enc_init), (theora_enc_sink_link), + (theora_buffer_from_packet), (theora_enc_set_property), + (theora_enc_get_property): + Set duration on encoded buffer, added some more properties + +2004-06-10 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer), + (gst_ogg_mux_get_headers), (gst_ogg_mux_set_header_on_caps), + (gst_ogg_mux_send_headers), (gst_ogg_mux_loop): + * ext/theora/theoraenc.c: (theora_enc_chain): + Fix refcounting bugs + +2004-06-10 Ronald Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_init), + (gst_asf_demux_loop), (gst_asf_demux_process_file), + (gst_asf_demux_process_data), (gst_asf_demux_handle_data), + (gst_asf_demux_process_object), (gst_asf_demux_get_stream), + (gst_asf_demux_process_chunk), (gst_asf_demux_handle_sink_event), + (gst_asf_demux_handle_src_event), (gst_asf_demux_handle_src_query), + (gst_asf_demux_change_state): + * gst/asfdemux/gstasfdemux.h: + You know Chimaira? "I - HATE - EVERYTHING". Yeah, that's what this + feels like. I think we should set a new requirement for demuxers + from now on to implement sane loop functions, data loops, query + and seek functions before first commit into CVS. And this commit + fixes all of the above. + +2004-06-10 Christophe Fergeau + + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_add): make sure parsed + vorbis comments are properly encoded in UTF-8 before adding them + to a GstTagList + +2004-06-09 Benjamin Otte + + * ext/alsa/gstalsa.c: (add_channels): + handle min <= max correctly + * ext/alsa/gstalsa.c: (gst_alsa_fixate_to_mimetype), + (gst_alsa_fixate_field_nearest_int), (gst_alsa_fixate): + add fixation functions so we fixate correctly. No preferring of alaw + anymore because it's the first structure. + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsa.c: (gst_alsa_sw_params_dump), + (gst_alsa_hw_params_dump): + add functions to ease debugging in alsalib + * ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params), + (gst_alsa_set_hw_params), (gst_alsa_set_sw_params), + (gst_alsa_start_audio): + only specify hw params if we really setup a format (fixes #134007 - + or at least works around it) + +2004-06-09 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_init), + (gst_ogg_mux_next_buffer), (gst_ogg_mux_buffer_from_page), + (gst_ogg_mux_push_page), (gst_ogg_mux_get_headers), + (gst_ogg_mux_set_header_on_caps), (gst_ogg_mux_send_headers), + (gst_ogg_mux_loop): + Use stream caps to setup the initial pages in the ogg stream. + Correctly set the streamheader caps on the srcpad. + +2004-06-09 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps_list), + (gst_v4lsrc_get_fps), (gst_v4lsrc_srcconnect), + (gst_v4lsrc_getcaps): + * sys/v4l/v4l_calls.c: (gst_v4l_set_window_properties), + (gst_v4l_get_picture), (gst_v4l_get_audio), (gst_v4l_set_audio): + add querying of fps lists for webcams. Negotiating to a framerate + now works. + +2004-06-08 Thomas Vander Stichele + + * ext/theora/theoraenc.c: (theora_buffer_from_packet), + (theora_push_buffer), (theora_push_packet), + (theora_set_header_on_caps), (theora_enc_chain): + mark buffers and put on streamheader, raw theora streaming + now works too, whee + +2004-06-08 Thomas Vander Stichele + + * gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header), + (gst_tcp_gdp_read_caps): + do a looping read for caps and GDP headers too + +2004-06-08 Thomas Vander Stichele + + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get): + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_get): + return EOS instead of NULL in _get + +2004-06-08 Wim Taymans + + * gst/tcp/gsttcp.c: (gst_tcp_gdp_read_header), + (gst_tcp_gdp_read_caps), (gst_tcp_gdp_write_header), + (gst_tcp_gdp_write_caps): + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get): + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps), + (gst_tcpserversrc_gdp_read_header), (gst_tcpserversrc_get): + Memory leak fixes + +2004-06-08 Thomas Vander Stichele + + * ext/vorbis/Makefile.am: + * ext/vorbis/vorbis.c: (plugin_init): + * ext/vorbis/vorbisparse.c: (gst_vorbis_parse_base_init), + (gst_vorbis_parse_class_init), (gst_vorbis_parse_init), + (vorbis_parse_set_header_on_caps), (vorbis_parse_chain), + (vorbis_parse_change_state): + * ext/vorbis/vorbisparse.h: + adding a vorbisparse element that marks the buffers, streaming + raw vorbis using GDP now works, whee + +2004-06-08 Wim Taymans + + * ext/jpeg/Makefile.am: + * ext/jpeg/README: + * ext/jpeg/gstjpeg.c: (plugin_init): + * ext/jpeg/gstsmokedec.c: (gst_smokedec_get_type), + (gst_smokedec_base_init), (gst_smokedec_class_init), + (gst_smokedec_init), (gst_smokedec_link), (gst_smokedec_chain): + * ext/jpeg/gstsmokedec.h: + * ext/jpeg/gstsmokeenc.c: (gst_smokeenc_get_type), + (gst_smokeenc_base_init), (gst_smokeenc_class_init), + (gst_smokeenc_init), (gst_smokeenc_getcaps), (gst_smokeenc_link), + (gst_smokeenc_resync), (gst_smokeenc_chain), + (gst_smokeenc_set_property), (gst_smokeenc_get_property): + * ext/jpeg/gstsmokeenc.h: + * ext/jpeg/smokecodec.c: (smokecodec_init_destination), + (smokecodec_flush_destination), (smokecodec_term_destination), + (smokecodec_init_source), (smokecodec_fill_input_buffer), + (smokecodec_skip_input_data), (smokecodec_resync_to_restart), + (smokecodec_term_source), (smokecodec_encode_new), + (smokecodec_decode_new), (smokecodec_info_free), + (smokecodec_set_quality), (smokecodec_get_quality), + (smokecodec_set_threshold), (smokecodec_get_threshold), + (smokecodec_set_bitrate), (smokecodec_get_bitrate), + (find_best_size), (abs_diff), (put), (smokecodec_encode), + (smokecodec_parse_header), (smokecodec_decode): + * ext/jpeg/smokecodec.h: + Added a new simple jpeg based codec + +2004-06-08 Wim Taymans + + * gst/multipart/multipartmux.c: (gst_multipart_mux_class_init), + (gst_multipart_mux_loop): + Fix memory leak + +2004-06-08 Thomas Vander Stichele + + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_get): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_client_remove), + (gst_tcpserversink_handle_client_read), (gst_tcp_buffer_write), + (gst_tcpserversink_handle_client_write), (gst_tcpserversink_chain), + (gst_tcpserversink_init_send), (gst_tcpserversink_close): + * gst/tcp/gsttcpserversink.h: + take streamheader into account + +2004-06-08 Thomas Vander Stichele + + * gst/level/Makefile.am: + * gst/level/gstlevel.c: (gst_level_class_init): + clean up marshal generation + +2004-06-08 Thomas Vander Stichele + + * gst/tcp/Makefile.am: + * gst/tcp/gsttcpclientsink.c: (gst_tcpclientsink_get_type), + (gst_tcpclientsink_class_init), (gst_tcpclientsink_init), + (gst_tcpclientsink_set_property), (gst_tcpclientsink_get_property): + * gst/tcp/gsttcpclientsrc.c: (gst_tcpclientsrc_class_init), + (gst_tcpclientsrc_init), (gst_tcpclientsrc_set_property), + (gst_tcpclientsrc_get_property): + * gst/tcp/gsttcpserversink.c: (gst_tcpserversink_class_init), + (gst_tcpserversink_init), (gst_tcpserversink_handle_server_read), + (gst_tcpserversink_handle_client_read), + (gst_tcpserversink_handle_client_write), + (gst_tcpserversink_set_property), (gst_tcpserversink_get_property): + * gst/tcp/gsttcpserversink.h: + add signals client-added and client-removed + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_class_init), + (gst_tcpserversrc_init), (gst_tcpserversrc_set_property), + (gst_tcpserversrc_get_property): + uniformized, change default protocol to NONE + * gst/tcp/gsttcp-marshal.list: added +2004-06-07 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + handle discont events if they happen before caps nego + +2004-06-07 Wim Taymans + + * gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init), + (gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain), + (gst_multipart_demux_plugin_init): + * gst/multipart/multipartmux.c: (gst_multipart_mux_class_init), + (gst_multipart_mux_init), (gst_multipart_mux_loop), + (gst_multipart_mux_change_state): + Small updates, fix a memleak + +2004-06-07 Stephane Loeuillet + + * configure.ac: OSS portability + * ext/arts/gst_arts.c: idem + * sys/oss/gstosselement.c: idem + * sys/oss/gstossmixer.c: idem + * sys/oss/gstosssink.c: idem + * sys/oss/gstosssrc.c: idem + * sys/oss/oss_probe.c: idem + - check for soundcard.h in different places for some BSD + +2004-06-07 Jan Schmidt + + * AUTHORS: + Add me to the authors file + * configure.ac: + Increase the libdv requirement to >= version 0.100 + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert), + (gst_dvdec_src_query), (gst_dvdec_handle_sink_event), + (gst_dvdec_push), (gst_dvdec_loop), (gst_dvdec_change_state): + * ext/dv/gstdvdec.h: + Add support for the new_media flag when sending DISCONT events + Make the querying work when video pad is not linked + +2004-06-07 Tim-Philipp Müller + + reviewed by Benjamin Otte + + * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init): + create a NULL-initialized array of pads, so we don't think they + exist already. (fixes #143130) + +2004-06-07 Benjamin Otte + + * gst/mixmatrix/mixmatrix.c: (gst_mixmatrix_init), + (mixmatrix_resize), (gst_mixmatrix_set_all_caps), + (gst_mixmatrix_request_new_pad), (gst_mixmatrix_loop): + don't use // coments + +2004-06-07 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_samples_to_timestamp): + cast to GstClockTime to get higher granularity + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + use gst_element_set_time_delay to get the exact time + * ext/mad/gstmad.c: (gst_mad_chain): + use the negotiated rate instead of the current frame's rate which + might be wrong because of bit errors. This avoids emitting totally + bogus timestamps and screwing sync. + (fixes #143454) + +2004-06-07 Tim-Philipp Müller + + reviewed by Benjamin Otte + + * gst/adder/gstadder.c: (gst_adder_loop): + properly error out when no negotiation has happened yet. (fixes + #143032) + +2004-06-06 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event): + forward correctly transformed offset in discont events. Based on + patch by Arwed v. Merkatz. (fixes #142851) + +2004-06-06 David Schleef + + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: that's + G_HAVE_GNUC_VARARGS, not G_HAVE_GNU_VARARGS. Should fix compile + problems on several systems. + +2004-06-06 Benjamin Otte + + * ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init): + use explicit caps on the srcpad + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + properly error out if caps couldn't be set (fixes #142764) + +2004-06-06 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_probe_hw_params), + (gst_alsa_set_hw_params), (gst_alsa_set_sw_params), + (gst_alsa_start_audio): + - don't call set_periods_integer anymore, it breaks the + configuration randomly + - call snd_pcm_hw_params_set_access directly instead of using masks + - don't fail if the sw_params can't be set, just use the default + params and hope it works. Alsalib has weird issues when you touch + sw_params and does no proper error reporting about what failed. + * ext/alsa/gstalsa.c: (gst_alsa_open_audio), + (gst_alsa_close_audio): + make our alsa debugging go via gst debugging and not conditionally + defined + * ext/alsa/gstalsa.h: + add ALSA_DEBUG_FLUSH macro + * ext/alsa/gstalsaplugin.c: (gst_alsa_error_wrapper), + (plugin_init): + wrap alsa errors to be printed via the gst debugging system and not + spammed to stderr + +2004-06-04 Ronald Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_init), + (gst_qtdemux_handle_src_query), (gst_qtdemux_handle_src_event), + (gst_qtdemux_handle_sink_event), (gst_qtdemux_change_state), + (gst_qtdemux_loop_header), (qtdemux_dump_mvhd), + (qtdemux_parse_trak): + * gst/qtdemux/qtdemux.h: + Bitch. Also known as seeking, querying & co. + * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain), + (gst_osssink_change_state): + * sys/oss/gstosssink.h: + Resyncing is for weenies, this hack is no longer needed and was + broken anyway (since it - unintendedly - always leaves resync to + TRUE). + +2004-06-05 Andrew Turner + + * gst/tcp/gsttcp.c: portability (Solaris 10/FreeBSD) + * gst/tcp/gsttcpclientsrc.h: idem + - define MSG_NOSIGNAL if not done + - include unistd.h for off_t + (fixes #143749) + +2004-06-05 Benjamin Otte + + * configure.ac: + * ext/kio/Makefile.am: + check for qt's moc preprocessor explicitly and use it + +2004-06-03 Thomas Vander Stichele + + * gst/tcp/gsttcp.c: (gst_tcp_socket_write): + don't get a signal for EPIPE on socket writes + (somebody check if this works on other platforms) + +2004-06-02 Thomas Vander Stichele + + * ext/alsa/gstalsaclock.c: (gst_alsa_clock_get_type): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop): + check error condition on available samples correctly + +2004-06-02 Thomas Vander Stichele + + * ext/alsa/gstalsasrc.c: (gst_alsa_src_get_time): + avoid a segfault + * gst/tcp/gsttcp.c: (gst_tcp_socket_write), (gst_tcp_socket_read), + (gst_tcp_gdp_read_header), (gst_tcp_gdp_read_caps): + * gst/tcp/gsttcpserversrc.c: (gst_tcpserversrc_gdp_read_caps), + (gst_tcpserversrc_gdp_read_header): + use ssize_t over size_t since the former is signed and thus the + check for error codes can work + +2004-06-02 Wim Taymans + + reviewed by: Johan + + * gst/multipart/multipartmux.c: (gst_multipart_mux_class_init), + (gst_multipart_mux_loop): + Oops + +2004-06-02 Wim Taymans + + * gst/multipart/multipartmux.c: (gst_multipart_mux_class_init), + (gst_multipart_mux_init), (gst_multipart_mux_loop), + (gst_multipart_mux_get_property), (gst_multipart_mux_set_property), + (gst_multipart_mux_change_state): + Added configurable boundary specifier, added the value as a + caps field as well. + +2004-06-02 Zaheer Abbas Merali + + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpclientsrc.h: + * gst/tcp/gsttcpserversrc.c: + - portability fix, to compile on OSX + (fixes #143146) + + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosrc.c: + - compilation warnings on OSX + (fixes #143153) + +2004-06-02 Stephane Loeuillet + + * ext/vorbis/vorbisdec.c : sign warning fixes + + * gst-libs/gst/mixer/mixertrack.c : + do no use defines which are glib 2.4 specific + +2004-06-01 Christophe Fergeau + + * ext/flac/gstflactag.c: strip ending framing bit from vorbiscomment + buffer since libflac doesn't expect it (reports a sync error when + it encounters that) + + +2004-06-01 Owen Fraser-Green + + * gst-libs/gst/mixer/mixertrack.h: Changed struct syntax + * gst-libs/gst/mixer/mixertrack.c: + (gst_mixer_track_get_property), (get_mixer_track_init), + (get_mixer_track_get_property): Added property accessors + * gst-libs/gst/mixer/mixeroptions.h: Changed struct syntax + * gst-libs/gst/mixer/mixeroptions.c: + (gst_mixer_options_get_values): Added + * gst-libs/gst/mixer/mixer.h: Changed GstMixerClass syntax + * gst-libs/gst/mixer/mixer.c: Fixed comment + + +2004-06-01 Thomas Vander Stichele + + * ext/alsa/gstalsa.c: (gst_alsa_open_audio): + improve error messages on open + + +2004-06-01 Thomas Vander Stichele + + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay): + check if v4l-conf is in path + +2004-06-01 Thomas Vander Stichele + + * gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime): + change assert to a more readable error message + +2004-05-31 Stephane Loeuillet + + * gst-libs/gst/tuner/tunerchannel.h: + - add a freq_multiplicator field to make the conversion + between internal frequency unit and Hz + * sys/v4l/gstv4lelement.c: + * sys/v4l2/gstv4l2element.c: + - change default video device to /dev/video0 + * sys/v4l/v4l_calls.c: + * sys/v4l2/v4l2_calls.c: + - we only expose frequency to the user in Hz instead of + bastard v4lX unit (either 62.5kHz or 62.5Hz) + +2004-05-31 Jan Schmidt + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + Initialise b_o_s and e_o_s variables + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + Add some unusual fourcc's from mplayer avi's + * gst/multipart/multipartmux.c: (gst_multipart_mux_plugin_init): + Make the muxer have rank GST_RANK_NONE, so it doesn't mess up + autoplugging. + +2004-05-28 Wim Taymans + + * configure.ac: + * gst/alpha/Makefile.am: + * gst/alpha/gstalpha.c: (gst_alpha_method_get_type), + (gst_alpha_get_type), (gst_alpha_base_init), + (gst_alpha_class_init), (gst_alpha_init), (gst_alpha_set_property), + (gst_alpha_get_property), (gst_alpha_sink_link), (gst_alpha_add), + (gst_alpha_chroma_key), (gst_alpha_chain), + (gst_alpha_change_state), (plugin_init): + A plugin to add an alpha channel to I420 video. Can optionally do + chroma keying. + * gst/multipart/Makefile.am: + * gst/multipart/multipart.c: (plugin_init): + * gst/multipart/multipartdemux.c: (gst_multipart_demux_base_init), + (gst_multipart_demux_class_init), (gst_multipart_demux_init), + (gst_multipart_demux_finalize), (gst_multipart_demux_handle_event), + (gst_multipart_find_pad_by_mime), (gst_multipart_demux_chain), + (gst_multipart_demux_change_state), + (gst_multipart_demux_plugin_init): + * gst/multipart/multipartmux.c: (gst_multipart_mux_get_type), + (gst_multipart_mux_base_init), (gst_multipart_mux_class_init), + (gst_multipart_mux_get_sink_event_masks), (gst_multipart_mux_init), + (gst_multipart_mux_sinkconnect), (gst_multipart_mux_pad_link), + (gst_multipart_mux_pad_unlink), + (gst_multipart_mux_request_new_pad), + (gst_multipart_mux_handle_src_event), + (gst_multipart_mux_next_buffer), (gst_multipart_mux_compare_pads), + (gst_multipart_mux_queue_pads), (gst_multipart_mux_loop), + (gst_multipart_mux_get_property), (gst_multipart_mux_set_property), + (gst_multipart_mux_change_state), (gst_multipart_mux_plugin_init): + A Multipart demuxer/muxer. Not sure if it violates specs. Used to + send multipart jpeg images to a browser. + * gst/videobox/Makefile.am: + * gst/videobox/README: + * gst/videobox/gstvideobox.c: (gst_video_box_fill_get_type), + (gst_video_box_get_type), (gst_video_box_base_init), + (gst_video_box_class_init), (gst_video_box_init), + (gst_video_box_set_property), (gst_video_box_get_property), + (gst_video_box_sink_link), (gst_video_box_i420), + (gst_video_box_ayuv), (gst_video_box_chain), + (gst_video_box_change_state), (plugin_init): + Crops or adds borders around an image. can do alpha channel + borders as well. + * gst/videomixer/Makefile.am: + * gst/videomixer/README: + * gst/videomixer/videomixer.c: (gst_videomixer_pad_get_type), + (gst_videomixer_pad_base_init), (gst_videomixer_pad_class_init), + (gst_videomixer_pad_get_sink_event_masks), + (gst_videomixer_pad_get_property), + (gst_videomixer_pad_set_property), + (gst_videomixer_pad_sinkconnect), (gst_videomixer_pad_link), + (gst_videomixer_pad_unlink), (gst_videomixer_pad_init), + (gst_video_mixer_background_get_type), (gst_videomixer_get_type), + (gst_videomixer_base_init), (gst_videomixer_class_init), + (gst_videomixer_init), (gst_videomixer_request_new_pad), + (gst_videomixer_handle_src_event), + (gst_videomixer_blend_ayuv_i420), (gst_videomixer_fill_checker), + (gst_videomixer_fill_color), (gst_videomixer_fill_queues), + (gst_videomixer_blend_buffers), (gst_videomixer_update_queues), + (gst_videomixer_loop), (gst_videomixer_get_property), + (gst_videomixer_set_property), (gst_videomixer_change_state), + (plugin_init): + Generic video mixer plugin, can handle multiple inputs all with + different framerates and video sizes. Is fully alpha channel + aware. + +2004-05-27 Ronald Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + Select first track as master track. Not sure how else to handle + that... + * ext/ogg/gstoggmux.c: (gst_ogg_mux_next_buffer): + Discard discont events. Should fix #142962. + +2004-05-26 Ronald Bultje + + * ext/alsa/Makefile.am: + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init), + (gst_alsa_mixer_build_list), (gst_alsa_mixer_get_volume), + (gst_alsa_mixer_set_volume), (gst_alsa_mixer_set_mute), + (gst_alsa_mixer_set_record), (gst_alsa_mixer_set_option), + (gst_alsa_mixer_get_option): + * ext/alsa/gstalsamixer.h: + * ext/alsa/gstalsamixeroptions.c: + (gst_alsa_mixer_options_get_type), + (gst_alsa_mixer_options_class_init), (gst_alsa_mixer_options_init), + (gst_alsa_mixer_options_new): + * ext/alsa/gstalsamixeroptions.h: + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_new): + * ext/alsa/gstalsamixertrack.h: + Add enumerations (as GstMixerOptions). Make correct distinction + between input/output tracks. Add capture/playback private flag. + Use flag to decide on whether to set capture or playback volumes + or switches. Use playback and record switches. + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/mixer/mixer-marshal.list: + * gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init), + (gst_mixer_set_option), (gst_mixer_get_option), + (gst_mixer_mute_toggled), (gst_mixer_record_toggled), + (gst_mixer_volume_changed), (gst_mixer_option_changed): + * gst-libs/gst/mixer/mixer.h: + * gst-libs/gst/mixer/mixeroptions.c: (gst_mixer_options_get_type), + (gst_mixer_options_class_init), (gst_mixer_options_init), + (gst_mixer_options_dispose): + * gst-libs/gst/mixer/mixeroptions.h: + Add GstMixerOptions. + * sys/oss/gstosselement.c: (gst_osselement_class_probe_devices): + Rename Audio Mixer to OSS Mixer (similar to Alsa Mixer). Fix + broken device detection on computers with multiple OSS sound + cards. + +2004-05-26 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate): + fixate nicely even when the peer is not negotiating + +2004-05-25 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_parse_caps): + make sure we don't allow depth > width + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_fixate): + fixate endianness to G_BYTE_ORDER as default + * gst/audioscale/gstaudioscale.c: + we don't handle another endianness as host-endianness + +2004-05-25 David Schleef + + * gst/ffmpegcolorspace/mem.c: malloc() is in stdlib.h, not malloc.h + +2004-05-24 Benjamin Otte + + * ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_sinkconnect), + (gst_oggvorbisenc_setup): + properly fail when we can't setup the vorbis encoder due to + unsupported settings + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_sinkconnect), + (gst_vorbisenc_setup): + same + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + fix case where warnings occured when one pad was unlinked while the + other's link function was called + +2004-05-24 Thomas Vander Stichele + + * gst/tcp/Makefile.am: + use GST_ENABLE_NEW + +2004-05-24 Benjamin Otte + + * gst-libs/gst/resample/private.h: + don't use optimizations that are #if 0'ed + +2004-05-24 Wim Taymans + + * gst/avi/gstavidemux.c: (gst_avi_demux_handle_src_query): + Fix potential division by zero error and hopefully get + the position query right to get correct timestamps on avi + audio. + +2004-05-24 Wim Taymans + + * gst/videoscale/videoscale.c: (gst_videoscale_scale_nearest), + (gst_videoscale_scale_nearest_str2), + (gst_videoscale_scale_nearest_str4), + (gst_videoscale_scale_nearest_32bit), + (gst_videoscale_scale_nearest_24bit), + (gst_videoscale_scale_nearest_16bit): + Fix the scaling algorithm and avoid a buffer overflow. + removed the while loop in the scaling function as it + was used for point sampling only. + +2004-05-24 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_get_type), + (gst_id3_tag_class_init), (gst_id3_tag_init), + (gst_id3_tag_set_property), (gst_id3_tag_get_tag_to_render), + (gst_id3_tag_handle_event), (gst_id3_tag_do_caps_nego), + (gst_id3_tag_send_tag_event): + lots of fixes to make id3mux work and id3demux work correctly + +2004-05-24 Stephane Loeuillet + + * ext/Makefile.am: + add rules to build shout2send (was removed by accident + when this module was no more marked experimental/broken) + +2004-05-24 Zaheer Abbas Merali + + * ext/shout2/gstshout2.c: + * ext/shout2/gstshout2.h: + adding a "connection problem" signal to shout2send + (fixes #142954) + +2004-05-21 Thomas Vander Stichele + + * ext/kio/kioreceiver.cpp: + * ext/kio/kioreceiver.h: + fix sign comparison issues + +2004-05-21 Stephane Loeuillet + + * gst/cdxaparse/gstcdxaparse.c: + * gst/cdxaparse/gstcdxaparse.h: + some renaming + add some checks/sanity + prepare for seek addition + + * sys/sunaudio/gstsunaudio.c: + remove exported dupe init function + +2004-05-21 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_get_formats), + (gst_dvdec_src_convert), (gst_dvdec_sink_convert): + Fix format conversion and position querying. + * gst/debug/progressreport.c: (gst_progressreport_report): + Don't output a bogus total value that we didn't query. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): + Always set XV_AUTOPAINT_COLORKEY to true. Fixes xvimagesink showing + only a blank window after xine has been used. + +2004-05-21 Thomas Vander Stichele + + * m4/as-arts.m4: + sync with upstream version to fix test on FC2 + readd with -ko to preserve Id header + +2004-05-20 Stephane Loeuillet + + * configure.ac: + test for FIONREAD ioctl in sys/filio.h for Solaris compat. + * gst/tcp/gsttcpclientsrc.c: idem + * gst/tcp/gsttcpserversink.c: idem + * gst/tcp/gsttcpserversrc.c: idem + * m4/gst-fionread.m4: idem + + * sys/sunaudio/gstsunaudio.c: change category to Sink/Audio + + * configure.ac: enable speex plugin for speex 1.1.5+ + * ext/speex/gstspeexenc.c: fix cast warning + + * ext/esd/README: fix typo + +2004-05-20 David Schleef + + * configure.ac: Minor cosmetic change to convince the buildbot to + reautogen. + * sys/sunaudio/gstsunaudio.c: (gst_sunaudiosink_class_init), + (gst_sunaudiosink_init), (gst_sunaudiosink_getcaps), + (gst_sunaudiosink_pad_link), (gst_sunaudiosink_chain), + (gst_sunaudiosink_setparams), (gst_sunaudiosink_open), + (gst_sunaudiosink_close), (gst_sunaudiosink_change_state), + (gst_sunaudiosink_set_property), (gst_sunaudiosink_get_property): + More hacking. Plays audio now. + +2004-05-20 David Schleef + + * configure.ac: + * sys/Makefile.am: + +2004-05-20 David Schleef + + * sys/osxaudio/Makefile.am: New OS X audio plugin by Zaheer Abbas Merali + * sys/osxaudio/gstosxaudio.c: + * sys/osxaudio/gstosxaudioelement.c: + * sys/osxaudio/gstosxaudioelement.h: + * sys/osxaudio/gstosxaudiosink.c: + * sys/osxaudio/gstosxaudiosink.h: + * sys/osxaudio/gstosxaudiosrc.c: + * sys/osxaudio/gstosxaudiosrc.h: + +2004-05-20 Thomas Vander Stichele + + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_set_header_on_caps), + (gst_vorbisenc_chain): + put the codec headers on the caps as streamheader as well as + pushing them out + +2004-05-20 Thomas Vander Stichele + + * ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy), + (gst_vorbisenc_buffer_from_packet), (gst_vorbisenc_push_buffer), + (gst_vorbisenc_push_packet), (gst_vorbisenc_chain): + split up push_packet into two functions + +2004-05-20 Thomas Vander Stichele + + * gst/tcp/.cvsignore: + ignore enums + * gst/tcp/Makefile.am: + * gst/tcp/README: + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcp.h: + * gst/tcp/gsttcpclientsink.c: + * gst/tcp/gsttcpclientsink.h: + * gst/tcp/gsttcpclientsrc.c: + * gst/tcp/gsttcpclientsrc.h: + * gst/tcp/gsttcpplugin.c: + * gst/tcp/gsttcpserversink.c: + * gst/tcp/gsttcpserversink.h: + * gst/tcp/gsttcpserversrc.c: + * gst/tcp/gsttcpserversrc.h: + add new tcp elements + +2004-05-19 Wim Taymans + + * gst/law/mulaw-conversion.c: (mulaw_encode): + Fix overflow bug in ulaw encoding. + +2004-05-19 Benjamin Otte + + * ext/mad/gstmad.c: (gst_mad_handle_event): + don't unref the event twice + +2004-05-19 Benjamin Otte + + * configure.ac: + remove -Wno-sign-compare + +2004-05-19 Benjamin Otte + + * configure.ac: + remove -DG_DISABLE_DEPRECATED. It's not usable without workarounds + if you want to work against glib 2.2 and 2.4 + +2004-05-19 Thomas Vander Stichele + + * gst/tcp/Makefile.am: + * gst/tcp/gsttcp.c: + * gst/tcp/gsttcp.h: + * gst/tcp/gsttcpsink.h: + * gst/tcp/gsttcpsrc.h: + gsttcp -> gsttcpplugin + CVS surgery in preparation for tcp merge + +2004-05-19 Benjamin Otte + + * gst/debug/tests.c: (md5_get_value): + fix segfault on gst-inspect + +2004-05-19 Benjamin Otte + + * gst/debug/testplugin.c: + * gst/debug/tests.c: + * gst/debug/tests.h: + add new extensible and configurable testing element. Current tests + include buffer count, stream length, timestamp/duration matching and + md5. + * gst/debug/Makefile.am: + * gst/debug/gstdebug.c: (plugin_init): + add infrastructure for new element + +2004-05-19 Johan Dahlin + + * ext/dv/gstdvdec.c (gst_dvdec_quality_get_type): Add proper + ending of the array. Fixes gst-inspect segfault on ppc. + +2004-05-19 Stephane Loeuillet + + * ext/dirac/gstdiracdec.cc : change category to Codec/Decoder/Video + + * m4/a52.m4 : don't fix a test that should fail with current a52dec lib + +2004-05-18 David Schleef + + * gst/ffmpegcolorspace/imgconvert.c: (img_convert): Fixes for + warnings (bugs, actually) noticed by gcc but not forte. + +2004-05-18 David Schleef + + * sys/sunaudio/Makefile.am: + * sys/sunaudio/gstsunaudio.c: New sunaudiosink + +2004-05-18 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_change_state), + (gst_qtdemux_loop_header): Patch from dcm@acm.org (David Moore) + to allow qtdemux to use non-seekable streams. (bug #142272) + +2004-05-18 David Schleef + + * gst-libs/gst/resample/resample.c: (gst_resample_sinc_ft_s16), + (gst_resample_sinc_ft_float): Remove use of static temporary + buffer. This code was obviously not supposed to last long, but + it's stuck in our ABI, so it required a little hack to make it + ABI-compatible. Fixes #142585. + * gst-libs/gst/resample/resample.h: same. + +2004-05-18 David Schleef + + * configure.ac: Add sunaudio + * examples/Makefile.am: make gstplay depend on gconf + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: Remove c99-isms + * gst/ffmpegcolorspace/imgconvert.c: (build_rgb_palette), + (convert_table_lookup), (img_convert): remove c99-isms + * gst/ffmpegcolorspace/imgconvert_template.h: make a constant + unsigned, to fix a warning on Solaris + * gst/mpeg1sys/systems.c: bcopy->memcpy + * gst/rtjpeg/RTjpeg.c: (RTjpeg_yuvrgb8): bcopy->memcpy + * sys/Makefile.am: Add sunaudio + +2004-05-18 Wim Taymans + + * ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type), (gst_ogg_mux_init), + (gst_ogg_mux_sinkconnect), (gst_ogg_mux_request_new_pad), + (gst_ogg_mux_next_buffer), (gst_ogg_mux_push_page), + (gst_ogg_mux_compare_pads), (gst_ogg_mux_queue_pads), + (gst_ogg_mux_loop): + Fix an ugly memleak where the muxer didn't flush enough ogg + pages. This also resulted in badly muxed ogg files. + +2004-05-18 Stephane Loeuillet + + * gst/asfdemux/asfheaders.c : + * gst/asfdemux/asfheaders.h : + * gst/asfdemux/gstasfdemux.c : + - fix ASF_OBJ_PADDING guid + - add 3 new object guids (language list, metadata, + extended stream properties) + - add a function to parse extended header objects + +2004-05-18 Benjamin Otte + + * sys/oss/gstosselement.c: (gst_osselement_sync_parms): + remove leftover debugging g_print + +2004-05-17 Ronald Bultje + + * ext/mad/gstmad.c: (gst_mad_handle_event): + Fix for when the first format in a discont event is not a + byte-based one. Should fix #137710. + +2004-05-18 Stephane Loeuillet + + * m4/a52.m4 : fix compilation with -Wall -Werror + * m4/libfame.m4 : idem + * m4/libmikmod.m4 : idem + +2004-05-17 Benjamin Otte + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment): + signal the new tags before giving up the reference + +2004-05-17 Benjamin Otte + + * ext/shout2/gstshout2.c: + use application/ogg instead of application/x-ogg (patch by Patrick + Guimond, fixes #142432) + * sys/oss/gstosselement.c: (gst_osselement_reset), + (gst_osselement_sync_parms): + don't set fragment size unless specified (fixes #142493) + +2004-05-17 Stephane Loeuillet + + * configure.ac : fix compilation of v4l2src with "-Wall -Werror" + fixes #142664 + +2004-05-17 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_chain): + compute offsets correctly for internal buffers so timestamps are set + correctly when we can't seek. Also handle cases where there are no + offsets. (based on a patch by David Moore, fixes #142507) + +2004-05-17 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + use correct variable when determining amount of data to skip so we + don't skip into the void and segfault + +2004-05-16 Benjamin Otte + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps): + Hi, I'm a memleak + +2004-05-16 Stephane Loeuillet + + * gst/asfdemux/gstasfdemux.c: + - fix a mem leak and always propagate tags + - add WMV3 to known video codecs (but no decoder yet) + - replace "surplus data" at end of audio header for what + it is : codec specific data + - fix a typo + +2004-05-16 Arwed v. Merkatz + + reviewed by: Ronald Bultje + + * gst-libs/gst/audio/audioclock.c: + Fix wrong return type (#142205). + +2004-05-16 Ronald Bultje + + * ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_init): + Ignore CRCs by default (fixes #142566). + +2004-05-16 Ronald Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open), + (gst_alsa_mixer_close), (gst_alsa_mixer_supported), + (gst_alsa_mixer_build_list), (gst_alsa_mixer_free_list), + (gst_alsa_mixer_change_state), (gst_alsa_mixer_list_tracks), + (gst_alsa_mixer_get_volume), (gst_alsa_mixer_set_volume), + (gst_alsa_mixer_set_mute), (gst_alsa_mixer_set_record): + Fix for cases where we fail to attach to a mixer. + +2004-05-16 Ronald Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): + Don't touch events after not owning them anymore. + * gst/wavparse/gstwavparse.c: (gst_wavparse_base_init), + (gst_wavparse_fmt), (gst_wavparse_other), + (gst_wavparse_handle_seek), (gst_wavparse_loop), + (gst_wavparse_pad_convert), (gst_wavparse_pad_query), + (gst_wavparse_srcpad_event): + * gst/wavparse/gstwavparse.h: + Add seeking, fix querying. + +2004-05-16 Stephane Loeuillet + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment): + - process comments even if they don't end with \0\0 + g_convert would ignore them if present and works well without them + +2004-05-16 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_caps), (gst_alsa_get_caps): + simplify caps + +2004-05-16 Benjamin Otte + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment): + don't write to memory we might not write to - g_convert does that + for us anyway (fixes #142613) + (gst_asf_demux_audio_caps): + comment out gst_util_dump_mem + +2004-05-16 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + compute correct expected timestamps after seek (broken since + last commit) + * ext/gdk_pixbuf/pixbufscale.c: (pixbufscale_init): + rename element and debugging category to gdkpixbufscale + +2004-05-16 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + add error checking to snd_pcm_delay and remove duplicate call to + snd_pcm_delay that caused issues (see inline code comments) + * ext/alsa/gstalsasink.c: (gst_alsa_sink_get_time): + make more readable and fix return value when snd_pcm_delay fails + (fixes #142586) + +2004-05-15 Jan Schmidt + * ext/gdk_pixbuf/pixbufscale.c: (gst_pixbufscale_method_get_type), + (gst_pixbufscale_get_type), (gst_pixbufscale_base_init), + (gst_pixbufscale_class_init), (gst_pixbufscale_getcaps), + (gst_pixbufscale_link), (gst_pixbufscale_init), + (gst_pixbufscale_handle_src_event), (pixbufscale_scale), + (gst_pixbufscale_chain), (gst_pixbufscale_set_property), + (gst_pixbufscale_get_property), (pixbufscale_init): + * ext/gdk_pixbuf/pixbufscale.h: + Add these files I forgot earlier + +2004-05-15 Jan Schmidt + * ext/gdk_pixbuf/Makefile.am: + * ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): + * ext/gdk_pixbuf/gstgdkpixbuf.h: + Add new pixbufscale element to scale RGB video + using gdk_pixbuf, because gdk_pixbuf does BILINEAR + and HYPER interpolation correctly. + * ext/theora/theoraenc.c: (theora_enc_chain), + Discard buffer and return if explicit caps could not be set + (theora_enc_get_property): + Make _get return kbps for the bitrate consistent with + the _set function. + + +2004-05-14 Benjamin Otte + + * ext/libvisual/visual.c: (gst_visual_chain): + add missing visual_audio_analyze + +2004-05-14 David Schleef + + * ext/esd/esdsink.c: (gst_esdsink_chain): Fix crash when ESD + is killed while we're playing. + * gst/qtdemux/qtdemux.c: (qtdemux_parse): call + gst_element_no_more_pads(). + +2004-05-14 Stephane Loeuillet + + * gst-libs/gst/riff/riff-read.c : + - fix INFO tag extraction in RIFF/AVI files + because gst_event_unref (event) also freed taglist + - avoid a mem leak + +2004-05-13 Stephane Loeuillet + + * ext/mad/gstid3tag.c : move from "Codec/(Dem/M)uxer" to "Codec/(Dem/M)uxer/Audio" + * gst/wavenc/gstwavenc.c : move from "Codec/Encoder/Audio" to "Codec/Muxer/Audio" + + * gst/auparse/gstauparse.c : + - add code (commented for now) to support audio/x-adpcm on src pad + (we have no decoder for those layout yet) + + * gst/cdxaparse/gstcdxaparse.c : + * gst/cdxaparse/gstcdxaparse.h : + - partial rewrite using RiffRead (ripped iain's wavparse code) + + * gst/rtp/gstrtpL16enc.c : typo + * gst/rtp/gstrtpgsmenc.c : typo + +2004-05-13 Benjamin Otte + + * configure.ac: + check for exact version of libvisual, it's not supposed to be + API/ABI stable yet + +2004-05-13 Benjamin Otte + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_push): + signal no-more-pads + +2004-05-13 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_src_convert) + Report which format was used for GST_FORMAT_DEFAULT + * gst/debug/Makefile.am: + * gst/debug/gstdebug.c: (plugin_init): + * gst/debug/progressreport.c: (gst_progressreport_base_init), + (gst_progressreport_class_init), (gst_progressreport_init), + (gst_progressreport_report), (gst_progressreport_set_property), + (gst_progressreport_get_property), (gst_progressreport_chain), + (gst_progressreport_plugin_init): + Add progressreport element for testing. + +2004-05-13 Thomas Vander Stichele + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_change_state): + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init): + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init), + (gst_v4lsrc_grab_frame): + add more debugging + send a discont at start + +2004-05-12 Colin Walters + + * gst/asfdemux/gstasfdemux.c (gst_asf_demux_process_segment): Avoid + inflooping if we can't find a chunk. Or in other words, don't blow + chunks if we don't have a chunk to blow. + +2004-05-13 Jan Schmidt + * ext/audiofile/gstafsrc.c: (gst_afsrc_get): + Remove old debug output + * ext/dv/gstdvdec.c: (gst_dvdec_quality_get_type), + (gst_dvdec_class_init), (gst_dvdec_loop), (gst_dvdec_change_state), + (gst_dvdec_set_property), (gst_dvdec_get_property): + Change the quality setting to an enum, so it works from gst-launch + Don't renegotiate a non-linked pad. Allows audio only decoding. + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_getcaps), + (gst_deinterlace_link), (gst_deinterlace_init): + * gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps), + (gst_videodrop_link): + Some caps negotiation fixes + +2004-05-12 Stephane Loeuillet + + * ext/tarkin/gsttarkin.c : + - Change RANK from NONE to PRIMARY + * ext/gdk_pixbuf/gstgdkpixbuf.c : + - Change RANK from NONE to MARGINAL + * ext/divx/gstdivxenc.c : + - Change RANK from PRIMARY to NONE (encoder/spider issue) + +2004-05-12 Thomas Vander Stichele + + * ext/vorbis/vorbisenc.c: (vorbis_granule_time_copy), + (gst_vorbisenc_push_packet): + copy a function that was added between 1.0 and 1.0.1 until we + depend on worthwhile features of post-1.0 + +2004-05-12 Benjamin Otte + + * configure.ac: + enable shout2 by default + * ext/shout2/gstshout2.c: (gst_shout2send_protocol_get_type), + (gst_shout2send_base_init), (gst_shout2send_init), + (gst_shout2send_connect), (gst_shout2send_change_state): + * ext/shout2/gstshout2.h: + make this work again. Based on a patch by Zaheer Abbas Merali (fixes + #142262) + * ext/theora/theora.c: (plugin_init): + don't set rank on encoders + +2004-05-11 Jeremy Simon + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps): + Use codec_data property instead of flag1 and flag2 for wma + +2004-05-11 Stephane Loeuillet + + * gst/cdxaparse/gstcdxaparse.c : + - Add mpegversion to CAPS to make it link + - Rank is as GST_RANK_SECONDARY instead of NONE + * gst/auparse/gstauparse.c : + - Document all audio encoding we can encounter from Solaris 9 + headers and libsndfile information. + - Increase max. rate from 48000 to 192000 (to match other elements) + - Don't try to play junk data between header and samples + +2004-05-11 Benjamin Otte + + * ext/libvisual/visual.c: (gst_visual_getcaps): + use the right caps depending on endianness (I hope) + * ext/ogg/gstoggmux.c: (gst_ogg_mux_plugin_init): + use GST_RANK_NONE for all non-decoding elements or spider gets + mighty confused + +2004-05-11 Ronald Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_comment): + Fix some odd cases and fix BE metadata parsing of unicode16 text. + +2004-05-11 Benjamin Otte + + * gst/switch/gstswitch.c: (gst_switch_release_pad), + (gst_switch_request_new_pad), (gst_switch_poll_sinkpads), + (gst_switch_loop), (gst_switch_get_type): + whoever that was: DO NOT IMPORT PRIVATE SYMBOLS THAT ARE NOT IN + HEADERS. Had to be said. + +2004-05-10 David Schleef + + * configure.ac: Add prototype Dirac support. + * ext/Makefile.am: + * ext/dirac/Makefile.am: + * ext/dirac/gstdirac.cc: + * ext/dirac/gstdiracdec.cc: + +2004-05-10 Ronald Bultje + + * gst/auparse/gstauparse.c: (gst_auparse_class_init), + (gst_auparse_init), (gst_auparse_chain), + (gst_auparse_change_state): + Hack around spider. Remove me some day please. + +2004-05-10 Ronald Bultje + + * gst/auparse/gstauparse.c: (gst_auparse_chain): + Fix for some uninitialized variables in previous patch, also + makes it work. Fixes #142286 while we're at it. + +2004-05-11 Stephane Loeuillet + + * gst/auparse/gstauparse.c: + fixes a-law, adds mu-law, linear pcm (8,16,24,32), ieee (32, 64) + only unsupported formats are ADPCM/CCITT G.72x + reviewed by Ronald + * gst-libs/gst/audio/audio.h: adds 24bit depth to PCM (x-raw-int) + +2004-05-10 Wim Taymans + + * ext/vorbis/Makefile.am: + * ext/vorbis/README: + * ext/vorbis/oggvorbisenc.c: (gst_oggvorbisenc_get_formats), + (oggvorbisenc_get_type), (vorbis_caps_factory), (raw_caps_factory), + (gst_oggvorbisenc_base_init), (gst_oggvorbisenc_class_init), + (gst_oggvorbisenc_sinkconnect), (gst_oggvorbisenc_convert_src), + (gst_oggvorbisenc_convert_sink), + (gst_oggvorbisenc_get_query_types), (gst_oggvorbisenc_src_query), + (gst_oggvorbisenc_init), (gst_oggvorbisenc_get_tag_value), + (gst_oggvorbisenc_metadata_set1), (gst_oggvorbisenc_set_metadata), + (get_constraints_string), (update_start_message), + (gst_oggvorbisenc_setup), (gst_oggvorbisenc_write_page), + (gst_oggvorbisenc_chain), (gst_oggvorbisenc_get_property), + (gst_oggvorbisenc_set_property), (gst_oggvorbisenc_change_state): + * ext/vorbis/oggvorbisenc.h: + * ext/vorbis/vorbis.c: (plugin_init): + * ext/vorbis/vorbisenc.c: (vorbis_caps_factory), + (raw_caps_factory), (gst_vorbisenc_class_init), + (gst_vorbisenc_init), (gst_vorbisenc_setup), + (gst_vorbisenc_push_packet), (gst_vorbisenc_chain), + (gst_vorbisenc_get_property), (gst_vorbisenc_set_property): + * ext/vorbis/vorbisenc.h: + Added a raw vorbis encoder to be used with the oggmuxer. + We still need the old encoder for some gnome applications, + read the README to find out how that works. + The raw encoder is called "rawvorbisenc" until 0.9. + +2004-05-10 Wim Taymans + + * ext/ogg/gstogg.c: (plugin_init): + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_plugin_init), + (gst_ogg_print): + * ext/ogg/gstoggmux.c: (gst_ogg_mux_get_type), + (gst_ogg_mux_base_init), (gst_ogg_mux_class_init), + (gst_ogg_mux_get_sink_event_masks), (gst_ogg_mux_init), + (gst_ogg_mux_sinkconnect), (gst_ogg_mux_pad_link), + (gst_ogg_mux_pad_unlink), (gst_ogg_mux_request_new_pad), + (gst_ogg_mux_handle_src_event), (gst_ogg_mux_next_buffer), + (gst_ogg_mux_push_page), (gst_ogg_mux_compare_pads), + (gst_ogg_mux_queue_pads), (gst_ogg_mux_loop), + (gst_ogg_mux_get_property), (gst_ogg_mux_set_property), + (gst_ogg_mux_change_state), (gst_ogg_mux_plugin_init): + Added an ogg muxer. + Small typo fixes in the demuxer. + +2004-05-10 Wim Taymans + + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (theora_enc_sink_link), (theora_push_packet), (theora_enc_chain), + (theora_enc_change_state), (theora_enc_set_property), + (theora_enc_get_property): + Mark the last packet with an EOS flag which is not really needed + in gstreamer. + Do some better video framerate initialisation. + Update the buffer timestamp. + +2004-05-10 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_change_state): + Return the result of the parent state change call + +2004-05-10 Stephane Loeuillet + + * gst/law/alaw.c : alawdec should be registered with type ALAWDEC, not ALAWENC + * gst/law/alaw-decode.c : put audio/x-alaw on pads, instead of audio/x-mulaw + * gst/law/alaw-encode.c : (idem) + * ext/a52dec/gsta52dec.c : mark audio/a52, audio/ac3 as deprecated in a comment + * gst/ac3parse/gstac3parse.c : audio/ac3 => audio/x-ac3 + * gst/realmedia/rmdemux.c : audio/a52 => audio/x-ac3 + +2004-05-09 Benjamin Otte + + * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop): + don't use a fixed buffer size when writing variable length data to + it. Fixes memory corruption and makes alsasrc work + +2004-05-09 Ronald Bultje + + * ext/gnomevfs/gstgnomevfssink.c: + (_gst_boolean_allow_overwrite_accumulator), + (gst_gnomevfssink_class_init), (gst_gnomevfssink_open_file): + Run glib's default signal handler (??) in RUN_CLEANUP rather than + RUN_LAST, and don't use that to set the accumulator value because + then it's always FALSE. + +2004-05-09 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_audio_caps), + (gst_riff_create_audio_template_caps): + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): + Fix for unaligned RIFF files (i.e. where all the chunks together + in a LIST chunk are not of the same size as the size given in + the LIST chunk header). Fixes several odd WAVE files. Also fix + ADPCM (block_align property) in audio, so that wavparse based + on this works now as it used to stand-alone. + +2004-05-09 Edward Hervey + + reviewed by Benjamin Otte + + * ext/a52dec/gsta52dec.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/dts/gstdtsdec.c: (gst_dtsdec_base_init): + * ext/faac/gstfaac.c: (gst_faac_base_init): + * ext/faad/gstfaad.c: (gst_faad_base_init): + * ext/ivorbis/vorbisfile.c: + * ext/lame/gstlame.c: + * ext/libfame/gstlibfame.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_base_init): + * ext/sidplay/gstsiddec.cc: + * ext/speex/gstspeexdec.c: + * ext/speex/gstspeexenc.c: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + correct klasses. Mostly s,Codec/(Audio|Video),\1/Codec, + (fixes #142193) + +2004-05-08 Ronald Bultje + + * ext/alsa/gstalsa.c: (device_list), + (gst_alsa_class_probe_devices): + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_open): + Fix alsa oddness in mixer after the combination of using mixer + in source/sink elements and using hw:x,y instead of just hw:x. + +2004-05-09 Benjamin Otte + + * gst/wavparse/gstwavparse.c: (gst_wavparse_destroy_sourcepad), + (gst_wavparse_create_sourcepad): + make PAUSED=>READY=>PAUSED=READY work by not destroying NULL + sourcepads + +2004-05-09 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + allow discont events before caps nego + +2004-05-08 Benjamin Otte + + * ext/vorbis/vorbisdec.c: (vorbis_dec_event): + don't leak events + +2004-05-08 Benjamin Otte + + * gst/level/gstlevel.c: (gst_level_link), (gst_level_chain), + (gst_level_change_state), (gst_level_init): + * gst/level/gstlevel.h: + figure out if we're initialized directly instead of keeping a + variable that's wrong in 90% of cases + don't initialize pads and then leak them and use a new unitialized + pad. (fixes #142084) + these were bugs so n00bish I didn't find them for an hour :/ + +2004-05-08 Iain + + * gst/wavparse/gstwavparse.[ch]: Rewrote to use RiffRead instead. + * gst-libs/gst/riff/riff-read.c (gst_riff_read_peek_head): Unstatic it + (gst_riff_read_element_data): Ditto, and added a got_bytes argument to + return the length that was read. + (gst_riff_read_strf_auds): Allow fmt tags as well. + +2004-05-07 David Schleef + + * ext/faad/gstfaad.c: (gst_faad_sinkconnect): HACK to correct + signed char assumption in faad.h. + +2004-05-07 Ronald Bultje + + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps): + Missing break, detected by Daniel Gazard . + +2004-05-07 Colin Walters + + * gst/volume/gstvolume.c (gst_volume_dispose): Unref dpman. + * ext/flac/gstflacdec.c (gst_flacdec_dispose): Add dispose + function. + * gst/audioscale/gstaudioscale.c (gst_audioscale_dispose): + Add dispose function. + +2004-05-08 Jan Schmidt + * ext/dv/gstdvdec.c: (gst_dvdec_video_link): + Fix caps nego and pad templates. RGB mode caps should + work now. + * ext/dvdnav/gst-dvd: + Move mpeg2dec inside the thread because otherwise the + queue rejects cap changes mid-stream + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type), + (gst_mpeg2dec_flush_decoder): + For mpeg2dec > 0.4.0, call the flush function instead of + manually extracting all in-flight frames. + * ext/raw1394/gstdv1394src.c: (gst_dv1394src_factory), + (gst_dv1394src_init), (gst_dv1394src_iso_receive): + Change mime type video/dv go video/x-dv to match the + rest of gst-plugins + +2004-05-07 Ronald Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_build_list): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_get_type), + (gst_alsa_sink_class_init): + * ext/alsa/gstalsasink.h: + * ext/alsa/gstalsasrc.c: (gst_alsa_src_get_type), + (gst_alsa_src_class_init): + * ext/alsa/gstalsasrc.h: + Make alsasink/src a subclass of alsamixer so that mixer stuff + shows up in gst-rec. Needs some finetuning. + +2004-05-05 Benjamin Otte + + * ext/lame/gstlame.c: (gst_lame_chain): + simplify + * ext/mad/gstmad.c: (gst_mad_handle_event): + fix event leak + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find): + be able to detect mp3 files < 4096 bytes + +2004-05-06 Wim Taymans + + * ext/theora/theoraenc.c: (gst_theora_enc_class_init), + (theora_enc_sink_link), (theora_push_packet), (theora_enc_chain), + (theora_enc_set_property), (theora_enc_get_property): + Also encode the first frame, cleanup some code. + +2004-05-06 Wim Taymans + + * ext/mpeg2enc/gstmpeg2enc.cc: + Forward events first before deciding that negotiation was + not performed. + +2004-05-06 Wim Taymans + + * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): + First process the events before deciding that negotiation + was not performed. + +2004-05-06 Wim Taymans + + * ext/theora/Makefile.am: + * ext/theora/theora.c: (plugin_init): + * ext/theora/theoradec.c: (theora_dec_change_state): + * ext/theora/theoraenc.c: (gst_theora_enc_base_init), + (gst_theora_enc_class_init), (gst_theora_enc_init), + (theora_enc_sink_link), (theora_enc_event), (theora_push_packet), + (theora_enc_chain), (theora_enc_change_state), + (theora_enc_set_property), (theora_enc_get_property): + Added a theora encoder, grouped the encoder and decoder into the + same plugin. + +2004-05-05 Thomas Vander Stichele + + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type), + (gst_jpegenc_chain): + fix DURATION on outgoing buffers + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_sink_event): + debug using time formats + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support), + (gst_xvimagesink_sink_link): + windows with width/height 0 generate X errors, so don't allow them + +2004-05-05 Wim Taymans + + * ext/mpeg2dec/gstmpeg2dec.c: (src_templ), + (gst_mpeg2dec_base_init), (gst_mpeg2dec_init), + (gst_mpeg2dec_negotiate_format): + * ext/mpeg2dec/gstmpeg2dec.h: + removed the static pad template so that we can add the + more accurate framerate value to the caps. + + +2004-05-04 Benjamin Otte + + * configure.ac: + check for kdemacros.h, too (should fix #141821) + * ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain): + don't crash if no header was sent, but nicely error out (fixes part + of #141554) + +2004-05-04 Wim Taymans + + * ext/mpeg2enc/gstmpeg2enc.cc: (gst_mpeg2enc_dispose): call the + parent dispose function to avoid segfault on destroy. + +2004-05-04 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (gst_ximagesink_sink_link), + (plugin_init): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_sink_link): + clean up debugging caps + also recreate xvimage when format has changed + +2004-05-04 Benjamin Otte + + * ext/libvisual/Makefile.am: + * ext/libvisual/visual.c: (gst_visual_class_init), + (gst_visual_init), (gst_visual_dispose), (gst_visual_getcaps), + (gst_visual_srclink), (gst_visual_chain), + (gst_visual_change_state), (plugin_init): + use a GstAdapter to correctly adapt buffer sizes - allows using a + framerate + +2004-05-03 Thomas Vander Stichele + + * sys/v4l/gstv4lelement.h: + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get_fps), (gst_v4lsrc_getcaps), + (gst_v4lsrc_buffer_free): + * sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame), + (gst_v4lsrc_sync_frame), (gst_v4lsrc_grab_frame), + (gst_v4lsrc_requeue_frame): + move some debugging categories around + query for fps index and set accordingly if found + +2004-05-03 Stephane Loeuillet + + * ext/lame/gstlame.c: + correct defaults that lame_init puts out of range + +2004-05-03 Thomas Vander Stichele + + * ext/divx/gstdivxenc.c: (gst_divxenc_get_type), + (gst_divxenc_class_init): + fix range since -1 is the default + * gst/mpeg1sys/gstmpeg1systemencode.c: + (gst_mpeg1_system_encode_get_type), (gst_system_encode_multiplex): + * gst/rtjpeg/gstrtjpegdec.c: (gst_rtjpegdec_get_type), + (gst_rtjpegdec_chain): + * gst/rtjpeg/gstrtjpegenc.c: (gst_rtjpegenc_get_type), + (gst_rtjpegenc_chain): + * sys/qcam/gstqcamsrc.c: (gst_autoexp_mode_get_type), + (gst_qcamsrc_get_type), (gst_qcamsrc_change_state): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_get_type): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get_type): + * sys/v4l/gstv4lsrc.c: + * sys/v4l/v4l_calls.c: (gst_v4l_open): + * sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_playback_init): + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_capture_init): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_init): + * sys/vcd/vcdsrc.c: (vcdsrc_get_type), (vcdsrc_get): + remove gst_info calls + +2004-05-03 Thomas Vander Stichele + + * Makefile.am: + * po/af.po: + * po/az.po: + * po/en_GB.po: + * po/nl.po: + * po/sr.po: + * po/sv.po: + Updated translations + +2004-05-03 Thomas Vander Stichele + + * gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int): + refactor/comment code + +2004-05-02 Ronald Bultje + + * gst/asfdemux/Makefile.am: + * gst/asfdemux/asfheaders.c: + * gst/asfdemux/asfheaders.h: + * gst/asfdemux/gstasf.c: (plugin_init): + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_get_type), + (gst_asf_demux_base_init), (gst_asf_demux_process_comment), + (gst_asf_demux_setup_pad): + * gst/asfdemux/gstasfdemux.h: + * gst/asfdemux/gstasfmux.c: + * gst/asfdemux/gstasfmux.h: + Add tagging support to demuxer, split out registration in its own + file instead of in demux (hacky), and prevent having some tables + in our memory multiple times (in asfheaders.h). + +2004-05-01 Ronald Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_metadata): + * gst/matroska/matroska-ids.h: + Basic tag reading support. + +2004-04-30 Ronald Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_audio_caps): + Really detect ac-3 audio. + * gst/typefind/gsttypefindfunctions.c: (matroska_type_find): + really detect matroska files (off-by-1). + +2004-04-30 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream), (qtdemux_parse), (qtdemux_type_get), + (qtdemux_dump_stsz), (qtdemux_dump_stco), (qtdemux_dump_co64), + (qtdemux_dump_unknown), (qtdemux_parse_tree), (qtdemux_parse_udta), + (qtdemux_tag_add), (get_size), (gst_qtdemux_handle_esds): More qtdemux + hackage -- parse a lot more atoms, extract a few tags. One might even + mistake this for tag support. Maybe it is. + * gst/qtdemux/qtdemux.h: + +2004-04-30 Colin Walters + + * ext/alsa/gstalsasink.c (gst_alsa_sink_mmap): Plug a memleak. + +2004-04-30 Thomas Vander Stichele + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_getcaps): + remove broken nego fix + +2004-04-30 Benjamin Otte + + * configure.ac: + * ext/Makefile.am: + * ext/libvisual/Makefile.am: + * ext/libvisual/visual.c: + add initial support for libvisual (http://libvisual.sourceforge.net) + libvisual is still quite alpha, so expect crashes in there :) + +2004-04-29 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), (qtdemux_parse), + (qtdemux_parse_trak), (get_size), (gst_qtdemux_handle_esds): Hacked + up qtdemux to make it spit out codec_data. Do _not_ look at this + code; you will no longer respect me. + +2004-04-29 Stephane Loeuillet + + * ext/alsa/gstalsa.c : (gst_alsa_class_probe_devices) + * ext/alsa/gstalsa.h : + change alsa pcm device discovery to find more than 1 device + per card. code review by Ronald. + +2004-04-29 David Schleef + + * sys/oss/gstosselement.c: (gst_osselement_rate_probe_check): + Add a check for a driver bug on FreeBSD. (bug #140565) + +2004-04-29 Thomas Vander Stichele + + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_get_type): + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type), + (gst_jpegenc_getcaps): + move format setting to inner loop + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_getcaps): + use GST_PAD_CAPS if available so that we use already negotiated + caps + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse_moov), (qtdemux_parse): + extra debugging + * sys/qcam/qcam-Linux.c: (qc_lock_wait), (qc_unlock): + * sys/qcam/qcam-os.c: (qc_lock_wait), (qc_unlock): + move hardcoded path to DEFINE + +2004-04-28 David Schleef + + * gst/speed/gstspeed.c: (speed_parse_caps): Fix caps parsing. + (bug #140064) + +2004-04-28 Ronald Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices): + Don't probe for playback device if we're a source element. Fixes + #139658. + +2004-04-29 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event), + (gst_id3_tag_chain): + rewrite buffer offset + +2004-04-28 Ronald Bultje + + * configure.ac: + * ext/Makefile.am: + * ext/dts/Makefile.am: + * ext/dts/gstdtsdec.c: (gst_dtsdec_get_type), + (gst_dtsdec_base_init), (gst_dtsdec_class_init), (gst_dtsdec_init), + (gst_dtsdec_channels), (gst_dtsdec_renegotiate), + (gst_dtsdec_handle_event), (gst_dtsdec_update_streaminfo), + (gst_dtsdec_loop), (gst_dtsdec_change_state), + (gst_dtsdec_set_property), (gst_dtsdec_get_property), + (plugin_init): + * ext/dts/gstdtsdec.h: + New DTS decoder. + * ext/faad/gstfaad.c: (gst_faad_sinkconnect), + (gst_faad_srcconnect): + Add ESDS atom handling (.m4a). + +2004-04-27 Ronald Bultje + + * ext/divx/gstdivxdec.c: (plugin_init): + Remove comment that makes no sense. + * ext/mad/gstid3tag.c: (gst_id3_tag_set_property): + Fix for obvious typo that resulted in warnings during gst-register. + * ext/xvid/gstxviddec.c: (gst_xviddec_src_link), + (gst_xviddec_sink_link): + Fix caps negotiation a bit better. + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + We call this 'codec_data', not 'esds'. + +2004-04-27 Benjamin Otte + + * gst/monoscope/gstmonoscope.c: + make sure we only provide 256x128 + * gst/monoscope/monoscope.c: (monoscope_init): + assert size of 256x128 + +2004-04-27 Thomas Vander Stichele + + * Makefile.am: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_fixate), + (gst_v4lsrc_getcaps), (gst_v4lsrc_buffer_free): + fixate to max width and height of device + +2004-04-27 Thomas Vander Stichele + + * Makefile.am: + * sys/v4l/gstv4l.c: + * sys/v4l/gstv4lsrc.c: + * sys/v4l/v4l_calls.c: + * sys/v4l/v4lsrc_calls.c: + fix for qc-usb driver which fakes having more than one buffer + by handing the same buffer twice, which confused GStreamer's/v4lsrc + buffer_free override + add debugging + +2004-04-27 Thomas Vander Stichele + + * Makefile.am: + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_class_init), (gst_videotestsrc_change_state), + (gst_videotestsrc_init), (gst_videotestsrc_get), + (gst_videotestsrc_set_property), (gst_videotestsrc_get_property): + * gst/videotestsrc/gstvideotestsrc.h: + add num-buffers property + + 2004-04-26 Benjamin Otte + + * ext/mad/gstid3tag.c: (plugin_init): + set id3mux rank to NONE so it doesn't confuse spider + require audio/mpeg,mpegversion=1 in id3mux + +2004-04-26 Benjamin Otte + + * configure.ac: + detect faad correctly as non-working if it's indeed non-working + +2004-04-26 Thomas Vander Stichele + + * Makefile.am: + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_get_type), + (gst_jpegenc_class_init), (gst_jpegenc_getcaps): + fix _getcaps so it only negotiates to its supported format + +2004-04-25 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int): + fix memleak + +2004-04-23 Benjamin Otte + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps): + audio/x-raw-int with height rules! not. Now it's depth. + +2004-04-22 Ronald Bultje + + * gst/wavparse/gstwavparse.c: (gst_wavparse_create_sourcepad), + (gst_wavparse_parse_fmt), (gst_wavparse_handle_sink_event), + (gst_wavparse_loop): + Missing variable initialization. Add handling of DVI ADPCM. Fix + mis-parsing of LIST chunks. This works around a bug where we mis- + parse non-aligning LIST chunks (so LIST chunks where the contents + don't align with the actual LIST size). The correct fix is to use + rifflib, I'm not going to fix wavparse - too much work. All this + fixes #104878. + +2004-04-22 Zaheer Abbas Merali + + reviewed by Benjamin Otte + + * ext/shout/gstshout.c: (gst_icecastsend_change_state): + fix shoutcast not working (fixes #140844) + +2004-04-22 Benjamin Otte + + * ext/hermes/gsthermescolorspace.c: + (gst_hermes_colorspace_caps_remove_format_info): + * gst/colorspace/gstcolorspace.c: + (gst_colorspace_caps_remove_format_info): + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_caps_remove_format_info): + s/gst_caps_simplify/gst_caps_do_simplify/ + +2004-04-22 Benjamin Otte + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + mpegversion is an int + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_base_init): + don't try to create pad templates with NULL caps, use any caps + instead. + +2004-04-20 David Schleef + + * ext/sdl/Makefile.am: Link against libgstinterfaces, not + libgstxoverlay. jmmv@menta.net (Julio M. Merino Vidal) + (bug #140384) + +2004-04-20 Daniel Gazard + + reviewed by David Schleef + + * ext/mad/gstid3tag.c: Add stdlib.h + * gst/rtp/gstrtpgsmenc.c: same + * gst/tags/gstid3tag.c: same + * gst/udp/gstudpsrc.c: (gst_udpsrc_get): Fix GST_DISABLE_LOADSAVE + * gst/tcp/gsttcpsink.c: (gst_tcpsink_sink_link): Adjust + GST_DISABLE_LOADSAVE use. + * gst/udp/gstudpsink.c: (gst_udpsink_sink_link): Likewise. + * gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get): Likewise. + * ext/gnomevfs/gstgnomevfssrc.c: Include (needed by + atol(3)). + * sys/oss/gstosselement.h: Include (needed for dev_t). + * gst/tags/gstvorbistag.c: Include (needed by + strtoul(3)). + * gst/rtp/gstrtpL16enc.c: Include (needed by random(3)). + * ext/mad/Makefile.am: (libgstmad_la_CFLAGS): Add $(MAD_CFLAGS) + $(ID3_CFLAGS). + * ext/libfame/Makefile.am: (libgstlibfame_la_CFLAGS): Add + $(LIBFAME_CFLAGS). + +2004-04-20 David Schleef + + * gst/realmedia/rmdemux.c: This was supposed to part of the + last checkin. Same idea. + +2004-04-20 Daniel Gazard + + reviewed by David Schleef + + * configure.ac: bump required gstreamer version to 0.8.1.1 + because of following changes [--ds] + + * gst-libs/gst/riff/riff-read.c: Include gst/gstutils.h. + (gst_riff_peek_head, gst_riff_peek_list, gst_riff_read_list) + (gst_riff_read_header): Use GST_READ_UINT* + macros to access possibly unaligned memory. + + * gst/typefind/gsttypefindfunctions.c: Include gst/gstutils.h. + (mp3_type_find): Use GST_READ_UINT* + macros to access possibly unaligned memory. + (mp3_type_find, mpeg1_parse_header, qt_type_find) + (speex_type_find): Likewise + + * gst/tags/gstvorbistag.c: (ADVANCE): Likewise + + * gst/qtdemux/qtdemux.c: Include stdlib.h (needed by realloc). + (QTDEMUX_GUINT32_GET, QTDEMUX_GUINT16_GET, QTDEMUX_FP32_GET) + (QTDEMUX_FP16_GET, QTDEMUX_FOURCC_GET) + (gst_qtdemux_loop_header, gst_qtdemux_loop_header) + (qtdemux_node_dump_foreach, qtdemux_tree_get_child_by_type) + (qtdemux_tree_get_sibling_by_type): Use GST_READ_UINT* + macros to access possibly unaligned memory. + + * gst/mpegstream/gstmpegpacketize.c: (parse_generic, parse_chunk): + Likewise. + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead) + (gst_mpeg_demux_parse_packet, gst_mpeg_demux_parse_pes): Likewise. + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + Likewise. + + * gst/mpeg2sub/gstmpeg2subt.c: (GST_BUFFER_DATA) + (gst_mpeg2subt_chain_subtitle): Likewise. + + * gst/mpeg1videoparse/gstmp1videoparse.c: (mp1videoparse_parse_seq) + (gst_mp1videoparse_time_code, gst_mp1videoparse_real_chain): + Likewise. + + * gst/mpeg1sys/buffer.c: (mpeg1mux_buffer_update_audio_info): + Likewise. + + * gst/cdxaparse/gstcdxaparse.c: (gst_bytestream_peek_bytes): + Likewise. + + * gst/asfdemux/gstasfdemux.c: (_read_var_length, _read_uint): + Likewise. + +2004-04-20 Thomas Vander Stichele + + * configure.ac: + update required version of GStreamer because of GST_TIME_FORMAT + +2004-04-20 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_init): + remove leftover g_print + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + don't try setting only a subset of the caps. We don't want to kill + autoplugging on purpose + +2004-04-20 Thomas Vander Stichele + + * sys/ximage/ximagesink.c: (plugin_init): + * sys/xvimage/xvimagesink.c: (plugin_init): + add debugging categories + +2004-04-20 Thomas Vander Stichele + + * po/en_GB.po: + * po/LINGUAS: + Adding en_GB translation (Gareth Owen) + +2004-04-20 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), + (qtdemux_parse), (qtdemux_type_get), (qtdemux_dump_mvhd), + (qtdemux_dump_tkhd), (qtdemux_dump_stsd), (qtdemux_dump_unknown), + (qtdemux_parse_trak), (qtdemux_video_caps), (qtdemux_audio_caps): + A number of new features and hacks to extract the esds atom and + put it into the caps. (bug #137724) + +2004-04-19 David Schleef + + * gconf/Makefile.am: Fix for non-GNU make + * gst-libs/gst/Makefile.am: Change directory order to handle + GstPlay linking with gstinterfaces + * gst-libs/gst/audio/make_filter: make use of tr portable + * gst-libs/gst/play/Makefile.am: Add intended \ + * gst-libs/gst/xwindowlistener/xwindowlistener.c: + (gst_xwin_set_clips): Switch to ISO variadic macro. Use a + function prototype instead of void *. + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: Switch to ISO variadic + macro. + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_chain): wrap NULL in GST_ELEMENT_ERROR call + * gst/videofilter/make_filter: make use of tr portable + * pkgconfig/Makefile.am: Remove GNU extension in Makefile target + +2004-04-19 Thomas Vander Stichele + + * po/LINGUAS: + * po/uk.po: + Added Ukrainian translation (Maxim V. Dziumanenko) + +2004-04-18 Ronald Bultje + + * ext/gsm/gstgsmdec.c: (gst_gsmdec_init), (gst_gsmdec_getcaps), + (gst_gsmdec_link), (gst_gsmdec_chain): + Fix capsnego, simplify chain function slightly. + * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): + Add GSM. + +2004-04-18 Ronald Bultje + + * gst/wavparse/gstwavparse.c: (gst_wavparse_init), + (gst_wavparse_destroy_sourcepad), (gst_wavparse_create_sourcepad), + (gst_wavparse_parse_fmt), (gst_wavparse_change_state): + Hack to make wavparse work with spider (always -> sometimes pad). + Fixes #135862 && #140411. + +2004-04-18 Benjamin Otte + + * sys/oss/gstosselement.c: (gst_osselement_sync_parms), + (gst_osselement_rate_probe_check), + (gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate): + get rid of \n in debug output + +2004-04-17 Iain + + * gst/wavparse/gstwavparse.c (gst_wavparse_loop): Allow all events, + not just EOS. + +2004-04-17 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_get_type), + (gst_id3_tag_class_init), (gst_id3_tag_get_caps), + (gst_id3_tag_add_src_pad), (gst_id3_tag_init), + (gst_id3_tag_set_property), (gst_id3_tag_do_caps_nego), + (gst_id3_tag_src_link), (gst_id3_tag_chain), + (gst_id3_tag_change_state), (plugin_init): + deprecate id3tag element and replace with id3demux/id3mux. + great side effect: this ugly file is now even uglier, yay! + * ext/mad/gstmad.h: + remove non-available function + update for new get_type + +2004-04-17 Benjamin Otte + + * configure.ac: + require mpeg2dec >= 0.4.0 + +2004-04-17 Benjamin Otte + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support), + (gst_xvimagesink_xcontext_get), (gst_xvimagesink_change_state), + (gst_xvimagesink_set_xwindow_id): + call GST_ELEMENT_ERROR whenever get_xcontext fails. Includes + assorted cleanup fixes. + +2004-04-16 David Schleef + + * sys/ximage/ximagesink.h: Compile fix for FreeBSD. (bug #140268) + * sys/xvimage/xvimagesink.h: same + +2004-04-16 Thomas Vander Stichele + + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file): + Fix GST_ELEMENT_ERROR with (NULL) + +2004-04-15 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data): + Add div[3456] as fourccs for DivX 3 (fixes #140137). + +2004-04-15 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: + (gst_riff_create_video_caps_with_data), + (gst_riff_create_video_caps), (gst_riff_create_audio_caps), + (gst_riff_create_video_template_caps), + (gst_riff_create_audio_template_caps): + * gst-libs/gst/riff/riff-media.h: + * gst-libs/gst/riff/riff-read.c: + (gst_riff_read_strf_vids_with_data), (gst_riff_read_strf_vids): + * gst-libs/gst/riff/riff-read.h: + * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): + Add MS RLE support. I added some functions to read out strf chunks + into strf chunks and the data behind it. This is usually color + palettes (as in RLE, but also in 8-bit RGB). Also use those during + caps creation. Lastly, add ADPCM (similar to wavparse - which + should eventually be rifflib based). + * gst/matroska/matroska-demux.c: (gst_matroska_demux_class_init), + (gst_matroska_demux_init), (gst_matroska_demux_reset): + * gst/matroska/matroska-demux.h: + Remove placeholders for some prehistoric tagging system. Didn't add + support for any tag system really anyway. + * gst/qtdemux/qtdemux.c: + Add support for audio/x-m4a (MPEG-4) through spider. + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt), + (gst_wavparse_loop): + ADPCM support (#135862). Increase max. buffer size because we + cannot split buffers for ADPCM (screws references) and I've seen + files with 2048 byte chunks. 4096 seems safe for now. + +2004-04-15 Thomas Vander Stichele + + * configure.ac: bump nano to 1 + +=== release 0.8.1 === + +2004-04-15 Thomas Vander Stichele + + * configure.ac: releasing 0.8.1, "Comforting Sounds" + +2004-04-14 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps): + Fix typo in divxversion (3 instead of 4 for "DIVX" fourcc). + Fixes #140058 + +2004-04-14 Thomas Vander Stichele + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_plugin_init): + lower rank of dvddemux so that it's not used for mpeg playback. + +2004-04-14 Benjamin Otte + + * configure.ac: + save libs correctly when checking mad + +2004-04-14 Thomas Vander Stichele + + * ext/mad/gstid3tag.c: (plugin_init): + lower rank of id3tag as proposed by Benjamin. Fixes #139926. + +2004-04-13 David Schleef + + * common/m4/gst-feature.m4: Call -config scripts with + --plugin-libs if it is supported. + * gst/avi/gstavimux.c: (gst_avimux_vidsinkconnect): sequences of + JPEG images are image/jpeg. + * gst/debug/Makefile.am: + * gst/debug/negotiation.c: (gst_negotiation_class_init), + (gst_negotiation_getcaps), (gst_negotiation_pad_link), + (gst_negotiation_update_caps), (gst_negotiation_get_property), + (gst_negotiation_plugin_init): Add a property that acts like + filter caps. + * testsuite/gst-lint: Move license checking to be a standard + test. + +2004-04-13 David Schleef + + * gst/avi/gstavidemux.c: (gst_avi_demux_reset): Fix memleak. + patch from Sebastien Cote (bug #139958) + +2004-04-13 Thomas Vander Stichele + + * examples/gstplay/Makefile.am: + * examples/gstplay/player.c: (main): + make the commandline player example use gconf settings + +2004-04-13 Thomas Vander Stichele + + * ext/libcaca/gstcacasink.c: (gst_cacasink_class_init), + (gst_cacasink_sinkconnect), (gst_cacasink_init), + (gst_cacasink_chain), (gst_cacasink_open), (gst_cacasink_close): + init/end library during state transition, not object + creation/disposal. get rid of custom dispose handler. + + +2004-04-12 Christian Schaller + + * sys/oss/gstosselement.c: s/lstat/stat/ from freeBSD, since it can + be a symlink + +2004-04-11 Ronald Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_data): + Handle JUNK chunks inside data section. Prevents warnings. + +2004-04-11 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), + (gst_riff_create_video_template_caps): + Add MS video v1. + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_index), + (gst_avi_demux_stream_data): + Add support for "rec-list" chunks. + +2004-04-11 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_audio_caps): + Fix another codecname mismatch. + +2004-04-11 Ronald Bultje + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps): + Fix divx caps mismatch and move from video/x-jpeg to image/jpeg + so that MJPEG plays back. + +2004-04-10 Ronald Bultje + + * gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init), + (gst_mp1videoparse_real_chain), (gst_mp1videoparse_change_state): + * gst/mpeg1videoparse/gstmp1videoparse.h: + Fix for some slight mis-cuts in buffer parsing, and for some + potential overflows or faults-causers. Adds disconts. Also fixes + #139105 while we're at it. + +2004-04-10 Ronald Bultje + + * configure.ac: + * sys/v4l2/gstv4l2element.h: + Workaround for missing struct v4l2_buffer declaration in Suse 9 + and Mandrake 10 linux/videodev2.h header file (#135919). + +2004-04-10 Ronald Bultje + + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file): + Bail out if no filename was given. + +2004-04-10 Ronald Bultje + + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_v4l2fourcc_to_caps), + (gst_v4l2_fourcc_from_structure): + Add Y41B/Y42B YUV formats (see #125732), fix Y41P (was typo'ed to + Y41B somewhere). + +2004-04-09 Benjamin Otte + + * ext/gnomevfs/gstgnomevfssink.c: + (_gst_boolean_allow_overwrite_accumulator), + (gst_gnomevfssink_class_init): + fix erase signal - if any handler returns false the file will not be + overwritten. If no handler is connected, the file will not be + overwritten either. + renamed signal to "allow-overwrite" + * ext/mad/gstid3tag.c: (tag_list_to_id3_tag_foreach): + free string when adding it to ID3 failed + * ext/vorbis/vorbisdec.c: (vorbis_dec_event): + unref event when done + * gst/audioconvert/gstaudioconvert.c: (_fixate_caps_to_int): + free caps + * gst/typefind/gsttypefindfunctions.c: + (mpeg_video_stream_type_find): + fix invalid read + +2004-04-08 David Schleef + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_register): Change rank to PRIMARY. + +2004-04-08 David Schleef + + * gst/colorspace/gstcolorspace.c: Don't advertise a conversion + we don't support (bug #139532) + +2004-04-07 Thomas Vander Stichele + + * ext/mad/gstmad.c: (gst_mad_handle_event), + (gst_mad_check_caps_reset), (gst_mad_chain), + (gst_mad_change_state): + only set explicit caps if they haven't been set before for + this stream. MPEG-audio sample rate/channels aren't allowed + to change in-stream. + Fixes #139382 + +2004-04-06 Ronald Bultje + + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_base_init), + (_gst_boolean_did_something_accumulator), + (gst_gnomevfssink_class_init), (gst_gnomevfssink_dispose), + (gst_gnomevfssink_init), (gst_gnomevfssink_set_property), + (gst_gnomevfssink_get_property), (gst_gnomevfssink_open_file), + (gst_gnomevfssink_close_file), (gst_gnomevfssink_chain), + (gst_gnomevfssink_change_state): + Fix erase signal. Don't erase by default. Remove handoff signal. + Remove erase property. Don't segfault. General cleanup. + +2004-04-07 Benjamin Otte + + * gst-libs/gst/gconf/test-gconf.c: (main): + add missing gst_init + +2004-04-07 Benjamin Otte + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose): + free the mutexes, too + +2004-04-07 Benjamin Otte + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_dispose): + actually free the URI string + * ext/mad/gstid3tag.c: (gst_id3_tag_src_event): + compute offset correctly when passing discont events + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event): + don't leak discont events + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps): + add some missing breaks so caps aren't copied randomly + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_get_video_stream): + if we realloc memory, we better use it + +2004-04-06 Benjamin Otte + + * ext/mad/gstmad.c: (normal_seek): + fix GST_FORMAT_TIME usage + +2004-04-05 David Schleef + + * ext/kio/kiosrc.cpp: Undefine KDE_DEPRECATED so we can use + a deprecated function (hack!) + +2004-04-05 Benjamin Otte + + * ext/esd/esdmon.c: (gst_esdmon_get): + fix nonterminated vararg and memleak + +2004-04-05 Benjamin Otte + + * ext/ladspa/gstladspa.c: (gst_ladspa_class_init), + (gst_ladspa_init), (gst_ladspa_force_src_caps), + (gst_ladspa_set_property), (gst_ladspa_get_property), + (gst_ladspa_instantiate), (gst_ladspa_activate), + (gst_ladspa_deactivate), (gst_ladspa_loop), (gst_ladspa_chain): + clean up debugging + +2004-04-05 Stefan Kost + + reviewed by Benjamin Otte + + * ext/ladspa/gstladspa.c: (gst_ladspa_class_init): + check for broken LADSPA parameters (fixes #138635) + +2004-04-05 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps): + advertise buffer-frames correctly on sinkpads + +2004-04-05 Thomas Vander Stichele + + * ext/mad/gstmad.c: (gst_mad_get_type), (gst_mad_layer_get_type), + (gst_mad_mode_get_type), (gst_mad_emphasis_get_type), + (gst_mad_get_event_masks), (gst_mad_get_query_types), (index_seek), + (normal_seek), (gst_mad_src_event), (gst_mad_handle_event), + (gst_mad_check_caps_reset), (gst_mad_chain): + add more debugging, only reset caps when we're not in error state + +2004-04-05 Thomas Vander Stichele + + * ext/mad/gstmad.c: add debugging category, comment + cleanups + +2004-04-05 Julio M. Merino Vidal + + reviewed by Benjamin Otte + + * configure.ac: + fix == in test(1) operator + +2004-04-05 Julio M. Merino Vidal + + reviewed by Benjamin Otte + + * configure.ac: + fix --export-symblos-regex to a working regex. + +2004-04-04 Benjamin Otte + + * sys/oss/.cvsignore: + add for oss_probe + +2004-04-03 Tim-Phillip Müller + + reviewed by Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event): + add missing 'new_media' argument (fixes #138168) + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_handle_seek_event): + add vararg terminator (fixes #138169) + +2004-04-02 David Schleef + + * ext/gdk_pixbuf/Makefile.am: Make sure gstgdkanimation.h is + disted (bug #138914) + +2004-04-01 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_change_state), + (gst_alsa_close_audio): + handle case better where a soundcard can't pause + * ext/ogg/gstoggdemux.c: + don't crash when we get events but don't have pads yet + +2004-04-01 Thomas Vander Stichele + + * sys/oss/gstosselement.c: (gst_osselement_probe_caps): + throw an error if we couldn't probe any caps. + +2004-04-01 Jan Schmidt + + * ext/dvdnav/gst-dvd: + Add a really simple sample DVD player + +2004-04-01 Jan Schmidt + + * ext/a52dec/gsta52dec.c: (gst_a52dec_get_type), (gst_a52dec_init), + (gst_a52dec_push), (gst_a52dec_handle_event), + (gst_a52dec_update_streaminfo), (gst_a52dec_loop), + (gst_a52dec_change_state): + * ext/a52dec/gsta52dec.h: + Use a debug category, Output timestamps correctly + Emit tag info, Handle events, tell liba52dec about cpu + capabilities so it can use MMX etc. + * ext/dv/gstdvdec.c: (gst_dvdec_loop), (gst_dvdec_change_state): + Fix a crasher accessing invalid memory + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_init), + (dvdnavsrc_update_highlight), (dvdnavsrc_loop), + (dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event), + (dvdnavsrc_event), (dvdnavsrc_get_formats), (dvdnavsrc_convert), + (dvdnavsrc_query): + Some support for byte-format seeking. + Small fixes for still frames and menu button overlays + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_get_type), + (gst_mpeg2dec_alloc_buffer): + Use a debug category. Adjust the report level of several items to + LOG. Call mpeg2_custom_fbuf to mark our buffers as 'custom buffers' + so it doesn't lose the GstBuffer pointer + * gst/debug/Makefile.am: + * gst/debug/gstdebug.c: (plugin_init): + * gst/debug/gstnavseek.c: (gst_navseek_get_type), + (gst_navseek_base_init), (gst_navseek_class_init), + (gst_navseek_init), (gst_navseek_seek), + (gst_navseek_handle_src_event), (gst_navseek_set_property), + (gst_navseek_get_property), (gst_navseek_chain), + (gst_navseek_plugin_init): + * gst/debug/gstnavseek.h: + Add the navseek debug element for seeking back and forth in a + video stream using arrow keys. + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_get_type), + (gst_mpeg2subt_base_init), (gst_mpeg2subt_class_init), + (gst_mpeg2subt_init), (gst_mpeg2subt_finalize), + (gst_mpeg2subt_getcaps_video), (gst_mpeg2subt_link_video), + (gst_mpeg2subt_handle_video), (gst_mpeg2subt_src_event), + (gst_mpeg2subt_parse_header), (gst_get_nibble), + (gst_setup_palette), (gst_get_rle_code), (gst_draw_rle_line), + (gst_merge_uv_data), (gst_mpeg2subt_merge_title), + (gst_update_still_frame), (gst_mpeg2subt_handle_subtitle), + (gst_mpeg2subt_handle_dvd_event), (gst_mpeg2subt_loop): + * gst/mpeg2sub/gstmpeg2subt.h: + Pretty much a complete rewrite. Now a loopbased element. May still + require work to properly synchronise subtitle buffers. + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private), + (gst_dvd_demux_send_subbuffer): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_send_subbuffer): + Don't attempt to create subbuffers of size 0 + Reduce a couple of error outputs to warnings. + * gst/y4m/gsty4mencode.c: (gst_y4mencode_sinkconnect), + (gst_y4mencode_chain): + Output the y4m frame header correctly. + +2004-04-01 Thomas Vander Stichele + + * gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop): + throw errors instead of allowing SIGFPE + +2004-04-01 Thomas Vander Stichele + + * gst-libs/gst/gconf/gconf.c: (gst_gconf_get_string), + (gst_gconf_render_bin_from_key): + leak plugging and style fixing + +2004-03-31 David Schleef + + * gst/audioscale/gstaudioscale.c: (gst_audioscale_expand_value), + (gst_audioscale_getcaps): Fix getcaps to expand and union lists. + (bug #138225) + * gst/debug/Makefile.am: + * gst/debug/breakmydata.c: (gst_break_my_data_plugin_init): + * gst/debug/gstdebug.c: (plugin_init): Merge elements into one + plugin. + * gst/debug/negotiation.c: (gst_gst_negotiation_get_type), + (gst_negotiation_base_init), (gst_negotiation_class_init), + (gst_negotiation_init), (gst_negotiation_getcaps), + (gst_negotiation_pad_link), (gst_negotiation_chain), + (gst_negotiation_set_property), (gst_negotiation_get_property), + (gst_negotiation_plugin_init): New element to talk about random + negotiation things happening in a pipeline. + +2004-03-31 Thomas Vander Stichele + + * gst/adder/gstadder.c: (gst_adder_get_type), (gst_adder_loop): + fix integer addition with help of Stefan Kost + +2004-03-31 Thomas Vander Stichele + + * po/nl.po: updated Dutch translation (Elros Cyriatan) + +2004-03-30 David Schleef + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_alloc_buffer), + (gst_mpeg2dec_negotiate_format): Handle Y42B-format MPEG + video, patch from Matthew.Spencer@eu.sony.com (Matthew Spencer) + (bug #137504) + * ext/mpeg2dec/gstmpeg2dec.h: + +2004-03-30 David Schleef + + * ext/gdk_pixbuf/Makefile.am: Remove spurious rules. (bug #136527) + +2004-03-30 David Schleef + + * tools/gst-launch-ext-m.m: Applied patch from gnome@flyn.org (W. + Michael Petullo) to handle .mov + +2004-03-30 Benjamin Otte + + * sys/oss/gstosselement.c: (gst_osselement_probe_caps), + (gst_osselement_rate_check_rate): + probe caps correctly for sound cards that only support one format + +2004-03-30 Benjamin Otte + + * ext/kio/kiosrc.cpp: (process_events): + update handling event processing if inside KDE - untested + +2004-03-29 David Schleef + + * ext/hermes/gsthermescolorspace.c: (plugin_init): decrease rank + by 2 to not interfere with other colorspaces. + * ext/pango/gsttextoverlay.c: (plugin_init): change rank to NONE + * gst/colorspace/gstcolorspace.c: (plugin_init): decrease rank by + one to not interfere with ffmpeg_colorspace. + +2004-03-29 David Schleef + + * ext/alsa/gstalsa.c: (gst_alsa_fixate): Don't fixate fields that + aren't in the caps. + * gst/sine/gstsinesrc.c: change rate caps to [1,MAX] + * gst/videocrop/gstvideocrop.c: (plugin_init): Change rank to NONE. + +2004-03-30 Benjamin Otte + + * gst-libs/gst/riff/riff-media.c: + fail on error, don't try to set stuff on NULL caps + +2004-03-30 Benjamin Otte + + * configure.ac: + * ext/Makefile.am: + * ext/kio/Makefile.am: + * ext/kio/kioreceiver.cpp: + * ext/kio/kioreceiver.h: + * ext/kio/kiosrc.cpp: + * ext/kio/kiosrc.h: + add experimental kiosrc plugin + * ext/alsa/gstalsaplugin.c: (plugin_init): + initialize debugging category only when we're sure registering the + plugins worked. + +2004-03-29 Thomas Vander Stichele + + * examples/gstplay/player.c: (main): + * gst-libs/gst/play/play.c: (gst_play_class_init), + (gst_play_set_location), (gst_play_set_data_src), + (gst_play_set_video_sink), (gst_play_set_audio_sink), + (gst_play_set_visualization), (gst_play_connect_visualization): + check return values of element_set_state and return FALSE where + failed + +2004-03-29 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event): + try harder to check if an event is really a discont + +2004-03-29 Thomas Vander Stichele + + * po/LINGUAS: adding Azerbaijani (Mətin Əmirov) + * po/az.po: + +2004-03-28 Benjamin Otte + + * gst/mpegstream/gstdvddemux.c: (gst_dvd_demux_process_private): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead), + (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes): + get rid of non-standard "..." ranges in case statements. + +2004-03-27 Martin Soto + + * gst/mpegstream/gstmpegdemux.c: + * gst/mpegstream/gstmpegdemux.h: Complete overhaul. All DVD + specific functionality split to the new dvddemux element. + * gst/mpegstream/gstdvddemux.c: + * gst/mpegstream/gstdvddemux.h: New demultiplexer for DVD (VOB) + streams, derived from mpegdemux. + * gst/mpegstream/gstmpegparse.c: Discontinuity handling cleaned + up. SCR based timestamp rewriting can be turned off (will probably + completely disappear soon). + * ext/dvdnav/dvdnavsrc.c: Changes resulting from a few months + hacking. General cleanup. All printf statements replaced by + debugging messages. Almost complete libdvdnav support. + (dvdnavsrc_class_init): Got rid of unnecessary signals (replaced + by events. New properties for audio and subpicture languages. + (dvdnavsrc_update_highlight): Now uses events. + (dvdnavsrc_user_op): Cleaned up. + (dvdnavsrc_get): Renamed to dvdnavsrc_loop (element is now loop + based). Lots of cleanup, and propper support for most libdvdnav + events. + (dvdnavsrc_make_dvd_event): New function. + (dvdnavsrc_make_dvd_nav_packet_event): New function. + (dvdnavsrc_make_clut_change_event): New function. + +2004-03-26 Benjamin Otte + + * gst/typefind/gsttypefindfunctions.c: (theora_type_find): + fix bug where typefinding would claim it's theora whenever less then + 7 bytes of data were available + +2004-03-25 Ronald Bultje + + * gst/law/alaw-decode.c: (alawdec_getcaps), (alawdec_link), + (gst_alawdec_base_init), (gst_alawdec_class_init), + (gst_alawdec_init), (gst_alawdec_chain): + * gst/law/alaw-encode.c: (alawenc_getcaps), (alawenc_link), + (gst_alawenc_base_init), (gst_alawenc_class_init), + (gst_alawenc_init), (gst_alawenc_chain): + * gst/law/mulaw-decode.c: (mulawdec_getcaps), (mulawdec_link), + (gst_mulawdec_base_init), (gst_mulawdec_class_init), + (gst_mulawdec_init), (gst_mulawdec_chain): + * gst/law/mulaw-encode.c: (mulawenc_getcaps), (mulawenc_link), + (gst_mulawenc_base_init), (gst_mulawenc_class_init), + (gst_mulawenc_init), (gst_mulawenc_chain): + Fix capsnego in all four, remove the unused property functions and + simplify the chain functions slightly. I guess we could use macros + or something similar for those, since the code is so similar, but + I'm currently too lazy... + +2004-03-24 David Schleef + + * sys/oss/gstosselement.c: (gst_osselement_sync_parms), + (gst_osselement_close_audio), (gst_osselement_probe_caps), + (gst_osselement_get_format_structure), + (gst_osselement_rate_probe_check), (gst_osselement_rate_add_range), + (gst_osselement_rate_check_rate), (gst_osselement_rate_add_rate), + (gst_osselement_rate_int_compare): Add code to handle rate probing + (bug #120883) + * sys/oss/gstosselement.h: same + * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_getcaps): + Use rate probing provided by osselement. + * sys/oss/gstosssrc.c: (gst_osssrc_init), (gst_osssrc_getcaps): same + +2004-03-24 Ronald Bultje + + * ext/xvid/gstxvidenc.c: (gst_xvidenc_set_property), + (gst_xvidenc_get_property): + ulong/int mess-up. + +2004-03-24 David Schleef + + * ext/speex/gstspeexdec.c: (gst_speexdec_base_init), + (gst_speexdec_init): + * ext/speex/gstspeexenc.c: (gst_speexenc_base_init), + (gst_speexenc_init): Create the pad template correctly (from + the static pad template, not a NULL pointer.) + +2004-03-25 Benjamin Otte + + * gst/debug/Makefile.am: + * gst/debug/breakmydata.c: + add element that quasi-randomly changes bytes in the stream. + Intended use is robustness checking of demuxers and decoders in + media tests. + +2004-03-24 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_open_audio), + (gst_alsa_probe_hw_params): + * ext/alsa/gstalsa.h: + debugging output fixes + +2004-03-24 Benjamin Otte + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_set_property): + don't g_return_if_fail if element is PLAYING, fail silently as every + other element. + * gst/effectv/gstquark.c: (gst_quarktv_chain): + only fix needed for cast lvalue issues in gst-plugins + * gst/volenv/gstvolenv.c: (gst_volenv_init): + add proxy_getcaps + +2004-03-24 Benjamin Otte + + * gst/level/gstlevel.c: (gst_level_init): + add proxying getcaps function, so level doesn't advertise impossible + caps + +2004-03-24 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), + (gst_qtdemux_loop_header), (qtdemux_parse_moov), (qtdemux_parse), + (qtdemux_node_dump_foreach), (qtdemux_dump_mvhd), + (qtdemux_dump_tkhd), (qtdemux_dump_elst), (qtdemux_dump_mdhd), + (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), (qtdemux_dump_dref), + (qtdemux_dump_stsd), (qtdemux_dump_stts), (qtdemux_dump_stss), + (qtdemux_dump_stsc), (qtdemux_dump_stsz), (qtdemux_dump_stco), + (qtdemux_dump_co64), (qtdemux_dump_dcom), (qtdemux_dump_cmvd), + (qtdemux_parse_tree), (qtdemux_parse_trak): Fix debugging + messages. Divide the chunk size by the compression ratio + (needed for MACE audio) + +2004-03-23 Ronald Bultje + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + Fix buffer overflow read error. + +2004-03-23 Ronald Bultje + + * ext/alsa/gstalsa.h: + Remove unused entry. + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps): + Add cinepak. + * gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps), + (gst_videodrop_link), (gst_videodrop_chain): + Fix, sort of. Was horribly broken with new capsnego. Bah... + +2004-03-23 Jeremy Simon + + * gst/typefind/gsttypefindfunctions.c: (ape_type_find), + (plugin_init): + Add a monkeysaudio typefind function + +2004-03-23 Johan Dahlin + + * gst-libs/gst/play/play.c (gst_play_audio_fixate) + (gst_play_video_fixate): Check so the structure has the field + before trying to fixate them, this makes it possible to have + fakesinks for video and audio output without printing errors on + the output console. + +2004-03-22 David Schleef + + * sys/oss/Makefile.am: + * sys/oss/oss_probe.c: (main), (probe_check), (add_range), + (check_rate), (add_rate): Rate probing test app. + +2004-03-21 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link), + (_fixate_caps_to_int), (gst_audio_convert_fixate): + add a fixation function that pretty much does the right thing (fixes + #137556) + +2004-03-20 David I. Lehn + + * configure.ac: GST_PACKAGE default: s/GStreamer/GStreamer Plugins/ + +2004-03-20 Tim-Phillip Müller + + reviewed by: Benjamin Otte + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + terminate gst_event_new_discontinuous correctly (fixes parts of + #137711) + +2004-03-19 David Schleef + + * gst-libs/gst/Makefile.am: Enable xoverlay unconditionally, + since it doesn't depend on X, and it's part of our ABI. + +2004-03-19 Iain + + * gst/interleave/deinterleave.c (deinterleave_sink_link): Use the + is_int in the structure, not the local variable. + +2004-03-19 David Schleef + + * ext/librfb/gstrfbsrc.c: (gst_rfbsrc_change_state), + (gst_rfbsrc_init), (gst_rfbsrc_getcaps), (gst_rfbsrc_fixate), + (gst_rfbsrc_link), (gst_rfbsrc_paint_rect), (gst_rfbsrc_get): + Improvements in caps negotiation. + +2004-03-18 Thomas Vander Stichele + + * po/LINGUAS: + * po/af.po: + adding Afrikaans (Petri Jooste) + +2004-03-18 Thomas Vander Stichele + + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_chain): + throw error instead of g_critical (#137588) + +2004-03-18 Thomas Vander Stichele + + * Makefile.am: + * configure.ac: + dist common and m4 correctly + * po/sv.po: + +2004-03-17 David Schleef + + * pkgconfig/gstreamer-media-info.pc.in: Add Version. + (bug #137348) + +2004-03-17 Thomas Vander Stichele + + * po/LINGUAS: + * po/sv.po: + adding Swedish translation (Christian Rose) + +2004-03-17 Thomas Vander Stichele + + * Makefile.am: use release.mak + +2004-03-16 Thomas Vander Stichele + + * common/ChangeLog: + * common/gst-autogen.sh: + add some explanation about the version detection + * configure.ac: + fix X check + +2004-03-16 Thomas Vander Stichele + + * configure.ac: bump nano to 1 + +=== release 0.8.0 === + +2004-03-16 Thomas Vander Stichele + + * configure.ac: release 0.8.0, "Pharmaceutical Itch" + +2004-03-16 Thomas Vander Stichele + + * configure.ac: + update libtool version + * gst-libs/gst/media-info/Makefile.am: + actually use libtool version + +2004-03-15 Thomas Vander Stichele + + * configure.ac: fix speex detection to work with 1.0 but not 1.1 + +2004-03-15 Thomas Vander Stichele + + * configure.ac: + * gst-plugins.spec.in: + * pkgconfig/Makefile.am: + * pkgconfig/gstreamer-gconf-uninstalled.pc.in: + * pkgconfig/gstreamer-interfaces-uninstalled.pc.in: + * pkgconfig/gstreamer-libs-uninstalled.pc.in: + * pkgconfig/gstreamer-libs.pc.in: + * pkgconfig/gstreamer-media-info-uninstalled.pc.in: + * pkgconfig/gstreamer-play-uninstalled.pc.in: + * pkgconfig/gstreamer-plugins-uninstalled.pc.in: + * pkgconfig/gstreamer-plugins.pc.in: + remove @VERSION@ from some of the pc files since core and plugins + are decoupled. + created gstreamer-plugins.pc as it's a better name, but keeping + -libs around for now to get fixes upstream done first. + +2004-03-15 Julien MOUTTE + + * gst-libs/gst/play/play.c: (gst_play_get_framerate), + (gst_play_get_sink_element): First draft of gst_play_get_framerate. + * gst-libs/gst/play/play.h: + +2004-03-15 Thomas Vander Stichele + + * *.c, *.cc: don't mix tabs and spaces + +2004-03-15 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup): + use the new ffmpegcolorspace + * gst-plugins.spec.in: + package new colorspace and media-info + * configure.ac: + * pkgconfig/Makefile.am: + fix some more disting issues + * pkgconfig/gstreamer-media-info-uninstalled.pc.in: + * pkgconfig/gstreamer-media-info.pc.in: + generate media-info pc files + +2004-03-15 Johan Dahlin + + * *.h: Revert indenting + +2004-03-15 Thomas Vander Stichele + + * configure.ac: + adding ffmpegcolorspace element + * gst/ffmpegcolorspace/Makefile.am: + * gst/ffmpegcolorspace/avcodec.h: + * gst/ffmpegcolorspace/common.h: + * gst/ffmpegcolorspace/dsputil.c: (dsputil_static_init): + * gst/ffmpegcolorspace/dsputil.h: + * gst/ffmpegcolorspace/gstffmpeg.c: (plugin_init): + * gst/ffmpegcolorspace/gstffmpegcodecmap.c: + (gst_ffmpeg_pixfmt_to_caps), (gst_ffmpeg_pix_fmt_to_caps), + (gst_ffmpeg_caps_to_pix_fmt): + * gst/ffmpegcolorspace/gstffmpegcodecmap.h: + * gst/ffmpegcolorspace/gstffmpegcolorspace.c: + (gst_ffmpegcolorspace_caps_remove_format_info), + (gst_ffmpegcolorspace_getcaps), (gst_ffmpegcolorspace_pad_link), + (gst_ffmpegcolorspace_get_type), (gst_ffmpegcolorspace_base_init), + (gst_ffmpegcolorspace_class_init), (gst_ffmpegcolorspace_init), + (gst_ffmpegcolorspace_chain), (gst_ffmpegcolorspace_change_state), + (gst_ffmpegcolorspace_set_property), + (gst_ffmpegcolorspace_get_property), + (gst_ffmpegcolorspace_register): + * gst/ffmpegcolorspace/imgconvert.c: + (avcodec_get_chroma_sub_sample), (avcodec_get_pix_fmt_name), + (avcodec_get_pix_fmt), (avpicture_fill), (avpicture_layout), + (avpicture_get_size), (avcodec_get_pix_fmt_loss), + (avg_bits_per_pixel), (avcodec_find_best_pix_fmt1), + (avcodec_find_best_pix_fmt), (img_copy_plane), (img_copy), + (yuv422_to_yuv420p), (yuv422_to_yuv422p), (yuv422p_to_yuv422), + (C_JPEG_TO_CCIR), (img_convert_init), (img_apply_table), + (shrink41), (shrink21), (shrink12), (shrink22), (shrink44), + (grow21_line), (grow41_line), (grow21), (grow22), (grow41), + (grow44), (conv411), (gif_clut_index), (build_rgb_palette), + (bitcopy_n), (mono_to_gray), (monowhite_to_gray), + (monoblack_to_gray), (gray_to_mono), (gray_to_monowhite), + (gray_to_monoblack), (avpicture_alloc), (avpicture_free), + (is_yuv_planar), (img_convert), (get_alpha_info_pal8), + (img_get_alpha_info), (deinterlace_line), + (deinterlace_line_inplace), (deinterlace_bottom_field), + (deinterlace_bottom_field_inplace), (avpicture_deinterlace): + * gst/ffmpegcolorspace/imgconvert_template.h: + * gst/ffmpegcolorspace/mem.c: (av_malloc), (av_realloc), (av_free): + * gst/ffmpegcolorspace/mmx.h: + * gst/ffmpegcolorspace/utils.c: (avcodec_init): + adding ffmpegcolorspace element supplied by Ronald after cleaning + up and pulling in the right bits of upstream source. + I'm sure a better C/compiler wizard could do some cleaning up (for + example use GLIB's malloc stuff), but as a first pass this + works very well + +2004-03-15 Thomas Vander Stichele + + * ext/alsa/gstalsa.h: + I assume Ronald forgot to commit the change to have cardname + as a struct member. Expect some public spanking at the next + opportunity. + +2004-03-15 Ronald Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_get_property), + (gst_alsa_open_audio), (gst_alsa_close_audio): + * ext/alsa/gstalsa.c: + Don't open the device if we're a mixer (= padless). + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_class_init), + (gst_alsa_mixer_init), (gst_alsa_mixer_open), + (gst_alsa_mixer_close), (gst_alsa_mixer_change_state): + Open mixer during state change rather than during object + initialization. Also, get a device name. Currently in a somewhat + hackish fashion, but I didn't really find something better. + +2004-03-14 Thomas Vander Stichele + + * *.c, *.h: run gst-indent + +2004-03-14 Benjamin Otte + + * gst/modplug/gstmodplug.cc: + * gst/modplug/gstmodplug.h: + set correct timestamps on outgoing buffers + +2004-03-14 Benjamin Otte + + * gst/modplug/gstmodplug.cc: + handle events - don't do crap when a discont arrives that's not + necessary + This allows correct loading and playback of mods in Rhythmbox + +2004-03-14 Benjamin Otte + + * configure.ac: + * gst-libs/gst/gconf/Makefile.am: + * pkgconfig/Makefile.am: + move gstreamer-gconf pkgconfig files to pkgconfig/ dir. Make sure + they get rebuilt properly + * configure.ac: + when checking for vorbis, try pkgconfig first. + * gst/modplug/gstmodplug.cc: + add fixate function + +2004-03-14 Ronald Bultje + + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): + Fix for obvious mistake, where we first shift the offset and then + read a samplesize element assuming the old offset. Note that this + part still has something weird, i.e. my movies containing those + don't actually play well, but at least there's something that looks + like sound now. + +2004-03-14 Jan Schmidt + * gst/typefind/gsttypefindfunctions.c: (speex_type_find), + (plugin_init): + Add a typefind function for speex format + +2004-03-13 Ronald Bultje + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps), + (gst_asf_demux_setup_pad): + Use 25fps as our "fake" fps value (marked for fixage in 0.9.x) + instead of 0. Reason is simple: some elements have a fps range + of 1-max instead of 0-max. So now ASF video actually works. + +2004-03-13 Thomas Vander Stichele + + * po/LINGUAS: + * po/sr.po: + adding serbian as a language + +2004-03-13 Benjamin Otte + + * gst/sine/gstsinesrc.c: (gst_sinesrc_get): + return taglist correctly from _get function, don't gst_pad_push it. + (fixes #137042) + +2004-03-13 Jan Schmidt + * ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices): + +2004-03-13 Ronald Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_free_list): + * ext/alsa/gstalsamixertrack.c: (gst_alsa_mixer_track_class_init), + (gst_alsa_mixer_track_new): + * ext/alsa/gstalsamixertrack.h: + Fix ancient leftovers... MixerTrack is a GObject. + +2004-03-13 Ronald Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_class_probe_devices): + * sys/oss/gstosselement.c: (gst_osselement_class_probe_devices): + Don't block during probing... + +2004-03-12 Ronald Bultje + + * ext/alsa/gstalsa.c: (gst_alsa_get_type), (gst_alsa_class_init), + (gst_alsa_get_property), (gst_alsa_probe_get_properties), + (gst_alsa_class_probe_devices), (gst_alsa_class_list_devices), + (gst_alsa_probe_probe_property), (gst_alsa_probe_needs_probe), + (gst_alsa_probe_get_values), (gst_alsa_probe_interface_init), + (gst_alsa_open_audio), (gst_alsa_close_audio): + * ext/alsa/gstalsa.h: + Add propertyprobe interface implementation, add some device-name + property, all this so that it looks good in gnome-volume-control. + +2004-03-12 David Schleef + + * configure.ac: the Hermes library controls hermescolorspace, not + colorspace. + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init), + (gst_mpeg2dec_init): minor pet peeve: disable code with #ifdef, + not /* */ + * ext/sdl/sdlvideosink.c: Change XID to unsigned long. + * ext/sdl/sdlvideosink.h: ditto. + * gst/colorspace/gstcolorspace.c: Fix old comments about Hermes + +2004-03-12 Benjamin Otte + + * gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_set_xwindow_id), + (gst_x_overlay_got_xwindow_id): + * gst-libs/gst/xoverlay/xoverlay.h: + replace XID with unsigned long to get rid of the xlibs dependency in + XOverlay (fixes #137004) + +2004-03-13 Jan Schmidt + * gst/effectv/gstaging.c: (gst_agingtv_base_init), + (gst_agingtv_setup): + * gst/effectv/gstdice.c: (gst_dicetv_get_type), + (gst_dicetv_base_init), (gst_dicetv_class_init), + (gst_dicetv_setup), (gst_dicetv_init), (gst_dicetv_draw): + * gst/effectv/gstedge.c: (gst_edgetv_get_type), + (gst_edgetv_base_init), (gst_edgetv_class_init), (gst_edgetv_init), + (gst_edgetv_setup), (gst_edgetv_rgb32): + * gst/effectv/gsteffectv.c: + * gst/effectv/gstquark.c: (gst_quarktv_link), (gst_quarktv_init), + (gst_quarktv_set_property): + * gst/effectv/gstrev.c: (gst_revtv_get_type), + (gst_revtv_base_init), (gst_revtv_class_init), (gst_revtv_init), + (gst_revtv_setup), (gst_revtv_rgb32): + * gst/effectv/gstshagadelic.c: (gst_shagadelictv_get_type), + (gst_shagadelictv_base_init), (gst_shagadelictv_class_init), + (gst_shagadelictv_init), (gst_shagadelictv_setup), + (gst_shagadelictv_rgb32): + * gst/effectv/gstvertigo.c: (gst_vertigotv_get_type), + (gst_vertigotv_base_init), (gst_vertigotv_class_init), + (gst_vertigotv_setup), (gst_vertigotv_init), (gst_vertigotv_rgb32): + * gst/effectv/gstwarp.c: + Port everything that can be ported to videofilter and fix up the caps. + Can someone with a big-endian machine please check these? + +2004-03-10 Ronald Bultje + + * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_get_time), + (gst_osssink_chain), (gst_osssink_change_state): + Latest fixes for A/V sync, audio playback and such. This is about + all... MPEG playback issues are mostly related to the async build- + up of MPEG files, I cannot fix that. Use basicgthread to solve it. + +2004-03-10 Thomas Vander Stichele + + patch from: Stephane Loeuillet + + * configure.ac: + use pkg-config for some libraries, falling back to the old .m4 way + (fixes #131270) + * m4/libdv.m4: + removed + +2004-03-10 Thomas Vander Stichele + + * configure.ac: + * tools/Makefile.am: + * tools/Makefile.in: + * tools/gst-launch-ext-m.m: + * tools/gst-launch-ext.1.in: + * tools/gst-visualise-m.m: + * tools/gst-visualise.1: + * tools/gst-visualise.1.in: + reorganizing generation of script tools + +2004-03-10 Ronald Bultje + + * ext/divx/gstdivxdec.c: + Downgrade priority. We prefer ffdec_mpeg4. + * ext/faad/gstfaad.c: (gst_faad_srcgetcaps), (gst_faad_srcconnect), + (gst_faad_chain), (gst_faad_change_state): + Fix capsnego. Doesn't work for some sounds because we don't have + a 5:1 to stereo element. + * ext/xvid/gstxvid.c: (plugin_init): + Add priority. + * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain), + (gst_osssink_change_state): + Add discont handling. + +2004-03-09 Colin Walters + + * gst/audioconvert/gstaudioconvert.c: Fix typo in width 8 + conversion. + +2004-03-09 Benjamin Otte + + * gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init): + the signals take 2 arguments + +2004-03-09 David Schleef + + * ext/alsa/gstalsa.c: (gst_alsa_request_new_pad), + (gst_alsa_fixate): Add fixate function. (bug #136686) + * ext/alsa/gstalsa.h: + * ext/alsa/gstalsasink.c: (gst_alsa_sink_init): + +2004-03-09 Benjamin Otte + + * ext/mikmod/gstmikmod.c: (gst_mikmod_init), (gst_mikmod_loop), + (gst_mikmod_change_state): + * ext/mikmod/gstmikmod.h: + make mikmod's loop function not loop infinitely and call + gst_element_yield anymore + * gst/modplug/gstmodplug.cc: + fix pad negotiation (fixes #136590) + +2004-03-09 David Schleef + + * ext/lcs/Makefile.am: Fix so that the lcs colorspace plugin + doesn't conflict with the internal colorspace plugin. + * gst-libs/gst/audio/make_filter: Use `` instead of $() to + satisfy the crappy-ass shell shipped by a certain vendor. + * gst/videofilter/make_filter: same (bug #135299) + +2004-03-09 Thomas Vander Stichele + + * configure.ac: bump nano to 1 + +=== release 0.7.6 === + +2004-03-09 Thomas Vander Stichele + + * configure.in: releasing 0.7.6, "There" + +2004-03-09 Thomas Vander Stichele + + * pkgconfig/gstreamer-play-uninstalled.pc.in: + * pkgconfig/gstreamer-play.pc.in: + synchronize the two + +2004-03-09 Thomas Vander Stichele + + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_base_init), + (cdparanoia_open), (cdparanoia_event): + fix/add error handling + * po/POTFILES.in: + add cdparanoia source + * tools/Makefile.am: + make scripts executable + +2004-03-09 Thomas Vander Stichele + + * configure.ac: + * ext/vorbis/Makefile.am: + * sys/Makefile.am: + remove id3types, vorbisfile and xvideosink from the build (#133783) + +2004-03-08 Ronald Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): + Fix metadata read crash (#136537). + +2004-03-08 Thomas Vander Stichele + + * gst-libs/gst/media-info/media-info-priv.c: (gmi_set_mime): + * gst-libs/gst/media-info/media-info.c: (gst_media_info_read): + adding mime types, fixing the one-stop function + +2004-03-08 Christian Schaller + + * ext/nas/nassink.c and /ext/nas/nassink.h: + More NAS love from Arwed von Merkatz + So lets all sing 'Can you feel the NAS tonight' + +2004-03-08 Christian Schaller + + * tools/gst-launch-ext.in: + Replace vorbisfile with oggdemux/vorbisdec/audioconvert + +2004-03-08 Thomas Vander Stichele + + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_base_init), + (gst_mpeg2dec_init): + remove the user_data pad for now, because it is being used in + fixating causing MPEG playback to fixate on 1000 Hz for playback. + If someone knows how to fix this properly, please do. + +2004-03-08 Thomas Vander Stichele + + * sys/oss/gstosssink.c: (gst_osssink_get_delay), + (gst_osssink_get_time): + add a warning, IMO this won't get triggered anymore, remove later + +2004-03-07 David Schleef + + * gst/qtdemux/qtdemux.c: (qtdemux_video_caps): Added Cinepak + format (bug #136470) + +2004-03-07 Thomas Vander Stichele + + * gst-libs/Makefile.am: + * gst-libs/gst/media-info/Makefile.am: + * gst-libs/gst/media-info/media-info-priv.c: (found_tag_callback), + (error_callback), (gst_media_info_error_create), + (gst_media_info_error_element), (gmip_init), (gmip_reset), + (gmi_clear_decoder), (gmip_find_type_pre), (gmip_find_type): + * gst-libs/gst/media-info/media-info-priv.h: + * gst-libs/gst/media-info/media-info-test.c: (main): + * gst-libs/gst/media-info/media-info.c: (gst_media_info_init), + (gst_media_info_class_init), (gst_media_info_instance_init), + (gst_media_info_set_source), (gst_media_info_read_with_idler), + (gst_media_info_read_idler), (gst_media_info_read): + * gst-libs/gst/media-info/media-info.h: + fixed, should work now + +2004-03-07 Christian Schaller + + * ext/nas/nassink.c: + A bunch of NAS fixes from Arwed von Merkatz + +2004-03-06 Ronald Bultje + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream), + (qtdemux_parse_trak): + Fix crash (j might be greater than n_samples, in which case we're + writing outside the allocated space for the array) and memleak. + +2004-03-06 Ronald Bultje + + * sys/oss/gstosssink.c: (gst_osssink_chain): + And another caller that couldn't handle delay < 0 (unsigned + integer overflow). Video now continues playing on an audio + buffer underrun, and the clock continues working. Audio still + stalls. + +2004-03-06 Ronald Bultje + + * sys/oss/gstosssink.c: (gst_osssink_get_delay), + (gst_osssink_get_time): + get_delay() may return values lower than 0. In those cases, we + should not actually cast to *unsigned* int64, that will break + stuff horribly. In my case, it screwed up A/V sync in movies + in totem rather badly. + +2004-03-06 Christophe Fergeau + + * ext/faac/gstfaac.c: (gst_faac_chain): + * ext/flac/gstflactag.c: (gst_flac_tag_chain): + * ext/libpng/gstpngenc.c: (user_write_data): + * ext/mikmod/gstmikmod.c: (gst_mikmod_loop): + * gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain): + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle): + * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): + Fix several misuse of gst_buffer_merge (it doesn't take ownership + of any buffer), should fix some leaks. I hope I didn't unref buffers + that shouldn't be... + +2004-03-06 Thomas Vander Stichele + + * gst-libs/gst/media-info/media-info-priv.c: (have_type_callback), + (deep_notify_callback), (tag_flag_score), (found_tag_callback), + (error_callback), (gmi_reset), (gmi_seek_to_track), + (gmi_get_decoder), (gmi_set_mime), (gmip_find_type_pre), + (gmip_find_type_post), (gmip_find_stream_post), + (gmip_find_track_streaminfo_post): + * gst-libs/gst/media-info/media-info-priv.h: + * gst-libs/gst/media-info/media-info-test.c: (print_tag), + (info_print), (main): + * gst-libs/gst/media-info/media-info.c: + (gst_media_info_error_create), (gst_media_info_error_element), + (gst_media_info_instance_init), (gst_media_info_get_property), + (gst_media_info_new), (gst_media_info_set_source), + (gst_media_info_read_idler), (gst_media_info_read): + * gst-libs/gst/media-info/media-info.h: + first pass at making this work again. This seems to work on + tagged ogg/vorbis and mp3 files. + +2004-03-06 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_chain): + fix huge leak: gst_buffer_merge doesn't unref the first argument + itself. + +2004-03-06 Thomas Vander Stichele + + * ext/mad/gstmad.c: (gst_mad_class_init), (gst_mad_update_info): + report layer/mode/emphasis + +2004-03-06 Christophe Fergeau + + * ext/mad/gstmad.c: (gst_mad_chain): fixed caps leak + +2004-03-06 Thomas Vander Stichele + + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_new): + signal serial + +2004-03-06 Thomas Vander Stichele + + * ext/vorbis/vorbis.c: (plugin_init): + * ext/vorbis/vorbisdec.c: (vorbis_dec_get_formats), + (gst_vorbis_dec_init), (vorbis_dec_event): + add debug category + make vorbisdec handle _BYTE and _TIME queries + +2004-03-06 Christophe Fergeau + + * ext/mad/gstmad.c: (gst_mad_chain): send the average bitrate read + from the xing header + +2004-03-06 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_getcaps), + (gst_audio_convert_link), (gst_audio_convert_change_state), + (gst_audio_convert_buffer_from_default_format): + do conversions from/to float correctly, fix some caps nego errors, + export correct supported caps in template and getcaps, use correct + caps in try_set_caps functions + +2004-03-06 Christophe Fergeau + + For some reason, I only committed a ChangeLog entry yesterday and + not the corresponding code... + * ext/mad/gstmad.c: Fix detection of Xing headers + * gst/tags/gstid3tag.c: Changes to support TLEN tags + +2004-03-06 Benjamin Otte + + * ext/ogg/gstoggdemux.c: (gst_ogg_get_pad_by_pad), + (gst_ogg_demux_src_query): + make sure to handle the case where there's no current chain + gracefully. + +2004-03-05 David Schleef + + * ext/aalib/gstaasink.c: (gst_aasink_fixate), (gst_aasink_init): + Add fixate function. (bug #131128) + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_init), + (gst_sdlvideosink_fixate): Add fixate function. + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + Fix attempt to print a non-pointer using GST_PTR_FORMAT. + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt): + Fix missing break that was causing ulaw to be interpreted as + raw int. + +2004-03-05 David Schleef + + * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): + Fix code that ignores return value of gst_buffer_merge(). + (bug #114560) + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_descramble_segment): + * gst/mpegstream/gstrfc2250enc.c: (gst_rfc2250_enc_add_slice): same + * testsuite/gst-lint: Check for above. + +2004-03-05 David Schleef + + * gst/udp/gstudpsrc.c: (gst_udpsrc_get): Check for unfixed + caps and throw an element error. (bug #136334) + +2004-03-05 David Schleef + + * ext/faad/gstfaad.c: (gst_faad_init), (gst_faad_srcgetcaps), + (gst_faad_chain): Fix negotiation. + * ext/librfb/gstrfbsrc.c: (gst_rfbsrc_handle_src_event): Add + key and button events. + * gst-libs/gst/floatcast/floatcast.h: Fix a minor bug in this + dung heap of code. + * gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in: gstgconf + depends on gconf + * gst-libs/gst/gconf/gstreamer-gconf.pc.in: same + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup), + (gst_play_video_fixate), (gst_play_audio_fixate): Add a fixate + function to encourage better negotiation, particularly between + audioconvert and osssink. + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain): + * gst/qtdemux/qtdemux.c: (qtdemux_parse_trak): Make some debugging + more important. + * gst/typefind/gsttypefindfunctions.c: Fix mistake in flash + typefinding. + * gst/vbidec/vbiscreen.c: Add glib header + * pkgconfig/gstreamer-play.pc.in: Depends on gst-interfaces. + +2004-03-06 Christophe Fergeau + + * ext/mad/gstmad.c: Fix detection of Xing headers + * gst/tags/gstid3tag.c: Changes to support TLEN tags + +2004-03-06 Thomas Vander Stichele + + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt), + (gst_wavparse_pad_convert), (gst_wavparse_pad_query): + debug updates + +2004-03-06 Christophe Fergeau + + * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list): + * ext/mad/gstmad.c: (gst_mad_init), (is_xhead), + (mpg123_parse_xing_header), (gst_mad_chain): parse Xing header in vbr + files, and report the parsed length as a GST_TAG_DURATION tag. + * gst/tags/gstid3tag.c: support TLEN (duration) tag + +2004-03-05 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_channels): + convert channels correctly. convert correctly to unsigned. + +2004-03-05 Julien MOUTTE + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_change_state): Check if + we have a window before clearing it. + +2004-03-05 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_change_state): Check if we + have a window before clearing it. + +2004-03-05 Thomas Vander Stichele + + * gconf/gstreamer.schemas.in: + * gst-libs/gst/gconf/Makefile.am: + version installation path the same way as for 0.6 + * pkgconfig/gstreamer-interfaces-uninstalled.pc.in: + * pkgconfig/gstreamer-libs-uninstalled.pc.in: + * pkgconfig/gstreamer-play-uninstalled.pc.in: + remove comment that was fixed + +2004-03-05 David Schleef + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_get_src_formats), + (gst_qtdemux_src_convert), (gst_qtdemux_get_src_query_types), + (gst_qtdemux_get_event_mask), (gst_qtdemux_handle_src_query), + (gst_qtdemux_handle_src_event), (gst_qtdemux_add_stream): + Add prototype code for handling seeking and querying. + +2004-03-04 Ronald Bultje + + * examples/gstplay/player.c: (main): + Initialize variables to NULL. Prevents a segfault because the + (uninitialized) variable is not NULL, resulting in a crash on + trying to reach error->message. + +2004-03-05 Benjamin Otte + + * gst/audioconvert/gstaudioconvert.c: + (gst_audio_convert_buffer_to_default_format): + make float=>int conversion work correctly even in cornercases. + +2004-03-04 David I. Lehn + + * debian/README.Debian: + * debian/build-deps: + * debian/changelog: + * debian/control: + * debian/control.in: + * debian/copyright: + * debian/gstreamer-a52dec.files: + * debian/gstreamer-aa.files: + * debian/gstreamer-alsa.files: + * debian/gstreamer-alsa.manpages: + * debian/gstreamer-arts.files: + * debian/gstreamer-artsd.files: + * debian/gstreamer-audiofile.files: + * debian/gstreamer-avifile.files: + * debian/gstreamer-cdparanoia.files: + * debian/gstreamer-colorspace.files: + * debian/gstreamer-doc.files: + * debian/gstreamer-dv.files: + * debian/gstreamer-dvd.files: + * debian/gstreamer-esd.files: + * debian/gstreamer-festival.files: + * debian/gstreamer-flac.files: + * debian/gstreamer-gconf.conffiles: + * debian/gstreamer-gconf.files: + * debian/gstreamer-gconf.postinst: + * debian/gstreamer-gnomevfs.files: + * debian/gstreamer-gsm.files: + * debian/gstreamer-http.files: + * debian/gstreamer-jack.files: + * debian/gstreamer-jpeg.files: + * debian/gstreamer-mad.files: + * debian/gstreamer-mikmod.files: + * debian/gstreamer-misc.files: + * debian/gstreamer-mpeg2dec.files: + * debian/gstreamer-oss.files: + * debian/gstreamer-plugin-apps.files: + * debian/gstreamer-plugin-apps.manpages: + * debian/gstreamer-plugin-libs-dev.files: + * debian/gstreamer-plugin-libs.files: + * debian/gstreamer-plugin-template.postinst: + * debian/gstreamer-plugin-template.postrm: + * debian/gstreamer-sdl.files: + * debian/gstreamer-sid.files: + * debian/gstreamer-vorbis.files: + * debian/gstreamer-x.files: + * debian/mk.control: + * debian/rules: + Debian package info not maintained here. + +2004-03-04 Thomas Vander Stichele + + * ext/aalib/gstaasink.c: (gst_aasink_class_init): + * ext/cdaudio/gstcdaudio.c: (gst_cdaudio_class_init): + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_class_init): + * ext/divx/gstdivxenc.c: (gst_divxenc_class_init): + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init): + * ext/gsm/gstgsmenc.c: (gst_gsmenc_class_init): + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_class_init): + * ext/musicbrainz/gsttrm.c: (gst_musicbrainz_class_init): + * ext/speex/gstspeexenc.c: (gst_speexenc_class_init): + * ext/xvid/gstxvidenc.c: (gst_xvidenc_class_init): + * gst-libs/gst/colorbalance/colorbalance.c: + (gst_color_balance_class_init): + * gst-libs/gst/colorbalance/colorbalancechannel.c: + (gst_color_balance_channel_class_init): + * gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init): + * gst-libs/gst/play/play.c: (gst_play_class_init): + * gst-libs/gst/propertyprobe/propertyprobe.c: + (gst_property_probe_iface_init): + * gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init): + * gst-libs/gst/tuner/tunerchannel.c: + (gst_tuner_channel_class_init): + * gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_base_init): + * gst/cutter/gstcutter.c: (gst_cutter_class_init): + * gst/effectv/gstvertigo.c: (gst_vertigotv_class_init): + * sys/cdrom/gstcdplayer.c: (cdplayer_class_init): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_class_init): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_class_init): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_class_init): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_class_init): + fix signals to use - instead of _ + * ext/libcaca/gstcacasink.h: + * ext/sdl/sdlvideosink.h: + fix header rename + +2004-03-04 David Schleef + + * testsuite/gst-lint: Add a check for bad signal names. + +2004-03-04 + + reviewed by David Schleef + + * gst/videofilter/gstgamma.c: (gst_gamma_rgb32): Fix typo that + modified the alpha channel and caused a warning. (bug #136192) + +2004-04-03 Christian Schaller + + * gst-plugins.spec.in: + Change names of plugins to actually be correct. Try to keep things + alphabetical to avoid getting beat up by Thomas + +2004-03-03 Julien MOUTTE + + * gst-libs/gst/gconf/gconf.c: (gst_gconf_get_default_video_sink): + Using ximagesink as a default if no gconf key found. We should + probably consider using alsasink instead of osssink for the audio + part. + +2004-03-02 Thomas Vander Stichele + + * configure.ac: + fix --with-plugins, don't think it ever worked before + * gst-plugins.spec.in: + even more updates + +2004-03-01 Ronald Bultje + + * ext/sdl/sdlvideosink.h: + * sys/ximage/ximagesink.h: + * sys/xvideo/xvideosink.h: + * sys/xvimage/xvimagesink.h: + Fix for move of gstvideosink.h -> videosink.h. + +2004-03-02 Thomas Vander Stichele + + * gst-libs/gst/xwindowlistener/Makefile.am: + this is a plugin library, not a library + +2004-03-01 David Schleef + + * AUTHORS: Added some names. Add yourself if you're still + missing. + +2004-03-01 David Schleef + + * MAINTAINERS: Add + +2004-03-01 Thomas Vander Stichele + + * gst-plugins.spec.in: clean up spec file + +2004-03-01 Thomas Vander Stichele + + * gst-libs/gst/video/Makefile.am: + * gst-libs/gst/video/gstvideosink.c: + * gst-libs/gst/video/gstvideosink.h: + rename gstvideosink.h to videosink.h to match other headers + * gst/mixmatrix/Makefile.am: + fix plugin filename + * gst/tags/Makefile.am: fix plugin filename + +2004-03-01 Thomas Vander Stichele + + * gst/tags/Makefile.am: fix plugin filename + +2004-03-01 Thomas Vander Stichele + + * examples/gstplay/player.c: (got_time_tick), (main): + add error handler + display time_tick more readably + * gst/mixmatrix/Makefile.am: + fix plugin file name + +2004-02-29 Christophe Fergeau + + * sys/oss/gstosselement.c: (gst_osselement_probe), + (device_combination_append), (gst_osselement_class_probe_devices): + * sys/oss/gstosselement.h: + Reworked enumeration of oss dsps and mixers so that gst-mixer works + on my system using alsa oss emulation, fixes bug #135597 + +2004-02-29 Ronald Bultje + + * gst/videodrop/gstvideodrop.c: (gst_videodrop_init), + (gst_videodrop_chain), (gst_videodrop_change_state): + * gst/videodrop/gstvideodrop.h: + Work based on timestamp of input data, not based on the expected + framerate from the input. The consequence is that this element now + not only scales framerates, but also functions as a framerate + corrector or framerate stabilizer/constantizer. + +2004-02-27 David Schleef + + patches from jmmv@menta.net (Julio M. Merino Vidal) + + * gst/interleave/deinterleave.c: (deinterleave_chain): Fix + GST_ELEMENT_ERROR call (bug #135634) + * gst/interleave/interleave.c: (interleave_buffered_loop), + (interleave_bytestream_loop): Don't use alloca() (bug #135640) + * sys/cdrom/gstcdplayer_ioctl_bsd.h: Fix ioctls on NetBSD (bug #135645) + * sys/oss/gstosssink.c: (gst_osssink_get_delay), + (gst_osssink_chain): Fix ioctls on NetBSD. (bug #135644) + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_sync_next_frame), + (gst_v4lmjpegsrc_set_capture), (gst_v4lmjpegsrc_set_capture_m), + (gst_v4lmjpegsrc_capture_init), (gst_v4lmjpegsrc_requeue_frame): + Fix GST_ELEMENT_ERROR call. + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_try_palette): Fix + GST_ELEMENT_ERROR call. + +2004-02-27 Benjamin Otte + + * gst-libs/gst/audio/audio.h: + add macro to make sure header isn't included twice + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_chunk): + don't use gst_buffer_free + * gst/playondemand/filter.func: + don't use gst_data_free. Free data only once. + +2004-02-26 David Schleef + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/tuner/Makefile.am: + * gst/level/Makefile.am: -marshal.[ch] and -enum.[ch] files + should not be disted, -marshal.h files should not be installed, + and -enum.h files _should_ be installed. Fix to make this the + case. + +=== release 0.7.5 === + +2004-02-26 Thomas Vander Stichele + + * configure.ac: release 0.7.5, "Under The Sea" + +2004-02-25 Thomas Vander Stichele + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link), + (gst_audio_convert_change_state), (gst_audio_convert_get_buffer): + * gst/videoscale/gstvideoscale.c: + * sys/oss/gstosselement.c: (gst_osselement_sync_parms): + assorted debug/warning fixes + +2004-02-25 Thomas Vander Stichele + + * gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps), + (gst_videoscale_init), (gst_videoscale_chain), + (gst_videoscale_set_property), (plugin_init): + * gst/videoscale/gstvideoscale.h: + * gst/videoscale/videoscale.c: (gst_videoscale_setup), + (gst_videoscale_scale_rgb), (gst_videoscale_planar411), + (gst_videoscale_planar400), (gst_videoscale_packed422), + (gst_videoscale_packed422rev), (gst_videoscale_32bit), + (gst_videoscale_24bit), (gst_videoscale_16bit), + (gst_videoscale_bilinear), (gst_videoscale_bicubic), + (gst_videoscale_scale_plane_slow), + (gst_videoscale_scale_point_sample), + (gst_videoscale_scale_nearest), + (gst_videoscale_scale_nearest_str2), + (gst_videoscale_scale_nearest_str4), + (gst_videoscale_scale_nearest_32bit), + (gst_videoscale_scale_nearest_24bit), + (gst_videoscale_scale_nearest_16bit): + add debugging category and use it properly + fix use of GST_PTR_FORMAT + +2004-02-25 Andy Wingo + + * gst/interleave/interleave.c (interleave_buffered_loop): Always + push only when channel->buffer is NULL. Prevents segfaults doing + the state change after a nonlocal exit, like a scheme exception. + + * gst/audioconvert/gstaudioconvert.c (gst_audio_convert_getcaps): + Handle the case where the intersected caps is empty. + +2004-02-25 Thomas Vander Stichele + + * gst/law/mulaw-decode.c: (mulawdec_link): + * gst/law/mulaw.c: (plugin_init): + fix mulawdec so it actually works again + +2004-02-24 Arwed v. Merkatz + + reviewed by: David Schleef + + * gst/videofilter/gstgamma.c: (gst_gamma_class_init), + (gst_gamma_init), (gst_gamma_set_property), + (gst_gamma_get_property), (gst_gamma_calculate_tables), + (gst_gamma_rgb24), (gst_gamma_rgb32): Adds gamma correction + for RGB, with separate r g and b correction factors. (#131167) + +2004-02-24 Thomas Vander Stichele + + * ext/vorbis/vorbisdec.c: (vorbis_dec_chain): + only signal tags for bitrate if they're > 0 (#134894) + +2004-02-24 David Schleef + + * gst/qtdemux/qtdemux.c: (plugin_init), (gst_qtdemux_loop_header), + (qtdemux_parse_moov), (qtdemux_parse), (qtdemux_node_dump_foreach), + (qtdemux_dump_mvhd), (qtdemux_dump_tkhd), (qtdemux_dump_elst), + (qtdemux_dump_mdhd), (qtdemux_dump_hdlr), (qtdemux_dump_vmhd), + (qtdemux_dump_dref), (qtdemux_dump_stsd), (qtdemux_dump_stts), + (qtdemux_dump_stss), (qtdemux_dump_stsc), (qtdemux_dump_stsz), + (qtdemux_dump_stco), (qtdemux_dump_co64), (qtdemux_dump_dcom), + (qtdemux_dump_cmvd), (qtdemux_parse_tree), (qtdemux_parse_trak): + Cleanups. Convert g_prints to GST_LOGs. Add qtdemux debug + category. Attempt to fix timestamp calculation. + +2004-02-24 Johan Dahlin + + * gst-libs/gst/gconf/gconf.c: Add \n to g_print error messages + +2004-02-23 Thomas Vander Stichele + + * configure.ac: + * gconf/Makefile.am: + * gconf/gstreamer.schemas: + * gst-libs/gst/gconf/Makefile.am: + * gst-libs/gst/gconf/gconf.c: + version gconf schemas and install locations + +2004-02-23 Benjamin Otte + + * ext/xine/xineinput.c: (gst_xine_input_dispose): + (gst_xine_input_subclass_init): + call parent dispose. + change pad template for CD reader correctly + * ext/xine/Makefile.am: + * ext/xine/gstxine.h: + * ext/xine/xine.c: (plugin_init): + * ext/xine/xineaudiosink.c: + wrap audio sinks, too + * gst-libs/gst/resample/private.h: + * gst-libs/gst/resample/resample.c: (gst_resample_init), + (gst_resample_reinit), (gst_resample_scale), + (gst_resample_nearest_s16), (gst_resample_bilinear_s16), + (gst_resample_sinc_slow_s16), (gst_resample_sinc_s16), + (gst_resample_sinc_ft_s16), (gst_resample_nearest_float), + (gst_resample_bilinear_float), (gst_resample_sinc_slow_float), + (gst_resample_sinc_float), (gst_resample_sinc_ft_float): + * gst-libs/gst/resample/resample.h: + * gst/audioscale/gstaudioscale.c: (gst_audioscale_method_get_type), + (gst_audioscale_class_init), (gst_audioscale_link), + (gst_audioscale_get_buffer), (gst_audioscale_init), + (gst_audioscale_chain), (gst_audioscale_set_property), + (gst_audioscale_get_property): + * gst/audioscale/gstaudioscale.h: + s/resample_*/gst_resample_*/i to not clobber namespaces + +2004-02-23 Julien MOUTTE + + * gst-libs/gst/riff/riff-media.c: (gst_riff_create_video_caps), + (gst_riff_create_audio_caps), (gst_riff_create_iavs_caps), + (gst_riff_create_video_template_caps), + (gst_riff_create_audio_template_caps), + (gst_riff_create_iavs_template_caps): + * gst-libs/gst/riff/riff-media.h: + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_base_init), + (gst_asf_demux_audio_caps), (gst_asf_demux_add_audio_stream), + (gst_asf_demux_video_caps), (gst_asf_demux_add_video_stream): + * gst/avi/gstavidemux.c: (gst_avi_demux_add_stream): + * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream), + (gst_matroska_demux_video_caps), (gst_matroska_demux_audio_caps), + (gst_matroska_demux_plugin_init): First batch implementing audio and + video codec tags in demuxers. + +2004-02-22 Benjamin Otte + + * ext/xine/Makefile.am: + * ext/xine/gstxine.h: + * ext/xine/xine.c: (plugin_init): + * ext/xine/xineinput.c: + add input plugin wrapper. Playback from files, http, mms and cdda + works. + * ext/xine/xineaudiodec.c: (gst_xine_audio_dec_chain): + remove leftover G_GNUC_UNUSED + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_stream), + (gst_asf_demux_identify_guid): + improve debugging output + +2004-02-22 Benjamin Otte + + reported by: Padraig O'Briain + + * autogen.sh: + replace test -e with test -x for mkinstalldirs to be more portable. + (fixes #134816) + +2004-02-22 Benjamin Otte + + reported by: Stefan Kost + + * gst/audioconvert/gstaudioconvert.c: (plugin_init): + set rank to PRIMARY + * gst/volume/gstvolume.c: (plugin_init): + set rank to NONE + fixes #134960 + +2004-02-22 Julio M. Merino Vidal + + reviewed by Benjamin Otte + + * ext/flac/gstflacenc.c: (gst_flacenc_chain): + escape NULL strings in GST_ELEMENT_ERROR properly (fixes #135116) + +2004-02-22 Benjamin Otte + + * configure.ac: + export [_]*{gst,Gst,GST}.* symbols from plugins + +2004-02-22 Christophe Fergeau + + reviewed by: Benjamin Otte + + * ext/lame/gstlame.c: (add_one_tag): + * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_get_tag_value), + (gst_vorbisenc_metadata_set1): + * gst/tags/gstid3tag.c: + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_add): + apply fixes from bugs #135042 (lame can't write tags) and #133817 + (add GST_ALBUM_VOLUME_{COUNT,NUMBER} tags) + +2004-02-22 Ramon Garcia + + * configure.ac: Export only gst_plugin_desc from plugins. + Note that this change only makes any effect with Linux using libtool + 1.5.2 or higher. Otherwise it is silently ignored, but it would build + fine. And don't try to have several versions of libtool in different + directories. + +2004-02-20 Andy Wingo + + * gst/intfloat/, gst/oneton: Removed, replaced by audioconvert and + interleave respectively. + + * gst/interleave/deinterleave.c: New plugin: deinterleave + (replaces on oneton). + * gst/interleave/interleave.c: New plugin: interleave. + * gst/interleave/plugin.h: Support file. + * gst/interleave/plugin.c: Support file. + + * configure.ac: Remove intfloat and oneton, add interleave. + + * ext/sndfile/gstsf.c: Handle events better. + + * gst/audioconvert/gstaudioconvert.c: Change to support int2float + and float2int operation. int2float has scheduling problems as + noted in in2float_chain. + +2004-02-20 Benjamin Otte + + * ext/xine/Makefile.am: + * ext/xine/gstxine.h: + * ext/xine/xine.c: + * ext/xine/xineaudiodec.c: + * ext/xine/xinecaps.c: + add first version of xine plugin wrapper. Currently only wraps the + QDM2 win32 DLL, and even that only in proof-of-concept quality. + * configure.ac: + * ext/Makefile.am: + add xine plugin wrapper, disabled by default. Use --enable-xine to + build. Note that it'll segfault on gst-register if you don't remove + the goom and tvtime post plugins from xine. + * gst/qtdemux/qtdemux.c: (gst_qtdemux_handle_sink_event), + (qtdemux_parse), (qtdemux_parse_trak), (qtdemux_audio_caps): + add extradata parsing for QDM2. + change around debugging prints. + +2004-02-19 Benjamin Otte + + * ext/lame/gstlame.c: (gst_lame_chain): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain): + use gst_tag_list_insert when you want to insert tags + +2004-02-18 David Schleef + + * configure.ac: Move massink to gst-rotten + * ext/Makefile.am: + * ext/mas/Makefile.am: + * ext/mas/massink.c: + * ext/mas/massink.h: + +2004-02-18 David Schleef + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): Disable gdk_pixbuf + typefinding, since it seems to be worse than nothing. + * gst/typefind/gsttypefindfunctions.c: (qt_type_find): Add ftyp + atom to recognize .mp4 and .m4a files as video/quicktime. + +2004-02-18 David Schleef + + * gst/sine/demo-dparams.c: (quit_live), + (dynparm_log_value_changed), (dynparm_value_changed), (main): + Use double dparams, not float. + * gst/sine/gstsinesrc.c: (gst_sinesrc_class_init), + (gst_sinesrc_init): Change sync default to FALSE, since multiple + sync'd elements don't really work correctly. + * gst/volume/gstvolume.c: (volume_class_init), (volume_init), + (volume_update_volume), (volume_get_property): Change dparam + to double. + +2004-02-18 Julien MOUTTE + + * sys/ximage/ximagesink.c: + (gst_ximagesink_xwindow_update_geometry), + (gst_ximagesink_renegotiate_size), (gst_ximagesink_handle_xevents), + (gst_ximagesink_change_state), (gst_ximagesink_expose), + (gst_ximagesink_init): Rework the way software video scaling works. So + now we check on each chain call if the video frames are feeling the + window. If not we try to renegotiate caps. On failure we memorize that + and we won't try again for that PLAYING sessions. + * sys/ximage/ximagesink.h: Adding a boolean to store the caps renego + failure. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_init): initialize the + synchronous flag. + +2004-02-18 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup): + break up _link so we can give a better debug message for errors + +2004-02-18 Thomas Vander Stichele + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): + set up debug category + +2004-02-18 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), + (gst_ximagesink_handle_xevents), (gst_ximagesink_expose): Reorganizing + the way renegotiation work. The event handling function is not taking + care of external windows and renegotiate method check for pad flags + NEGOTIATING. Should fix : #133209 + +2004-02-17 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_expose): Checking if the + pad is negotiating before trying renegotiation. + +2004-02-17 Thomas Vander Stichele + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_type_find): + pass on all possible mime types as typefind hints + +2004-02-17 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new): Fix a + possible SHM leak if we crash. All other apps using XShm are doing + that. + +2004-02-17 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), + (gst_ximagesink_expose): Renegotiate size on expose. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_expose): Update window + size on expose. + +2004-02-16 Benjamin Otte + + * testsuite/alsa/sinesrc.c: + cosmetic fix to fix compile issue with gcc 2.95.4 + +2004-02-16 Julien MOUTTE + + * ext/alsa/gstalsa.c: (gst_alsa_open_audio), + (gst_alsa_timestamp_to_bytes): Alsa should trigger an error if it + failed opening the audio device. + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new), + (gst_ximagesink_ximage_destroy), (gst_ximagesink_ximage_put), + (gst_ximagesink_xwindow_new), (gst_ximagesink_xwindow_destroy), + (gst_ximagesink_xwindow_resize), (gst_ximagesink_xwindow_clear), + (gst_ximagesink_renegotiate_size), (gst_ximagesink_handle_xevents), + (gst_ximagesink_xcontext_get), (gst_ximagesink_xcontext_clear), + (gst_ximagesink_change_state), (gst_ximagesink_chain), + (gst_ximagesink_set_xwindow_id): Clearing window in READY TO PAUSED. + Removing some useless g_return_if_fail like wingo suggested. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new), + (gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xvimage_put), + (gst_xvimagesink_xwindow_new), (gst_xvimagesink_xwindow_destroy), + (gst_xvimagesink_xwindow_resize), (gst_xvimagesink_xwindow_clear), + (gst_xvimagesink_update_colorbalance), + (gst_xvimagesink_handle_xevents), (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_xcontext_clear), + (gst_xvimagesink_get_fourcc_from_caps), + (gst_xvimagesink_change_state), (gst_xvimagesink_chain), + (gst_xvimagesink_set_xwindow_id), + (gst_xvimagesink_colorbalance_list_channels), + (gst_xvimagesink_colorbalance_set_value), + (gst_xvimagesink_colorbalance_get_value): Clearing window in READY TO + PAUSED. Removing some useless g_return_if_fail like wingo suggested. + +2004-02-16 Thomas Vander Stichele + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain): + throw error when not negotiated instead of asserting + +2004-02-15 Julien MOUTTE + + * gst/switch/gstswitch.c: (gst_switch_loop): More fixes for + correct data refcounting. + +2004-02-15 Julien MOUTTE + + * gst/switch/gstswitch.c: (gst_switch_change_state), + (gst_switch_class_init): Cleaning the sinkpads correctly on state + change, mostly the EOS flag. + +2004-02-15 Julien MOUTTE + + * examples/gstplay/player.c: (got_eos), (main): Adding some + output for debugging. + * gst-libs/gst/play/play.c: (gst_play_state_change): Stop our + timeouts if we go to any state different from PLAYING. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_seek): Fix some + more EOS bugs in riff lib. + +2004-02-14 Julien MOUTTE + + * gst-libs/gst/play/play.c: (gst_play_connect_visualization): Disable + visualization until i find a way to fix switch correctly. + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head): Fix a bug when + EOS arrives. + * gst/switch/gstswitch.c: (gst_switch_release_pad), + (gst_switch_request_new_pad), (gst_switch_poll_sinkpads), + (gst_switch_loop), (gst_switch_dispose), (gst_switch_class_init): + Reworked switch to get a more correct behaviour with events and refing + of data stored in sinkpads. + * gst/switch/gstswitch.h: Adding an eos flag for every sinkpad so that + we don't pull from a pad in EOS. + +2004-02-14 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_chain): + remove v1 tag even if we can't read it (makes sure we don't detect + it again) + +2004-02-14 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_pcm_wait), + (gst_alsa_xrun_recovery): + * ext/alsa/gstalsa.h: + try xrun recovery when wait failed. Make xrun recovery function + return TRUE/FALSE to indicate success. (might fix #134354) + +2004-02-13 David Schleef + + * gst/sine/demo-dparams.c: (dynparm_log_value_changed), + (dynparm_value_changed), (main): Convert from float to double. + * gst/sine/gstsinesrc.c: (gst_sinesrc_init): same. + +2004-02-13 David Schleef + + * gst/silence/gstsilence.c: (gst_silence_class_init), + (gst_silence_set_clock), (gst_silence_get), + (gst_silence_set_property), (gst_silence_get_property): + * gst/silence/gstsilence.h: Add sync property. + * gst/sine/gstsinesrc.c: (gst_sinesrc_class_init), + (gst_sinesrc_init), (gst_sinesrc_set_clock), (gst_sinesrc_get), + (gst_sinesrc_set_property), (gst_sinesrc_get_property): + * gst/sine/gstsinesrc.h: Add sync property. + +2004-02-13 David Schleef + + * gst/intfloat/gstint2float.c: (conv_f32_s16), + (gst_int2float_chain_gint16): Change stdint usage to glib types. + +2004-02-13 Thomas Vander Stichele + + * configure.ac: + * ext/Makefile.am: + * gst-libs/ext/Makefile.am: + move ffmpeg plugin to gst-ffmpeg module + +2004-02-13 Thomas Vander Stichele + + * configure.ac: use GST_ARCH to detect architecture + +2004-02-12 Julien MOUTTE + + * gst/vbidec/vbiscreen.c: Fixing thomasvs fixes. Missing header. + +2004-02-12 Thomas Vander Stichele + + * ext/ladspa/gstladspa.c: (gst_ladspa_base_init): + classify LADSPA plugins based on number of src/sink pads + (#133663, Stefan Kost) + * gst/sine/gstsinesrc.c: (gst_sinesrc_init): + fix dparams registration + (#133528, Stefan Kost) + * gst/vbidec/vbiscreen.c: (vbiscreen_set_current_cell): + fix use of isprint and use g_ascii_isprint instead + (#133316, Stefan Kost) + +2004-02-11 David Schleef + + Convert a few inner loops to use liboil. This is currently + optional, and is only enabled if liboil is present (duh!). + * configure.ac: Check for liboil-0.1 + * gst/intfloat/Makefile.am: + * gst/intfloat/gstint2float.c: (conv_f32_s16), (scalarmult_f32), + (gst_int2float_chain_gint16): + * gst/videofilter/Makefile.am: + * gst/videofilter/gstvideobalance.c: (gst_videobalance_class_init), + (tablelookup_u8), (gst_videobalance_planar411): + * gst/videotestsrc/Makefile.am: + * gst/videotestsrc/gstvideotestsrc.c: (plugin_init): + * gst/videotestsrc/videotestsrc.c: (splat_u8), (paint_hline_YUY2), + (paint_hline_IYU2), (paint_hline_str4), (paint_hline_str3), + (paint_hline_RGB565), (paint_hline_xRGB1555): + +2004-02-11 David Schleef + + * ext/lcs/gstcolorspace.c: (colorspace_find_lcs_format), + (gst_colorspace_caps_get_fourcc), (colorspace_setup_converter), + (gst_colorspace_getcaps), (gst_colorspace_link), + (gst_colorspace_base_init), (gst_colorspace_init), + (gst_colorspace_chain), (gst_colorspace_change_state), + (plugin_init): Merge Ronald's patch (bug #117897) and update + for new caps and negotiation. Seems to work, although it + shows off bugs in lcs. + +2004-02-11 David Schleef + + * ext/alsa/Makefile.am: Fix linking against libgstinterfaces. + (bug #133886) Noticed by bugs@leroutier.net (Stephane LOEUILLET) + +2004-02-11 David Schleef + + * ext/librfb/gstrfbsrc.c: (gst_rfbsrc_class_init), + (gst_rfbsrc_change_state), (gst_rfbsrc_init), + (gst_rfbsrc_set_property), (gst_rfbsrc_get_property): + Add server and port properties + +2004-02-11 Thomas Vander Stichele + + * m4/a52.m4: + * m4/aalib.m4: + * m4/as-ffmpeg.m4: + * m4/as-liblame.m4: + * m4/as-slurp-ffmpeg.m4: + * m4/check-libheader.m4: + * m4/esd.m4: + * m4/freetype2.m4: + * m4/gconf-2.m4: + * m4/glib.m4: + * m4/gst-alsa.m4: + * m4/gst-artsc.m4: + * m4/gst-ivorbis.m4: + * m4/gst-matroska.m4: + * m4/gst-sdl.m4: + * m4/gst-shout2.m4: + * m4/gst-sid.m4: + * m4/gtk.m4: + * m4/libdv.m4: + * m4/libfame.m4: + * m4/libmikmod.m4: + * m4/ogg.m4: + * m4/vorbis.m4: + fix underquotedness of macros (#133800) + * m4/as-avifile.m4: + * m4/xmms.m4: + removed because no longer used + +2004-02-11 Thomas Vander Stichele + + * configure.ac: + require gettext 0.11.5 so ulonglong.m4 gets checked out and copied + by autopoint (fixes #132996) + +2004-02-11 Benjamin Otte + + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_base_init): + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_base_init): + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_base_init): + * ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_base_init): + fix memleaks + +2004-02-11 David Schleef + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link), + (gst_gdk_pixbuf_chain): Fix logic bug causing spurious errors. + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_base_init), + (gst_jpegdec_init), (gst_jpegdec_chain): Fix negotiation. + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_base_init), + (gst_jpegenc_class_init), (gst_jpegenc_init), + (gst_jpegenc_getcaps), (gst_jpegenc_link), (gst_jpegenc_resync), + (gst_jpegenc_chain), (gst_jpegenc_set_property), + (gst_jpegenc_get_property): Fix negotiation. Add some properties. + * ext/jpeg/gstjpegenc.h: Fix negotiation. + +2004-02-10 Benjamin Otte + + * ext/mikmod/gstmikmod.c: (gst_mikmod_init), + (gst_mikmod_srcfixate), (gst_mikmod_srclink), (gst_mikmod_loop): + * ext/mikmod/gstmikmod.h: + fix caps negotiation in mikmod + * ext/ogg/gstoggdemux.c: (gst_ogg_print): + output debug information + +2004-02-08 Benjamin Otte + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/navigation/Makefile.am: + * gst-libs/gst/xoverlay/Makefile.am: + remove unused GST_OPT_CFLAGS from Makefiles + include X_CFLAGS and X_LIBS in xoverlay. (#131948) + +2004-02-07 David Schleef + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_handle_event): Don't + push events to pads that haven't been created (#133508) + +2004-02-07 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_src_convert), + (gst_dvdec_sink_convert), (gst_dvdec_handle_sink_event), + (gst_dvdec_video_getcaps), (gst_dvdec_video_link), + (gst_dvdec_loop), (gst_dvdec_change_state): + Second attempt at committing a working dvdec element. + +2004-02-06 David Schleef + + Build fixes for OS X: (see #129600) + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_strh), + (gst_riff_read_strf_vids), (gst_riff_read_strf_auds), + (gst_riff_read_strf_iavs): + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), + (gst_avi_demux_stream_odml): + * gst/playondemand/Makefile.am: + * gst/rtp/rtp-packet.c: + +2004-02-05 David Schleef + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_loop): Revert + last change, because it Just Doesn't Compile. + +2004-02-05 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_chain): + skip undecodable id3v2 tag instead of keeping it + +2004-02-05 David Schleef + + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain): + Unref leaked buffer. (Noticed by Ronald) + +2004-02-05 David I. Lehn + + * pkgconfig/gstreamer-libs-uninstalled.pc.in: + Sync requires with other checks. >= vs =. + +2004-02-06 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_init), (gst_dvdec_video_getcaps), + (gst_dvdec_video_link), (gst_dvdec_loop): + * ext/dv/gstdvdec.h: + rework the caps negotiation so that dvdec works again instead + of just segfaulting. + +=== release 0.7.4 === + +2004-02-06 Thomas Vander Stichele + + * NEWS: GStreamer Plugins 0.7.4 "For Great Justice" released + * configure.ac: changed for release + +2004-02-05 Thomas Vander Stichele + + * gst-libs/gst/gconf/gstreamer-gconf-uninstalled.pc.in: + * pkgconfig/gstreamer-interfaces-uninstalled.pc.in: + * pkgconfig/gstreamer-libs-uninstalled.pc.in: + * pkgconfig/gstreamer-play-uninstalled.pc.in: + reworked patch by David Lehn to fix libdir and includedir for + uninstalled libraries + removed play and gconf from gstreamer-libs since they have their + own pkgconfig files + +2004-02-04 David Schleef + + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt): Fix a caps + memleak. + +2004-02-05 Benjamin Otte + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): + use correct GST_TAG_ENCODER tag + +2004-02-05 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_change_state): + be sure to stop the clock when going to paused + * sys/oss/gstosssink.c: (gst_osssink_change_state): + reset number of transmitted when going to ready. + fixes #132935 + +2004-02-05 Charles Schmidt + + reviewed by Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list): + extract track count (fixes #133410) + +2004-02-04 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_do_caps_nego): + that should be !=, not == (fixes #132519) + +2004-02-04 David Schleef + + Make sure set_explicit_caps() is called before adding pad. + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + * gst/id3/gstid3types.c: (gst_id3types_loop): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead): + * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream): + +2004-02-04 Thomas Vander Stichele + + * configure.ac: + bump nano to 2, first prerelease + put back AM_PROG_LIBTOOL + +2004-02-04 Thomas Vander Stichele + + * testsuite/alsa/Makefile.am: + these are user test apps, not automatic testsuite tests + +2004-02-04 David Schleef + + Convert GST_DEBUG_CAPS() to GST_DEBUG(): + * gst/mpeg1videoparse/gstmp1videoparse.c: + (mp1videoparse_parse_seq): + * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream): + * gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps): + * sys/xvideo/gstxwindow.c: (_gst_xwindow_new): + * sys/xvideo/xvideosink.c: (gst_xvideosink_sinkconnect), + (gst_xvideosink_getcaps): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): + * testsuite/gst-lint: more tests + +2004-02-04 David Schleef + + Replace use of GST_PAD_FORMATS_FUNCTION() and similar macros + with the code that they would expand to. + * ext/flac/gstflacdec.c: (gst_flacdec_get_src_formats), + (gst_flacdec_get_src_query_types), + (gst_flacdec_get_src_event_masks): + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get_formats), + (gst_gnomevfssrc_get_query_types), + (gst_gnomevfssrc_get_event_mask): + +2004-02-04 Benjamin Otte + + * gst/sine/gstsinesrc.c: (gst_sinesrc_class_init), + (gst_sinesrc_dispose): + fix memleak by properly disposing sinesrc + +2004-02-04 Julien MOUTTE + + * gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_expose): + * gst-libs/gst/xoverlay/xoverlay.h: Adding the _expose method to tell + an overlay to redraw the image because it has been exposed. + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_destroy), + (gst_ximagesink_ximage_put), (gst_ximagesink_expose), + (gst_ximagesink_xoverlay_init), (gst_ximagesink_init): + * sys/ximage/ximagesink.h: Implement expose method from XOverlay + interface + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_destroy), + (gst_xvimagesink_xvimage_put), (gst_xvimagesink_expose), + (gst_xvimagesink_xoverlay_init), (gst_xvimagesink_init): + * sys/xvimage/xvimagesink.h: Implement expose method from XOverlay + interface + +2004-02-03 Benjamin Otte + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_type_find): + more memleak fixage + +2004-02-03 Benjamin Otte + + * ext/gdk_pixbuf/gstgdkpixbuf.c: (plugin_init): + * gst/typefind/gsttypefindfunctions.c: + fix memleaks shown by gst-typefind + +2004-02-03 Thomas Vander Stichele + + * common/glib-gen.mak: + add hack rule to touch .Plo files + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/tuner/Makefile.am: + remove glib_root variable + +2004-02-03 Benjamin Otte + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_add_stream): + set explicit caps before adding the element, so the autopluggers can + plug correctly. + * gst/typefind/gsttypefindfunctions.c: (mp3_type_find), + (mpeg2_sys_type_find), (mpeg1_sys_type_find), + (mpeg_video_type_find), (mpeg_video_stream_type_find), + (dv_type_find): + fix memleaks in typefind functions. gst_type_find_suggest takes a const + argument. + +2004-02-03 Thomas Vander Stichele + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/colorbalance/colorbalance-marshal.list: + * gst-libs/gst/colorbalance/colorbalance.c: + * gst-libs/gst/colorbalance/colorbalance.h: + * gst-libs/gst/colorbalance/colorbalancemarshal.list: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/mixer/mixer-marshal.list: + * gst-libs/gst/mixer/mixer.c: + * gst-libs/gst/mixer/mixer.h: + * gst-libs/gst/mixer/mixermarshal.list: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/play/play.h: + * gst-libs/gst/tuner/Makefile.am: + * gst-libs/gst/tuner/tuner-marshal.list: + * gst-libs/gst/tuner/tuner.c: + * gst-libs/gst/tuner/tuner.h: + * gst-libs/gst/tuner/tunermarshal.list: + use new glib-gen.mak snippet to clean up Makefile.am + fix various bugs in Makefile.am's + +2004-02-03 Benjamin Otte + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain): + handle chain parsing correctly in the multichain case + * ext/theora/theoradec.c: (gst_theora_dec_init), (_theora_ilog), + (theora_dec_from_granulepos), (theora_dec_to_granulepos), + (theora_dec_src_query), (theora_dec_src_event), (theora_dec_event), + (theora_dec_chain): + handle events and queries correctly + +2004-02-03 David I. Lehn + + * .cvsignore: + Ignore generated file _stdint.h. + +2004-02-03 David I. Lehn + + * gst-libs/gst/colorbalance/Makefile.am: + * gst-libs/gst/colorbalance/colorbalance.h: + * gst-libs/gst/mixer/Makefile.am: + * gst-libs/gst/mixer/mixer.h: + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/play/play.h: + * gst-libs/gst/tuner/Makefile.am: + * gst-libs/gst/tuner/tuner.h: + Generate enum type code with glib-mkenums. + * gst-libs/gst/colorbalance/.cvsignore: + * gst-libs/gst/mixer/.cvsignore: + * gst-libs/gst/play/.cvsignore: + * gst-libs/gst/tuner/.cvsignore: + Ignore generated files. + +2004-02-03 David I. Lehn + + * gst-libs/gst/audio/.cvsignore: + Ignore generated file. + * gst-libs/gst/audio/Makefile.am: + Do not install example filter. + +2004-02-03 David I. Lehn + + * examples/switch/.cvsignore: + Ignore generated file. + +2004-02-03 Benjamin Otte + + * common/m4/ax_create_stdint_h.m4: + * configure.ac: + add AX_CREATE_STDINT_H to get correct type definitions for a52dec in + _stdint.h. + * Makefile.am: + remove generated _stdint.h in DISTCLEANFILES + * ext/a52dec/gsta52dec.c: + include _stdint.h for a52dec. (should fix #133064) + +2004-02-02 Jeremy Simon + + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_add), + (gst_tag_to_vorbis_comments): + Add replaygain support to vorbistag + +2004-02-02 Jeremy Simon + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), + (gst_ffmpeg_caps_to_extradata): + Fix SVQ3 caps flag properties + Use glib macro for bytes swap + +2004-02-02 Thomas Vander Stichele + + * ext/audiofile/gstafsink.c: (gst_afsink_plugin_init): + * ext/audiofile/gstafsrc.c: (gst_afsrc_plugin_init): + * ext/gnomevfs/gstgnomevfs.c: (plugin_init): + * ext/sndfile/gstsf.c: (plugin_init): + * gst/avi/gstavi.c: (plugin_init): + * sys/dxr3/dxr3init.c: (plugin_init): + * sys/oss/gstossaudio.c: (plugin_init): + * sys/v4l/gstv4l.c: (plugin_init): + * sys/v4l2/gstv4l2.c: (plugin_init): + remove textdomain calls + * po/nl.po: + update Dutch translation + +2004-02-02 Julien MOUTTE + + * gst-libs/gst/play/play.c: (gst_play_pipeline_setup), + (gst_play_set_audio_sink): Moving volume in the audio thread for + instantaneous volume change. Maybe i will add another volume in front + of visualization later, not sure yet though. + +2004-02-02 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_renegotiate_size), + (gst_ximagesink_handle_xevents): Better X events handling, only take + the latest events for configure and motion. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents): same. + +2004-02-02 Jon Trowbridge + + reviewed by: David Schleef + + Fix memory leaks: + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_register): + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_register): + +2004-02-02 David Schleef + + code cleanup. Change bzero() to memset(). Remove duplicate ; at ends + of lines. + * ext/cdparanoia/gstcdparanoia.c: (cdparanoia_event): + * ext/flac/gstflactag.c: (gst_flac_tag_chain): + * ext/xvid/gstxviddec.c: (gst_xviddec_src_link): + * gst-libs/gst/play/play.c: (gst_play_get_sink_element): + * gst/ac3parse/gstac3parse.c: (gst_ac3parse_chain): + * gst/effectv/gstedge.c: (gst_edgetv_sinkconnect): + * gst/effectv/gstvertigo.c: (gst_vertigotv_sinkconnect): + * gst/intfloat/float22int.c: (gst_float2_2_int_getcaps), + (gst_float2_2_int_link): + * gst/mpeg2sub/gstmpeg2subt.c: (gst_mpeg2subt_chain_subtitle): + * gst/rtjpeg/RTjpeg.c: (RTjpeg_init_mcompress): + * gst/tcp/gsttcpsink.c: (gst_tcpsink_init_send): + * gst/tcp/gsttcpsrc.c: (gst_tcpsrc_init_receive): + * gst/udp/gstudpsink.c: (gst_udpsink_init_send): + * gst/udp/gstudpsrc.c: (gst_udpsrc_init_receive): + * sys/v4l/gstv4lelement.c: (gst_v4lelement_init): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_set_capture): + * testsuite/gst-lint: Add tests for bzero and ;; + +2004-02-02 David Schleef + + * gst/debug/efence.c: Add fallback if MAP_ANONYMOUS isn't defined. + +2004-02-02 Thomas Vander Stichele + + * ext/aalib/gstaasink.c: (gst_aasink_open): + * ext/alsa/gstalsa.c: (gst_alsa_link), (gst_alsa_xrun_recovery): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop): + * ext/audiofile/gstafsink.c: (gst_afsink_open_file), + (gst_afsink_close_file): + * ext/audiofile/gstafsrc.c: (gst_afsrc_open_file), + (gst_afsrc_close_file): + * ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain): + * ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain): + * ext/dv/gstdvdec.c: (gst_dvdec_loop): + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_user_op), (dvdnavsrc_get): + * ext/esd/esdmon.c: (gst_esdmon_get): + * ext/esd/esdsink.c: (gst_esdsink_chain), (gst_esdsink_open_audio): + * ext/faac/gstfaac.c: (gst_faac_chain): + * ext/faad/gstfaad.c: (gst_faad_chain): + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain): + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + * ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop): + * ext/flac/gstflacdec.c: (gst_flacdec_error_callback), + (gst_flacdec_loop): + * ext/flac/gstflacenc.c: (gst_flacenc_chain): + * ext/flac/gstflactag.c: (gst_flac_tag_chain): + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file), + (gst_gnomevfssink_close_file): + * ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init), + (gst_gnomevfssrc_open_file): + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop): + * ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_chain): + * ext/lcs/gstcolorspace.c: (gst_colorspace_srcconnect_func): + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event), + (gst_id3_tag_do_typefind), (gst_id3_tag_chain): + * ext/mad/gstmad.c: (gst_mad_chain): + * ext/mikmod/gstmikmod.c: (gst_mikmod_loop): + * ext/mpeg2dec/gstmpeg2dec.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mplex/gstmplex.cc: + * ext/mplex/gstmplexibitstream.cc: + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain), + (gst_ogg_demux_push): + * ext/raw1394/gstdv1394src.c: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_lock), + (gst_sdlvideosink_initsdl), (gst_sdlvideosink_create): + * ext/sndfile/gstsf.c: (gst_sf_open_file), (gst_sf_close_file), + (gst_sf_loop): + * ext/speex/gstspeexenc.c: (gst_speexenc_chain): + * ext/swfdec/gstswfdec.c: (gst_swfdec_loop): + * ext/tarkin/gsttarkindec.c: (gst_tarkindec_chain): + * ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_chain): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain): + * ext/vorbis/vorbisfile.c: (gst_vorbisfile_loop): + * ext/xvid/gstxviddec.c: (gst_xviddec_setup), (gst_xviddec_chain): + * ext/xvid/gstxvidenc.c: (gst_xvidenc_setup), (gst_xvidenc_chain): + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), + (gst_riff_read_element_data), (gst_riff_read_seek), + (gst_riff_peek_list), (gst_riff_read_list), (gst_riff_read_header): + * gst/adder/gstadder.c: (gst_adder_loop): + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment), + (gst_asf_demux_process_stream), (gst_asf_demux_get_stream): + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_init), + (gst_avi_demux_add_stream), (gst_avi_demux_stream_header): + * gst/avi/gstavimux.c: (gst_avimux_stop_file): + * gst/flx/gstflxdec.c: (gst_flxdec_loop): + * gst/goom/gstgoom.c: (gst_goom_chain): + * gst/id3/gstid3types.c: (gst_id3types_loop): + * gst/intfloat/float22int.c: (gst_float2_2_int_chain): + * gst/intfloat/gstfloat2int.c: (gst_float2int_loop): + * gst/intfloat/gstint2float.c: (gst_int2float_chain_gint16): + * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), + (gst_ebml_read_element_length), (gst_ebml_read_element_data), + (gst_ebml_read_seek), (gst_ebml_read_uint), (gst_ebml_read_sint), + (gst_ebml_read_float), (gst_ebml_read_header): + * gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream), + (gst_matroska_demux_parse_blockgroup): + * gst/monoscope/gstmonoscope.c: (gst_monoscope_chain): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop): + * gst/oneton/gstoneton.c: (gst_oneton_chain): + * gst/silence/gstsilence.c: (gst_silence_get): + * gst/sine/gstsinesrc.c: (gst_sinesrc_get): + * gst/smpte/gstsmpte.c: (gst_smpte_loop): + * gst/speed/gstspeed.c: (speed_loop): + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain): + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): + * gst/volenv/gstvolenv.c: (gst_volenv_chain): + * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt), + (gst_wavparse_loop): + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_open), + (dxr3audiosink_set_mode_pcm), (dxr3audiosink_set_mode_ac3), + (dxr3audiosink_close): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_open), (dxr3spusink_close): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_open), + (dxr3videosink_close), (dxr3videosink_write_data): + * sys/oss/gstosselement.c: (gst_osselement_open_audio): + * sys/oss/gstosssink.c: (gst_osssink_chain): + * sys/oss/gstosssrc.c: (gst_osssrc_get): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_buffer_free): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_buffer_free): + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay), + (gst_v4l_set_window), (gst_v4l_enable_overlay): + * sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities), (gst_v4l_open), + (gst_v4l_set_chan_norm), (gst_v4l_get_signal), + (gst_v4l_get_frequency), (gst_v4l_set_frequency), + (gst_v4l_get_picture), (gst_v4l_set_picture), (gst_v4l_get_audio), + (gst_v4l_set_audio): + * sys/v4l/v4l_calls.h: + * sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread), + (gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_set_playback), + (gst_v4lmjpegsink_playback_init), + (gst_v4lmjpegsink_playback_start): + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame), + (gst_v4lsrc_sync_frame), (gst_v4lsrc_capture_init), + (gst_v4lsrc_requeue_frame), (gst_v4lsrc_try_palette): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get): + * sys/v4l2/v4l2-overlay_calls.c: (gst_v4l2_set_display), + (gst_v4l2_set_window), (gst_v4l2_enable_overlay): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_get_norm), + (gst_v4l2_set_norm), (gst_v4l2_get_input), (gst_v4l2_set_input), + (gst_v4l2_get_output), (gst_v4l2_set_output), + (gst_v4l2_get_frequency), (gst_v4l2_set_frequency), + (gst_v4l2_signal_strength), (gst_v4l2_get_attribute), + (gst_v4l2_set_attribute): + * sys/v4l2/v4l2_calls.h: + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), + (gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame), + (gst_v4l2src_get_capture), (gst_v4l2src_set_capture), + (gst_v4l2src_capture_init), (gst_v4l2src_capture_start), + (gst_v4l2src_capture_stop): + * sys/vcd/vcdsrc.c: (vcdsrc_open_file): + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get), + (gst_ximagesink_chain): + * sys/xvideo/xvideosink.c: (gst_xvideosink_buffer_new), + (gst_xvideosink_sinkconnect), (gst_xvideosink_chain), + (gst_xvideosink_xwindow_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_chain): + +2004-02-02 Thomas Vander Stichele + + * gst/volume/gstvolume.c: (gst_volume_set_volume), + (gst_volume_get_volume), (volume_class_init), (volume_init), + (volume_chain_int16), (volume_update_volume): + * gst/volume/gstvolume.h: + make code more readable by removing magic numbers + make mixer interface export 0-100 range + make it internally map to 0.0-1.0 range so users don't distort + output by putting the sliders at full volume + +2004-02-02 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_tick_callback), + (gst_play_state_change), (gst_play_seek_to_time): + block the tick callback for 0.5 secs after doing a seek + +2004-02-02 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_new): + check for GError + +2004-02-01 Julien MOUTTE + + * gst-libs/gst/play/play.c: (gst_play_seek_to_time), + (gst_play_new): Accepting NULL GError, blocking time tick while seeking. + * sys/ximage/ximagesink.c: (gst_ximagesink_sink_link), + (gst_ximagesink_chain), (gst_ximagesink_init): s/sinkconnect/sink_link + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sink_link), + (gst_xvimagesink_chain), (gst_xvimagesink_init): s/sinkconnect/sink_link + +2004-02-01 Thomas Vander Stichele + + * configure.ac: + * ext/vorbis/vorbisdec.c: (vorbis_dec_event): + check for a function added in vorbis 1.1 + +2004-01-31 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start), + (gst_alsa_drain_audio), (gst_alsa_stop_audio): + really start/stop clock only on PLAYING <=> PAUSED + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + remove \n from debugging lines + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain): + make it work when seeking does not + * ext/vorbis/vorbisdec.c: (vorbis_dec_event): + reset on DISCONT + +2004-01-31 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_change_state), (gst_alsa_start): + start clock on PAUSED=>PLAYING, not later + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + extract correct time for different discont formats + (gst_alsa_sink_get_time): + don't segfault when no format is negotiated yet, just return 0 + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event), + (gst_ogg_demux_handle_event), (gst_ogg_demux_push), + (gst_ogg_pad_push): + handle flush and discont events correctly + * ext/vorbis/vorbisdec.c: (vorbis_dec_event), (vorbis_dec_chain): + handle discont events correctly + +2004-01-31 Thomas Vander Stichele + + * gst-libs/gst/play/play.c: (gst_play_error_quark), + (gst_play_error_create), (gst_play_error_plugin), + (gst_play_pipeline_setup), (gst_play_init), (gst_play_new): + * gst-libs/gst/play/play.h: + add error handling during creation + * examples/gstplay/player.c: (main): + use new gst_play_new + + +2004-01-31 Benjamin Otte + + * ext/theora/theoradec.c: (theora_dec_chain): + make comments work + * ext/vorbis/vorbisdec.c: (vorbis_dec_src_query), + (vorbis_dec_src_event), (vorbis_dec_chain): + add encoder tag, fix tag reading to be more error tolerant, change + BITRATE to NOMINAL_BITRATE, add debugging, don't unref events after + gst_pad_event_default. + * gst/tags/gstvorbistag.c: + (gst_tag_list_from_vorbiscomment_buffer): + undefine function specific define at end of function + +2004-01-31 Jeremy Simon + + * ext/flac/gstflac.c: (plugin_init): + * ext/flac/gstflacdec.c: (gst_flacdec_class_init): + * ext/flac/gstflacdec.h: + * ext/flac/gstflacenc.h: + Fix typos + +2004-01-30 David I. Lehn + + * examples/gstplay/player.c: s/gstplay.h/play.h/ + +2004-01-30 Thomas Vander Stichele + + * gst-libs/gst/play/Makefile.am: + * gst-libs/gst/play/gstplay.c: + * gst-libs/gst/play/gstplay.h: + * gst-libs/gst/play/play.c: + more surgery, operation complete + +2004-01-30 Thomas Vander Stichele + + * gst-libs/gst/play/play.old.c: + * gst-libs/gst/play/play.old.h: + after CVS surgery by moving, remove + * gst-libs/gst/play/playpipelines.c: + remove + + * gst/intfloat/float22int.c: (gst_float2_2_int_chain): + add negotiation error + +2004-01-30 Thomas Vander Stichele + + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_event), + (gst_ogg_demux_push): + add some seeking debug info + send a flush when seeking + +2004-01-30 Benjamin Otte + + * configure.ac: + use AC_C_INLINE + * configure.ac: + * ext/Makefile.am: + * ext/theora/Makefile.am: + * ext/theora/theoradec.c: + add theora video decoder. Does just do simple decoding for now and + has been tested against Theora cvs only. It only works when theora + is compiled with --enable-static. + * ext/vorbis/vorbisdec.c: (vorbis_dec_event): + always reset packetno on DISCONT + +2004-01-30 Ronald Bultje + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead): + Fix audio. + +2004-01-30 Ronald Bultje + + * gst/mpegaudioparse/gstmpegaudioparse.c: + (mp3_type_frame_length_from_header): + Fix header parsing - stolen from ffmpeg (thank you! :) ). + +2004-01-30 Ronald Bultje + + * ext/esd/esdsink.c: (gst_esdsink_init): + Since we have static pad template caps, we don't need to negotiate; + either the core errors out or we know the format. + +2004-01-30 Ronald Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), + (gst_riff_read_seek): + * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), + (gst_ebml_read_seek): + Fix event handling. + +2004-01-30 Benjamin Otte + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps): + removee video/x-theora from vp3 decoder, it doesn't handle raw + theora streams + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_init): + fix bug with finalizing element that never went to PAUSED + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_src_query): + length and position queries were swapped + * ext/vorbis/vorbisdec.c: (gst_vorbis_dec_init), + (vorbis_dec_from_granulepos), (vorbis_dec_src_query), + (vorbis_dec_src_event): + implement querying time and bytes + +2004-01-30 Thomas Vander Stichele + + * just about every source file: + gst_element_error -> GST_ELEMENT_ERROR + +2004-01-29 Julien MOUTTE + + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_get): Fixing seeking + emiting FLUSH and even before DISCONT. + * gst-libs/gst/play/gstplay.c: (gst_play_seek_to_time): Fix seeking to + get the best instant seeking as possible yay! + +2004-01-29 Ronald Bultje + + * gst/mpeg1videoparse/gstmp1videoparse.c: + (gst_mp1videoparse_real_chain): + Committed wrong version last week... Grr... Didn't notice until now. + +2004-01-29 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_new): Emit the + have_xwindow_id signal in xwindow_create. + +2004-01-29 Benjamin Otte + + * ext/ogg/gstoggdemux.c: + lots of changes - mainly support for chained bitstreams, seeking, + querying and bugfixes of course + * ext/vorbis/Makefile.am: + * ext/vorbis/vorbisdec.c: + * ext/vorbis/vorbisdec.h: + add vorbisdec raw vorbis decoder + * ext/vorbis/vorbis.c: (plugin_init): + register vorbisdec as PRIMARY, vorbisfile as SECONDARY + * gst/intfloat/Makefile.am: + * gst/intfloat/float22int.c: + * gst/intfloat/float22int.h: + * gst/intfloat/gstintfloatconvert.c: (plugin_init): + add float2intnew plugin. It converts multichannel interleaved float to + multichannel interleaved int. The name should probably be changed. + * gst/typefind/gsttypefindfunctions.c: (theora_type_find), + (plugin_init): + add typefinding for raw theora video so oggdemux can detect it. + +2004-01-28 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_seek_to_time): seek on video + sink element first. + * gst/videoscale/gstvideoscale.c: + (gst_videoscale_handle_src_event): Fixing src event handler. + +2004-01-28 Ronald Bultje + + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_class_init), (gst_v4lsrc_init), + (gst_v4lsrc_open), (gst_v4lsrc_close), + (gst_v4lsrc_palette_to_caps), (gst_v4lsrc_srcconnect), + (gst_v4lsrc_getcaps), (gst_v4lsrc_set_clock): + * sys/v4l/gstv4lsrc.h: + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_capture_start), + (gst_v4lsrc_grab_frame), (gst_v4lsrc_capture_stop): + Implement resizing... Hack. But that's why v4l is b0rked... + +2004-01-28 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_check_xshm_calls), + (gst_ximagesink_ximage_new), (gst_ximagesink_ximage_destroy), + (gst_ximagesink_ximage_put), (gst_ximagesink_xwindow_new), + (gst_ximagesink_xwindow_destroy): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_new), (gst_xvimagesink_xvimage_destroy), + (gst_xvimagesink_xwindow_new), (gst_xvimagesink_xwindow_destroy), + (gst_xvimagesink_xwindow_resize), (gst_xvimagesink_get_xv_support), + (gst_xvimagesink_xcontext_get): Removing some useless debugs messages, + correctly cleaning the image created to check xshm calls on succes, + added a lot of XSync calls in X11 functions, and fixed a segfault when + no image format was defined before negotiation happened. + +2004-01-28 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_query_func): + use gst_element_get_time to get correct time + +2004-01-28 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xerror), + (gst_ximagesink_check_xshm_calls), (gst_ximagesink_ximage_destroy), + (gst_ximagesink_xcontext_get), (gst_ximagesink_class_init): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xerror), + (gst_xvimagesink_check_xshm_calls), + (gst_xvimagesink_xvimage_destroy), (gst_xvimagesink_xcontext_get): Our + X plugins are now able to detect that XShm calls will fail even if the + server claims that it has XShm support (remote displays most of the + time). We then log the error as a GST_DEBUG and set use_shm to FALSE + so that we use non XShm functions. This feature is almost useless for + xvimagesink as Xv is not supported on remote displays anyway, but + it might happen than even on the local display XShm calls fail. + +2004-01-27 David Schleef + + * ext/esd/esdsink.c: (gst_esdsink_class_init), (gst_esdsink_init), + (gst_esdsink_link), (gst_esdsink_get_time), (gst_esdsink_chain), + (gst_esdsink_change_state): Fix sync issues in esdsink. Also + changed esdsink to only use 44100,16,2, since esd sucks at rate + conversion and esdsink has had difficulty negotiating. + +2004-01-27 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_tick_callback), + (gst_play_seek_to_time): Fixing the way to get current position. + +2004-01-27 Benjamin Otte + + * sys/oss/gstosssink.c: (gst_osssink_sink_query): + use gst_element_get_time to get correct time + +2004-01-27 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_set_location): The easiest + fix ever... Inverting 2 lines of code make spider autoplug correctly + tagged mp3 ! + +2004-01-27 David Schleef + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + Use gst_pad_try_set_caps_nonfixed(). + +2004-01-27 David Schleef + + * gst/ac3parse/gstac3parse.c: update to checklist 5 + * gst/adder/gstadder.c: rewrite negotiation. update to checklist 5 + * gst/audioconvert/gstaudioconvert.c: update to checklist 5 + * gst/audioscale/gstaudioscale.c: same + * gst/auparse/gstauparse.c: same + * gst/avi/gstavidemux.c: same + +2004-01-27 Benjamin Otte + + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_handle_sink_event): + stop processing after EOS + +2004-01-27 Benjamin Otte + + * gst/asfdemux/asfheaders.h: + * gst/asfdemux/gstasfdemux.c: + * gst/asfdemux/gstasfmux.c: (gst_asfmux_put_guid), + (gst_asfmux_put_string), (gst_asfmux_put_wav_header), + (gst_asfmux_put_vid_header), (gst_asfmux_put_bmp_header): + lot's of fixes to make data extraction simpler and get the code + architecture and compiler independant. Add debugging category + * gst/goom/gstgoom.c: (gst_goom_change_state): + reset channel count on PAUSED=>READY, not READY=>PAUSED + +2004-01-26 Colin Walters + + * ext/gnomevfs/gstgnomevfssrc.c (gst_gnomevfssrc_get): Remove ugly + code to pull a bigger buffer in iradio mode. This as a side effect + makes typefinding work. + +2004-01-26 Jeremy Simon + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_extradata): + Fix SVQ3 decoding on PPC + +2004-01-26 Julien MOUTTE + + * gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): Dunno how + that one managed to stay there... Fixed. + +2004-01-26 Jeremy Simon + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps), + (gst_ffmpeg_caps_to_extradata), (gst_ffmpeg_caps_to_pixfmt): + * gst/qtdemux/qtdemux.c: (plugin_init), (qtdemux_parse_trak), + (qtdemux_video_caps): + * gst/qtdemux/qtdemux.h: + Add SVQ3 specific flags to qtdemux and ffmpeg + +2004-01-26 Benjamin Otte + + * gst-libs/gst/audio/audio.h: + remove buffer-frames from audio caps + * gst/audioconvert/gstaudioconvert.c: + fix plugin to really work. + +2004-01-25 Ronald Bultje + + * gst-libs/gst/mixer/mixer.c: + * gst-libs/gst/propertyprobe/propertyprobe.c: + * gst-libs/gst/tuner/tuner.c: (gst_tuner_find_norm_by_name), + (gst_tuner_find_channel_by_name): + * gst-libs/gst/tuner/tuner.h: + Add gtk-doc style comments. Also fix a function name. + +2004-01-25 Ronald Bultje + + * ext/divx/gstdivxdec.c: (gst_divxdec_init), + (gst_divxdec_negotiate): + Fix for new capsnego - also fixes gst-player with divxdec. + +2004-01-25 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup), + (gst_play_identity_handoff), (gst_play_set_location), + (gst_play_set_visualization), (gst_play_connect_visualization): Another + try in visualization implementation. Still have an issue with switch + blocking when pulling from video_queue and only audio comes out of + spider. + * gst/switch/gstswitch.c: (gst_switch_release_pad), + (gst_switch_poll_sinkpads), (gst_switch_class_init): Implementing pad + release method. And check if the pad is usable before pulling. + +2004-01-25 Ronald Bultje + + * gst/videofilter/gstvideobalance.c: (gst_videobalance_dispose), + (gst_videobalance_init), + (gst_videobalance_colorbalance_list_channels), + (gst_videobalance_colorbalance_set_value), + (gst_videobalance_colorbalance_get_value), + (gst_videobalance_update_properties), + (gst_videobalance_update_tables_planar411), + (gst_videobalance_planar411): + * gst/videofilter/gstvideobalance.h: + Implement lookup-tables. +/- 10x faster. + +2004-01-25 Ronald Bultje + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), + (gst_avi_demux_stream_odml), (gst_avi_demux_stream_index): + The index reading was broken. The rest worked fine, but the whole + goal of my rewrite was to make avidemux readable, and this was + not at all readable. Please use typed variables. + +2004-01-25 Ronald Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): + Additional pad usability check. + * gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init), + (mp1videoparse_find_next_gop), (gst_mp1videoparse_time_code), + (gst_mp1videoparse_real_chain): + Fix MPEG video stream parsing. The original plugin had several + issues, including not timestamping streams where the source was + not timestamped (this happens with PTS values in mpeg system + streams, but MPEG video is also a valid stream on its own so + that needs timestamps too). We use the display time code for that + for now. Also, if one incoming buffer contains multiple valid + frames, we push them all on correctly now, including proper EOS + handling. Lastly, several potential segfaults were fixed, and we + properly sync on new sequence/gop headers to include them in next, + not previous frames (since they're header for the next frame, not + the previous). Also see #119206. + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_chain), + (bpf_from_header): + Move caps setting so we only do it after finding several valid + MPEG-1 fraes sequentially, not right after the first one (which + might be coincidental). + * gst/typefind/gsttypefindfunctions.c: (mpeg1_sys_type_find), + (mpeg_video_type_find), (mpeg_video_stream_type_find), + (plugin_init): + Add unsynced MPEG video stream typefinding, and change some + probability values so we detect streams rightly. The idea is as + follows: I can have an unsynced system stream which contains + video. In the current code, I would randomly get a type for either + system or video stream type found, because the probabilities are + being calculated rather randomly. I now use fixed values, so we + always prefer system stream if that was found (and that is how it + should be). If no system stream was found, we can still identity the stream as video-only. + +2004-01-23 Benjamin Otte + + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_avih), + (gst_avi_demux_stream_odml), (gst_avi_demux_stream_index): + don't write to buffer. Extract data without the need of + __attribute__ ((packed)) + +2004-01-23 Ronald Bultje + + * gst/typefind/gsttypefindfunctions.c: (mpeg1_parse_header), + (mpeg1_sys_type_find): + Fix MPEG-1 stream typefinding. + +2004-01-23 Ronald Bultje + + * gst/typefind/gsttypefindfunctions.c: (mpeg2_sys_type_find): + Fix typefinding for MPEG-1 system streams, similar to MPEG-2. + +2004-01-23 Thomas Vander Stichele + + * ext/esd/esdsink.c: (gst_esdsink_open_audio): + * ext/esd/gstesd.c: (plugin_init): + private debugging, better error reporting + +2004-01-23 Ronald Bultje + + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_class_init), + (gst_riff_read_init), (gst_riff_read_change_state): + * gst-libs/gst/riff/riff-read.h: + Remove stuff fromold metadata system. + +2004-01-23 Ronald Bultje + + * ext/ogg/gstoggdemux.c: + Fix wrong file comment. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_info): + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_header): + Add metadata reading properly. + +2004-01-23 Thomas Vander Stichele + + * ext/Makefile.am: + Fix nas DIST_SUBDIRS + Uraeus: + Fix bug where make distcheck doesn't get run on adding stuff to + the build. + +2004-01-23 Ronald Bultje + + * ext/divx/gstdivxdec.c: (gst_divxdec_init), (gst_divxdec_setup): + * ext/divx/gstdivxdec.h: + Fix divx3 ("msmpeg4") playback using divxdec. + +2004-01-23 Benjamin Otte + + * gst/typefind/gsttypefindfunctions.c: + (mp3_type_frame_length_from_header): fix bug in length computation + (mp3_type_find): improve debugging output + +2004-01-23 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup), + (gst_play_set_location), (gst_play_seek_to_time), + (gst_play_set_audio_sink), (gst_play_set_visualization), + (gst_play_connect_visualization), (gst_play_get_sink_element): Reworked + the pipeline from scratch. Visualization is back and switch went out as + i realized it was not possible to use the way i wanted. + * sys/ximage/ximagesink.c: (gst_ximagesink_imagepool_clear), + (gst_ximagesink_change_state), (gst_ximagesink_dispose): Move xcontext + clearing in state change from READY to NULL. So that one can clean the + X ressources keeping the element. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_imagepool_clear), (gst_xvimagesink_change_state), + (gst_xvimagesink_colorbalance_set_value), + (gst_xvimagesink_colorbalance_get_value), + (gst_xvimagesink_set_property), (gst_xvimagesink_dispose), + (gst_xvimagesink_init): Same xcontext cleaning than ximagesink in state + change from READY to NULL and fixed some stupid bugs in colorbalance + get/set values. Also added the following feature : when nobody tries to + set some values to the colorbalance levels before the xcontext is + grabbed, then when creating channels list from Xv attributes we set the + internal values to the Xv defaults. This way we handle buggy Xv drivers + that set default hue values far from the middle of the range (Thanks + to Jon Trowbridge for pointing that issue). + * sys/xvimage/xvimagesink.h: Adding a cb_changed boolean to know if + colorbalance levels have been set before xcontext is grabbed. + +2004-01-22 Ronald Bultje + + * sys/oss/gstosselement.c: (gst_osselement_class_probe_devices): + Fix the ossmixer case where we shouldn't open /dev/dsp* because + it might block operations (which is bad for a mixer). + +2004-01-22 Thomas Vander Stichele + + * gst-libs/gst/media-info/media-info-priv.c: (have_type_callback), + (deep_notify_callback), (gmi_set_decoder), (gmi_clear_decoder), + (gmip_find_type_pre): + * gst-libs/gst/media-info/media-info-priv.h: + * gst-libs/gst/media-info/media-info.c: + (gst_media_info_instance_init), (gst_media_info_read_idler): + add fakesink to get caps on decoder src pad again + fix callback prototype to match new have_type signal signature + +2004-01-22 Thomas Vander Stichele + + * gst/adder/gstadder.c: (gst_adder_link): + fix non-compile and cut-n-paste code + +2004-01-21 David Schleef + + * ext/swfdec/gstswfdec.c: (gst_swfdec_video_getcaps), + (gst_swfdec_video_link), (copy_image), (gst_swfdec_loop), + (gst_swfdec_init), (gst_swfdec_change_state): + * ext/swfdec/gstswfdec.h: + Fix negotiation. + * gst/adder/gstadder.c: (gst_adder_link), (gst_adder_init), + (gst_adder_request_new_pad): Fix negotiation. + * gst/goom/gstgoom.c: (gst_goom_init), (gst_goom_src_fixate): + Add a fixate function. + * gst/intfloat/gstfloat2int.c: + * gst/intfloat/gstfloat2int.h: + * gst/intfloat/gstint2float.c: + * gst/intfloat/gstint2float.h: + Completely rewrite the negotiation. Doesn't quite work yet, + due to some buffer-frames problem. + +2004-01-21 Thomas Vander Stichele + + * ext/gnomevfs/gstgnomevfssrc.c: + * sys/v4l2/v4l2_calls.h: + fix includes for distcheck + +2004-01-21 Christian Schaller + + * ext/nas/ + Add libnas (network audio system) plugin, patch from Arwed von Merkatz + based on earlier patch from Laurent Vivier + +2004-01-20 Jeremy Simon + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_caps_to_extradata): + Fix wma caps property + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_audio_caps): + Fix typo (flags1 and flags2) + +2004-01-20 Thomas Vander Stichele + + * gst-libs/gst/media-info/media-info-priv.c: + (deep_notify_callback), (gmi_seek_to_track), (gmi_get_decoder), + (gmip_find_type_pre), (gmip_find_type), (gmip_find_stream_post), + (gmip_find_stream), (gmip_find_track_metadata), + (gmip_find_track_streaminfo_post), (gmip_find_track_streaminfo), + (gmip_find_track_format): + * gst-libs/gst/media-info/media-info-priv.h: + * gst-libs/gst/media-info/media-info-test.c: (main): + * gst-libs/gst/media-info/media-info.c: (gst_media_info_init), + (gst_media_info_read_idler), (gst_media_info_read): + * gst-libs/gst/media-info/media-info.h: + register debugging category and use it for debugging + +2004-01-20 Thomas Vander Stichele + + * ext/vorbis/vorbisfile.c: (gst_vorbisfile_update_streaminfo), + (gst_vorbisfile_new_link): + signal streaminfo through tags + +2004-01-20 Ronald Bultje + + * ext/mplex/gstmplex.cc: + * ext/mplex/gstmplexibitstream.cc: + g++ doesn't like NULL in our i18n/error macros, should be + either (NULL) or (""). + +2004-01-20 Ronald Bultje + + * sys/dxr3/dxr3audiosink.c: + * sys/dxr3/dxr3init.c: + * sys/dxr3/dxr3spusink.c: (dxr3spusink_close): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_close): + Fix more error error error errors (missing includes here). + +2004-01-20 Ronald Bultje + + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + fix thomas' error errors. + +2004-01-20 Thomas Vander Stichele + + * ext/mpeg2enc/gstmpeg2enc.cc: + fix error errors. + +2004-01-20 Ronald Bultje + + * ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain): + * ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain): + Fix for new error system. + +2004-01-20 Thomas Vander Stichele + + * ext/divx/gstdivxenc.c: (gst_divxenc_setup), (gst_divxenc_chain): + fix for new error reporting + +2004-01-20 David Schleef + + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents), + (gst_ximagesink_xcontext_get), (gst_ximagesink_getcaps), + (gst_ximagesink_set_xwindow_id): Change to using a framerate + of [1,100] instead of [0,MAX], since 0 isn't handled correctly, + and neither is 100+, most likely. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support), + (gst_xvimagesink_getcaps): same + +2004-01-19 Benjamin Otte + + * configure.ac: + Up version requirement to 2.0.3 (not yet released) to avoid symbol + clashes with ffmpeg. + +2004-01-20 Julien MOUTTE + + * gst/switch/gstswitch.c: (gst_switch_request_new_pad), + (gst_switch_init): Fixed switch element : proxying link and setting + caps from src to sink on request. + +2004-01-19 Thomas Vander Stichele + + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_overlay): + * sys/v4l2/v4l2-overlay_calls.c: (gst_v4l2_set_display), + (gst_v4l2_set_window), (gst_v4l2_enable_overlay): + fix element_error + +2004-01-19 Thomas Vander Stichele + + * sys/v4l/v4l_calls.h: + * sys/v4l2/v4l2_calls.h: + element_error fixes + +2004-01-19 Thomas Vander Stichele + + * gst-libs/gst/gst-i18n-plugin.h: + add locale.h + remove config.h inclusion + +2004-01-19 Thomas Vander Stichele + + * autogen.sh: + adding autopoint invocation + * Makefile.am: + * configure.ac: + * gst-libs/gst/gettext.h: + adding gettext bits + * ext/audiofile/gstafsink.c: (gst_afsink_plugin_init): + * ext/audiofile/gstafsrc.c: (gst_afsrc_plugin_init): + * ext/gnomevfs/gstgnomevfs.c: (plugin_init): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file), + (gst_gnomevfssink_close_file): + * ext/gnomevfs/gstgnomevfssrc.c: (gst_gnomevfssrc_open_file): + * ext/sndfile/gstsf.c: (gst_sf_loop), (plugin_init): + * gst-libs/gst/gst-i18n-plugin.h: + * gst/avi/gstavi.c: (plugin_init): + * sys/dxr3/dxr3init.c: (plugin_init): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_write_data): + * sys/oss/gstossaudio.c: (plugin_init): + * sys/oss/gstosselement.c: (gst_osselement_open_audio): + * sys/v4l/gstv4l.c: (plugin_init): + * sys/v4l/v4l_calls.c: (gst_v4l_open): + * sys/v4l2/gstv4l2.c: (plugin_init): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_fill_lists), (gst_v4l2_get_norm), (gst_v4l2_set_norm), + (gst_v4l2_get_input), (gst_v4l2_set_input), (gst_v4l2_get_output), + (gst_v4l2_set_output), (gst_v4l2_get_frequency), + (gst_v4l2_set_frequency), (gst_v4l2_signal_strength), + (gst_v4l2_get_attribute), (gst_v4l2_set_attribute): + make sure locale and translation domain are set + fix translated strings + * po/.cvsignore: + * po/LINGUAS: + * po/Makevars: + * po/POTFILES.in: + * po/nl.po: + put translation files into place + * sys/xvideo/imagetest.c: (main): + * ext/dv/demo-play.c: (main): + fix unnecessary translations + +2004-01-19 Thomas Vander Stichele + + * ext/sndfile/gstsf.c: + * gst/avi/gstavimux.c: + * ext/audiofile/gstafsink.c: + * ext/audiofile/gstafsrc.c: + * ext/gnomevfs/gstgnomevfssink.c: + * ext/gnomevfs/gstgnomevfssrc.c: + * sys/oss/gstosselement.c: + * sys/v4l/v4l_calls.h: + fix i18n include + +2004-01-19 Thomas Vander Stichele + + * sys/v4l2/v4l2_calls.c: (gst_v4l2_get_capabilities), + (gst_v4l2_fill_lists), (gst_v4l2_open), (gst_v4l2_get_norm), + (gst_v4l2_set_norm), (gst_v4l2_get_input), (gst_v4l2_set_input), + (gst_v4l2_get_output), (gst_v4l2_set_output), + (gst_v4l2_get_frequency), (gst_v4l2_set_frequency), + (gst_v4l2_signal_strength), (gst_v4l2_get_attribute), + (gst_v4l2_set_attribute): + update to new error handling + +2004-01-19 Thomas Vander Stichele + + * ext/sidplay/gstsiddec.cc: + * gst/modplug/gstmodplug.cc: + parenthese NULL because C++ seems angry about it + +2004-01-19 Thomas Vander Stichele + + * gst-libs/gst/gst-i18n-plugin.h: + add skeleton i18n stuff, but needs to be further implemented + +2004-01-18 Thomas Vander Stichele + + * examples/gstplay/player.c: (main): + * ext/aalib/gstaasink.c: (gst_aasink_open): + * ext/alsa/gstalsa.c: (gst_alsa_link), (gst_alsa_xrun_recovery): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_loop): + * ext/alsa/gstalsasrc.c: (gst_alsa_src_loop): + * ext/audiofile/gstafsink.c: (gst_afsink_open_file), + (gst_afsink_close_file): + * ext/audiofile/gstafsrc.c: (gst_afsrc_open_file), + (gst_afsrc_close_file): + * ext/divx/gstdivxdec.c: (gst_divxdec_setup), (gst_divxdec_chain): + * ext/dv/gstdvdec.c: (gst_dvdec_loop): + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_user_op), (dvdnavsrc_get): + * ext/esd/esdmon.c: (gst_esdmon_get): + * ext/esd/esdsink.c: (gst_esdsink_chain): + * ext/faac/gstfaac.c: (gst_faac_chain): + * ext/faad/gstfaad.c: (gst_faad_chain): + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_chain): + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + * ext/ffmpeg/gstffmpegmux.c: (gst_ffmpegmux_loop): + * ext/flac/gstflacdec.c: (gst_flacdec_error_callback), + (gst_flacdec_loop): + * ext/flac/gstflacenc.c: (gst_flacenc_chain): + * ext/flac/gstflactag.c: (gst_flac_tag_chain): + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_chain): + * ext/gnomevfs/gstgnomevfssink.c: (gst_gnomevfssink_open_file), + (gst_gnomevfssink_close_file): + * ext/gnomevfs/gstgnomevfssrc.c: (audiocast_init), + (gst_gnomevfssrc_open_file): + * ext/ivorbis/vorbisfile.c: (gst_ivorbisfile_loop): + * ext/lame/gstlame.c: (gst_lame_sink_link), (gst_lame_chain): + * ext/lcs/gstcolorspace.c: (gst_colorspace_srcconnect_func): + * ext/mad/gstid3tag.c: (gst_id3_tag_handle_event), + (gst_id3_tag_do_typefind), (gst_id3_tag_chain): + * ext/mad/gstmad.c: (gst_mad_chain): + * ext/mikmod/gstmikmod.c: (gst_mikmod_loop): + * ext/mpeg2dec/gstmpeg2dec.c: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mplex/gstmplex.cc: + * ext/mplex/gstmplexibitstream.cc: + * ext/ogg/gstoggdemux.c: (gst_ogg_demux_chain), + (gst_ogg_demux_push), (gst_ogg_pad_push): + * ext/raw1394/gstdv1394src.c: + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_lock), + (gst_sdlvideosink_initsdl), (gst_sdlvideosink_create): + * ext/sidplay/gstsiddec.cc: + * ext/sndfile/gstsf.c: (gst_sf_open_file), (gst_sf_close_file), + (gst_sf_loop): + * ext/speex/gstspeexenc.c: (gst_speexenc_chain): + * ext/tarkin/gsttarkindec.c: (gst_tarkindec_chain): + * ext/tarkin/gsttarkinenc.c: (gst_tarkinenc_chain): + * ext/vorbis/vorbisenc.c: (gst_vorbisenc_chain): + * ext/vorbis/vorbisfile.c: (gst_vorbisfile_loop): + * ext/xvid/gstxviddec.c: (gst_xviddec_setup), (gst_xviddec_chain): + * ext/xvid/gstxvidenc.c: (gst_xvidenc_setup), (gst_xvidenc_chain): + * gst-libs/gst/Makefile.am: + * gst-libs/gst/riff/riff-read.c: (gst_riff_peek_head), + (gst_riff_read_element_data), (gst_riff_read_seek), + (gst_riff_peek_list), (gst_riff_read_list), (gst_riff_read_header): + * gst/adder/gstadder.c: (gst_adder_parse_caps), (gst_adder_loop): + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_process_segment), + (gst_asf_demux_process_stream), (gst_asf_demux_get_stream): + * gst/avi/gstavidemux.c: (gst_avi_demux_stream_init), + (gst_avi_demux_add_stream), (gst_avi_demux_stream_header): + * gst/avi/gstavimux.c: (gst_avimux_stop_file): + * gst/flx/gstflxdec.c: (gst_flxdec_loop): + * gst/goom/gstgoom.c: (gst_goom_chain): + * gst/id3/gstid3types.c: (gst_id3types_loop): + * gst/intfloat/gstfloat2int.c: (gst_float2int_loop): + * gst/intfloat/gstint2float.c: (gst_int2float_chain_gint16): + * gst/matroska/ebml-read.c: (gst_ebml_read_element_id), + (gst_ebml_read_element_length), (gst_ebml_read_element_data), + (gst_ebml_read_seek), (gst_ebml_read_uint), (gst_ebml_read_sint), + (gst_ebml_read_float), (gst_ebml_read_header): + * gst/matroska/matroska-demux.c: (gst_matroska_demux_init_stream), + (gst_matroska_demux_parse_blockgroup): + * gst/modplug/gstmodplug.cc: + * gst/monoscope/gstmonoscope.c: (gst_monoscope_chain): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop): + * gst/oneton/gstoneton.c: (gst_oneton_chain): + * gst/silence/gstsilence.c: (gst_silence_get): + * gst/sine/gstsinesrc.c: (gst_sinesrc_get): + * gst/smpte/gstsmpte.c: (gst_smpte_loop): + * gst/speed/gstspeed.c: (speed_loop): + * gst/tags/gstvorbistag.c: (gst_vorbis_tag_chain): + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): + * gst/volenv/gstvolenv.c: (gst_volenv_chain): + * gst/wavenc/gstwavenc.c: (gst_wavenc_chain): + * gst/wavparse/gstwavparse.c: (gst_wavparse_parse_fmt), + (gst_wavparse_loop): + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_open), + (dxr3audiosink_set_mode_pcm), (dxr3audiosink_set_mode_ac3), + (dxr3audiosink_close): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_open), (dxr3spusink_close): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_open), + (dxr3videosink_close), (dxr3videosink_write_data): + * sys/oss/gstosselement.c: (gst_osselement_open_audio): + * sys/oss/gstosselement.h: + * sys/oss/gstosssink.c: (gst_osssink_get_type), (gst_osssink_init), + (gst_osssink_chain): + * sys/oss/gstosssrc.c: (gst_osssrc_get): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_buffer_free): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_buffer_free): + * sys/v4l/v4l-overlay_calls.c: (gst_v4l_set_window), + (gst_v4l_enable_overlay): + * sys/v4l/v4l_calls.c: (gst_v4l_get_capabilities), (gst_v4l_open), + (gst_v4l_set_chan_norm), (gst_v4l_get_signal), + (gst_v4l_get_frequency), (gst_v4l_set_frequency), + (gst_v4l_get_picture), (gst_v4l_set_picture), (gst_v4l_get_audio), + (gst_v4l_set_audio): + * sys/v4l/v4l_calls.h: + * sys/v4l/v4lmjpegsink_calls.c: (gst_v4lmjpegsink_sync_thread), + (gst_v4lmjpegsink_queue_frame), (gst_v4lmjpegsink_set_playback), + (gst_v4lmjpegsink_playback_init), + (gst_v4lmjpegsink_playback_start): + * sys/v4l/v4lmjpegsrc_calls.c: (gst_v4lmjpegsrc_queue_frame), + (gst_v4lmjpegsrc_sync_next_frame), (gst_v4lmjpegsrc_set_capture), + (gst_v4lmjpegsrc_set_capture_m), (gst_v4lmjpegsrc_capture_init), + (gst_v4lmjpegsrc_requeue_frame): + * sys/v4l/v4lsrc_calls.c: (gst_v4lsrc_queue_frame), + (gst_v4lsrc_sync_frame), (gst_v4lsrc_capture_init), + (gst_v4lsrc_requeue_frame), (gst_v4lsrc_try_palette): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_get): + * sys/v4l2/v4l2src_calls.c: (gst_v4l2src_fill_format_list), + (gst_v4l2src_queue_frame), (gst_v4l2src_grab_frame), + (gst_v4l2src_get_capture), (gst_v4l2src_set_capture), + (gst_v4l2src_capture_init), (gst_v4l2src_capture_start), + (gst_v4l2src_capture_stop): + * sys/vcd/vcdsrc.c: (vcdsrc_open_file): + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get), + (gst_ximagesink_chain): + * sys/xvideo/xvideosink.c: (gst_xvideosink_buffer_new), + (gst_xvideosink_sinkconnect), (gst_xvideosink_chain), + (gst_xvideosink_xwindow_new): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_chain): + use new error signal, function and categories + +2004-01-18 Jeremy Simon + + * configure.ac: + * ext/Makefile.am: + * ext/musicbrainz/gsttrm.c: + * ext/musicbrainz/gsttrm.h: + * ext/musicbrainz/Makefile.am: + Add a trm plugin + +2004-01-18 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_set_property), + (gst_ximagesink_get_property), (gst_ximagesink_class_init): Adding + synchronous property for debugging. + * sys/ximage/ximagesink.h: Adding the synchronous boolean flag. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_set_property): Moving a pointer declaration to a + smaller block, fixing indent. + +2004-01-16 David Schleef + + * gst/videofilter/gstvideobalance.c: Fix regression; changing a + property affects the video stream. + * sys/xvimage/xvimagesink.c: + * sys/xvimage/xvimagesink.h: + Add synchronous property for debugging. Should probably be + disabled in non-CVS builds. Make sure that the Xv attribute + exists before we set it (crash!). Fix a silly float bug that + caused colorbalance to just not work. + +2004-01-17 Christian Schaller + + * tools/gst-launch-ext.in - update for new plugins + +2004-01-16 David Schleef + + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect): Fix use of + already-freed caps. + +2994-01-16 Christian Schaller + + * Update spec for new colorspace plugin and libcaca plugin + * Fix compilation of libcaca plugin (clock -> id) + +2004-01-16 Julien MOUTTE + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_update_colorbalance), + (gst_xvimagesink_xcontext_get), (gst_xvimagesink_change_state), + (gst_xvimagesink_set_xwindow_id), + (gst_xvimagesink_colorbalance_set_value), + (gst_xvimagesink_colorbalance_get_value), + (gst_xvimagesink_set_property), (gst_xvimagesink_get_property), + (gst_xvimagesink_init), (gst_xvimagesink_class_init): Implementing + correct colorbalance properties. They can now be set when the element + is still in NULL state. The values will be committed to the Xv Port + when xcontext is initialized. + * sys/xvimage/xvimagesink.h: Added hue, saturation, contrast, + brightness int values in the GstXvImagesink structure. + +2004-01-16 Ronald Bultje + + * gst-libs/gst/Makefile.am: + restructure so having local patches works easier. + +2004-01-16 Ronald Bultje + + * ext/mpeg2enc/Makefile.am: + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + Bugfix with respect to EOS handling. + +2004-01-16 Ronald Bultje + + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect): + Link with right caps (else, it segfaults). + * ext/mplex/gstmplexjob.cc: + Fix for slight API change in 1.6.1.93 release of mjpegtools. + +2004-01-15 David Schleef + + * gst-libs/gst/audio/Makefile.am: + Add gstaudiofiltertemplate.c and building of gstaudiofilterexample.c + from the template. + * gst-libs/gst/audio/gstaudiofilter.c: + * gst-libs/gst/audio/gstaudiofilter.h: + Add bytes_per_sample and size and n_samples calculation. + * gst-libs/gst/audio/gstaudiofilterexample.c: + Remove, now autogenerated. + * gst-libs/gst/audio/gstaudiofiltertemplate.c: + Moved from gstaudiofilterexample, object name changed, code added + so that it actually works. + * gst-libs/gst/audio/make_filter: + Script to build an audiofilter subclass from the template. + * gst/colorspace/Makefile.am: + * gst/colorspace/yuv2yuv.c: + Remove file, since it's GPL, and we don't use it. + +2004-01-15 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_chain): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): Making both of + them use the buffer free function to test how the buffer was allocated. + +2004-01-15 David Schleef + + * ext/esd/esdsink.c: (gst_esdsink_class_init): Remove property + that handles osssink fallback. + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_init), + (gst_audio_convert_getcaps): + * gst/qtdemux/qtdemux.c: (qtdemux_audio_caps): + Add audio/x-qdm2 for QDM2 audio. + * gst/sine/gstsinesrc.c: (gst_sinesrc_get): + * gst/sine/gstsinesrc.h: Add example of how to implement tags. + * gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps): + Decrease minimum size to 16x16. + * gst/wavparse/gstwavparse.c: + Convert disabled pad template caps to new caps. + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_chain): Throw element error when display cannot + be opened. Increase minimum framerate to 1.0. Check the data + free function on a buffer to make sure it is the type we expect + before manipulating it. + +2004-01-15 Julien MOUTTE + + * gst/videofilter/gstvideobalance.c: (gst_videobalance_init), + (gst_videobalance_colorbalance_set_value): Implement passthru if + settings are in the middle. + * tools/gst-launch-ext.in: Stop using xvideosink, use ximagesink. + +2004-01-15 Ronald Bultje + + * gst/videofilter/Makefile.am: + * gst/volume/Makefile.am: + Since we use videofilter symbols, link to it. + +2004-01-15 Julien MOUTTE + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_interface_init): Setting + mixer interface type to HARDWARE. + * gst-libs/gst/mixer/mixer.c: (gst_mixer_class_init): Adding a default + type to SOFTWARE. + * gst-libs/gst/mixer/mixer.h: Adding mixer interface type and macro. + * gst-libs/gst/mixer/mixertrack.h: Adding mixertrack flag SOFTWARE. + * gst/volume/gstvolume.c: (gst_volume_interface_supported), + (gst_volume_interface_init), (gst_volume_list_tracks), + (gst_volume_set_volume), (gst_volume_get_volume), + (gst_volume_set_mute), (gst_volume_mixer_init), + (gst_volume_dispose), (gst_volume_get_type), (volume_class_init), + (volume_init): Implementing mixer interface. + * gst/volume/gstvolume.h: Adding tracklist for mixer interface. + * sys/oss/gstosselement.c: (gst_osselement_get_type), + (gst_osselement_change_state): Removing some trailing commas in + structures. + * sys/oss/gstossmixer.c: (gst_ossmixer_interface_init): Setting mixer + interface type to HARDWARE. + * sys/v4l/gstv4lcolorbalance.c: + (gst_v4l_color_balance_interface_init): Setting colorbalance interface + type to HARDWARE. + * sys/v4l2/gstv4l2colorbalance.c: + (gst_v4l2_color_balance_interface_init): Setting colorbalance + interface type to HARDWARE. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): use exactly the + same code than ximagesink for event handling. + +2004-01-15 Ronald Bultje + + * ext/snapshot/Makefile.am: + * ext/snapshot/gstsnapshot.c: (gst_snapshot_sinkconnect), + (gst_snapshot_chain): + * ext/snapshot/gstsnapshot.h: + This has to be a joke... Snapshot should be connected to a tee, + colorspace element before it and EOS after that, where the other + src of the tee receives normal data. + The current way is *wrong*. + +2004-01-15 Ronald Bultje + + * ext/hermes/gsthermescolorspace.c: + Fix another compile error. Same as below. + +2004-01-15 Ronald Bultje + + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/yuv2yuv.c: (gst_colorspace_yuy2_to_i420), + (gst_colorspace_i420_to_yv12): + Fix compiling... Didn't test if it actually works. + +2004-01-15 David Schleef + + * configure.ac: + * gst/colorspace/Makefile.am: + * gst/colorspace/gstcolorspace.c: + * gst/colorspace/gstcolorspace.h: + * gst/colorspace/yuv2rgb.c: + * gst/colorspace/yuv2rgb.h: + Duplicate the ext/hermes colorspace plugin, and remove Hermes + code and GPL code. Fix for new caps negotiation. Rewrite + much of the format handling code, and some of the conversion + code. Basically, rewrote almost everything. This element + handles I420, YV12 to RGB conversions. + * ext/hermes/Makefile.am: + * ext/hermes/gsthermescolorspace.c: + Rename colorspace to hermescolorspace. Fix negotiation issues. + Remove non-Hermes related code. This element handles lots of + RGB to RGB conversions, but no YUV. + * ext/hermes/gstcolorspace.c: + * ext/hermes/gstcolorspace.h: + * ext/hermes/rgb2yuv.c: + * ext/hermes/yuv2rgb.c: + * ext/hermes/yuv2rgb.h: + * ext/hermes/yuv2rgb_mmx16.s: + * ext/hermes/yuv2yuv.c: + * ext/hermes/yuv2yuv.h: + Remove old code. + +2004-01-14 Colin Walters + + * ext/mad/gstid3tag.c (gst_id3_tag_chain): Don't nego caps if + they've already been. + +2004-01-15 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_do_caps_nego): + assume tag mode when pad is not connected + +2004-01-15 Benjamin Otte + + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + Don't update the time of the clock + (gst_alsa_sink_loop): + sync to the clock given to alsasink, not the own clock + * sys/oss/gstosssink.c: (gst_osssink_chain): + sync to the clock + (gst_osssink_change_state): + activate the clock + * sys/ximage/ximagesink.c: (gst_ximagesink_chain): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): + remove bogus code that made DISCONT events unhandled + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_video_caps): + explicitly case to double in _set_simple. (fixes 2nd warning in bug + #131502) + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_read_object_header), + (gst_asf_demux_handle_sink_event), (gst_asf_demux_audio_caps), + (gst_asf_demux_add_audio_stream), (gst_asf_demux_video_caps): + convert g_warning because of wrong asf data to GST_WARNINGs (fixes + 2nd warning in bug #131502) + +2004-01-14 Julien MOUTTE + + * gst/videofilter/gstvideobalance.c: (gst_videobalance_init), + (gst_videobalance_colorbalance_set_value), + (gst_videobalance_colorbalance_get_value): Fixing videobalance ranges + for colorbalance interface implementation. + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get), + (gst_ximagesink_set_property), (gst_ximagesink_get_property), + (gst_ximagesink_dispose), (gst_ximagesink_init), + (gst_ximagesink_class_init): Adding DISPLAY property. + * sys/ximage/ximagesink.h: Adding display_name to store display. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_set_property), (gst_xvimagesink_get_property), + (gst_xvimagesink_dispose), (gst_xvimagesink_init), + (gst_xvimagesink_class_init): Adding DISPLAY property and colorbalance + properties (they still need polishing though for gst-launch use : no + xcontext yet, i ll do that tomorrow). + * sys/xvimage/xvimagesink.h: Adding display_name to store display. + +2004-01-14 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup), + (gst_play_set_location), (gst_play_set_visualization): Preparing + switch integration, adding videobalance in the pipeline. + +2004-01-14 Julien MOUTTE + + * gst-libs/gst/colorbalance/colorbalance.c: + (gst_color_balance_class_init): Adding a default type. + * gst-libs/gst/colorbalance/colorbalance.h: Adding a macro to access + the type. + * gst/videofilter/gstvideobalance.c: (gst_videobalance_get_type), + (gst_videobalance_dispose), (gst_videobalance_class_init), + (gst_videobalance_init), (gst_videobalance_interface_supported), + (gst_videobalance_interface_init), + (gst_videobalance_colorbalance_list_channels), + (gst_videobalance_colorbalance_set_value), + (gst_videobalance_colorbalance_get_value), + (gst_videobalance_colorbalance_init): Implementing colorbalance + interface. + * gst/videofilter/gstvideobalance.h: Adding colorbalance channels + list. + * sys/ximage/ximagesink.c: (gst_ximagesink_set_xwindow_id): Fixing a + bug which was triggering a BadAccess X error when setting an overlay + before pad was really negotiated. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_colorbalance_init): + Using the colorbalance type macro. + +2004-01-14 Benjamin Otte + + * ext/flac/gstflacenc.c: (gst_flacenc_set_metadata), + (gst_flacenc_chain): + handle tags correctly + * gst/tags/gstid3tag.c: (gst_tag_list_new_from_id3v1): + extract ID3v1 tags correctly + +2004-01-14 Ronald Bultje + + * gst/typefind/gsttypefindfunctions.c: (matroska_type_find), + (plugin_init): + Improve matroska typefinding for odd-typed headers... + +2004-01-14 Ronald Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream): + Fix for using incremental number on padnames. + +2004-01-14 Ronald Bultje + + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + Set category to divx4linux instead of divx (too generic). + * gst/wavparse/gstwavparse.c: (gst_wavparse_init), + (gst_wavparse_parse_fmt), (gst_wavparse_handle_sink_event), + (gst_wavparse_loop), (gst_wavparse_change_state): + * gst/wavparse/gstwavparse.h: + fix parsing of WAV files with non-standard fmt-tag size and fix + skipping of unrecognized chunks... Someone please fix this thing + to use rifflib so all this is automated. + * sys/v4l/Makefile.am: + * sys/v4l2/Makefile.am: + Add X_CFLAGS because we depend on X (for overlay). + +2004-01-14 Jan Schmidt + + * ext/mpeg2dec/gstmpeg2dec.c: + Don't issue a timestamp unless we tagged the frame + with a PTS. + +2004-01-14 Benjamin Otte + + * gst-libs/gst/play/gstplay.c: (gst_play_tick_callback): + Query the audio element to get the time, not the clock. We're + interested in the element's time here. + +2004-01-14 Benjamin Otte + + * ext/aalib/gstaasink.c: (gst_aasink_chain): + * ext/alsa/gstalsasink.c: (gst_alsa_sink_check_event): + * ext/esd/esdsink.c: (gst_esdsink_chain): + * ext/libcaca/gstcacasink.c: (gst_cacasink_chain): + * ext/mas/massink.c: (gst_massink_chain): + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_chain): + * gst/matroska/matroska-demux.c: (gst_matroska_demux_parse_index), + (gst_matroska_demux_parse_metadata): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop), + (gst_mpeg_parse_release_locks): + * gst/tcp/gsttcpsink.c: (gst_tcpsink_chain): + * gst/udp/gstudpsink.c: (gst_udpsink_chain): + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): + * sys/oss/gstosssink.c: (gst_osssink_init), (gst_osssink_chain), + (gst_osssink_change_state): + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_chain): + * sys/ximage/ximagesink.c: (gst_ximagesink_chain): + * sys/xvideo/xvideosink.c: (gst_xvideosink_chain), + (gst_xvideosink_release_locks): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): + use element time. + * ext/alsa/gstalsaclock.c: (gst_alsa_clock_start), + (gst_alsa_clock_stop): + * gst-libs/gst/audio/audioclock.c: (gst_audio_clock_set_active), + (gst_audio_clock_get_internal_time): + simplify for use with new clocking code. + * testsuite/alsa/Makefile.am: + * testsuite/alsa/sinesrc.c: (sinesrc_init), (sinesrc_force_caps): + fix testsuite for new caps system + +2004-01-14 Benjamin Otte + + * ext/flac/gstflacdec.c: (gst_flacdec_update_metadata): + * ext/flac/gstflacenc.c: (add_one_tag): + length is already host endian, no need to convert. Fixes playback of + tagged files on PPC. (bug #128384) + +2004-01-13 Julien MOUTTE + + * gst-libs/gst/colorbalance/colorbalance.h: Adding a type to the + colorbalance interface stating if it is hardware based or software + based. + * gst/videofilter/gstvideobalance.c: (gst_videobalance_planar411): + Removing a trailing comma. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_colorbalance_init): Integrating a patch from Jon + Trowbridge querying Xv adaptor for min/max value as + the documentation seems to be wrong on the -1000 to 1000 interval. + +2004-01-12 David Schleef + + * gst/debug/efence.c: (gst_efence_init), (gst_efence_chain), + (gst_efence_buffer_alloc), (gst_fenced_buffer_new), + (gst_fenced_buffer_default_free), (gst_fenced_buffer_default_copy): + Fix negotiation. Add a bufferalloc function for the sink pad, + and generally clean up some of the code. + +2004-01-12 Julien MOUTTE + + * gst-libs/gst/colorbalance/colorbalancechannel.c: + (gst_color_balance_channel_dispose): Adding safety check in dispose + method. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_xcontext_clear), + (gst_xvimagesink_interface_supported), + (gst_xvimagesink_colorbalance_list_channels), + (gst_xvimagesink_colorbalance_set_value), + (gst_xvimagesink_colorbalance_get_value), + (gst_xvimagesink_colorbalance_init), (gst_xvimagesink_get_type): + Adding colorbalance interface support to set XV parameters such as + HUE, BRIGHTNESS, CONTRAST, SATURATION. + * sys/xvimage/xvimagesink.h: Adding the channels list for colorbalance + interface. + +2004-01-12 Thomas Vander Stichele + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_get_type), + (gst_audio_convert_class_init), (gst_audioconvert_getcaps), + (gst_audio_convert_init), (gst_audio_convert_set_property), + (gst_audio_convert_get_property), (gst_audio_convert_chain), + (gst_audio_convert_link), + (gst_audio_convert_buffer_to_default_format), + (gst_audio_convert_buffer_from_default_format), (plugin_init): + - implement _getcaps and use it + - improve linking + - remove float caps since no float conversion is actually done + - remove properties and arguments that were to be used for rate + conversion + +2004-01-12 Thomas Vander Stichele + + * gst-libs/gst/audio/audio.c: (_gst_audio_structure_set_list), + (gst_audio_structure_set_int): + * gst-libs/gst/audio/audio.h: + add helper functions for _getcaps matching the standard audio + templates + +2004-01-12 David Schleef + + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_link): + Test that pad is negotiated before getting its caps. + +2004-01-12 Julien MOUTTE + + * gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element): When + analyzing the pads of an element the bin is mostly in READY state so + no caps were negotiated. This helper function needs to work with + _get_caps directly then. I was not freeing them though, added that to + fix the mem leak. + +2004-01-12 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_chain): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain): Fixing the + direct put buffers detection. I prefer checking GST_BUFFER_PRIVATE + than the free_func. + +2004-01-12 Thomas Vander Stichele + + * sys/oss/gstossaudio.c: (plugin_init): + * sys/oss/gstosselement.c: (gst_osselement_sync_parms): + * sys/oss/gstosselement.h: + make an oss debugging category + make failure more descriptive + +2004-01-11 David Schleef + + * ext/ffmpeg/gstffmpeg.c: + * ext/ffmpeg/gstffmpegcodecmap.c: + * ext/ffmpeg/gstffmpegdec.c: + * ext/ffmpeg/gstffmpegenc.c: + * ext/ffmpeg/gstffmpegprotocol.c: + * ext/gdk_pixbuf/gstgdkanimation.c: + * ext/jpeg/gstjpeg.c: + * ext/libpng/gstpng.c: + * ext/mpeg2dec/perftest.c: + * ext/speex/gstspeex.c: + * gst-libs/gst/resample/dtos.c: + * gst/intfloat/gstintfloatconvert.c: + * gst/oneton/gstoneton.c: + * gst/rtjpeg/RTjpeg.c: + * gst/rtp/gstrtp.c: + * sys/dxr3/dxr3init.c: + * sys/glsink/gstgl_nvimage.c: + * sys/glsink/gstgl_pdrimage.c: + * sys/glsink/gstglsink.c: + * testsuite/gst-lint: + Make sure everybody wraps #include "config.h" in #ifdef HAVE_CONFIG_H + +2004-01-11 David Schleef + + * ext/alsa/gstalsasrc.c: (gst_alsa_src_set_caps): + * ext/faac/gstfaac.c: (gst_faac_sinkconnect): + * ext/gdk_pixbuf/gstgdkanimation.c: + (gst_gdk_animation_iter_create_pixbuf): + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link), + (gst_gdk_pixbuf_chain): + * ext/gdk_pixbuf/gstgdkpixbuf.h: + * ext/jack/gstjack.c: (gst_jack_change_state): + * ext/xvid/gstxviddec.c: (gst_xviddec_sink_link): + * gst-libs/gst/play/gstplay.c: (gst_play_get_sink_element): + * gst-libs/gst/play/play.c: (gst_play_get_sink_element): + * gst/videofilter/gstvideofilter.c: + (gst_videofilter_set_output_size): + Remove all usage of gst_pad_get_caps(), and replace it with + gst_pad_get_allowed_caps() or gst_pad_get_negotiated_cap(). + +2004-01-11 David Schleef + + * configure.ac: + * ext/Makefile.am: Fixes to make ext/libcaca compile. + * ext/divx/gstdivxdec.c: + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_sink_link), + (gst_gdk_pixbuf_init), (gst_gdk_pixbuf_chain): Make gdkpixbufdec + handle images that span multiple buffers. Now work with both + filesrc ! gdkpixbufdec and qtdemux ! gdkpixbufdec. + * ext/gdk_pixbuf/gstgdkpixbuf.h: + * ext/libcaca/gstcacasink.h: Fixes needed due to recent + video/video.h changes + * ext/xvid/gstxvid.c: (gst_xvid_csp_to_caps): same + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get), + (gst_v4lmjpegsrc_buffer_free): Use buffer free function instead + of GstData free function. + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_buffer_free): + same. + +2004-01-12 Benjamin Otte + + * sys/v4l2/gstv4l2element.c: (gst_v4l2element_class_init), + (gst_v4l2element_dispose), (gst_v4l2element_set_property), + (gst_v4l2element_get_property): + * sys/v4l2/v4l2_calls.c: (gst_v4l2_set_defaults), (gst_v4l2_open): + add norm, channel and frequency properties. + * sys/v4l2/gstv4l2tuner.c: + fixes for tuner interface changes + * sys/v4l2/gstv4l2element.h: + * sys/v4l2/gstv4l2src.c: + * sys/v4l2/gstv4l2src.h: + * sys/v4l2/v4l2src_calls.c: + * sys/v4l2/v4l2src_calls.h: + rework v4l2src to work with saa1734 cards and allow mmaped buffers. + +2004-01-12 Benjamin Otte + + * gst-libs/gst/tuner/tuner.c: (gst_tuner_class_init), + (gst_tuner_find_norm_by_name), (gst_v4l2_find_channel_by_name), + (gst_tuner_channel_changed), (gst_tuner_norm_changed), + (gst_tuner_frequency_changed), (gst_tuner_signal_changed): + * gst-libs/gst/tuner/tuner.h: + GObjects aren't const. + Add find_by_name functions. + Add checks to _changed functions. + * sys/v4l/gstv4ltuner.c: (gst_v4l_tuner_get_channel), + (gst_v4l_tuner_get_norm): + Fixes for above. + +2004-01-12 Benjamin Otte + + * gst-libs/gst/video/video.h: + Fix caps template names to be understandable. + Prefix everything with GST_VIDEO. + * ext/aalib/gstaasink.c: + * ext/divx/gstdivxdec.c: + * ext/divx/gstdivxenc.c: + * ext/gdk_pixbuf/gstgdkpixbuf.c: + * ext/hermes/gstcolorspace.c: (gst_colorspace_base_init): + * ext/jpeg/gstjpegdec.c: (raw_caps_factory): + * ext/jpeg/gstjpegenc.c: (raw_caps_factory): + * ext/libcaca/gstcacasink.c: + * ext/libpng/gstpngenc.c: (raw_caps_factory): + * ext/snapshot/gstsnapshot.c: + * ext/swfdec/gstswfdec.c: + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + * gst/chart/gstchart.c: + * gst/deinterlace/gstdeinterlace.c: + * gst/effectv/gsteffectv.c: + * gst/flx/gstflxdec.c: (gst_flxdec_loop): + * gst/goom/gstgoom.c: + * gst/median/gstmedian.c: + * gst/monoscope/gstmonoscope.c: (gst_monoscope_init), + (gst_monoscope_srcconnect), (gst_monoscope_chain): + * gst/overlay/gstoverlay.c: + * gst/smooth/gstsmooth.c: + * gst/smpte/gstsmpte.c: + * gst/synaesthesia/gstsynaesthesia.c: + * gst/videocrop/gstvideocrop.c: + * gst/videodrop/gstvideodrop.c: + * gst/y4m/gsty4mencode.c: + * sys/qcam/gstqcamsrc.c: + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps): + Make them work with new video.h file. + * sys/ximage/ximagesink.c: (gst_ximagesink_chain), + (gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain), + (gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc): + Make it work with new buffer allocation system. + +2004-01-11 Julien MOUTTE + + * ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): Fixing the + pad_alloc_buffer implementation to use ->srcpad + * ext/hermes/gstcolorspace.c: (gst_colorspace_chain): Fixing the + pad_alloc_buffer implementation to use ->srcpad + * gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): Fixing the + pad_alloc_buffer implementation to use ->srcpad + * sys/ximage/ximagesink.c: (gst_ximagesink_ximage_new), + (gst_ximagesink_chain), (gst_ximagesink_buffer_free), + (gst_ximagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep + a reference to everything we need. + * sys/ximage/ximagesink.h: adding a reference to the sink in the image. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xvimage_new), + (gst_xvimagesink_chain), (gst_xvimagesink_buffer_free), + (gst_xvimagesink_buffer_alloc): Now only use GST_BUFFER_PRIVATE to keep + a reference to everything we need. + * sys/xvimage/xvimagesink.h: adding a reference to the sink in the image + +2004-01-11 David Schleef + + * ext/divx/gstdivxenc.c: remove bogus gst_caps_is_fixed() test + * gst/debug/efence.c: (gst_efence_chain), (gst_fenced_buffer_new), + (gst_fenced_buffer_default_copy): Fix for rename of buffer private + structure members. + * gst/effectv/gstwarp.c: (gst_warptv_setup): Don't reset the time + value during a resize/renegotiation. + * gst/videofilter/gstvideofilter.c: (gst_videofilter_chain): use + gst_pad_alloc_buffer(); + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get), + (gst_v4lmjpegsrc_buffer_free): Fix for rename of buffer private + structure members. + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_get), (gst_v4lsrc_buffer_free): + Fix for rename of buffer private structure members. + * sys/ximage/ximagesink.c: (gst_ximagesink_chain), + (gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc): + Fix for rename of buffer private structure members. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain), + (gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc): + Fix for rename of buffer private structure members. + +2004-01-11 Arwed v. Merkatz + + reviewed by: David Schleef + + * gst/videofilter/Makefile.am: + * gst/videofilter/gstgamma.c: Gamma correction filter. Modified + from the patch by ds to fit in with recent make_filter changes. + +2004-01-11 Julien MOUTTE + + * configure.ac: Adding examples/switch/Makefile + * examples/Makefile.am: Adding examples/switch + * examples/switch/Makefile.am: Adding switcher example. + * examples/switch/switcher.c: (got_eos), (idle_iterate), + (switch_timer), (main): Adding an example demonstrating switch usage + with 2 videotestsrc showing different patterns. + * gst/switch/gstswitch.c: (gst_switch_request_new_pad), + (gst_switch_init): Fixing switch with the new caps system. + +2004-01-11 Benjamin Otte + + * gst-libs/gst/video/video.h: + Fix 32bit caps. Issue remaining: The macro names are chosen poorly. + They should probably be like + GST_VIDEO_PAD_TEMPLATE_CAPS_{RGB,BGR,RGBx,BGRx}. + +2004-01-11 Benjamin Otte + + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (qtdemux_parse_trak): + fix audio chunk size/timestamp calculation + +2004-01-11 Benjamin Otte + + * ext/ffmpeg/gstffmpegcodecmap.c: (gst_ffmpeg_codecid_to_caps): + fix SVQ3 caps + +2004-01-11 Steve Baker + + * gst/effectv/gstaging.c: (gst_agingtv_get_type), + (gst_agingtv_base_init), (gst_agingtv_class_init), + (gst_agingtv_init), (gst_agingtv_setup), (gst_agingtv_rgb32), + (gst_agingtv_set_property), (gst_agingtv_get_property): + Port agingTV to videofilter + +2004-01-09 Julien MOUTTE + + * ext/hermes/gstcolorspace.c: (gst_colorspace_chain): + Implementing gst_pad_alloc_buffer to use optimized buffer allocation. + +2004-01-09 Julien MOUTTE + + * ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_chain): + Implementing gst_pad_alloc_buffer to use optimized buffer allocation. + * gst-libs/gst/xoverlay/xoverlay.c: + (gst_x_overlay_got_desired_size): Updating doc for the xid being 0. + * gst/videoscale/gstvideoscale.c: (gst_videoscale_chain): + Implementing gst_pad_alloc_buffer to use optimized buffer allocation. + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): + Implementing gst_pad_alloc_buffer to use optimized buffer allocation. + * sys/ximage/ximagesink.c: (gst_ximagesink_chain), + (gst_ximagesink_buffer_free), (gst_ximagesink_buffer_alloc), + (gst_ximagesink_set_xwindow_id), (gst_ximagesink_init): Implementing + the bufferalloc_function to replace bufferpools, fixing the XOverlay + interface implementation to handle xid being 0 and fix some bugs + triggered by Benjamin's testcase. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_chain), + (gst_xvimagesink_buffer_free), (gst_xvimagesink_buffer_alloc), + (gst_xvimagesink_set_xwindow_id), (gst_xvimagesink_init): Implementing + the bufferalloc_function to replace bufferpools, fixing the XOverlay + interface implementation to handle xid being 0 and fix some bugs + triggered by Benjamin's testcase. + +2004-01-09 David Schleef + + * ext/librfb/gstrfbsrc.c: Hacking. Added actual decoding and + mouse pointer events. It works. + +2004-01-09 Ronald Bultje + + * ext/divx/gstdivxenc.c: (gst_divxenc_init): + Use explicit caps - fix capsnego. + * ext/xvid/gstxviddec.c: + * ext/xvid/gstxvidenc.c: + Remove macro-inside-macro which caused compile errors. + * gst-libs/gst/riff/riff-read.c: (gst_riff_read_header): + Error out if it's not a RIFF file. Else we error out without + gst_element_error() which is not good... + +2004-01-08 David Schleef + + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect): + Fix pad_link function to handle formats that ffmpeg returns + as multiple caps structures. + * gst/videofilter/gstvideofilter.c: (gst_videofilter_chain): + Only complain if source buffer is _smaller_ than expected. + * gst/videoscale/gstvideoscale.c: (gst_videoscale_init), + (gst_videoscale_handle_src_event): Resize navigation events + when passing them upstream. + * gst/videotestsrc/gstvideotestsrc.c: + * gst/videotestsrc/gstvideotestsrc.h: + * gst/videotestsrc/videotestsrc.c: + * gst/videotestsrc/videotestsrc.h: + Rewrite many of the buffer painting functions to handle odd + sizes (for many formats, size%4!=0 or size%8!=0). Most have + been verified to work with my video card. + * testsuite/gst-lint: Add check for elements calling + gst_pad_get_caps() instead of gst_pad_get_allowed_caps(). + +2004-01-08 David Schleef + + * gst/videodrop/gstvideodrop.c: (gst_videodrop_getcaps), + (gst_videodrop_link), (gst_videodrop_init): Fix negotiation. + +2004-01-08 Julien MOUTTE + + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): A + configure event is not emiting the desired size signal. That fixes + aspect ratio issues with gst-player. + +2004-01-08 Ronald Bultje + + * gst/median/gstmedian.c: (gst_median_link), (gst_median_init): + Fix capsnego. + +2004-01-08 Julien MOUTTE + + * ext/sdl/sdlvideosink.c: (gst_sdlvideosink_create): Using XOverlay + public method to fire size signal. + +2004-01-07 Julien MOUTTE + + * examples/gstplay/Makefile.am: Adding the interface library. + * gst-libs/gst/play/Makefile.am: Adding the interface library. + * gst-libs/gst/play/gstplay.c: (gst_play_set_video_sink): Connecting to the XOverlay size signal instead of GstVideoSink. + * gst-libs/gst/play/gstplay.h: Including the XOverlay interface to check + GST_IS_X_OVERLAY before signal connect. + * gst-libs/gst/video/gstvideosink.c: (gst_videosink_class_init): + Removing the have_video_size signal. + * gst-libs/gst/video/gstvideosink.h: Removing the have_video_size signal + and associated public method. + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents), + (gst_ximagesink_sinkconnect): Using XOverlay public method to fire size + signal. + * sys/xvideo/xvideosink.c: (gst_xvideosink_sinkconnect), + (gst_xvideosink_xwindow_new): Using XOverlay public method to fire size + signal. + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_sinkconnect): + Using XOverlay public method to fire size signal. + +2004-01-07 David Schleef + + * gst/videofilter/Makefile.am: + * gst/videofilter/gstvideotemplate.c: + * gst/videofilter/make_filter: + Create gstvideoexample.c in a srcdir!=builddir friendly way. + Convert make_filter to /bin/sh script. + +2004-01-07 Thomas Vander Stichele + + * gst/modplug/gstmodplug.cc: fix element description + +2004-01-07 Julien MOUTTE + + * examples/gstplay/player.c: (got_time_tick), (got_stream_length), + (got_video_size): Adding some new lines in g_print calls. + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new), + (gst_ximagesink_xwindow_destroy), (gst_ximagesink_xwindow_resize), + (gst_ximagesink_handle_xevents), (gst_ximagesink_fixate), + (gst_ximagesink_sinkconnect), (gst_ximagesink_change_state), + (gst_ximagesink_chain), (gst_ximagesink_buffer_new), + (gst_ximagesink_set_xwindow_id), (gst_ximagesink_get_desired_size): + Complete code review, reverting some stuff i disagree with, adding + some fixes : time synchronization on invalid timestamps, renegotiation + of private window. + * sys/ximage/ximagesink.h: + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_xwindow_destroy), + (gst_xvimagesink_xwindow_resize), (gst_xvimagesink_handle_xevents), + (gst_xvimagesink_get_xv_support), (gst_xvimagesink_xcontext_get), + (gst_xvimagesink_fixate), (gst_xvimagesink_sinkconnect), + (gst_xvimagesink_change_state), (gst_xvimagesink_chain), + (gst_xvimagesink_buffer_new), + (gst_xvimagesink_navigation_send_event), + (gst_xvimagesink_set_xwindow_id), + (gst_xvimagesink_get_desired_size), + (gst_xvimagesink_xoverlay_init): Complete code review, reverting some + stuff i disagree with, adding some fixes : Renegotiation of private + window, implementing get_desired_size. + +2004-01-07 Ronald Bultje + + * ext/audiofile/gstafsink.c: (gst_afsink_init), (gst_afsink_chain), + (gst_afsink_handle_event): + * ext/jpeg/gstjpegenc.c: (gst_jpegenc_init): + * gst/avi/gstavimux.c: (gst_avimux_request_new_pad): + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_init): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_init): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_init): + Fix for instantiate-test (see core). Also remove dead code from + jpegenc (which still needs fixing, but that's lower on my TODO + list...). + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_getcaps): + Never return NULL as caps. + +2004-01-07 David Schleef + + * configure.ac: + * ext/Makefile.am: + * ext/librfb/Makefile.am: + * ext/librfb/gstrfbsrc.c: + New source plugin based on librfb-0.1. RFB (remote framebuffer) + is the protocol used by VNC. + +2004-01-07 David Schleef + + * gst/videofilter/gstvideotemplate.c: + * gst/videofilter/gstvideotemplate.h: + * gst/videofilter/make_filter: + Merge videotemplate header into source file. + * gst/effectv/Makefile.am: + * gst/effectv/gsteffectv.c: (plugin_init): + * gst/effectv/gstwarp.c: + Make warpTV a subclass of videofilter. + +2004-01-07 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_mad_id3_to_tag_list): + Add guard against invalid utf-8 conversions in mad. Just in case. + +2004-01-07 Benjamin Otte + + * sys/oss/gstosssink.c: (gst_osssink_sink_fixate): + Fix for bug shown by poisoning + +2004-01-06 Ronald Bultje + + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_get), + (gst_v4lmjpegsrc_buffer_free): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_palette_to_caps), + (gst_v4lsrc_srcconnect), (gst_v4lsrc_getcaps), (gst_v4lsrc_get), + (gst_v4lsrc_buffer_free): + Fix for removed bufferpools. + +2004-01-07 Jan Schmidt + + * ext/dv/gstdvdec.c: (gst_dvdec_loop): + Fix caps negotiation. + + * ext/dvdnav/dvdnavsrc.c: (dvdnavsrc_class_init), + (dvdnavsrc_update_buttoninfo), (dvdnavsrc_get), + (dvdnavsrc_get_event_mask), (dvdnav_handle_navigation_event), + (dvdnavsrc_event): + * ext/mpeg2dec/gstmpeg2dec.c: + * gst-libs/gst/navigation/navigation.c: + (gst_navigation_send_key_event), (gst_navigation_send_mouse_event): + * gst-libs/gst/navigation/navigation.h: + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_handle_src_event): + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_handle_xevents): + Super-simple first version of mouse and keyboard events. Clicking + on a DVD menu now works, although it may not take you where you + expected. + + * gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate): + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_src_fixate): + These fixate functions were broken - they never actually + fixated :) + +2004-01-06 Ronald Bultje + + * ext/shout/gstshout.c: (gst_icecastsend_base_init), + (gst_icecastsend_init): + fix for new caps system. + * gst-libs/gst/mixer/mixertrack.h: + * sys/oss/gstossmixer.c: (gst_ossmixer_build_list): + Add 'master track' flag (for tools like ACME that only want to + change the main volume). + +2004-01-07 Jan Schmidt + + * ext/xvid/gstxvid.c: (gst_xvid_structure_to_csp), + (gst_xvid_csp_to_caps): + * ext/xvid/gstxviddec.c: (gst_xviddec_src_getcaps): + * ext/xvid/gstxvidenc.c: + ifdef out ARGB type when it isn't available + in xvidcore 1.0.0beta2 + +2004-01-06 Ronald Bultje + + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_loop): + When we have received a new SCR right in the first buffer after + a seek (so in the same cycle that handles the discont), we should + handle the buffer instead of unreffing it, else we lose data. + +2004-01-06 Iain + + * gst/intfloat/gstint2float.c (gst_int2float_link): Set the + buffer-frames caps too. + + * gst/oneton/gstoneton.c (gst_oneton_sink_connect): Only create the new + caps that we need, don't destroy them all and rebuild them. And when + creating src pads, use the src pad template rather than the sink... + +2004-01-05 Ronald Bultje + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead): + Add pad to element *after* setting functions such as event handler. + Without this, the scheduler (opt) will link pads, set the event + handler from the default event function (dispatcher in gstpad.c) + and *after* that, we will set our own event function, which will + thus never be used (and thus mpegdemux doesn't handle events). + +2004-01-04 David Schleef + + Fix the fixate functions to handle new prototype: + * gst/sine/gstsinesrc.c: (gst_sinesrc_src_fixate): + * gst/videotestsrc/gstvideotestsrc.c: + (gst_videotestsrc_src_fixate): + * sys/oss/gstosssink.c: (gst_osssink_sink_fixate): + * sys/ximage/ximagesink.c: (gst_ximagesink_fixate): + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate): + +2004-01-04 Benjamin Otte + + * sys/ximage/ximagesink.h: + * sys/ximage/ximagesink.c: (gst_ximagesink_xwindow_new), + (gst_ximagesink_xwindow_destroy), (gst_ximagesink_sinkconnect), + (gst_ximagesink_change_state), (gst_ximagesink_set_xwindow_id), + (gst_ximagesink_xoverlay_init): + assorted fixes to make (re)embedding work + * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect), + (gst_ximagesink_get_desired_size): + implement desired size additions to XOverlay + +2004-01-04 Benjamin Otte + + * gst-libs/gst/xoverlay/xoverlay.c: (gst_x_overlay_base_init), + (gst_x_overlay_got_xwindow_id), (gst_x_overlay_get_desired_size), + (gst_x_overlay_got_desired_size): + * gst-libs/gst/xoverlay/xoverlay.h: + Add optional "desired size" signal and querying. + +2004-01-04 Ronald Bultje + + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_blockgroup): + Fix EBML-laced block parsing. Diffs are relative to previous + lace, not the first lace. Thanks to Mosu from the Matroska + team for detecting this. + * gst/wavparse/gstwavparse.c: (gst_wavparse_init), + (gst_wavparse_parse_fmt), (gst_wavparse_getcaps), + (gst_wavparse_handle_sink_event), (gst_wavparse_loop), + (gst_wavparse_change_state): + * gst/wavparse/gstwavparse.h: + Quickfix for capsnego. + +2004-01-04 Ronald Bultje + + * gst/wavenc/gstwavenc.c: (set_property), (gst_wavenc_init): + Fix indenting, fix pad creation. + +2004-01-04 Ronald Bultje + + * ext/xvid/gstxviddec.c: (gst_xviddec_init), + (gst_xviddec_src_getcaps), (gst_xviddec_src_link), + (gst_xviddec_sink_link): + Implement src_getcaps() so proper size caps is negotiated. + +2004-01-04 Ronald Bultje + + * ext/flac/gstflacdec.c: (gst_flacdec_loop): + Finish flac decoder on EOS. See #116178. + +2004-01-04 Ronald Bultje + + * gst/matroska/matroska-demux.c: (gst_matroska_demux_src_getcaps), + (gst_matroska_demux_add_stream): + * gst/matroska/matroska-ids.h: + Add getcaps() function to fix capsnego... + +2004-01-04 Ronald Bultje + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead), + (gst_mpeg_demux_parse_packet), (gst_mpeg_demux_parse_pes): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_parse_packhead): + Fix more integer overflows. Again, see #126967. + +2004-01-03 Ronald Bultje + + * ext/mpeg2dec/gstmpeg2dec.c: + Add support for mpeg2dec-0.4.0 (released two weeks ago). See + #130416. + +2004-01-03 Ronald Bultje + + * configure.ac: + * ext/xvid/gstxvid.c: (gst_xvid_init), (gst_xvid_error), + (gst_xvid_structure_to_csp), (gst_xvid_csp_to_caps): + * ext/xvid/gstxvid.h: + * ext/xvid/gstxviddec.c: (gst_xviddec_class_init), + (gst_xviddec_init), (gst_xviddec_setup), (gst_xviddec_chain), + (gst_xviddec_src_link), (gst_xviddec_sink_link), + (gst_xviddec_change_state): + * ext/xvid/gstxviddec.h: + * ext/xvid/gstxvidenc.c: (gst_xvidenc_profile_get_type), + (gst_xvidenc_base_init), (gst_xvidenc_class_init), + (gst_xvidenc_init), (gst_xvidenc_setup), (gst_xvidenc_chain), + (gst_xvidenc_link), (gst_xvidenc_set_property), + (gst_xvidenc_get_property), (gst_xvidenc_change_state): + * ext/xvid/gstxvidenc.h: + Update xvid plugin to latest xvid (1.0.0-beta3) API. + +2004-01-03 Ronald Bultje + + * gst/rtp/rtp-packet.c: + Add sys/types.h include, since OS X doesn't define in_addr_t + in netinet/in.h, like it does on Linux (see #129600). + +2004-01-03 Thomas Canty + + reviewed by: Ronald Bultje + + * ext/alsa/gstalsamixer.c: (gst_alsa_mixer_dispose): + Correct logic of dispose function (see #129306). + +2004-01-03 Ronald Bultje + + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_pes): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_class_init), + (gst_mpeg_parse_init): + * gst/mpegstream/gstmpegparse.h: + Remove clock (which was never provided, i.e. dead code), and + also fix integer overflows at high PTS values (see #126967). + +2004-01-03 Ronald Bultje + + * ext/flac/gstflacdec.c: + * ext/libpng/gstpngenc.h: + * ext/mikmod/gstmikmod.h: + OS X fixes (see #126628). + +2004-01-02 David Schleef + + * ext/alsa/gstalsasrc.c: (gst_alsa_src_pad_factory), + (gst_alsa_src_base_init): Remove bogus "src" request pad. + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_base_init), + (gst_mpeg_parse_class_init): Move pad template registration + to class_init, since the derived class (mpegdemux) doesn't + want them. + +2004-01-03 Ronald Bultje + + * sys/ximage/Makefile.am: + * sys/xvideo/Makefile.am: + * sys/xvimage/Makefile.am: + Move interface libs from LDFLAGS to LIBADD, fix relocation errors + after installation (see #127664). + +2004-01-02 David Schleef + + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_init), + (gst_ffmpegenc_connect): Negotiation fixes. + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_negotiate_format): + Remove inappropriate gst_caps_free(). + * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect): + Reenable Ronald's internal resize code, since the core handles + it correctly now. + +2004-01-02 Ronald Bultje + + * sys/v4l/gstv4lmjpegsink.c: (gst_v4lmjpegsink_init): + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_base_init), (gst_v4lsrc_init): + Fix pad template stuff. + +2004-01-02 Ronald Bultje + + * gst/matroska/ebml-read.c: (gst_ebml_read_sint): + * gst/matroska/ebml-write.c: (gst_ebml_write_sint): + fix signed integer reading/writing. + +2004-01-02 Benjamin Otte + + * ext/alsa/README: + Remove outdated document + +2004-01-03 Jan Schmidt + + * gst/cutter/gstcutter.c: (gst_cutter_init): + src pad was being created twice - oops. + +2004-01-02 Ronald Bultje + + * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect): + Comment out internal resize. It doesn't handle the resulting + XEvent internally, does another try_set_caps() which leads to + a really nice loop. + Real fix will come when Julien and Dave are awake. ;). + +2004-01-02 Ronald Bultje + + * ext/mpeg2enc/gstmpeg2enc.cc: + fix const/nonconst compile issue. + +2004-01-02 David Schleef + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_fixate), + (gst_xvimagesink_sinkconnect), (gst_xvimagesink_init): + Add fixate function and a check for bad formats. + +2004-01-01 David Schleef + + Negotiation fixes: + * gst-libs/gst/audio/gstaudiofilter.c: (gst_audiofilter_link), + (gst_audiofilter_init): + * gst/debug/efence.c: (gst_efence_init): + * gst/deinterlace/gstdeinterlace.c: (gst_deinterlace_link), + (gst_deinterlace_init): + * gst/volume/gstvolume.c: (volume_connect): + +2004-01-01 David Schleef + + Convert elements to use gst_pad_use_explicit_caps() where + appropriate: + * ext/a52dec/gsta52dec.c: (gst_a52dec_init), (gst_a52dec_reneg): + * ext/audiofile/gstafparse.c: (gst_afparse_init), + (gst_afparse_open_file): + * ext/audiofile/gstafsrc.c: (gst_afsrc_init), + (gst_afsrc_open_file): + * ext/esd/esdmon.c: (gst_esdmon_init), (gst_esdmon_get): + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_init), + (gst_ffmpegdec_chain): + * ext/ffmpeg/gstffmpegdemux.c: (gst_ffmpegdemux_loop): + * ext/flac/gstflacdec.c: (gst_flacdec_init), (gst_flacdec_write): + * ext/gdk_pixbuf/gstgdkpixbuf.c: (gst_gdk_pixbuf_init), + (gst_gdk_pixbuf_chain): + * ext/jpeg/gstjpegdec.c: (gst_jpegdec_init), (gst_jpegdec_link), + (gst_jpegdec_chain): + * ext/mad/gstmad.c: (gst_mad_init), (gst_mad_chain): + * ext/mikmod/gstmikmod.c: (gst_mikmod_init), + (gst_mikmod_negotiate): + * ext/mpeg2dec/gstmpeg2dec.c: (gst_mpeg2dec_init), + (gst_mpeg2dec_negotiate_format): + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/ogg/gstoggdemux.c: (gst_ogg_pad_push): + * ext/speex/gstspeexdec.c: (gst_speexdec_init), + (gst_speexdec_sinkconnect): + * ext/swfdec/gstswfdec.c: (gst_swfdec_loop), (gst_swfdec_init): + * ext/vorbis/vorbisfile.c: (gst_vorbisfile_init), + (gst_vorbisfile_new_link): + * gst/ac3parse/gstac3parse.c: (gst_ac3parse_init), + (gst_ac3parse_chain): + * gst/asfdemux/gstasfdemux.c: (gst_asf_demux_add_audio_stream), + (gst_asf_demux_setup_pad): + * gst/auparse/gstauparse.c: (gst_auparse_init), + (gst_auparse_chain): + * gst/id3/gstid3types.c: (gst_id3types_loop): + * gst/matroska/matroska-demux.c: (gst_matroska_demux_add_stream): + * gst/mpeg1videoparse/gstmp1videoparse.c: (gst_mp1videoparse_init), + (mp1videoparse_parse_seq): + * gst/mpegaudioparse/gstmpegaudioparse.c: (gst_mp3parse_init), + (bpf_from_header): + * gst/mpegstream/gstmpegdemux.c: (gst_mpeg_demux_parse_syshead), + (gst_mpeg_demux_parse_pes), (gst_mpeg_demux_lpcm_set_caps): + * gst/mpegstream/gstmpegparse.c: (gst_mpeg_parse_init), + (gst_mpeg_parse_send_data): + * gst/qtdemux/qtdemux.c: (gst_qtdemux_loop_header), + (gst_qtdemux_add_stream): + * gst/realmedia/rmdemux.c: (gst_rmdemux_add_stream): + * gst/wavparse/gstwavparse.c: (gst_wavparse_init), + (gst_wavparse_parse_fmt): + +2004-01-01 Ronald Bultje + + * configure.ac: + Fix configure check for mpeg2enc. We need 1.6.1.93 instead of + 1.6.1.92, since the pkg-config file of 1.6.1.92 is borked and + it therefore uses the wrong include paths. Too bad... Note + that 1.6.1.93 is not release yet. ;). + Also add a check for mplex, which is now using the lib'ified + mplex from mjpegtools, too. + * ext/ffmpeg/gstffmpegcodecmap.c: + Add codec_tag for 3ivx/xvid. For xvid, this should fix playback + issues. I don't think ffmpeg handles 3ivx correctly, so this + probably won't work. But it won't hurt either. + * ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_connect), + (gst_ffmpegdec_chain): + * ext/ffmpeg/gstffmpegenc.c: (gst_ffmpegenc_connect), + (gst_ffmpegenc_chain_audio): + Fix memleak in audio encoding. Close codec if open fails, this + calls the cleanup routines so we can re-use the context. + * ext/mpeg2enc/gstmpeg2enc.cc: + Fix pad template names/types, fix memory issue with getcaps(). + * ext/mpeg2enc/gstmpeg2encoder.cc: + * ext/mpeg2enc/gstmpeg2encoder.hh: + Fix compile issue with new caps system (const thingy). + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.hh: + We read a first frame right on initing, so that we have a caps + when we init the output. This caps is cached in padprivate and + read as first frame. + * ext/mplex/Makefile.am: + * ext/mplex/gstmplex.cc: + * ext/mplex/gstmplex.h: + * ext/mplex/gstmplex.hh: + * ext/mplex/gstmplexibitstream.cc: + * ext/mplex/gstmplexibitstream.hh: + * ext/mplex/gstmplexjob.cc: + * ext/mplex/gstmplexjob.hh: + * ext/mplex/gstmplexoutputstream.cc: + * ext/mplex/gstmplexoutputstream.hh: + We wrap mjpegtools mplex. So I rewrote the plugin. The old plugin + had issues, didn't do capsnego, supported only a subset of the + mplex features and required a mplex fork in our local CVS. Plus + that it worked agaist a very old mplex version. Rewriting was + faster than updating it. + * gst-libs/ext/Makefile.am: + * gst-libs/ext/mplex/INSTRUCT: + * gst-libs/ext/mplex/Makefile.am: + * gst-libs/ext/mplex/README: + * gst-libs/ext/mplex/TODO: + * gst-libs/ext/mplex/ac3strm_in.cc: + * gst-libs/ext/mplex/audiostrm.hh: + * gst-libs/ext/mplex/audiostrm_out.cc: + * gst-libs/ext/mplex/aunit.hh: + * gst-libs/ext/mplex/bits.cc: + * gst-libs/ext/mplex/bits.hh: + * gst-libs/ext/mplex/buffer.cc: + * gst-libs/ext/mplex/buffer.hh: + * gst-libs/ext/mplex/fastintfns.h: + * gst-libs/ext/mplex/format_codes.h: + * gst-libs/ext/mplex/inputstrm.cc: + * gst-libs/ext/mplex/inputstrm.hh: + * gst-libs/ext/mplex/lpcmstrm_in.cc: + * gst-libs/ext/mplex/mjpeg_logging.cc: + * gst-libs/ext/mplex/mjpeg_logging.h: + * gst-libs/ext/mplex/mjpeg_types.h: + * gst-libs/ext/mplex/mpastrm_in.cc: + * gst-libs/ext/mplex/mpegconsts.cc: + * gst-libs/ext/mplex/mpegconsts.h: + * gst-libs/ext/mplex/mplexconsts.hh: + * gst-libs/ext/mplex/multplex.cc: + * gst-libs/ext/mplex/outputstream.hh: + * gst-libs/ext/mplex/padstrm.cc: + * gst-libs/ext/mplex/padstrm.hh: + * gst-libs/ext/mplex/stillsstream.cc: + * gst-libs/ext/mplex/stillsstream.hh: + * gst-libs/ext/mplex/systems.cc: + * gst-libs/ext/mplex/systems.hh: + * gst-libs/ext/mplex/vector.cc: + * gst-libs/ext/mplex/vector.hh: + * gst-libs/ext/mplex/videostrm.hh: + * gst-libs/ext/mplex/videostrm_in.cc: + * gst-libs/ext/mplex/videostrm_out.cc: + * gst-libs/ext/mplex/yuv4mpeg.cc: + * gst-libs/ext/mplex/yuv4mpeg.h: + * gst-libs/ext/mplex/yuv4mpeg_intern.h: + * gst-libs/ext/mplex/yuv4mpeg_ratio.cc: + We don't fork mjpegtools' mplex in our CVS anymore. + * gst/avi/gstavidemux.c: (gst_avi_demux_src_getcaps), + (gst_avi_demux_add_stream): + * gst/avi/gstavidemux.h: + Add getcaps() function for proper caps nego. This makes some + parts of AVI playback/reading work. + * sys/ximage/ximagesink.c: (gst_ximagesink_sinkconnect): + Resize window on new capsnego. This is probably wrong, but + I'm still committing it because with current capsnego, the + first successfull capsnego is auto-fixated, therefore rounded + down to the lowest values in the caps. this results in a 16x16 + XWindow that is not reized when real capsnego finishes. + Dave, I see more cases of this, do you know a proper solution? + * tools/gst-launch-ext.in: + Fix MPEG-4 AAC (Apple iPod/iTunes) file commandline. + +2003-12-31 David Schleef + + * gst/tcp/gsttcpsrc.c: (gst_tcpsrc_get): + * gst/udp/gstudpsrc.c: (gst_udpsrc_get): + Change gst_pad_proxy_link() to gst_pad_try_set_caps() + +2003-12-30 David Schleef + + * ext/ffmpeg/gstffmpegcolorspace.c: + (gst_ffmpegcsp_caps_remove_format_info), (gst_ffmpegcsp_getcaps), + (gst_ffmpegcsp_pad_link), (gst_ffmpegcsp_init), + (gst_ffmpegcsp_chain): Negotiation fixes + * ext/mad/gstmad.c: (gst_mad_chain): Negotiation fixes + * gst/audioconvert/gstaudioconvert.c: (gst_audio_convert_chain), + (gst_audio_convert_link), (gst_audio_convert_channels): + * gst/audioscale/gstaudioscale.c: (gst_audioscale_getcaps), + (gst_audioscale_link), (gst_audioscale_get_buffer), + (gst_audioscale_chain): Negotiation fixes + * gst/audioscale/gstaudioscale.h: + * gst/videofilter/gstvideofilter.c: + (gst_videofilter_format_get_structure), (gst_videofilter_getcaps), + (gst_videofilter_link), (gst_videofilter_init), + (gst_videofilter_set_output_size), (gst_videofilter_setup), + (gst_videofilter_find_format_by_structure): + * gst/videofilter/gstvideofilter.h: Negotiation fixes + * gst/videoscale/gstvideoscale.c: (gst_videoscale_getcaps), + (gst_videoscale_link): + * gst/videoscale/videoscale.c: (videoscale_get_structure), + (videoscale_find_by_structure), (gst_videoscale_setup): + * gst/videoscale/videoscale.h: Negotiation fixes + * sys/ximage/ximagesink.c: (gst_ximagesink_handle_xevents), + (gst_ximagesink_fixate), (gst_ximagesink_init): Add a fixate + function, restrict resizing to a multiple of 4 (hack until + everyone supports odd sizes correctly). + +2003-12-29 Colin Walters + + * ext/esd/esdsink.c (gst_esdsink_link): Fix typo; get depth instead of + signed. + +2003-12-30 Jan Schmidt + + * ext/sndfile/gstsf.c: (gst_sf_loop): + Fix warning about discarding const qualifier + +2003-12-27 Jeremy Simon + + * gst/cutter/gstcutter.c: + * gst/videoscale/gstvideoscale.c: + * gst/volenv/gstvolenv.c: + * gst-libs/gst/audio/audio.c: + * gst-libs/gst/video/video.c: + Fix warnings + +2003-12-27 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_open_audio): + Don't send ALSA debugging to stderr. + * ext/alsa/gstalsa.h: + Use GST_WARNING instead of g_warning when ALSA functions fail. + +2003-12-27 Benjamin Otte + + * sys/xvimage/xvimagesink.c: (gst_xvimagesink_get_xv_support): + Free XVAdapterInfo correctly. + +2003-12-27 Benjamin Otte + + * ext/mad/gstid3tag.c: (gst_id3_tag_add_src_pad), + (gst_id3_tag_do_caps_nego), (gst_id3_tag_src_link): + Make id3tag use correct caps nego. + +2003-12-27 Amaury Jacquot + + * ext/ivorbis/vorbis.c: + * ext/ivorbis/vorbisenc.h: + * ext/ivorbis/vorbisfile.c: + Modify so that it uses the new caps things + +2003-12-27 Benjamin Otte + + * testsuite/spider/spider1.c: (main): + * testsuite/spider/spider2.c: (main): + * testsuite/spider/spider3.c: (main): + Make tests compile again. They probably don't work. + +2003-12-24 Colin Walters + + * sys/oss/gstosssink.c (gst_osssink_sink_fixate): Return NULL if + we can't fixate the caps anymore. + +2003-12-23 David Schleef + + * gst/volume/gstvolume.c: (volume_init): Proxy getcaps. + * sys/oss/gstosssink.c: (gst_osssink_init), + (gst_osssink_sink_fixate): Add fixate function. + +2003-12-24 Ronald Bultje + + * ext/ffmpeg/gstffmpegcodecmap.c: + * ext/ffmpeg/gstffmpegcolorspace.c: (gst_ffmpegcsp_getcaps), + (gst_ffmpegcsp_srcconnect_func), (gst_ffmpegcsp_sinkconnect), + (gst_ffmpegcsp_srcconnect), (gst_ffmpegcsp_get_type), + (gst_ffmpegcsp_base_init), (gst_ffmpegcsp_class_init), + (gst_ffmpegcsp_init), (gst_ffmpegcsp_chain), + (gst_ffmpegcsp_change_state), (gst_ffmpegcsp_set_property), + (gst_ffmpegcsp_get_property), (gst_ffmpegcsp_register): + fix typo in RGB masks, and move back to "old" colorspace + capsnego code until whoever wrote this new crap has actually + tested it so that it works. + And yes, this works, keep it that way please. + +2003-12-23 Ronald Bultje + + * ext/divx/gstdivxdec.c: (gst_divxdec_base_init), + (gst_divxdec_init), (gst_divxdec_negotiate): + * ext/divx/gstdivxdec.h: + * ext/divx/gstdivxenc.c: (gst_divxenc_base_init), + (gst_divxenc_init): + * ext/faac/gstfaac.c: (gst_faac_base_init), (gst_faac_init), + (gst_faac_sinkconnect), (gst_faac_srcconnect): + * ext/mpeg2enc/gstmpeg2enc.cc: + * ext/mpeg2enc/gstmpeg2encoder.cc: + * ext/mpeg2enc/gstmpeg2encpicturereader.cc: + * sys/dxr3/dxr3audiosink.c: (dxr3audiosink_base_init), + (dxr3audiosink_init), (dxr3audiosink_pcm_sinklink): + * sys/dxr3/dxr3spusink.c: (dxr3spusink_base_init), + (dxr3spusink_init): + * sys/dxr3/dxr3videosink.c: (dxr3videosink_base_init), + (dxr3videosink_init): + Fix caps breakage after Dave's caps branch merge. + +2003-12-23 Ronald Bultje + + * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get): + Fix for 24bpp display. + +2003-12-23 Colin Walters + + * ext/gnomevfs/gstgnomevfssink.c: Add ARG_HANDLE property that takes + a GnomeVFSHandle directly. + +2003-12-22 Benjamin Otte + + * gst/volume/Makefile.am: + * gst/volume/gstvolume.c: (volume_connect), (volume_parse_caps), + (volume_base_init), (volume_init): + Reenable volume element and fix to work with new caps stuff. + Rhythmbox needs this. + +2003-12-22 Benjamin Otte + + * gst/qtdemux/qtdemux.c: (plugin_init): + qtdemux requires bytestream + +2003-12-22 Benjamin Otte + + * ext/alsa/gstalsa.c: (gst_alsa_get_caps), (gst_alsa_link): + Fix remaining caps handling errors due to CAPS merge. + +2003-12-22 Benjamin Otte + + * ext/faad/gstfaad.c: (gst_faad_base_init), (gst_faad_init), + (gst_faad_sinkconnect), (gst_faad_srcgetcaps), + (gst_faad_srcconnect): + Port to new caps system. + +2003-12-21 Julien MOUTTE + + * examples/gstplay/player.c: (got_time_tick), (got_stream_length), + (got_video_size), (main): using g_print instead of g_message. + * gst-libs/gst/play/gstplay.c: (gst_play_pipeline_setup): Fixing EOS + signal which was not emitted because of "switch" element added to the + bin but not connected. (Removing from the bin temporarily) + +2003-12-21 Julien MOUTTE + + * configure.ac: X_DISPLAY_MISSING is set to 1 if AC_PATH_XTRA fails to + find X development files. I don't understand the previous tests and + they fail on my debian/ppc unstable. This one works. + * examples/gstplay/player.c: (main): Set the pipeline to READY before + exiting. + * gst-libs/gst/play/gstplay.c: (gst_play_get_length_callback), + (gst_play_set_video_sink), (gst_play_set_audio_sink), + (gst_play_set_visualization): Add some safety checks in set_ methods + and state_change. This was throwing some ugly CRITICAL messages when + pipeline was getting disposed and casts were failing. + +2003-12-21 Ronald Bultje + + * configure.ac: + Improve mpeg2enc detection. This is for distributions that do + ship mjpegtools, but without mpeg2enc. Also does object check + for might there ever be ABI incompatibility. + * ext/mpeg2enc/gstmpeg2enc.cc: + Add Andrew as second maintainer (he's helping me), and also add + an error if no caps was set. This happens if I pull before capsnego + and that's something I should solve sometime else. + * gst/matroska/matroska-demux.c: + (gst_matroska_demux_parse_blockgroup): + Fix time parsing. + * gst/matroska/matroska-mux.c: (gst_matroska_mux_audio_pad_link), + (gst_matroska_mux_track_header): + Add caps to templates. + * gst/mpegaudioparse/gstmpegaudioparse.c: (mp3_sink_factory): + Add mpegversion=1 to prevent confusion with MPEG/AAC. + * gst/mpegstream/gstmpegdemux.c: + Remove layer since it causes warnings about unfixed caps. + * gst/videotestsrc/gstvideotestsrc.c: (gst_videotestsrc_get): + Fix obvious typo (we error out if caps were set, we should of + course error out if *no* caps were set). + * sys/oss/gstosselement.c: (gst_osselement_convert): + Fix format conversion, we confused bits/bytes. + * sys/oss/gstosselement.h: + Improve documentation for 'bps'. + * sys/v4l/TODO: + Remove stuff about plugins that need removing - this was done + ages ago. + * sys/v4l/gstv4lmjpegsrc.c: (gst_v4lmjpegsrc_init), + (gst_v4lmjpegsrc_src_convert), (gst_v4lmjpegsrc_src_query): + * sys/v4l/gstv4lsrc.c: (gst_v4lsrc_init), (gst_v4lsrc_src_convert), + (gst_v4lsrc_src_query): + * sys/v4l2/gstv4l2src.c: (gst_v4l2src_init), + (gst_v4l2src_src_convert), (gst_v4l2src_src_query): + Add get_query_types(), get_formats() and query() functions. + +2003-12-21 Thomas Vander Stichele + + * ChangeLog: moved to gstreamer/docs/random/old/ChangeLog.gst-plugins + * moved CVS to freedesktop.org + diff --git a/docs/version.entities.in b/docs/version.entities.in new file mode 100644 index 0000000..79a6898 --- /dev/null +++ b/docs/version.entities.in @@ -0,0 +1,2 @@ + + diff --git a/ext/Makefile.am b/ext/Makefile.am new file mode 100644 index 0000000..d6638d0 --- /dev/null +++ b/ext/Makefile.am @@ -0,0 +1,468 @@ +if USE_ASSRENDER +ASSRENDER_DIR = assrender +else +ASSRENDER_DIR = +endif + +if USE_AMRWB +AMRWB_DIR = amrwbenc +else +AMRWB_DIR = +endif + +if USE_APEXSINK +APEXSINK_DIR = apexsink +else +APEXSINK_DIR = +endif + +# if USE_ARTS +# ARTS_DIR=arts +# else +ARTS_DIR= +# endif + +# if USE_ARTSC +# ARTSC_DIR=artsd +# else +ARTSC_DIR= +# endif + +# if USE_AUDIOFILE +# AUDIOFILE_DIR=audiofile +# else +AUDIOFILE_DIR= +# endif + +# if USE_AUDIORESAMPLE +# AUDIORESAMPLE_DIR=audioresample +# else +AUDIORESAMPLE_DIR= +# endif + +if USE_BZ2 +BZ2_DIR=bz2 +else +BZ2_DIR= +endif + +if USE_CDAUDIO +CDAUDIO_DIR=cdaudio +else +CDAUDIO_DIR= +endif + +if USE_CELT +CELT_DIR=celt +else +CELT_DIR= +endif + +if USE_COG +COG_DIR=cog +else +COG_DIR= +endif + +if USE_CURL +CURL_DIR=curl +else +CURL_DIR= +endif + +if USE_DC1394 +DC1394_DIR=dc1394 +else +DC1394_DIR= +endif + +if USE_DIRAC +DIRAC_DIR=dirac +else +DIRAC_DIR= +endif + +if USE_DIRECTFB +DIRECTFB_DIR=directfb +else +DIRECTFB_DIR= +endif + +if USE_DIVX +DIVX_DIR=divx +else +DIVX_DIR= +endif + +if USE_DTS +DTS_DIR=dts +else +DTS_DIR= +endif + +if USE_RESINDVD + RESINDVD_DIR = resindvd +else + RESINDVD_DIR = +endif + +if USE_FAAC +FAAC_DIR=faac +else +FAAC_DIR= +endif + +if USE_FAAD + FAAD_DIR=faad +else + FAAD_DIR= +endif + +if USE_FLITE +FLITE_DIR=flite +else +FLITE_DIR= +endif + +#if USE_G729 +#G729_DIR=g729 +#else +G729_DIR= +#endif + +if USE_GSM +GSM_DIR=gsm +else +GSM_DIR= +endif + +# if USE_HERMES +# HERMES_DIR=hermes +# else +HERMES_DIR= +# endif + +if USE_JP2K +JP2K_DIR = jp2k +else +JP2K_DIR = +endif + +if USE_KATE +KATE_DIR=kate +else +KATE_DIR= +endif + +if USE_LADSPA +LADSPA_DIR = ladspa +else +LADSPA_DIR = +endif + +if USE_LV2 +LV2_DIR = lv2 +else +LV2_DIR = +endif + +# if USE_LCS +# LCS_DIR=lcs +# else +LCS_DIR= +# endif + +# if USE_LIBFAME +# LIBFAME_DIR=libfame +# else +LIBFAME_DIR= +# endif + +if USE_LIBMMS +LIBMMS_DIR=libmms +else +LIBMMS_DIR= +endif + +if USE_MODPLUG +MODPLUG_DIR=modplug +else +MODPLUG_DIR= +endif + +if USE_MPEG2ENC +MPEG2ENC_DIR=mpeg2enc +else +MPEG2ENC_DIR= +endif + +if USE_MIMIC +MIMIC_DIR=mimic +else +MIMIC_DIR= +endif + +if USE_MPLEX +MPLEX_DIR=mplex +else +MPLEX_DIR= +endif + +if USE_MUSEPACK +MUSEPACK_DIR=musepack +else +MUSEPACK_DIR= +endif + +if USE_MUSICBRAINZ +MUSICBRAINZ_DIR=musicbrainz +else +MUSICBRAINZ_DIR= +endif + +if USE_MYTHTV +MYTHTV_DIR=mythtv +else +MYTHTV_DIR= +endif + +if USE_NAS +NAS_DIR=nas +else +NAS_DIR= +endif + +if USE_NEON +NEON_DIR=neon +else +NEON_DIR= +endif + +if USE_OFA +OFA_DIR=ofa +else +OFA_DIR= +endif + +if USE_OPENCV +OPENCV_DIR=opencv +else +OPENCV_DIR= +endif + +if USE_RSVG +RSVG_DIR=rsvg +else +RSVG_DIR= +endif + +if USE_TIMIDITY +TIMIDITY_DIR=timidity +endif + +if USE_WILDMIDI +TIMIDITY_DIR=timidity +endif + +if !USE_WILDMIDI +if !USE_TIMIDITY +TIMIDITY_DIR= +endif +endif + +if USE_SCHRO +SCHRO_DIR=schroedinger +else +SCHRO_DIR= +endif + +if USE_SDL +SDL_DIR=sdl +else +SDL_DIR= +endif + +# if USE_SHOUT +# SHOUT_DIR=shout +# else +SHOUT_DIR= +# endif + +# if USE_SMOOTHWAVE +# SMOOTHWAVE_DIR=smoothwave +# else +SMOOTHWAVE_DIR= +# endif + +if USE_SNDFILE +SNDFILE_DIR=sndfile +else +SNDFILE_DIR= +endif + +if USE_SOUNDTOUCH +SOUNDTOUCH_DIR=soundtouch +else +SOUNDTOUCH_DIR= +endif + +if USE_SPC +SPC_DIR=spc +else +SPC_DIR= +endif + +if USE_GME +GME_DIR=gme +else +GME_DIR= +endif + +if USE_SWFDEC +#SWFDEC_DIR=swfdec +else +SWFDEC_DIR= +endif + +if USE_VP8 +VP8_DIR=vp8 +else +VP8_DIR= +endif + +if USE_GSETTINGS +GSETTINGS_DIR=gsettings +else +GSETTINGS_DIR= +endif + +if USE_XVID +XVID_DIR=xvid +else +XVID_DIR= +endif + +if USE_ZBAR +ZBAR_DIR=zbar +else +ZBAR_DIR= +endif + +if USE_RTMP +RTMP_DIR = rtmp +else +RTMP_DIR = +endif + + +SUBDIRS=\ + $(ASSRENDER_DIR) \ + $(AMRWB_DIR) \ + $(APEXSINK_DIR) \ + $(ARTS_DIR) \ + $(ARTSC_DIR) \ + $(AUDIOFILE_DIR) \ + $(AUDIORESAMPLE_DIR) \ + $(BZ2_DIR) \ + $(CDAUDIO_DIR) \ + $(CELT_DIR) \ + $(COG_DIR) \ + $(CURL_DIR) \ + $(DC1394_DIR) \ + $(DIRAC_DIR) \ + $(DIRECTFB_DIR) \ + $(DIVX_DIR) \ + $(DTS_DIR) \ + $(RESINDVD_DIR) \ + $(FAAC_DIR) \ + $(FAAD_DIR) \ + $(FLITE_DIR) \ + $(GSETTINGS_DIR) \ + $(GSM_DIR) \ + $(G729_DIR) \ + $(HERMES_DIR) \ + $(JP2K_DIR) \ + $(KATE_DIR) \ + $(LADSPA_DIR) \ + $(LV2_DIR) \ + $(LCS_DIR) \ + $(LIBFAME_DIR) \ + $(LIBMMS_DIR) \ + $(MODPLUG_DIR) \ + $(MPEG2ENC_DIR) \ + $(MIMIC_DIR) \ + $(MPLEX_DIR) \ + $(MUSEPACK_DIR) \ + $(MUSICBRAINZ_DIR) \ + $(MYTHTV_DIR) \ + $(NAS_DIR) \ + $(NEON_DIR) \ + $(OFA_DIR) \ + $(OPENCV_DIR) \ + $(RSVG_DIR) \ + $(SCHRO_DIR) \ + $(SDL_DIR) \ + $(SHOUT_DIR) \ + $(SMOOTHWAVE_DIR) \ + $(SNDFILE_DIR) \ + $(SOUNDTOUCH_DIR) \ + $(GME_DIR) \ + $(SPC_DIR) \ + $(SWFDEC_DIR) \ + $(TIMIDITY_DIR) \ + $(VP8_DIR) \ + $(XVID_DIR) \ + $(ZBAR_DIR) \ + $(RTMP_DIR) + +DIST_SUBDIRS = \ + amrwbenc \ + assrender \ + apexsink \ + bz2 \ + cdaudio \ + celt \ + cog \ + curl \ + dc1394 \ + dirac \ + directfb \ + faac \ + faad \ + flite \ + gsettings \ + gsm \ + ladspa \ + jp2k \ + kate \ + libmms \ + lv2 \ + dts \ + divx \ + modplug \ + mimic \ + mpeg2enc \ + mplex \ + musepack \ + musicbrainz \ + mythtv \ + nas \ + neon \ + ofa \ + opencv \ + rsvg \ + resindvd \ + schroedinger \ + sdl \ + sndfile \ + soundtouch \ + spc \ + gme \ + swfdec \ + timidity \ + vp8 \ + xvid \ + zbar \ + rtmp + +include $(top_srcdir)/common/parallel-subdirs.mak diff --git a/ext/Makefile.in b/ext/Makefile.in new file mode 100644 index 0000000..46f1bfa --- /dev/null +++ b/ext/Makefile.in @@ -0,0 +1,1140 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# include this at the end of $MODULE/ext/Makefile.am to force make to +# build subdirectories in parallel when make -jN is used. We will end up +# descending into all subdirectories a second time, but only after the first +# (parallel) run has finished, so it should go right through the second time. +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/common/parallel-subdirs.mak +subdir = ext +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \ + html-recursive info-recursive install-data-recursive \ + install-dvi-recursive install-exec-recursive \ + install-html-recursive install-info-recursive \ + install-pdf-recursive install-ps-recursive install-recursive \ + installcheck-recursive installdirs-recursive pdf-recursive \ + ps-recursive uninstall-recursive +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \ + $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \ + distdir +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +@USE_ASSRENDER_FALSE@ASSRENDER_DIR = +@USE_ASSRENDER_TRUE@ASSRENDER_DIR = assrender +@USE_AMRWB_FALSE@AMRWB_DIR = +@USE_AMRWB_TRUE@AMRWB_DIR = amrwbenc +@USE_APEXSINK_FALSE@APEXSINK_DIR = +@USE_APEXSINK_TRUE@APEXSINK_DIR = apexsink + +# if USE_ARTS +# ARTS_DIR=arts +# else +ARTS_DIR = +# endif + +# if USE_ARTSC +# ARTSC_DIR=artsd +# else +ARTSC_DIR = +# endif + +# if USE_AUDIOFILE +# AUDIOFILE_DIR=audiofile +# else +AUDIOFILE_DIR = +# endif + +# if USE_AUDIORESAMPLE +# AUDIORESAMPLE_DIR=audioresample +# else +AUDIORESAMPLE_DIR = +@USE_BZ2_FALSE@BZ2_DIR = +# endif +@USE_BZ2_TRUE@BZ2_DIR = bz2 +@USE_CDAUDIO_FALSE@CDAUDIO_DIR = +@USE_CDAUDIO_TRUE@CDAUDIO_DIR = cdaudio +@USE_CELT_FALSE@CELT_DIR = +@USE_CELT_TRUE@CELT_DIR = celt +@USE_COG_FALSE@COG_DIR = +@USE_COG_TRUE@COG_DIR = cog +@USE_CURL_FALSE@CURL_DIR = +@USE_CURL_TRUE@CURL_DIR = curl +@USE_DC1394_FALSE@DC1394_DIR = +@USE_DC1394_TRUE@DC1394_DIR = dc1394 +@USE_DIRAC_FALSE@DIRAC_DIR = +@USE_DIRAC_TRUE@DIRAC_DIR = dirac +@USE_DIRECTFB_FALSE@DIRECTFB_DIR = +@USE_DIRECTFB_TRUE@DIRECTFB_DIR = directfb +@USE_DIVX_FALSE@DIVX_DIR = +@USE_DIVX_TRUE@DIVX_DIR = divx +@USE_DTS_FALSE@DTS_DIR = +@USE_DTS_TRUE@DTS_DIR = dts +@USE_RESINDVD_FALSE@RESINDVD_DIR = +@USE_RESINDVD_TRUE@RESINDVD_DIR = resindvd +@USE_FAAC_FALSE@FAAC_DIR = +@USE_FAAC_TRUE@FAAC_DIR = faac +@USE_FAAD_FALSE@FAAD_DIR = +@USE_FAAD_TRUE@FAAD_DIR = faad +@USE_FLITE_FALSE@FLITE_DIR = +@USE_FLITE_TRUE@FLITE_DIR = flite + +#if USE_G729 +#G729_DIR=g729 +#else +G729_DIR = +@USE_GSM_FALSE@GSM_DIR = +#endif +@USE_GSM_TRUE@GSM_DIR = gsm + +# if USE_HERMES +# HERMES_DIR=hermes +# else +HERMES_DIR = +@USE_JP2K_FALSE@JP2K_DIR = +# endif +@USE_JP2K_TRUE@JP2K_DIR = jp2k +@USE_KATE_FALSE@KATE_DIR = +@USE_KATE_TRUE@KATE_DIR = kate +@USE_LADSPA_FALSE@LADSPA_DIR = +@USE_LADSPA_TRUE@LADSPA_DIR = ladspa +@USE_LV2_FALSE@LV2_DIR = +@USE_LV2_TRUE@LV2_DIR = lv2 + +# if USE_LCS +# LCS_DIR=lcs +# else +LCS_DIR = +# endif + +# if USE_LIBFAME +# LIBFAME_DIR=libfame +# else +LIBFAME_DIR = +@USE_LIBMMS_FALSE@LIBMMS_DIR = +# endif +@USE_LIBMMS_TRUE@LIBMMS_DIR = libmms +@USE_MODPLUG_FALSE@MODPLUG_DIR = +@USE_MODPLUG_TRUE@MODPLUG_DIR = modplug +@USE_MPEG2ENC_FALSE@MPEG2ENC_DIR = +@USE_MPEG2ENC_TRUE@MPEG2ENC_DIR = mpeg2enc +@USE_MIMIC_FALSE@MIMIC_DIR = +@USE_MIMIC_TRUE@MIMIC_DIR = mimic +@USE_MPLEX_FALSE@MPLEX_DIR = +@USE_MPLEX_TRUE@MPLEX_DIR = mplex +@USE_MUSEPACK_FALSE@MUSEPACK_DIR = +@USE_MUSEPACK_TRUE@MUSEPACK_DIR = musepack +@USE_MUSICBRAINZ_FALSE@MUSICBRAINZ_DIR = +@USE_MUSICBRAINZ_TRUE@MUSICBRAINZ_DIR = musicbrainz +@USE_MYTHTV_FALSE@MYTHTV_DIR = +@USE_MYTHTV_TRUE@MYTHTV_DIR = mythtv +@USE_NAS_FALSE@NAS_DIR = +@USE_NAS_TRUE@NAS_DIR = nas +@USE_NEON_FALSE@NEON_DIR = +@USE_NEON_TRUE@NEON_DIR = neon +@USE_OFA_FALSE@OFA_DIR = +@USE_OFA_TRUE@OFA_DIR = ofa +@USE_OPENCV_FALSE@OPENCV_DIR = +@USE_OPENCV_TRUE@OPENCV_DIR = opencv +@USE_RSVG_FALSE@RSVG_DIR = +@USE_RSVG_TRUE@RSVG_DIR = rsvg +@USE_TIMIDITY_FALSE@@USE_WILDMIDI_FALSE@TIMIDITY_DIR = +@USE_TIMIDITY_TRUE@TIMIDITY_DIR = timidity +@USE_WILDMIDI_TRUE@TIMIDITY_DIR = timidity +@USE_SCHRO_FALSE@SCHRO_DIR = +@USE_SCHRO_TRUE@SCHRO_DIR = schroedinger +@USE_SDL_FALSE@SDL_DIR = +@USE_SDL_TRUE@SDL_DIR = sdl + +# if USE_SHOUT +# SHOUT_DIR=shout +# else +SHOUT_DIR = +# endif + +# if USE_SMOOTHWAVE +# SMOOTHWAVE_DIR=smoothwave +# else +SMOOTHWAVE_DIR = +@USE_SNDFILE_FALSE@SNDFILE_DIR = +# endif +@USE_SNDFILE_TRUE@SNDFILE_DIR = sndfile +@USE_SOUNDTOUCH_FALSE@SOUNDTOUCH_DIR = +@USE_SOUNDTOUCH_TRUE@SOUNDTOUCH_DIR = soundtouch +@USE_SPC_FALSE@SPC_DIR = +@USE_SPC_TRUE@SPC_DIR = spc +@USE_GME_FALSE@GME_DIR = +@USE_GME_TRUE@GME_DIR = gme + +#SWFDEC_DIR=swfdec +@USE_SWFDEC_FALSE@SWFDEC_DIR = +@USE_VP8_FALSE@VP8_DIR = +@USE_VP8_TRUE@VP8_DIR = vp8 +@USE_GSETTINGS_FALSE@GSETTINGS_DIR = +@USE_GSETTINGS_TRUE@GSETTINGS_DIR = gsettings +@USE_XVID_FALSE@XVID_DIR = +@USE_XVID_TRUE@XVID_DIR = xvid +@USE_ZBAR_FALSE@ZBAR_DIR = +@USE_ZBAR_TRUE@ZBAR_DIR = zbar +@USE_RTMP_FALSE@RTMP_DIR = +@USE_RTMP_TRUE@RTMP_DIR = rtmp +SUBDIRS = \ + $(ASSRENDER_DIR) \ + $(AMRWB_DIR) \ + $(APEXSINK_DIR) \ + $(ARTS_DIR) \ + $(ARTSC_DIR) \ + $(AUDIOFILE_DIR) \ + $(AUDIORESAMPLE_DIR) \ + $(BZ2_DIR) \ + $(CDAUDIO_DIR) \ + $(CELT_DIR) \ + $(COG_DIR) \ + $(CURL_DIR) \ + $(DC1394_DIR) \ + $(DIRAC_DIR) \ + $(DIRECTFB_DIR) \ + $(DIVX_DIR) \ + $(DTS_DIR) \ + $(RESINDVD_DIR) \ + $(FAAC_DIR) \ + $(FAAD_DIR) \ + $(FLITE_DIR) \ + $(GSETTINGS_DIR) \ + $(GSM_DIR) \ + $(G729_DIR) \ + $(HERMES_DIR) \ + $(JP2K_DIR) \ + $(KATE_DIR) \ + $(LADSPA_DIR) \ + $(LV2_DIR) \ + $(LCS_DIR) \ + $(LIBFAME_DIR) \ + $(LIBMMS_DIR) \ + $(MODPLUG_DIR) \ + $(MPEG2ENC_DIR) \ + $(MIMIC_DIR) \ + $(MPLEX_DIR) \ + $(MUSEPACK_DIR) \ + $(MUSICBRAINZ_DIR) \ + $(MYTHTV_DIR) \ + $(NAS_DIR) \ + $(NEON_DIR) \ + $(OFA_DIR) \ + $(OPENCV_DIR) \ + $(RSVG_DIR) \ + $(SCHRO_DIR) \ + $(SDL_DIR) \ + $(SHOUT_DIR) \ + $(SMOOTHWAVE_DIR) \ + $(SNDFILE_DIR) \ + $(SOUNDTOUCH_DIR) \ + $(GME_DIR) \ + $(SPC_DIR) \ + $(SWFDEC_DIR) \ + $(TIMIDITY_DIR) \ + $(VP8_DIR) \ + $(XVID_DIR) \ + $(ZBAR_DIR) \ + $(RTMP_DIR) + +DIST_SUBDIRS = \ + amrwbenc \ + assrender \ + apexsink \ + bz2 \ + cdaudio \ + celt \ + cog \ + curl \ + dc1394 \ + dirac \ + directfb \ + faac \ + faad \ + flite \ + gsettings \ + gsm \ + ladspa \ + jp2k \ + kate \ + libmms \ + lv2 \ + dts \ + divx \ + modplug \ + mimic \ + mpeg2enc \ + mplex \ + musepack \ + musicbrainz \ + mythtv \ + nas \ + neon \ + ofa \ + opencv \ + rsvg \ + resindvd \ + schroedinger \ + sdl \ + sndfile \ + soundtouch \ + spc \ + gme \ + swfdec \ + timidity \ + vp8 \ + xvid \ + zbar \ + rtmp + +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/parallel-subdirs.mak $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run `make' without going through this Makefile. +# To change the values of `make' variables: instead of editing Makefiles, +# (1) if the variable is set in `config.status', edit `config.status' +# (which will cause the Makefiles to be regenerated when you run `make'); +# (2) otherwise, pass the desired values on the `make' command line. +$(RECURSIVE_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +$(RECURSIVE_CLEAN_TARGETS): + @fail= failcom='exit 1'; \ + for f in x $$MAKEFLAGS; do \ + case $$f in \ + *=* | --[!k]*);; \ + *k*) failcom='fail=yes';; \ + esac; \ + done; \ + dot_seen=no; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + rev=''; for subdir in $$list; do \ + if test "$$subdir" = "."; then :; else \ + rev="$$subdir $$rev"; \ + fi; \ + done; \ + rev="$$rev ."; \ + target=`echo $@ | sed s/-recursive//`; \ + for subdir in $$rev; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done && test -z "$$fail" +tags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \ + done +ctags-recursive: + list='$(SUBDIRS)'; for subdir in $$list; do \ + test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \ + done + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: tags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: ctags-recursive $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) ctags-recursive \ + install-am install-strip tags-recursive + +.PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \ + all all-am check check-am clean clean-generic clean-libtool \ + ctags ctags-recursive distclean distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \ + uninstall uninstall-am + + +.PHONY: independent-subdirs $(SUBDIRS) + +independent-subdirs: $(SUBDIRS) + +$(SUBDIRS): + $(MAKE) -C $@ + +all-recursive: independent-subdirs + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/amrwbenc/GstAmrwbEnc.prs b/ext/amrwbenc/GstAmrwbEnc.prs new file mode 100644 index 0000000..5765849 --- /dev/null +++ b/ext/amrwbenc/GstAmrwbEnc.prs @@ -0,0 +1,11 @@ +[_presets_] +version=0.10 +element-name=GstAmrwbEnc + +[enhance-size] +_meta/comment=Maximize compression, lowest bitrate +band-mode=0 + +[enhance-quality] +_meta/comment=Maximize quality, highest bitrate +band-mode=8 diff --git a/ext/amrwbenc/Makefile.am b/ext/amrwbenc/Makefile.am new file mode 100644 index 0000000..4c4ea3b --- /dev/null +++ b/ext/amrwbenc/Makefile.am @@ -0,0 +1,19 @@ +plugin_LTLIBRARIES = libgstamrwbenc.la + +libgstamrwbenc_la_SOURCES = \ + gstamrwb.c \ + gstamrwbenc.c + +libgstamrwbenc_la_CFLAGS = $(GST_CFLAGS) $(AMRWB_CFLAGS) +libgstamrwbenc_la_LIBADD = $(GST_BASE_LIBS) $(AMRWB_LIBS) +libgstamrwbenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstamrwbenc_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstamrwbenc.h + +presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets +preset_DATA = GstAmrwbEnc.prs + +EXTRA_DIST = $(preset_DATA) + diff --git a/ext/amrwbenc/Makefile.in b/ext/amrwbenc/Makefile.in new file mode 100644 index 0000000..1fe2937 --- /dev/null +++ b/ext/amrwbenc/Makefile.in @@ -0,0 +1,896 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/amrwbenc +DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(presetdir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstamrwbenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstamrwbenc_la_OBJECTS = libgstamrwbenc_la-gstamrwb.lo \ + libgstamrwbenc_la-gstamrwbenc.lo +libgstamrwbenc_la_OBJECTS = $(am_libgstamrwbenc_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstamrwbenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstamrwbenc_la_CFLAGS) $(CFLAGS) \ + $(libgstamrwbenc_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstamrwbenc_la_SOURCES) +DIST_SOURCES = $(libgstamrwbenc_la_SOURCES) +DATA = $(preset_DATA) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstamrwbenc.la +libgstamrwbenc_la_SOURCES = \ + gstamrwb.c \ + gstamrwbenc.c + +libgstamrwbenc_la_CFLAGS = $(GST_CFLAGS) $(AMRWB_CFLAGS) +libgstamrwbenc_la_LIBADD = $(GST_BASE_LIBS) $(AMRWB_LIBS) +libgstamrwbenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstamrwbenc_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstamrwbenc.h + +presetdir = $(datadir)/gstreamer-$(GST_MAJORMINOR)/presets +preset_DATA = GstAmrwbEnc.prs +EXTRA_DIST = $(preset_DATA) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/amrwbenc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/amrwbenc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstamrwbenc.la: $(libgstamrwbenc_la_OBJECTS) $(libgstamrwbenc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstamrwbenc_la_LINK) -rpath $(plugindir) $(libgstamrwbenc_la_OBJECTS) $(libgstamrwbenc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstamrwbenc_la-gstamrwb.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstamrwbenc_la-gstamrwbenc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstamrwbenc_la-gstamrwb.lo: gstamrwb.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstamrwbenc_la_CFLAGS) $(CFLAGS) -MT libgstamrwbenc_la-gstamrwb.lo -MD -MP -MF $(DEPDIR)/libgstamrwbenc_la-gstamrwb.Tpo -c -o libgstamrwbenc_la-gstamrwb.lo `test -f 'gstamrwb.c' || echo '$(srcdir)/'`gstamrwb.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstamrwbenc_la-gstamrwb.Tpo $(DEPDIR)/libgstamrwbenc_la-gstamrwb.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstamrwb.c' object='libgstamrwbenc_la-gstamrwb.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstamrwbenc_la_CFLAGS) $(CFLAGS) -c -o libgstamrwbenc_la-gstamrwb.lo `test -f 'gstamrwb.c' || echo '$(srcdir)/'`gstamrwb.c + +libgstamrwbenc_la-gstamrwbenc.lo: gstamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstamrwbenc_la_CFLAGS) $(CFLAGS) -MT libgstamrwbenc_la-gstamrwbenc.lo -MD -MP -MF $(DEPDIR)/libgstamrwbenc_la-gstamrwbenc.Tpo -c -o libgstamrwbenc_la-gstamrwbenc.lo `test -f 'gstamrwbenc.c' || echo '$(srcdir)/'`gstamrwbenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstamrwbenc_la-gstamrwbenc.Tpo $(DEPDIR)/libgstamrwbenc_la-gstamrwbenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstamrwbenc.c' object='libgstamrwbenc_la-gstamrwbenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstamrwbenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstamrwbenc_la_CFLAGS) $(CFLAGS) -c -o libgstamrwbenc_la-gstamrwbenc.lo `test -f 'gstamrwbenc.c' || echo '$(srcdir)/'`gstamrwbenc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-presetDATA: $(preset_DATA) + @$(NORMAL_INSTALL) + test -z "$(presetdir)" || $(MKDIR_P) "$(DESTDIR)$(presetdir)" + @list='$(preset_DATA)'; test -n "$(presetdir)" || list=; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(presetdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(presetdir)" || exit $$?; \ + done + +uninstall-presetDATA: + @$(NORMAL_UNINSTALL) + @list='$(preset_DATA)'; test -n "$(presetdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + test -n "$$files" || exit 0; \ + echo " ( cd '$(DESTDIR)$(presetdir)' && rm -f" $$files ")"; \ + cd "$(DESTDIR)$(presetdir)" && rm -f $$files + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(DATA) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)" "$(DESTDIR)$(presetdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES install-presetDATA + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES uninstall-presetDATA + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-presetDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES \ + uninstall-presetDATA + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/amrwbenc/README b/ext/amrwbenc/README new file mode 100644 index 0000000..9d15872 --- /dev/null +++ b/ext/amrwbenc/README @@ -0,0 +1,12 @@ +Compiling AMRWB encoder: +======================== + +To compile the amrwb encoder, you need to download the source code from +"http://www.3gpp.org/ftp/Specs/html-info/26204.htm" and uncompress the +files inside an amrwb-code directory; + +or execute this commands: +$cd amrwb-code +$sh ./run.sh + +and run the "autogen" script again. diff --git a/ext/amrwbenc/gstamrwb.c b/ext/amrwbenc/gstamrwb.c new file mode 100644 index 0000000..cc2407e --- /dev/null +++ b/ext/amrwbenc/gstamrwb.c @@ -0,0 +1,39 @@ +/* GStreamer Adaptive Multi-Rate Wide-Band (AMR-WB) Encoder plugin + * Copyright (C) 2006 Edgard Lima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstamrwbenc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "amrwbenc", + GST_RANK_SECONDARY, GST_TYPE_AMRWBENC); +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "amrwbenc", + "Adaptive Multi-Rate Wide-Band Encoder", + plugin_init, VERSION, GST_LICENSE_UNKNOWN, GST_PACKAGE_NAME, + GST_PACKAGE_ORIGIN); diff --git a/ext/amrwbenc/gstamrwbenc.c b/ext/amrwbenc/gstamrwbenc.c new file mode 100644 index 0000000..990445f --- /dev/null +++ b/ext/amrwbenc/gstamrwbenc.c @@ -0,0 +1,388 @@ +/* GStreamer Adaptive Multi-Rate Wide-Band (AMR-WB) plugin + * Copyright (C) 2006 Edgard Lima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-amrwbenc + * @see_also: #GstAmrwbDec, #GstAmrwbParse + * + * AMR wideband encoder based on the + * reference codec implementation. + * + * + * Example launch line + * |[ + * gst-launch filesrc location=abc.wav ! wavparse ! audioresample ! audioconvert ! amrwbenc ! filesink location=abc.amr + * ]| + * Please not that the above stream misses the header, that is needed to play + * the stream. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstamrwbenc.h" + +/* these defines are not in all .h files */ +#ifndef MR660 +#define MR660 0 +#define MR885 1 +#define MR1265 2 +#define MR1425 2 +#define MR1585 3 +#define MR1825 4 +#define MR1985 5 +#define MR2305 6 +#define MR2385 7 +#define MRDTX 8 +#endif + +static GType +gst_amrwbenc_bandmode_get_type (void) +{ + static GType gst_amrwbenc_bandmode_type = 0; + static GEnumValue gst_amrwbenc_bandmode[] = { + {MR660, "MR660", "MR660"}, + {MR885, "MR885", "MR885"}, + {MR1265, "MR1265", "MR1265"}, + {MR1425, "MR1425", "MR1425"}, + {MR1585, "MR1585", "MR1585"}, + {MR1825, "MR1825", "MR1825"}, + {MR1985, "MR1985", "MR1985"}, + {MR2305, "MR2305", "MR2305"}, + {MR2385, "MR2385", "MR2385"}, + {MRDTX, "MRDTX", "MRDTX"}, + {0, NULL, NULL}, + }; + if (!gst_amrwbenc_bandmode_type) { + gst_amrwbenc_bandmode_type = + g_enum_register_static ("GstAmrWbEncBandMode", gst_amrwbenc_bandmode); + } + return gst_amrwbenc_bandmode_type; +} + +#define GST_AMRWBENC_BANDMODE_TYPE (gst_amrwbenc_bandmode_get_type()) + +#define BANDMODE_DEFAULT MR660 + +enum +{ + PROP_0, + PROP_BANDMODE +}; + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "width = (int) 16, " + "depth = (int) 16, " + "signed = (boolean) TRUE, " + "endianness = (int) BYTE_ORDER, " + "rate = (int) 16000, " "channels = (int) 1") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/AMR-WB, " + "rate = (int) 16000, " "channels = (int) 1") + ); + +GST_DEBUG_CATEGORY_STATIC (gst_amrwbenc_debug); +#define GST_CAT_DEFAULT gst_amrwbenc_debug + +static void gst_amrwbenc_finalize (GObject * object); + +static GstFlowReturn gst_amrwbenc_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_amrwbenc_setcaps (GstPad * pad, GstCaps * caps); +static GstStateChangeReturn gst_amrwbenc_state_change (GstElement * element, + GstStateChange transition); + +static void +_do_init (GType object_type) +{ + const GInterfaceInfo preset_interface_info = { + NULL, /* interface init */ + NULL, /* interface finalize */ + NULL /* interface_data */ + }; + + g_type_add_interface_static (object_type, GST_TYPE_PRESET, + &preset_interface_info); + + GST_DEBUG_CATEGORY_INIT (gst_amrwbenc_debug, "amrwbenc", 0, + "AMR-WB audio encoder"); +} + +#define GstAmrWbEnc GstAmrwbEnc +#define GstAmrWbEncClass GstAmrwbEncClass + +GST_BOILERPLATE_FULL (GstAmrWbEnc, gst_amrwbenc, GstElement, GST_TYPE_ELEMENT, + _do_init); + +static void +gst_amrwbenc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstAmrwbEnc *self = GST_AMRWBENC (object); + + switch (prop_id) { + case PROP_BANDMODE: + self->bandmode = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + return; +} + +static void +gst_amrwbenc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstAmrwbEnc *self = GST_AMRWBENC (object); + + switch (prop_id) { + case PROP_BANDMODE: + g_value_set_enum (value, self->bandmode); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + return; +} + +static void +gst_amrwbenc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + + gst_element_class_set_details_simple (element_class, "AMR-WB audio encoder", + "Codec/Encoder/Audio", + "Adaptive Multi-Rate Wideband audio encoder", + "Renato Araujo "); +} + +static void +gst_amrwbenc_class_init (GstAmrwbEncClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + object_class->finalize = gst_amrwbenc_finalize; + object_class->set_property = gst_amrwbenc_set_property; + object_class->get_property = gst_amrwbenc_get_property; + + g_object_class_install_property (object_class, PROP_BANDMODE, + g_param_spec_enum ("band-mode", "Band Mode", + "Encoding Band Mode (Kbps)", GST_AMRWBENC_BANDMODE_TYPE, + BANDMODE_DEFAULT, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + + element_class->change_state = GST_DEBUG_FUNCPTR (gst_amrwbenc_state_change); +} + +static void +gst_amrwbenc_init (GstAmrwbEnc * amrwbenc, GstAmrwbEncClass * klass) +{ + /* create the sink pad */ + amrwbenc->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_setcaps_function (amrwbenc->sinkpad, gst_amrwbenc_setcaps); + gst_pad_set_chain_function (amrwbenc->sinkpad, gst_amrwbenc_chain); + gst_element_add_pad (GST_ELEMENT (amrwbenc), amrwbenc->sinkpad); + + /* create the src pad */ + amrwbenc->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_use_fixed_caps (amrwbenc->srcpad); + gst_element_add_pad (GST_ELEMENT (amrwbenc), amrwbenc->srcpad); + + amrwbenc->adapter = gst_adapter_new (); + + /* init rest */ + amrwbenc->handle = NULL; + amrwbenc->channels = 0; + amrwbenc->rate = 0; + amrwbenc->ts = 0; +} + +static void +gst_amrwbenc_finalize (GObject * object) +{ + GstAmrwbEnc *amrwbenc; + + amrwbenc = GST_AMRWBENC (object); + + g_object_unref (G_OBJECT (amrwbenc->adapter)); + amrwbenc->adapter = NULL; + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_amrwbenc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstStructure *structure; + GstAmrwbEnc *amrwbenc; + GstCaps *copy; + + amrwbenc = GST_AMRWBENC (GST_PAD_PARENT (pad)); + + structure = gst_caps_get_structure (caps, 0); + + /* get channel count */ + gst_structure_get_int (structure, "channels", &amrwbenc->channels); + gst_structure_get_int (structure, "rate", &amrwbenc->rate); + + /* this is not wrong but will sound bad */ + if (amrwbenc->channels != 1) { + GST_WARNING ("amrwbdec is only optimized for mono channels"); + } + if (amrwbenc->rate != 16000) { + GST_WARNING ("amrwbdec is only optimized for 16000 Hz samplerate"); + } + + /* create reverse caps */ + copy = gst_caps_new_simple ("audio/AMR-WB", + "channels", G_TYPE_INT, amrwbenc->channels, + "rate", G_TYPE_INT, amrwbenc->rate, NULL); + + gst_pad_set_caps (amrwbenc->srcpad, copy); + gst_caps_unref (copy); + + return TRUE; +} + +static GstFlowReturn +gst_amrwbenc_chain (GstPad * pad, GstBuffer * buffer) +{ + GstAmrwbEnc *amrwbenc; + GstFlowReturn ret = GST_FLOW_OK; + const int buffer_size = sizeof (Word16) * L_FRAME16k; + + amrwbenc = GST_AMRWBENC (gst_pad_get_parent (pad)); + + g_return_val_if_fail (amrwbenc->handle, GST_FLOW_WRONG_STATE); + + if (amrwbenc->rate == 0 || amrwbenc->channels == 0) { + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } + + /* discontinuity clears adapter, FIXME, maybe we can set some + * encoder flag to mask the discont. */ + if (GST_BUFFER_FLAG_IS_SET (buffer, GST_BUFFER_FLAG_DISCONT)) { + gst_adapter_clear (amrwbenc->adapter); + amrwbenc->ts = 0; + amrwbenc->discont = TRUE; + } + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) + amrwbenc->ts = GST_BUFFER_TIMESTAMP (buffer); + + ret = GST_FLOW_OK; + gst_adapter_push (amrwbenc->adapter, buffer); + + /* Collect samples until we have enough for an output frame */ + while (gst_adapter_available (amrwbenc->adapter) >= buffer_size) { + GstBuffer *out; + guint8 *data; + gint outsize; + + out = gst_buffer_new_and_alloc (buffer_size); + GST_BUFFER_DURATION (out) = GST_SECOND * L_FRAME16k / + (amrwbenc->rate * amrwbenc->channels); + GST_BUFFER_TIMESTAMP (out) = amrwbenc->ts; + if (amrwbenc->ts != -1) { + amrwbenc->ts += GST_BUFFER_DURATION (out); + } + if (amrwbenc->discont) { + GST_BUFFER_FLAG_SET (out, GST_BUFFER_FLAG_DISCONT); + amrwbenc->discont = FALSE; + } + gst_buffer_set_caps (out, gst_pad_get_caps (amrwbenc->srcpad)); + + data = (guint8 *) gst_adapter_peek (amrwbenc->adapter, buffer_size); + + /* encode */ + outsize = + E_IF_encode (amrwbenc->handle, amrwbenc->bandmode, (Word16 *) data, + (UWord8 *) GST_BUFFER_DATA (out), 0); + + gst_adapter_flush (amrwbenc->adapter, buffer_size); + GST_BUFFER_SIZE (out) = outsize; + + /* play */ + if ((ret = gst_pad_push (amrwbenc->srcpad, out)) != GST_FLOW_OK) + break; + } + +done: + + gst_object_unref (amrwbenc); + return ret; + +} + +static GstStateChangeReturn +gst_amrwbenc_state_change (GstElement * element, GstStateChange transition) +{ + GstAmrwbEnc *amrwbenc; + GstStateChangeReturn ret; + + amrwbenc = GST_AMRWBENC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!(amrwbenc->handle = E_IF_init ())) + return GST_STATE_CHANGE_FAILURE; + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + amrwbenc->rate = 0; + amrwbenc->channels = 0; + amrwbenc->ts = 0; + amrwbenc->discont = FALSE; + gst_adapter_clear (amrwbenc->adapter); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + E_IF_exit (amrwbenc->handle); + break; + default: + break; + } + + return ret; +} diff --git a/ext/amrwbenc/gstamrwbenc.h b/ext/amrwbenc/gstamrwbenc.h new file mode 100644 index 0000000..034a5be --- /dev/null +++ b/ext/amrwbenc/gstamrwbenc.h @@ -0,0 +1,70 @@ +/* GStreamer Adaptive Multi-Rate Wide-Band (AMR-WB) plugin + * Copyright (C) 2006 Edgard Lima + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_AMRWBENC_H__ +#define __GST_AMRWBENC_H__ + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_AMRWBENC \ + (gst_amrwbenc_get_type()) +#define GST_AMRWBENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_AMRWBENC, GstAmrwbEnc)) +#define GST_AMRWBENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_AMRWBENC, GstAmrwbEncClass)) +#define GST_IS_AMRWBENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_AMRWBENC)) +#define GST_IS_AMRWBENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_AMRWBENC)) + +typedef struct _GstAmrwbEnc GstAmrwbEnc; +typedef struct _GstAmrwbEncClass GstAmrwbEncClass; + +struct _GstAmrwbEnc { + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + guint64 ts; + gboolean discont; + + GstAdapter *adapter; + + /* library handle */ + void *handle; + + /* input settings */ + gint bandmode; + gint channels, rate; +}; + +struct _GstAmrwbEncClass { + GstElementClass parent_class; +}; + +GType gst_amrwbenc_get_type (void); + +G_END_DECLS + +#endif /* __GST_AMRWBENC_H__ */ diff --git a/ext/apexsink/Makefile.am b/ext/apexsink/Makefile.am new file mode 100644 index 0000000..0bd41ca --- /dev/null +++ b/ext/apexsink/Makefile.am @@ -0,0 +1,12 @@ +plugin_LTLIBRARIES = libgstapexsink.la + +libgstapexsink_la_SOURCES = gstapexplugin.c gstapexraop.c gstapexsink.c +libgstapexsink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(APEXSINK_CFLAGS) +libgstapexsink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) -lgstinterfaces-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(APEXSINK_LIBS) +libgstapexsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstapexsink_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstapexraop.h gstapexsink.h diff --git a/ext/apexsink/Makefile.in b/ext/apexsink/Makefile.in new file mode 100644 index 0000000..7524115 --- /dev/null +++ b/ext/apexsink/Makefile.in @@ -0,0 +1,881 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/apexsink +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstapexsink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstapexsink_la_OBJECTS = libgstapexsink_la-gstapexplugin.lo \ + libgstapexsink_la-gstapexraop.lo \ + libgstapexsink_la-gstapexsink.lo +libgstapexsink_la_OBJECTS = $(am_libgstapexsink_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstapexsink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstapexsink_la_CFLAGS) $(CFLAGS) \ + $(libgstapexsink_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstapexsink_la_SOURCES) +DIST_SOURCES = $(libgstapexsink_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstapexsink.la +libgstapexsink_la_SOURCES = gstapexplugin.c gstapexraop.c gstapexsink.c +libgstapexsink_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(APEXSINK_CFLAGS) + +libgstapexsink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-$(GST_MAJORMINOR) -lgstinterfaces-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) $(GST_LIBS) $(APEXSINK_LIBS) + +libgstapexsink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstapexsink_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstapexraop.h gstapexsink.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/apexsink/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/apexsink/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstapexsink.la: $(libgstapexsink_la_OBJECTS) $(libgstapexsink_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstapexsink_la_LINK) -rpath $(plugindir) $(libgstapexsink_la_OBJECTS) $(libgstapexsink_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapexsink_la-gstapexplugin.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapexsink_la-gstapexraop.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstapexsink_la-gstapexsink.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstapexsink_la-gstapexplugin.lo: gstapexplugin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -MT libgstapexsink_la-gstapexplugin.lo -MD -MP -MF $(DEPDIR)/libgstapexsink_la-gstapexplugin.Tpo -c -o libgstapexsink_la-gstapexplugin.lo `test -f 'gstapexplugin.c' || echo '$(srcdir)/'`gstapexplugin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapexsink_la-gstapexplugin.Tpo $(DEPDIR)/libgstapexsink_la-gstapexplugin.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapexplugin.c' object='libgstapexsink_la-gstapexplugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -c -o libgstapexsink_la-gstapexplugin.lo `test -f 'gstapexplugin.c' || echo '$(srcdir)/'`gstapexplugin.c + +libgstapexsink_la-gstapexraop.lo: gstapexraop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -MT libgstapexsink_la-gstapexraop.lo -MD -MP -MF $(DEPDIR)/libgstapexsink_la-gstapexraop.Tpo -c -o libgstapexsink_la-gstapexraop.lo `test -f 'gstapexraop.c' || echo '$(srcdir)/'`gstapexraop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapexsink_la-gstapexraop.Tpo $(DEPDIR)/libgstapexsink_la-gstapexraop.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapexraop.c' object='libgstapexsink_la-gstapexraop.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -c -o libgstapexsink_la-gstapexraop.lo `test -f 'gstapexraop.c' || echo '$(srcdir)/'`gstapexraop.c + +libgstapexsink_la-gstapexsink.lo: gstapexsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -MT libgstapexsink_la-gstapexsink.lo -MD -MP -MF $(DEPDIR)/libgstapexsink_la-gstapexsink.Tpo -c -o libgstapexsink_la-gstapexsink.lo `test -f 'gstapexsink.c' || echo '$(srcdir)/'`gstapexsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstapexsink_la-gstapexsink.Tpo $(DEPDIR)/libgstapexsink_la-gstapexsink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstapexsink.c' object='libgstapexsink_la-gstapexsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstapexsink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstapexsink_la_CFLAGS) $(CFLAGS) -c -o libgstapexsink_la-gstapexsink.lo `test -f 'gstapexsink.c' || echo '$(srcdir)/'`gstapexsink.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/apexsink/gstapexplugin.c b/ext/apexsink/gstapexplugin.c new file mode 100644 index 0000000..edcc393 --- /dev/null +++ b/ext/apexsink/gstapexplugin.c @@ -0,0 +1,44 @@ +/* GStreamer AirPort Express Plugin + * + * Copyright (C) 2008 Jérémie Bernard [GRemi] + * + * gstapexpugin.c + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, GST_APEX_SINK_NAME, GST_RANK_NONE, + GST_TYPE_APEX_SINK); +} + +/* plugin export resolution */ +GST_PLUGIN_DEFINE + (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "apexsink", + "Apple AirPort Express Plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/apexsink/gstapexraop.c b/ext/apexsink/gstapexraop.c new file mode 100644 index 0000000..4d07674 --- /dev/null +++ b/ext/apexsink/gstapexraop.c @@ -0,0 +1,723 @@ +/* GStreamer - Remote Audio Access Protocol (RAOP) as used in Apple iTunes to stream music to the Airport Express (ApEx) - + * + * RAOP is based on the Real Time Streaming Protocol (RTSP) but with an extra challenge-response RSA based authentication step. + * This interface accepts RAW PCM data and set it as AES encrypted ALAC while performing emission. + * + * Copyright (C) 2008 Jérémie Bernard [GRemi] + * + * gstapexraop.c + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstapexraop.h" + +/* private constants */ +#define GST_APEX_RAOP_VOLUME_MIN -144 +#define GST_APEX_RAOP_VOLUME_MAX 0 + +#define GST_APEX_RAOP_HDR_DEFAULT_LENGTH 1024 +#define GST_APEX_RAOP_SDP_DEFAULT_LENGTH 2048 + +const static gchar GST_APEX_RAOP_RSA_PUBLIC_MOD[] = + "59dE8qLieItsH1WgjrcFRKj6eUWqi+bGLOX1HL3U3GhC/j0Qg90u3sG/1CUtwC" + "5vOYvfDmFI6oSFXi5ELabWJmT2dKHzBJKa3k9ok+8t9ucRqMd6DZHJ2YCCLlDR" + "KSKv6kDqnw4UwPdpOMXziC/AMj3Z/lUVX1G7WSHCAWKf1zNS1eLvqr+boEjXuB" + "OitnZ/bDzPHrTOZz0Dew0uowxf/+sG+NCK3eQJVxqcaJ/vEHKIVd2M+5qL71yJ" + "Q+87X6oV3eaYvt3zWZYD6z5vYTcrtij2VZ9Zmni/UAaHqn9JdsBWLUEpVviYnh" + "imNVvYFZeCXg/IdTQ+x4IRdiXNv5hEew=="; + +const static gchar GST_APEX_RAOP_RSA_PUBLIC_EXP[] = "AQAB"; + +const static gchar GST_APEX_RAOP_USER_AGENT[] = + "iTunes/4.6 (Macintosh; U; PPC Mac OS X 10.3)"; + +const static guchar GST_APEX_RAOP_FRAME_HEADER[] = { + 0x24, 0x00, 0x00, 0x00, + 0xF0, 0xFF, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00 +}; + +const static int GST_APEX_RAOP_FRAME_HEADER_SIZE = 16; + +const static int GST_APEX_RAOP_ALAC_HEADER_SIZE = 3; + +/* string extra utility */ +static gint +g_strdel (gchar * str, gchar rc) +{ + int i = 0, j = 0, len, num = 0; + len = strlen (str); + while (i < len) { + if (str[i] == rc) { + for (j = i; j < len; j++) + str[j] = str[j + 1]; + len--; + num++; + } else { + i++; + } + } + return num; +} + +/* socket utilities */ +static int +gst_apexraop_send (int desc, void *data, size_t len) +{ + int total = 0, bytesleft = len, n = 0; + + while (total < len) { + n = send (desc, ((const char *) data) + total, bytesleft, 0); + if (n == -1) + break; + total += n; + bytesleft -= n; + } + + return n == -1 ? -1 : total; +} + +static int +gst_apexraop_recv (int desc, void *data, size_t len) +{ + memset (data, 0, len); + return recv (desc, data, len, 0); +} + +/* public opaque handle resolution */ +typedef struct +{ + guchar aes_ky[AES_BLOCK_SIZE]; /* AES random key */ + guchar aes_iv[AES_BLOCK_SIZE]; /* AES random initial vector */ + + guchar url_abspath[16]; /* header url random absolute path addon, ANNOUNCE id */ + gint cseq; /* header rtsp inc cseq */ + guchar cid[24]; /* header client instance id */ + gchar *session; /* header raop negotiated session id, once SETUP performed */ + gchar *ua; /* header user agent */ + + GstApExJackType jack_type; /* APEX connected jack type, once ANNOUNCE performed */ + GstApExJackStatus jack_status; /* APEX connected jack status, once ANNOUNCE performed */ + + gchar *host; /* APEX target ip */ + guint ctrl_port; /* APEX target control port */ + guint data_port; /* APEX negotiated data port, once SETUP performed */ + + int ctrl_sd; /* control socket */ + struct sockaddr_in ctrl_sd_in; + + int data_sd; /* data socket */ + struct sockaddr_in data_sd_in; +} +_GstApExRAOP; + +/* raop apex struct allocation */ +GstApExRAOP * +gst_apexraop_new (const gchar * host, const guint16 port) +{ + _GstApExRAOP *apexraop; + + apexraop = (_GstApExRAOP *) g_malloc0 (sizeof (_GstApExRAOP)); + + apexraop->host = g_strdup (host); + apexraop->ctrl_port = port; + apexraop->ua = g_strdup (GST_APEX_RAOP_USER_AGENT); + apexraop->jack_type = GST_APEX_JACK_TYPE_UNDEFINED; + apexraop->jack_status = GST_APEX_JACK_STATUS_DISCONNECTED; + + return (GstApExRAOP *) apexraop; +} + +/* raop apex struct freeing */ +void +gst_apexraop_free (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + g_free (conn->host); + g_free (conn->session); + g_free (conn->ua); + g_free (conn); +} + +/* host affectation */ +void +gst_apexraop_set_host (GstApExRAOP * con, const gchar * host) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + g_free (conn->host); + conn->host = g_strdup (host); +} + +/* host reader */ +gchar * +gst_apexraop_get_host (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + return g_strdup (conn->host); +} + +/* control port affectation */ +void +gst_apexraop_set_port (GstApExRAOP * con, const guint16 port) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + conn->ctrl_port = port; +} + +/* control port reader */ +guint16 +gst_apexraop_get_port (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + return conn->ctrl_port; +} + +/* user agent affectation */ +void +gst_apexraop_set_useragent (GstApExRAOP * con, const gchar * useragent) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + g_free (conn->ua); + conn->ua = g_strdup (useragent); +} + +/* user agent reader */ +gchar * +gst_apexraop_get_useragent (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + conn = (_GstApExRAOP *) con; + + return g_strdup (conn->ua); +} + +/* raop apex connection sequence */ +GstRTSPStatusCode +gst_apexraop_connect (GstApExRAOP * con) +{ + gchar *ac, *ky, *iv, *s, inaddr[INET_ADDRSTRLEN], + creq[GST_APEX_RAOP_SDP_DEFAULT_LENGTH], + hreq[GST_APEX_RAOP_HDR_DEFAULT_LENGTH], *req; + RSA *rsa; + guchar *mod, *exp, rsakey[512]; + union gst_randbytes + { + struct asvals + { + gulong url_key; + guint64 conn_id; + guchar challenge[16]; + } v; + guchar buf[4 + 8 + 16]; + } randbuf; + gsize size; + struct sockaddr_in ioaddr; + socklen_t iolen; + GstRTSPStatusCode res; + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + if ((conn->ctrl_sd = socket (AF_INET, SOCK_STREAM, 0)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + + conn->ctrl_sd_in.sin_family = AF_INET; + conn->ctrl_sd_in.sin_port = htons (conn->ctrl_port); + + if (!inet_aton (conn->host, &conn->ctrl_sd_in.sin_addr)) { + struct hostent *hp = (struct hostent *) gethostbyname (conn->host); + if (hp == NULL) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + memcpy (&conn->ctrl_sd_in.sin_addr, hp->h_addr, hp->h_length); + } + + if (connect (conn->ctrl_sd, (struct sockaddr *) &conn->ctrl_sd_in, + sizeof (conn->ctrl_sd_in)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + + RAND_bytes (randbuf.buf, sizeof (randbuf)); + sprintf ((gchar *) conn->url_abspath, "%lu", randbuf.v.url_key); + sprintf ((char *) conn->cid, "%16" G_GINT64_MODIFIER "x", randbuf.v.conn_id); + + RAND_bytes (conn->aes_ky, AES_BLOCK_SIZE); + RAND_bytes (conn->aes_iv, AES_BLOCK_SIZE); + + rsa = RSA_new (); + mod = g_base64_decode (GST_APEX_RAOP_RSA_PUBLIC_MOD, &size); + rsa->n = BN_bin2bn (mod, size, NULL); + exp = g_base64_decode (GST_APEX_RAOP_RSA_PUBLIC_EXP, &size); + rsa->e = BN_bin2bn (exp, size, NULL); + size = + RSA_public_encrypt (AES_BLOCK_SIZE, conn->aes_ky, rsakey, rsa, + RSA_PKCS1_OAEP_PADDING); + + ky = g_base64_encode (rsakey, size); + iv = g_base64_encode (conn->aes_iv, AES_BLOCK_SIZE); + g_strdel (ky, '='); + g_strdel (iv, '='); + + iolen = sizeof (struct sockaddr); + getsockname (conn->ctrl_sd, (struct sockaddr *) &ioaddr, &iolen); + inet_ntop (AF_INET, &(ioaddr.sin_addr), inaddr, INET_ADDRSTRLEN); + + ac = g_base64_encode (randbuf.v.challenge, 16); + g_strdel (ac, '='); + + sprintf (creq, + "v=0\r\n" + "o=iTunes %s 0 IN IP4 %s\r\n" + "s=iTunes\r\n" + "c=IN IP4 %s\r\n" + "t=0 0\r\n" + "m=audio 0 RTP/AVP 96\r\n" + "a=rtpmap:96 AppleLossless\r\n" + "a=fmtp:96 %d 0 %d 40 10 14 %d 255 0 0 %d\r\n" + "a=rsaaeskey:%s\r\n" + "a=aesiv:%s\r\n", + conn->url_abspath, + inaddr, + conn->host, + GST_APEX_RAOP_SAMPLES_PER_FRAME, + GST_APEX_RAOP_BYTES_PER_CHANNEL * 8, + GST_APEX_RAOP_CHANNELS, GST_APEX_RAOP_BITRATE, ky, iv); + + sprintf (hreq, + "ANNOUNCE rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Content-Type: application/sdp\r\n" + "Content-Length: %u\r\n" + "Apple-Challenge: %s\r\n", + conn->host, + conn->url_abspath, ++conn->cseq, conn->cid, conn->ua, + (guint) strlen (creq), ac); + + RSA_free (rsa); + g_free (ky); + g_free (iv); + g_free (ac); + g_free (mod); + g_free (exp); + + req = g_strconcat (hreq, "\r\n", creq, NULL); + + if (gst_apexraop_send (conn->ctrl_sd, req, strlen (req)) <= 0) { + g_free (req); + return GST_RTSP_STS_GONE; + } + + g_free (req); + + if (gst_apexraop_recv (conn->ctrl_sd, hreq, + GST_APEX_RAOP_HDR_DEFAULT_LENGTH) <= 0) + return GST_RTSP_STS_GONE; + + { + int tmp; + sscanf (hreq, "%*s %d", &tmp); + res = (GstRTSPStatusCode) tmp; + } + + if (res != GST_RTSP_STS_OK) + return res; + + s = g_strrstr (hreq, "Audio-Jack-Status"); + + if (s != NULL) { + gchar status[128]; + sscanf (s, "%*s %s", status); + + if (strcmp (status, "connected;") == 0) + conn->jack_status = GST_APEX_JACK_STATUS_CONNECTED; + else if (strcmp (status, "disconnected;") == 0) + conn->jack_status = GST_APEX_JACK_STATUS_DISCONNECTED; + else + conn->jack_status = GST_APEX_JACK_STATUS_UNDEFINED; + + s = g_strrstr (s, "type="); + + if (s != NULL) { + strtok (s, "="); + s = strtok (NULL, "\n"); + + if (strcmp (s, "analog")) + conn->jack_type = GST_APEX_JACK_TYPE_ANALOG; + else if (strcmp (s, "digital")) + conn->jack_type = GST_APEX_JACK_TYPE_DIGITAL; + else + conn->jack_type = GST_APEX_JACK_TYPE_UNDEFINED; + } + } + + sprintf (hreq, + "SETUP rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Transport: RTP/AVP/TCP;unicast;interleaved=0-1;mode=record\r\n" + "\r\n", conn->host, conn->url_abspath, ++conn->cseq, conn->cid, conn->ua); + + if (gst_apexraop_send (conn->ctrl_sd, hreq, strlen (hreq)) <= 0) + return GST_RTSP_STS_GONE; + + if (gst_apexraop_recv (conn->ctrl_sd, hreq, + GST_APEX_RAOP_HDR_DEFAULT_LENGTH) <= 0) + return GST_RTSP_STS_GONE; + + { + int tmp; + sscanf (hreq, "%*s %d", &tmp); + res = (GstRTSPStatusCode) tmp; + } + + if (res != GST_RTSP_STS_OK) + return res; + + s = g_strrstr (hreq, "Session"); + + if (s != NULL) { + gchar session[128]; + sscanf (s, "%*s %s", session); + conn->session = g_strdup (session); + } else + return GST_RTSP_STS_PRECONDITION_FAILED; + + s = g_strrstr (hreq, "server_port"); + if (s != NULL) { + sscanf (s, "server_port=%d", &conn->data_port); + } else + return GST_RTSP_STS_PRECONDITION_FAILED; + + sprintf (hreq, + "RECORD rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Session: %s\r\n" + "Range: npt=0-\r\n" + "RTP-Info: seq=0;rtptime=0\r\n" + "\r\n", + conn->host, + conn->url_abspath, ++conn->cseq, conn->cid, conn->ua, conn->session); + + if (gst_apexraop_send (conn->ctrl_sd, hreq, strlen (hreq)) <= 0) + return GST_RTSP_STS_GONE; + + if (gst_apexraop_recv (conn->ctrl_sd, hreq, + GST_APEX_RAOP_HDR_DEFAULT_LENGTH) <= 0) + return GST_RTSP_STS_GONE; + + { + int tmp; + sscanf (hreq, "%*s %d", &tmp); + res = (GstRTSPStatusCode) tmp; + } + + if (res != GST_RTSP_STS_OK) + return res; + + if ((conn->data_sd = socket (AF_INET, SOCK_STREAM, 0)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + + conn->data_sd_in.sin_family = AF_INET; + conn->data_sd_in.sin_port = htons (conn->data_port); + + memcpy (&conn->data_sd_in.sin_addr, &conn->ctrl_sd_in.sin_addr, + sizeof (conn->ctrl_sd_in.sin_addr)); + + if (connect (conn->data_sd, (struct sockaddr *) &conn->data_sd_in, + sizeof (conn->data_sd_in)) < 0) + return GST_RTSP_STS_DESTINATION_UNREACHABLE; + + return res; +} + +/* raop apex jack type access */ +GstApExJackType +gst_apexraop_get_jacktype (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + if (!conn) + return GST_APEX_JACK_TYPE_UNDEFINED; + + return conn->jack_type; +} + +/* raop apex jack status access */ +GstApExJackStatus +gst_apexraop_get_jackstatus (GstApExRAOP * con) +{ + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + if (!conn) + return GST_APEX_JACK_STATUS_UNDEFINED; + + return conn->jack_status; +} + +/* raop apex sockets close */ +void +gst_apexraop_close (GstApExRAOP * con) +{ + gchar hreq[GST_APEX_RAOP_HDR_DEFAULT_LENGTH]; + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + sprintf (hreq, + "TEARDOWN rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Session: %s\r\n" + "\r\n", + conn->host, + conn->url_abspath, ++conn->cseq, conn->cid, conn->ua, conn->session); + + gst_apexraop_send (conn->ctrl_sd, hreq, strlen (hreq)); + gst_apexraop_recv (conn->ctrl_sd, hreq, GST_APEX_RAOP_HDR_DEFAULT_LENGTH); + + if (conn->ctrl_sd != 0) + close (conn->ctrl_sd); + if (conn->data_sd != 0) + close (conn->data_sd); +} + +/* raop apex volume set */ +GstRTSPStatusCode +gst_apexraop_set_volume (GstApExRAOP * con, const guint volume) +{ + gint v; + gchar creq[GST_APEX_RAOP_SDP_DEFAULT_LENGTH], + hreq[GST_APEX_RAOP_HDR_DEFAULT_LENGTH], *req, vol[128]; + GstRTSPStatusCode res; + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + v = GST_APEX_RAOP_VOLUME_MIN + (GST_APEX_RAOP_VOLUME_MAX - + GST_APEX_RAOP_VOLUME_MIN) * volume / 100.; + sprintf (vol, "volume: %d.000000\r\n", v); + + sprintf (creq, "%s\r\n", vol); + + sprintf (hreq, + "SET_PARAMETER rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Session: %s\r\n" + "Content-Type: text/parameters\r\n" + "Content-Length: %u\r\n", + conn->host, + conn->url_abspath, + ++conn->cseq, conn->cid, conn->ua, conn->session, (guint) strlen (creq) + ); + + req = g_strconcat (hreq, "\r\n", creq, NULL); + + if (gst_apexraop_send (conn->ctrl_sd, req, strlen (req)) <= 0) { + g_free (req); + return GST_RTSP_STS_GONE; + } + + g_free (req); + + if (gst_apexraop_recv (conn->ctrl_sd, hreq, + GST_APEX_RAOP_HDR_DEFAULT_LENGTH) <= 0) + return GST_RTSP_STS_GONE; + + { + int tmp; + sscanf (hreq, "%*s %d", &tmp); + res = (GstRTSPStatusCode) tmp; + } + + return res; +} + +/* raop apex raw data alac encapsulation, encryption and emission, http://wiki.multimedia.cx/index.php?title=Apple_Lossless_Audio_Coding */ +static void inline +gst_apexraop_write_bits (guchar * buffer, int data, int numbits, + int *bit_offset, int *byte_offset) +{ + const static guchar masks[] = + { 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x7F, 0xFF }; + + if (((*bit_offset) != 0) && (((*bit_offset) + numbits) > 8)) { + gint numwritebits; + guchar bitstowrite; + + numwritebits = 8 - (*bit_offset); + bitstowrite = + (guchar) ((data >> (numbits - numwritebits)) << (8 - (*bit_offset) - + numwritebits)); + buffer[(*byte_offset)] |= bitstowrite; + numbits -= numwritebits; + (*bit_offset) = 0; + (*byte_offset)++; + } + + while (numbits >= 8) { + guchar bitstowrite; + + bitstowrite = (guchar) ((data >> (numbits - 8)) & 0xFF); + buffer[(*byte_offset)] |= bitstowrite; + numbits -= 8; + (*bit_offset) = 0; + (*byte_offset)++; + } + + if (numbits > 0) { + guchar bitstowrite; + bitstowrite = + (guchar) ((data & masks[numbits]) << (8 - (*bit_offset) - numbits)); + buffer[(*byte_offset)] |= bitstowrite; + (*bit_offset) += numbits; + if ((*bit_offset) == 8) { + (*byte_offset)++; + (*bit_offset) = 0; + } + } +} + +guint +gst_apexraop_write (GstApExRAOP * con, gpointer rawdata, guint length) +{ + guchar *buffer, *frame_data; + gushort len; + gint bit_offset, byte_offset, i, out_len, res; + EVP_CIPHER_CTX aes_ctx; + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + buffer = + (guchar *) g_malloc0 (GST_APEX_RAOP_FRAME_HEADER_SIZE + + GST_APEX_RAOP_ALAC_HEADER_SIZE + length); + + memcpy (buffer, GST_APEX_RAOP_FRAME_HEADER, GST_APEX_RAOP_FRAME_HEADER_SIZE); + + len = + length + GST_APEX_RAOP_FRAME_HEADER_SIZE + + GST_APEX_RAOP_ALAC_HEADER_SIZE - 4; + buffer[2] = len >> 8; + buffer[3] = len & 0xff; + + bit_offset = 0; + byte_offset = 0; + frame_data = buffer + GST_APEX_RAOP_FRAME_HEADER_SIZE; + + gst_apexraop_write_bits (frame_data, 1, 3, &bit_offset, &byte_offset); /* channels, 0 mono, 1 stereo */ + gst_apexraop_write_bits (frame_data, 0, 4, &bit_offset, &byte_offset); /* unknown */ + gst_apexraop_write_bits (frame_data, 0, 8, &bit_offset, &byte_offset); /* unknown (12 bits) */ + gst_apexraop_write_bits (frame_data, 0, 4, &bit_offset, &byte_offset); + gst_apexraop_write_bits (frame_data, 0, 1, &bit_offset, &byte_offset); /* has size flag */ + gst_apexraop_write_bits (frame_data, 0, 2, &bit_offset, &byte_offset); /* unknown */ + gst_apexraop_write_bits (frame_data, 1, 1, &bit_offset, &byte_offset); /* no compression flag */ + + for (i = 0; i < length; i += 2) { + gst_apexraop_write_bits (frame_data, ((guchar *) rawdata)[i + 1], 8, + &bit_offset, &byte_offset); + gst_apexraop_write_bits (frame_data, ((guchar *) rawdata)[i], 8, + &bit_offset, &byte_offset); + } + + EVP_CIPHER_CTX_init (&aes_ctx); + EVP_CipherInit_ex (&aes_ctx, EVP_aes_128_cbc (), NULL, conn->aes_ky, + conn->aes_iv, AES_ENCRYPT); + EVP_CipherUpdate (&aes_ctx, frame_data, &out_len, frame_data, /*( */ + GST_APEX_RAOP_ALAC_HEADER_SIZE + + length /*) / AES_BLOCK_SIZE * AES_BLOCK_SIZE */ ); + EVP_CIPHER_CTX_cleanup (&aes_ctx); + + res = + gst_apexraop_send (conn->data_sd, buffer, + GST_APEX_RAOP_FRAME_HEADER_SIZE + GST_APEX_RAOP_ALAC_HEADER_SIZE + + length); + + g_free (buffer); + + return (guint) ((res >= + (GST_APEX_RAOP_FRAME_HEADER_SIZE + + GST_APEX_RAOP_ALAC_HEADER_SIZE)) ? (res - + GST_APEX_RAOP_FRAME_HEADER_SIZE - + GST_APEX_RAOP_ALAC_HEADER_SIZE) : 0); +} + +/* raop apex buffer flush */ +GstRTSPStatusCode +gst_apexraop_flush (GstApExRAOP * con) +{ + gchar hreq[GST_APEX_RAOP_HDR_DEFAULT_LENGTH]; + GstRTSPStatusCode res; + _GstApExRAOP *conn; + + conn = (_GstApExRAOP *) con; + + sprintf (hreq, + "FLUSH rtsp://%s/%s RTSP/1.0\r\n" + "CSeq: %d\r\n" + "Client-Instance: %s\r\n" + "User-Agent: %s\r\n" + "Session: %s\r\n" + "RTP-Info: seq=0;rtptime=0\r\n" + "\r\n", + conn->host, + conn->url_abspath, ++conn->cseq, conn->cid, conn->ua, conn->session); + + if (gst_apexraop_send (conn->ctrl_sd, hreq, strlen (hreq)) <= 0) + return GST_RTSP_STS_GONE; + + if (gst_apexraop_recv (conn->ctrl_sd, hreq, + GST_APEX_RAOP_HDR_DEFAULT_LENGTH) <= 0) + return GST_RTSP_STS_GONE; + + { + int tmp; + sscanf (hreq, "%*s %d", &tmp); + res = (GstRTSPStatusCode) tmp; + } + + return res; +} diff --git a/ext/apexsink/gstapexraop.h b/ext/apexsink/gstapexraop.h new file mode 100644 index 0000000..fe1ba41 --- /dev/null +++ b/ext/apexsink/gstapexraop.h @@ -0,0 +1,124 @@ +/* GStreamer - Remote Audio Access Protocol (RAOP) as used in Apple iTunes to stream music to the Airport Express (ApEx) - + * + * RAOP is based on the Real Time Streaming Protocol (RTSP) but with an extra challenge-response RSA based authentication step. + * This interface accepts RAW PCM data and set it as AES encrypted ALAC while performing emission. + * + * Copyright (C) 2008 Jérémie Bernard [GRemi] + * + * gstapexraop.h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef __GST_APEXRAOP_H__ +#define __GST_APEXRAOP_H__ + +#include +#include + +#include +#include +#include +#include + +#include +#include +#include + +#include +#include + +#include + +G_BEGIN_DECLS + +/* raop fixed parameters */ +#define GST_APEX_RAOP_BITRATE 44100 +#define GST_APEX_RAOP_SAMPLES_PER_FRAME 4096 +#define GST_APEX_RAOP_BYTES_PER_CHANNEL 2 +#define GST_APEX_RAOP_CHANNELS 2 +#define GST_APEX_RAOP_BYTES_PER_SAMPLE (GST_APEX_RAOP_CHANNELS * GST_APEX_RAOP_BYTES_PER_CHANNEL) + +/* gst associated caps fields specification */ +#define GST_APEX_RAOP_INPUT_TYPE "audio/x-raw-int" +#define GST_APEX_RAOP_INPUT_WIDTH "16" +#define GST_APEX_RAOP_INPUT_DEPTH GST_APEX_RAOP_INPUT_WIDTH +#define GST_APEX_RAOP_INPUT_ENDIAN "LITTLE_ENDIAN" +#define GST_APEX_RAOP_INPUT_CHANNELS "2" +#define GST_APEX_RAOP_INPUT_BIT_RATE "44100" +#define GST_APEX_RAOP_INPUT_SIGNED "TRUE" + +typedef enum +{ + GST_APEX_JACK_TYPE_UNDEFINED = 0, + GST_APEX_JACK_TYPE_ANALOG, + GST_APEX_JACK_TYPE_DIGITAL, +} +GstApExJackType; + +typedef enum +{ + GST_APEX_JACK_STATUS_UNDEFINED = 0, + GST_APEX_JACK_STATUS_DISCONNECTED, + GST_APEX_JACK_STATUS_CONNECTED, +} +GstApExJackStatus; + +/* raop context handle */ +typedef struct +{ +} GstApExRAOP; + +/* host might be null and port might be 0 while instanciating */ +GstApExRAOP *gst_apexraop_new (const gchar * host, const guint16 port); +void gst_apexraop_free (GstApExRAOP * conn); + +/* must not be connected yet while setting the host target */ +void gst_apexraop_set_host (GstApExRAOP * conn, const gchar * host); +gchar *gst_apexraop_get_host (GstApExRAOP * conn); + +/* must not be connected yet while setting the port target */ +void gst_apexraop_set_port (GstApExRAOP * conn, const guint16 port); +guint16 gst_apexraop_get_port (GstApExRAOP * conn); + +/* optional affectation, default iTunes user agent internaly used */ +void gst_apexraop_set_useragent (GstApExRAOP * conn, const gchar * useragent); +gchar *gst_apexraop_get_useragent (GstApExRAOP * conn); + +/* once allocation and configuration performed, manages the raop ANNOUNCE, SETUP and RECORD sequences, + * open both ctrl and data channels */ +GstRTSPStatusCode gst_apexraop_connect (GstApExRAOP * conn); + +/* close the currently used session, manages raop TEARDOWN sequence and closes the used sockets */ +void gst_apexraop_close (GstApExRAOP * conn); + +/* once connected, set the apex target volume, manages SET_PARAMETER sequence */ +GstRTSPStatusCode gst_apexraop_set_volume (GstApExRAOP * conn, + const guint volume); + +/* write raw samples typed as defined by the fixed raop parameters, flush the apex buffer */ +guint gst_apexraop_write (GstApExRAOP * conn, gpointer rawdata, guint length); +GstRTSPStatusCode gst_apexraop_flush (GstApExRAOP * conn); + +/* retrieve the connected apex jack type and status */ +GstApExJackType gst_apexraop_get_jacktype (GstApExRAOP * conn); +GstApExJackStatus gst_apexraop_get_jackstatus (GstApExRAOP * conn); + +G_END_DECLS + +#endif + diff --git a/ext/apexsink/gstapexsink.c b/ext/apexsink/gstapexsink.c new file mode 100644 index 0000000..8daaa23 --- /dev/null +++ b/ext/apexsink/gstapexsink.c @@ -0,0 +1,547 @@ +/* GStreamer - AirPort Express Audio Sink - + * + * Remote Audio Access Protocol (RAOP) as used in Apple iTunes to stream music to the Airport Express (ApEx) - + * RAOP is based on the Real Time Streaming Protocol (RTSP) but with an extra challenge-response RSA based authentication step. + * + * RAW PCM input only as defined by the following GST_STATIC_PAD_TEMPLATE + * + * Copyright (C) 2008 Jérémie Bernard [GRemi] + * + * gstapexsink.c + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstapexsink.h" + +GST_DEBUG_CATEGORY_STATIC (apexsink_debug); +#define GST_CAT_DEFAULT apexsink_debug + +static GstStaticPadTemplate gst_apexsink_sink_factory = GST_STATIC_PAD_TEMPLATE + ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS + (GST_APEX_RAOP_INPUT_TYPE "," + "width = (int) " GST_APEX_RAOP_INPUT_WIDTH "," + "depth = (int) " GST_APEX_RAOP_INPUT_DEPTH "," + "endianness = (int) " GST_APEX_RAOP_INPUT_ENDIAN "," + "channels = (int) " GST_APEX_RAOP_INPUT_CHANNELS "," + "rate = (int) " GST_APEX_RAOP_INPUT_BIT_RATE "," + "signed = (boolean) " GST_APEX_RAOP_INPUT_SIGNED) + ); + + +enum +{ + APEX_PROP_HOST = 1, + APEX_PROP_PORT, + APEX_PROP_VOLUME, + APEX_PROP_JACK_TYPE, + APEX_PROP_JACK_STATUS, +}; + +#define DEFAULT_APEX_HOST "" +#define DEFAULT_APEX_PORT 5000 +#define DEFAULT_APEX_VOLUME 1.0 +#define DEFAULT_APEX_JACK_TYPE GST_APEX_JACK_TYPE_UNDEFINED +#define DEFAULT_APEX_JACK_STATUS GST_APEX_JACK_STATUS_UNDEFINED + +/* genum apex jack resolution */ +GType +gst_apexsink_jackstatus_get_type (void) +{ + static GType jackstatus_type = 0; + static GEnumValue jackstatus[] = { + {GST_APEX_JACK_STATUS_UNDEFINED, "GST_APEX_JACK_STATUS_UNDEFINED", + "Jack status undefined"}, + {GST_APEX_JACK_STATUS_DISCONNECTED, "GST_APEX_JACK_STATUS_DISCONNECTED", + "Jack disconnected"}, + {GST_APEX_JACK_STATUS_CONNECTED, "GST_APEX_JACK_STATUS_CONNECTED", + "Jack connected"}, + {0, NULL, NULL}, + }; + + if (!jackstatus_type) { + jackstatus_type = g_enum_register_static ("GstApExJackStatus", jackstatus); + } + + return jackstatus_type; +} + +GType +gst_apexsink_jacktype_get_type (void) +{ + static GType jacktype_type = 0; + static GEnumValue jacktype[] = { + {GST_APEX_JACK_TYPE_UNDEFINED, "GST_APEX_JACK_TYPE_UNDEFINED", + "Undefined jack type"}, + {GST_APEX_JACK_TYPE_ANALOG, "GST_APEX_JACK_TYPE_ANALOG", "Analog jack"}, + {GST_APEX_JACK_TYPE_DIGITAL, "GST_APEX_JACK_TYPE_DIGITAL", "Digital jack"}, + {0, NULL, NULL}, + }; + + if (!jacktype_type) { + jacktype_type = g_enum_register_static ("GstApExJackType", jacktype); + } + + return jacktype_type; +} + + +static void gst_apexsink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_apexsink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_apexsink_finalise (GObject * object); + +static gboolean gst_apexsink_open (GstAudioSink * asink); +static gboolean gst_apexsink_prepare (GstAudioSink * asink, + GstRingBufferSpec * spec); +static guint gst_apexsink_write (GstAudioSink * asink, gpointer data, + guint length); +static gboolean gst_apexsink_unprepare (GstAudioSink * asink); +static guint gst_apexsink_delay (GstAudioSink * asink); +static void gst_apexsink_reset (GstAudioSink * asink); +static gboolean gst_apexsink_close (GstAudioSink * asink); + +/* mixer interface standard api */ +static void gst_apexsink_interfaces_init (GType type); +static void gst_apexsink_implements_interface_init (GstImplementsInterfaceClass + * iface); +static void gst_apexsink_mixer_interface_init (GstMixerClass * iface); + +static gboolean gst_apexsink_interface_supported (GstImplementsInterface * + iface, GType iface_type); +static const GList *gst_apexsink_mixer_list_tracks (GstMixer * mixer); +static void gst_apexsink_mixer_set_volume (GstMixer * mixer, + GstMixerTrack * track, gint * volumes); +static void gst_apexsink_mixer_get_volume (GstMixer * mixer, + GstMixerTrack * track, gint * volumes); + +GST_BOILERPLATE_FULL (GstApExSink, gst_apexsink, GstAudioSink, + GST_TYPE_AUDIO_SINK, gst_apexsink_interfaces_init); + +/* apex sink interface(s) stuff */ +static void +gst_apexsink_interfaces_init (GType type) +{ + static const GInterfaceInfo implements_interface_info = + { (GInterfaceInitFunc) gst_apexsink_implements_interface_init, NULL, + NULL + }; + static const GInterfaceInfo mixer_interface_info = + { (GInterfaceInitFunc) gst_apexsink_mixer_interface_init, NULL, NULL }; + + g_type_add_interface_static (type, GST_TYPE_IMPLEMENTS_INTERFACE, + &implements_interface_info); + g_type_add_interface_static (type, GST_TYPE_MIXER, &mixer_interface_info); +} + +static void +gst_apexsink_implements_interface_init (GstImplementsInterfaceClass * iface) +{ + iface->supported = gst_apexsink_interface_supported; +} + +static void +gst_apexsink_mixer_interface_init (GstMixerClass * iface) +{ + GST_MIXER_TYPE (iface) = GST_MIXER_SOFTWARE; + + iface->list_tracks = gst_apexsink_mixer_list_tracks; + iface->set_volume = gst_apexsink_mixer_set_volume; + iface->get_volume = gst_apexsink_mixer_get_volume; +} + +static gboolean +gst_apexsink_interface_supported (GstImplementsInterface * iface, + GType iface_type) +{ + g_return_val_if_fail (iface_type == GST_TYPE_MIXER, FALSE); + + return TRUE; +} + +static const GList * +gst_apexsink_mixer_list_tracks (GstMixer * mixer) +{ + GstApExSink *apexsink = GST_APEX_SINK (mixer); + + return apexsink->tracks; +} + +static void +gst_apexsink_mixer_set_volume (GstMixer * mixer, GstMixerTrack * track, + gint * volumes) +{ + GstApExSink *apexsink = GST_APEX_SINK (mixer); + + apexsink->volume = volumes[0]; + + if (apexsink->gst_apexraop != NULL) + gst_apexraop_set_volume (apexsink->gst_apexraop, apexsink->volume); +} + +static void +gst_apexsink_mixer_get_volume (GstMixer * mixer, GstMixerTrack * track, + gint * volumes) +{ + GstApExSink *apexsink = GST_APEX_SINK (mixer); + + volumes[0] = apexsink->volume; +} + +/* sink base init */ +static void +gst_apexsink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, + "Apple AirPort Express Audio Sink", "Sink/Audio/Wireless", + "Output stream to an AirPort Express", + "Jérémie Bernard [GRemi] "); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_apexsink_sink_factory)); +} + +/* sink class init */ +static void +gst_apexsink_class_init (GstApExSinkClass * klass) +{ + GST_DEBUG_CATEGORY_INIT (apexsink_debug, GST_APEX_SINK_NAME, 0, + "AirPort Express sink"); + + parent_class = g_type_class_peek_parent (klass); + + ((GObjectClass *) klass)->get_property = + GST_DEBUG_FUNCPTR (gst_apexsink_get_property); + ((GObjectClass *) klass)->set_property = + GST_DEBUG_FUNCPTR (gst_apexsink_set_property); + ((GObjectClass *) klass)->finalize = + GST_DEBUG_FUNCPTR (gst_apexsink_finalise); + + ((GstAudioSinkClass *) klass)->open = GST_DEBUG_FUNCPTR (gst_apexsink_open); + ((GstAudioSinkClass *) klass)->prepare = + GST_DEBUG_FUNCPTR (gst_apexsink_prepare); + ((GstAudioSinkClass *) klass)->write = GST_DEBUG_FUNCPTR (gst_apexsink_write); + ((GstAudioSinkClass *) klass)->unprepare = + GST_DEBUG_FUNCPTR (gst_apexsink_unprepare); + ((GstAudioSinkClass *) klass)->delay = GST_DEBUG_FUNCPTR (gst_apexsink_delay); + ((GstAudioSinkClass *) klass)->reset = GST_DEBUG_FUNCPTR (gst_apexsink_reset); + ((GstAudioSinkClass *) klass)->close = GST_DEBUG_FUNCPTR (gst_apexsink_close); + + g_object_class_install_property ((GObjectClass *) klass, APEX_PROP_HOST, + g_param_spec_string ("host", "Host", "AirPort Express target host", + DEFAULT_APEX_HOST, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property ((GObjectClass *) klass, APEX_PROP_PORT, + g_param_spec_uint ("port", "Port", "AirPort Express target port", 0, + 32000, DEFAULT_APEX_PORT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /* we need to expose the volume as a double for playbin2. Internally we keep + * it as an int between 0 and 100, where 75 corresponds to 1.0. + * FIXME we should store the volume as a double. */ + g_object_class_install_property ((GObjectClass *) klass, APEX_PROP_VOLUME, + g_param_spec_double ("volume", "Volume", "AirPort Express target volume", + 0.0, 10.0, DEFAULT_APEX_VOLUME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property ((GObjectClass *) klass, APEX_PROP_JACK_TYPE, + g_param_spec_enum ("jack-type", "Jack Type", + "AirPort Express connected jack type", GST_APEX_SINK_JACKTYPE_TYPE, + DEFAULT_APEX_JACK_TYPE, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property ((GObjectClass *) klass, + APEX_PROP_JACK_STATUS, g_param_spec_enum ("jack-status", "Jack Status", + "AirPort Express jack connection status", + GST_APEX_SINK_JACKSTATUS_TYPE, DEFAULT_APEX_JACK_STATUS, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); +} + +/* sink plugin instance init */ +static void +gst_apexsink_init (GstApExSink * apexsink, GstApExSinkClass * g_class) +{ + GstMixerTrack *track = NULL; + + track = g_object_new (GST_TYPE_MIXER_TRACK, NULL); + track->label = g_strdup ("Airport Express"); + track->num_channels = GST_APEX_RAOP_CHANNELS; + track->min_volume = 0; + track->max_volume = 100; + track->flags = GST_MIXER_TRACK_OUTPUT; + + apexsink->host = g_strdup (DEFAULT_APEX_HOST); + apexsink->port = DEFAULT_APEX_PORT; + apexsink->volume = CLAMP (DEFAULT_APEX_VOLUME * 75, 0, 100); + apexsink->gst_apexraop = NULL; + apexsink->tracks = g_list_append (apexsink->tracks, track); + + GST_INFO_OBJECT (apexsink, + "ApEx sink default initialization, target=\"%s\", port=\"%d\", volume=\"%d%%\"", + apexsink->host, apexsink->port, apexsink->volume); +} + +/* apex sink set property */ +static void +gst_apexsink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstApExSink *sink = GST_APEX_SINK (object); + + switch (prop_id) { + case APEX_PROP_HOST: + if (sink->gst_apexraop == NULL) { + g_free (sink->host); + sink->host = g_value_dup_string (value); + + GST_INFO_OBJECT (sink, "ApEx sink target set to \"%s\"", sink->host); + } else { + G_OBJECT_WARN_INVALID_PSPEC (object, "host", prop_id, pspec); + } + break; + case APEX_PROP_PORT: + if (sink->gst_apexraop == NULL) { + sink->port = g_value_get_uint (value); + + GST_INFO_OBJECT (sink, "ApEx port set to \"%d\"", sink->port); + } else { + G_OBJECT_WARN_INVALID_PSPEC (object, "port", prop_id, pspec); + } + break; + case APEX_PROP_VOLUME: + { + gdouble volume; + + volume = g_value_get_double (value); + volume *= 75.0; + + sink->volume = CLAMP (volume, 0, 100); + + if (sink->gst_apexraop != NULL) + gst_apexraop_set_volume (sink->gst_apexraop, sink->volume); + + GST_INFO_OBJECT (sink, "ApEx volume set to \"%d%%\"", sink->volume); + break; + } + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* apex sink get property */ +static void +gst_apexsink_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstApExSink *sink = GST_APEX_SINK (object); + + switch (prop_id) { + case APEX_PROP_HOST: + g_value_set_string (value, sink->host); + break; + case APEX_PROP_PORT: + g_value_set_uint (value, sink->port); + break; + case APEX_PROP_VOLUME: + g_value_set_double (value, ((gdouble) sink->volume) / 75.0); + break; + case APEX_PROP_JACK_TYPE: + g_value_set_enum (value, gst_apexraop_get_jacktype (sink->gst_apexraop)); + break; + case APEX_PROP_JACK_STATUS: + g_value_set_enum (value, + gst_apexraop_get_jackstatus (sink->gst_apexraop)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* apex sink finalize */ +static void +gst_apexsink_finalise (GObject * object) +{ + GstApExSink *sink = GST_APEX_SINK (object); + + if (sink->tracks) { + g_list_foreach (sink->tracks, (GFunc) g_object_unref, NULL); + g_list_free (sink->tracks); + sink->tracks = NULL; + } + + g_free (sink->host); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +/* sink open : open the device */ +static gboolean +gst_apexsink_open (GstAudioSink * asink) +{ + int res; + GstApExSink *apexsink = (GstApExSink *) asink; + + apexsink->gst_apexraop = gst_apexraop_new (apexsink->host, apexsink->port); + + if ((res = gst_apexraop_connect (apexsink->gst_apexraop)) != GST_RTSP_STS_OK) { + GST_ERROR_OBJECT (apexsink, + "%s : network or RAOP failure, connection refused or timeout, RTSP code=%d", + apexsink->host, res); + return FALSE; + } + + GST_INFO_OBJECT (apexsink, + "OPEN : ApEx sink successfully connected to \"%s:%d\", ANNOUNCE, SETUP and RECORD requests performed", + apexsink->host, apexsink->port); + + switch (gst_apexraop_get_jackstatus (apexsink->gst_apexraop)) { + case GST_APEX_JACK_STATUS_CONNECTED: + GST_INFO_OBJECT (apexsink, "OPEN : ApEx jack is connected"); + break; + case GST_APEX_JACK_STATUS_DISCONNECTED: + GST_WARNING_OBJECT (apexsink, "OPEN : ApEx jack is disconnected !"); + break; + default: + GST_WARNING_OBJECT (apexsink, "OPEN : ApEx jack status is undefined !"); + break; + } + + switch (gst_apexraop_get_jacktype (apexsink->gst_apexraop)) { + case GST_APEX_JACK_TYPE_ANALOG: + GST_INFO_OBJECT (apexsink, "OPEN : ApEx jack type is analog"); + break; + case GST_APEX_JACK_TYPE_DIGITAL: + GST_INFO_OBJECT (apexsink, "OPEN : ApEx jack type is digital"); + break; + default: + GST_WARNING_OBJECT (apexsink, "OPEN : ApEx jack type is undefined !"); + break; + } + + if ((res = + gst_apexraop_set_volume (apexsink->gst_apexraop, + apexsink->volume)) != GST_RTSP_STS_OK) { + GST_WARNING_OBJECT (apexsink, + "%s : could not set initial volume to \"%d%%\", RTSP code=%d", + apexsink->host, apexsink->volume, res); + } else { + GST_INFO_OBJECT (apexsink, + "OPEN : ApEx sink successfully set volume to \"%d%%\"", + apexsink->volume); + } + + return TRUE; +} + +/* prepare sink : configure the device with the specified format */ +static gboolean +gst_apexsink_prepare (GstAudioSink * asink, GstRingBufferSpec * spec) +{ + GstApExSink *apexsink = (GstApExSink *) asink; + + apexsink->latency_time = spec->latency_time; + + spec->segsize = + GST_APEX_RAOP_SAMPLES_PER_FRAME * GST_APEX_RAOP_BYTES_PER_SAMPLE; + spec->segtotal = 1; + + memset (spec->silence_sample, 0, sizeof (spec->silence_sample)); + + GST_INFO_OBJECT (apexsink, + "PREPARE : ApEx sink ready to stream at %dHz, %d bytes per sample, %d channels, %d bytes segments (%dkB/s)", + spec->rate, spec->bytes_per_sample, spec->channels, spec->segsize, + spec->rate * spec->bytes_per_sample / 1000); + + return TRUE; +} + +/* sink write : write samples to the device */ +static guint +gst_apexsink_write (GstAudioSink * asink, gpointer data, guint length) +{ + GstApExSink *apexsink = (GstApExSink *) asink; + + if (gst_apexraop_write (apexsink->gst_apexraop, data, length) != length) { + GST_INFO_OBJECT (apexsink, + "WRITE : %d bytes not fully sended, skipping frame samples...", length); + } else { + GST_INFO_OBJECT (apexsink, "WRITE : %d bytes sent", length); + + /* FIXME, sleeping is ugly and not interruptible */ + usleep ((gulong) ((length * 1000000.) / (GST_APEX_RAOP_BITRATE * + GST_APEX_RAOP_BYTES_PER_SAMPLE) - apexsink->latency_time)); + } + + return length; +} + +/* unprepare sink : undo operations done by prepare */ +static gboolean +gst_apexsink_unprepare (GstAudioSink * asink) +{ + GST_INFO_OBJECT (asink, "UNPREPARE"); + + return TRUE; +} + +/* delay sink : get the estimated number of samples written but not played yet by the device */ +static guint +gst_apexsink_delay (GstAudioSink * asink) +{ + GST_LOG_OBJECT (asink, "DELAY"); + + return 0; +} + +/* reset sink : unblock writes and flush the device */ +static void +gst_apexsink_reset (GstAudioSink * asink) +{ + int res; + GstApExSink *apexsink = (GstApExSink *) asink; + + GST_INFO_OBJECT (apexsink, "RESET : flushing buffer..."); + + if ((res = gst_apexraop_flush (apexsink->gst_apexraop)) == GST_RTSP_STS_OK) { + GST_INFO_OBJECT (apexsink, "RESET : ApEx buffer flush success"); + } else { + GST_WARNING_OBJECT (apexsink, + "RESET : could not flush ApEx buffer, RTSP code=%d", res); + } +} + +/* sink close : close the device */ +static gboolean +gst_apexsink_close (GstAudioSink * asink) +{ + GstApExSink *apexsink = (GstApExSink *) asink; + + gst_apexraop_close (apexsink->gst_apexraop); + gst_apexraop_free (apexsink->gst_apexraop); + + GST_INFO_OBJECT (apexsink, "CLOSE : ApEx sink closed connection"); + + return TRUE; +} diff --git a/ext/apexsink/gstapexsink.h b/ext/apexsink/gstapexsink.h new file mode 100644 index 0000000..11d2f1e --- /dev/null +++ b/ext/apexsink/gstapexsink.h @@ -0,0 +1,85 @@ +/* GStreamer - AirPort Express (ApEx) Audio Sink - + * + * Remote Audio Access Protocol (RAOP) as used in Apple iTunes to stream music to the Airport Express (ApEx) - + * RAOP is based on the Real Time Streaming Protocol (RTSP) but with an extra challenge-response RSA based authentication step. + * + * RAW PCM input only as defined by the following GST_STATIC_PAD_TEMPLATE regarding the expected gstapexraop input format. + * + * Copyright (C) 2008 Jérémie Bernard [GRemi] + * + * gstapexsink.h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + * + */ + +#ifndef __GST_APEXSINK_H__ +#define __GST_APEXSINK_H__ + +#include "gstapexraop.h" + +#include +#include + +G_BEGIN_DECLS + +/* standard gstreamer macros */ +#define GST_TYPE_APEX_SINK (gst_apexsink_get_type()) +#define GST_APEX_SINK(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_APEX_SINK,GstApExSink)) +#define GST_APEX_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_APEX_SINK,GstApExSinkClass)) +#define GST_IS_APEX_SINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_APEX_SINK)) +#define GST_IS_APEX_SINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_APEX_SINK)) +#define GST_APEX_SINK_CAST(obj) ((GstApExSink*)(obj)) +#define GST_APEX_SINK_NAME "apexsink" +#define GST_APEX_SINK_JACKTYPE_TYPE (gst_apexsink_jacktype_get_type()) +#define GST_APEX_SINK_JACKSTATUS_TYPE (gst_apexsink_jackstatus_get_type()) +/* ApEx classes declaration */ +typedef struct _GstApExSink GstApExSink; +typedef struct _GstApExSinkClass GstApExSinkClass; + +struct _GstApExSink +{ + /* base definition */ + GstAudioSink sink; + + /* public read/write sink properties */ + gchar *host; + guint port; + guint volume; + + /* private attributes : latency time local copy, tracks list of the mixer interface */ + guint64 latency_time; + GList *tracks; + + /* private apex client */ + GstApExRAOP *gst_apexraop; +}; + +struct _GstApExSinkClass +{ + GstAudioSinkClass parent_class; +}; + +/* genum jack access */ +GType gst_apexsink_jackstatus_get_type (void); +GType gst_apexsink_jacktype_get_type (void); + +/* audio sink standard api */ +GType gst_apexsink_get_type (void); + +G_END_DECLS + +#endif diff --git a/ext/assrender/Makefile.am b/ext/assrender/Makefile.am new file mode 100644 index 0000000..44e6309 --- /dev/null +++ b/ext/assrender/Makefile.am @@ -0,0 +1,9 @@ +plugin_LTLIBRARIES = libgstassrender.la + +libgstassrender_la_SOURCES = gstassrender.c +libgstassrender_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(ASSRENDER_CFLAGS) +libgstassrender_la_LIBADD = $(ASSRENDER_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) -lgstvideo-@GST_MAJORMINOR@ +libgstassrender_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstassrender_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstassrender.h diff --git a/ext/assrender/Makefile.in b/ext/assrender/Makefile.in new file mode 100644 index 0000000..7b8a70b --- /dev/null +++ b/ext/assrender/Makefile.in @@ -0,0 +1,855 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/assrender +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstassrender_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstassrender_la_OBJECTS = libgstassrender_la-gstassrender.lo +libgstassrender_la_OBJECTS = $(am_libgstassrender_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstassrender_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstassrender_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstassrender_la_CFLAGS) $(CFLAGS) \ + $(libgstassrender_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstassrender_la_SOURCES) +DIST_SOURCES = $(libgstassrender_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstassrender.la +libgstassrender_la_SOURCES = gstassrender.c +libgstassrender_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(ASSRENDER_CFLAGS) +libgstassrender_la_LIBADD = $(ASSRENDER_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) -lgstvideo-@GST_MAJORMINOR@ +libgstassrender_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstassrender_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstassrender.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/assrender/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/assrender/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstassrender.la: $(libgstassrender_la_OBJECTS) $(libgstassrender_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstassrender_la_LINK) -rpath $(plugindir) $(libgstassrender_la_OBJECTS) $(libgstassrender_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstassrender_la-gstassrender.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstassrender_la-gstassrender.lo: gstassrender.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstassrender_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstassrender_la_CFLAGS) $(CFLAGS) -MT libgstassrender_la-gstassrender.lo -MD -MP -MF $(DEPDIR)/libgstassrender_la-gstassrender.Tpo -c -o libgstassrender_la-gstassrender.lo `test -f 'gstassrender.c' || echo '$(srcdir)/'`gstassrender.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstassrender_la-gstassrender.Tpo $(DEPDIR)/libgstassrender_la-gstassrender.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstassrender.c' object='libgstassrender_la-gstassrender.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstassrender_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstassrender_la_CFLAGS) $(CFLAGS) -c -o libgstassrender_la-gstassrender.lo `test -f 'gstassrender.c' || echo '$(srcdir)/'`gstassrender.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/assrender/gstassrender.c b/ext/assrender/gstassrender.c new file mode 100644 index 0000000..c5a8e1b --- /dev/null +++ b/ext/assrender/gstassrender.c @@ -0,0 +1,1424 @@ +/* + * Copyright (c) 2008 Benjamin Schmitz + * Copyright (c) 2009 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-assrender + * + * Renders timestamped SSA/ASS subtitles on top of a video stream. + * + * + * Example launch line + * |[ + * gst-launch -v filesrc location=/path/to/mkv ! matroskademux name=d ! queue ! mp3parse ! mad ! audioconvert ! autoaudiosink d. ! queue ! ffdec_h264 ! ffmpegcolorspace ! r. d. ! queue ! "application/x-ass" ! assrender name=r ! ffmpegcolorspace ! autovideosink + * ]| This pipeline demuxes a Matroska file with h.264 video, MP3 audio and embedded ASS subtitles and renders the subtitles on top of the video. + * + */ + + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include "gstassrender.h" + +#include + +GST_DEBUG_CATEGORY_STATIC (gst_ass_render_debug); +GST_DEBUG_CATEGORY_STATIC (gst_ass_render_lib_debug); +#define GST_CAT_DEFAULT gst_ass_render_debug + +/* Filter signals and props */ +enum +{ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_ENABLE, + PROP_EMBEDDEDFONTS +}; + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_xBGR ";" + GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_YUV ("I420")) + ); + +static GstStaticPadTemplate video_sink_factory = + GST_STATIC_PAD_TEMPLATE ("video_sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB ";" GST_VIDEO_CAPS_BGR ";" + GST_VIDEO_CAPS_xRGB ";" GST_VIDEO_CAPS_xBGR ";" + GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" + GST_VIDEO_CAPS_YUV ("I420")) + ); + +static GstStaticPadTemplate text_sink_factory = + GST_STATIC_PAD_TEMPLATE ("text_sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-ass; application/x-ssa") + ); + +static void gst_ass_render_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_ass_render_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void gst_ass_render_finalize (GObject * object); + +static GstStateChangeReturn gst_ass_render_change_state (GstElement * element, + GstStateChange transition); + +GST_BOILERPLATE (GstAssRender, gst_ass_render, GstElement, GST_TYPE_ELEMENT); + +static GstCaps *gst_ass_render_getcaps (GstPad * pad); + +static gboolean gst_ass_render_setcaps_video (GstPad * pad, GstCaps * caps); +static gboolean gst_ass_render_setcaps_text (GstPad * pad, GstCaps * caps); + +static GstFlowReturn gst_ass_render_chain_video (GstPad * pad, GstBuffer * buf); +static GstFlowReturn gst_ass_render_chain_text (GstPad * pad, GstBuffer * buf); + +static gboolean gst_ass_render_event_video (GstPad * pad, GstEvent * event); +static gboolean gst_ass_render_event_text (GstPad * pad, GstEvent * event); +static gboolean gst_ass_render_event_src (GstPad * pad, GstEvent * event); + +static GstFlowReturn gst_ass_render_bufferalloc_video (GstPad * pad, + guint64 offset, guint size, GstCaps * caps, GstBuffer ** buffer); + +static gboolean gst_ass_render_query_src (GstPad * pad, GstQuery * query); + +static void +gst_ass_render_base_init (gpointer gclass) +{ + GstElementClass *element_class = (GstElementClass *) gclass; + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&video_sink_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&text_sink_factory)); + + gst_element_class_set_details_simple (element_class, "ASS/SSA Render", + "Mixer/Video/Overlay/Subtitle", + "Renders ASS/SSA subtitles with libass", + "Benjamin Schmitz , " + "Sebastian Dröge "); +} + +/* initialize the plugin's class */ +static void +gst_ass_render_class_init (GstAssRenderClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstElementClass *gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_ass_render_set_property; + gobject_class->get_property = gst_ass_render_get_property; + gobject_class->finalize = gst_ass_render_finalize; + + g_object_class_install_property (gobject_class, PROP_ENABLE, + g_param_spec_boolean ("enable", "Enable", + "Enable rendering of subtitles", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_EMBEDDEDFONTS, + g_param_spec_boolean ("embeddedfonts", "Embedded Fonts", + "Extract and use fonts embedded in the stream", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_ass_render_change_state); +} + +#if defined(LIBASS_VERSION) && LIBASS_VERSION >= 0x00907000 +static void +_libass_message_cb (gint level, const gchar * fmt, va_list args, + gpointer render) +{ + gchar *message = g_strdup_vprintf (fmt, args); + + if (level < 2) + GST_CAT_ERROR_OBJECT (gst_ass_render_lib_debug, render, "%s", message); + else if (level < 4) + GST_CAT_WARNING_OBJECT (gst_ass_render_lib_debug, render, "%s", message); + else if (level < 5) + GST_CAT_INFO_OBJECT (gst_ass_render_lib_debug, render, "%s", message); + else if (level < 6) + GST_CAT_DEBUG_OBJECT (gst_ass_render_lib_debug, render, "%s", message); + else + GST_CAT_LOG_OBJECT (gst_ass_render_lib_debug, render, "%s", message); + + g_free (message); +} +#endif + +static void +gst_ass_render_init (GstAssRender * render, GstAssRenderClass * gclass) +{ + GST_DEBUG_OBJECT (render, "init"); + + render->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + render->video_sinkpad = + gst_pad_new_from_static_template (&video_sink_factory, "video_sink"); + render->text_sinkpad = + gst_pad_new_from_static_template (&text_sink_factory, "text_sink"); + + gst_pad_set_setcaps_function (render->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_setcaps_video)); + gst_pad_set_setcaps_function (render->text_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_setcaps_text)); + + gst_pad_set_getcaps_function (render->srcpad, + GST_DEBUG_FUNCPTR (gst_ass_render_getcaps)); + gst_pad_set_getcaps_function (render->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_getcaps)); + + gst_pad_set_chain_function (render->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_chain_video)); + gst_pad_set_chain_function (render->text_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_chain_text)); + + gst_pad_set_event_function (render->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_event_video)); + gst_pad_set_event_function (render->text_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_event_text)); + gst_pad_set_event_function (render->srcpad, + GST_DEBUG_FUNCPTR (gst_ass_render_event_src)); + + gst_pad_set_bufferalloc_function (render->video_sinkpad, + GST_DEBUG_FUNCPTR (gst_ass_render_bufferalloc_video)); + + gst_pad_set_query_function (render->srcpad, + GST_DEBUG_FUNCPTR (gst_ass_render_query_src)); + + gst_element_add_pad (GST_ELEMENT (render), render->srcpad); + gst_element_add_pad (GST_ELEMENT (render), render->video_sinkpad); + gst_element_add_pad (GST_ELEMENT (render), render->text_sinkpad); + + render->width = 0; + render->height = 0; + + render->subtitle_mutex = g_mutex_new (); + render->subtitle_cond = g_cond_new (); + + render->renderer_init_ok = FALSE; + render->track_init_ok = FALSE; + render->enable = TRUE; + render->embeddedfonts = TRUE; + + gst_segment_init (&render->video_segment, GST_FORMAT_TIME); + gst_segment_init (&render->subtitle_segment, GST_FORMAT_TIME); + + render->ass_mutex = g_mutex_new (); + render->ass_library = ass_library_init (); +#if defined(LIBASS_VERSION) && LIBASS_VERSION >= 0x00907000 + ass_set_message_cb (render->ass_library, _libass_message_cb, render); +#endif + ass_set_extract_fonts (render->ass_library, 1); + + render->ass_renderer = ass_renderer_init (render->ass_library); + if (!render->ass_renderer) { + GST_WARNING_OBJECT (render, "cannot create renderer instance"); + g_assert_not_reached (); + } + + render->ass_track = NULL; + + GST_DEBUG_OBJECT (render, "init complete"); +} + +static void +gst_ass_render_finalize (GObject * object) +{ + GstAssRender *render = GST_ASS_RENDER (object); + + if (render->subtitle_mutex) + g_mutex_free (render->subtitle_mutex); + + if (render->subtitle_cond) + g_cond_free (render->subtitle_cond); + + if (render->ass_track) { + ass_free_track (render->ass_track); + } + + if (render->ass_renderer) { + ass_renderer_done (render->ass_renderer); + } + + if (render->ass_library) { + ass_library_done (render->ass_library); + } + + if (render->ass_mutex) + g_mutex_free (render->ass_mutex); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_ass_render_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstAssRender *render = GST_ASS_RENDER (object); + + switch (prop_id) { + case PROP_ENABLE: + render->enable = g_value_get_boolean (value); + break; + case PROP_EMBEDDEDFONTS: + render->embeddedfonts = g_value_get_boolean (value); + g_mutex_lock (render->ass_mutex); + ass_set_extract_fonts (render->ass_library, render->embeddedfonts); + g_mutex_unlock (render->ass_mutex); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_ass_render_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstAssRender *render = GST_ASS_RENDER (object); + + switch (prop_id) { + case PROP_ENABLE: + g_value_set_boolean (value, render->enable); + break; + case PROP_EMBEDDEDFONTS: + g_value_set_boolean (value, render->embeddedfonts); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_ass_render_change_state (GstElement * element, GstStateChange transition) +{ + GstAssRender *render = GST_ASS_RENDER (element); + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + render->subtitle_flushing = FALSE; + gst_segment_init (&render->video_segment, GST_FORMAT_TIME); + gst_segment_init (&render->subtitle_segment, GST_FORMAT_TIME); + break; + case GST_STATE_CHANGE_NULL_TO_READY: + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + default: + break; + + case GST_STATE_CHANGE_PAUSED_TO_READY: + g_mutex_lock (render->subtitle_mutex); + render->subtitle_flushing = TRUE; + if (render->subtitle_pending) + gst_buffer_unref (render->subtitle_pending); + render->subtitle_pending = NULL; + g_cond_signal (render->subtitle_cond); + g_mutex_unlock (render->subtitle_mutex); + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + g_mutex_lock (render->ass_mutex); + if (render->ass_track) + ass_free_track (render->ass_track); + render->ass_track = NULL; + g_mutex_unlock (render->ass_mutex); + render->track_init_ok = FALSE; + render->renderer_init_ok = FALSE; + break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + case GST_STATE_CHANGE_READY_TO_NULL: + default: + break; + } + + + return ret; +} + +static gboolean +gst_ass_render_query_src (GstPad * pad, GstQuery * query) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + gboolean ret; + + ret = gst_pad_peer_query (render->video_sinkpad, query); + + gst_object_unref (render); + return ret; +} + +static gboolean +gst_ass_render_event_src (GstPad * pad, GstEvent * event) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + gboolean ret = FALSE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK:{ + GstSeekFlags flags; + + GST_DEBUG_OBJECT (render, "seek received, driving from here"); + + gst_event_parse_seek (event, NULL, NULL, &flags, NULL, NULL, NULL, NULL); + + /* Flush downstream, only for flushing seek */ + if (flags & GST_SEEK_FLAG_FLUSH) + gst_pad_push_event (render->srcpad, gst_event_new_flush_start ()); + + /* Mark subtitle as flushing, unblocks chains */ + g_mutex_lock (render->subtitle_mutex); + if (render->subtitle_pending) + gst_buffer_unref (render->subtitle_pending); + render->subtitle_pending = NULL; + render->subtitle_flushing = TRUE; + g_cond_signal (render->subtitle_cond); + g_mutex_unlock (render->subtitle_mutex); + + /* Seek on each sink pad */ + gst_event_ref (event); + ret = gst_pad_push_event (render->video_sinkpad, event); + if (ret) { + ret = gst_pad_push_event (render->text_sinkpad, event); + } else { + gst_event_unref (event); + } + break; + } + default: + gst_event_ref (event); + ret = gst_pad_push_event (render->video_sinkpad, event); + gst_pad_push_event (render->text_sinkpad, event); + break; + } + + gst_object_unref (render); + + return ret; +} + +static GstCaps * +gst_ass_render_getcaps (GstPad * pad) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + GstPad *otherpad; + GstCaps *caps; + + if (pad == render->srcpad) + otherpad = render->video_sinkpad; + else + otherpad = render->srcpad; + + /* we can do what the peer can */ + caps = gst_pad_peer_get_caps (otherpad); + if (caps) { + GstCaps *temp; + const GstCaps *templ; + + /* filtered against our padtemplate */ + templ = gst_pad_get_pad_template_caps (otherpad); + temp = gst_caps_intersect (caps, templ); + gst_caps_unref (caps); + /* this is what we can do */ + caps = temp; + } else { + /* no peer, our padtemplate is enough then */ + caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + } + + gst_object_unref (render); + + return caps; +} + +#define CREATE_RGB_BLIT_FUNCTION(name,bpp,R,G,B) \ +static void \ +blit_##name (GstAssRender * render, ASS_Image * ass_image, GstBuffer * buffer) \ +{ \ + guint counter = 0; \ + gint alpha, r, g, b, k; \ + const guint8 *src; \ + guint8 *dst; \ + gint x, y, w, h; \ + gint width = render->width; \ + gint height = render->height; \ + gint dst_stride = GST_ROUND_UP_4 (width * bpp); \ + gint dst_skip; \ + gint src_skip; \ + \ + while (ass_image) { \ + if (ass_image->dst_y > height || ass_image->dst_x > width) \ + goto next; \ + \ + /* blend subtitles onto the video frame */ \ + alpha = 255 - ((ass_image->color) & 0xff); \ + r = ((ass_image->color) >> 24) & 0xff; \ + g = ((ass_image->color) >> 16) & 0xff; \ + b = ((ass_image->color) >> 8) & 0xff; \ + src = ass_image->bitmap; \ + dst = buffer->data + ass_image->dst_y * dst_stride + ass_image->dst_x * bpp; \ + \ + w = MIN (ass_image->w, width - ass_image->dst_x); \ + h = MIN (ass_image->h, height - ass_image->dst_y); \ + src_skip = ass_image->stride - w; \ + dst_skip = dst_stride - w * bpp; \ + \ + for (y = 0; y < h; y++) { \ + for (x = 0; x < w; x++) { \ + k = src[0] * alpha / 255; \ + dst[R] = (k * r + (255 - k) * dst[R]) / 255; \ + dst[G] = (k * g + (255 - k) * dst[G]) / 255; \ + dst[B] = (k * b + (255 - k) * dst[B]) / 255; \ + src++; \ + dst += bpp; \ + } \ + src += src_skip; \ + dst += dst_skip; \ + } \ +next: \ + counter++; \ + ass_image = ass_image->next; \ + } \ + GST_LOG_OBJECT (render, "amount of rendered ass_image: %u", counter); \ +} + +CREATE_RGB_BLIT_FUNCTION (rgb, 3, 0, 1, 2); +CREATE_RGB_BLIT_FUNCTION (bgr, 3, 2, 1, 0); +CREATE_RGB_BLIT_FUNCTION (xrgb, 4, 1, 2, 3); +CREATE_RGB_BLIT_FUNCTION (xbgr, 4, 3, 2, 1); +CREATE_RGB_BLIT_FUNCTION (rgbx, 4, 0, 1, 2); +CREATE_RGB_BLIT_FUNCTION (bgrx, 4, 2, 1, 0); + +#undef CREATE_RGB_BLIT_FUNCTION + +static inline gint +rgb_to_y (gint r, gint g, gint b) +{ + gint ret; + + ret = (gint) (((19595 * r) >> 16) + ((38470 * g) >> 16) + ((7471 * b) >> 16)); + ret = CLAMP (ret, 0, 255); + return ret; +} + +static inline gint +rgb_to_u (gint r, gint g, gint b) +{ + gint ret; + + ret = + (gint) (-((11059 * r) >> 16) - ((21709 * g) >> 16) + ((32768 * b) >> 16) + + 128); + ret = CLAMP (ret, 0, 255); + return ret; +} + +static inline gint +rgb_to_v (gint r, gint g, gint b) +{ + gint ret; + + ret = + (gint) (((32768 * r) >> 16) - ((27439 * g) >> 16) - ((5329 * b) >> 16) + + 128); + ret = CLAMP (ret, 0, 255); + return ret; +} + +static void +blit_i420 (GstAssRender * render, ASS_Image * ass_image, GstBuffer * buffer) +{ + guint counter = 0; + gint alpha, r, g, b, k, k2; + gint Y, U, V; + const guint8 *src; + guint8 *dst_y, *dst_u, *dst_v; + gint x, y, w, h; + gint w2; + gint width = render->width; + gint height = render->height; + gint src_stride; + gint y_offset, y_stride; + gint u_offset, u_stride; + gint v_offset, v_stride; + + y_offset = + gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 0, width, + height); + u_offset = + gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 1, width, + height); + v_offset = + gst_video_format_get_component_offset (GST_VIDEO_FORMAT_I420, 2, width, + height); + + y_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 0, width); + u_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 1, width); + v_stride = gst_video_format_get_row_stride (GST_VIDEO_FORMAT_I420, 2, width); + + while (ass_image) { + if (ass_image->dst_y > height || ass_image->dst_x > width) + goto next; + + /* blend subtitles onto the video frame */ + alpha = 255 - ((ass_image->color) & 0xff); + r = ((ass_image->color) >> 24) & 0xff; + g = ((ass_image->color) >> 16) & 0xff; + b = ((ass_image->color) >> 8) & 0xff; + + Y = rgb_to_y (r, g, b); + U = rgb_to_u (r, g, b); + V = rgb_to_v (r, g, b); + + w = MIN (ass_image->w, width - ass_image->dst_x); + h = MIN (ass_image->h, height - ass_image->dst_y); + + w2 = (w + 1) / 2; + + src_stride = ass_image->stride; + + src = ass_image->bitmap; + dst_y = + buffer->data + y_offset + ass_image->dst_y * y_stride + + ass_image->dst_x; + dst_u = + buffer->data + u_offset + (ass_image->dst_y / 2) * u_stride + + ass_image->dst_x / 2; + dst_v = + buffer->data + v_offset + (ass_image->dst_y / 2) * v_stride + + ass_image->dst_x / 2; + + for (y = 0; y < h; y++) { + dst_y = buffer->data + y_offset + (ass_image->dst_y + y) * y_stride + + ass_image->dst_x; + for (x = 0; x < w; x++) { + k = src[y * ass_image->w + x] * alpha / 255; + dst_y[x] = (k * Y + (255 - k) * dst_y[x]) / 255; + } + } + + y = 0; + if (ass_image->dst_y & 1) { + dst_u = + buffer->data + u_offset + (ass_image->dst_y / 2) * u_stride + + ass_image->dst_x / 2; + dst_v = + buffer->data + v_offset + (ass_image->dst_y / 2) * v_stride + + ass_image->dst_x / 2; + x = 0; + if (ass_image->dst_x & 1) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + x++; + dst_u++; + dst_v++; + } + for (; x < w - 1; x += 2) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 += src[y * ass_image->w + x + 1] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + dst_u++; + dst_v++; + } + if (x < w) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + } + } + + for (; y < h - 1; y += 2) { + dst_u = + buffer->data + u_offset + ((ass_image->dst_y + y) / 2) * u_stride + + ass_image->dst_x / 2; + dst_v = + buffer->data + v_offset + ((ass_image->dst_y + y) / 2) * v_stride + + ass_image->dst_x / 2; + x = 0; + if (ass_image->dst_x & 1) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 += src[(y + 1) * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + x++; + dst_u++; + dst_v++; + } + for (; x < w - 1; x += 2) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 += src[y * ass_image->w + x + 1] * alpha / 255; + k2 += src[(y + 1) * ass_image->w + x] * alpha / 255; + k2 += src[(y + 1) * ass_image->w + x + 1] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + dst_u++; + dst_v++; + } + if (x < w) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 += src[(y + 1) * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + } + } + + if (y < h) { + dst_u = + buffer->data + u_offset + (ass_image->dst_y / 2) * u_stride + + ass_image->dst_x / 2; + dst_v = + buffer->data + v_offset + (ass_image->dst_y / 2) * v_stride + + ass_image->dst_x / 2; + x = 0; + if (ass_image->dst_x & 1) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + x++; + dst_u++; + dst_v++; + } + for (; x < w - 1; x += 2) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 += src[y * ass_image->w + x + 1] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + dst_u++; + dst_v++; + } + if (x < w) { + k2 = src[y * ass_image->w + x] * alpha / 255; + k2 = (k2 + 2) >> 2; + dst_u[0] = (k2 * U + (255 - k2) * dst_u[0]) / 255; + dst_v[0] = (k2 * V + (255 - k2) * dst_v[0]) / 255; + } + } + + + + next: + counter++; + ass_image = ass_image->next; + } + + GST_LOG_OBJECT (render, "amount of rendered ass_image: %u", counter); +} + +static gboolean +gst_ass_render_setcaps_video (GstPad * pad, GstCaps * caps) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + gboolean ret = FALSE; + gint par_n = 1, par_d = 1; + gdouble dar; + + render->width = 0; + render->height = 0; + + if (!gst_video_format_parse_caps (caps, &render->format, &render->width, + &render->height) || + !gst_video_parse_caps_framerate (caps, &render->fps_n, &render->fps_d)) { + GST_ERROR_OBJECT (render, "Can't parse caps: %" GST_PTR_FORMAT, caps); + ret = FALSE; + goto out; + } + + gst_video_parse_caps_pixel_aspect_ratio (caps, &par_n, &par_d); + + ret = gst_pad_set_caps (render->srcpad, caps); + if (!ret) + goto out; + + switch (render->format) { + case GST_VIDEO_FORMAT_RGB: + render->blit = blit_rgb; + break; + case GST_VIDEO_FORMAT_BGR: + render->blit = blit_bgr; + break; + case GST_VIDEO_FORMAT_xRGB: + render->blit = blit_xrgb; + break; + case GST_VIDEO_FORMAT_xBGR: + render->blit = blit_xbgr; + break; + case GST_VIDEO_FORMAT_RGBx: + render->blit = blit_rgbx; + break; + case GST_VIDEO_FORMAT_BGRx: + render->blit = blit_bgrx; + break; + case GST_VIDEO_FORMAT_I420: + render->blit = blit_i420; + break; + default: + ret = FALSE; + goto out; + } + + g_mutex_lock (render->ass_mutex); + ass_set_frame_size (render->ass_renderer, render->width, render->height); + + dar = (((gdouble) par_n) * ((gdouble) render->width)) + / (((gdouble) par_d) * ((gdouble) render->height)); +#if !defined(LIBASS_VERSION) || LIBASS_VERSION < 0x00907000 + ass_set_aspect_ratio (render->ass_renderer, dar); +#else + ass_set_aspect_ratio (render->ass_renderer, + dar, ((gdouble) render->width) / ((gdouble) render->height)); +#endif + ass_set_font_scale (render->ass_renderer, 1.0); + ass_set_hinting (render->ass_renderer, ASS_HINTING_LIGHT); + +#if !defined(LIBASS_VERSION) || LIBASS_VERSION < 0x00907000 + ass_set_fonts (render->ass_renderer, "Arial", "sans-serif"); + ass_set_fonts (render->ass_renderer, NULL, "Sans"); +#else + ass_set_fonts (render->ass_renderer, "Arial", "sans-serif", 1, NULL, 1); + ass_set_fonts (render->ass_renderer, NULL, "Sans", 1, NULL, 1); +#endif + ass_set_margins (render->ass_renderer, 0, 0, 0, 0); + ass_set_use_margins (render->ass_renderer, 0); + g_mutex_unlock (render->ass_mutex); + + render->renderer_init_ok = TRUE; + + GST_DEBUG_OBJECT (render, "ass renderer setup complete"); + +out: + gst_object_unref (render); + + return ret; +} + +static gboolean +gst_ass_render_setcaps_text (GstPad * pad, GstCaps * caps) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + GstStructure *structure; + const GValue *value; + GstBuffer *priv; + gchar *codec_private; + guint codec_private_size; + gboolean ret = FALSE; + + structure = gst_caps_get_structure (caps, 0); + + GST_DEBUG_OBJECT (render, "text pad linked with caps: %" GST_PTR_FORMAT, + caps); + + value = gst_structure_get_value (structure, "codec_data"); + + g_mutex_lock (render->ass_mutex); + if (value != NULL) { + priv = gst_value_get_buffer (value); + g_return_val_if_fail (priv != NULL, FALSE); + + codec_private = (gchar *) GST_BUFFER_DATA (priv); + codec_private_size = GST_BUFFER_SIZE (priv); + + if (!render->ass_track) + render->ass_track = ass_new_track (render->ass_library); + + ass_process_codec_private (render->ass_track, + codec_private, codec_private_size); + + GST_DEBUG_OBJECT (render, "ass track created"); + + render->track_init_ok = TRUE; + + ret = TRUE; + } else if (!render->ass_track) { + render->ass_track = ass_new_track (render->ass_library); + + render->track_init_ok = TRUE; + + ret = TRUE; + } + g_mutex_unlock (render->ass_mutex); + + gst_object_unref (render); + + return ret; +} + + +static void +gst_ass_render_process_text (GstAssRender * render, GstBuffer * buffer, + GstClockTime running_time, GstClockTime duration) +{ + gchar *data = (gchar *) GST_BUFFER_DATA (buffer); + guint size = GST_BUFFER_SIZE (buffer); + gdouble pts_start, pts_end; + + pts_start = running_time; + pts_start /= GST_MSECOND; + pts_end = duration; + pts_end /= GST_MSECOND; + + GST_DEBUG_OBJECT (render, + "Processing subtitles with running time %" GST_TIME_FORMAT + " and duration %" GST_TIME_FORMAT, GST_TIME_ARGS (running_time), + GST_TIME_ARGS (duration)); + g_mutex_lock (render->ass_mutex); + ass_process_chunk (render->ass_track, data, size, pts_start, pts_end); + g_mutex_unlock (render->ass_mutex); + gst_buffer_unref (buffer); +} + +static GstFlowReturn +gst_ass_render_bufferalloc_video (GstPad * pad, guint64 offset, guint size, + GstCaps * caps, GstBuffer ** buffer) +{ + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + GstFlowReturn ret = GST_FLOW_WRONG_STATE; + GstPad *allocpad; + + GST_OBJECT_LOCK (render); + allocpad = render->srcpad ? gst_object_ref (render->srcpad) : NULL; + GST_OBJECT_UNLOCK (render); + + if (allocpad) { + ret = gst_pad_alloc_buffer (allocpad, offset, size, caps, buffer); + gst_object_unref (allocpad); + } + + gst_object_unref (render); + + return ret; +} + +static GstFlowReturn +gst_ass_render_chain_video (GstPad * pad, GstBuffer * buffer) +{ + GstAssRender *render = GST_ASS_RENDER (GST_PAD_PARENT (pad)); + GstFlowReturn ret = GST_FLOW_OK; + gboolean in_seg = FALSE; + gint64 start, stop, clip_start = 0, clip_stop = 0; + ASS_Image *ass_image; + + if (!GST_BUFFER_TIMESTAMP_IS_VALID (buffer)) { + GST_WARNING_OBJECT (render, "buffer without timestamp, discarding"); + gst_buffer_unref (buffer); + return GST_FLOW_OK; + } + + /* ignore buffers that are outside of the current segment */ + start = GST_BUFFER_TIMESTAMP (buffer); + + if (!GST_BUFFER_DURATION_IS_VALID (buffer)) { + stop = GST_CLOCK_TIME_NONE; + } else { + stop = start + GST_BUFFER_DURATION (buffer); + } + + /* segment_clip() will adjust start unconditionally to segment_start if + * no stop time is provided, so handle this ourselves */ + if (stop == GST_CLOCK_TIME_NONE && start < render->video_segment.start) + goto out_of_segment; + + in_seg = + gst_segment_clip (&render->video_segment, GST_FORMAT_TIME, start, stop, + &clip_start, &clip_stop); + + if (!in_seg) + goto out_of_segment; + + /* if the buffer is only partially in the segment, fix up stamps */ + if (clip_start != start || (stop != -1 && clip_stop != stop)) { + GST_DEBUG_OBJECT (render, "clipping buffer timestamp/duration to segment"); + buffer = gst_buffer_make_metadata_writable (buffer); + GST_BUFFER_TIMESTAMP (buffer) = clip_start; + if (stop != -1) + GST_BUFFER_DURATION (buffer) = clip_stop - clip_start; + } + + gst_segment_set_last_stop (&render->video_segment, GST_FORMAT_TIME, + clip_start); + + g_mutex_lock (render->subtitle_mutex); + if (render->subtitle_pending) { + GstClockTime sub_running_time, vid_running_time; + GstClockTime sub_running_time_end, vid_running_time_end; + + sub_running_time = + gst_segment_to_running_time (&render->subtitle_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (render->subtitle_pending)); + sub_running_time_end = + gst_segment_to_running_time (&render->subtitle_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (render->subtitle_pending) + + GST_BUFFER_DURATION (render->subtitle_pending)); + vid_running_time = + gst_segment_to_running_time (&render->video_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buffer)); + vid_running_time_end = + gst_segment_to_running_time (&render->video_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer)); + + if (sub_running_time_end < vid_running_time) { + gst_buffer_unref (render->subtitle_pending); + GST_DEBUG_OBJECT (render, + "Too late text buffer, dropping (%" GST_TIME_FORMAT " < %" + GST_TIME_FORMAT, GST_TIME_ARGS (sub_running_time_end), + GST_TIME_ARGS (vid_running_time)); + render->subtitle_pending = NULL; + g_cond_signal (render->subtitle_cond); + } else if (sub_running_time <= vid_running_time_end + GST_SECOND / 2) { + gst_ass_render_process_text (render, render->subtitle_pending, + sub_running_time, sub_running_time_end - sub_running_time); + render->subtitle_pending = NULL; + g_cond_signal (render->subtitle_cond); + } + } + g_mutex_unlock (render->subtitle_mutex); + + /* now start rendering subtitles, if all conditions are met */ + if (render->renderer_init_ok && render->track_init_ok && render->enable) { + GstClockTime running_time; + gdouble timestamp; +#ifndef GST_DISABLE_GST_DEBUG + gdouble step; +#endif + + running_time = + gst_segment_to_running_time (&render->video_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buffer)); + GST_DEBUG_OBJECT (render, + "rendering frame for running time %" GST_TIME_FORMAT, + GST_TIME_ARGS (running_time)); + /* libass needs timestamps in ms */ + timestamp = running_time / GST_MSECOND; + + g_mutex_lock (render->ass_mutex); +#ifndef GST_DISABLE_GST_DEBUG + /* only for testing right now. could possibly be used for optimizations? */ + step = ass_step_sub (render->ass_track, timestamp, 1); + GST_DEBUG_OBJECT (render, "Current running time: %" GST_TIME_FORMAT + " // Next event: %" GST_TIME_FORMAT, + GST_TIME_ARGS (running_time), GST_TIME_ARGS (step * GST_MSECOND)); +#endif + + /* not sure what the last parameter to this call is for (detect_change) */ + ass_image = ass_render_frame (render->ass_renderer, render->ass_track, + timestamp, NULL); + g_mutex_unlock (render->ass_mutex); + + if (ass_image != NULL) { + buffer = gst_buffer_make_writable (buffer); + render->blit (render, ass_image, buffer); + } else { + GST_LOG_OBJECT (render, "nothing to render right now"); + } + } else { + GST_LOG_OBJECT (render, "rendering disabled, doing buffer passthrough"); + } + + ret = gst_pad_push (render->srcpad, buffer); + + return ret; + +out_of_segment: + { + GST_DEBUG_OBJECT (render, "buffer out of segment, discarding"); + gst_buffer_unref (buffer); + return GST_FLOW_OK; + } +} + +static GstFlowReturn +gst_ass_render_chain_text (GstPad * pad, GstBuffer * buffer) +{ + GstFlowReturn ret = GST_FLOW_OK; + GstAssRender *render = GST_ASS_RENDER (GST_PAD_PARENT (pad)); + GstClockTime timestamp, duration; + GstClockTime sub_running_time, vid_running_time; + GstClockTime sub_running_time_end; + gint64 cstart, cstop; + gboolean in_seg; + + if (render->subtitle_flushing) { + gst_buffer_unref (buffer); + return GST_FLOW_WRONG_STATE; + } + + timestamp = GST_BUFFER_TIMESTAMP (buffer); + duration = GST_BUFFER_DURATION (buffer); + + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp) + || !GST_CLOCK_TIME_IS_VALID (duration))) { + GST_WARNING_OBJECT (render, + "Text buffer without valid timestamp" " or duration, dropping"); + gst_buffer_unref (buffer); + return GST_FLOW_OK; + } + + in_seg = + gst_segment_clip (&render->subtitle_segment, GST_FORMAT_TIME, timestamp, + timestamp + duration, &cstart, &cstop); + if (!in_seg) { + GST_DEBUG_OBJECT (render, + "Text buffer before segment start (%" GST_TIME_FORMAT " < %" + GST_TIME_FORMAT ")", GST_TIME_ARGS (timestamp), + GST_TIME_ARGS (render->subtitle_segment.start)); + gst_buffer_unref (buffer); + return GST_FLOW_OK; + } + + GST_BUFFER_TIMESTAMP (buffer) = timestamp = cstart; + GST_BUFFER_DURATION (buffer) = duration = cstop - cstart; + + gst_segment_set_last_stop (&render->subtitle_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buffer)); + + sub_running_time = + gst_segment_to_running_time (&render->subtitle_segment, GST_FORMAT_TIME, + timestamp); + sub_running_time_end = + gst_segment_to_running_time (&render->subtitle_segment, GST_FORMAT_TIME, + timestamp + duration); + vid_running_time = + gst_segment_to_running_time (&render->video_segment, GST_FORMAT_TIME, + render->video_segment.last_stop); + + if (render->fps_n && render->fps_d) + vid_running_time += + gst_util_uint64_scale (GST_SECOND, render->fps_d, render->fps_n); + + if (sub_running_time > vid_running_time + GST_SECOND / 2) { + g_assert (render->subtitle_pending == NULL); + g_mutex_lock (render->subtitle_mutex); + if (G_UNLIKELY (render->subtitle_flushing)) { + GST_DEBUG_OBJECT (render, "Text pad flushing"); + gst_object_unref (buffer); + g_mutex_unlock (render->subtitle_mutex); + return GST_FLOW_WRONG_STATE; + } + GST_DEBUG_OBJECT (render, + "Too early text buffer, waiting (%" GST_TIME_FORMAT " > %" + GST_TIME_FORMAT, GST_TIME_ARGS (sub_running_time), + GST_TIME_ARGS (vid_running_time)); + render->subtitle_pending = buffer; + g_cond_wait (render->subtitle_cond, render->subtitle_mutex); + g_mutex_unlock (render->subtitle_mutex); + } else if (sub_running_time_end < vid_running_time) { + GST_DEBUG_OBJECT (render, + "Too late text buffer, dropping (%" GST_TIME_FORMAT " < %" + GST_TIME_FORMAT, GST_TIME_ARGS (sub_running_time_end), + GST_TIME_ARGS (vid_running_time)); + gst_buffer_unref (buffer); + ret = GST_FLOW_OK; + } else { + gst_ass_render_process_text (render, buffer, sub_running_time, + sub_running_time_end - sub_running_time); + ret = GST_FLOW_OK; + } + + GST_DEBUG_OBJECT (render, + "processed text packet with timestamp %" GST_TIME_FORMAT + " and duration %" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp), GST_TIME_ARGS (duration)); + + return ret; +} + +static void +gst_ass_render_handle_tags (GstAssRender * render, GstTagList * taglist) +{ + static const gchar *mimetypes[] = { + "application/x-font-ttf", + "application/x-font-otf", + "application/x-truetype-font" + }; + static const gchar *extensions[] = { + ".otf", + ".ttf" + }; + guint tag_size; + guint index; + + if (!taglist) + return; + + tag_size = gst_tag_list_get_tag_size (taglist, GST_TAG_ATTACHMENT); + if (tag_size > 0 && render->embeddedfonts) { + const GValue *value; + GstBuffer *buf; + GstCaps *caps; + GstStructure *structure; + gboolean valid_mimetype, valid_extension; + guint j; + const gchar *filename; + + GST_DEBUG_OBJECT (render, "TAG event has attachments"); + + for (index = 0; index < tag_size; index++) { + value = gst_tag_list_get_value_index (taglist, GST_TAG_ATTACHMENT, index); + buf = gst_value_get_buffer (value); + if (!buf || !GST_BUFFER_CAPS (buf)) + continue; + + caps = GST_BUFFER_CAPS (buf); + structure = gst_caps_get_structure (caps, 0); + + valid_mimetype = FALSE; + valid_extension = FALSE; + + for (j = 0; j < G_N_ELEMENTS (mimetypes); j++) { + if (gst_structure_has_name (structure, mimetypes[j])) { + valid_mimetype = TRUE; + break; + } + } + filename = gst_structure_get_string (structure, "filename"); + if (!filename) + continue; + + if (!valid_mimetype) { + guint len = strlen (filename); + const gchar *extension = filename + len - 4; + for (j = 0; j < G_N_ELEMENTS (extensions); j++) { + if (g_ascii_strcasecmp (extension, extensions[j]) == 0) { + valid_extension = TRUE; + break; + } + } + } + + if (valid_mimetype || valid_extension) { + g_mutex_lock (render->ass_mutex); + ass_add_font (render->ass_library, (gchar *) filename, + (gchar *) GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf)); + GST_DEBUG_OBJECT (render, "registered new font %s", filename); + g_mutex_unlock (render->ass_mutex); + } + } + } +} + +static gboolean +gst_ass_render_event_video (GstPad * pad, GstEvent * event) +{ + gboolean ret = FALSE; + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (pad, "received video event %s", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + GstFormat format; + gdouble rate; + gint64 start, stop, time; + gboolean update; + + GST_DEBUG_OBJECT (render, "received new segment"); + + gst_event_parse_new_segment (event, &update, &rate, &format, &start, + &stop, &time); + + if (format == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (render, "VIDEO SEGMENT now: %" GST_SEGMENT_FORMAT, + &render->video_segment); + + gst_segment_set_newsegment (&render->video_segment, update, rate, + format, start, stop, time); + + GST_DEBUG_OBJECT (render, "VIDEO SEGMENT after: %" GST_SEGMENT_FORMAT, + &render->video_segment); + ret = gst_pad_push_event (render->srcpad, event); + } else { + GST_ELEMENT_WARNING (render, STREAM, MUX, (NULL), + ("received non-TIME newsegment event on video input")); + ret = FALSE; + gst_event_unref (event); + } + break; + } + case GST_EVENT_TAG: + { + GstTagList *taglist = NULL; + + /* tag events may contain attachments which might be fonts */ + GST_DEBUG_OBJECT (render, "got TAG event"); + + gst_event_parse_tag (event, &taglist); + gst_ass_render_handle_tags (render, taglist); + ret = gst_pad_push_event (render->srcpad, event); + break; + } + case GST_EVENT_FLUSH_STOP: + gst_segment_init (&render->video_segment, GST_FORMAT_TIME); + default: + ret = gst_pad_push_event (render->srcpad, event); + break; + } + + gst_object_unref (render); + + return ret; +} + +static gboolean +gst_ass_render_event_text (GstPad * pad, GstEvent * event) +{ + gint i; + gboolean ret = FALSE; + GstAssRender *render = GST_ASS_RENDER (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (pad, "received text event %s", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + GstFormat format; + gdouble rate; + gint64 start, stop, time; + gboolean update; + + GST_DEBUG_OBJECT (render, "received new segment"); + + gst_event_parse_new_segment (event, &update, &rate, &format, &start, + &stop, &time); + + if (format == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (render, "SUBTITLE SEGMENT now: %" GST_SEGMENT_FORMAT, + &render->subtitle_segment); + + gst_segment_set_newsegment (&render->subtitle_segment, update, rate, + format, start, stop, time); + + GST_DEBUG_OBJECT (render, + "SUBTITLE SEGMENT after: %" GST_SEGMENT_FORMAT, + &render->subtitle_segment); + ret = TRUE; + gst_event_unref (event); + } else { + GST_ELEMENT_WARNING (render, STREAM, MUX, (NULL), + ("received non-TIME newsegment event on subtitle input")); + ret = FALSE; + gst_event_unref (event); + } + break; + } + case GST_EVENT_FLUSH_STOP: + gst_segment_init (&render->subtitle_segment, GST_FORMAT_TIME); + render->subtitle_flushing = FALSE; + gst_event_unref (event); + ret = TRUE; + break; + case GST_EVENT_FLUSH_START: + GST_DEBUG_OBJECT (render, "begin flushing"); + g_mutex_lock (render->ass_mutex); + if (render->ass_track) { + /* delete any events on the ass_track */ + for (i = 0; i < render->ass_track->n_events; i++) { + GST_DEBUG_OBJECT (render, "deleted event with eid %i", i); + ass_free_event (render->ass_track, i); + } + render->ass_track->n_events = 0; + GST_DEBUG_OBJECT (render, "done flushing"); + } + g_mutex_unlock (render->ass_mutex); + g_mutex_lock (render->subtitle_mutex); + if (render->subtitle_pending) + gst_buffer_unref (render->subtitle_pending); + render->subtitle_pending = NULL; + render->subtitle_flushing = TRUE; + g_cond_signal (render->subtitle_cond); + g_mutex_unlock (render->subtitle_mutex); + gst_event_unref (event); + ret = TRUE; + break; + case GST_EVENT_EOS: + GST_OBJECT_LOCK (render); + GST_INFO_OBJECT (render, "text EOS"); + GST_OBJECT_UNLOCK (render); + gst_event_unref (event); + ret = TRUE; + break; + case GST_EVENT_TAG: + { + GstTagList *taglist = NULL; + + /* tag events may contain attachments which might be fonts */ + GST_DEBUG_OBJECT (render, "got TAG event"); + + gst_event_parse_tag (event, &taglist); + gst_ass_render_handle_tags (render, taglist); + ret = gst_pad_push_event (render->srcpad, event); + break; + } + default: + ret = gst_pad_push_event (render->srcpad, event); + break; + } + + gst_object_unref (render); + + return ret; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_ass_render_debug, "assrender", + 0, "ASS/SSA subtitle renderer"); + GST_DEBUG_CATEGORY_INIT (gst_ass_render_lib_debug, "assrender_library", + 0, "ASS/SSA subtitle renderer library"); + + return gst_element_register (plugin, "assrender", + GST_RANK_PRIMARY, GST_TYPE_ASS_RENDER); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "assrender", + "ASS/SSA subtitle renderer", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/assrender/gstassrender.h b/ext/assrender/gstassrender.h new file mode 100644 index 0000000..4b58e25 --- /dev/null +++ b/ext/assrender/gstassrender.h @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2008 Benjamin Schmitz + * Copyright (c) 2009 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public License + * along with this library; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_ASS_RENDER_H__ +#define __GST_ASS_RENDER_H__ + +#include +#include + +#include +#include + +G_BEGIN_DECLS + +#if !defined(LIBASS_VERSION) || LIBASS_VERSION < 0x00907010 +#define ASS_Library ass_library_t +#define ASS_Renderer ass_renderer_t +#define ASS_Track ass_track_t +#define ASS_Image ass_image_t +#endif + +#define GST_TYPE_ASS_RENDER (gst_ass_render_get_type()) +#define GST_ASS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_ASS_RENDER,GstAssRender)) +#define GST_ASS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_ASS_RENDER,GstAssRenderClass)) +#define GST_IS_ASS_RENDER(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_ASS_RENDER)) +#define GST_IS_ASS_RENDER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_ASS_RENDER)) + +typedef struct _GstAssRender GstAssRender; +typedef struct _GstAssRenderClass GstAssRenderClass; +typedef void (*GstAssRenderBlitFunction) (GstAssRender *render, ASS_Image *ass_image, GstBuffer *buffer); + +struct _GstAssRender +{ + GstElement element; + + GstPad *video_sinkpad, *text_sinkpad, *srcpad; + + /* properties */ + gboolean enable, embeddedfonts; + + /* */ + GstSegment video_segment; + + GstVideoFormat format; + gint width, height; + gint fps_n, fps_d; + GstAssRenderBlitFunction blit; + + GMutex *subtitle_mutex; + GCond *subtitle_cond; + GstBuffer *subtitle_pending; + gboolean subtitle_flushing; + GstSegment subtitle_segment; + + GMutex *ass_mutex; + ASS_Library *ass_library; + ASS_Renderer *ass_renderer; + ASS_Track *ass_track; + + gboolean renderer_init_ok, track_init_ok; +}; + +struct _GstAssRenderClass +{ + GstElementClass parent_class; +}; + +GType gst_ass_render_get_type (void); + +G_END_DECLS + +#endif diff --git a/ext/bz2/Makefile.am b/ext/bz2/Makefile.am new file mode 100644 index 0000000..4cc2c85 --- /dev/null +++ b/ext/bz2/Makefile.am @@ -0,0 +1,12 @@ + +plugin_LTLIBRARIES = libgstbz2.la + +libgstbz2_la_SOURCES = \ + gstbz2.c gstbz2dec.c gstbz2enc.c +libgstbz2_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstbz2_la_LIBADD = $(GST_BASE_LIBS) $(BZ2_LIBS) +libgstbz2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstbz2_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstbz2dec.h gstbz2enc.h diff --git a/ext/bz2/Makefile.in b/ext/bz2/Makefile.in new file mode 100644 index 0000000..7d2f93f --- /dev/null +++ b/ext/bz2/Makefile.in @@ -0,0 +1,878 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/bz2 +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstbz2_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstbz2_la_OBJECTS = libgstbz2_la-gstbz2.lo \ + libgstbz2_la-gstbz2dec.lo libgstbz2_la-gstbz2enc.lo +libgstbz2_la_OBJECTS = $(am_libgstbz2_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstbz2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstbz2_la_CFLAGS) $(CFLAGS) \ + $(libgstbz2_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstbz2_la_SOURCES) +DIST_SOURCES = $(libgstbz2_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstbz2.la +libgstbz2_la_SOURCES = \ + gstbz2.c gstbz2dec.c gstbz2enc.c + +libgstbz2_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) +libgstbz2_la_LIBADD = $(GST_BASE_LIBS) $(BZ2_LIBS) +libgstbz2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstbz2_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstbz2dec.h gstbz2enc.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/bz2/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/bz2/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstbz2.la: $(libgstbz2_la_OBJECTS) $(libgstbz2_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstbz2_la_LINK) -rpath $(plugindir) $(libgstbz2_la_OBJECTS) $(libgstbz2_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbz2_la-gstbz2.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbz2_la-gstbz2dec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstbz2_la-gstbz2enc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstbz2_la-gstbz2.lo: gstbz2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -MT libgstbz2_la-gstbz2.lo -MD -MP -MF $(DEPDIR)/libgstbz2_la-gstbz2.Tpo -c -o libgstbz2_la-gstbz2.lo `test -f 'gstbz2.c' || echo '$(srcdir)/'`gstbz2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbz2_la-gstbz2.Tpo $(DEPDIR)/libgstbz2_la-gstbz2.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbz2.c' object='libgstbz2_la-gstbz2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -c -o libgstbz2_la-gstbz2.lo `test -f 'gstbz2.c' || echo '$(srcdir)/'`gstbz2.c + +libgstbz2_la-gstbz2dec.lo: gstbz2dec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -MT libgstbz2_la-gstbz2dec.lo -MD -MP -MF $(DEPDIR)/libgstbz2_la-gstbz2dec.Tpo -c -o libgstbz2_la-gstbz2dec.lo `test -f 'gstbz2dec.c' || echo '$(srcdir)/'`gstbz2dec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbz2_la-gstbz2dec.Tpo $(DEPDIR)/libgstbz2_la-gstbz2dec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbz2dec.c' object='libgstbz2_la-gstbz2dec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -c -o libgstbz2_la-gstbz2dec.lo `test -f 'gstbz2dec.c' || echo '$(srcdir)/'`gstbz2dec.c + +libgstbz2_la-gstbz2enc.lo: gstbz2enc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -MT libgstbz2_la-gstbz2enc.lo -MD -MP -MF $(DEPDIR)/libgstbz2_la-gstbz2enc.Tpo -c -o libgstbz2_la-gstbz2enc.lo `test -f 'gstbz2enc.c' || echo '$(srcdir)/'`gstbz2enc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstbz2_la-gstbz2enc.Tpo $(DEPDIR)/libgstbz2_la-gstbz2enc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstbz2enc.c' object='libgstbz2_la-gstbz2enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstbz2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstbz2_la_CFLAGS) $(CFLAGS) -c -o libgstbz2_la-gstbz2enc.lo `test -f 'gstbz2enc.c' || echo '$(srcdir)/'`gstbz2enc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/bz2/gstbz2.c b/ext/bz2/gstbz2.c new file mode 100644 index 0000000..130ca1b --- /dev/null +++ b/ext/bz2/gstbz2.c @@ -0,0 +1,42 @@ +/* GStreamer bz2 plugin + * Copyright (C) 2006 Lutz Müller + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstbz2enc.h" +#include "gstbz2dec.h" + +#include + +#include + +static gboolean +plugin_init (GstPlugin * p) +{ + if (!gst_element_register (p, "bz2enc", GST_RANK_NONE, GST_TYPE_BZ2ENC)) + return FALSE; + if (!gst_element_register (p, "bz2dec", GST_RANK_NONE, GST_TYPE_BZ2DEC)) + return FALSE; + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, GST_VERSION_MINOR, "bz2", + "Compress or decompress streams", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/bz2/gstbz2dec.c b/ext/bz2/gstbz2dec.c new file mode 100644 index 0000000..ac53f60 --- /dev/null +++ b/ext/bz2/gstbz2dec.c @@ -0,0 +1,314 @@ +/* GStreamer bz2 decoder + * Copyright (C) 2006 Lutz Müller + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "gstbz2dec.h" + +#include + +#include +#include + +GST_DEBUG_CATEGORY_STATIC (bz2dec_debug); +#define GST_CAT_DEFAULT bz2dec_debug + +static GstStaticPadTemplate sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-bzip")); +static GstStaticPadTemplate src_template = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +struct _GstBz2dec +{ + GstElement parent; + + GstPad *sink; + GstPad *src; + + /* Properties */ + guint first_buffer_size; + guint buffer_size; + + gboolean ready; + bz_stream stream; + guint64 offset; +}; + +struct _GstBz2decClass +{ + GstElementClass parent_class; +}; + +GST_BOILERPLATE (GstBz2dec, gst_bz2dec, GstElement, GST_TYPE_ELEMENT); + +#define DEFAULT_FIRST_BUFFER_SIZE 1024 +#define DEFAULT_BUFFER_SIZE 1024 + +enum +{ + PROP_0, + PROP_FIRST_BUFFER_SIZE, + PROP_BUFFER_SIZE +}; + +static void +gst_bz2dec_decompress_end (GstBz2dec * b) +{ + g_return_if_fail (GST_IS_BZ2DEC (b)); + + if (b->ready) { + BZ2_bzDecompressEnd (&b->stream); + memset (&b->stream, 0, sizeof (b->stream)); + b->ready = FALSE; + } +} + +static void +gst_bz2dec_decompress_init (GstBz2dec * b) +{ + g_return_if_fail (GST_IS_BZ2DEC (b)); + + gst_bz2dec_decompress_end (b); + b->offset = 0; + switch (BZ2_bzDecompressInit (&b->stream, 0, 0)) { + case BZ_OK: + b->ready = TRUE; + return; + default: + b->ready = FALSE; + GST_ELEMENT_ERROR (b, CORE, FAILED, (NULL), + ("Failed to start decompression.")); + return; + } +} + +static GstFlowReturn +gst_bz2dec_chain (GstPad * pad, GstBuffer * in) +{ + GstFlowReturn flow; + GstBuffer *out; + GstBz2dec *b; + int r = BZ_OK; + + b = GST_BZ2DEC (GST_PAD_PARENT (pad)); + + if (!b->ready) + goto not_ready; + + b->stream.next_in = (char *) GST_BUFFER_DATA (in); + b->stream.avail_in = GST_BUFFER_SIZE (in); + + do { + guint n; + + /* Create the output buffer */ + flow = gst_pad_alloc_buffer (b->src, b->offset, + b->offset ? b->buffer_size : b->first_buffer_size, + GST_PAD_CAPS (b->src), &out); + + if (flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (b, "pad alloc failed: %s", gst_flow_get_name (flow)); + gst_bz2dec_decompress_init (b); + break; + } + + /* Decode */ + b->stream.next_out = (char *) GST_BUFFER_DATA (out); + b->stream.avail_out = GST_BUFFER_SIZE (out); + r = BZ2_bzDecompress (&b->stream); + if ((r != BZ_OK) && (r != BZ_STREAM_END)) + goto decode_failed; + + if (b->stream.avail_out >= GST_BUFFER_SIZE (out)) { + gst_buffer_unref (out); + break; + } + GST_BUFFER_SIZE (out) -= b->stream.avail_out; + GST_BUFFER_OFFSET (out) = b->stream.total_out_lo32 - GST_BUFFER_SIZE (out); + + /* Configure source pad (if necessary) */ + if (!b->offset) { + GstCaps *caps = NULL; + + caps = gst_type_find_helper_for_buffer (GST_OBJECT (b), out, NULL); + if (caps) { + gst_buffer_set_caps (out, caps); + gst_pad_set_caps (b->src, caps); + gst_pad_use_fixed_caps (b->src); + gst_caps_unref (caps); + } else { + /* FIXME: shouldn't we queue output buffers until we have a type? */ + } + } + + /* Push data */ + n = GST_BUFFER_SIZE (out); + flow = gst_pad_push (b->src, out); + if (flow != GST_FLOW_OK) + break; + b->offset += n; + } while (r != BZ_STREAM_END); + +done: + + gst_buffer_unref (in); + return flow; + +/* ERRORS */ +decode_failed: + { + GST_ELEMENT_ERROR (b, STREAM, DECODE, (NULL), + ("Failed to decompress data (error code %i).", r)); + gst_bz2dec_decompress_init (b); + gst_buffer_unref (out); + flow = GST_FLOW_ERROR; + goto done; + } +not_ready: + { + GST_ELEMENT_ERROR (b, LIBRARY, FAILED, (NULL), ("Decompressor not ready.")); + flow = GST_FLOW_WRONG_STATE; + goto done; + } +} + +static void +gst_bz2dec_init (GstBz2dec * b, GstBz2decClass * klass) +{ + b->first_buffer_size = DEFAULT_FIRST_BUFFER_SIZE; + b->buffer_size = DEFAULT_BUFFER_SIZE; + + b->sink = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_chain_function (b->sink, GST_DEBUG_FUNCPTR (gst_bz2dec_chain)); + gst_element_add_pad (GST_ELEMENT (b), b->sink); + + b->src = gst_pad_new_from_static_template (&src_template, "src"); + gst_element_add_pad (GST_ELEMENT (b), b->src); + gst_pad_use_fixed_caps (b->src); + + gst_bz2dec_decompress_init (b); +} + +static void +gst_bz2dec_base_init (gpointer g_class) +{ + GstElementClass *ec = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (ec, + gst_static_pad_template_get (&sink_template)); + gst_element_class_add_pad_template (ec, + gst_static_pad_template_get (&src_template)); + gst_element_class_set_details_simple (ec, "BZ2 decoder", + "Codec/Decoder", "Decodes compressed streams", + "Lutz Mueller "); +} + +static void +gst_bz2dec_finalize (GObject * object) +{ + GstBz2dec *b = GST_BZ2DEC (object); + + gst_bz2dec_decompress_end (b); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_bz2dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstBz2dec *b = GST_BZ2DEC (object); + + switch (prop_id) { + case PROP_BUFFER_SIZE: + g_value_set_uint (value, b->buffer_size); + break; + case PROP_FIRST_BUFFER_SIZE: + g_value_set_uint (value, b->first_buffer_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +gst_bz2dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstBz2dec *b = GST_BZ2DEC (object); + + switch (prop_id) { + case PROP_BUFFER_SIZE: + b->buffer_size = g_value_get_uint (value); + break; + case PROP_FIRST_BUFFER_SIZE: + b->first_buffer_size = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static GstStateChangeReturn +gst_bz2dec_change_state (GstElement * element, GstStateChange transition) +{ + GstBz2dec *b = GST_BZ2DEC (element); + GstStateChangeReturn ret; + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_bz2dec_decompress_init (b); + break; + default: + break; + } + return ret; +} + +static void +gst_bz2dec_class_init (GstBz2decClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_bz2dec_change_state); + + gobject_class->finalize = gst_bz2dec_finalize; + gobject_class->get_property = gst_bz2dec_get_property; + gobject_class->set_property = gst_bz2dec_set_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_FIRST_BUFFER_SIZE, g_param_spec_uint ("first-buffer-size", + "Size of first buffer", "Size of first buffer (used to determine the " + "mime type of the uncompressed data)", 1, G_MAXUINT, + DEFAULT_FIRST_BUFFER_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BUFFER_SIZE, + g_param_spec_uint ("buffer-size", "Buffer size", "Buffer size", + 1, G_MAXUINT, DEFAULT_BUFFER_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (bz2dec_debug, "bz2dec", 0, "BZ2 decompressor"); +} diff --git a/ext/bz2/gstbz2dec.h b/ext/bz2/gstbz2dec.h new file mode 100644 index 0000000..478721c --- /dev/null +++ b/ext/bz2/gstbz2dec.h @@ -0,0 +1,39 @@ +/* GStreamer bz2 decoder + * Copyright (C) 2006 Lutz Müller + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_BZ2DEC_H_ +#define __GST_BZ2DEC_H__ + +#include + +G_BEGIN_DECLS +#define GST_TYPE_BZ2DEC (gst_bz2dec_get_type()) +#define GST_BZ2DEC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BZ2DEC,GstBz2dec)) +#define GST_BZ2DEC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BZ2DEC,GstBz2decClass)) +#define GST_IS_BZ2DEC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BZ2DEC)) +#define GST_IS_BZ2DEC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BZ2DEC)) +typedef struct _GstBz2dec GstBz2dec; +typedef struct _GstBz2decClass GstBz2decClass; + +GType +gst_bz2dec_get_type (void) + G_GNUC_CONST; + +G_END_DECLS +#endif /* __GST_BZ2DEC_H__ */ diff --git a/ext/bz2/gstbz2enc.c b/ext/bz2/gstbz2enc.c new file mode 100644 index 0000000..83a6b2e --- /dev/null +++ b/ext/bz2/gstbz2enc.c @@ -0,0 +1,340 @@ +/* GStreamer bz2 encoder + * Copyright (C) 2006 Lutz Müller + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "gstbz2enc.h" + +#include +#include + +GST_DEBUG_CATEGORY_STATIC (bz2enc_debug); +#define GST_CAT_DEFAULT bz2enc_debug + +static GstStaticPadTemplate sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("ANY")); +static GstStaticPadTemplate src_template = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("application/x-bzip")); + +#define DEFAULT_BLOCK_SIZE 6 +#define DEFAULT_BUFFER_SIZE 1024 + +enum +{ + PROP_0, + PROP_BLOCK_SIZE, + PROP_BUFFER_SIZE +}; + +struct _GstBz2enc +{ + GstElement parent; + + GstPad *sink; + GstPad *src; + + /* Properties */ + guint block_size; + guint buffer_size; + + gboolean ready; + bz_stream stream; + guint64 offset; +}; + +struct _GstBz2encClass +{ + GstElementClass parent_class; +}; + +GST_BOILERPLATE (GstBz2enc, gst_bz2enc, GstElement, GST_TYPE_ELEMENT); + +static void +gst_bz2enc_compress_end (GstBz2enc * b) +{ + g_return_if_fail (GST_IS_BZ2ENC (b)); + + if (b->ready) { + BZ2_bzCompressEnd (&b->stream); + memset (&b->stream, 0, sizeof (b->stream)); + b->ready = FALSE; + } +} + +static void +gst_bz2enc_compress_init (GstBz2enc * b) +{ + g_return_if_fail (GST_IS_BZ2ENC (b)); + + gst_bz2enc_compress_end (b); + b->offset = 0; + switch (BZ2_bzCompressInit (&b->stream, b->block_size, 0, 0)) { + case BZ_OK: + b->ready = TRUE; + return; + default: + b->ready = FALSE; + GST_ELEMENT_ERROR (b, CORE, FAILED, (NULL), + ("Failed to start compression.")); + return; + } +} + +static gboolean +gst_bz2enc_event (GstPad * pad, GstEvent * e) +{ + GstBz2enc *b; + gboolean ret; + + b = GST_BZ2ENC (gst_pad_get_parent (pad)); + switch (GST_EVENT_TYPE (e)) { + case GST_EVENT_EOS:{ + GstFlowReturn flow; + int r = BZ_FINISH_OK; + + do { + GstBuffer *out; + + flow = gst_pad_alloc_buffer (b->src, b->offset, b->buffer_size, + GST_PAD_CAPS (b->src), &out); + + if (flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (b, "pad alloc on EOS failed: %s", + gst_flow_get_name (flow)); + break; + } + + b->stream.next_out = (char *) GST_BUFFER_DATA (out); + b->stream.avail_out = GST_BUFFER_SIZE (out); + r = BZ2_bzCompress (&b->stream, BZ_FINISH); + if ((r != BZ_FINISH_OK) && (r != BZ_STREAM_END)) { + GST_ELEMENT_ERROR (b, STREAM, ENCODE, (NULL), + ("Failed to finish to compress (error code %i).", r)); + gst_buffer_unref (out); + break; + } + + if (b->stream.avail_out >= GST_BUFFER_SIZE (out)) { + gst_buffer_unref (out); + break; + } + + GST_BUFFER_SIZE (out) -= b->stream.avail_out; + GST_BUFFER_OFFSET (out) = + b->stream.total_out_lo32 - GST_BUFFER_SIZE (out); + + flow = gst_pad_push (b->src, out); + + if (flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (b, "push on EOS failed: %s", + gst_flow_get_name (flow)); + break; + } + } while (r != BZ_STREAM_END); + + ret = gst_pad_event_default (pad, e); + + if (r != BZ_STREAM_END || flow != GST_FLOW_OK) + ret = FALSE; + + gst_bz2enc_compress_init (b); + break; + } + default: + ret = gst_pad_event_default (pad, e); + break; + } + + gst_object_unref (b); + + return ret; +} + +static GstFlowReturn +gst_bz2enc_chain (GstPad * pad, GstBuffer * in) +{ + GstFlowReturn flow = GST_FLOW_OK; + GstBuffer *out; + GstBz2enc *b; + guint n; + int bz2_ret; + + b = GST_BZ2ENC (GST_PAD_PARENT (pad)); + + if (!b->ready) + goto not_ready; + + b->stream.next_in = (char *) GST_BUFFER_DATA (in); + b->stream.avail_in = GST_BUFFER_SIZE (in); + while (b->stream.avail_in) { + flow = gst_pad_alloc_buffer (b->src, b->offset, b->buffer_size, + GST_PAD_CAPS (pad), &out); + + if (flow != GST_FLOW_OK) { + gst_bz2enc_compress_init (b); + break; + } + + b->stream.next_out = (char *) GST_BUFFER_DATA (out); + b->stream.avail_out = GST_BUFFER_SIZE (out); + bz2_ret = BZ2_bzCompress (&b->stream, BZ_RUN); + if (bz2_ret != BZ_RUN_OK) + goto compress_error; + + if (b->stream.avail_out >= GST_BUFFER_SIZE (out)) { + gst_buffer_unref (out); + break; + } + + GST_BUFFER_SIZE (out) -= b->stream.avail_out; + GST_BUFFER_OFFSET (out) = b->stream.total_out_lo32 - GST_BUFFER_SIZE (out); + n = GST_BUFFER_SIZE (out); + + flow = gst_pad_push (b->src, out); + + if (flow != GST_FLOW_OK) + break; + + b->offset += n; + } + +done: + + gst_buffer_unref (in); + return flow; + +/* ERRORS */ +not_ready: + { + GST_ELEMENT_ERROR (b, LIBRARY, FAILED, (NULL), ("Compressor not ready.")); + flow = GST_FLOW_WRONG_STATE; + goto done; + } +compress_error: + { + GST_ELEMENT_ERROR (b, STREAM, ENCODE, (NULL), + ("Failed to compress data (error code %i)", bz2_ret)); + gst_bz2enc_compress_init (b); + gst_buffer_unref (out); + flow = GST_FLOW_ERROR; + goto done; + } +} + +static void +gst_bz2enc_init (GstBz2enc * b, GstBz2encClass * klass) +{ + b->sink = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_chain_function (b->sink, GST_DEBUG_FUNCPTR (gst_bz2enc_chain)); + gst_pad_set_event_function (b->sink, GST_DEBUG_FUNCPTR (gst_bz2enc_event)); + gst_element_add_pad (GST_ELEMENT (b), b->sink); + + b->src = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_set_caps (b->src, gst_static_pad_template_get_caps (&src_template)); + gst_pad_use_fixed_caps (b->src); + gst_element_add_pad (GST_ELEMENT (b), b->src); + + b->block_size = DEFAULT_BLOCK_SIZE; + b->buffer_size = DEFAULT_BUFFER_SIZE; + gst_bz2enc_compress_init (b); +} + +static void +gst_bz2enc_base_init (gpointer g_class) +{ + GstElementClass *ec = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (ec, + gst_static_pad_template_get (&sink_template)); + gst_element_class_add_pad_template (ec, + gst_static_pad_template_get (&src_template)); + gst_element_class_set_details_simple (ec, "BZ2 encoder", + "Codec/Encoder", "Compresses streams", + "Lutz Mueller "); +} + +static void +gst_bz2enc_finalize (GObject * object) +{ + GstBz2enc *b = GST_BZ2ENC (object); + + gst_bz2enc_compress_end (b); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_bz2enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstBz2enc *b = GST_BZ2ENC (object); + + switch (prop_id) { + case PROP_BLOCK_SIZE: + g_value_set_uint (value, b->block_size); + break; + case PROP_BUFFER_SIZE: + g_value_set_uint (value, b->buffer_size); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +gst_bz2enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstBz2enc *b = GST_BZ2ENC (object); + + switch (prop_id) { + case PROP_BLOCK_SIZE: + b->block_size = g_value_get_uint (value); + gst_bz2enc_compress_init (b); + break; + case PROP_BUFFER_SIZE: + b->buffer_size = g_value_get_uint (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } +} + +static void +gst_bz2enc_class_init (GstBz2encClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->finalize = gst_bz2enc_finalize; + gobject_class->set_property = gst_bz2enc_set_property; + gobject_class->get_property = gst_bz2enc_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BLOCK_SIZE, + g_param_spec_uint ("block-size", "Block size", "Block size", + 1, 9, DEFAULT_BLOCK_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BUFFER_SIZE, + g_param_spec_uint ("buffer-size", "Buffer size", "Buffer size", + 1, G_MAXUINT, DEFAULT_BUFFER_SIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + GST_DEBUG_CATEGORY_INIT (bz2enc_debug, "bz2enc", 0, "BZ2 compressor"); +} diff --git a/ext/bz2/gstbz2enc.h b/ext/bz2/gstbz2enc.h new file mode 100644 index 0000000..2b264e6 --- /dev/null +++ b/ext/bz2/gstbz2enc.h @@ -0,0 +1,39 @@ +/* GStreamer bz2 encoder + * Copyright (C) 2006 Lutz Müller + + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_BZ2ENC_H_ +#define __GST_BZ2ENC_H__ + +#include + +G_BEGIN_DECLS +#define GST_TYPE_BZ2ENC (gst_bz2enc_get_type()) +#define GST_BZ2ENC(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_BZ2ENC,GstBz2enc)) +#define GST_BZ2ENC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_BZ2ENC,GstBz2encClass)) +#define GST_IS_BZ2ENC(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_BZ2ENC)) +#define GST_IS_BZ2ENC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_BZ2ENC)) +typedef struct _GstBz2enc GstBz2enc; +typedef struct _GstBz2encClass GstBz2encClass; + +GType +gst_bz2enc_get_type (void) + G_GNUC_CONST; + +G_END_DECLS +#endif /* __GST_BZ2ENC_H__ */ diff --git a/ext/cdaudio/Makefile.am b/ext/cdaudio/Makefile.am new file mode 100644 index 0000000..999b5de --- /dev/null +++ b/ext/cdaudio/Makefile.am @@ -0,0 +1,8 @@ +plugin_LTLIBRARIES = libgstcdaudio.la + +libgstcdaudio_la_SOURCES = gstcdaudio.c +libgstcdaudio_la_CFLAGS = $(GST_CFLAGS) +libgstcdaudio_la_LIBADD = $(GST_LIBS) +libgstcdaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -lcdaudio +libgstcdaudio_la_LIBTOOLFLAGS = --tag=disable-static + diff --git a/ext/cdaudio/Makefile.in b/ext/cdaudio/Makefile.in new file mode 100644 index 0000000..bc439df --- /dev/null +++ b/ext/cdaudio/Makefile.in @@ -0,0 +1,850 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/cdaudio +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstcdaudio_la_DEPENDENCIES = $(am__DEPENDENCIES_1) +am_libgstcdaudio_la_OBJECTS = libgstcdaudio_la-gstcdaudio.lo +libgstcdaudio_la_OBJECTS = $(am_libgstcdaudio_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstcdaudio_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstcdaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstcdaudio_la_CFLAGS) $(CFLAGS) \ + $(libgstcdaudio_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstcdaudio_la_SOURCES) +DIST_SOURCES = $(libgstcdaudio_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstcdaudio.la +libgstcdaudio_la_SOURCES = gstcdaudio.c +libgstcdaudio_la_CFLAGS = $(GST_CFLAGS) +libgstcdaudio_la_LIBADD = $(GST_LIBS) +libgstcdaudio_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) -lcdaudio +libgstcdaudio_la_LIBTOOLFLAGS = --tag=disable-static +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/cdaudio/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/cdaudio/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstcdaudio.la: $(libgstcdaudio_la_OBJECTS) $(libgstcdaudio_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstcdaudio_la_LINK) -rpath $(plugindir) $(libgstcdaudio_la_OBJECTS) $(libgstcdaudio_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcdaudio_la-gstcdaudio.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstcdaudio_la-gstcdaudio.lo: gstcdaudio.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdaudio_la_CFLAGS) $(CFLAGS) -MT libgstcdaudio_la-gstcdaudio.lo -MD -MP -MF $(DEPDIR)/libgstcdaudio_la-gstcdaudio.Tpo -c -o libgstcdaudio_la-gstcdaudio.lo `test -f 'gstcdaudio.c' || echo '$(srcdir)/'`gstcdaudio.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcdaudio_la-gstcdaudio.Tpo $(DEPDIR)/libgstcdaudio_la-gstcdaudio.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcdaudio.c' object='libgstcdaudio_la-gstcdaudio.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcdaudio_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcdaudio_la_CFLAGS) $(CFLAGS) -c -o libgstcdaudio_la-gstcdaudio.lo `test -f 'gstcdaudio.c' || echo '$(srcdir)/'`gstcdaudio.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/cdaudio/gstcdaudio.c b/ext/cdaudio/gstcdaudio.c new file mode 100644 index 0000000..f1f0fb4 --- /dev/null +++ b/ext/cdaudio/gstcdaudio.c @@ -0,0 +1,655 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * <2006> Wim Taymans + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include + +#include + +GST_DEBUG_CATEGORY_STATIC (gst_cdaudio_debug); +#define GST_CAT_DEFAULT gst_cdaudio_debug + +#define GST_TYPE_CDAUDIO (gst_cdaudio_get_type()) +#define GST_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CDAUDIO,GstCDAudio)) +#define GST_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CDAUDIO,GstCDAudioClass)) +#define GST_IS_CDAUDIO(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CDAUDIO)) +#define GST_IS_CDAUDIO_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CDAUDIO)) + +typedef struct _GstCDAudio GstCDAudio; +typedef struct _GstCDAudioClass GstCDAudioClass; + +struct _GstCDAudio +{ + GstElement parent; + + /* properties */ + gchar *device; + gchar *uri; + + gint cd_desc; + gulong discid; + + gboolean was_playing; + + struct disc_info info; + struct disc_volume volume; + + GTimer *timer; +}; + +struct _GstCDAudioClass +{ + GstElementClass parent_class; + + void (*close_tray) (GstElement * element); + /* signal callbacks */ + void (*track_change) (GstElement * element, guint track); +}; + +#define DEFAULT_DEVICE "/dev/cdrom" +#define DEFAULT_VOLUME_FR 255 +#define DEFAULT_VOLUME_FL 255 +#define DEFAULT_VOLUME_BR 255 +#define DEFAULT_VOLUME_BL 255 + +/* props */ +enum +{ + PROP_0, + PROP_DEVICE, + PROP_VOLUME_FR, + PROP_VOLUME_FL, + PROP_VOLUME_BR, + PROP_VOLUME_BL, + PROP_LAST +}; + +/* signals */ +enum +{ + TRACK_CHANGE, + LAST_SIGNAL +}; + +static void gst_cdaudio_finalize (GObject * object); + +static void gst_cdaudio_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * spec); +static void gst_cdaudio_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * spec); +static GstStateChangeReturn gst_cdaudio_change_state (GstElement * element, + GstStateChange transition); + +static const GstQueryType *gst_cdaudio_get_query_types (GstElement * element); +static gboolean gst_cdaudio_query (GstElement * element, GstQuery * query); + +static gboolean gst_cdaudio_send_event (GstElement * element, GstEvent * event); + +static void cdaudio_uri_handler_init (gpointer g_iface, gpointer iface_data); + +static GstFormat track_format; +static GstFormat sector_format; + +static GstElementClass *parent_class; +static guint gst_cdaudio_signals[LAST_SIGNAL] = { 0 }; + +static void +_do_init (GType cdaudio_type) +{ + static const GInterfaceInfo urihandler_info = { + cdaudio_uri_handler_init, + NULL, + NULL, + }; + + g_type_add_interface_static (cdaudio_type, GST_TYPE_URI_HANDLER, + &urihandler_info); +} + +GType gst_cdaudio_get_type (void); +GST_BOILERPLATE_FULL (GstCDAudio, gst_cdaudio, GstElement, GST_TYPE_ELEMENT, + _do_init); + +static void +gst_cdaudio_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "CD player", + "Generic/Bin", + "Play CD audio through the CD Drive", "Wim Taymans "); + + /* Register the track and sector format */ + track_format = gst_format_register ("track", "CD track"); + sector_format = gst_format_register ("sector", "CD sector"); +} + +static void +gst_cdaudio_class_init (GstCDAudioClass * klass) +{ + GObjectClass *gobject_klass; + GstElementClass *gstelement_klass; + + gobject_klass = (GObjectClass *) klass; + gstelement_klass = (GstElementClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_klass->set_property = gst_cdaudio_set_property; + gobject_klass->get_property = gst_cdaudio_get_property; + + g_object_class_install_property (gobject_klass, PROP_DEVICE, + g_param_spec_string ("device", "Device", "CDROM device", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_VOLUME_FL, + g_param_spec_int ("volume-fl", "Volume fl", "Front left volume", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_VOLUME_FR, + g_param_spec_int ("volume-fr", "Volume fr", "Front right volume", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_VOLUME_BL, + g_param_spec_int ("volume-bl", "Volume bl", "Back left volume", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_klass, PROP_VOLUME_BR, + g_param_spec_int ("volume-br", "Volume br", "Back right volume", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gst_cdaudio_signals[TRACK_CHANGE] = + g_signal_new ("track-change", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, G_STRUCT_OFFSET (GstCDAudioClass, track_change), NULL, + NULL, gst_marshal_VOID__INT, G_TYPE_NONE, 1, G_TYPE_INT); + + gobject_klass->finalize = GST_DEBUG_FUNCPTR (gst_cdaudio_finalize); + + gstelement_klass->change_state = GST_DEBUG_FUNCPTR (gst_cdaudio_change_state); + gstelement_klass->send_event = GST_DEBUG_FUNCPTR (gst_cdaudio_send_event); + gstelement_klass->get_query_types = + GST_DEBUG_FUNCPTR (gst_cdaudio_get_query_types); + gstelement_klass->query = GST_DEBUG_FUNCPTR (gst_cdaudio_query); + + GST_DEBUG_CATEGORY_INIT (gst_cdaudio_debug, "cdaudio", 0, "CDAudio Element"); +} + +static void +gst_cdaudio_init (GstCDAudio * cdaudio, GstCDAudioClass * g_class) +{ + cdaudio->device = g_strdup (DEFAULT_DEVICE); + cdaudio->volume.vol_front.right = DEFAULT_VOLUME_FR; + cdaudio->volume.vol_front.left = DEFAULT_VOLUME_FL; + cdaudio->volume.vol_back.right = DEFAULT_VOLUME_BR; + cdaudio->volume.vol_back.left = DEFAULT_VOLUME_BL; + + cdaudio->was_playing = FALSE; + cdaudio->timer = g_timer_new (); + + GST_OBJECT_FLAG_SET (cdaudio, GST_ELEMENT_IS_SINK); +} + +static void +gst_cdaudio_finalize (GObject * object) +{ + GstCDAudio *cdaudio = GST_CDAUDIO (object); + + g_timer_destroy (cdaudio->timer); + g_free (cdaudio->device); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_cdaudio_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * spec) +{ + GstCDAudio *cdaudio; + + cdaudio = GST_CDAUDIO (object); + + switch (prop_id) { + case PROP_DEVICE: + g_free (cdaudio->device); + cdaudio->device = g_value_dup_string (value); + break; + case PROP_VOLUME_FR: + cdaudio->volume.vol_front.right = g_value_get_int (value); + break; + case PROP_VOLUME_FL: + cdaudio->volume.vol_front.left = g_value_get_int (value); + break; + case PROP_VOLUME_BR: + cdaudio->volume.vol_back.right = g_value_get_int (value); + break; + case PROP_VOLUME_BL: + cdaudio->volume.vol_back.left = g_value_get_int (value); + break; + default: + break; + } +} + +static void +gst_cdaudio_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * spec) +{ + GstCDAudio *cdaudio; + + cdaudio = GST_CDAUDIO (object); + + switch (prop_id) { + case PROP_DEVICE: + g_value_set_string (value, cdaudio->device); + break; + case PROP_VOLUME_FR: + g_value_set_int (value, cdaudio->volume.vol_front.right); + break; + case PROP_VOLUME_FL: + g_value_set_int (value, cdaudio->volume.vol_front.left); + break; + case PROP_VOLUME_BR: + g_value_set_int (value, cdaudio->volume.vol_back.right); + break; + case PROP_VOLUME_BL: + g_value_set_int (value, cdaudio->volume.vol_back.left); + break; + default: + break; + } +} + +static void +debug_track_info (GstCDAudio * cdaudio) +{ + gint i; + + for (i = 0; i < cdaudio->info.disc_total_tracks; i++) { + GST_DEBUG_OBJECT (cdaudio, "%d %d %d %d:%02d", i, + cdaudio->info.disc_track[i].track_length.frames, + cdaudio->info.disc_track[i].track_pos.frames, + cdaudio->info.disc_track[i].track_length.minutes, + cdaudio->info.disc_track[i].track_length.seconds); + } +} + +static GstStateChangeReturn +gst_cdaudio_change_state (GstElement * element, GstStateChange transition) +{ + GstCDAudio *cdaudio; + GstStateChangeReturn ret; + gint res; + + cdaudio = GST_CDAUDIO (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + if ((res = cd_init_device (cdaudio->device)) < 0) + goto init_failed; + + cdaudio->cd_desc = res; + + /* close tray */ + if ((res = cd_close (cdaudio->cd_desc)) < 0) + goto close_failed; + + if ((res = cd_stat (cdaudio->cd_desc, &cdaudio->info)) < 0) { + /* we just give a warning here */ + GST_ELEMENT_WARNING (cdaudio, LIBRARY, INIT, + ("Could not retrieve CD track info."), (NULL)); + } else { + debug_track_info (cdaudio); + cdaudio->discid = cddb_discid (cdaudio->cd_desc); + /* FIXME, post message with discid */ + } + cdaudio->was_playing = FALSE; + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + { + if (cdaudio->was_playing) + res = cd_resume (cdaudio->cd_desc); + else + res = cd_play (cdaudio->cd_desc, 1); + + if (res < 0) + goto play_failed; + + cdaudio->was_playing = TRUE; + g_timer_start (cdaudio->timer); + break; + } + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + if ((res = cd_pause (cdaudio->cd_desc)) < 0) + goto pause_failed; + g_timer_stop (cdaudio->timer); + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + if ((res = cd_stop (cdaudio->cd_desc)) < 0) + goto stop_failed; + if ((res = cd_finish (cdaudio->cd_desc)) < 0) + goto finish_failed; + cdaudio->cd_desc = -1; + break; + case GST_STATE_CHANGE_READY_TO_NULL: + break; + default: + break; + } + return ret; + + /* ERRORS */ +init_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not init CD device %s. (%d)", cdaudio->device, res), (NULL)); + cdaudio->cd_desc = -1; + return GST_STATE_CHANGE_FAILURE; + } +close_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not close CD tray for device %s. (%d)", cdaudio->device, res), + (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +play_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not play CD device %s. (%d)", cdaudio->device, res), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +pause_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not pause CD device %s. (%d)", cdaudio->device, res), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +stop_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not stop CD device %s. (%d)", cdaudio->device, res), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +finish_failed: + { + GST_ELEMENT_ERROR (cdaudio, LIBRARY, INIT, + ("Could not finish CD device %s. (%d)", cdaudio->device, res), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +} + +static gboolean +gst_cdaudio_send_event (GstElement * element, GstEvent * event) +{ + GstCDAudio *cdaudio; + gboolean res = TRUE; + + cdaudio = GST_CDAUDIO (element); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + { + gdouble rate; + GstFormat format; + GstSeekFlags flags; + GstSeekType start_type, stop_type; + gint64 start, stop; + gint ret; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + /* FIXME, implement more formats */ + if (format != GST_FORMAT_TIME) + goto wrong_format; + + if (rate != 1.0) + goto wrong_rate; + + if (start_type != GST_SEEK_TYPE_SET) + goto unsupported; + + ret = cd_play_pos (cdaudio->cd_desc, 1, start / GST_SECOND); + if (ret < 0) + goto seek_failed; + } + default: + res = FALSE; + break; + } + +done: + gst_event_unref (event); + + return res; + + /* ERRORS */ +wrong_format: + { + GST_DEBUG_OBJECT (cdaudio, "only seek in TIME is supported"); + res = FALSE; + goto done; + } +wrong_rate: + { + GST_DEBUG_OBJECT (cdaudio, "only seek with 1.0 rate is supported"); + res = FALSE; + goto done; + } +unsupported: + { + GST_DEBUG_OBJECT (cdaudio, "only seek SET is supported"); + res = FALSE; + goto done; + } +seek_failed: + { + GST_DEBUG_OBJECT (cdaudio, "seek failed"); + res = FALSE; + goto done; + } +} + +static const GstQueryType * +gst_cdaudio_get_query_types (GstElement * element) +{ + static const GstQueryType query_types[] = { + GST_QUERY_DURATION, + GST_QUERY_POSITION, + 0 + }; + + return query_types; +} + +static gboolean +gst_cdaudio_query (GstElement * element, GstQuery * query) +{ + GstCDAudio *cdaudio; + gboolean res = TRUE; + gulong micros; + gdouble seconds; + + cdaudio = GST_CDAUDIO (element); + + GST_LOG_OBJECT (element, "handling %s query", + gst_query_type_get_name (GST_QUERY_TYPE (query))); + + /* take new snapshot every 1000 miliseconds */ + seconds = g_timer_elapsed (cdaudio->timer, µs); + if (micros > 1000 || seconds > 1) { + cd_stat (cdaudio->cd_desc, &cdaudio->info); + g_timer_start (cdaudio->timer); + } + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_DURATION: + { + GstFormat dest_format; + gint64 dest_val; + + gst_query_parse_duration (query, &dest_format, NULL); + + switch (dest_format) { + case GST_FORMAT_TIME: + dest_val = (cdaudio->info.disc_length.minutes * 60 + + cdaudio->info.disc_length.seconds) * GST_SECOND; + break; + default: + { + if (dest_format == track_format) { + dest_val = cdaudio->info.disc_total_tracks; + } else { + res = FALSE; + } + break; + } + } + if (res) + gst_query_set_duration (query, dest_format, dest_val); + break; + } + case GST_QUERY_POSITION: + { + GstFormat dest_format; + gint64 dest_val; + + gst_query_parse_position (query, &dest_format, NULL); + + switch (dest_format) { + case GST_FORMAT_TIME: + dest_val = (cdaudio->info.disc_time.minutes * 60 + + cdaudio->info.disc_time.seconds) * GST_SECOND; + break; + default: + { + if (dest_format == track_format) { + dest_val = cdaudio->info.disc_current_track; + } else { + res = FALSE; + } + break; + } + } + if (res) + gst_query_set_position (query, dest_format, dest_val); + break; + } + default: + res = FALSE; + break; + } + return res; +} + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "cdaudio", GST_RANK_NONE, + GST_TYPE_CDAUDIO)) + return FALSE; + + return TRUE; +} + +/*** GSTURIHANDLER INTERFACE *************************************************/ + +static guint +cdaudio_uri_get_type (void) +{ + return GST_URI_SRC; +} + +static gchar ** +cdaudio_uri_get_protocols (void) +{ + static gchar *protocols[] = { (char *) "cd", NULL }; + + return protocols; +} + +static const gchar * +cdaudio_uri_get_uri (GstURIHandler * handler) +{ + GstCDAudio *cdaudio = GST_CDAUDIO (handler); + + return cdaudio->uri; +} + +static gboolean +cdaudio_uri_set_uri (GstURIHandler * handler, const gchar * uri) +{ + gchar *protocol, *location; + gboolean ret; + + ret = TRUE; + + //GstCDAudio *cdaudio = GST_CDAUDIO(handler); + + protocol = gst_uri_get_protocol (uri); + if (strcmp (protocol, "cd") != 0) + goto wrong_protocol; + + g_free (protocol); + + location = gst_uri_get_location (uri); + /* + cdaudio->uri_track = strtol(location,NULL,10); + if (cdaudio->uri_track > 0) { + cdaudio->seek_request = cdaudio->uri_track; + } + */ + g_free (location); + + return ret; + + /* ERRORS */ +wrong_protocol: + { + g_free (protocol); + return FALSE; + } +} + +static void +cdaudio_uri_handler_init (gpointer g_iface, gpointer iface_data) +{ + GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; + + iface->get_type = cdaudio_uri_get_type; + iface->get_protocols = cdaudio_uri_get_protocols; + iface->get_uri = cdaudio_uri_get_uri; + iface->set_uri = cdaudio_uri_set_uri; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "cdaudio", + "Play CD audio through the CD Drive", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/celt/Makefile.am b/ext/celt/Makefile.am new file mode 100644 index 0000000..38119d8 --- /dev/null +++ b/ext/celt/Makefile.am @@ -0,0 +1,16 @@ +plugin_LTLIBRARIES = libgstcelt.la + +libgstcelt_la_SOURCES = gstcelt.c gstceltdec.c gstceltenc.c +libgstcelt_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(CELT_CFLAGS) +libgstcelt_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(CELT_LIBS) +libgstcelt_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstcelt_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstceltenc.h gstceltdec.h diff --git a/ext/celt/Makefile.in b/ext/celt/Makefile.in new file mode 100644 index 0000000..a3a3859 --- /dev/null +++ b/ext/celt/Makefile.in @@ -0,0 +1,884 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/celt +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstcelt_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstcelt_la_OBJECTS = libgstcelt_la-gstcelt.lo \ + libgstcelt_la-gstceltdec.lo libgstcelt_la-gstceltenc.lo +libgstcelt_la_OBJECTS = $(am_libgstcelt_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstcelt_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstcelt_la_CFLAGS) $(CFLAGS) \ + $(libgstcelt_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstcelt_la_SOURCES) +DIST_SOURCES = $(libgstcelt_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstcelt.la +libgstcelt_la_SOURCES = gstcelt.c gstceltdec.c gstceltenc.c +libgstcelt_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(CELT_CFLAGS) + +libgstcelt_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgsttag-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(CELT_LIBS) + +libgstcelt_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstcelt_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstceltenc.h gstceltdec.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/celt/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/celt/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstcelt.la: $(libgstcelt_la_OBJECTS) $(libgstcelt_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstcelt_la_LINK) -rpath $(plugindir) $(libgstcelt_la_OBJECTS) $(libgstcelt_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcelt_la-gstcelt.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcelt_la-gstceltdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcelt_la-gstceltenc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstcelt_la-gstcelt.lo: gstcelt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -MT libgstcelt_la-gstcelt.lo -MD -MP -MF $(DEPDIR)/libgstcelt_la-gstcelt.Tpo -c -o libgstcelt_la-gstcelt.lo `test -f 'gstcelt.c' || echo '$(srcdir)/'`gstcelt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcelt_la-gstcelt.Tpo $(DEPDIR)/libgstcelt_la-gstcelt.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcelt.c' object='libgstcelt_la-gstcelt.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -c -o libgstcelt_la-gstcelt.lo `test -f 'gstcelt.c' || echo '$(srcdir)/'`gstcelt.c + +libgstcelt_la-gstceltdec.lo: gstceltdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -MT libgstcelt_la-gstceltdec.lo -MD -MP -MF $(DEPDIR)/libgstcelt_la-gstceltdec.Tpo -c -o libgstcelt_la-gstceltdec.lo `test -f 'gstceltdec.c' || echo '$(srcdir)/'`gstceltdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcelt_la-gstceltdec.Tpo $(DEPDIR)/libgstcelt_la-gstceltdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstceltdec.c' object='libgstcelt_la-gstceltdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -c -o libgstcelt_la-gstceltdec.lo `test -f 'gstceltdec.c' || echo '$(srcdir)/'`gstceltdec.c + +libgstcelt_la-gstceltenc.lo: gstceltenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -MT libgstcelt_la-gstceltenc.lo -MD -MP -MF $(DEPDIR)/libgstcelt_la-gstceltenc.Tpo -c -o libgstcelt_la-gstceltenc.lo `test -f 'gstceltenc.c' || echo '$(srcdir)/'`gstceltenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcelt_la-gstceltenc.Tpo $(DEPDIR)/libgstcelt_la-gstceltenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstceltenc.c' object='libgstcelt_la-gstceltenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcelt_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcelt_la_CFLAGS) $(CFLAGS) -c -o libgstcelt_la-gstceltenc.lo `test -f 'gstceltenc.c' || echo '$(srcdir)/'`gstceltenc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/celt/gstcelt.c b/ext/celt/gstcelt.c new file mode 100644 index 0000000..24b7d3e --- /dev/null +++ b/ext/celt/gstcelt.c @@ -0,0 +1,50 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gstceltdec.h" +#include "gstceltenc.h" + +#include + +static gboolean +plugin_init (GstPlugin * plugin) +{ + + if (!gst_element_register (plugin, "celtenc", GST_RANK_NONE, + GST_TYPE_CELT_ENC)) + return FALSE; + + if (!gst_element_register (plugin, "celtdec", GST_RANK_PRIMARY, + GST_TYPE_CELT_DEC)) + return FALSE; + + gst_tag_register_musicbrainz_tags (); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "celt", + "CELT plugin library", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/celt/gstceltdec.c b/ext/celt/gstceltdec.c new file mode 100644 index 0000000..e27c6a5 --- /dev/null +++ b/ext/celt/gstceltdec.c @@ -0,0 +1,906 @@ +/* GStreamer + * Copyright (C) 2004 Wim Taymans + * Copyright (C) 2006 Tim-Philipp Müller + * Copyright (C) 2008 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Based on the speexdec element. + */ + +/** + * SECTION:element-celtdec + * @see_also: celtenc, oggdemux + * + * This element decodes a CELT stream to raw integer audio. + * + * + * Example pipelines + * |[ + * gst-launch -v filesrc location=celt.ogg ! oggdemux ! celtdec ! audioconvert ! audioresample ! alsasink + * ]| Decode an Ogg/Celt file. To create an Ogg/Celt file refer to the documentation of celtenc. + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstceltdec.h" +#include +#include + +GST_DEBUG_CATEGORY_STATIC (celtdec_debug); +#define GST_CAT_DEFAULT celtdec_debug + +#define DEC_MAX_FRAME_SIZE 2000 + +static GstStaticPadTemplate celt_dec_src_factory = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "rate = (int) [ 32000, 64000 ], " + "channels = (int) [ 1, 2 ], " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " "width = (int) 16, " "depth = (int) 16") + ); + +static GstStaticPadTemplate celt_dec_sink_factory = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-celt") + ); + +GST_BOILERPLATE (GstCeltDec, gst_celt_dec, GstElement, GST_TYPE_ELEMENT); + +static gboolean celt_dec_sink_event (GstPad * pad, GstEvent * event); +static GstFlowReturn celt_dec_chain (GstPad * pad, GstBuffer * buf); +static gboolean celt_dec_sink_setcaps (GstPad * pad, GstCaps * caps); +static GstStateChangeReturn celt_dec_change_state (GstElement * element, + GstStateChange transition); + +static gboolean celt_dec_src_event (GstPad * pad, GstEvent * event); +static gboolean celt_dec_src_query (GstPad * pad, GstQuery * query); +static gboolean celt_dec_sink_query (GstPad * pad, GstQuery * query); +static const GstQueryType *celt_get_src_query_types (GstPad * pad); +static const GstQueryType *celt_get_sink_query_types (GstPad * pad); +static gboolean celt_dec_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value); + +static GstFlowReturn celt_dec_chain_parse_data (GstCeltDec * dec, + GstBuffer * buf, GstClockTime timestamp, GstClockTime duration); +static GstFlowReturn celt_dec_chain_parse_header (GstCeltDec * dec, + GstBuffer * buf); +static GstFlowReturn celt_dec_chain_parse_comments (GstCeltDec * dec, + GstBuffer * buf); + +static void +gst_celt_dec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&celt_dec_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&celt_dec_sink_factory)); + gst_element_class_set_details_simple (element_class, "Celt audio decoder", + "Codec/Decoder/Audio", + "decode celt streams to audio", + "Sebastian Dröge "); +} + +static void +gst_celt_dec_class_init (GstCeltDecClass * klass) +{ + GstElementClass *gstelement_class; + + gstelement_class = (GstElementClass *) klass; + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (celt_dec_change_state); + + GST_DEBUG_CATEGORY_INIT (celtdec_debug, "celtdec", 0, + "celt decoding element"); +} + +static void +gst_celt_dec_reset (GstCeltDec * dec) +{ + gst_segment_init (&dec->segment, GST_FORMAT_UNDEFINED); + dec->granulepos = -1; + dec->packetno = 0; + dec->frame_size = 0; + dec->frame_duration = 0; + if (dec->state) { + celt_decoder_destroy (dec->state); + dec->state = NULL; + } + + if (dec->mode) { + celt_mode_destroy (dec->mode); + dec->mode = NULL; + } + + gst_buffer_replace (&dec->streamheader, NULL); + gst_buffer_replace (&dec->vorbiscomment, NULL); + g_list_foreach (dec->extra_headers, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->extra_headers); + dec->extra_headers = NULL; + + memset (&dec->header, 0, sizeof (dec->header)); +} + +static void +gst_celt_dec_init (GstCeltDec * dec, GstCeltDecClass * g_class) +{ + dec->sinkpad = + gst_pad_new_from_static_template (&celt_dec_sink_factory, "sink"); + gst_pad_set_chain_function (dec->sinkpad, GST_DEBUG_FUNCPTR (celt_dec_chain)); + gst_pad_set_event_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (celt_dec_sink_event)); + gst_pad_set_query_type_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (celt_get_sink_query_types)); + gst_pad_set_query_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (celt_dec_sink_query)); + gst_pad_set_setcaps_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (celt_dec_sink_setcaps)); + gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); + + dec->srcpad = gst_pad_new_from_static_template (&celt_dec_src_factory, "src"); + gst_pad_use_fixed_caps (dec->srcpad); + gst_pad_set_event_function (dec->srcpad, + GST_DEBUG_FUNCPTR (celt_dec_src_event)); + gst_pad_set_query_type_function (dec->srcpad, + GST_DEBUG_FUNCPTR (celt_get_src_query_types)); + gst_pad_set_query_function (dec->srcpad, + GST_DEBUG_FUNCPTR (celt_dec_src_query)); + gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); + + gst_celt_dec_reset (dec); +} + +static gboolean +celt_dec_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstCeltDec *dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + gboolean ret = TRUE; + GstStructure *s; + const GValue *streamheader; + + s = gst_caps_get_structure (caps, 0); + if ((streamheader = gst_structure_get_value (s, "streamheader")) && + G_VALUE_HOLDS (streamheader, GST_TYPE_ARRAY) && + gst_value_array_get_size (streamheader) >= 2) { + const GValue *header, *vorbiscomment; + GstBuffer *buf; + GstFlowReturn res = GST_FLOW_OK; + + header = gst_value_array_get_value (streamheader, 0); + if (header && G_VALUE_HOLDS (header, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (header); + res = celt_dec_chain_parse_header (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->streamheader, buf); + } + + vorbiscomment = gst_value_array_get_value (streamheader, 1); + if (vorbiscomment && G_VALUE_HOLDS (vorbiscomment, GST_TYPE_BUFFER)) { + buf = gst_value_get_buffer (vorbiscomment); + res = celt_dec_chain_parse_comments (dec, buf); + if (res != GST_FLOW_OK) + goto done; + gst_buffer_replace (&dec->vorbiscomment, buf); + } + + g_list_foreach (dec->extra_headers, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->extra_headers); + dec->extra_headers = NULL; + + if (gst_value_array_get_size (streamheader) > 2) { + gint i, n; + + n = gst_value_array_get_size (streamheader); + for (i = 2; i < n; i++) { + header = gst_value_array_get_value (streamheader, i); + buf = gst_value_get_buffer (header); + dec->extra_headers = + g_list_prepend (dec->extra_headers, gst_buffer_ref (buf)); + } + } + } + +done: + gst_object_unref (dec); + return ret; +} + +static gboolean +celt_dec_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + GstCeltDec *dec; + guint64 scale = 1; + + dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + if (dec->packetno < 1) { + res = FALSE; + goto cleanup; + } + + if (src_format == *dest_format) { + *dest_value = src_value; + res = TRUE; + goto cleanup; + } + + if (pad == dec->sinkpad && + (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES)) { + res = FALSE; + goto cleanup; + } + + switch (src_format) { + case GST_FORMAT_TIME: + switch (*dest_format) { + case GST_FORMAT_BYTES: + scale = sizeof (gint16) * dec->header.nb_channels; + case GST_FORMAT_DEFAULT: + *dest_value = + gst_util_uint64_scale_int (scale * src_value, + dec->header.sample_rate, GST_SECOND); + break; + default: + res = FALSE; + break; + } + break; + case GST_FORMAT_DEFAULT: + switch (*dest_format) { + case GST_FORMAT_BYTES: + *dest_value = src_value * sizeof (gint16) * dec->header.nb_channels; + break; + case GST_FORMAT_TIME: + *dest_value = + gst_util_uint64_scale_int (src_value, GST_SECOND, + dec->header.sample_rate); + break; + default: + res = FALSE; + break; + } + break; + case GST_FORMAT_BYTES: + switch (*dest_format) { + case GST_FORMAT_DEFAULT: + *dest_value = src_value / (sizeof (gint16) * dec->header.nb_channels); + break; + case GST_FORMAT_TIME: + *dest_value = gst_util_uint64_scale_int (src_value, GST_SECOND, + dec->header.sample_rate * sizeof (gint16) * + dec->header.nb_channels); + break; + default: + res = FALSE; + break; + } + break; + default: + res = FALSE; + break; + } + +cleanup: + gst_object_unref (dec); + return res; +} + +static const GstQueryType * +celt_get_sink_query_types (GstPad * pad) +{ + static const GstQueryType celt_dec_sink_query_types[] = { + GST_QUERY_CONVERT, + 0 + }; + + return celt_dec_sink_query_types; +} + +static gboolean +celt_dec_sink_query (GstPad * pad, GstQuery * query) +{ + GstCeltDec *dec; + gboolean res; + + dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + res = celt_dec_convert (pad, src_fmt, src_val, &dest_fmt, &dest_val); + if (res) { + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + } + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + + gst_object_unref (dec); + return res; +} + +static const GstQueryType * +celt_get_src_query_types (GstPad * pad) +{ + static const GstQueryType celt_dec_src_query_types[] = { + GST_QUERY_POSITION, + GST_QUERY_DURATION, + 0 + }; + + return celt_dec_src_query_types; +} + +static gboolean +celt_dec_src_query (GstPad * pad, GstQuery * query) +{ + GstCeltDec *dec; + gboolean res = FALSE; + + dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION:{ + GstSegment segment; + GstFormat format; + gint64 cur; + + gst_query_parse_position (query, &format, NULL); + + GST_PAD_STREAM_LOCK (dec->sinkpad); + segment = dec->segment; + GST_PAD_STREAM_UNLOCK (dec->sinkpad); + + if (segment.format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (dec, "segment not initialised yet"); + break; + } + + if ((res = celt_dec_convert (dec->srcpad, GST_FORMAT_TIME, + segment.last_stop, &format, &cur))) { + gst_query_set_position (query, format, cur); + } + break; + } + case GST_QUERY_DURATION:{ + GstFormat format = GST_FORMAT_TIME; + gint64 dur; + + /* get duration from demuxer */ + if (!gst_pad_query_peer_duration (dec->sinkpad, &format, &dur)) + break; + + gst_query_parse_duration (query, &format, NULL); + + /* and convert it into the requested format */ + if ((res = celt_dec_convert (dec->srcpad, GST_FORMAT_TIME, + dur, &format, &dur))) { + gst_query_set_duration (query, format, dur); + } + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + + gst_object_unref (dec); + return res; +} + +static gboolean +celt_dec_src_event (GstPad * pad, GstEvent * event) +{ + gboolean res = FALSE; + GstCeltDec *dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (dec, "handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK:{ + GstFormat format, tformat; + gdouble rate; + GstEvent *real_seek; + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + gint64 cur, stop; + gint64 tcur, tstop; + + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); + + /* we have to ask our peer to seek to time here as we know + * nothing about how to generate a granulepos from the src + * formats or anything. + * + * First bring the requested format to time + */ + tformat = GST_FORMAT_TIME; + if (!(res = celt_dec_convert (pad, format, cur, &tformat, &tcur))) + break; + if (!(res = celt_dec_convert (pad, format, stop, &tformat, &tstop))) + break; + + /* then seek with time on the peer */ + real_seek = gst_event_new_seek (rate, GST_FORMAT_TIME, + flags, cur_type, tcur, stop_type, tstop); + + GST_LOG_OBJECT (dec, "seek to %" GST_TIME_FORMAT, GST_TIME_ARGS (tcur)); + + res = gst_pad_push_event (dec->sinkpad, real_seek); + gst_event_unref (event); + break; + } + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (dec); + return res; +} + +static gboolean +celt_dec_sink_event (GstPad * pad, GstEvent * event) +{ + GstCeltDec *dec; + gboolean ret = FALSE; + + dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (dec, "handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT:{ + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time; + gboolean update; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + + if (format != GST_FORMAT_TIME) + goto newseg_wrong_format; + + if (rate <= 0.0) + goto newseg_wrong_rate; + + if (update) { + /* time progressed without data, see if we can fill the gap with + * some concealment data */ + if (dec->segment.last_stop < start) { + GstClockTime duration; + + duration = start - dec->segment.last_stop; + celt_dec_chain_parse_data (dec, NULL, dec->segment.last_stop, + duration); + } + } + + /* now configure the values */ + gst_segment_set_newsegment_full (&dec->segment, update, + rate, arate, GST_FORMAT_TIME, start, stop, time); + + dec->granulepos = -1; + + GST_DEBUG_OBJECT (dec, "segment now: cur = %" GST_TIME_FORMAT " [%" + GST_TIME_FORMAT " - %" GST_TIME_FORMAT "]", + GST_TIME_ARGS (dec->segment.last_stop), + GST_TIME_ARGS (dec->segment.start), + GST_TIME_ARGS (dec->segment.stop)); + + ret = gst_pad_push_event (dec->srcpad, event); + break; + } + default: + ret = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (dec); + return ret; + + /* ERRORS */ +newseg_wrong_format: + { + GST_DEBUG_OBJECT (dec, "received non TIME newsegment"); + gst_object_unref (dec); + return FALSE; + } +newseg_wrong_rate: + { + GST_DEBUG_OBJECT (dec, "negative rates not supported yet"); + gst_object_unref (dec); + return FALSE; + } +} + +static GstFlowReturn +celt_dec_chain_parse_header (GstCeltDec * dec, GstBuffer * buf) +{ + GstCaps *caps; + gint error = CELT_OK; + + /* get the header */ + celt_header_from_packet ((const unsigned char *) GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf), &dec->header); + + if (memcmp (dec->header.codec_id, "CELT ", 8) != 0) + goto invalid_header; + +#ifdef HAVE_CELT_0_7 + dec->mode = + celt_mode_create (dec->header.sample_rate, + dec->header.frame_size, &error); +#else + dec->mode = + celt_mode_create (dec->header.sample_rate, dec->header.nb_channels, + dec->header.frame_size, &error); +#endif + if (!dec->mode) + goto mode_init_failed; + + /* initialize the decoder */ +#ifdef HAVE_CELT_0_11 + dec->state = + celt_decoder_create_custom (dec->mode, dec->header.nb_channels, &error); +#else +#ifdef HAVE_CELT_0_7 + dec->state = celt_decoder_create (dec->mode, dec->header.nb_channels, &error); +#else + dec->state = celt_decoder_create (dec->mode); +#endif +#endif + if (!dec->state) + goto init_failed; + +#ifdef HAVE_CELT_0_8 + dec->frame_size = dec->header.frame_size; +#else + celt_mode_info (dec->mode, CELT_GET_FRAME_SIZE, &dec->frame_size); +#endif + + dec->frame_duration = gst_util_uint64_scale_int (dec->frame_size, + GST_SECOND, dec->header.sample_rate); + + /* set caps */ + caps = gst_caps_new_simple ("audio/x-raw-int", + "rate", G_TYPE_INT, dec->header.sample_rate, + "channels", G_TYPE_INT, dec->header.nb_channels, + "signed", G_TYPE_BOOLEAN, TRUE, + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "width", G_TYPE_INT, 16, "depth", G_TYPE_INT, 16, NULL); + + GST_DEBUG_OBJECT (dec, "rate=%d channels=%d frame-size=%d", + dec->header.sample_rate, dec->header.nb_channels, dec->frame_size); + + if (!gst_pad_set_caps (dec->srcpad, caps)) + goto nego_failed; + + gst_caps_unref (caps); + return GST_FLOW_OK; + + /* ERRORS */ +invalid_header: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("Invalid header")); + return GST_FLOW_ERROR; + } +mode_init_failed: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("Mode initialization failed: %d", error)); + return GST_FLOW_ERROR; + } +init_failed: + { +#ifdef HAVE_CELT_0_7 + GST_ELEMENT_ERROR (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("couldn't initialize decoder: %d", error)); +#else + GST_ELEMENT_ERROR (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("couldn't initialize decoder")); +#endif + return GST_FLOW_ERROR; + } +nego_failed: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dec), STREAM, DECODE, + (NULL), ("couldn't negotiate format")); + gst_caps_unref (caps); + return GST_FLOW_NOT_NEGOTIATED; + } +} + +static GstFlowReturn +celt_dec_chain_parse_comments (GstCeltDec * dec, GstBuffer * buf) +{ + GstTagList *list; + gchar *ver, *encoder = NULL; + + list = gst_tag_list_from_vorbiscomment_buffer (buf, NULL, 0, &encoder); + + if (!list) { + GST_WARNING_OBJECT (dec, "couldn't decode comments"); + list = gst_tag_list_new (); + } + + if (encoder) { + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_ENCODER, encoder, NULL); + } + + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_AUDIO_CODEC, "Celt", NULL); + + ver = g_strndup (dec->header.codec_version, 20); + g_strstrip (ver); + + if (ver != NULL && *ver != '\0') { + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_ENCODER_VERSION, ver, NULL); + } + + if (dec->header.bytes_per_packet > 0) { + gst_tag_list_add (list, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, (guint) dec->header.bytes_per_packet * 8, NULL); + } + + GST_INFO_OBJECT (dec, "tags: %" GST_PTR_FORMAT, list); + + gst_element_found_tags_for_pad (GST_ELEMENT (dec), dec->srcpad, list); + + g_free (encoder); + g_free (ver); + + return GST_FLOW_OK; +} + +static GstFlowReturn +celt_dec_chain_parse_data (GstCeltDec * dec, GstBuffer * buf, + GstClockTime timestamp, GstClockTime duration) +{ + GstFlowReturn res = GST_FLOW_OK; + gint size; + guint8 *data; + GstBuffer *outbuf; + gint16 *out_data; + gint error = CELT_OK; + int skip = 0; + + if (timestamp != -1) { + dec->segment.last_stop = timestamp; + dec->granulepos = -1; + } + + if (buf) { + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + + GST_DEBUG_OBJECT (dec, "received buffer of size %u", size); + if (!GST_BUFFER_TIMESTAMP_IS_VALID (buf) + && GST_BUFFER_OFFSET_END_IS_VALID (buf)) { + dec->granulepos = GST_BUFFER_OFFSET_END (buf); + GST_DEBUG_OBJECT (dec, + "Taking granulepos from upstream: %" G_GUINT64_FORMAT, + dec->granulepos); + } + + /* copy timestamp */ + } else { + /* concealment data, pass NULL as the bits parameters */ + GST_DEBUG_OBJECT (dec, "creating concealment data"); + data = NULL; + size = 0; + } + + if (dec->discont) { + celt_mode_info (dec->mode, CELT_GET_LOOKAHEAD, &skip); + } + + res = gst_pad_alloc_buffer_and_set_caps (dec->srcpad, + GST_BUFFER_OFFSET_NONE, dec->frame_size * dec->header.nb_channels * 2, + GST_PAD_CAPS (dec->srcpad), &outbuf); + + if (res != GST_FLOW_OK) { + GST_DEBUG_OBJECT (dec, "buf alloc flow: %s", gst_flow_get_name (res)); + return res; + } + + out_data = (gint16 *) GST_BUFFER_DATA (outbuf); + + GST_LOG_OBJECT (dec, "decoding frame"); + +#ifdef HAVE_CELT_0_8 + error = celt_decode (dec->state, data, size, out_data, dec->frame_size); +#else + error = celt_decode (dec->state, data, size, out_data); +#endif + if (error != CELT_OK) { + GST_WARNING_OBJECT (dec, "Decoding error: %d", error); + return GST_FLOW_ERROR; + } + + if (skip > 0) { + GST_ERROR_OBJECT (dec, "skipping %d samples", skip); + GST_BUFFER_DATA (outbuf) = GST_BUFFER_DATA (outbuf) + + skip * dec->header.nb_channels * 2; + GST_BUFFER_SIZE (outbuf) = GST_BUFFER_SIZE (outbuf) - + skip * dec->header.nb_channels * 2; + } + + if (dec->granulepos == -1) { + if (dec->segment.format != GST_FORMAT_TIME) { + GST_WARNING_OBJECT (dec, "segment not initialized or not TIME format"); + dec->granulepos = dec->frame_size; + } else { + dec->granulepos = gst_util_uint64_scale_int (dec->segment.last_stop, + dec->header.sample_rate, GST_SECOND) + dec->frame_size; + } + GST_DEBUG_OBJECT (dec, "granulepos=%" G_GINT64_FORMAT, dec->granulepos); + } + + if (!GST_CLOCK_TIME_IS_VALID (timestamp)) + timestamp = gst_util_uint64_scale_int (dec->granulepos - dec->frame_size, + GST_SECOND, dec->header.sample_rate); + + GST_DEBUG_OBJECT (dec, "timestamp=%" GST_TIME_FORMAT, + GST_TIME_ARGS (timestamp)); + + GST_BUFFER_OFFSET (outbuf) = dec->granulepos - dec->frame_size; + GST_BUFFER_OFFSET_END (outbuf) = dec->granulepos; + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + GST_BUFFER_DURATION (outbuf) = dec->frame_duration; + if (dec->discont) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + dec->discont = 0; + } + + dec->granulepos += dec->frame_size; + dec->segment.last_stop += dec->frame_duration; + + GST_LOG_OBJECT (dec, "pushing buffer with ts=%" GST_TIME_FORMAT ", dur=%" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), + GST_TIME_ARGS (dec->frame_duration)); + + res = gst_pad_push (dec->srcpad, outbuf); + + if (res != GST_FLOW_OK) + GST_DEBUG_OBJECT (dec, "flow: %s", gst_flow_get_name (res)); + + return res; +} + +static GstFlowReturn +celt_dec_chain (GstPad * pad, GstBuffer * buf) +{ + GstFlowReturn res; + GstCeltDec *dec; + + dec = GST_CELT_DEC (gst_pad_get_parent (pad)); + + if (GST_BUFFER_IS_DISCONT (buf)) { + dec->discont = TRUE; + } + + /* If we have the streamheader and vorbiscomment from the caps already + * ignore them here */ + if (dec->streamheader && dec->vorbiscomment) { + if (GST_BUFFER_SIZE (dec->streamheader) == GST_BUFFER_SIZE (buf) + && memcmp (GST_BUFFER_DATA (dec->streamheader), GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)) == 0) { + res = GST_FLOW_OK; + } else if (GST_BUFFER_SIZE (dec->vorbiscomment) == GST_BUFFER_SIZE (buf) + && memcmp (GST_BUFFER_DATA (dec->vorbiscomment), GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)) == 0) { + res = GST_FLOW_OK; + } else { + GList *l; + + for (l = dec->extra_headers; l; l = l->next) { + GstBuffer *header = l->data; + if (GST_BUFFER_SIZE (header) == GST_BUFFER_SIZE (buf) && + memcmp (GST_BUFFER_DATA (header), GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)) == 0) { + res = GST_FLOW_OK; + goto done; + } + } + res = + celt_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), + GST_BUFFER_DURATION (buf)); + } + } else { + /* Otherwise fall back to packet counting and assume that the + * first two packets are the headers. */ + if (dec->packetno == 0) + res = celt_dec_chain_parse_header (dec, buf); + else if (dec->packetno == 1) + res = celt_dec_chain_parse_comments (dec, buf); + else if (dec->packetno <= 1 + dec->header.extra_headers) + res = GST_FLOW_OK; + else + res = celt_dec_chain_parse_data (dec, buf, GST_BUFFER_TIMESTAMP (buf), + GST_BUFFER_DURATION (buf)); + } + +done: + dec->packetno++; + + gst_buffer_unref (buf); + gst_object_unref (dec); + + return res; +} + +static GstStateChangeReturn +celt_dec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstCeltDec *dec = GST_CELT_DEC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + case GST_STATE_CHANGE_READY_TO_PAUSED: + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + default: + break; + } + + ret = parent_class->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_celt_dec_reset (dec); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + break; + default: + break; + } + + return ret; +} diff --git a/ext/celt/gstceltdec.h b/ext/celt/gstceltdec.h new file mode 100644 index 0000000..b6b4960 --- /dev/null +++ b/ext/celt/gstceltdec.h @@ -0,0 +1,76 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_CELT_DEC_H__ +#define __GST_CELT_DEC_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_CELT_DEC \ + (gst_celt_dec_get_type()) +#define GST_CELT_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CELT_DEC,GstCeltDec)) +#define GST_CELT_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CELT_DEC,GstCeltDecClass)) +#define GST_IS_CELT_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CELT_DEC)) +#define GST_IS_CELT_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CELT_DEC)) + +typedef struct _GstCeltDec GstCeltDec; +typedef struct _GstCeltDecClass GstCeltDecClass; + +struct _GstCeltDec { + GstElement element; + + /* pads */ + GstPad *sinkpad; + GstPad *srcpad; + + CELTDecoder *state; + CELTMode *mode; + CELTHeader header; + + gint frame_size; + GstClockTime frame_duration; + guint64 packetno; + + GstSegment segment; /* STREAM LOCK */ + gint64 granulepos; /* -1 = needs to be set from current time */ + gboolean discont; + + GstBuffer *streamheader; + GstBuffer *vorbiscomment; + GList *extra_headers; +}; + +struct _GstCeltDecClass { + GstElementClass parent_class; +}; + +GType gst_celt_dec_get_type (void); + +G_END_DECLS + +#endif /* __GST_CELT_DEC_H__ */ diff --git a/ext/celt/gstceltenc.c b/ext/celt/gstceltenc.c new file mode 100644 index 0000000..7481579 --- /dev/null +++ b/ext/celt/gstceltenc.c @@ -0,0 +1,1166 @@ +/* GStreamer Celt Encoder + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * Based on the speexenc element + */ + +/** + * SECTION:element-celtenc + * @see_also: celtdec, oggmux + * + * This element raw audio to CELT. + * + * + * Example pipelines + * |[ + * gst-launch -v audiotestsrc wave=sine num-buffers=100 ! audioconvert ! celtenc ! oggmux ! filesink location=sine.ogg + * ]| Encode a test sine signal to Ogg/CELT. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include "gstceltenc.h" + +GST_DEBUG_CATEGORY_STATIC (celtenc_debug); +#define GST_CAT_DEFAULT celtenc_debug + +#define GST_CELT_ENC_TYPE_PREDICTION (gst_celt_enc_prediction_get_type()) +static GType +gst_celt_enc_prediction_get_type (void) +{ + static const GEnumValue values[] = { + {0, "Independent frames", "idependent"}, + {1, "Short term interframe prediction", "short-term"}, + {2, "Long term interframe prediction", "long-term"}, + {0, NULL, NULL} + }; + static volatile GType id = 0; + + if (g_once_init_enter ((gsize *) & id)) { + GType _id; + + _id = g_enum_register_static ("GstCeltEncPrediction", values); + + g_once_init_leave ((gsize *) & id, _id); + } + + return id; +} + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "rate = (int) [ 32000, 64000 ], " + "channels = (int) [ 1, 2 ], " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) TRUE, " "width = (int) 16, " "depth = (int) 16") + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-celt, " + "rate = (int) [ 32000, 64000 ], " + "channels = (int) [ 1, 2 ], " "frame-size = (int) [ 64, 512 ]") + ); + +#define DEFAULT_BITRATE 64000 +#define DEFAULT_FRAMESIZE 480 +#define DEFAULT_CBR TRUE +#define DEFAULT_COMPLEXITY 9 +#define DEFAULT_MAX_BITRATE 64000 +#define DEFAULT_PREDICTION 0 +#define DEFAULT_START_BAND 0 + +enum +{ + PROP_0, + PROP_BITRATE, + PROP_FRAMESIZE, + PROP_CBR, + PROP_COMPLEXITY, + PROP_MAX_BITRATE, + PROP_PREDICTION, + PROP_START_BAND +}; + +static void gst_celt_enc_finalize (GObject * object); + +static gboolean gst_celt_enc_sinkevent (GstPad * pad, GstEvent * event); +static GstFlowReturn gst_celt_enc_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_celt_enc_setup (GstCeltEnc * enc); + +static void gst_celt_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_celt_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static GstStateChangeReturn gst_celt_enc_change_state (GstElement * element, + GstStateChange transition); + +static GstFlowReturn gst_celt_enc_encode (GstCeltEnc * enc, gboolean flush); + +static void +gst_celt_enc_setup_interfaces (GType celtenc_type) +{ + static const GInterfaceInfo tag_setter_info = { NULL, NULL, NULL }; + const GInterfaceInfo preset_interface_info = { + NULL, /* interface_init */ + NULL, /* interface_finalize */ + NULL /* interface_data */ + }; + + g_type_add_interface_static (celtenc_type, GST_TYPE_TAG_SETTER, + &tag_setter_info); + g_type_add_interface_static (celtenc_type, GST_TYPE_PRESET, + &preset_interface_info); + + GST_DEBUG_CATEGORY_INIT (celtenc_debug, "celtenc", 0, "Celt encoder"); +} + +GST_BOILERPLATE_FULL (GstCeltEnc, gst_celt_enc, GstElement, GST_TYPE_ELEMENT, + gst_celt_enc_setup_interfaces); + +static void +gst_celt_enc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_set_details_simple (element_class, "Celt audio encoder", + "Codec/Encoder/Audio", + "Encodes audio in Celt format", + "Sebastian Dröge "); +} + +static void +gst_celt_enc_class_init (GstCeltEncClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_celt_enc_set_property; + gobject_class->get_property = gst_celt_enc_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_BITRATE, + g_param_spec_int ("bitrate", "Encoding Bit-rate", + "Specify an encoding bit-rate (in bps).", + 10000, 320000, DEFAULT_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_FRAMESIZE, + g_param_spec_int ("framesize", "Frame Size", + "The number of samples per frame", 64, 512, DEFAULT_FRAMESIZE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CBR, + g_param_spec_boolean ("cbr", "Constant bit rate", + "Constant bit rate", DEFAULT_CBR, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_COMPLEXITY, + g_param_spec_int ("complexity", "Complexity", + "Complexity", 0, 10, DEFAULT_COMPLEXITY, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_MAX_BITRATE, + g_param_spec_int ("max-bitrate", "Maximum Encoding Bit-rate", + "Specify a maximum encoding bit rate (in bps) for variable bit rate encoding.", + 10000, 320000, DEFAULT_MAX_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_PREDICTION, + g_param_spec_enum ("prediction", "Interframe Prediction", + "Controls the use of interframe prediction.", + GST_CELT_ENC_TYPE_PREDICTION, DEFAULT_PREDICTION, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_START_BAND, + g_param_spec_int ("start-band", "Start Band", + "Controls the start band that should be used", + 0, G_MAXINT, DEFAULT_START_BAND, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_celt_enc_finalize); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_celt_enc_change_state); +} + +static void +gst_celt_enc_finalize (GObject * object) +{ + GstCeltEnc *enc; + + enc = GST_CELT_ENC (object); + + g_object_unref (enc->adapter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_celt_enc_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstCeltEnc *enc; + GstStructure *structure; + GstCaps *otherpadcaps; + + enc = GST_CELT_ENC (GST_PAD_PARENT (pad)); + enc->setup = FALSE; + enc->frame_size = DEFAULT_FRAMESIZE; + otherpadcaps = gst_pad_get_allowed_caps (pad); + + structure = gst_caps_get_structure (caps, 0); + gst_structure_get_int (structure, "channels", &enc->channels); + gst_structure_get_int (structure, "rate", &enc->rate); + + if (otherpadcaps) { + if (!gst_caps_is_empty (otherpadcaps)) { + GstStructure *ps = gst_caps_get_structure (otherpadcaps, 0); + gst_structure_get_int (ps, "frame-size", &enc->frame_size); + } + gst_caps_unref (otherpadcaps); + } + + GST_DEBUG_OBJECT (pad, "channels=%d rate=%d frame-size=%d", + enc->channels, enc->rate, enc->frame_size); + + gst_celt_enc_setup (enc); + + return enc->setup; +} + + +static GstCaps * +gst_celt_enc_sink_getcaps (GstPad * pad) +{ + GstCaps *caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + GstCaps *peercaps = NULL; + GstCeltEnc *enc = GST_CELT_ENC (gst_pad_get_parent_element (pad)); + + peercaps = gst_pad_peer_get_caps (enc->srcpad); + + if (peercaps) { + if (!gst_caps_is_empty (peercaps) && !gst_caps_is_any (peercaps)) { + GstStructure *ps = gst_caps_get_structure (peercaps, 0); + GstStructure *s = gst_caps_get_structure (caps, 0); + gint rate, channels; + + if (gst_structure_get_int (ps, "rate", &rate)) { + gst_structure_fixate_field_nearest_int (s, "rate", rate); + } + + if (gst_structure_get_int (ps, "channels", &channels)) { + gst_structure_fixate_field_nearest_int (s, "channels", channels); + } + } + gst_caps_unref (peercaps); + } + + gst_object_unref (enc); + + return caps; +} + + +static gboolean +gst_celt_enc_convert_src (GstPad * pad, GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + GstCeltEnc *enc; + gint64 avg; + + enc = GST_CELT_ENC (GST_PAD_PARENT (pad)); + + if (enc->samples_in == 0 || enc->bytes_out == 0 || enc->rate == 0) + return FALSE; + + avg = (enc->bytes_out * enc->rate) / (enc->samples_in); + + switch (src_format) { + case GST_FORMAT_BYTES: + switch (*dest_format) { + case GST_FORMAT_TIME: + *dest_value = src_value * GST_SECOND / avg; + break; + default: + res = FALSE; + } + break; + case GST_FORMAT_TIME: + switch (*dest_format) { + case GST_FORMAT_BYTES: + *dest_value = src_value * avg / GST_SECOND; + break; + default: + res = FALSE; + } + break; + default: + res = FALSE; + } + return res; +} + +static gboolean +gst_celt_enc_convert_sink (GstPad * pad, GstFormat src_format, + gint64 src_value, GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + guint scale = 1; + gint bytes_per_sample; + GstCeltEnc *enc; + + enc = GST_CELT_ENC (GST_PAD_PARENT (pad)); + + bytes_per_sample = enc->channels * 2; + + switch (src_format) { + case GST_FORMAT_BYTES: + switch (*dest_format) { + case GST_FORMAT_DEFAULT: + if (bytes_per_sample == 0) + return FALSE; + *dest_value = src_value / bytes_per_sample; + break; + case GST_FORMAT_TIME: + { + gint byterate = bytes_per_sample * enc->rate; + + if (byterate == 0) + return FALSE; + *dest_value = src_value * GST_SECOND / byterate; + break; + } + default: + res = FALSE; + } + break; + case GST_FORMAT_DEFAULT: + switch (*dest_format) { + case GST_FORMAT_BYTES: + *dest_value = src_value * bytes_per_sample; + break; + case GST_FORMAT_TIME: + if (enc->rate == 0) + return FALSE; + *dest_value = src_value * GST_SECOND / enc->rate; + break; + default: + res = FALSE; + } + break; + case GST_FORMAT_TIME: + switch (*dest_format) { + case GST_FORMAT_BYTES: + scale = bytes_per_sample; + /* fallthrough */ + case GST_FORMAT_DEFAULT: + *dest_value = src_value * scale * enc->rate / GST_SECOND; + break; + default: + res = FALSE; + } + break; + default: + res = FALSE; + } + return res; +} + +static gint64 +gst_celt_enc_get_latency (GstCeltEnc * enc) +{ + return gst_util_uint64_scale (enc->frame_size, GST_SECOND, enc->rate); +} + +static const GstQueryType * +gst_celt_enc_get_query_types (GstPad * pad) +{ + static const GstQueryType gst_celt_enc_src_query_types[] = { + GST_QUERY_POSITION, + GST_QUERY_DURATION, + GST_QUERY_CONVERT, + GST_QUERY_LATENCY, + 0 + }; + + return gst_celt_enc_src_query_types; +} + +static gboolean +gst_celt_enc_src_query (GstPad * pad, GstQuery * query) +{ + gboolean res = TRUE; + GstCeltEnc *enc; + + enc = GST_CELT_ENC (gst_pad_get_parent (pad)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + { + GstFormat fmt, req_fmt; + gint64 pos, val; + + gst_query_parse_position (query, &req_fmt, NULL); + if ((res = gst_pad_query_peer_position (enc->sinkpad, &req_fmt, &val))) { + gst_query_set_position (query, req_fmt, val); + break; + } + + fmt = GST_FORMAT_TIME; + if (!(res = gst_pad_query_peer_position (enc->sinkpad, &fmt, &pos))) + break; + + if ((res = + gst_pad_query_peer_convert (enc->sinkpad, fmt, pos, &req_fmt, + &val))) + gst_query_set_position (query, req_fmt, val); + + break; + } + case GST_QUERY_DURATION: + { + GstFormat fmt, req_fmt; + gint64 dur, val; + + gst_query_parse_duration (query, &req_fmt, NULL); + if ((res = gst_pad_query_peer_duration (enc->sinkpad, &req_fmt, &val))) { + gst_query_set_duration (query, req_fmt, val); + break; + } + + fmt = GST_FORMAT_TIME; + if (!(res = gst_pad_query_peer_duration (enc->sinkpad, &fmt, &dur))) + break; + + if ((res = + gst_pad_query_peer_convert (enc->sinkpad, fmt, dur, &req_fmt, + &val))) { + gst_query_set_duration (query, req_fmt, val); + } + break; + } + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (!(res = gst_celt_enc_convert_src (pad, src_fmt, src_val, &dest_fmt, + &dest_val))) + goto error; + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + break; + } + case GST_QUERY_LATENCY: + { + gboolean live; + GstClockTime min_latency, max_latency; + gint64 latency; + + if ((res = gst_pad_peer_query (pad, query))) { + gst_query_parse_latency (query, &live, &min_latency, &max_latency); + + latency = gst_celt_enc_get_latency (enc); + + /* add our latency */ + min_latency += latency; + if (max_latency != -1) + max_latency += latency; + + gst_query_set_latency (query, live, min_latency, max_latency); + } + break; + } + default: + res = gst_pad_peer_query (pad, query); + break; + } + +error: + + gst_object_unref (enc); + + return res; +} + +static gboolean +gst_celt_enc_sink_query (GstPad * pad, GstQuery * query) +{ + gboolean res = TRUE; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (!(res = + gst_celt_enc_convert_sink (pad, src_fmt, src_val, &dest_fmt, + &dest_val))) + goto error; + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + +error: + return res; +} + +static void +gst_celt_enc_init (GstCeltEnc * enc, GstCeltEncClass * klass) +{ + enc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad); + gst_pad_set_event_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_sinkevent)); + gst_pad_set_chain_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_chain)); + gst_pad_set_setcaps_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_sink_setcaps)); + gst_pad_set_getcaps_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_sink_getcaps)); + gst_pad_set_query_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_sink_query)); + + enc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_query_function (enc->srcpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_src_query)); + gst_pad_set_query_type_function (enc->srcpad, + GST_DEBUG_FUNCPTR (gst_celt_enc_get_query_types)); + gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad); + + enc->channels = -1; + enc->rate = -1; + + enc->bitrate = DEFAULT_BITRATE; + enc->frame_size = DEFAULT_FRAMESIZE; + enc->cbr = DEFAULT_CBR; + enc->complexity = DEFAULT_COMPLEXITY; + enc->max_bitrate = DEFAULT_MAX_BITRATE; + enc->prediction = DEFAULT_PREDICTION; + + enc->setup = FALSE; + enc->header_sent = FALSE; + + enc->adapter = gst_adapter_new (); +} + +static GstBuffer * +gst_celt_enc_create_metadata_buffer (GstCeltEnc * enc) +{ + const GstTagList *tags; + GstTagList *empty_tags = NULL; + GstBuffer *comments = NULL; + + tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (enc)); + + GST_DEBUG_OBJECT (enc, "tags = %" GST_PTR_FORMAT, tags); + + if (tags == NULL) { + /* FIXME: better fix chain of callers to not write metadata at all, + * if there is none */ + empty_tags = gst_tag_list_new (); + tags = empty_tags; + } + comments = gst_tag_list_to_vorbiscomment_buffer (tags, NULL, + 0, "Encoded with GStreamer Celtenc"); + + GST_BUFFER_OFFSET (comments) = enc->bytes_out; + GST_BUFFER_OFFSET_END (comments) = 0; + + if (empty_tags) + gst_tag_list_free (empty_tags); + + return comments; +} + +static gboolean +gst_celt_enc_setup (GstCeltEnc * enc) +{ + gint error = CELT_OK; + + enc->setup = FALSE; + +#ifdef HAVE_CELT_0_7 + enc->mode = celt_mode_create (enc->rate, enc->frame_size, &error); +#else + enc->mode = + celt_mode_create (enc->rate, enc->channels, enc->frame_size, &error); +#endif + if (!enc->mode) + goto mode_initialization_failed; + +#ifdef HAVE_CELT_0_11 + celt_header_init (&enc->header, enc->mode, enc->frame_size, enc->channels); +#else +#ifdef HAVE_CELT_0_7 + celt_header_init (&enc->header, enc->mode, enc->channels); +#else + celt_header_init (&enc->header, enc->mode); +#endif +#endif + enc->header.nb_channels = enc->channels; + +#ifdef HAVE_CELT_0_8 + enc->frame_size = enc->header.frame_size; +#else + celt_mode_info (enc->mode, CELT_GET_FRAME_SIZE, &enc->frame_size); +#endif + +#ifdef HAVE_CELT_0_11 + enc->state = celt_encoder_create_custom (enc->mode, enc->channels, &error); +#else +#ifdef HAVE_CELT_0_7 + enc->state = celt_encoder_create (enc->mode, enc->channels, &error); +#else + enc->state = celt_encoder_create (enc->mode); +#endif +#endif + if (!enc->state) + goto encoder_creation_failed; + +#ifdef CELT_SET_VBR_RATE + if (!enc->cbr) { + celt_encoder_ctl (enc->state, CELT_SET_VBR_RATE (enc->bitrate / 1000), 0); + } +#endif +#ifdef CELT_SET_COMPLEXITY + celt_encoder_ctl (enc->state, CELT_SET_COMPLEXITY (enc->complexity), 0); +#endif +#ifdef CELT_SET_PREDICTION + celt_encoder_ctl (enc->state, CELT_SET_PREDICTION (enc->prediction), 0); +#endif +#ifdef CELT_SET_START_BAND + celt_encoder_ctl (enc->state, CELT_SET_START_BAND (enc->start_band), 0); +#endif + + GST_LOG_OBJECT (enc, "we have frame size %d", enc->frame_size); + + enc->setup = TRUE; + + return TRUE; + +mode_initialization_failed: + GST_ERROR_OBJECT (enc, "Mode initialization failed: %d", error); + return FALSE; + +encoder_creation_failed: +#ifdef HAVE_CELT_0_7 + GST_ERROR_OBJECT (enc, "Encoder creation failed: %d", error); +#else + GST_ERROR_OBJECT (enc, "Encoder creation failed"); +#endif + return FALSE; +} + +/* prepare a buffer for transmission */ +static GstBuffer * +gst_celt_enc_buffer_from_data (GstCeltEnc * enc, guchar * data, + gint data_len, guint64 granulepos) +{ + GstBuffer *outbuf; + + outbuf = gst_buffer_new_and_alloc (data_len); + memcpy (GST_BUFFER_DATA (outbuf), data, data_len); + GST_BUFFER_OFFSET (outbuf) = enc->bytes_out; + GST_BUFFER_OFFSET_END (outbuf) = granulepos; + + GST_LOG_OBJECT (enc, "encoded buffer of %d bytes", GST_BUFFER_SIZE (outbuf)); + return outbuf; +} + + +/* push out the buffer and do internal bookkeeping */ +static GstFlowReturn +gst_celt_enc_push_buffer (GstCeltEnc * enc, GstBuffer * buffer) +{ + guint size; + + size = GST_BUFFER_SIZE (buffer); + + enc->bytes_out += size; + + GST_DEBUG_OBJECT (enc, "pushing output buffer of size %u", size); + + return gst_pad_push (enc->srcpad, buffer); +} + +static GstCaps * +gst_celt_enc_set_header_on_caps (GstCaps * caps, GstBuffer * buf1, + GstBuffer * buf2) +{ + GstStructure *structure = NULL; + GstBuffer *buf; + GValue array = { 0 }; + GValue value = { 0 }; + + caps = gst_caps_make_writable (caps); + structure = gst_caps_get_structure (caps, 0); + + g_assert (gst_buffer_is_metadata_writable (buf1)); + g_assert (gst_buffer_is_metadata_writable (buf2)); + + /* mark buffers */ + GST_BUFFER_FLAG_SET (buf1, GST_BUFFER_FLAG_IN_CAPS); + GST_BUFFER_FLAG_SET (buf2, GST_BUFFER_FLAG_IN_CAPS); + + /* put buffers in a fixed list */ + g_value_init (&array, GST_TYPE_ARRAY); + g_value_init (&value, GST_TYPE_BUFFER); + buf = gst_buffer_copy (buf1); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); + g_value_init (&value, GST_TYPE_BUFFER); + buf = gst_buffer_copy (buf2); + gst_value_set_buffer (&value, buf); + gst_buffer_unref (buf); + gst_value_array_append_value (&array, &value); + gst_structure_set_value (structure, "streamheader", &array); + g_value_unset (&value); + g_value_unset (&array); + + return caps; +} + + +static gboolean +gst_celt_enc_sinkevent (GstPad * pad, GstEvent * event) +{ + gboolean res = TRUE; + GstCeltEnc *enc; + + enc = GST_CELT_ENC (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + gst_celt_enc_encode (enc, TRUE); + res = gst_pad_event_default (pad, event); + break; + case GST_EVENT_TAG: + { + GstTagList *list; + GstTagSetter *setter = GST_TAG_SETTER (enc); + const GstTagMergeMode mode = gst_tag_setter_get_tag_merge_mode (setter); + + gst_event_parse_tag (event, &list); + gst_tag_setter_merge_tags (setter, list, mode); + res = gst_pad_event_default (pad, event); + break; + } + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (enc); + + return res; +} + +static GstFlowReturn +gst_celt_enc_encode (GstCeltEnc * enc, gboolean flush) +{ + + GstFlowReturn ret = GST_FLOW_OK; + gint frame_size = enc->frame_size; + gint bytes = frame_size * 2 * enc->channels; + gint bytes_per_packet; + + if (enc->cbr) { + bytes_per_packet = (enc->bitrate * enc->frame_size / enc->rate + 4) / 8; + } else { + bytes_per_packet = (enc->max_bitrate * enc->frame_size / enc->rate + 4) / 8; + } + + if (flush && gst_adapter_available (enc->adapter) % bytes != 0) { + guint diff = gst_adapter_available (enc->adapter) % bytes; + GstBuffer *buf = gst_buffer_new_and_alloc (diff); + + memset (GST_BUFFER_DATA (buf), 0, diff); + gst_adapter_push (enc->adapter, buf); + } + + + while (gst_adapter_available (enc->adapter) >= bytes) { + gint16 *data; + gint outsize; + GstBuffer *outbuf; + + ret = gst_pad_alloc_buffer_and_set_caps (enc->srcpad, + GST_BUFFER_OFFSET_NONE, bytes_per_packet, GST_PAD_CAPS (enc->srcpad), + &outbuf); + + if (GST_FLOW_OK != ret) + goto done; + + data = (gint16 *) gst_adapter_take (enc->adapter, bytes); + enc->samples_in += frame_size; + + GST_DEBUG_OBJECT (enc, "encoding %d samples (%d bytes)", frame_size, bytes); + +#ifdef HAVE_CELT_0_8 + outsize = + celt_encode (enc->state, data, frame_size, + GST_BUFFER_DATA (outbuf), bytes_per_packet); +#else + outsize = + celt_encode (enc->state, data, NULL, + GST_BUFFER_DATA (outbuf), bytes_per_packet); +#endif + + g_free (data); + + if (outsize < 0) { + GST_ERROR_OBJECT (enc, "Encoding failed: %d", outsize); + ret = GST_FLOW_ERROR; + goto done; + } + + GST_BUFFER_TIMESTAMP (outbuf) = enc->start_ts + + gst_util_uint64_scale_int (enc->frameno_out * frame_size, GST_SECOND, + enc->rate); + GST_BUFFER_DURATION (outbuf) = + gst_util_uint64_scale_int (frame_size, GST_SECOND, enc->rate); + /* set gp time and granulepos; see gst-plugins-base/ext/ogg/README */ + GST_BUFFER_OFFSET_END (outbuf) = enc->granulepos_offset + + ((enc->frameno + 1) * frame_size); + GST_BUFFER_OFFSET (outbuf) = + gst_util_uint64_scale_int (GST_BUFFER_OFFSET_END (outbuf), GST_SECOND, + enc->rate); + + enc->frameno++; + enc->frameno_out++; + + ret = gst_celt_enc_push_buffer (enc, outbuf); + + if ((GST_FLOW_OK != ret) && (GST_FLOW_NOT_LINKED != ret)) + goto done; + } + +done: + + return ret; +} + +static GstFlowReturn +gst_celt_enc_chain (GstPad * pad, GstBuffer * buf) +{ + GstCeltEnc *enc; + GstFlowReturn ret = GST_FLOW_OK; + + enc = GST_CELT_ENC (GST_PAD_PARENT (pad)); + + if (!enc->setup) + goto not_setup; + + if (!enc->header_sent) { + /* Celt streams begin with two headers; the initial header (with + most of the codec setup parameters) which is mandated by the Ogg + bitstream spec. The second header holds any comment fields. + We merely need to make the headers, then pass them to libcelt + one at a time; libcelt handles the additional Ogg bitstream + constraints */ + GstBuffer *buf1, *buf2; + GstCaps *caps; + guchar data[100]; + + /* create header buffer */ + celt_header_to_packet (&enc->header, data, 100); + buf1 = gst_celt_enc_buffer_from_data (enc, data, 100, 0); + + /* create comment buffer */ + buf2 = gst_celt_enc_create_metadata_buffer (enc); + + /* mark and put on caps */ + caps = gst_pad_get_caps (enc->srcpad); + caps = gst_celt_enc_set_header_on_caps (caps, buf1, buf2); + + gst_caps_set_simple (caps, + "rate", G_TYPE_INT, enc->rate, + "channels", G_TYPE_INT, enc->channels, + "frame-size", G_TYPE_INT, enc->frame_size, NULL); + + /* negotiate with these caps */ + GST_DEBUG_OBJECT (enc, "here are the caps: %" GST_PTR_FORMAT, caps); + GST_LOG_OBJECT (enc, "rate=%d channels=%d frame-size=%d", + enc->rate, enc->channels, enc->frame_size); + gst_pad_set_caps (enc->srcpad, caps); + + gst_buffer_set_caps (buf1, caps); + gst_buffer_set_caps (buf2, caps); + gst_caps_unref (caps); + + /* push out buffers */ + ret = gst_celt_enc_push_buffer (enc, buf1); + + if (ret != GST_FLOW_OK) { + gst_buffer_unref (buf2); + goto done; + } + + ret = gst_celt_enc_push_buffer (enc, buf2); + + if (ret != GST_FLOW_OK) + goto done; + + enc->header_sent = TRUE; + } + + GST_DEBUG_OBJECT (enc, "received buffer of %u bytes", GST_BUFFER_SIZE (buf)); + + /* Save the timestamp of the first buffer. This will be later + * used as offset for all following buffers */ + if (enc->start_ts == GST_CLOCK_TIME_NONE) { + if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + enc->start_ts = GST_BUFFER_TIMESTAMP (buf); + enc->granulepos_offset = gst_util_uint64_scale + (GST_BUFFER_TIMESTAMP (buf), enc->rate, GST_SECOND); + } else { + enc->start_ts = 0; + enc->granulepos_offset = 0; + } + } + + + /* Check if we have a continous stream, if not drop some samples or the buffer or + * insert some silence samples */ + if (enc->next_ts != GST_CLOCK_TIME_NONE && + GST_BUFFER_TIMESTAMP (buf) < enc->next_ts) { + guint64 diff = enc->next_ts - GST_BUFFER_TIMESTAMP (buf); + guint64 diff_bytes; + + GST_WARNING_OBJECT (enc, "Buffer is older than previous " + "timestamp + duration (%" GST_TIME_FORMAT "< %" GST_TIME_FORMAT + "), cannot handle. Clipping buffer.", + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (enc->next_ts)); + + diff_bytes = GST_CLOCK_TIME_TO_FRAMES (diff, enc->rate) * enc->channels * 2; + if (diff_bytes >= GST_BUFFER_SIZE (buf)) { + gst_buffer_unref (buf); + return GST_FLOW_OK; + } + buf = gst_buffer_make_metadata_writable (buf); + GST_BUFFER_DATA (buf) += diff_bytes; + GST_BUFFER_SIZE (buf) -= diff_bytes; + + GST_BUFFER_TIMESTAMP (buf) += diff; + if (GST_BUFFER_DURATION_IS_VALID (buf)) + GST_BUFFER_DURATION (buf) -= diff; + } + + if (enc->next_ts != GST_CLOCK_TIME_NONE + && GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + guint64 max_diff = + gst_util_uint64_scale (enc->frame_size, GST_SECOND, enc->rate); + + if (GST_BUFFER_TIMESTAMP (buf) != enc->next_ts && + GST_BUFFER_TIMESTAMP (buf) - enc->next_ts > max_diff) { + GST_WARNING_OBJECT (enc, + "Discontinuity detected: %" G_GUINT64_FORMAT " > %" G_GUINT64_FORMAT, + GST_BUFFER_TIMESTAMP (buf) - enc->next_ts, max_diff); + + gst_celt_enc_encode (enc, TRUE); + + enc->frameno_out = 0; + enc->start_ts = GST_BUFFER_TIMESTAMP (buf); + enc->granulepos_offset = gst_util_uint64_scale + (GST_BUFFER_TIMESTAMP (buf), enc->rate, GST_SECOND); + } + } + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buf) + && GST_BUFFER_DURATION_IS_VALID (buf)) + enc->next_ts = GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf); + else + enc->next_ts = GST_CLOCK_TIME_NONE; + + /* push buffer to adapter */ + gst_adapter_push (enc->adapter, buf); + buf = NULL; + + ret = gst_celt_enc_encode (enc, FALSE); + +done: + + if (buf) + gst_buffer_unref (buf); + + return ret; + + /* ERRORS */ +not_setup: + { + GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), + ("encoder not initialized (input is not audio?)")); + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } + +} + + +static void +gst_celt_enc_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstCeltEnc *enc; + + enc = GST_CELT_ENC (object); + + switch (prop_id) { + case PROP_BITRATE: + g_value_set_int (value, enc->bitrate); + break; + case PROP_FRAMESIZE: + g_value_set_int (value, enc->frame_size); + break; + case PROP_CBR: + g_value_set_boolean (value, enc->cbr); + break; + case PROP_COMPLEXITY: + g_value_set_int (value, enc->complexity); + break; + case PROP_MAX_BITRATE: + g_value_set_int (value, enc->max_bitrate); + break; + case PROP_PREDICTION: + g_value_set_enum (value, enc->prediction); + break; + case PROP_START_BAND: + g_value_set_int (value, enc->start_band); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_celt_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCeltEnc *enc; + + enc = GST_CELT_ENC (object); + + switch (prop_id) { + case PROP_BITRATE: + enc->bitrate = g_value_get_int (value); + break; + case PROP_FRAMESIZE: + enc->frame_size = g_value_get_int (value); + break; + case PROP_CBR: + enc->cbr = g_value_get_boolean (value); + break; + case PROP_COMPLEXITY: + enc->complexity = g_value_get_int (value); + break; + case PROP_MAX_BITRATE: + enc->max_bitrate = g_value_get_int (value); + break; + case PROP_PREDICTION: + enc->prediction = g_value_get_enum (value); + break; + case PROP_START_BAND: + enc->start_band = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_celt_enc_change_state (GstElement * element, GstStateChange transition) +{ + GstCeltEnc *enc = GST_CELT_ENC (element); + GstStateChangeReturn res; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + enc->frameno = 0; + enc->samples_in = 0; + enc->frameno_out = 0; + enc->start_ts = GST_CLOCK_TIME_NONE; + enc->next_ts = GST_CLOCK_TIME_NONE; + enc->granulepos_offset = 0; + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + /* fall through */ + default: + break; + } + + res = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (res == GST_STATE_CHANGE_FAILURE) + return res; + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + enc->setup = FALSE; + enc->header_sent = FALSE; + if (enc->state) { + celt_encoder_destroy (enc->state); + enc->state = NULL; + } + if (enc->mode) { + celt_mode_destroy (enc->mode); + enc->mode = NULL; + } + memset (&enc->header, 0, sizeof (enc->header)); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_tag_setter_reset_tags (GST_TAG_SETTER (enc)); + default: + break; + } + + return res; +} diff --git a/ext/celt/gstceltenc.h b/ext/celt/gstceltenc.h new file mode 100644 index 0000000..ec8a283 --- /dev/null +++ b/ext/celt/gstceltenc.h @@ -0,0 +1,100 @@ +/* GStreamer Celt Encoder + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2008> Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_CELT_ENC_H__ +#define __GST_CELT_ENC_H__ + + +#include +#include + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_CELT_ENC \ + (gst_celt_enc_get_type()) +#define GST_CELT_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_CELT_ENC,GstCeltEnc)) +#define GST_CELT_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_CELT_ENC,GstCeltEncClass)) +#define GST_IS_CELT_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_CELT_ENC)) +#define GST_IS_CELT_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_CELT_ENC)) + +#define MAX_FRAME_SIZE 2000*2 +#define MAX_FRAME_BYTES 2000 + +typedef struct _GstCeltEnc GstCeltEnc; +typedef struct _GstCeltEncClass GstCeltEncClass; + +struct _GstCeltEnc { + GstElement element; + + /* pads */ + GstPad *sinkpad; + GstPad *srcpad; + + CELTHeader header; + CELTMode *mode; + CELTEncoder *state; + GstAdapter *adapter; + + gint bitrate; + gint frame_size; + gboolean cbr; + gint complexity; + gint max_bitrate; + gint prediction; + gint start_band; + + gint channels; + gint rate; + + gboolean setup; + gboolean header_sent; + gboolean eos; + + guint64 samples_in; + guint64 bytes_out; + + guint64 frameno; + guint64 frameno_out; + + GstClockTime start_ts; + GstClockTime next_ts; + guint64 granulepos_offset; +}; + +struct _GstCeltEncClass { + GstElementClass parent_class; + + /* signals */ + void (*frame_encoded) (GstElement *element); +}; + +GType gst_celt_enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_CELT_ENC_H__ */ diff --git a/ext/cog/Makefile.am b/ext/cog/Makefile.am new file mode 100644 index 0000000..81e0f15 --- /dev/null +++ b/ext/cog/Makefile.am @@ -0,0 +1,48 @@ +plugin_LTLIBRARIES = libgstcog.la + +ORC_SOURCE=gstcogorc +include $(top_srcdir)/common/orc.mak + +libgstcog_la_CFLAGS = \ + -DCOG_ENABLE_UNSTABLE_API \ + -I$(srcdir)/.. \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(ORC_CFLAGS) \ + $(COG_CFLAGS) +libgstcog_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(ORC_LIBS) \ + $(COG_LIBS) +libgstcog_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstcog_la_LIBTOOLFLAGS = --tag=disable-static + +libgstcog_la_SOURCES = \ + cog.h \ + cogframe.c \ + cogframe.h \ + cogtables.c \ + cogutils.h \ + cogvirtframe.c \ + cogvirtframe.h \ + gstcog.c \ + gstcogcolorspace.c \ + gstcogdownsample.c \ + gstcogmse.c \ + gstcogscale.c \ + gstcogutils.c \ + gstcogutils.h \ + gstcolorconvert.c \ + gstlogoinsert.c \ + gstcms.h \ + gstcms.c +nodist_libgstcog_la_SOURCES = $(ORC_NODIST_SOURCES) + +noinst_PROGRAMS = generate_tables +generate_tables_SOURCES = generate_tables.c gstcms.c +generate_tables_CFLAGS = $(GST_CFLAGS) +generate_tables_LDADD = $(GST_LIBS) $(LIBM) + + diff --git a/ext/cog/Makefile.in b/ext/cog/Makefile.in new file mode 100644 index 0000000..7d65dee --- /dev/null +++ b/ext/cog/Makefile.in @@ -0,0 +1,1142 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# +# This is a makefile.am fragment to build Orc code. +# +# Define ORC_SOURCE and then include this file, such as: +# +# ORC_SOURCE=gstadderorc +# include $(top_srcdir)/common/orc.mak +# +# This fragment will create tmp-orc.c and gstadderorc.h from +# gstadderorc.orc. +# +# When 'make dist' is run at the top level, or 'make orc-update' +# in a directory including this fragment, the generated source +# files will be copied to $(ORC_SOURCE)-dist.[ch]. These files +# should be checked in to git, since they are used if Orc is +# disabled. +# +# Note that this file defines BUILT_SOURCES, so any later usage +# of BUILT_SOURCES in the Makefile.am that includes this file +# must use '+='. +# + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in \ + $(top_srcdir)/common/orc.mak +noinst_PROGRAMS = generate_tables$(EXEEXT) +subdir = ext/cog +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstcog_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstcog_la_OBJECTS = libgstcog_la-cogframe.lo \ + libgstcog_la-cogtables.lo libgstcog_la-cogvirtframe.lo \ + libgstcog_la-gstcog.lo libgstcog_la-gstcogcolorspace.lo \ + libgstcog_la-gstcogdownsample.lo libgstcog_la-gstcogmse.lo \ + libgstcog_la-gstcogscale.lo libgstcog_la-gstcogutils.lo \ + libgstcog_la-gstcolorconvert.lo libgstcog_la-gstlogoinsert.lo \ + libgstcog_la-gstcms.lo +am__objects_1 = libgstcog_la-tmp-orc.lo +nodist_libgstcog_la_OBJECTS = $(am__objects_1) +libgstcog_la_OBJECTS = $(am_libgstcog_la_OBJECTS) \ + $(nodist_libgstcog_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstcog_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstcog_la_CFLAGS) $(CFLAGS) \ + $(libgstcog_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +am_generate_tables_OBJECTS = \ + generate_tables-generate_tables.$(OBJEXT) \ + generate_tables-gstcms.$(OBJEXT) +generate_tables_OBJECTS = $(am_generate_tables_OBJECTS) +generate_tables_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +generate_tables_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(generate_tables_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) \ + -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstcog_la_SOURCES) $(nodist_libgstcog_la_SOURCES) \ + $(generate_tables_SOURCES) +DIST_SOURCES = $(libgstcog_la_SOURCES) $(generate_tables_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstcog.la +ORC_SOURCE = gstcogorc +EXTRA_DIST = $(ORC_SOURCE).orc +ORC_NODIST_SOURCES = tmp-orc.c $(ORC_SOURCE).h +BUILT_SOURCES = tmp-orc.c $(ORC_SOURCE).h +orcc_v_gen = $(orcc_v_gen_$(V)) +orcc_v_gen_ = $(orcc_v_gen_$(AM_DEFAULT_VERBOSITY)) +orcc_v_gen_0 = @echo " ORCC $@"; +cp_v_gen = $(cp_v_gen_$(V)) +cp_v_gen_ = $(cp_v_gen_$(AM_DEFAULT_VERBOSITY)) +cp_v_gen_0 = @echo " CP $@"; +libgstcog_la_CFLAGS = \ + -DCOG_ENABLE_UNSTABLE_API \ + -I$(srcdir)/.. \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(ORC_CFLAGS) \ + $(COG_CFLAGS) + +libgstcog_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(ORC_LIBS) \ + $(COG_LIBS) + +libgstcog_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstcog_la_LIBTOOLFLAGS = --tag=disable-static +libgstcog_la_SOURCES = \ + cog.h \ + cogframe.c \ + cogframe.h \ + cogtables.c \ + cogutils.h \ + cogvirtframe.c \ + cogvirtframe.h \ + gstcog.c \ + gstcogcolorspace.c \ + gstcogdownsample.c \ + gstcogmse.c \ + gstcogscale.c \ + gstcogutils.c \ + gstcogutils.h \ + gstcolorconvert.c \ + gstlogoinsert.c \ + gstcms.h \ + gstcms.c + +nodist_libgstcog_la_SOURCES = $(ORC_NODIST_SOURCES) +generate_tables_SOURCES = generate_tables.c gstcms.c +generate_tables_CFLAGS = $(GST_CFLAGS) +generate_tables_LDADD = $(GST_LIBS) $(LIBM) +all: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/common/orc.mak $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/cog/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/cog/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstcog.la: $(libgstcog_la_OBJECTS) $(libgstcog_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstcog_la_LINK) -rpath $(plugindir) $(libgstcog_la_OBJECTS) $(libgstcog_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +generate_tables$(EXEEXT): $(generate_tables_OBJECTS) $(generate_tables_DEPENDENCIES) + @rm -f generate_tables$(EXEEXT) + $(AM_V_CCLD)$(generate_tables_LINK) $(generate_tables_OBJECTS) $(generate_tables_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_tables-generate_tables.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/generate_tables-gstcms.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-cogframe.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-cogtables.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-cogvirtframe.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcms.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcog.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcogcolorspace.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcogdownsample.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcogmse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcogscale.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcogutils.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstcolorconvert.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-gstlogoinsert.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcog_la-tmp-orc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstcog_la-cogframe.lo: cogframe.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-cogframe.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-cogframe.Tpo -c -o libgstcog_la-cogframe.lo `test -f 'cogframe.c' || echo '$(srcdir)/'`cogframe.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-cogframe.Tpo $(DEPDIR)/libgstcog_la-cogframe.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cogframe.c' object='libgstcog_la-cogframe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-cogframe.lo `test -f 'cogframe.c' || echo '$(srcdir)/'`cogframe.c + +libgstcog_la-cogtables.lo: cogtables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-cogtables.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-cogtables.Tpo -c -o libgstcog_la-cogtables.lo `test -f 'cogtables.c' || echo '$(srcdir)/'`cogtables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-cogtables.Tpo $(DEPDIR)/libgstcog_la-cogtables.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cogtables.c' object='libgstcog_la-cogtables.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-cogtables.lo `test -f 'cogtables.c' || echo '$(srcdir)/'`cogtables.c + +libgstcog_la-cogvirtframe.lo: cogvirtframe.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-cogvirtframe.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-cogvirtframe.Tpo -c -o libgstcog_la-cogvirtframe.lo `test -f 'cogvirtframe.c' || echo '$(srcdir)/'`cogvirtframe.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-cogvirtframe.Tpo $(DEPDIR)/libgstcog_la-cogvirtframe.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='cogvirtframe.c' object='libgstcog_la-cogvirtframe.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-cogvirtframe.lo `test -f 'cogvirtframe.c' || echo '$(srcdir)/'`cogvirtframe.c + +libgstcog_la-gstcog.lo: gstcog.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcog.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcog.Tpo -c -o libgstcog_la-gstcog.lo `test -f 'gstcog.c' || echo '$(srcdir)/'`gstcog.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcog.Tpo $(DEPDIR)/libgstcog_la-gstcog.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcog.c' object='libgstcog_la-gstcog.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcog.lo `test -f 'gstcog.c' || echo '$(srcdir)/'`gstcog.c + +libgstcog_la-gstcogcolorspace.lo: gstcogcolorspace.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcogcolorspace.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcogcolorspace.Tpo -c -o libgstcog_la-gstcogcolorspace.lo `test -f 'gstcogcolorspace.c' || echo '$(srcdir)/'`gstcogcolorspace.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcogcolorspace.Tpo $(DEPDIR)/libgstcog_la-gstcogcolorspace.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcogcolorspace.c' object='libgstcog_la-gstcogcolorspace.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcogcolorspace.lo `test -f 'gstcogcolorspace.c' || echo '$(srcdir)/'`gstcogcolorspace.c + +libgstcog_la-gstcogdownsample.lo: gstcogdownsample.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcogdownsample.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcogdownsample.Tpo -c -o libgstcog_la-gstcogdownsample.lo `test -f 'gstcogdownsample.c' || echo '$(srcdir)/'`gstcogdownsample.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcogdownsample.Tpo $(DEPDIR)/libgstcog_la-gstcogdownsample.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcogdownsample.c' object='libgstcog_la-gstcogdownsample.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcogdownsample.lo `test -f 'gstcogdownsample.c' || echo '$(srcdir)/'`gstcogdownsample.c + +libgstcog_la-gstcogmse.lo: gstcogmse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcogmse.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcogmse.Tpo -c -o libgstcog_la-gstcogmse.lo `test -f 'gstcogmse.c' || echo '$(srcdir)/'`gstcogmse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcogmse.Tpo $(DEPDIR)/libgstcog_la-gstcogmse.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcogmse.c' object='libgstcog_la-gstcogmse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcogmse.lo `test -f 'gstcogmse.c' || echo '$(srcdir)/'`gstcogmse.c + +libgstcog_la-gstcogscale.lo: gstcogscale.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcogscale.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcogscale.Tpo -c -o libgstcog_la-gstcogscale.lo `test -f 'gstcogscale.c' || echo '$(srcdir)/'`gstcogscale.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcogscale.Tpo $(DEPDIR)/libgstcog_la-gstcogscale.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcogscale.c' object='libgstcog_la-gstcogscale.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcogscale.lo `test -f 'gstcogscale.c' || echo '$(srcdir)/'`gstcogscale.c + +libgstcog_la-gstcogutils.lo: gstcogutils.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcogutils.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcogutils.Tpo -c -o libgstcog_la-gstcogutils.lo `test -f 'gstcogutils.c' || echo '$(srcdir)/'`gstcogutils.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcogutils.Tpo $(DEPDIR)/libgstcog_la-gstcogutils.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcogutils.c' object='libgstcog_la-gstcogutils.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcogutils.lo `test -f 'gstcogutils.c' || echo '$(srcdir)/'`gstcogutils.c + +libgstcog_la-gstcolorconvert.lo: gstcolorconvert.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcolorconvert.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcolorconvert.Tpo -c -o libgstcog_la-gstcolorconvert.lo `test -f 'gstcolorconvert.c' || echo '$(srcdir)/'`gstcolorconvert.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcolorconvert.Tpo $(DEPDIR)/libgstcog_la-gstcolorconvert.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcolorconvert.c' object='libgstcog_la-gstcolorconvert.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcolorconvert.lo `test -f 'gstcolorconvert.c' || echo '$(srcdir)/'`gstcolorconvert.c + +libgstcog_la-gstlogoinsert.lo: gstlogoinsert.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstlogoinsert.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstlogoinsert.Tpo -c -o libgstcog_la-gstlogoinsert.lo `test -f 'gstlogoinsert.c' || echo '$(srcdir)/'`gstlogoinsert.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstlogoinsert.Tpo $(DEPDIR)/libgstcog_la-gstlogoinsert.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlogoinsert.c' object='libgstcog_la-gstlogoinsert.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstlogoinsert.lo `test -f 'gstlogoinsert.c' || echo '$(srcdir)/'`gstlogoinsert.c + +libgstcog_la-gstcms.lo: gstcms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-gstcms.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-gstcms.Tpo -c -o libgstcog_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-gstcms.Tpo $(DEPDIR)/libgstcog_la-gstcms.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcms.c' object='libgstcog_la-gstcms.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-gstcms.lo `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c + +libgstcog_la-tmp-orc.lo: tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -MT libgstcog_la-tmp-orc.lo -MD -MP -MF $(DEPDIR)/libgstcog_la-tmp-orc.Tpo -c -o libgstcog_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcog_la-tmp-orc.Tpo $(DEPDIR)/libgstcog_la-tmp-orc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='tmp-orc.c' object='libgstcog_la-tmp-orc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcog_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcog_la_CFLAGS) $(CFLAGS) -c -o libgstcog_la-tmp-orc.lo `test -f 'tmp-orc.c' || echo '$(srcdir)/'`tmp-orc.c + +generate_tables-generate_tables.o: generate_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -MT generate_tables-generate_tables.o -MD -MP -MF $(DEPDIR)/generate_tables-generate_tables.Tpo -c -o generate_tables-generate_tables.o `test -f 'generate_tables.c' || echo '$(srcdir)/'`generate_tables.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_tables-generate_tables.Tpo $(DEPDIR)/generate_tables-generate_tables.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate_tables.c' object='generate_tables-generate_tables.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -c -o generate_tables-generate_tables.o `test -f 'generate_tables.c' || echo '$(srcdir)/'`generate_tables.c + +generate_tables-generate_tables.obj: generate_tables.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -MT generate_tables-generate_tables.obj -MD -MP -MF $(DEPDIR)/generate_tables-generate_tables.Tpo -c -o generate_tables-generate_tables.obj `if test -f 'generate_tables.c'; then $(CYGPATH_W) 'generate_tables.c'; else $(CYGPATH_W) '$(srcdir)/generate_tables.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_tables-generate_tables.Tpo $(DEPDIR)/generate_tables-generate_tables.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='generate_tables.c' object='generate_tables-generate_tables.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -c -o generate_tables-generate_tables.obj `if test -f 'generate_tables.c'; then $(CYGPATH_W) 'generate_tables.c'; else $(CYGPATH_W) '$(srcdir)/generate_tables.c'; fi` + +generate_tables-gstcms.o: gstcms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -MT generate_tables-gstcms.o -MD -MP -MF $(DEPDIR)/generate_tables-gstcms.Tpo -c -o generate_tables-gstcms.o `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_tables-gstcms.Tpo $(DEPDIR)/generate_tables-gstcms.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcms.c' object='generate_tables-gstcms.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -c -o generate_tables-gstcms.o `test -f 'gstcms.c' || echo '$(srcdir)/'`gstcms.c + +generate_tables-gstcms.obj: gstcms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -MT generate_tables-gstcms.obj -MD -MP -MF $(DEPDIR)/generate_tables-gstcms.Tpo -c -o generate_tables-gstcms.obj `if test -f 'gstcms.c'; then $(CYGPATH_W) 'gstcms.c'; else $(CYGPATH_W) '$(srcdir)/gstcms.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/generate_tables-gstcms.Tpo $(DEPDIR)/generate_tables-gstcms.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcms.c' object='generate_tables-gstcms.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(generate_tables_CFLAGS) $(CFLAGS) -c -o generate_tables-gstcms.obj `if test -f 'gstcms.c'; then $(CYGPATH_W) 'gstcms.c'; else $(CYGPATH_W) '$(srcdir)/gstcms.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook +check-am: all-am +check: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." + -test -z "$(BUILT_SOURCES)" || rm -f $(BUILT_SOURCES) +clean: clean-am + +clean-am: clean-generic clean-libtool clean-local clean-noinstPROGRAMS \ + clean-pluginLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: all check install install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-local clean-noinstPROGRAMS \ + clean-pluginLTLIBRARIES ctags dist-hook distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +orc-update: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h + +@HAVE_ORCC_TRUE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --implementation --include glib.h -o tmp-orc.c $(srcdir)/$(ORC_SOURCE).orc + +@HAVE_ORCC_TRUE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_TRUE@ $(orcc_v_gen)$(ORCC) $(ORCC_FLAGS) --header --include glib.h -o $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE).orc +@HAVE_ORCC_FALSE@tmp-orc.c: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c +@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.c tmp-orc.c + +@HAVE_ORCC_FALSE@$(ORC_SOURCE).h: $(srcdir)/$(ORC_SOURCE).orc $(srcdir)/$(ORC_SOURCE)-dist.c +@HAVE_ORCC_FALSE@ $(cp_v_gen)cp $(srcdir)/$(ORC_SOURCE)-dist.h $(ORC_SOURCE).h + +clean-local: clean-orc +.PHONY: clean-orc +clean-orc: + rm -f tmp-orc.c $(ORC_SOURCE).h + +dist-hook: dist-hook-orc +.PHONY: dist-hook-orc + +# we try and copy updated orc -dist files below, but don't fail if it +# doesn't work as the srcdir might not be writable +dist-hook-orc: tmp-orc.c $(ORC_SOURCE).h + $(top_srcdir)/common/gst-indent tmp-orc.c + rm -f tmp-orc.c~ + cmp -s tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || \ + cp tmp-orc.c $(srcdir)/$(ORC_SOURCE)-dist.c || true + cmp -s $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || \ + cp $(ORC_SOURCE).h $(srcdir)/$(ORC_SOURCE)-dist.h || true + cp -p tmp-orc.c $(distdir)/$(ORC_SOURCE)-dist.c + cp -p $(ORC_SOURCE).h $(distdir)/$(ORC_SOURCE)-dist.h + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/cog/cog.h b/ext/cog/cog.h new file mode 100644 index 0000000..bf58cd3 --- /dev/null +++ b/ext/cog/cog.h @@ -0,0 +1,10 @@ + +#ifndef __COG_COG_H__ +#define __COG_COG_H__ + +#include + +void cog_init (void); + +#endif + diff --git a/ext/cog/cogframe.c b/ext/cog/cogframe.c new file mode 100644 index 0000000..1993bba --- /dev/null +++ b/ext/cog/cogframe.c @@ -0,0 +1,984 @@ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include "gstcogorc.h" +#include + +#include +#include + +/** + * cog_frame_new: + * + * Creates a new CogFrame object. The created frame is uninitialized + * and has no data storage associated with it. The caller must fill + * in the required information. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new (void) +{ + CogFrame *frame; + + frame = g_malloc0 (sizeof (*frame)); + frame->refcount = 1; + + return frame; +} + +/** + * cog_frame_new_and_alloc: + * + * Creates a new CogFrame object with the requested size and format. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_and_alloc (CogMemoryDomain * domain, CogFrameFormat format, + int width, int height) +{ + return cog_frame_new_and_alloc_extended (domain, format, width, height, 0); +} + +CogFrame * +cog_frame_new_and_alloc_extended (CogMemoryDomain * domain, + CogFrameFormat format, int width, int height, int extension) +{ + CogFrame *frame = cog_frame_new (); + int bytes_pp; + int h_shift, v_shift; + int chroma_width; + int chroma_height; + + g_return_val_if_fail (width > 0, NULL); + g_return_val_if_fail (height > 0, NULL); + + frame->format = format; + frame->width = width; + frame->height = height; + frame->domain = domain; + frame->extension = extension; + + if (COG_FRAME_IS_PACKED (format)) { + g_return_val_if_fail (extension == 0, NULL); + + frame->components[0].format = format; + frame->components[0].width = width; + frame->components[0].height = height; + if (format == COG_FRAME_FORMAT_AYUV) { + frame->components[0].stride = width * 4; + } else { + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 2; + } + frame->components[0].length = frame->components[0].stride * height; + + frame->regions[0] = g_malloc (frame->components[0].length); + + frame->components[0].data = frame->regions[0]; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; + } + + switch (COG_FRAME_FORMAT_DEPTH (format)) { + case COG_FRAME_FORMAT_DEPTH_U8: + bytes_pp = 1; + break; + case COG_FRAME_FORMAT_DEPTH_S16: + bytes_pp = 2; + break; + case COG_FRAME_FORMAT_DEPTH_S32: + bytes_pp = 4; + break; + default: + g_return_val_if_reached (NULL); + bytes_pp = 0; + break; + } + + h_shift = COG_FRAME_FORMAT_H_SHIFT (format); + v_shift = COG_FRAME_FORMAT_V_SHIFT (format); + chroma_width = ROUND_UP_SHIFT (width, h_shift); + chroma_height = ROUND_UP_SHIFT (height, v_shift); + + frame->components[0].format = format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_4 ((width + extension * 2) * bytes_pp); + frame->components[0].length = + frame->components[0].stride * (frame->components[0].height + + extension * 2); + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[1].format = format; + frame->components[1].width = chroma_width; + frame->components[1].height = chroma_height; + frame->components[1].stride = + ROUND_UP_4 ((chroma_width + extension * 2) * bytes_pp); + frame->components[1].length = + frame->components[1].stride * (frame->components[1].height + + extension * 2); + frame->components[1].v_shift = v_shift; + frame->components[1].h_shift = h_shift; + + frame->components[2].format = format; + frame->components[2].width = chroma_width; + frame->components[2].height = chroma_height; + frame->components[2].stride = + ROUND_UP_4 ((chroma_width + extension * 2) * bytes_pp); + frame->components[2].length = + frame->components[2].stride * (frame->components[2].height + + extension * 2); + frame->components[2].v_shift = v_shift; + frame->components[2].h_shift = h_shift; + + frame->regions[0] = g_malloc (frame->components[0].length + + frame->components[1].length + frame->components[2].length); + + frame->components[0].data = COG_OFFSET (frame->regions[0], + frame->components[0].stride * extension + bytes_pp * extension); + frame->components[1].data = COG_OFFSET (frame->regions[0], + frame->components[0].length + + frame->components[1].stride * extension + bytes_pp * extension); + frame->components[2].data = COG_OFFSET (frame->regions[0], + frame->components[0].length + frame->components[1].length + + frame->components[2].stride * extension + bytes_pp * extension); + + return frame; +} + +/** + * cog_frame_new_from_data_YUY2: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in YUY2 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_YUY2 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_YUYV; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 2; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_YUY2: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in UYVY format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_UYVY (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_UYVY; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 2; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_YUY2: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in UYVY format, + * although the row stride is allowed to be different than what + * would normally be calculated from @width. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_UYVY_full (void *data, int width, int height, + int stride) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_UYVY; + + frame->width = width; + frame->height = height; + + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = stride; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_AYUV: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in AYUV format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_AYUV (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_AYUV; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = width * 4; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_v216: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in v216 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_v216 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_v216; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 4; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_v210: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in v210 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_v210 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_v210; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ((width + 47) / 48) * 128; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_I420: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in I420 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_I420 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_U8_420; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 2); + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * + ROUND_UP_POW2 (frame->components[0].height, 1); + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[1].format = frame->format; + frame->components[1].width = ROUND_UP_SHIFT (width, 1); + frame->components[1].height = ROUND_UP_SHIFT (height, 1); + frame->components[1].stride = ROUND_UP_POW2 (frame->components[1].width, 2); + frame->components[1].length = + frame->components[1].stride * frame->components[1].height; + frame->components[1].data = + COG_OFFSET (frame->components[0].data, frame->components[0].length); + frame->components[1].v_shift = 1; + frame->components[1].h_shift = 1; + + frame->components[2].format = frame->format; + frame->components[2].width = ROUND_UP_SHIFT (width, 1); + frame->components[2].height = ROUND_UP_SHIFT (height, 1); + frame->components[2].stride = ROUND_UP_POW2 (frame->components[2].width, 2); + frame->components[2].length = + frame->components[2].stride * frame->components[2].height; + frame->components[2].data = + COG_OFFSET (frame->components[1].data, frame->components[1].length); + frame->components[2].v_shift = 1; + frame->components[2].h_shift = 1; + + return frame; +} + +/** + * cog_frame_new_from_data_YV12: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in YV12 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_YV12 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_U8_420; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 2); + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * + ROUND_UP_POW2 (frame->components[0].height, 1); + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[2].format = frame->format; + frame->components[2].width = ROUND_UP_SHIFT (width, 1); + frame->components[2].height = ROUND_UP_SHIFT (height, 1); + frame->components[2].stride = ROUND_UP_POW2 (frame->components[2].width, 2); + frame->components[2].length = + frame->components[2].stride * frame->components[2].height; + frame->components[2].data = + COG_OFFSET (frame->components[0].data, frame->components[0].length); + frame->components[2].v_shift = 1; + frame->components[2].h_shift = 1; + + frame->components[1].format = frame->format; + frame->components[1].width = ROUND_UP_SHIFT (width, 1); + frame->components[1].height = ROUND_UP_SHIFT (height, 1); + frame->components[1].stride = ROUND_UP_POW2 (frame->components[1].width, 2); + frame->components[1].length = + frame->components[1].stride * frame->components[1].height; + frame->components[1].data = + COG_OFFSET (frame->components[2].data, frame->components[2].length); + frame->components[1].v_shift = 1; + frame->components[1].h_shift = 1; + + return frame; +} + +/** + * cog_frame_new_from_data_Y42B: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in Y42B format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_Y42B (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_U8_422; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 2); + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * + ROUND_UP_POW2 (frame->components[0].height, 1); + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[1].format = frame->format; + frame->components[1].width = ROUND_UP_SHIFT (width, 1); + frame->components[1].height = height; + frame->components[1].stride = ROUND_UP_POW2 (frame->components[1].width, 2); + frame->components[1].length = + frame->components[1].stride * frame->components[1].height; + frame->components[1].data = + COG_OFFSET (frame->components[0].data, frame->components[0].length); + frame->components[1].v_shift = 0; + frame->components[1].h_shift = 1; + + frame->components[2].format = frame->format; + frame->components[2].width = ROUND_UP_SHIFT (width, 1); + frame->components[2].height = height; + frame->components[2].stride = ROUND_UP_POW2 (frame->components[2].width, 2); + frame->components[2].length = + frame->components[2].stride * frame->components[2].height; + frame->components[2].data = + COG_OFFSET (frame->components[1].data, frame->components[1].length); + frame->components[2].v_shift = 0; + frame->components[2].h_shift = 1; + + return frame; +} + +/** + * cog_frame_new_from_data_Y444: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in Y444 format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_Y444 (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_U8_444; + + frame->width = width; + frame->height = height; + + frame->components[0].format = frame->format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_POW2 (width, 4); + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * + ROUND_UP_POW2 (frame->components[0].height, 1); + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[1].format = frame->format; + frame->components[1].width = width; + frame->components[1].height = height; + frame->components[1].stride = ROUND_UP_POW2 (width, 4); + frame->components[1].length = + frame->components[1].stride * frame->components[1].height; + frame->components[1].data = + COG_OFFSET (frame->components[0].data, frame->components[0].length); + frame->components[1].v_shift = 0; + frame->components[1].h_shift = 0; + + frame->components[2].format = frame->format; + frame->components[2].width = width; + frame->components[2].height = height; + frame->components[2].stride = ROUND_UP_POW2 (width, 4); + frame->components[2].length = + frame->components[2].stride * frame->components[2].height; + frame->components[2].data = + COG_OFFSET (frame->components[1].data, frame->components[1].length); + frame->components[2].v_shift = 0; + frame->components[2].h_shift = 0; + + return frame; +} + +/** + * cog_frame_new_from_data_RGB: + * + * Creates a new CogFrame object with the requested size using + * the data pointed to by @data. The data must be in RGB format. + * The data must remain for the lifetime of the CogFrame object. + * It is recommended to use cog_frame_set_free_callback() for + * notification when the data is no longer needed. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_new_from_data_RGB (void *data, int width, int height) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = COG_FRAME_FORMAT_RGB; + + frame->width = width; + frame->height = height; + + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_4 (width * 3); + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +static CogFrame * +cog_frame_new_from_data_RGB32 (void *data, int width, int height, int format) +{ + CogFrame *frame = cog_frame_new (); + + frame->format = format; + + frame->width = width; + frame->height = height; + + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = width * 4; + frame->components[0].data = data; + frame->components[0].length = frame->components[0].stride * height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + return frame; +} + +CogFrame * +cog_frame_new_from_data_RGBx (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_RGBx); +} + +CogFrame * +cog_frame_new_from_data_xRGB (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_xRGB); +} + +CogFrame * +cog_frame_new_from_data_BGRx (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_BGRx); +} + +CogFrame * +cog_frame_new_from_data_xBGR (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_xBGR); +} + +CogFrame * +cog_frame_new_from_data_RGBA (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_RGBA); +} + +CogFrame * +cog_frame_new_from_data_ARGB (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_ARGB); +} + +CogFrame * +cog_frame_new_from_data_BGRA (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_BGRA); +} + +CogFrame * +cog_frame_new_from_data_ABGR (void *data, int width, int height) +{ + return cog_frame_new_from_data_RGB32 (data, width, height, + COG_FRAME_FORMAT_ABGR); +} + +/** + * cog_frame_dup: + * + * Creates a new CogFrame object with the same dimensions and format + * as @frame, and copies the data from the @frame to the new object. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_dup (CogFrame * frame) +{ + return cog_frame_dup_extended (frame, 0); +} + +CogFrame * +cog_frame_dup_extended (CogFrame * frame, int extension) +{ + CogFrame *dup_frame; + + dup_frame = cog_frame_new_and_alloc_extended (frame->domain, + frame->format, frame->width, frame->height, extension); + cog_frame_convert (dup_frame, frame); + + return dup_frame; +} + +/** + * cog_frame_clone: + * + * Creates a new CogFrame object with the same dimensions and format + * as @frame. This function leaves the data in the new object + * uninitialized. + * + * Returns: a new CogFrame object + */ +CogFrame * +cog_frame_clone (CogMemoryDomain * domain, CogFrame * frame) +{ + return cog_frame_new_and_alloc (domain, + frame->format, frame->width, frame->height); +} + +/** + * cog_frame_ref: + * @frame: a frame object + * + * Increases the reference count of @frame. + * + * Returns: the value of @frame + */ +CogFrame * +cog_frame_ref (CogFrame * frame) +{ + frame->refcount++; + return frame; +} + +/** + * cog_frame_unref: + * @frame: a frame object + * + * Decreases the reference count of @frame. If the new reference + * count is 0, the frame is freed. If a frame free callback was + * set, this function is called. + * + * Returns: the value of @frame + */ +void +cog_frame_unref (CogFrame * frame) +{ + int i; + + g_return_if_fail (frame->refcount > 0); + + frame->refcount--; + if (frame->refcount == 0) { + if (frame->free) { + frame->free (frame, frame->priv); + } +#ifdef HAVE_OPENGL + if (COG_FRAME_IS_OPENGL (frame)) { + cog_opengl_frame_cleanup (frame); + } +#endif + + for (i = 0; i < 3; i++) { + if (frame->regions[i]) { + g_free (frame->regions[i]); + } + } + + if (frame->virt_frame1) { + cog_frame_unref (frame->virt_frame1); + } + if (frame->virt_frame2) { + cog_frame_unref (frame->virt_frame2); + } + if (frame->virt_priv) { + g_free (frame->virt_priv); + } + + g_free (frame); + } +} + +/** + * cog_frame_set_free_callback: + * @frame: a frame object + * @free_func: the function to call when the frame is freed + * @priv: callback key + * + * Sets a function that will be called when the object reference + * count drops to zero and the object is freed. + */ +void +cog_frame_set_free_callback (CogFrame * frame, + CogFrameFreeFunc free_func, void *priv) +{ + frame->free = free_func; + frame->priv = priv; +} + +/** + * cog_frame_convert: + * @dest: destination frame + * @src: source frame + * + * Copies data from the source frame to the destination frame, converting + * formats if necessary. Only a few conversions are supported. + */ +void +cog_frame_convert (CogFrame * dest, CogFrame * src) +{ + CogFrame *frame; + CogFrameFormat dest_format; + + g_return_if_fail (dest != NULL); + g_return_if_fail (src != NULL); + + switch (dest->format) { + case COG_FRAME_FORMAT_YUYV: + case COG_FRAME_FORMAT_UYVY: + dest_format = COG_FRAME_FORMAT_U8_422; + break; + case COG_FRAME_FORMAT_AYUV: + case COG_FRAME_FORMAT_ARGB: + dest_format = COG_FRAME_FORMAT_U8_444; + break; + default: + dest_format = dest->format; + break; + } + cog_frame_ref (src); + + frame = cog_virt_frame_new_unpack (src); + GST_DEBUG ("unpack %p", frame); + + if (COG_FRAME_FORMAT_DEPTH (dest_format) != + COG_FRAME_FORMAT_DEPTH (frame->format)) { + if (COG_FRAME_FORMAT_DEPTH (dest_format) == COG_FRAME_FORMAT_DEPTH_U8) { + frame = cog_virt_frame_new_convert_u8 (frame); + GST_DEBUG ("convert_u8 %p", frame); + } else if (COG_FRAME_FORMAT_DEPTH (dest_format) == + COG_FRAME_FORMAT_DEPTH_S16) { + frame = cog_virt_frame_new_convert_s16 (frame); + GST_DEBUG ("convert_s16 %p", frame); + } + } + + if ((dest_format & 3) != (frame->format & 3)) { + frame = cog_virt_frame_new_subsample (frame, dest_format, + COG_CHROMA_SITE_MPEG2, 2); + GST_DEBUG ("subsample %p", frame); + } + + switch (dest->format) { + case COG_FRAME_FORMAT_YUYV: + frame = cog_virt_frame_new_pack_YUY2 (frame); + GST_DEBUG ("pack_YUY2 %p", frame); + break; + case COG_FRAME_FORMAT_UYVY: + frame = cog_virt_frame_new_pack_UYVY (frame); + GST_DEBUG ("pack_UYVY %p", frame); + break; + case COG_FRAME_FORMAT_AYUV: + frame = cog_virt_frame_new_pack_AYUV (frame); + GST_DEBUG ("pack_AYUV %p", frame); + break; + default: + break; + } + + if (dest->width < frame->width || dest->height < frame->height) { + GST_DEBUG ("crop %d %d to %d %d", + frame->width, frame->height, dest->width, dest->height); + + frame = cog_virt_frame_new_crop (frame, dest->width, dest->height); + GST_DEBUG ("crop %p", frame); + } + if (dest->width > src->width || dest->height > src->height) { + frame = cog_virt_frame_new_edgeextend (frame, dest->width, dest->height); + GST_DEBUG ("edgeextend %p", frame); + } + + cog_virt_frame_render (frame, dest); + cog_frame_unref (frame); + +} + + +#if 0 +void +cog_frame_md5 (CogFrame * frame, uint32_t * state) +{ + uint8_t *line; + int x, y, k; + + state[0] = 0x67452301; + state[1] = 0xefcdab89; + state[2] = 0x98badcfe; + state[3] = 0x10325476; + + x = 0; + y = 0; + k = 0; + for (k = 0; k < 3; k++) { + for (y = 0; y < frame->components[k].height; y++) { + line = COG_FRAME_DATA_GET_LINE (&frame->components[k], y); + for (x = 0; x + 63 < frame->components[k].width; x += 64) { + oil_md5 (state, (uint32_t *) (line + x)); + } + if (x < frame->components[k].width) { + uint8_t tmp[64]; + int left; + left = frame->components[k].width - x; + memcpy (tmp, line + x, left); + memset (tmp + left, 0, 64 - left); + oil_md5 (state, (uint32_t *) tmp); + } + } + } + + GST_DEBUG + ("md5 %02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x%02x", + state[0] & 0xff, (state[0] >> 8) & 0xff, (state[0] >> 16) & 0xff, + (state[0] >> 24) & 0xff, state[1] & 0xff, (state[1] >> 8) & 0xff, + (state[1] >> 16) & 0xff, (state[1] >> 24) & 0xff, state[2] & 0xff, + (state[2] >> 8) & 0xff, (state[2] >> 16) & 0xff, (state[2] >> 24) & 0xff, + state[3] & 0xff, (state[3] >> 8) & 0xff, (state[3] >> 16) & 0xff, + (state[3] >> 24) & 0xff); +} +#endif + +void +cog_frame_split_fields (CogFrame * dest1, CogFrame * dest2, CogFrame * src) +{ + CogFrame src_tmp; + + g_return_if_fail ((src->height & 1) == 0); + + memcpy (&src_tmp, src, sizeof (src_tmp)); + + src_tmp.height = src->height / 2; + src_tmp.components[0].stride *= 2; + src_tmp.components[1].stride *= 2; + src_tmp.components[2].stride *= 2; + + cog_frame_convert (dest1, &src_tmp); + + src_tmp.components[0].data = COG_FRAME_DATA_GET_LINE (&src->components[0], 1); + src_tmp.components[1].data = COG_FRAME_DATA_GET_LINE (&src->components[1], 1); + src_tmp.components[2].data = COG_FRAME_DATA_GET_LINE (&src->components[2], 1); + + cog_frame_convert (dest2, &src_tmp); +} + +void +cog_frame_get_subdata (CogFrame * frame, CogFrameData * fd, + int component, int x, int y) +{ + CogFrameData *comp = frame->components + component; + + g_return_if_fail (COG_FRAME_FORMAT_DEPTH (comp->format) == + COG_FRAME_FORMAT_DEPTH_U8); + + fd->format = comp->format; + fd->data = COG_FRAME_DATA_GET_PIXEL_U8 (comp, x, y); + fd->stride = comp->stride; + fd->width = MAX (0, comp->width - x); + fd->height = MAX (0, comp->height - y); + fd->h_shift = comp->h_shift; + fd->v_shift = comp->v_shift; +} diff --git a/ext/cog/cogframe.h b/ext/cog/cogframe.h new file mode 100644 index 0000000..a1b013e --- /dev/null +++ b/ext/cog/cogframe.h @@ -0,0 +1,208 @@ + +#ifndef __COG_FRAME_H__ +#define __COG_FRAME_H__ + +#include + +COG_BEGIN_DECLS + +typedef struct _CogFrame CogFrame; +typedef struct _CogFrameData CogFrameData; +typedef struct _CogUpsampledFrame CogUpsampledFrame; + +typedef void (*CogFrameFreeFunc)(CogFrame *frame, void *priv); +typedef void (*CogFrameRenderFunc)(CogFrame *frame, void *dest, int component, int i); + +typedef enum _CogColorMatrix { + COG_COLOR_MATRIX_UNKNOWN = 0, + COG_COLOR_MATRIX_HDTV, + COG_COLOR_MATRIX_SDTV +} CogColorMatrix; + +typedef enum _CogChromaSite { + COG_CHROMA_SITE_UNKNOWN = 0, + COG_CHROMA_SITE_MPEG2 = 1, + COG_CHROMA_SITE_JPEG +} CogChromaSite; + +/* bit pattern: + * 0x100 - 0: normal, 1: indirect (packed) + * 0x001 - horizontal chroma subsampling: 0: 1, 1: 2 + * 0x002 - vertical chroma subsampling: 0: 1, 1: 2 + * 0x00c - depth: 0: u8, 1: s16, 2: s32 + * */ +typedef enum _CogFrameFormat { + COG_FRAME_FORMAT_U8_444 = 0x00, + COG_FRAME_FORMAT_U8_422 = 0x01, + COG_FRAME_FORMAT_U8_420 = 0x03, + + COG_FRAME_FORMAT_S16_444 = 0x04, + COG_FRAME_FORMAT_S16_422 = 0x05, + COG_FRAME_FORMAT_S16_420 = 0x07, + + COG_FRAME_FORMAT_S32_444 = 0x08, + COG_FRAME_FORMAT_S32_422 = 0x09, + COG_FRAME_FORMAT_S32_420 = 0x0b, + + /* indirectly supported */ + COG_FRAME_FORMAT_YUYV = 0x100, /* YUYV order */ + COG_FRAME_FORMAT_UYVY = 0x101, /* UYVY order */ + COG_FRAME_FORMAT_AYUV = 0x102, + COG_FRAME_FORMAT_RGB = 0x104, + COG_FRAME_FORMAT_v216 = 0x105, + COG_FRAME_FORMAT_v210 = 0x106, + COG_FRAME_FORMAT_RGBx = 0x110, + COG_FRAME_FORMAT_xRGB = 0x111, + COG_FRAME_FORMAT_BGRx = 0x112, + COG_FRAME_FORMAT_xBGR = 0x113, + COG_FRAME_FORMAT_RGBA = 0x114, + COG_FRAME_FORMAT_ARGB = 0x115, + COG_FRAME_FORMAT_BGRA = 0x116, + COG_FRAME_FORMAT_ABGR = 0x117, +} CogFrameFormat; + +#define COG_FRAME_FORMAT_DEPTH(format) ((format) & 0xc) +#define COG_FRAME_FORMAT_DEPTH_U8 0x00 +#define COG_FRAME_FORMAT_DEPTH_S16 0x04 +#define COG_FRAME_FORMAT_DEPTH_S32 0x08 + +#define COG_FRAME_FORMAT_H_SHIFT(format) ((format) & 0x1) +#define COG_FRAME_FORMAT_V_SHIFT(format) (((format)>>1) & 0x1) + +#define COG_FRAME_IS_PACKED(format) (((format)>>8) & 0x1) + +#define COG_FRAME_CACHE_SIZE 8 + +struct _CogFrameData { + CogFrameFormat format; + void *data; + int stride; + int width; + int height; + int length; + int h_shift; + int v_shift; +}; + +struct _CogFrame { + int refcount; + CogFrameFreeFunc free; + CogMemoryDomain *domain; + void *regions[3]; + void *priv; + + CogFrameFormat format; + int width; + int height; + + CogFrameData components[3]; + + int is_virtual; + int cache_offset[3]; + int cached_lines[3][COG_FRAME_CACHE_SIZE]; + CogFrame *virt_frame1; + CogFrame *virt_frame2; + void (*render_line) (CogFrame *frame, void *dest, int component, int i); + void *virt_priv; + void *virt_priv2; + int param1; + int param2; + + int extension; +}; + +struct _CogUpsampledFrame { + CogFrame *frames[4]; + void *components[3]; +}; + +#define COG_FRAME_DATA_GET_LINE(fd,i) (COG_OFFSET((fd)->data,(fd)->stride*(i))) +#define COG_FRAME_DATA_GET_PIXEL_U8(fd,i,j) ((uint8_t *)COG_OFFSET((fd)->data,(fd)->stride*(j)+(i))) +#define COG_FRAME_DATA_GET_PIXEL_S16(fd,i,j) ((int16_t *)COG_OFFSET((fd)->data,(fd)->stride*(j)+(i)*sizeof(int16_t))) + +CogFrame * cog_frame_new (void); +CogFrame * cog_frame_new_and_alloc (CogMemoryDomain *domain, + CogFrameFormat format, int width, int height); +CogFrame * cog_frame_new_from_data_I420 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_YV12 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_YUY2 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_UYVY (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_UYVY_full (void *data, int width, int height, int stride); +CogFrame * cog_frame_new_from_data_AYUV (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_v216 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_v210 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_Y42B (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_Y444 (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_RGB (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_RGBx (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_xRGB (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_BGRx (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_xBGR (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_RGBA (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_ARGB (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_BGRA (void *data, int width, int height); +CogFrame * cog_frame_new_from_data_ABGR (void *data, int width, int height); +void cog_frame_set_free_callback (CogFrame *frame, + CogFrameFreeFunc free_func, void *priv); +void cog_frame_unref (CogFrame *frame); +CogFrame *cog_frame_ref (CogFrame *frame); +CogFrame *cog_frame_dup (CogFrame *frame); +CogFrame *cog_frame_clone (CogMemoryDomain *domain, CogFrame *frame); + +void cog_frame_convert (CogFrame *dest, CogFrame *src); +void cog_frame_add (CogFrame *dest, CogFrame *src); +void cog_frame_subtract (CogFrame *dest, CogFrame *src); +void cog_frame_shift_left (CogFrame *frame, int shift); +void cog_frame_shift_right (CogFrame *frame, int shift); + +//void cog_frame_downsample (CogFrame *dest, CogFrame *src); +void cog_frame_upsample_horiz (CogFrame *dest, CogFrame *src); +void cog_frame_upsample_vert (CogFrame *dest, CogFrame *src); +double cog_frame_calculate_average_luma (CogFrame *frame); + +CogFrame * cog_frame_convert_to_444 (CogFrame *frame); +void cog_frame_md5 (CogFrame *frame, uint32_t *state); + +CogFrame * cog_frame_new_and_alloc_extended (CogMemoryDomain *domain, + CogFrameFormat format, int width, int height, int extension); +CogFrame *cog_frame_dup_extended (CogFrame *frame, int extension); +void cog_frame_edge_extend (CogFrame *frame, int width, int height); +void cog_frame_zero_extend (CogFrame *frame, int width, int height); +void cog_frame_mark (CogFrame *frame, int value); +void cog_frame_mc_edgeextend (CogFrame *frame); + +void cog_frame_data_get_codeblock (CogFrameData *dest, CogFrameData *src, + int x, int y, int horiz_codeblocks, int vert_codeblocks); + +CogUpsampledFrame * cog_upsampled_frame_new (CogFrame *frame); +void cog_upsampled_frame_free (CogUpsampledFrame *df); +void cog_upsampled_frame_upsample (CogUpsampledFrame *df); +#ifdef ENABLE_MOTION_REF +int cog_upsampled_frame_get_pixel_prec0 (CogUpsampledFrame *upframe, int k, + int x, int y); +int cog_upsampled_frame_get_pixel_prec1 (CogUpsampledFrame *upframe, int k, + int x, int y); +int cog_upsampled_frame_get_pixel_prec3 (CogUpsampledFrame *upframe, int k, + int x, int y); +int cog_upsampled_frame_get_pixel_precN (CogUpsampledFrame *upframe, int k, + int x, int y, int mv_precision); +#endif +void cog_upsampled_frame_get_block_precN (CogUpsampledFrame *upframe, int k, + int x, int y, int prec, CogFrameData *dest); +void cog_upsampled_frame_get_block_fast_precN (CogUpsampledFrame *upframe, int k, + int x, int y, int prec, CogFrameData *dest, CogFrameData *fd); +void cog_upsampled_frame_get_subdata_prec0 (CogUpsampledFrame *upframe, + int k, int x, int y, CogFrameData *fd); +void cog_upsampled_frame_get_subdata_prec1 (CogUpsampledFrame *upframe, + int k, int x, int y, CogFrameData *fd); + +void cog_frame_get_subdata (CogFrame *frame, CogFrameData *fd, + int comp, int x, int y); + +void cog_frame_split_fields (CogFrame *dest1, CogFrame *dest2, CogFrame *src); + + +COG_END_DECLS + +#endif + diff --git a/ext/cog/cogtables.c b/ext/cog/cogtables.c new file mode 100644 index 0000000..e83ba22 --- /dev/null +++ b/ext/cog/cogtables.c @@ -0,0 +1,516 @@ +/* This file is autogenerated. Do not edit.*/ +#include +gint8 cog_resample_table_4tap[256][4] = { + {0, 64, 0, 0} + , /* 0.000 0.000 0.000 -0.000 64 */ + {0, 64, 0, 0} + , /* -0.248 -0.002 0.251 -0.001 64 */ + {0, 64, 0, 0} + , /* -0.492 -0.008 0.504 -0.004 64 */ + {-1, 64, 1, 0} + , /* 0.267 -0.017 -0.241 -0.009 64 */ + {-1, 64, 1, 0} + , /* 0.031 -0.031 0.015 -0.015 64 */ + {-1, 64, 1, 0} + , /* -0.202 -0.048 0.274 -0.024 64 */ + {-1, 64, 1, 0} + , /* -0.431 -0.069 0.534 -0.034 64 */ + {-2, 64, 2, 0} + , /* 0.344 -0.094 -0.203 -0.047 64 */ + {-2, 64, 2, 0} + , /* 0.123 -0.123 0.061 -0.061 64 */ + {-2, 64, 2, 0} + , /* -0.095 -0.155 0.326 -0.076 64 */ + {-2, 64, 2, 0} + , /* -0.309 -0.191 0.594 -0.094 64 */ + {-3, 64, 3, 0} + , /* 0.481 -0.231 -0.137 -0.113 64 */ + {-3, 64, 3, 0} + , /* 0.275 -0.275 0.134 -0.134 64 */ + {-3, 64, 3, 0} + , /* 0.072 -0.322 0.407 -0.157 64 */ + {-3, 63, 4, 0} + , /* -0.128 0.628 -0.319 -0.181 64 */ + {-3, 63, 4, 0} + , /* -0.323 0.573 -0.043 -0.207 64 */ + {-4, 64, 4, 0} + , /* 0.484 -0.484 0.234 -0.234 64 */ + {-4, 63, 5, 0} + , /* 0.296 0.454 -0.487 -0.263 64 */ + {-4, 63, 5, 0} + , /* 0.111 0.389 -0.206 -0.294 64 */ + {-4, 63, 5, 0} + , /* -0.071 0.321 0.076 -0.326 64 */ + {-4, 63, 5, 0} + , /* -0.249 0.249 0.360 -0.360 64 */ + {-5, 63, 6, 0} + , /* 0.576 0.174 -0.355 -0.395 64 */ + {-5, 63, 6, 0} + , /* 0.405 0.095 -0.068 -0.432 64 */ + {-5, 63, 6, 0} + , /* 0.237 0.013 0.220 -0.470 64 */ + {-5, 63, 7, -1} + , /* 0.072 -0.072 -0.490 0.490 64 */ + {-5, 63, 7, -1} + , /* -0.089 -0.161 -0.199 0.449 64 */ + {-5, 63, 7, -1} + , /* -0.247 -0.253 0.093 0.407 64 */ + {-5, 63, 7, -1} + , /* -0.401 -0.349 0.387 0.363 64 */ + {-6, 63, 8, -1} + , /* 0.448 -0.448 -0.318 0.318 64 */ + {-6, 63, 8, -1} + , /* 0.300 -0.550 -0.022 0.272 64 */ + {-6, 63, 8, -1} + , /* 0.155 -0.655 0.276 0.224 64 */ + {-6, 62, 9, -1} + , /* 0.013 0.237 -0.425 0.175 64 */ + {-6, 62, 9, -1} + , /* -0.125 0.125 -0.125 0.125 64 */ + {-6, 62, 9, -1} + , /* -0.260 0.010 0.176 0.074 64 */ + {-6, 62, 9, -1} + , /* -0.392 -0.108 0.479 0.021 64 */ + {-7, 62, 10, -1} + , /* 0.479 -0.229 -0.217 -0.033 64 */ + {-7, 62, 10, -1} + , /* 0.353 -0.353 0.088 -0.088 64 */ + {-7, 62, 10, -1} + , /* 0.231 -0.481 0.394 -0.144 64 */ + {-7, 61, 11, -1} + , /* 0.111 0.389 -0.299 -0.201 64 */ + {-7, 61, 11, -1} + , /* -0.006 0.256 0.009 -0.259 64 */ + {-7, 61, 11, -1} + , /* -0.119 0.119 0.318 -0.318 64 */ + {-7, 61, 12, -2} + , /* -0.230 -0.020 -0.371 0.621 64 */ + {-7, 61, 12, -2} + , /* -0.337 -0.163 -0.060 0.560 64 */ + {-7, 61, 12, -2} + , /* -0.442 -0.308 0.252 0.498 64 */ + {-8, 61, 13, -2} + , /* 0.456 -0.456 -0.434 0.434 64 */ + {-8, 61, 13, -2} + , /* 0.357 -0.607 -0.120 0.370 64 */ + {-8, 60, 13, -1} + , /* 0.262 0.238 0.195 -0.695 64 */ + {-8, 60, 14, -2} + , /* 0.168 0.082 -0.489 0.239 64 */ + {-8, 60, 14, -2} + , /* 0.078 -0.078 -0.172 0.172 64 */ + {-8, 60, 14, -2} + , /* -0.009 -0.241 0.146 0.104 64 */ + {-8, 60, 14, -2} + , /* -0.094 -0.406 0.465 0.035 64 */ + {-8, 59, 15, -2} + , /* -0.176 0.426 -0.216 -0.034 64 */ + {-8, 59, 15, -2} + , /* -0.255 0.255 0.104 -0.104 64 */ + {-8, 59, 15, -2} + , /* -0.332 0.082 0.425 -0.175 64 */ + {-9, 59, 16, -2} + , /* 0.595 -0.095 -0.253 -0.247 64 */ + {-9, 59, 16, -2} + , /* 0.524 -0.274 0.069 -0.319 64 */ + {-9, 59, 16, -2} + , /* 0.455 -0.455 0.393 -0.393 64 */ + {-9, 58, 17, -2} + , /* 0.389 0.361 -0.284 -0.466 64 */ + {-9, 58, 17, -2} + , /* 0.326 0.174 0.041 -0.541 64 */ + {-9, 58, 17, -2} + , /* 0.265 -0.015 0.366 -0.616 64 */ + {-9, 58, 18, -3} + , /* 0.207 -0.207 -0.308 0.308 64 */ + {-9, 58, 18, -3} + , /* 0.152 -0.402 0.018 0.232 64 */ + {-9, 58, 18, -3} + , /* 0.099 -0.599 0.345 0.155 64 */ + {-9, 57, 19, -3} + , /* 0.048 0.202 -0.328 0.078 64 */ + {-9, 57, 19, -3} + , /* 0.000 0.000 0.000 0.000 64 */ + {-9, 57, 19, -3} + , /* -0.046 -0.204 0.328 -0.078 64 */ + {-9, 56, 20, -3} + , /* -0.089 0.589 -0.343 -0.157 64 */ + {-9, 56, 20, -3} + , /* -0.130 0.380 -0.014 -0.236 64 */ + {-9, 56, 20, -3} + , /* -0.168 0.168 0.316 -0.316 64 */ + {-9, 56, 21, -4} + , /* -0.204 -0.046 -0.354 0.604 64 */ + {-9, 56, 21, -4} + , /* -0.238 -0.262 -0.023 0.523 64 */ + {-9, 56, 21, -4} + , /* -0.270 -0.480 0.308 0.442 64 */ + {-9, 55, 22, -4} + , /* -0.299 0.299 -0.361 0.361 64 */ + {-9, 55, 22, -4} + , /* -0.326 0.076 -0.030 0.280 64 */ + {-9, 55, 22, -4} + , /* -0.350 -0.150 0.302 0.198 64 */ + {-9, 54, 23, -4} + , /* -0.373 0.623 -0.366 0.116 64 */ + {-9, 54, 23, -4} + , /* -0.393 0.393 -0.034 0.034 64 */ + {-9, 54, 23, -4} + , /* -0.411 0.161 0.299 -0.049 64 */ + {-10, 54, 24, -4} + , /* 0.573 -0.073 -0.369 -0.131 64 */ + {-10, 54, 24, -4} + , /* 0.559 -0.309 -0.036 -0.214 64 */ + {-9, 53, 24, -4} + , /* -0.453 0.453 0.297 -0.297 64 */ + {-10, 53, 25, -4} + , /* 0.537 0.213 -0.370 -0.380 64 */ + {-10, 53, 25, -4} + , /* 0.530 -0.030 -0.037 -0.463 64 */ + {-9, 53, 25, -5} + , /* -0.476 -0.274 0.296 0.454 64 */ + {-9, 52, 26, -5} + , /* -0.480 0.480 -0.370 0.370 64 */ + {-9, 52, 26, -5} + , /* -0.481 0.231 -0.037 0.287 64 */ + {-9, 52, 26, -5} + , /* -0.481 -0.019 0.296 0.204 64 */ + {-10, 52, 27, -5} + , /* 0.521 -0.271 -0.370 0.120 64 */ + {-9, 51, 27, -5} + , /* -0.475 0.475 -0.037 0.037 64 */ + {-9, 51, 27, -5} + , /* -0.469 0.219 0.296 -0.046 64 */ + {-10, 51, 28, -5} + , /* 0.539 -0.039 -0.371 -0.129 64 */ + {-10, 51, 28, -5} + , /* 0.549 -0.299 -0.038 -0.212 64 */ + {-9, 50, 28, -5} + , /* -0.439 0.439 0.295 -0.295 64 */ + {-10, 50, 29, -5} + , /* 0.574 0.176 -0.372 -0.378 64 */ + {-9, 50, 29, -6} + , /* -0.411 -0.089 -0.040 0.540 64 */ + {-9, 50, 29, -6} + , /* -0.394 -0.356 0.293 0.457 64 */ + {-9, 49, 30, -6} + , /* -0.375 0.375 -0.375 0.375 64 */ + {-9, 49, 30, -6} + , /* -0.355 0.105 -0.043 0.293 64 */ + {-9, 49, 30, -6} + , /* -0.333 -0.167 0.289 0.211 64 */ + {-9, 48, 31, -6} + , /* -0.309 0.559 -0.380 0.130 64 */ + {-9, 48, 31, -6} + , /* -0.283 0.283 -0.049 0.049 64 */ + {-9, 48, 31, -6} + , /* -0.256 0.006 0.282 -0.032 64 */ + {-9, 48, 31, -6} + , /* -0.228 -0.272 0.612 -0.112 64 */ + {-9, 47, 32, -6} + , /* -0.198 0.448 -0.058 -0.192 64 */ + {-9, 47, 32, -6} + , /* -0.166 0.166 0.271 -0.271 64 */ + {-9, 47, 32, -6} + , /* -0.133 -0.117 0.601 -0.351 64 */ + {-9, 47, 33, -7} + , /* -0.098 -0.402 -0.071 0.571 64 */ + {-9, 46, 33, -6} + , /* -0.062 0.312 0.257 -0.507 64 */ + {-9, 46, 34, -7} + , /* -0.024 0.024 -0.415 0.415 64 */ + {-9, 46, 34, -7} + , /* 0.015 -0.265 -0.088 0.338 64 */ + {-9, 46, 34, -7} + , /* 0.055 -0.555 0.239 0.261 64 */ + {-9, 45, 35, -7} + , /* 0.097 0.153 -0.435 0.185 64 */ + {-9, 45, 35, -7} + , /* 0.141 -0.141 -0.109 0.109 64 */ + {-9, 45, 35, -7} + , /* 0.185 -0.435 0.216 0.034 64 */ + {-9, 44, 36, -7} + , /* 0.231 0.269 -0.460 -0.040 64 */ + {-9, 44, 36, -7} + , /* 0.278 -0.028 -0.137 -0.113 64 */ + {-9, 44, 36, -7} + , /* 0.327 -0.327 0.186 -0.186 64 */ + {-9, 43, 37, -7} + , /* 0.377 0.373 -0.492 -0.258 64 */ + {-9, 43, 37, -7} + , /* 0.428 0.072 -0.170 -0.330 64 */ + {-9, 43, 37, -7} + , /* 0.480 -0.230 0.151 -0.401 64 */ + {-8, 42, 37, -7} + , /* -0.467 0.467 0.471 -0.471 64 */ + {-8, 42, 38, -8} + , /* -0.412 0.162 -0.210 0.460 64 */ + {-8, 42, 38, -8} + , /* -0.357 -0.143 0.108 0.392 64 */ + {-8, 42, 38, -8} + , /* -0.300 -0.450 0.426 0.324 64 */ + {-8, 41, 39, -8} + , /* -0.242 0.242 -0.258 0.258 64 */ + {-8, 41, 39, -8} + , /* -0.183 -0.067 0.058 0.192 64 */ + {-8, 41, 39, -8} + , /* -0.123 -0.377 0.373 0.127 64 */ + {-8, 40, 40, -8} + , /* -0.062 0.312 -0.313 0.063 64 */ + {-8, 40, 40, -8} + , /* 0.000 0.000 0.000 0.000 64 */ + {-8, 40, 40, -8} + , /* 0.063 -0.313 0.312 -0.062 64 */ + {-8, 39, 41, -8} + , /* 0.127 0.373 -0.377 -0.123 64 */ + {-8, 39, 41, -8} + , /* 0.192 0.058 -0.067 -0.183 64 */ + {-8, 39, 41, -8} + , /* 0.258 -0.258 0.242 -0.242 64 */ + {-8, 38, 42, -8} + , /* 0.324 0.426 -0.450 -0.300 64 */ + {-8, 38, 42, -8} + , /* 0.392 0.108 -0.143 -0.357 64 */ + {-8, 38, 42, -8} + , /* 0.460 -0.210 0.162 -0.412 64 */ + {-7, 37, 42, -8} + , /* -0.471 0.471 0.467 -0.467 64 */ + {-7, 37, 43, -9} + , /* -0.401 0.151 -0.230 0.480 64 */ + {-7, 37, 43, -9} + , /* -0.330 -0.170 0.072 0.428 64 */ + {-7, 37, 43, -9} + , /* -0.258 -0.492 0.373 0.377 64 */ + {-7, 36, 44, -9} + , /* -0.186 0.186 -0.327 0.327 64 */ + {-7, 36, 44, -9} + , /* -0.113 -0.137 -0.028 0.278 64 */ + {-7, 36, 44, -9} + , /* -0.040 -0.460 0.269 0.231 64 */ + {-7, 35, 45, -9} + , /* 0.034 0.216 -0.435 0.185 64 */ + {-7, 35, 45, -9} + , /* 0.109 -0.109 -0.141 0.141 64 */ + {-7, 35, 45, -9} + , /* 0.185 -0.435 0.153 0.097 64 */ + {-7, 34, 46, -9} + , /* 0.261 0.239 -0.555 0.055 64 */ + {-7, 34, 46, -9} + , /* 0.338 -0.088 -0.265 0.015 64 */ + {-7, 34, 46, -9} + , /* 0.415 -0.415 0.024 -0.024 64 */ + {-6, 33, 46, -9} + , /* -0.507 0.257 0.312 -0.062 64 */ + {-7, 33, 47, -9} + , /* 0.571 -0.071 -0.402 -0.098 64 */ + {-6, 32, 47, -9} + , /* -0.351 0.601 -0.117 -0.133 64 */ + {-6, 32, 47, -9} + , /* -0.271 0.271 0.166 -0.166 64 */ + {-6, 32, 47, -9} + , /* -0.192 -0.058 0.448 -0.198 64 */ + {-6, 31, 48, -9} + , /* -0.112 0.612 -0.272 -0.228 64 */ + {-6, 31, 48, -9} + , /* -0.032 0.282 0.006 -0.256 64 */ + {-6, 31, 48, -9} + , /* 0.049 -0.049 0.283 -0.283 64 */ + {-6, 31, 48, -9} + , /* 0.130 -0.380 0.559 -0.309 64 */ + {-6, 30, 49, -9} + , /* 0.211 0.289 -0.167 -0.333 64 */ + {-6, 30, 49, -9} + , /* 0.293 -0.043 0.105 -0.355 64 */ + {-6, 30, 49, -9} + , /* 0.375 -0.375 0.375 -0.375 64 */ + {-6, 29, 50, -9} + , /* 0.457 0.293 -0.356 -0.394 64 */ + {-6, 29, 50, -9} + , /* 0.540 -0.040 -0.089 -0.411 64 */ + {-5, 29, 50, -10} + , /* -0.378 -0.372 0.176 0.574 64 */ + {-5, 28, 50, -9} + , /* -0.295 0.295 0.439 -0.439 64 */ + {-5, 28, 51, -10} + , /* -0.212 -0.038 -0.299 0.549 64 */ + {-5, 28, 51, -10} + , /* -0.129 -0.371 -0.039 0.539 64 */ + {-5, 27, 51, -9} + , /* -0.046 0.296 0.219 -0.469 64 */ + {-5, 27, 51, -9} + , /* 0.037 -0.037 0.475 -0.475 64 */ + {-5, 27, 52, -10} + , /* 0.120 -0.370 -0.271 0.521 64 */ + {-5, 26, 52, -9} + , /* 0.204 0.296 -0.019 -0.481 64 */ + {-5, 26, 52, -9} + , /* 0.287 -0.037 0.231 -0.481 64 */ + {-5, 26, 52, -9} + , /* 0.370 -0.370 0.480 -0.480 64 */ + {-5, 25, 53, -9} + , /* 0.454 0.296 -0.274 -0.476 64 */ + {-4, 25, 53, -10} + , /* -0.463 -0.037 -0.030 0.530 64 */ + {-4, 25, 53, -10} + , /* -0.380 -0.370 0.213 0.537 64 */ + {-4, 24, 53, -9} + , /* -0.297 0.297 0.453 -0.453 64 */ + {-4, 24, 54, -10} + , /* -0.214 -0.036 -0.309 0.559 64 */ + {-4, 24, 54, -10} + , /* -0.131 -0.369 -0.073 0.573 64 */ + {-4, 23, 54, -9} + , /* -0.049 0.299 0.161 -0.411 64 */ + {-4, 23, 54, -9} + , /* 0.034 -0.034 0.393 -0.393 64 */ + {-4, 23, 54, -9} + , /* 0.116 -0.366 0.623 -0.373 64 */ + {-4, 22, 55, -9} + , /* 0.198 0.302 -0.150 -0.350 64 */ + {-4, 22, 55, -9} + , /* 0.280 -0.030 0.076 -0.326 64 */ + {-4, 22, 55, -9} + , /* 0.361 -0.361 0.299 -0.299 64 */ + {-4, 21, 56, -9} + , /* 0.442 0.308 -0.480 -0.270 64 */ + {-4, 21, 56, -9} + , /* 0.523 -0.023 -0.262 -0.238 64 */ + {-4, 21, 56, -9} + , /* 0.604 -0.354 -0.046 -0.204 64 */ + {-3, 20, 56, -9} + , /* -0.316 0.316 0.168 -0.168 64 */ + {-3, 20, 56, -9} + , /* -0.236 -0.014 0.380 -0.130 64 */ + {-3, 20, 56, -9} + , /* -0.157 -0.343 0.589 -0.089 64 */ + {-3, 19, 57, -9} + , /* -0.078 0.328 -0.204 -0.046 64 */ + {-3, 19, 57, -9} + , /* 0.000 0.000 0.000 0.000 64 */ + {-3, 19, 57, -9} + , /* 0.078 -0.328 0.202 0.048 64 */ + {-3, 18, 58, -9} + , /* 0.155 0.345 -0.599 0.099 64 */ + {-3, 18, 58, -9} + , /* 0.232 0.018 -0.402 0.152 64 */ + {-3, 18, 58, -9} + , /* 0.308 -0.308 -0.207 0.207 64 */ + {-2, 17, 58, -9} + , /* -0.616 0.366 -0.015 0.265 64 */ + {-2, 17, 58, -9} + , /* -0.541 0.041 0.174 0.326 64 */ + {-2, 17, 58, -9} + , /* -0.466 -0.284 0.361 0.389 64 */ + {-2, 16, 59, -9} + , /* -0.393 0.393 -0.455 0.455 64 */ + {-2, 16, 59, -9} + , /* -0.319 0.069 -0.274 0.524 64 */ + {-2, 16, 59, -9} + , /* -0.247 -0.253 -0.095 0.595 64 */ + {-2, 15, 59, -8} + , /* -0.175 0.425 0.082 -0.332 64 */ + {-2, 15, 59, -8} + , /* -0.104 0.104 0.255 -0.255 64 */ + {-2, 15, 59, -8} + , /* -0.034 -0.216 0.426 -0.176 64 */ + {-2, 14, 60, -8} + , /* 0.035 0.465 -0.406 -0.094 64 */ + {-2, 14, 60, -8} + , /* 0.104 0.146 -0.241 -0.009 64 */ + {-2, 14, 60, -8} + , /* 0.172 -0.172 -0.078 0.078 64 */ + {-2, 14, 60, -8} + , /* 0.239 -0.489 0.082 0.168 64 */ + {-1, 13, 60, -8} + , /* -0.695 0.195 0.238 0.262 64 */ + {-2, 13, 61, -8} + , /* 0.370 -0.120 -0.607 0.357 64 */ + {-2, 13, 61, -8} + , /* 0.434 -0.434 -0.456 0.456 64 */ + {-2, 12, 61, -7} + , /* 0.498 0.252 -0.308 -0.442 64 */ + {-2, 12, 61, -7} + , /* 0.560 -0.060 -0.163 -0.337 64 */ + {-2, 12, 61, -7} + , /* 0.621 -0.371 -0.020 -0.230 64 */ + {-1, 11, 61, -7} + , /* -0.318 0.318 0.119 -0.119 64 */ + {-1, 11, 61, -7} + , /* -0.259 0.009 0.256 -0.006 64 */ + {-1, 11, 61, -7} + , /* -0.201 -0.299 0.389 0.111 64 */ + {-1, 10, 62, -7} + , /* -0.144 0.394 -0.481 0.231 64 */ + {-1, 10, 62, -7} + , /* -0.088 0.088 -0.353 0.353 64 */ + {-1, 10, 62, -7} + , /* -0.033 -0.217 -0.229 0.479 64 */ + {-1, 9, 62, -6} + , /* 0.021 0.479 -0.108 -0.392 64 */ + {-1, 9, 62, -6} + , /* 0.074 0.176 0.010 -0.260 64 */ + {-1, 9, 62, -6} + , /* 0.125 -0.125 0.125 -0.125 64 */ + {-1, 9, 62, -6} + , /* 0.175 -0.425 0.237 0.013 64 */ + {-1, 8, 63, -6} + , /* 0.224 0.276 -0.655 0.155 64 */ + {-1, 8, 63, -6} + , /* 0.272 -0.022 -0.550 0.300 64 */ + {-1, 8, 63, -6} + , /* 0.318 -0.318 -0.448 0.448 64 */ + {-1, 7, 63, -5} + , /* 0.363 0.387 -0.349 -0.401 64 */ + {-1, 7, 63, -5} + , /* 0.407 0.093 -0.253 -0.247 64 */ + {-1, 7, 63, -5} + , /* 0.449 -0.199 -0.161 -0.089 64 */ + {-1, 7, 63, -5} + , /* 0.490 -0.490 -0.072 0.072 64 */ + {0, 6, 63, -5} + , /* -0.470 0.220 0.013 0.237 64 */ + {0, 6, 63, -5} + , /* -0.432 -0.068 0.095 0.405 64 */ + {0, 6, 63, -5} + , /* -0.395 -0.355 0.174 0.576 64 */ + {0, 5, 63, -4} + , /* -0.360 0.360 0.249 -0.249 64 */ + {0, 5, 63, -4} + , /* -0.326 0.076 0.321 -0.071 64 */ + {0, 5, 63, -4} + , /* -0.294 -0.206 0.389 0.111 64 */ + {0, 5, 63, -4} + , /* -0.263 -0.487 0.454 0.296 64 */ + {0, 4, 64, -4} + , /* -0.234 0.234 -0.484 0.484 64 */ + {0, 4, 63, -3} + , /* -0.207 -0.043 0.573 -0.323 64 */ + {0, 4, 63, -3} + , /* -0.181 -0.319 0.628 -0.128 64 */ + {0, 3, 64, -3} + , /* -0.157 0.407 -0.322 0.072 64 */ + {0, 3, 64, -3} + , /* -0.134 0.134 -0.275 0.275 64 */ + {0, 3, 64, -3} + , /* -0.113 -0.137 -0.231 0.481 64 */ + {0, 2, 64, -2} + , /* -0.094 0.594 -0.191 -0.309 64 */ + {0, 2, 64, -2} + , /* -0.076 0.326 -0.155 -0.095 64 */ + {0, 2, 64, -2} + , /* -0.061 0.061 -0.123 0.123 64 */ + {0, 2, 64, -2} + , /* -0.047 -0.203 -0.094 0.344 64 */ + {0, 1, 64, -1} + , /* -0.034 0.534 -0.069 -0.431 64 */ + {0, 1, 64, -1} + , /* -0.024 0.274 -0.048 -0.202 64 */ + {0, 1, 64, -1} + , /* -0.015 0.015 -0.031 0.031 64 */ + {0, 1, 64, -1} + , /* -0.009 -0.241 -0.017 0.267 64 */ + {0, 0, 64, 0} + , /* -0.004 0.504 -0.008 -0.492 64 */ + {0, 0, 64, 0} + , /* -0.001 0.251 -0.002 -0.248 64 */ +}; diff --git a/ext/cog/cogutils.h b/ext/cog/cogutils.h new file mode 100644 index 0000000..6d09757 --- /dev/null +++ b/ext/cog/cogutils.h @@ -0,0 +1,108 @@ + +#ifndef __COG_UTILS_H__ +#define __COG_UTILS_H__ + +#if defined(_MSC_VER) +#ifndef COG_NO_STDINT_TYPEDEFS +typedef __int8 int8_t; +typedef __int16 int16_t; +typedef __int32 int32_t; +typedef unsigned __int8 uint8_t; +typedef unsigned __int16 uint16_t; +typedef unsigned __int32 uint32_t; +#endif +#else +#include "_stdint.h" +#endif + +#ifndef TRUE +#define TRUE 1 +#endif +#ifndef FALSE +#define FALSE 0 +#endif + +typedef void CogMemoryDomain; +typedef unsigned int cog_bool; + +#ifdef COG_ENABLE_UNSTABLE_API + +#define COG_PICTURE_NUMBER_INVALID (-1) + +#define ARRAY_SIZE(x) (sizeof(x)/sizeof(x[0])) +#define DIVIDE_ROUND_UP(a,b) (((a) + (b) - 1)/(b)) +#ifndef MIN +#define MIN(a,b) ((a)<(b) ? (a) : (b)) +#endif +#ifndef MAX +#define MAX(a,b) ((a)>(b) ? (a) : (b)) +#endif +#ifndef CLAMP +#define CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) +#endif +#define NEED_CLAMP(x,y,a,b) ((x) < (a) || (y) > (b)) +#define ROUND_UP_SHIFT(x,y) (((x) + (1<<(y)) - 1)>>(y)) +#define ROUND_UP_POW2(x,y) (((x) + (1<<(y)) - 1)&((~0)<<(y))) +#define ROUND_UP_2(x) ROUND_UP_POW2(x,1) +#define ROUND_UP_4(x) ROUND_UP_POW2(x,2) +#define ROUND_UP_8(x) ROUND_UP_POW2(x,3) +#define ROUND_UP_64(x) ROUND_UP_POW2(x,6) +#define OFFSET(ptr,offset) ((void *)(((uint8_t *)(ptr)) + (offset))) +#define ROUND_SHIFT(x,y) (((x) + (1<<((y)-1)))>>(y)) + +#define cog_divide(a,b) (((a)<0)?(((a) - (b) + 1)/(b)):((a)/(b))) + +#endif + +#define COG_OFFSET(ptr,offset) ((void *)(((uint8_t *)(ptr)) + (offset))) +#define COG_GET(ptr, offset, type) (*(type *)((uint8_t *)(ptr) + (offset)) ) + +#if defined(__GNUC__) && defined(__GNUC_MINOR__) +#define COG_GNUC_PREREQ(maj, min) \ + ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min)) +#else +#define COG_GNUC_PREREQ(maj, min) 0 +#endif + +#if COG_GNUC_PREREQ(3,3) && defined(__ELF__) +#define COG_INTERNAL __attribute__ ((visibility ("internal"))) +#else +#define COG_INTERNAL +#endif + +#ifdef __cplusplus +#define COG_BEGIN_DECLS extern "C" { +#define COG_END_DECLS } +#else +#define COG_BEGIN_DECLS +#define COG_END_DECLS +#endif + + +COG_BEGIN_DECLS + +void * cog_malloc (int size); +void * cog_malloc0 (int size); +void * cog_realloc (void *ptr, int size); +void cog_free (void *ptr); + +int cog_utils_multiplier_to_quant_index (double x); +int cog_dequantise (int q, int quant_factor, int quant_offset); +int cog_quantise (int value, int quant_factor, int quant_offset); +void cog_quantise_s16 (int16_t *dest, int16_t *src, int quant_factor, + int quant_offset, int n); +void cog_quantise_s16_table (int16_t *dest, int16_t *src, int quant_index, + cog_bool is_intra, int n); +void cog_dequantise_s16 (int16_t *dest, int16_t *src, int quant_factor, + int quant_offset, int n); +void cog_dequantise_s16_table (int16_t *dest, int16_t *src, int quant_index, + cog_bool is_intra, int n); +double cog_utils_probability_to_entropy (double x); +double cog_utils_entropy (double a, double total); +void cog_utils_reduce_fraction (int *n, int *d); +double cog_utils_get_time (void); + +COG_END_DECLS + +#endif + diff --git a/ext/cog/cogvirtframe.c b/ext/cog/cogvirtframe.c new file mode 100644 index 0000000..0fc0ad1 --- /dev/null +++ b/ext/cog/cogvirtframe.c @@ -0,0 +1,2203 @@ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#define COG_ENABLE_UNSTABLE_API 1 + +#include +#include +#include +#include +#ifdef HAVE_ORC +#include +#else +#define orc_memcpy memcpy +#endif +#include + +#include "gstcogorc.h" + +extern gint8 cog_resample_table_4tap[256][4]; + +CogFrame * +cog_frame_new_virtual (CogMemoryDomain * domain, CogFrameFormat format, + int width, int height) +{ + CogFrame *frame = cog_frame_new (); + int bytes_pp; + int h_shift, v_shift; + int chroma_width; + int chroma_height; + int i; + + frame->format = format; + frame->width = width; + frame->height = height; + frame->domain = domain; + + if (COG_FRAME_IS_PACKED (format)) { + frame->components[0].format = format; + frame->components[0].width = width; + frame->components[0].height = height; + if (format == COG_FRAME_FORMAT_AYUV) { + frame->components[0].stride = width * 4; + } else if (format == COG_FRAME_FORMAT_v216) { + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 4; + } else if (format == COG_FRAME_FORMAT_v210) { + frame->components[0].stride = ((width + 47) / 48) * 128; + } else { + frame->components[0].stride = ROUND_UP_POW2 (width, 1) * 2; + } + frame->components[0].length = frame->components[0].stride * height; + + frame->components[0].data = frame->regions[0]; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->regions[0] = + g_malloc (frame->components[0].stride * COG_FRAME_CACHE_SIZE); + for (i = 0; i < COG_FRAME_CACHE_SIZE; i++) { + frame->cached_lines[0][i] = 0; + } + frame->cache_offset[0] = 0; + frame->is_virtual = TRUE; + + return frame; + } + + switch (COG_FRAME_FORMAT_DEPTH (format)) { + case COG_FRAME_FORMAT_DEPTH_U8: + bytes_pp = 1; + break; + case COG_FRAME_FORMAT_DEPTH_S16: + bytes_pp = 2; + break; + case COG_FRAME_FORMAT_DEPTH_S32: + bytes_pp = 4; + break; + default: + g_return_val_if_reached (NULL); + bytes_pp = 0; + break; + } + + h_shift = COG_FRAME_FORMAT_H_SHIFT (format); + v_shift = COG_FRAME_FORMAT_V_SHIFT (format); + chroma_width = ROUND_UP_SHIFT (width, h_shift); + chroma_height = ROUND_UP_SHIFT (height, v_shift); + + frame->components[0].format = format; + frame->components[0].width = width; + frame->components[0].height = height; + frame->components[0].stride = ROUND_UP_4 (width * bytes_pp); + frame->components[0].length = + frame->components[0].stride * frame->components[0].height; + frame->components[0].v_shift = 0; + frame->components[0].h_shift = 0; + + frame->components[1].format = format; + frame->components[1].width = chroma_width; + frame->components[1].height = chroma_height; + frame->components[1].stride = ROUND_UP_4 (chroma_width * bytes_pp); + frame->components[1].length = + frame->components[1].stride * frame->components[1].height; + frame->components[1].v_shift = v_shift; + frame->components[1].h_shift = h_shift; + + frame->components[2].format = format; + frame->components[2].width = chroma_width; + frame->components[2].height = chroma_height; + frame->components[2].stride = ROUND_UP_4 (chroma_width * bytes_pp); + frame->components[2].length = + frame->components[2].stride * frame->components[2].height; + frame->components[2].v_shift = v_shift; + frame->components[2].h_shift = h_shift; + + for (i = 0; i < 3; i++) { + CogFrameData *comp = &frame->components[i]; + int j; + + frame->regions[i] = g_malloc (comp->stride * COG_FRAME_CACHE_SIZE); + for (j = 0; j < COG_FRAME_CACHE_SIZE; j++) { + frame->cached_lines[i][j] = 0; + } + frame->cache_offset[i] = 0; + } + frame->is_virtual = TRUE; + + return frame; +} + +void * +cog_virt_frame_get_line (CogFrame * frame, int component, int i) +{ + CogFrameData *comp = &frame->components[component]; + int j; + + g_return_val_if_fail (i >= 0, NULL); + g_return_val_if_fail (i < comp->height, NULL); + + if (!frame->is_virtual) { + return COG_FRAME_DATA_GET_LINE (&frame->components[component], i); + } + + if (i < frame->cache_offset[component]) { + if (i != 0) { + g_warning ("cache failure: %d outside [%d,%d]", i, + frame->cache_offset[component], + frame->cache_offset[component] + COG_FRAME_CACHE_SIZE - 1); + } + + frame->cache_offset[component] = i; + for (j = 0; j < COG_FRAME_CACHE_SIZE; j++) { + frame->cached_lines[component][j] = 0; + } + } + + while (i >= frame->cache_offset[component] + COG_FRAME_CACHE_SIZE) { + j = frame->cache_offset[component] & (COG_FRAME_CACHE_SIZE - 1); + frame->cached_lines[component][j] = 0; + + frame->cache_offset[component]++; + } + + j = i & (COG_FRAME_CACHE_SIZE - 1); + if (!frame->cached_lines[component][j]) { + cog_virt_frame_render_line (frame, + COG_OFFSET (frame->regions[component], comp->stride * j), component, i); + frame->cached_lines[component][j] = 1; + } + + return COG_OFFSET (frame->regions[component], comp->stride * j); +} + +void +cog_virt_frame_render_line (CogFrame * frame, void *dest, int component, int i) +{ + frame->render_line (frame, dest, component, i); +} + +static void +copy (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + src = cog_virt_frame_get_line (frame, component, i); + switch (COG_FRAME_FORMAT_DEPTH (frame->format)) { + case COG_FRAME_FORMAT_DEPTH_U8: + orc_memcpy (dest, src, frame->components[component].width); + break; + case COG_FRAME_FORMAT_DEPTH_S16: + orc_memcpy (dest, src, frame->components[component].width * 2); + break; + default: + g_return_if_reached (); + break; + } +} + +void +cog_virt_frame_render (CogFrame * frame, CogFrame * dest) +{ + int i, k; + + g_return_if_fail (frame->width == dest->width); + g_return_if_fail (frame->height >= dest->height); + + if (frame->is_virtual) { + for (k = 0; k < 3; k++) { + CogFrameData *comp = dest->components + k; + + for (i = 0; i < dest->components[k].height; i++) { + cog_virt_frame_render_line (frame, + COG_FRAME_DATA_GET_LINE (comp, i), k, i); + } + } + } else { + for (k = 0; k < 3; k++) { + CogFrameData *comp = dest->components + k; + + for (i = 0; i < dest->components[k].height; i++) { + copy (frame, COG_FRAME_DATA_GET_LINE (comp, i), k, i); + } + } + } +} + +static void +cog_virt_frame_render_downsample_horiz_cosite_3tap (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + n_src = frame->virt_frame1->components[component].width; + + cogorc_downsample_horiz_cosite_3tap (dest + 1, + (uint16_t *) (src + 1), (uint16_t *) (src + 3), + frame->components[component].width - 1); + + { + int j; + int x; + + j = 0; + x = 1 * src[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 2 * src[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 1 * src[CLAMP (j * 2 + 1, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 2) >> 2, 0, 255); + +#if 0 + j = frame->components[component].width - 1; + x = 1 * src[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 2 * src[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 1 * src[CLAMP (j * 2 + 1, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 2) >> 2, 0, 255); +#endif + } +} + +static void +cog_virt_frame_render_downsample_horiz_halfsite (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int j; + int n_src; + int taps = 4; + int k; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + n_src = frame->virt_frame1->components[component].width; + + switch (taps) { + case 4: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + x += 6 * src[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 26 * src[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 26 * src[CLAMP (j * 2 + 1, 0, n_src - 1)]; + x += 6 * src[CLAMP (j * 2 + 2, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + case 6: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + x += -3 * src[CLAMP (j * 2 - 2, 0, n_src - 1)]; + x += 8 * src[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 27 * src[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 27 * src[CLAMP (j * 2 + 1, 0, n_src - 1)]; + x += 8 * src[CLAMP (j * 2 + 2, 0, n_src - 1)]; + x += -3 * src[CLAMP (j * 2 + 3, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + case 8: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + const int taps8[8] = { -2, -4, 9, 29, 29, 9, -4, -2 }; + for (k = 0; k < 8; k++) { + x += taps8[k] * src[CLAMP (j * 2 - 3 + k, 0, n_src - 1)]; + } + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + case 10: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + const int taps10[10] = { 1, -2, -5, 9, 29, 29, 9, -5, -2, 1 }; + for (k = 0; k < 10; k++) { + x += taps10[k] * src[CLAMP (j * 2 - 4 + k, 0, n_src - 1)]; + } + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + default: + break; + } +} + +CogFrame * +cog_virt_frame_new_horiz_downsample (CogFrame * vf, int n_taps) +{ + CogFrame *virt_frame; + + virt_frame = + cog_frame_new_virtual (NULL, vf->format, vf->width / 2, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->param1 = n_taps; + switch (n_taps) { + case 3: + virt_frame->render_line = + cog_virt_frame_render_downsample_horiz_cosite_3tap; + break; + case 4: + case 6: + case 8: + case 10: + virt_frame->render_line = cog_virt_frame_render_downsample_horiz_halfsite; + break; + default: + g_return_val_if_reached (NULL); + } + + return virt_frame; +} + +static void +cog_virt_frame_render_downsample_vert_cosite (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 - 1, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 0, 0, n_src - 1)); + src3 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + + cogorc_downsample_vert_cosite_3tap (dest, src1, src2, src3, + frame->components[component].width); +} + +static void +cog_virt_frame_render_downsample_vert_halfsite_2tap (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + + cogorc_downsample_vert_halfsite_2tap (dest, src1, src2, + frame->components[component].width); +} + +static void +cog_virt_frame_render_downsample_vert_halfsite_4tap (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + uint8_t *src4; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 - 1, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2, 0, n_src - 1)); + src3 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + src4 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 2, 0, n_src - 1)); + + cogorc_downsample_vert_halfsite_4tap (dest, src1, src2, src3, src4, + frame->components[component].width); +} + + +static void +cog_virt_frame_render_downsample_vert_halfsite (CogFrame * frame, + void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src[10]; + int j; + int n_src; + int taps = frame->param1; + int k; + + n_src = frame->virt_frame1->components[component].height; + for (j = 0; j < taps; j++) { + src[j] = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 - (taps - 2) / 2 + j, 0, n_src - 1)); + } + + switch (taps) { + case 4: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + x += 6 * src[0][j]; + x += 26 * src[1][j]; + x += 26 * src[2][j]; + x += 6 * src[3][j]; + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + case 6: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + x += -3 * src[0][j]; + x += 8 * src[1][j]; + x += 27 * src[2][j]; + x += 27 * src[3][j]; + x += 8 * src[4][j]; + x += -3 * src[5][j]; + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + case 8: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + const int taps8[8] = { -2, -4, 9, 29, 29, 9, -4, -2 }; + for (k = 0; k < 8; k++) { + x += taps8[k] * src[k][j]; + } + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + case 10: + for (j = 0; j < frame->components[component].width; j++) { + int x = 0; + const int taps10[10] = { 1, -2, -5, 9, 29, 29, 9, -5, -2, 1 }; + for (k = 0; k < 10; k++) { + x += taps10[k] * src[k][j]; + } + dest[j] = CLAMP ((x + 32) >> 6, 0, 255); + } + break; + default: + g_return_if_reached (); + break; + } +} + +CogFrame * +cog_virt_frame_new_vert_downsample (CogFrame * vf, int n_taps) +{ + CogFrame *virt_frame; + + virt_frame = + cog_frame_new_virtual (NULL, vf->format, vf->width, vf->height / 2); + virt_frame->virt_frame1 = vf; + virt_frame->param1 = n_taps; + switch (n_taps) { + case 2: + virt_frame->render_line = + cog_virt_frame_render_downsample_vert_halfsite_2tap; + break; + case 3: + virt_frame->render_line = cog_virt_frame_render_downsample_vert_cosite; + break; + case 4: + virt_frame->render_line = + cog_virt_frame_render_downsample_vert_halfsite_4tap; + break; + default: + virt_frame->render_line = cog_virt_frame_render_downsample_vert_halfsite; + break; + } + + return virt_frame; +} + +static void +cog_virt_frame_render_resample_vert_1tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + int n_src; + int scale = frame->param1; + int acc; + int x; + int src_i; + + acc = scale * i; + src_i = acc >> 8; + x = acc & 0xff; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 0, 0, n_src - 1)); + + orc_memcpy (dest, src1, frame->components[component].width); +} + +static void +cog_virt_frame_render_resample_vert_2tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + int n_src; + int scale = frame->param1; + int acc; + int x; + int src_i; + + acc = scale * i; + src_i = acc >> 8; + x = acc & 0xff; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 0, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 1, 0, n_src - 1)); + + if (x == 0) { + memcpy (dest, src1, frame->components[component].width); + } else { + cogorc_combine2_u8 (dest, src1, src2, + 256 - x, x, frame->components[component].width); + } +} + +static void +cog_virt_frame_render_resample_vert_4tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + uint8_t *src4; + int n_src; + int scale = frame->param1; + int acc; + int x; + int src_i; + + acc = scale * i; + src_i = acc >> 8; + x = acc & 0xff; + + n_src = frame->virt_frame1->components[component].height; + if (src_i < 1 || src_i >= n_src - 3) { + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i - 1, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 0, 0, n_src - 1)); + src3 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 1, 0, n_src - 1)); + src4 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (src_i + 2, 0, n_src - 1)); + } else { + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, src_i - 1); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, src_i + 0); + src3 = cog_virt_frame_get_line (frame->virt_frame1, component, src_i + 1); + src4 = cog_virt_frame_get_line (frame->virt_frame1, component, src_i + 2); + } + + cogorc_combine4_u8 (dest, src1, src2, src3, src4, + cog_resample_table_4tap[x][0], + cog_resample_table_4tap[x][1], + cog_resample_table_4tap[x][2], + cog_resample_table_4tap[x][3], frame->components[component].width); +} + +CogFrame * +cog_virt_frame_new_vert_resample (CogFrame * vf, int height, int n_taps) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, vf->format, vf->width, height); + virt_frame->virt_frame1 = vf; + if (n_taps == 1) { + virt_frame->render_line = cog_virt_frame_render_resample_vert_1tap; + } else if (n_taps == 2) { + virt_frame->render_line = cog_virt_frame_render_resample_vert_2tap; + } else { + virt_frame->render_line = cog_virt_frame_render_resample_vert_4tap; + } + + virt_frame->param1 = 256 * vf->height / height; + + return virt_frame; +} + +static void +cog_virt_frame_render_resample_horiz_1tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_src; + int scale = frame->param1; + + n_src = frame->virt_frame1->components[component].width; + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + cogorc_resample_horiz_1tap (dest, src, 0, scale, + frame->components[component].width); +} + +static void +cog_virt_frame_render_resample_horiz_2tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_src; + int scale = frame->param1; + + n_src = frame->virt_frame1->components[component].width; + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + cogorc_resample_horiz_2tap (dest, src, 0, scale, + frame->components[component].width); +} + +static void +cog_virt_frame_render_resample_horiz_4tap (CogFrame * frame, void *_dest, + int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int j; + int n_src; + int scale = frame->param1; + int acc; + + n_src = frame->virt_frame1->components[component].width; + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + acc = 0; + for (j = 0; j < 1; j++) { + int src_i; + int y; + int z; + + src_i = acc >> 16; + y = (acc >> 8) & 255; + + z = 32; + z += cog_resample_table_4tap[y][0] * src[CLAMP (src_i - 1, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][1] * src[CLAMP (src_i + 0, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][2] * src[CLAMP (src_i + 1, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][3] * src[CLAMP (src_i + 2, 0, n_src - 1)]; + z >>= 6; + dest[j] = CLAMP (z, 0, 255); + acc += scale; + } + for (; j < frame->components[component].width - 2; j++) { + int src_i; + int y; + int z; + + src_i = acc >> 16; + y = (acc >> 8) & 255; + + z = 32; + z += cog_resample_table_4tap[y][0] * src[src_i - 1]; + z += cog_resample_table_4tap[y][1] * src[src_i + 0]; + z += cog_resample_table_4tap[y][2] * src[src_i + 1]; + z += cog_resample_table_4tap[y][3] * src[src_i + 2]; + z >>= 6; + dest[j] = CLAMP (z, 0, 255); + acc += scale; + } + for (; j < frame->components[component].width; j++) { + int src_i; + int y; + int z; + + src_i = acc >> 16; + y = (acc >> 8) & 255; + + z = 32; + z += cog_resample_table_4tap[y][0] * src[CLAMP (src_i - 1, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][1] * src[CLAMP (src_i + 0, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][2] * src[CLAMP (src_i + 1, 0, n_src - 1)]; + z += cog_resample_table_4tap[y][3] * src[CLAMP (src_i + 2, 0, n_src - 1)]; + z >>= 6; + dest[j] = CLAMP (z, 0, 255); + acc += scale; + } +} + +CogFrame * +cog_virt_frame_new_horiz_resample (CogFrame * vf, int width, int n_taps) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, vf->format, width, vf->height); + virt_frame->virt_frame1 = vf; + if (n_taps == 1) { + virt_frame->render_line = cog_virt_frame_render_resample_horiz_1tap; + } else if (n_taps == 2) { + virt_frame->render_line = cog_virt_frame_render_resample_horiz_2tap; + } else { + virt_frame->render_line = cog_virt_frame_render_resample_horiz_4tap; + } + + virt_frame->param1 = 65536 * vf->width / width; + + return virt_frame; +} + +static void +unpack_yuyv (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + + switch (component) { + case 0: + orc_unpack_yuyv_y (dest, (void *) src, frame->width); + break; + case 1: + orc_unpack_yuyv_u (dest, (void *) src, frame->width / 2); + break; + case 2: + orc_unpack_yuyv_v (dest, (void *) src, frame->width / 2); + break; + } +} + +static void +unpack_uyvy (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + + switch (component) { + case 0: + orc_unpack_uyvy_y (dest, (void *) src, frame->width); + break; + case 1: + cogorc_unpack_axyz_0 (dest, (void *) src, frame->width / 2); + break; + case 2: + cogorc_unpack_axyz_2 (dest, (void *) src, frame->width / 2); + break; + } +} + +static void +unpack_axyz (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint32_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + + switch ((frame->param1 >> (12 - component * 4)) & 0xf) { + case 0: + cogorc_unpack_axyz_0 (dest, src, frame->width); + break; + case 1: + cogorc_unpack_axyz_1 (dest, src, frame->width); + break; + case 2: + cogorc_unpack_axyz_2 (dest, src, frame->width); + break; + case 3: + cogorc_unpack_axyz_3 (dest, src, frame->width); + break; + } +} + +static void +unpack_v210 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int j; + + src = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + +#define READ_UINT32_LE(a) (((uint8_t *)(a))[0] | (((uint8_t *)(a))[1]<<8) | \ + (((uint8_t *)(a))[2]<<16) | (((uint8_t *)(a))[3]<<24)) + switch (component) { + case 0: + for (j = 0; j < frame->width / 6; j++) { + dest[j * 6 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 10) & 0x3ff) >> 2; + dest[j * 6 + 1] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 0) & 0x3ff) >> 2; + dest[j * 6 + 2] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 20) & 0x3ff) >> 2; + dest[j * 6 + 3] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 10) & 0x3ff) >> 2; + dest[j * 6 + 4] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 0) & 0x3ff) >> 2; + dest[j * 6 + 5] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 20) & 0x3ff) >> 2; + } + if (j * 6 + 0 < frame->width) { + dest[j * 6 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 10) & 0x3ff) >> 2; + } + if (j * 6 + 1 < frame->width) { + dest[j * 6 + 1] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 0) & 0x3ff) >> 2; + } + if (j * 6 + 2 < frame->width) { + dest[j * 6 + 2] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 20) & 0x3ff) >> 2; + } + if (j * 6 + 3 < frame->width) { + dest[j * 6 + 3] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 10) & 0x3ff) >> 2; + } + if (j * 6 + 4 < frame->width) { + dest[j * 6 + 4] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 0) & 0x3ff) >> 2; + } + if (j * 6 + 5 < frame->width) { + dest[j * 6 + 5] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 20) & 0x3ff) >> 2; + } + break; + case 1: + for (j = 0; j < frame->width / 6; j++) { + dest[j * 3 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 0) & 0x3ff) >> 2; + dest[j * 3 + 1] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 10) & 0x3ff) >> 2; + dest[j * 3 + 2] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 20) & 0x3ff) >> 2; + } + if (j * 6 + 0 < frame->width) { + dest[j * 3 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 0) & 0x3ff) >> 2; + } + if (j * 6 + 2 < frame->width) { + dest[j * 3 + 1] = + ((READ_UINT32_LE (src + j * 16 + 4) >> 10) & 0x3ff) >> 2; + } + if (j * 6 + 4 < frame->width) { + dest[j * 3 + 2] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 20) & 0x3ff) >> 2; + } + break; + case 2: + for (j = 0; j < frame->width / 6; j++) { + dest[j * 3 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 20) & 0x3ff) >> 2; + dest[j * 3 + 1] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 0) & 0x3ff) >> 2; + dest[j * 3 + 2] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 10) & 0x3ff) >> 2; + } + if (j * 6 + 0 < frame->width) { + dest[j * 3 + 0] = + ((READ_UINT32_LE (src + j * 16 + 0) >> 20) & 0x3ff) >> 2; + } + if (j * 6 + 2 < frame->width) { + dest[j * 3 + 1] = + ((READ_UINT32_LE (src + j * 16 + 8) >> 0) & 0x3ff) >> 2; + } + if (j * 6 + 4 < frame->width) { + dest[j * 3 + 2] = + ((READ_UINT32_LE (src + j * 16 + 12) >> 10) & 0x3ff) >> 2; + } + break; + } +} + +static void +unpack_v216 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int j; + + src = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + + switch (component) { + case 0: + for (j = 0; j < frame->width; j++) { + dest[j] = src[j * 4 + 2 + 1]; + } + break; + case 1: + for (j = 0; j < frame->width / 2; j++) { + dest[j] = src[j * 8 + 0 + 1]; + } + break; + case 2: + for (j = 0; j < frame->width / 2; j++) { + dest[j] = src[j * 8 + 4 + 1]; + } + } +} + +CogFrame * +cog_virt_frame_new_unpack (CogFrame * vf) +{ + CogFrame *virt_frame; + CogFrameFormat format; + CogFrameRenderFunc render_line; + int param1 = 0; + + if (!COG_FRAME_IS_PACKED (vf->format)) + return vf; + + switch (vf->format) { + case COG_FRAME_FORMAT_YUYV: + format = COG_FRAME_FORMAT_U8_422; + render_line = unpack_yuyv; + break; + case COG_FRAME_FORMAT_UYVY: + format = COG_FRAME_FORMAT_U8_422; + render_line = unpack_uyvy; + break; + case COG_FRAME_FORMAT_v210: + format = COG_FRAME_FORMAT_U8_422; + render_line = unpack_v210; + break; + case COG_FRAME_FORMAT_v216: + format = COG_FRAME_FORMAT_U8_422; + render_line = unpack_v216; + break; + case COG_FRAME_FORMAT_RGBx: + case COG_FRAME_FORMAT_RGBA: + format = COG_FRAME_FORMAT_U8_444; + render_line = unpack_axyz; + param1 = 0x0123; + break; + case COG_FRAME_FORMAT_BGRx: + case COG_FRAME_FORMAT_BGRA: + format = COG_FRAME_FORMAT_U8_444; + render_line = unpack_axyz; + param1 = 0x2103; + break; + case COG_FRAME_FORMAT_xRGB: + case COG_FRAME_FORMAT_ARGB: + case COG_FRAME_FORMAT_AYUV: + format = COG_FRAME_FORMAT_U8_444; + render_line = unpack_axyz; + param1 = 0x1230; + break; + case COG_FRAME_FORMAT_xBGR: + case COG_FRAME_FORMAT_ABGR: + format = COG_FRAME_FORMAT_U8_444; + render_line = unpack_axyz; + param1 = 0x3210; + break; + default: + g_return_val_if_reached (NULL); + } + + virt_frame = cog_frame_new_virtual (NULL, format, vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = render_line; + virt_frame->param1 = param1; + + return virt_frame; +} + + +static void +pack_yuyv (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_yuyv (dest, src_y, src_u, src_v, frame->width / 2); +} + + +CogFrame * +cog_virt_frame_new_pack_YUY2 (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_YUYV, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_yuyv; + + return virt_frame; +} + +static void +pack_uyvy (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_uyvy (dest, src_y, src_u, src_v, frame->width / 2); +} + +CogFrame * +cog_virt_frame_new_pack_UYVY (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_YUYV, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_uyvy; + + return virt_frame; +} + +static void +pack_v216 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + int j; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + for (j = 0; j < frame->width / 2; j++) { + dest[j * 8 + 0] = src_u[j]; + dest[j * 8 + 1] = src_u[j]; + dest[j * 8 + 2] = src_y[j * 2 + 0]; + dest[j * 8 + 3] = src_y[j * 2 + 0]; + dest[j * 8 + 4] = src_v[j]; + dest[j * 8 + 5] = src_v[j]; + dest[j * 8 + 6] = src_y[j * 2 + 1]; + dest[j * 8 + 7] = src_y[j * 2 + 1]; + } +} + +CogFrame * +cog_virt_frame_new_pack_v216 (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_v216, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_v216; + + return virt_frame; +} + +static void +pack_v210 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + int j; + uint32_t val; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + +#define TO_10(x) (((x)<<2) | ((x)>>6)) +#define WRITE_UINT32_LE(a,b) do { \ + ((uint8_t *)(a))[0] = (b)&0xff; \ + ((uint8_t *)(a))[1] = ((b)>>8)&0xff; \ + ((uint8_t *)(a))[2] = ((b)>>16)&0xff; \ + ((uint8_t *)(a))[3] = ((b)>>24)&0xff; \ +} while(0) + for (j = 0; j < frame->width / 6; j++) { + int y0, y1, y2, y3, y4, y5; + int cr0, cr1, cr2; + int cb0, cb1, cb2; + + y0 = TO_10 (src_y[j * 6 + 0]); + y1 = TO_10 (src_y[j * 6 + 1]); + y2 = TO_10 (src_y[j * 6 + 2]); + y3 = TO_10 (src_y[j * 6 + 3]); + y4 = TO_10 (src_y[j * 6 + 4]); + y5 = TO_10 (src_y[j * 6 + 5]); + cb0 = TO_10 (src_u[j * 3 + 0]); + cb1 = TO_10 (src_u[j * 3 + 1]); + cb2 = TO_10 (src_u[j * 3 + 2]); + cr0 = TO_10 (src_v[j * 3 + 0]); + cr1 = TO_10 (src_v[j * 3 + 1]); + cr2 = TO_10 (src_v[j * 3 + 2]); + + val = (cr0 << 20) | (y0 << 10) | (cb0); + WRITE_UINT32_LE (dest + j * 16 + 0, val); + + val = (y2 << 20) | (cb1 << 10) | (y1); + WRITE_UINT32_LE (dest + j * 16 + 4, val); + + val = (cb2 << 20) | (y3 << 10) | (cr1); + WRITE_UINT32_LE (dest + j * 16 + 8, val); + + val = (y5 << 20) | (cr2 << 10) | (y4); + WRITE_UINT32_LE (dest + j * 16 + 12, val); + } + if (j * 6 < frame->width) { + int y0, y1, y2, y3, y4, y5; + int cr0, cr1, cr2; + int cb0, cb1, cb2; + + y0 = ((j * 6 + 0) < frame->width) ? TO_10 (src_y[j * 6 + 0]) : 0; + y1 = ((j * 6 + 1) < frame->width) ? TO_10 (src_y[j * 6 + 1]) : 0; + y2 = ((j * 6 + 2) < frame->width) ? TO_10 (src_y[j * 6 + 2]) : 0; + y3 = ((j * 6 + 3) < frame->width) ? TO_10 (src_y[j * 6 + 3]) : 0; + y4 = ((j * 6 + 4) < frame->width) ? TO_10 (src_y[j * 6 + 4]) : 0; + y5 = ((j * 6 + 5) < frame->width) ? TO_10 (src_y[j * 6 + 5]) : 0; + cb0 = ((j * 6 + 0) < frame->width) ? TO_10 (src_u[j * 3 + 0]) : 0; + cb1 = ((j * 6 + 2) < frame->width) ? TO_10 (src_u[j * 3 + 1]) : 0; + cb2 = ((j * 6 + 4) < frame->width) ? TO_10 (src_u[j * 3 + 2]) : 0; + cr0 = ((j * 6 + 0) < frame->width) ? TO_10 (src_v[j * 3 + 0]) : 0; + cr1 = ((j * 6 + 2) < frame->width) ? TO_10 (src_v[j * 3 + 1]) : 0; + cr2 = ((j * 6 + 4) < frame->width) ? TO_10 (src_v[j * 3 + 2]) : 0; + + val = (cr0 << 20) | (y0 << 10) | (cb0); + WRITE_UINT32_LE (dest + j * 16 + 0, val); + + val = (y2 << 20) | (cb1 << 10) | (y1); + WRITE_UINT32_LE (dest + j * 16 + 4, val); + + val = (cb2 << 20) | (y3 << 10) | (cr1); + WRITE_UINT32_LE (dest + j * 16 + 8, val); + + val = (y5 << 20) | (cr2 << 10) | (y4); + WRITE_UINT32_LE (dest + j * 16 + 12, val); + } + +} + +CogFrame * +cog_virt_frame_new_pack_v210 (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_v210, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_v210; + + return virt_frame; +} + +static void +pack_ayuv (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_x123 (dest, src_y, src_u, src_v, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_AYUV (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_AYUV, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_ayuv; + + return virt_frame; +} + +static void +pack_rgb (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + int j; + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + for (j = 0; j < frame->width; j++) { + dest[j * 3 + 0] = src_y[j]; + dest[j * 3 + 1] = src_u[j]; + dest[j * 3 + 2] = src_v[j]; + } +} + +CogFrame * +cog_virt_frame_new_pack_RGB (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_RGB, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_rgb; + + return virt_frame; +} + + +static const int cog_rgb_to_ycbcr_matrix_8bit_sdtv[] = { + 66, 129, 25, 4096, + -38, -74, 112, 32768, + 112, -94, -18, 32768, +}; + +static const int cog_rgb_to_ycbcr_matrix_8bit_hdtv[] = { + 47, 157, 16, 4096, + -26, -87, 112, 32768, + 112, -102, -10, 32768, +}; + +static void +color_matrix_RGB_to_YCbCr (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + int *matrix = frame->virt_priv2; + + src1 = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src2 = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src3 = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + /* for RGB -> YUV */ + switch (component) { + case 0: + orc_matrix3_000_u8 (dest, src1, src2, src3, + matrix[0], matrix[1], matrix[2], (16 << 8) + 128, 8, frame->width); + break; + case 1: + orc_matrix3_000_u8 (dest, src1, src2, src3, + matrix[4], matrix[5], matrix[6], (128 << 8) + 128, 8, frame->width); + break; + case 2: + orc_matrix3_000_u8 (dest, src1, src2, src3, + matrix[8], matrix[9], matrix[10], (128 << 8) + 128, 8, frame->width); + break; + default: + break; + } + +} + + +static const int cog_ycbcr_to_rgb_matrix_6bit_sdtv[] = { + 75, 0, 102, -14267, + 75, -25, -52, 8677, + 75, 129, 0, -17717, +}; + +static const int cog_ycbcr_to_rgb_matrix_8bit_sdtv[] = { + 42, 0, 153, -57068, + 42, -100, -208, 34707, + 42, 4, 0, -70870, +}; + +static const int cog_ycbcr_to_rgb_matrix_6bit_hdtv[] = { + 75, 0, 115, -15878, + 75, -14, -34, 4920, + 75, 135, 0, -18497, +}; + +static const int cog_ycbcr_to_rgb_matrix_8bit_hdtv[] = { + 42, 0, 203, -63514, + 42, -55, -136, 19681, + 42, 29, 0, -73988, +}; + +static void +color_matrix_YCbCr_to_RGB_6bit (CogFrame * frame, void *_dest, int component, + int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + int *matrix = frame->virt_priv2; + + src1 = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src2 = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src3 = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + switch (component) { + case 0: + orc_matrix2_u8 (dest, src1, src3, matrix[0], matrix[2], matrix[3] + 32, + frame->width); + break; + case 1: + orc_matrix3_u8 (dest, src1, src2, src3, matrix[4], matrix[5], matrix[6], + matrix[7] + 32, frame->width); + break; + case 2: + orc_matrix2_u8 (dest, src1, src2, + matrix[8], matrix[9], matrix[11] + 32, frame->width); + break; + default: + break; + } +} + +static void +color_matrix_YCbCr_to_RGB_8bit (CogFrame * frame, void *_dest, int component, + int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + int *matrix = frame->virt_priv2; + + src1 = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src2 = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src3 = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + switch (component) { + case 0: + orc_matrix2_11_u8 (dest, src1, src3, matrix[0], matrix[2], frame->width); + break; + case 1: + orc_matrix3_100_u8 (dest, src1, src2, src3, + matrix[4], matrix[5], matrix[6], frame->width); + break; + case 2: + orc_matrix2_12_u8 (dest, src1, src2, matrix[8], matrix[9], frame->width); + break; + default: + break; + } +} + +CogFrame * +cog_virt_frame_new_color_matrix_YCbCr_to_RGB (CogFrame * vf, + CogColorMatrix color_matrix, int bits) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_U8_444, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + if (bits <= 6) { + virt_frame->render_line = color_matrix_YCbCr_to_RGB_6bit; + if (color_matrix == COG_COLOR_MATRIX_HDTV) { + virt_frame->virt_priv2 = (void *) cog_ycbcr_to_rgb_matrix_6bit_hdtv; + } else { + virt_frame->virt_priv2 = (void *) cog_ycbcr_to_rgb_matrix_6bit_sdtv; + } + } else { + virt_frame->render_line = color_matrix_YCbCr_to_RGB_8bit; + if (color_matrix == COG_COLOR_MATRIX_HDTV) { + virt_frame->virt_priv2 = (void *) cog_ycbcr_to_rgb_matrix_8bit_hdtv; + } else { + virt_frame->virt_priv2 = (void *) cog_ycbcr_to_rgb_matrix_8bit_sdtv; + } + } + + return virt_frame; +} + +CogFrame * +cog_virt_frame_new_color_matrix_RGB_to_YCbCr (CogFrame * vf, + CogColorMatrix color_matrix, int coefficient_bits) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_U8_444, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = color_matrix_RGB_to_YCbCr; + if (color_matrix == COG_COLOR_MATRIX_HDTV) { + virt_frame->virt_priv2 = (void *) cog_rgb_to_ycbcr_matrix_8bit_hdtv; + } else { + virt_frame->virt_priv2 = (void *) cog_rgb_to_ycbcr_matrix_8bit_sdtv; + } + + return virt_frame; +} + +static const int cog_ycbcr_sdtv_to_ycbcr_hdtv_matrix_8bit[] = { + 256, -30, -53, 10600, + 0, 261, 29, -4367, + 0, 19, 262, -3289, +}; + +static const int cog_ycbcr_hdtv_to_ycbcr_sdtv_matrix_8bit[] = { + 256, 25, 49, -9536, + 0, 253, -28, 3958, + 0, -19, 252, 2918, +}; + + +static void +color_matrix_YCbCr_to_YCbCr (CogFrame * frame, void *_dest, int component, + int i) +{ + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + uint8_t *src3; + int *matrix = frame->virt_priv2; + + src1 = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src2 = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src3 = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + switch (component) { + case 0: + orc_matrix3_100_offset_u8 (dest, src1, src2, src3, + matrix[0] - 256, matrix[1], matrix[2], matrix[3], 8, frame->width); + break; + case 1: + orc_matrix3_000_u8 (dest, src1, src2, src3, + matrix[4], matrix[5], matrix[6], matrix[7], 8, frame->width); + break; + case 2: + orc_matrix3_000_u8 (dest, src1, src2, src3, + matrix[8], matrix[9], matrix[10], matrix[11], 8, frame->width); + break; + default: + break; + } + +} + +CogFrame * +cog_virt_frame_new_color_matrix_YCbCr_to_YCbCr (CogFrame * vf, + CogColorMatrix in_color_matrix, CogColorMatrix out_color_matrix, int bits) +{ + CogFrame *virt_frame; + + if (in_color_matrix == out_color_matrix) + return vf; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_U8_444, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = color_matrix_YCbCr_to_YCbCr; + if (in_color_matrix == COG_COLOR_MATRIX_HDTV) { + virt_frame->virt_priv2 = (void *) cog_ycbcr_hdtv_to_ycbcr_sdtv_matrix_8bit; + } else { + virt_frame->virt_priv2 = (void *) cog_ycbcr_sdtv_to_ycbcr_hdtv_matrix_8bit; + } + + return virt_frame; +} + + +static void +convert_444_422 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + n_src = frame->virt_frame1->components[component].width; + + if (component == 0) { + orc_memcpy (dest, src, frame->width); + } else { + cogorc_downsample_horiz_cosite_1tap (dest + 1, + (uint16_t *) (src + 2), frame->components[component].width - 1); + + { + int j; + int x; + + j = 0; + x = 1 * src[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 2 * src[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 1 * src[CLAMP (j * 2 + 1, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 2) >> 2, 0, 255); + } + } +} + +static void +convert_422_420 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width); + } else { + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 0, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + + cogorc_downsample_vert_halfsite_2tap (dest, src1, src2, + frame->components[component].width); + } +} + +static void +convert_444_420_mpeg2 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width); + } else { + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 0, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + +#if 0 + cogorc_downsample_420_mpeg2 (dest + 1, + (uint16_t *) src1, (uint16_t *) (src1 + 2), + (uint16_t *) src2, (uint16_t *) (src2 + 2), + frame->components[component].width - 1); +#else + { + int j; + int x; + + for (j = 1; j < frame->components[component].width; j++) { + x = 1 * src1[j * 2 - 1]; + x += 2 * src1[j * 2 + 0]; + x += 1 * src1[j * 2 + 1]; + x += 1 * src2[j * 2 - 1]; + x += 2 * src2[j * 2 + 0]; + x += 1 * src2[j * 2 + 1]; + dest[j] = CLAMP ((x + 4) >> 3, 0, 255); + } + } +#endif + { + int j; + int x; + + j = 0; + x = 1 * src1[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 2 * src1[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 1 * src1[CLAMP (j * 2 + 1, 0, n_src - 1)]; + x += 1 * src2[CLAMP (j * 2 - 1, 0, n_src - 1)]; + x += 2 * src2[CLAMP (j * 2 + 0, 0, n_src - 1)]; + x += 1 * src2[CLAMP (j * 2 + 1, 0, n_src - 1)]; + dest[j] = CLAMP ((x + 4) >> 3, 0, 255); + } + } +} + +static void +convert_444_420_jpeg (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width); + } else { + uint8_t *dest = _dest; + uint8_t *src1; + uint8_t *src2; + int n_src; + + n_src = frame->virt_frame1->components[component].height; + src1 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 0, 0, n_src - 1)); + src2 = cog_virt_frame_get_line (frame->virt_frame1, component, + CLAMP (i * 2 + 1, 0, n_src - 1)); + + cogorc_downsample_420_jpeg (dest, + (uint16_t *) src1, (uint16_t *) src2, + frame->components[component].width); + } +} + +/* up */ + +static void +convert_420_444_mpeg2 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_taps = frame->param1; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + orc_memcpy (dest, src, frame->width); + } else { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i / 2); + + switch (n_taps) { + default: + case 2: + cogorc_upsample_horiz_cosite (dest, src, src + 1, + frame->components[component].width / 2 - 1); + break; + } + dest[frame->components[component].width - 2] = + src[frame->components[component].width / 2 - 1]; + dest[frame->components[component].width - 1] = + src[frame->components[component].width / 2 - 1]; + } +} + +static void +convert_420_444_jpeg (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_taps = frame->param1; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + orc_memcpy (dest, src, frame->width); + } else { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i / 2); + + switch (n_taps) { + default: + case 1: + cogorc_upsample_horiz_cosite_1tap (dest, src, + frame->components[component].width / 2 - 1); + break; + } + dest[frame->components[component].width - 2] = + src[frame->components[component].width / 2 - 1]; + dest[frame->components[component].width - 1] = + src[frame->components[component].width / 2 - 1]; + } +} + +static void +convert_422_444 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_taps = frame->param1; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + if (component == 0) { + orc_memcpy (dest, src, frame->width); + } else { + switch (n_taps) { + default: + case 2: + cogorc_upsample_horiz_cosite (dest, src, src + 1, + frame->components[component].width / 2 - 1); + break; + } + dest[frame->components[component].width - 2] = + src[frame->components[component].width / 2 - 1]; + dest[frame->components[component].width - 1] = + src[frame->components[component].width / 2 - 1]; + } +} + +static void +convert_420_422 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + int n_taps = frame->param1; + + if (component == 0) { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width); + } else { + switch (n_taps) { + case 1: + default: + src = cog_virt_frame_get_line (frame->virt_frame1, component, i >> 1); + orc_memcpy (dest, src, frame->components[component].width); + break; + case 2: + if ((i & 1) && i < frame->components[component].height - 1) { + uint8_t *src2; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i >> 1); + src2 = cog_virt_frame_get_line (frame->virt_frame1, + component, (i >> 1) + 1); + cogorc_upsample_vert_avgub (dest, src, src2, + frame->components[component].width); + } else { + src = cog_virt_frame_get_line (frame->virt_frame1, component, i >> 1); + orc_memcpy (dest, src, frame->components[component].width); + } + break; + } + } +} + +CogFrame * +cog_virt_frame_new_subsample (CogFrame * vf, CogFrameFormat format, + CogChromaSite chroma_site, int n_taps) +{ + CogFrame *virt_frame; + CogFrameRenderFunc render_line; + + if (vf->format == format) { + return vf; + } + if (vf->format == COG_FRAME_FORMAT_U8_422 && + format == COG_FRAME_FORMAT_U8_420) { + render_line = convert_422_420; + } else if (vf->format == COG_FRAME_FORMAT_U8_444 && + format == COG_FRAME_FORMAT_U8_420) { + if (chroma_site == COG_CHROMA_SITE_MPEG2) { + render_line = convert_444_420_mpeg2; + } else { + render_line = convert_444_420_jpeg; + } + } else if (vf->format == COG_FRAME_FORMAT_U8_444 && + format == COG_FRAME_FORMAT_U8_422) { + render_line = convert_444_422; + } else if (vf->format == COG_FRAME_FORMAT_U8_420 && + format == COG_FRAME_FORMAT_U8_422) { + render_line = convert_420_422; + } else if (vf->format == COG_FRAME_FORMAT_U8_420 && + format == COG_FRAME_FORMAT_U8_444) { + if (chroma_site == COG_CHROMA_SITE_MPEG2) { + render_line = convert_420_444_mpeg2; + } else { + render_line = convert_420_444_jpeg; + } + } else if (vf->format == COG_FRAME_FORMAT_U8_422 && + format == COG_FRAME_FORMAT_U8_444) { + render_line = convert_422_444; + } else { + GST_ERROR ("trying to subsample from %d to %d", vf->format, format); + g_return_val_if_reached (NULL); + } + virt_frame = cog_frame_new_virtual (NULL, format, vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->param1 = n_taps; + virt_frame->render_line = render_line; + + return virt_frame; +} + + +static void +convert_u8_s16 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + int16_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_addc_convert_u8_s16 (dest, src, frame->components[component].width); +} + +CogFrame * +cog_virt_frame_new_convert_u8 (CogFrame * vf) +{ + CogFrame *virt_frame; + CogFrameFormat format; + + format = (vf->format & 3) | COG_FRAME_FORMAT_U8_444; + + virt_frame = cog_frame_new_virtual (NULL, format, vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = convert_u8_s16; + + return virt_frame; +} + +static void +convert_s16_u8 (CogFrame * frame, void *_dest, int component, int i) +{ + int16_t *dest = _dest; + uint8_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + + orc_subc_convert_s16_u8 (dest, src, frame->components[component].width); +} + +CogFrame * +cog_virt_frame_new_convert_s16 (CogFrame * vf) +{ + CogFrame *virt_frame; + CogFrameFormat format; + + format = (vf->format & 3) | COG_FRAME_FORMAT_S16_444; + + virt_frame = cog_frame_new_virtual (NULL, format, vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = convert_s16_u8; + + return virt_frame; +} + +static void +crop_u8 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width); +} + +static void +crop_s16 (CogFrame * frame, void *_dest, int component, int i) +{ + int16_t *dest = _dest; + int16_t *src; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, i); + orc_memcpy (dest, src, frame->components[component].width * sizeof (int16_t)); +} + +CogFrame * +cog_virt_frame_new_crop (CogFrame * vf, int width, int height) +{ + CogFrame *virt_frame; + + if (width == vf->width && height == vf->height) + return vf; + + g_return_val_if_fail (width <= vf->width, NULL); + g_return_val_if_fail (height <= vf->height, NULL); + + virt_frame = cog_frame_new_virtual (NULL, vf->format, width, height); + virt_frame->virt_frame1 = vf; + switch (COG_FRAME_FORMAT_DEPTH (vf->format)) { + case COG_FRAME_FORMAT_DEPTH_U8: + virt_frame->render_line = crop_u8; + break; + case COG_FRAME_FORMAT_DEPTH_S16: + virt_frame->render_line = crop_s16; + break; + default: + g_return_val_if_reached (NULL); + break; + } + + return virt_frame; +} + +static void +edge_extend_u8 (CogFrame * frame, void *_dest, int component, int i) +{ + uint8_t *dest = _dest; + uint8_t *src; + CogFrame *srcframe = frame->virt_frame1; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, + MIN (i, srcframe->components[component].height - 1)); + orc_memcpy (dest, src, srcframe->components[component].width); + orc_splat_u8_ns (dest + srcframe->components[component].width, + dest[srcframe->components[component].width - 1], + frame->components[component].width - + srcframe->components[component].width); +} + +static void +edge_extend_s16 (CogFrame * frame, void *_dest, int component, int i) +{ + int16_t *dest = _dest; + int16_t *src; + CogFrame *srcframe = frame->virt_frame1; + + src = cog_virt_frame_get_line (frame->virt_frame1, component, + MIN (i, srcframe->components[component].height - 1)); + orc_memcpy (dest, src, + srcframe->components[component].width * sizeof (int16_t)); + orc_splat_s16_ns (dest + srcframe->components[component].width, + dest[srcframe->components[component].width - 1], + frame->components[component].width - + srcframe->components[component].width); +} + +CogFrame * +cog_virt_frame_new_edgeextend (CogFrame * vf, int width, int height) +{ + CogFrame *virt_frame; + + if (width == vf->width && height == vf->height) + return vf; + + g_return_val_if_fail (width >= vf->width, NULL); + g_return_val_if_fail (height >= vf->height, NULL); + + virt_frame = cog_frame_new_virtual (NULL, vf->format, width, height); + virt_frame->virt_frame1 = vf; + switch (COG_FRAME_FORMAT_DEPTH (vf->format)) { + case COG_FRAME_FORMAT_DEPTH_U8: + virt_frame->render_line = edge_extend_u8; + break; + case COG_FRAME_FORMAT_DEPTH_S16: + virt_frame->render_line = edge_extend_s16; + break; + default: + g_return_val_if_reached (NULL); + break; + } + + return virt_frame; +} + + + +static void +pack_RGBx (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_123x (dest, src_r, src_g, src_b, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_RGBx (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_RGBx, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_RGBx; + + return virt_frame; +} + +static void +pack_xRGB (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_x123 (dest, src_r, src_g, src_b, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_xRGB (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_xRGB, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_xRGB; + + return virt_frame; +} + +static void +pack_BGRx (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_123x (dest, src_b, src_g, src_r, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_BGRx (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_BGRx, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_BGRx; + + return virt_frame; +} + +static void +pack_xBGR (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_x123 (dest, src_b, src_g, src_r, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_xBGR (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_xBGR, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_xBGR; + + return virt_frame; +} + +static void +pack_RGBA (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_123x (dest, src_r, src_g, src_b, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_RGBA (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_RGBA, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_RGBA; + + return virt_frame; +} + +static void +pack_ARGB (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_x123 (dest, src_r, src_g, src_b, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_ARGB (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_ARGB, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_ARGB; + + return virt_frame; +} + +static void +pack_BGRA (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_123x (dest, src_b, src_g, src_r, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_BGRA (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_BGRA, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_BGRA; + + return virt_frame; +} + +static void +pack_ABGR (CogFrame * frame, void *_dest, int component, int i) +{ + uint32_t *dest = _dest; + uint8_t *src_r; + uint8_t *src_g; + uint8_t *src_b; + + src_r = cog_virt_frame_get_line (frame->virt_frame1, 0, i); + src_g = cog_virt_frame_get_line (frame->virt_frame1, 1, i); + src_b = cog_virt_frame_get_line (frame->virt_frame1, 2, i); + + orc_pack_x123 (dest, src_b, src_g, src_r, 0xff, frame->width); +} + +CogFrame * +cog_virt_frame_new_pack_ABGR (CogFrame * vf) +{ + CogFrame *virt_frame; + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_ABGR, + vf->width, vf->height); + virt_frame->virt_frame1 = vf; + virt_frame->render_line = pack_ABGR; + + return virt_frame; +} diff --git a/ext/cog/cogvirtframe.h b/ext/cog/cogvirtframe.h new file mode 100644 index 0000000..afd5736 --- /dev/null +++ b/ext/cog/cogvirtframe.h @@ -0,0 +1,55 @@ + +#ifndef __COG_VIRT_FRAME_H__ +#define __COG_VIRT_FRAME_H__ + +#include +#include + +COG_BEGIN_DECLS + +CogFrame *cog_frame_new_virtual (CogMemoryDomain *domain, + CogFrameFormat format, int width, int height); + +void *cog_virt_frame_get_line (CogFrame *frame, int component, int i); +void cog_virt_frame_render_line (CogFrame *frame, void *dest, + int component, int i); + +void cog_virt_frame_render (CogFrame *frame, CogFrame *dest); + +CogFrame *cog_virt_frame_new_horiz_downsample (CogFrame *vf, int n_taps); +CogFrame *cog_virt_frame_new_vert_downsample (CogFrame *vf, int n_taps); +CogFrame *cog_virt_frame_new_vert_resample (CogFrame *vf, int height, int n_taps); +CogFrame *cog_virt_frame_new_horiz_resample (CogFrame *vf, int width, int n_taps); +CogFrame *cog_virt_frame_new_unpack (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_YUY2 (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_UYVY (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_AYUV (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_v216 (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_v210 (CogFrame *vf); +CogFrame *cog_virt_frame_new_pack_RGB (CogFrame *vf); +CogFrame *cog_virt_frame_new_color_matrix_YCbCr_to_RGB (CogFrame *vf, CogColorMatrix color_matrix, int coefficient_bits); +CogFrame * cog_virt_frame_new_color_matrix_RGB_to_YCbCr (CogFrame * vf, CogColorMatrix color_matrix, int coefficient_bits); +CogFrame * cog_virt_frame_new_color_matrix_YCbCr_to_YCbCr (CogFrame * vf, + CogColorMatrix in_color_matrix, CogColorMatrix out_color_matrix, + int bits); +CogFrame *cog_virt_frame_new_subsample (CogFrame *vf, CogFrameFormat format, + CogChromaSite site, int n_taps); + +CogFrame * cog_virt_frame_new_convert_u8 (CogFrame *vf); +CogFrame * cog_virt_frame_new_convert_s16 (CogFrame *vf); +CogFrame * cog_virt_frame_new_crop (CogFrame *vf, int width, int height); +CogFrame * cog_virt_frame_new_edgeextend (CogFrame *vf, int width, int height); + +CogFrame * cog_virt_frame_new_pack_RGBx (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_xRGB (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_BGRx (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_xBGR (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_RGBA (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_ARGB (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_BGRA (CogFrame *vf); +CogFrame * cog_virt_frame_new_pack_ABGR (CogFrame *vf); + +COG_END_DECLS + +#endif + diff --git a/ext/cog/generate_tables.c b/ext/cog/generate_tables.c new file mode 100644 index 0000000..033f23c --- /dev/null +++ b/ext/cog/generate_tables.c @@ -0,0 +1,239 @@ + +#include "config.h" + +#include +#include +#include + +#include "gstcms.h" + +#define SCALE 256 + +static void +get_taps (double *taps, double x) +{ + taps[3] = x * x * (x - 1); + taps[2] = x * (-x * x + x + 1); + x = 1 - x; + taps[1] = x * (-x * x + x + 1); + taps[0] = x * x * (x - 1); +} + +int +main (int argc, char *argv[]) +{ + int i; + + g_print ("/* This file is autogenerated. Do not edit.*/\n"); + g_print ("#include \n"); + g_print ("gint8 cog_resample_table_4tap[256][4] = {\n"); + for (i = 0; i < 256; i++) { + double x = i / 256.0; + double taps[4]; + int t[4]; + int sum; + + get_taps (taps, x); + taps[0] *= SCALE; + taps[1] *= SCALE; + taps[2] *= SCALE; + taps[3] *= SCALE; + + t[0] = floor (taps[0]); + t[1] = floor (taps[1]); + t[2] = floor (taps[2]); + t[3] = floor (taps[3]); + sum = t[0] + t[1] + t[2] + t[3]; + + for (; sum < SCALE; sum++) { + int i; + double max = 0; + int max_i = -1; + for (i = 0; i < 4; i++) { + if (max_i == -1 || (t[i] < taps[i] && (taps[i] - t[i]) > max)) { + max_i = i; + max = taps[i] - t[i]; + } + } + t[max_i]++; + } + sum = t[0] + t[1] + t[2] + t[3]; + + g_print (" { %d, %d, %d, %d }, /* %d %d */\n", + t[0], t[1], t[2], t[3], t[2] + t[0], t[1] + t[3]); +#if 0 + g_print ("/* %.3f %.3f %.3f %.3f %d */\n", + taps[0] - t[0], taps[1] - t[1], taps[2] - t[2], taps[3] - t[3], sum); +#endif + } + g_print ("};\n"); + g_print ("\n"); + + + { + int cm, bits; + + for (cm = 0; cm < 2; cm++) { + for (bits = 6; bits <= 8; bits += 2) { + + ColorMatrix matrix; + + /* + * At this point, everything is in YCbCr + * All components are in the range [0,255] + */ + color_matrix_set_identity (&matrix); + + /* offset required to get input video black to (0.,0.,0.) */ + /* we don't do this because the code does it for us */ + color_matrix_offset_components (&matrix, -16, -128, -128); + + color_matrix_scale_components (&matrix, (1 / 219.0), (1 / 224.0), + (1 / 224.0)); + + /* colour matrix, YCbCr -> RGB */ + /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */ + if (cm) { + color_matrix_YCbCr_to_RGB (&matrix, 0.2126, 0.0722); /* HD */ + } else { + color_matrix_YCbCr_to_RGB (&matrix, 0.2990, 0.1140); /* SD */ + } + + /* + * We are now in RGB space + */ + + /* scale to output range. */ + color_matrix_scale_components (&matrix, 255.0, 255.0, 255.0); + + /* because we're doing 8-bit matrix coefficients */ + color_matrix_scale_components (&matrix, 1 << bits, 1 << bits, + 1 << bits); + + g_print ("static const int cog_ycbcr_to_rgb_matrix_%dbit_%s[] = {\n", + bits, cm ? "hdtv" : "sdtv"); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[0][0]), + (int) rint (matrix.m[0][1]), + (int) rint (matrix.m[0][2]), (int) rint (matrix.m[0][3])); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[1][0]), + (int) rint (matrix.m[1][1]), + (int) rint (matrix.m[1][2]), (int) rint (matrix.m[1][3])); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[2][0]), + (int) rint (matrix.m[2][1]), + (int) rint (matrix.m[2][2]), (int) rint (matrix.m[2][3])); + g_print ("};\n"); + } + } + } + + { + int cm, bits; + + for (cm = 0; cm < 2; cm++) { + for (bits = 8; bits <= 8; bits += 1) { + + ColorMatrix matrix; + + color_matrix_set_identity (&matrix); + + color_matrix_scale_components (&matrix, (1 / 255.0), (1 / 255.0), + (1 / 255.0)); + + /* colour matrix, RGB -> YCbCr */ + if (cm) { + color_matrix_RGB_to_YCbCr (&matrix, 0.2126, 0.0722); /* HD */ + } else { + color_matrix_RGB_to_YCbCr (&matrix, 0.2990, 0.1140); /* SD */ + } + + /* + * We are now in YCbCr space + */ + + color_matrix_scale_components (&matrix, 219.0, 224.0, 224.0); + + color_matrix_offset_components (&matrix, 16, 128, 128); + + /* because we're doing 8-bit matrix coefficients */ + color_matrix_scale_components (&matrix, 1 << bits, 1 << bits, + 1 << bits); + + g_print ("static const int cog_rgb_to_ycbcr_matrix_%dbit_%s[] = {\n", + bits, cm ? "hdtv" : "sdtv"); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[0][0]), + (int) rint (matrix.m[0][1]), + (int) rint (matrix.m[0][2]), (int) rint (matrix.m[0][3])); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[1][0]), + (int) rint (matrix.m[1][1]), + (int) rint (matrix.m[1][2]), (int) rint (matrix.m[1][3])); + g_print (" %d, %d, %d, %d,\n", + (int) rint (matrix.m[2][0]), + (int) rint (matrix.m[2][1]), + (int) rint (matrix.m[2][2]), (int) rint (matrix.m[2][3])); + g_print ("};\n"); + } + } + } + + { + int cm, bits; + + for (cm = 0; cm < 2; cm++) { + for (bits = 8; bits <= 8; bits += 1) { + + ColorMatrix matrix; + + color_matrix_set_identity (&matrix); + + /* offset required to get input video black to (0.,0.,0.) */ + /* we don't do this because the code does it for us */ + color_matrix_offset_components (&matrix, -16, -128, -128); + + color_matrix_scale_components (&matrix, (1 / 219.0), (1 / 224.0), + (1 / 224.0)); + + /* colour matrix, RGB -> YCbCr */ + if (cm) { + color_matrix_YCbCr_to_RGB (&matrix, 0.2126, 0.0722); /* HD */ + color_matrix_RGB_to_YCbCr (&matrix, 0.2990, 0.1140); /* SD */ + } else { + color_matrix_YCbCr_to_RGB (&matrix, 0.2990, 0.1140); /* SD */ + color_matrix_RGB_to_YCbCr (&matrix, 0.2126, 0.0722); /* HD */ + } + + /* + * We are now in YCbCr space + */ + + color_matrix_scale_components (&matrix, 219.0, 224.0, 224.0); + + color_matrix_offset_components (&matrix, 16, 128, 128); + + /* because we're doing 8-bit matrix coefficients */ + color_matrix_scale_components (&matrix, 1 << bits, 1 << bits, + 1 << bits); + + g_print + ("static const int cog_ycbcr_%s_to_ycbcr_%s_matrix_%dbit[] = {\n", + cm ? "hdtv" : "sdtv", cm ? "sdtv" : "hdtv", bits); + g_print (" %d, %d, %d, %d,\n", (int) rint (matrix.m[0][0]), + (int) rint (matrix.m[0][1]), (int) rint (matrix.m[0][2]), + (int) rint (matrix.m[0][3])); + g_print (" %d, %d, %d, %d,\n", (int) rint (matrix.m[1][0]), + (int) rint (matrix.m[1][1]), (int) rint (matrix.m[1][2]), + (int) rint (matrix.m[1][3])); + g_print (" %d, %d, %d, %d,\n", (int) rint (matrix.m[2][0]), + (int) rint (matrix.m[2][1]), (int) rint (matrix.m[2][2]), + (int) rint (matrix.m[2][3])); + g_print ("};\n"); + } + } + } + + return 0; +} diff --git a/ext/cog/gstcms.c b/ext/cog/gstcms.c new file mode 100644 index 0000000..27648cb --- /dev/null +++ b/ext/cog/gstcms.c @@ -0,0 +1,575 @@ +/* GStreamer + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include "gstcms.h" + +#include "cogutils.h" + +#include +#include +#include + + +/* our simple CMS */ + +void +color_xyY_to_XYZ (Color * c) +{ + if (c->v[1] == 0) { + c->v[0] = 0; + c->v[1] = 0; + c->v[2] = 0; + } else { + double X, Y, Z; + X = c->v[0] * c->v[2] / c->v[1]; + Y = c->v[2]; + Z = (1.0 - c->v[0] - c->v[1]) * c->v[2] / c->v[1]; + c->v[0] = X; + c->v[1] = Y; + c->v[2] = Z; + } +} + +void +color_XYZ_to_xyY (Color * c) +{ + double d; + d = c->v[0] + c->v[1] + c->v[2]; + if (d == 0) { + c->v[0] = 0.3128; + c->v[1] = 0.3290; + c->v[2] = 0; + } else { + double x, y, Y; + x = c->v[0] / d; + y = c->v[1] / d; + Y = c->v[1]; + c->v[0] = x; + c->v[1] = y; + c->v[2] = Y; + } +} + +void +color_set (Color * c, double x, double y, double z) +{ + c->v[0] = x; + c->v[1] = y; + c->v[2] = z; +} + +void +color_matrix_set_identity (ColorMatrix * m) +{ + int i, j; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + m->m[i][j] = (i == j); + } + } +} + +/* Prettyprint a 4x4 matrix @m@ */ +void +color_matrix_dump (ColorMatrix * m) +{ + int i, j; + + printf ("[\n"); + for (i = 0; i < 4; i++) { + printf (" "); + for (j = 0; j < 4; j++) { + printf (" %8.5g", m->m[i][j]); + } + printf ("\n"); + } + printf ("]\n"); +} + +/* Perform 4x4 matrix multiplication: + * - @dst@ = @a@ * @b@ + * - @dst@ may be a pointer to @a@ andor @b@ + */ +void +color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b) +{ + ColorMatrix tmp; + int i, j, k; + + for (i = 0; i < 4; i++) { + for (j = 0; j < 4; j++) { + double x = 0; + for (k = 0; k < 4; k++) { + x += a->m[i][k] * b->m[k][j]; + } + tmp.m[i][j] = x; + } + } + + memcpy (dst, &tmp, sizeof (ColorMatrix)); +} + +void +color_matrix_apply (ColorMatrix * m, Color * dest, Color * src) +{ + int i; + Color tmp; + + for (i = 0; i < 3; i++) { + double x = 0; + x += m->m[i][0] * src->v[0]; + x += m->m[i][1] * src->v[1]; + x += m->m[i][2] * src->v[2]; + x += m->m[i][3]; + tmp.v[i] = x; + } + memcpy (dest, &tmp, sizeof (tmp)); +} + +void +color_matrix_offset_components (ColorMatrix * m, double a1, double a2, + double a3) +{ + ColorMatrix a; + + color_matrix_set_identity (&a); + a.m[0][3] = a1; + a.m[1][3] = a2; + a.m[2][3] = a3; + color_matrix_multiply (m, &a, m); +} + +void +color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3) +{ + ColorMatrix a; + + color_matrix_set_identity (&a); + a.m[0][0] = a1; + a.m[1][1] = a2; + a.m[2][2] = a3; + color_matrix_multiply (m, &a, m); +} + +void +color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb) +{ + double Kg = 1.0 - Kr - Kb; + ColorMatrix k = { + { + {1., 0., 2 * (1 - Kr), 0.}, + {1., -2 * Kb * (1 - Kb) / Kg, -2 * Kr * (1 - Kr) / Kg, 0.}, + {1., 2 * (1 - Kb), 0., 0.}, + {0., 0., 0., 1.}, + } + }; + + color_matrix_multiply (m, &k, m); +} + +void +color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb) +{ + double Kg = 1.0 - Kr - Kb; + ColorMatrix k; + double x; + + k.m[0][0] = Kr; + k.m[0][1] = Kg; + k.m[0][2] = Kb; + k.m[0][3] = 0; + + x = 1 / (2 * (1 - Kb)); + k.m[1][0] = -x * Kr; + k.m[1][1] = -x * Kg; + k.m[1][2] = x * (1 - Kb); + k.m[1][3] = 0; + + x = 1 / (2 * (1 - Kr)); + k.m[2][0] = x * (1 - Kr); + k.m[2][1] = -x * Kg; + k.m[2][2] = -x * Kb; + k.m[2][3] = 0; + + k.m[3][0] = 0; + k.m[3][1] = 0; + k.m[3][2] = 0; + k.m[3][3] = 1; + + color_matrix_multiply (m, &k, m); +} + +void +color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst) +{ + /* + * At this point, everything is in YCbCr + * All components are in the range [0,255] + */ + color_matrix_set_identity (dst); + + /* offset required to get input video black to (0.,0.,0.) */ + color_matrix_offset_components (dst, -16, -128, -128); + + /* scale required to get input video black to (0.,0.,0.) */ + color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0)); + + /* colour matrix, YCbCr -> RGB */ + /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */ + color_matrix_YCbCr_to_RGB (dst, 0.2990, 0.1140); /* SD */ + + /* + * We are now in RGB space + */ + +#if 0 + /* scale to output range. */ + color_matrix_scale_components (dst, 255.0, 255.0, 255.0); +#endif +} + +void +color_matrix_build_bt709_to_bt601 (ColorMatrix * dst) +{ + color_matrix_set_identity (dst); + + /* offset required to get input video black to (0.,0.,0.) */ + color_matrix_offset_components (dst, -16, -128, -128); + + /* scale required to get input video black to (0.,0.,0.) */ + color_matrix_scale_components (dst, (1 / 219.0), (1 / 224.0), (1 / 224.0)); + + /* colour matrix, YCbCr -> RGB */ + /* Requires Y in [0,1.0], Cb&Cr in [-0.5,0.5] */ + color_matrix_YCbCr_to_RGB (dst, 0.2126, 0.0722); /* HD */ + + color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140); /* SD */ + + color_matrix_scale_components (dst, 219.0, 224.0, 224.0); + + color_matrix_offset_components (dst, 16, 128, 128); +} + +void +color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst) +{ + color_matrix_set_identity (dst); + + color_matrix_RGB_to_YCbCr (dst, 0.2990, 0.1140); /* SD */ + + color_matrix_scale_components (dst, 219.0, 224.0, 224.0); + + color_matrix_offset_components (dst, 16, 128, 128); + + { + Color c; + int i; + for (i = 7; i >= 0; i--) { + color_set (&c, (i & 2) ? 0.75 : 0.0, (i & 4) ? 0.75 : 0.0, + (i & 1) ? 0.75 : 0.0); + color_matrix_apply (dst, &c, &c); + g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]), + rint (c.v[2])); + } + color_set (&c, -0.075, -0.075, -0.075); + color_matrix_apply (dst, &c, &c); + g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]), + rint (c.v[2])); + color_set (&c, 0.075, 0.075, 0.075); + color_matrix_apply (dst, &c, &c); + g_print (" { %g, %g, %g },\n", rint (c.v[0]), rint (c.v[1]), + rint (c.v[2])); + } +} + +void +color_matrix_invert (ColorMatrix * m) +{ + ColorMatrix tmp; + int i, j; + double det; + + color_matrix_set_identity (&tmp); + for (j = 0; j < 3; j++) { + for (i = 0; i < 3; i++) { + tmp.m[j][i] = + m->m[(i + 1) % 3][(j + 1) % 3] * m->m[(i + 2) % 3][(j + 2) % 3] - + m->m[(i + 1) % 3][(j + 2) % 3] * m->m[(i + 2) % 3][(j + 1) % 3]; + } + } + det = + tmp.m[0][0] * m->m[0][0] + tmp.m[0][1] * m->m[1][0] + + tmp.m[0][2] * m->m[2][0]; + for (j = 0; j < 3; j++) { + for (i = 0; i < 3; i++) { + tmp.m[i][j] /= det; + } + } + memcpy (m, &tmp, sizeof (tmp)); +} + +void +color_matrix_copy (ColorMatrix * dest, ColorMatrix * src) +{ + memcpy (dest, src, sizeof (ColorMatrix)); +} + +void +color_matrix_transpose (ColorMatrix * m) +{ + int i, j; + ColorMatrix tmp; + + color_matrix_set_identity (&tmp); + for (i = 0; i < 3; i++) { + for (j = 0; j < 3; j++) { + tmp.m[i][j] = m->m[j][i]; + } + } + memcpy (m, &tmp, sizeof (ColorMatrix)); +} + +void +color_matrix_build_XYZ (ColorMatrix * dst, + double rx, double ry, + double gx, double gy, double bx, double by, double wx, double wy) +{ + Color r, g, b, w, scale; + ColorMatrix m; + + color_set (&r, rx, ry, 1.0); + color_xyY_to_XYZ (&r); + color_set (&g, gx, gy, 1.0); + color_xyY_to_XYZ (&g); + color_set (&b, bx, by, 1.0); + color_xyY_to_XYZ (&b); + color_set (&w, wx, wy, 1.0); + color_xyY_to_XYZ (&w); + + color_matrix_set_identity (dst); + + dst->m[0][0] = r.v[0]; + dst->m[0][1] = r.v[1]; + dst->m[0][2] = r.v[2]; + dst->m[1][0] = g.v[0]; + dst->m[1][1] = g.v[1]; + dst->m[1][2] = g.v[2]; + dst->m[2][0] = b.v[0]; + dst->m[2][1] = b.v[1]; + dst->m[2][2] = b.v[2]; + + color_matrix_dump (dst); + color_matrix_copy (&m, dst); + color_matrix_invert (&m); + color_matrix_dump (&m); + + color_matrix_transpose (&m); + color_matrix_apply (&m, &scale, &w); + g_print ("%g %g %g\n", scale.v[0], scale.v[1], scale.v[2]); + + dst->m[0][0] = r.v[0] * scale.v[0]; + dst->m[0][1] = r.v[1] * scale.v[0]; + dst->m[0][2] = r.v[2] * scale.v[0]; + dst->m[1][0] = g.v[0] * scale.v[1]; + dst->m[1][1] = g.v[1] * scale.v[1]; + dst->m[1][2] = g.v[2] * scale.v[1]; + dst->m[2][0] = b.v[0] * scale.v[2]; + dst->m[2][1] = b.v[1] * scale.v[2]; + dst->m[2][2] = b.v[2] * scale.v[2]; + + color_matrix_transpose (dst); + color_matrix_dump (dst); + + color_set (&scale, 1, 1, 1); + color_matrix_apply (dst, &scale, &scale); + color_XYZ_to_xyY (&scale); + g_print ("white %g %g %g\n", scale.v[0], scale.v[1], scale.v[2]); + +} + +void +color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst) +{ + /* SMPTE C primaries, SMPTE 170M-2004 */ + color_matrix_build_XYZ (dst, + 0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290); +#if 0 + /* NTSC 1953 primaries, SMPTE 170M-2004 */ + color_matrix_build_XYZ (dst, + 0.67, 0.33, 0.21, 0.71, 0.14, 0.08, 0.3127, 0.3290); +#endif +} + +void +color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst) +{ + /* Rec. ITU-R BT.709-5 */ + color_matrix_build_XYZ (dst, + 0.640, 0.330, 0.300, 0.600, 0.150, 0.060, 0.3127, 0.3290); +} + +void +color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst) +{ + /* Dell monitor */ +#if 1 + color_matrix_build_XYZ (dst, + 0.662, 0.329, 0.205, 0.683, 0.146, 0.077, 0.3135, 0.3290); +#endif +#if 0 + color_matrix_build_XYZ (dst, + 0.630, 0.340, 0.310, 0.595, 0.155, 0.070, 0.3127, 0.3290); +#endif + color_matrix_invert (dst); +} + +void +color_transfer_function_apply (Color * dest, Color * src) +{ + int i; + + for (i = 0; i < 3; i++) { + if (src->v[i] < 0.0812) { + dest->v[i] = src->v[i] / 4.500; + } else { + dest->v[i] = pow (src->v[i] + 0.099, 1 / 0.4500); + } + } +} + +void +color_transfer_function_unapply (Color * dest, Color * src) +{ + int i; + + for (i = 0; i < 3; i++) { + if (src->v[i] < 0.0812 / 4.500) { + dest->v[i] = src->v[i] * 4.500; + } else { + dest->v[i] = pow (src->v[i], 0.4500) - 0.099; + } + } +} + +void +color_gamut_clamp (Color * dest, Color * src) +{ + dest->v[0] = CLAMP (src->v[0], 0.0, 1.0); + dest->v[1] = CLAMP (src->v[1], 0.0, 1.0); + dest->v[2] = CLAMP (src->v[2], 0.0, 1.0); +} + +#if 0 +static guint8 * +get_color_transform_table (void) +{ + static guint8 *color_transform_table = NULL; + +#if 1 + if (!color_transform_table) { + ColorMatrix bt601_to_rgb; + ColorMatrix bt601_to_yuv; + ColorMatrix bt601_rgb_to_XYZ; + ColorMatrix dell_XYZ_to_rgb; + guint8 *table_y; + guint8 *table_u; + guint8 *table_v; + int y, u, v; + + color_matrix_build_yuv_to_rgb_601 (&bt601_to_rgb); + color_matrix_build_rgb_to_yuv_601 (&bt601_to_yuv); + color_matrix_build_rgb_to_XYZ_601 (&bt601_rgb_to_XYZ); + color_matrix_build_XYZ_to_rgb_dell (&dell_XYZ_to_rgb); + + color_transform_table = g_malloc (0x1000000 * 3); + + table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000); + table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000); + table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000); + + for (y = 0; y < 256; y++) { + for (u = 0; u < 256; u++) { + for (v = 0; v < 256; v++) { + Color c; + + c.v[0] = y; + c.v[1] = u; + c.v[2] = v; + color_matrix_apply (&bt601_to_rgb, &c, &c); + color_gamut_clamp (&c, &c); + color_transfer_function_apply (&c, &c); + color_matrix_apply (&bt601_rgb_to_XYZ, &c, &c); + color_matrix_apply (&dell_XYZ_to_rgb, &c, &c); + color_transfer_function_unapply (&c, &c); + color_gamut_clamp (&c, &c); + color_matrix_apply (&bt601_to_yuv, &c, &c); + + table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]); + table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]); + table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]); + } + } + } + } +#endif +#if 0 + if (!color_transform_table) { + ColorMatrix bt709_to_bt601; + guint8 *table_y; + guint8 *table_u; + guint8 *table_v; + int y, u, v; + + color_matrix_build_bt709_to_bt601 (&bt709_to_bt601); + + color_transform_table = g_malloc (0x1000000 * 3); + + table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000); + table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000); + table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000); + + for (y = 0; y < 256; y++) { + for (u = 0; u < 256; u++) { + for (v = 0; v < 256; v++) { + Color c; + + c.v[0] = y; + c.v[1] = u; + c.v[2] = v; + color_matrix_apply (&bt709_to_bt601, &c, &c); + + table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]); + table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]); + table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]); + } + } + } + } +#endif + + return color_transform_table; +} +#endif diff --git a/ext/cog/gstcms.h b/ext/cog/gstcms.h new file mode 100644 index 0000000..2930b7d --- /dev/null +++ b/ext/cog/gstcms.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GST_CMS_H_ +#define _GST_CMS_H_ + +#include + +G_BEGIN_DECLS + +typedef struct _Color Color; +typedef struct _ColorMatrix ColorMatrix; + +struct _Color +{ + double v[3]; +}; + +struct _ColorMatrix +{ + double m[4][4]; +}; + +void color_xyY_to_XYZ (Color * c); +void color_XYZ_to_xyY (Color * c); +void color_set (Color * c, double x, double y, double z); +void color_matrix_set_identity (ColorMatrix * m); +void color_matrix_dump (ColorMatrix * m); +void color_matrix_multiply (ColorMatrix * dst, ColorMatrix * a, ColorMatrix * b); +void color_matrix_apply (ColorMatrix * m, Color * dest, Color * src); +void color_matrix_offset_components (ColorMatrix * m, double a1, double a2, + double a3); +void color_matrix_scale_components (ColorMatrix * m, double a1, double a2, double a3); +void color_matrix_YCbCr_to_RGB (ColorMatrix * m, double Kr, double Kb); +void color_matrix_RGB_to_YCbCr (ColorMatrix * m, double Kr, double Kb); +void color_matrix_build_yuv_to_rgb_601 (ColorMatrix * dst); +void color_matrix_build_bt709_to_bt601 (ColorMatrix * dst); +void color_matrix_build_rgb_to_yuv_601 (ColorMatrix * dst); +void color_matrix_invert (ColorMatrix * m); +void color_matrix_copy (ColorMatrix * dest, ColorMatrix * src); +void color_matrix_transpose (ColorMatrix * m); +void color_matrix_build_XYZ (ColorMatrix * dst, + double rx, double ry, + double gx, double gy, double bx, double by, double wx, double wy); +void color_matrix_build_rgb_to_XYZ_601 (ColorMatrix * dst); +void color_matrix_build_XYZ_to_rgb_709 (ColorMatrix * dst); +void color_matrix_build_XYZ_to_rgb_dell (ColorMatrix * dst); +void color_transfer_function_apply (Color * dest, Color * src); +void color_transfer_function_unapply (Color * dest, Color * src); +void color_gamut_clamp (Color * dest, Color * src); + +G_END_DECLS + +#endif + diff --git a/ext/cog/gstcog.c b/ext/cog/gstcog.c new file mode 100644 index 0000000..beb147a --- /dev/null +++ b/ext/cog/gstcog.c @@ -0,0 +1,68 @@ +/* GStreamer + * Copyright (C) 2007 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include +#ifdef HAVE_ORC +#include +#endif + +GType gst_deblock_get_type (void); +GType gst_cogdownsample_get_type (void); +GType gst_cogcolorspace_get_type (void); +GType gst_cog_scale_get_type (void); +GType gst_colorconvert_get_type (void); +GType gst_logoinsert_get_type (void); +GType gst_mse_get_type (void); + +GST_DEBUG_CATEGORY (cog_debug); + +static gboolean +plugin_init (GstPlugin * plugin) +{ +#ifdef HAVE_ORC + orc_init (); +#endif + + GST_DEBUG_CATEGORY_INIT (cog_debug, "cog", 0, "Cog"); + + gst_element_register (plugin, "cogdownsample", GST_RANK_NONE, + gst_cogdownsample_get_type ()); + gst_element_register (plugin, "cogcolorspace", GST_RANK_NONE, + gst_cogcolorspace_get_type ()); + gst_element_register (plugin, "cogscale", GST_RANK_NONE, + gst_cog_scale_get_type ()); + gst_element_register (plugin, "cogcolorconvert", GST_RANK_NONE, + gst_colorconvert_get_type ()); + gst_element_register (plugin, "coglogoinsert", GST_RANK_NONE, + gst_logoinsert_get_type ()); + gst_element_register (plugin, "cogmse", GST_RANK_NONE, gst_mse_get_type ()); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "cog", + "Cog plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/cog/gstcogcolorspace.c b/ext/cog/gstcogcolorspace.c new file mode 100644 index 0000000..4a96e5c --- /dev/null +++ b/ext/cog/gstcogcolorspace.c @@ -0,0 +1,1049 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2003> David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * This file was (probably) generated from + * gstvideotemplate.c,v 1.18 2005/11/14 02:13:34 thomasvs Exp + * and + * $Id: make_filter,v 1.8 2004/04/19 22:51:57 ds Exp $ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include "gstcogutils.h" +#include "gstcogorc.h" + +#define GST_TYPE_COGCOLORSPACE \ + (gst_cogcolorspace_get_type()) +#define GST_COGCOLORSPACE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COGCOLORSPACE,GstCogcolorspace)) +#define GST_COGCOLORSPACE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COGCOLORSPACE,GstCogcolorspaceClass)) +#define GST_IS_COGCOLORSPACE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COGCOLORSPACE)) +#define GST_IS_COGCOLORSPACE_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COGCOLORSPACE)) + +typedef struct _GstCogcolorspace GstCogcolorspace; +typedef struct _GstCogcolorspaceClass GstCogcolorspaceClass; + +struct _GstCogcolorspace +{ + GstBaseTransform base_transform; + + int quality; +}; + +struct _GstCogcolorspaceClass +{ + GstBaseTransformClass parent_class; + +}; + +GType gst_cogcolorspace_get_type (void); + +/* GstCogcolorspace signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +#define DEFAULT_QUALITY 5 + +enum +{ + PROP_0, + PROP_QUALITY +}; + +static void gst_cogcolorspace_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_cogcolorspace_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstCaps *gst_cogcolorspace_transform_caps (GstBaseTransform * + base_transform, GstPadDirection direction, GstCaps * caps); +static GstFlowReturn gst_cogcolorspace_transform (GstBaseTransform * + base_transform, GstBuffer * inbuf, GstBuffer * outbuf); +static gboolean gst_cogcolorspace_get_unit_size (GstBaseTransform * + base_transform, GstCaps * caps, guint * size); + +static GstStaticPadTemplate gst_cogcolorspace_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV + ("{ I420, YV12, YUY2, UYVY, AYUV, Y42B, Y444, v216, v210 }") + ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" GST_VIDEO_CAPS_xRGB + ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_RGBA ";" GST_VIDEO_CAPS_BGRA + ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_ABGR) + ); + +static GstStaticPadTemplate gst_cogcolorspace_src_template = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV + ("{ I420, YV12, YUY2, UYVY, AYUV, Y42B, Y444, v216, v210 }") + ";" GST_VIDEO_CAPS_RGBx ";" GST_VIDEO_CAPS_BGRx ";" GST_VIDEO_CAPS_xRGB + ";" GST_VIDEO_CAPS_xBGR ";" GST_VIDEO_CAPS_RGBA ";" GST_VIDEO_CAPS_BGRA + ";" GST_VIDEO_CAPS_ARGB ";" GST_VIDEO_CAPS_ABGR) + ); + +GST_BOILERPLATE (GstCogcolorspace, gst_cogcolorspace, GstBaseTransform, + GST_TYPE_BASE_TRANSFORM); + +static void +gst_cogcolorspace_base_init (gpointer g_class) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cogcolorspace_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cogcolorspace_sink_template)); + + gst_element_class_set_details_simple (element_class, + "YCbCr/RGB format conversion", "Filter/Converter/Video", + "YCbCr/RGB format conversion", "David Schleef "); +} + +static void +gst_cogcolorspace_class_init (GstCogcolorspaceClass * colorspace_class) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *base_transform_class; + + gobject_class = G_OBJECT_CLASS (colorspace_class); + base_transform_class = GST_BASE_TRANSFORM_CLASS (colorspace_class); + + gobject_class->set_property = gst_cogcolorspace_set_property; + gobject_class->get_property = gst_cogcolorspace_get_property; + + g_object_class_install_property (gobject_class, PROP_QUALITY, + g_param_spec_int ("quality", "Quality", "Quality", + 0, 10, DEFAULT_QUALITY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + base_transform_class->transform = gst_cogcolorspace_transform; + base_transform_class->transform_caps = gst_cogcolorspace_transform_caps; + base_transform_class->get_unit_size = gst_cogcolorspace_get_unit_size; + + base_transform_class->passthrough_on_same_caps = TRUE; +} + +static void +gst_cogcolorspace_init (GstCogcolorspace * colorspace, + GstCogcolorspaceClass * klass) +{ + GST_DEBUG ("gst_cogcolorspace_init"); + + colorspace->quality = DEFAULT_QUALITY; +} + +static void +gst_cogcolorspace_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCogcolorspace *colorspace; + + g_return_if_fail (GST_IS_COGCOLORSPACE (object)); + colorspace = GST_COGCOLORSPACE (object); + + GST_DEBUG ("gst_cogcolorspace_set_property"); + switch (prop_id) { + case PROP_QUALITY: + GST_OBJECT_LOCK (colorspace); + colorspace->quality = g_value_get_int (value); + GST_OBJECT_UNLOCK (colorspace); + break; + default: + break; + } +} + +static void +gst_cogcolorspace_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstCogcolorspace *colorspace; + + g_return_if_fail (GST_IS_COGCOLORSPACE (object)); + colorspace = GST_COGCOLORSPACE (object); + + switch (prop_id) { + case PROP_QUALITY: + GST_OBJECT_LOCK (colorspace); + g_value_set_int (value, colorspace->quality); + GST_OBJECT_UNLOCK (colorspace); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +#if 0 +static void +transform_value (GValue * dest) +{ + GValue fourcc = { 0 }; + + g_value_init (dest, GST_TYPE_LIST); + g_value_init (&fourcc, GST_TYPE_FOURCC); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('I', '4', '2', '0')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', 'V', '1', '2')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', 'U', 'Y', '2')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('A', 'Y', 'U', 'V')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', '4', '2', 'B')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('Y', '4', '4', '4')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('v', '2', '1', '0')); + gst_value_list_append_value (dest, &fourcc); + + gst_value_set_fourcc (&fourcc, GST_MAKE_FOURCC ('v', '2', '1', '6')); + gst_value_list_append_value (dest, &fourcc); + + g_value_unset (&fourcc); +} +#endif + +static GstCaps * +gst_cogcolorspace_caps_remove_format_info (GstCaps * caps) +{ + int i; + GstStructure *structure; + GstCaps *rgbcaps; + + caps = gst_caps_copy (caps); + + for (i = 0; i < gst_caps_get_size (caps); i++) { + structure = gst_caps_get_structure (caps, i); + + gst_structure_set_name (structure, "video/x-raw-yuv"); + gst_structure_remove_field (structure, "format"); + gst_structure_remove_field (structure, "endianness"); + gst_structure_remove_field (structure, "depth"); + gst_structure_remove_field (structure, "bpp"); + gst_structure_remove_field (structure, "red_mask"); + gst_structure_remove_field (structure, "green_mask"); + gst_structure_remove_field (structure, "blue_mask"); + gst_structure_remove_field (structure, "alpha_mask"); + gst_structure_remove_field (structure, "palette_data"); + gst_structure_remove_field (structure, "color-matrix"); + gst_structure_remove_field (structure, "chroma-site"); + } + + gst_caps_do_simplify (caps); + rgbcaps = gst_caps_copy (caps); + + for (i = 0; i < gst_caps_get_size (rgbcaps); i++) { + structure = gst_caps_get_structure (rgbcaps, i); + + gst_structure_set_name (structure, "video/x-raw-rgb"); + } + + gst_caps_append (caps, rgbcaps); + + return caps; +} + +static GstCaps * +gst_cogcolorspace_transform_caps (GstBaseTransform * base_transform, + GstPadDirection direction, GstCaps * caps) +{ +#if 0 + int i; + GstStructure *structure; + GValue new_value = { 0 }; + const GValue *value; + + caps = gst_caps_copy (caps); + + for (i = 0; i < gst_caps_get_size (caps); i++) { + structure = gst_caps_get_structure (caps, i); + + value = gst_structure_get_value (structure, "format"); + transform_value (&new_value); + gst_structure_set_value (structure, "format", &new_value); + g_value_unset (&new_value); + } + + return caps; +#endif +#if 0 + GstCaps *template; + GstCaps *result; + + template = gst_ffmpegcsp_codectype_to_caps (CODEC_TYPE_VIDEO, NULL); + result = gst_caps_intersect (caps, template); + gst_caps_unref (template); + + gst_caps_append (result, gst_ffmpegcsp_caps_remove_format_info (caps)); + + return result; +#endif + return gst_cogcolorspace_caps_remove_format_info (caps); +} + +static gboolean +gst_cogcolorspace_get_unit_size (GstBaseTransform * base_transform, + GstCaps * caps, guint * size) +{ + int width, height; + GstVideoFormat format; + gboolean ret; + + ret = gst_video_format_parse_caps (caps, &format, &width, &height); + if (!ret) + return FALSE; + + *size = gst_video_format_get_size (format, width, height); + + return TRUE; +} + +static CogColorMatrix +gst_cogcolorspace_caps_get_color_matrix (GstCaps * caps) +{ + const char *s; + + s = gst_video_parse_caps_color_matrix (caps); + + if (s == NULL) + return COG_COLOR_MATRIX_SDTV; + + if (strcmp (s, "sdtv") == 0) { + return COG_COLOR_MATRIX_SDTV; + } else if (strcmp (s, "hdtv") == 0) { + return COG_COLOR_MATRIX_HDTV; + } + + return COG_COLOR_MATRIX_SDTV; +} + +static CogChromaSite +gst_cogcolorspace_caps_get_chroma_site (GstCaps * caps) +{ + const char *s; + + s = gst_video_parse_caps_chroma_site (caps); + + if (s == NULL) + return COG_COLOR_MATRIX_SDTV; + + if (strcmp (s, "jpeg") == 0) { + return COG_CHROMA_SITE_JPEG; + } else if (strcmp (s, "mpeg2") == 0) { + return COG_CHROMA_SITE_MPEG2; + } + + return COG_CHROMA_SITE_MPEG2; +} + +static void +convert_I420_YUY2 (CogFrame * dest, CogFrame * src) +{ + int i; + + for (i = 0; i < dest->height; i += 2) { + cogorc_convert_I420_YUY2 (COG_FRAME_DATA_GET_LINE (dest->components + 0, i), + COG_FRAME_DATA_GET_LINE (dest->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), + (dest->width + 1) / 2); + } +} + +static void +convert_I420_UYVY (CogFrame * dest, CogFrame * src) +{ + int i; + + for (i = 0; i < dest->height; i += 2) { + cogorc_convert_I420_UYVY (COG_FRAME_DATA_GET_LINE (dest->components + 0, i), + COG_FRAME_DATA_GET_LINE (dest->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), + (dest->width + 1) / 2); + } +} + +static void +convert_I420_AYUV (CogFrame * dest, CogFrame * src) +{ + int i; + + for (i = 0; i < dest->height; i += 2) { + cogorc_convert_I420_AYUV (COG_FRAME_DATA_GET_LINE (dest->components + 0, i), + COG_FRAME_DATA_GET_LINE (dest->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), dest->width); + } +} + +static void +convert_I420_Y42B (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_420_422 (dest->components[1].data, + 2 * dest->components[1].stride, + COG_FRAME_DATA_GET_LINE (dest->components + 2, 1), + 2 * dest->components[1].stride, src->components[1].data, + src->components[1].stride, (dest->width + 1) / 2, dest->height / 2); + + cogorc_planar_chroma_420_422 (dest->components[2].data, + 2 * dest->components[2].stride, + COG_FRAME_DATA_GET_LINE (dest->components + 2, 1), + 2 * dest->components[2].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height / 2); +} + +static void +convert_I420_Y444 (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_420_444 (dest->components[1].data, + 2 * dest->components[1].stride, + COG_FRAME_DATA_GET_LINE (dest->components + 1, 1), + 2 * dest->components[1].stride, src->components[1].data, + src->components[1].stride, (dest->width + 1) / 2, (dest->height + 1) / 2); + + cogorc_planar_chroma_420_444 (dest->components[2].data, + 2 * dest->components[2].stride, + COG_FRAME_DATA_GET_LINE (dest->components + 2, 1), + 2 * dest->components[2].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, (dest->height + 1) / 2); +} + +static void +convert_YUY2_I420 (CogFrame * dest, CogFrame * src) +{ + int i; + + for (i = 0; i < dest->height; i += 2) { + cogorc_convert_YUY2_I420 (COG_FRAME_DATA_GET_LINE (dest->components + 0, i), + COG_FRAME_DATA_GET_LINE (dest->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (dest->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (dest->components + 2, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 0, i + 1), + (dest->width + 1) / 2); + } +} + +static void +convert_YUY2_AYUV (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_YUY2_AYUV (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_YUY2_Y42B (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_YUY2_Y42B (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_YUY2_Y444 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_YUY2_Y444 (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + + +static void +convert_UYVY_I420 (CogFrame * dest, CogFrame * src) +{ + int i; + + for (i = 0; i < dest->height; i += 2) { + cogorc_convert_UYVY_I420 (COG_FRAME_DATA_GET_LINE (dest->components + 0, i), + COG_FRAME_DATA_GET_LINE (dest->components + 0, i + 1), + COG_FRAME_DATA_GET_LINE (dest->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (dest->components + 2, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 0, i + 1), + (dest->width + 1) / 2); + } +} + +static void +convert_UYVY_AYUV (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_UYVY_AYUV (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_UYVY_YUY2 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_UYVY_YUY2 (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_UYVY_Y42B (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_UYVY_Y42B (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_UYVY_Y444 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_UYVY_Y444 (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_AYUV_I420 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_I420 (COG_FRAME_DATA_GET_LINE (dest->components + 0, 0), + 2 * dest->components[0].stride, + COG_FRAME_DATA_GET_LINE (dest->components + 0, 1), + 2 * dest->components[0].stride, + dest->components[1].data, dest->components[1].stride, + dest->components[2].data, dest->components[2].stride, + COG_FRAME_DATA_GET_LINE (src->components + 0, 0), + /* FIXME why not 2* ? */ + src->components[0].stride, + COG_FRAME_DATA_GET_LINE (src->components + 0, 1), + src->components[0].stride, dest->width / 2, dest->height / 2); +} + +static void +convert_AYUV_YUY2 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_YUY2 (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width / 2, dest->height); +} + +static void +convert_AYUV_UYVY (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_UYVY (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width / 2, dest->height); +} + +static void +convert_AYUV_Y42B (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_Y42B (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_AYUV_Y444 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_Y444 (dest->components[0].data, + dest->components[0].stride, dest->components[1].data, + dest->components[1].stride, dest->components[2].data, + dest->components[2].stride, src->components[0].data, + src->components[0].stride, dest->width, dest->height); +} + +static void +convert_Y42B_I420 (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_422_420 (dest->components[1].data, + dest->components[1].stride, src->components[1].data, + 2 * src->components[1].stride, + COG_FRAME_DATA_GET_LINE (src->components + 1, 1), + 2 * src->components[1].stride, (dest->width + 1) / 2, + (dest->height + 1) / 2); + + cogorc_planar_chroma_422_420 (dest->components[2].data, + dest->components[2].stride, src->components[2].data, + 2 * src->components[2].stride, + COG_FRAME_DATA_GET_LINE (src->components + 2, 1), + 2 * src->components[2].stride, (dest->width + 1) / 2, + (dest->height + 1) / 2); +} + +static void +convert_Y42B_Y444 (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_422_444 (dest->components[1].data, + dest->components[1].stride, src->components[1].data, + src->components[1].stride, (dest->width + 1) / 2, dest->height); + + cogorc_planar_chroma_422_444 (dest->components[2].data, + dest->components[2].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y42B_YUY2 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y42B_YUY2 (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y42B_UYVY (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y42B_UYVY (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y42B_AYUV (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y42B_AYUV (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, (dest->width) / 2, dest->height); +} + +static void +convert_Y444_I420 (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_444_420 (dest->components[1].data, + dest->components[1].stride, src->components[1].data, + 2 * src->components[1].stride, + COG_FRAME_DATA_GET_LINE (src->components + 1, 1), + 2 * src->components[1].stride, (dest->width + 1) / 2, + (dest->height + 1) / 2); + + cogorc_planar_chroma_444_420 (dest->components[2].data, + dest->components[2].stride, src->components[2].data, + 2 * src->components[2].stride, + COG_FRAME_DATA_GET_LINE (src->components + 2, 1), + 2 * src->components[2].stride, (dest->width + 1) / 2, + (dest->height + 1) / 2); +} + +static void +convert_Y444_Y42B (CogFrame * dest, CogFrame * src) +{ + cogorc_memcpy_2d (dest->components[0].data, dest->components[0].stride, + src->components[0].data, src->components[0].stride, + dest->width, dest->height); + + cogorc_planar_chroma_444_422 (dest->components[1].data, + dest->components[1].stride, src->components[1].data, + src->components[1].stride, (dest->width + 1) / 2, dest->height); + + cogorc_planar_chroma_444_422 (dest->components[2].data, + dest->components[2].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y444_YUY2 (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y444_YUY2 (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y444_UYVY (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y444_UYVY (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, (dest->width + 1) / 2, dest->height); +} + +static void +convert_Y444_AYUV (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_Y444_AYUV (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, src->components[1].data, + src->components[1].stride, src->components[2].data, + src->components[2].stride, dest->width, dest->height); +} + +static void +convert_AYUV_ARGB (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_ARGB (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width, dest->height); +} + +static void +convert_AYUV_BGRA (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_BGRA (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width, dest->height); +} + +static void +convert_AYUV_ABGR (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_ABGR (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width, dest->height); +} + +static void +convert_AYUV_RGBA (CogFrame * dest, CogFrame * src) +{ + cogorc_convert_AYUV_RGBA (dest->components[0].data, + dest->components[0].stride, src->components[0].data, + src->components[0].stride, dest->width, dest->height); +} + +static void +convert_I420_BGRA (CogFrame * dest, CogFrame * src) +{ + int i; + int quality = 0; + + if (quality > 3) { + for (i = 0; i < dest->height; i++) { + if (i & 1) { + cogorc_convert_I420_BGRA_avg (COG_FRAME_DATA_GET_LINE (dest->components + + 0, i), COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 1, (i >> 1) + 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, (i >> 1) + 1), + dest->width); + } else { + cogorc_convert_I420_BGRA (COG_FRAME_DATA_GET_LINE (dest->components + 0, + i), COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), dest->width); + } + } + } else { + for (i = 0; i < dest->height; i++) { + cogorc_convert_I420_BGRA (COG_FRAME_DATA_GET_LINE (dest->components + 0, + i), COG_FRAME_DATA_GET_LINE (src->components + 0, i), + COG_FRAME_DATA_GET_LINE (src->components + 1, i >> 1), + COG_FRAME_DATA_GET_LINE (src->components + 2, i >> 1), dest->width); + } + } +} + + + + + +typedef struct +{ + uint32_t in_format; + uint32_t out_format; + void (*convert) (CogFrame * dest, CogFrame * src); +} CogColorspaceTransform; +static CogColorspaceTransform transforms[] = { + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_YUY2, convert_I420_YUY2}, + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_UYVY, convert_I420_UYVY}, + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_AYUV, convert_I420_AYUV}, + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y42B, convert_I420_Y42B}, + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_Y444, convert_I420_Y444}, + + {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_I420, convert_YUY2_I420}, + {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_UYVY, convert_UYVY_YUY2}, /* alias */ + {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_AYUV, convert_YUY2_AYUV}, + {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y42B, convert_YUY2_Y42B}, + {GST_VIDEO_FORMAT_YUY2, GST_VIDEO_FORMAT_Y444, convert_YUY2_Y444}, + + {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_I420, convert_UYVY_I420}, + {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_YUY2, convert_UYVY_YUY2}, + {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_AYUV, convert_UYVY_AYUV}, + {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y42B, convert_UYVY_Y42B}, + {GST_VIDEO_FORMAT_UYVY, GST_VIDEO_FORMAT_Y444, convert_UYVY_Y444}, + + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_I420, convert_AYUV_I420}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_YUY2, convert_AYUV_YUY2}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_UYVY, convert_AYUV_UYVY}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y42B, convert_AYUV_Y42B}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_Y444, convert_AYUV_Y444}, + + {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_I420, convert_Y42B_I420}, + {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_YUY2, convert_Y42B_YUY2}, + {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_UYVY, convert_Y42B_UYVY}, + {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_AYUV, convert_Y42B_AYUV}, + {GST_VIDEO_FORMAT_Y42B, GST_VIDEO_FORMAT_Y444, convert_Y42B_Y444}, + + {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_I420, convert_Y444_I420}, + {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_YUY2, convert_Y444_YUY2}, + {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_UYVY, convert_Y444_UYVY}, + {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_AYUV, convert_Y444_AYUV}, + {GST_VIDEO_FORMAT_Y444, GST_VIDEO_FORMAT_Y42B, convert_Y444_Y42B}, + + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ARGB, convert_AYUV_ARGB}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRA, convert_AYUV_BGRA}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xRGB, convert_AYUV_ARGB}, /* alias */ + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_BGRx, convert_AYUV_BGRA}, /* alias */ + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_ABGR, convert_AYUV_ABGR}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBA, convert_AYUV_RGBA}, + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_xBGR, convert_AYUV_ABGR}, /* alias */ + {GST_VIDEO_FORMAT_AYUV, GST_VIDEO_FORMAT_RGBx, convert_AYUV_RGBA}, /* alias */ + + {GST_VIDEO_FORMAT_I420, GST_VIDEO_FORMAT_BGRA, convert_I420_BGRA}, +}; + +static GstFlowReturn +gst_cogcolorspace_transform (GstBaseTransform * base_transform, + GstBuffer * inbuf, GstBuffer * outbuf) +{ + GstCogcolorspace *compress; + CogFrame *out_frame; + CogFrame *frame; + int width, height; + uint32_t in_format; + uint32_t out_format; + CogFrameFormat new_subsample; + gboolean ret; + CogColorMatrix in_color_matrix; + CogColorMatrix out_color_matrix; + CogChromaSite in_chroma_site; + CogChromaSite out_chroma_site; + + g_return_val_if_fail (GST_IS_COGCOLORSPACE (base_transform), GST_FLOW_ERROR); + compress = GST_COGCOLORSPACE (base_transform); + + ret = gst_video_format_parse_caps (inbuf->caps, &in_format, &width, &height); + ret &= + gst_video_format_parse_caps (outbuf->caps, &out_format, &width, &height); + if (!ret) { + return GST_FLOW_ERROR; + } + + in_color_matrix = gst_cogcolorspace_caps_get_color_matrix (inbuf->caps); + out_color_matrix = gst_cogcolorspace_caps_get_color_matrix (outbuf->caps); + + in_chroma_site = gst_cogcolorspace_caps_get_chroma_site (inbuf->caps); + out_chroma_site = gst_cogcolorspace_caps_get_chroma_site (outbuf->caps); + + frame = gst_cog_buffer_wrap (gst_buffer_ref (inbuf), + in_format, width, height); + out_frame = gst_cog_buffer_wrap (gst_buffer_ref (outbuf), + out_format, width, height); + + if (in_format == out_format) { + memcpy (GST_BUFFER_DATA (outbuf), GST_BUFFER_DATA (inbuf), + GST_BUFFER_SIZE (outbuf)); + } + + { + int i; + + for (i = 0; i < sizeof (transforms) / sizeof (transforms[0]); i++) { + if (transforms[i].in_format == in_format && + transforms[i].out_format == out_format) { + transforms[i].convert (out_frame, frame); + cog_frame_unref (frame); + cog_frame_unref (out_frame); + + return GST_FLOW_OK; + } + } + + GST_DEBUG ("no fastpath match %d %d", in_format, out_format); + } + + switch (out_format) { + case GST_VIDEO_FORMAT_YUY2: + case GST_VIDEO_FORMAT_UYVY: + case GST_VIDEO_FORMAT_YVYU: + case GST_VIDEO_FORMAT_Y42B: + case GST_VIDEO_FORMAT_v210: + case GST_VIDEO_FORMAT_v216: + new_subsample = COG_FRAME_FORMAT_U8_422; + break; + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + new_subsample = COG_FRAME_FORMAT_U8_420; + break; + case GST_VIDEO_FORMAT_Y444: + case GST_VIDEO_FORMAT_RGBx: + case GST_VIDEO_FORMAT_xRGB: + case GST_VIDEO_FORMAT_BGRx: + case GST_VIDEO_FORMAT_xBGR: + case GST_VIDEO_FORMAT_RGBA: + case GST_VIDEO_FORMAT_ARGB: + case GST_VIDEO_FORMAT_BGRA: + case GST_VIDEO_FORMAT_ABGR: + default: + new_subsample = COG_FRAME_FORMAT_U8_444; + break; + } + + frame = cog_virt_frame_new_unpack (frame); + + if (gst_video_format_is_yuv (out_format) && + gst_video_format_is_rgb (in_format)) { + frame = cog_virt_frame_new_color_matrix_RGB_to_YCbCr (frame, + out_color_matrix, 8); + frame = cog_virt_frame_new_subsample (frame, new_subsample, + out_chroma_site, (compress->quality >= 3) ? 2 : 1); + } + + if (gst_video_format_is_yuv (out_format) && + gst_video_format_is_yuv (in_format)) { + if ((in_color_matrix != out_color_matrix || + in_chroma_site != out_chroma_site)) { + frame = cog_virt_frame_new_subsample (frame, COG_FRAME_FORMAT_U8_444, + in_chroma_site, (compress->quality >= 5) ? 8 : 6); + frame = cog_virt_frame_new_color_matrix_YCbCr_to_YCbCr (frame, + in_color_matrix, out_color_matrix, 8); + } + frame = cog_virt_frame_new_subsample (frame, new_subsample, + in_chroma_site, (compress->quality >= 5) ? 8 : 6); + } + + if (gst_video_format_is_rgb (out_format) && + gst_video_format_is_yuv (in_format)) { + frame = cog_virt_frame_new_subsample (frame, new_subsample, + in_chroma_site, (compress->quality >= 3) ? 2 : 1); + frame = cog_virt_frame_new_color_matrix_YCbCr_to_RGB (frame, + in_color_matrix, (compress->quality >= 5) ? 8 : 6); + } + + switch (out_format) { + case GST_VIDEO_FORMAT_YUY2: + frame = cog_virt_frame_new_pack_YUY2 (frame); + break; + case GST_VIDEO_FORMAT_UYVY: + frame = cog_virt_frame_new_pack_UYVY (frame); + break; + case GST_VIDEO_FORMAT_AYUV: + frame = cog_virt_frame_new_pack_AYUV (frame); + break; + case GST_VIDEO_FORMAT_v216: + frame = cog_virt_frame_new_pack_v216 (frame); + break; + case GST_VIDEO_FORMAT_v210: + frame = cog_virt_frame_new_pack_v210 (frame); + break; + case GST_VIDEO_FORMAT_RGBx: + frame = cog_virt_frame_new_pack_RGBx (frame); + break; + case GST_VIDEO_FORMAT_xRGB: + frame = cog_virt_frame_new_pack_xRGB (frame); + break; + case GST_VIDEO_FORMAT_BGRx: + frame = cog_virt_frame_new_pack_BGRx (frame); + break; + case GST_VIDEO_FORMAT_xBGR: + frame = cog_virt_frame_new_pack_xBGR (frame); + break; + case GST_VIDEO_FORMAT_RGBA: + frame = cog_virt_frame_new_pack_RGBA (frame); + break; + case GST_VIDEO_FORMAT_ARGB: + frame = cog_virt_frame_new_pack_ARGB (frame); + break; + case GST_VIDEO_FORMAT_BGRA: + frame = cog_virt_frame_new_pack_BGRA (frame); + break; + case GST_VIDEO_FORMAT_ABGR: + frame = cog_virt_frame_new_pack_ABGR (frame); + break; + default: + break; + } + + cog_virt_frame_render (frame, out_frame); + cog_frame_unref (frame); + cog_frame_unref (out_frame); + + return GST_FLOW_OK; +} diff --git a/ext/cog/gstcogdownsample.c b/ext/cog/gstcogdownsample.c new file mode 100644 index 0000000..8bec086 --- /dev/null +++ b/ext/cog/gstcogdownsample.c @@ -0,0 +1,386 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) <2003> David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + * This file was (probably) generated from + * gstvideotemplate.c,v 1.18 2005/11/14 02:13:34 thomasvs Exp + * and + * $Id: make_filter,v 1.8 2004/04/19 22:51:57 ds Exp $ + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include + +#define GST_TYPE_COGDOWNSAMPLE \ + (gst_cogdownsample_get_type()) +#define GST_COGDOWNSAMPLE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COGDOWNSAMPLE,GstCogdownsample)) +#define GST_COGDOWNSAMPLE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COGDOWNSAMPLE,GstCogdownsampleClass)) +#define GST_IS_COGDOWNSAMPLE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COGDOWNSAMPLE)) +#define GST_IS_COGDOWNSAMPLE_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COGDOWNSAMPLE)) + +typedef struct _GstCogdownsample GstCogdownsample; +typedef struct _GstCogdownsampleClass GstCogdownsampleClass; + +struct _GstCogdownsample +{ + GstBaseTransform base_transform; + +}; + +struct _GstCogdownsampleClass +{ + GstBaseTransformClass parent_class; + +}; + +GType gst_cogdownsample_get_type (void); + +enum +{ + ARG_0 +}; + +static void gst_cogdownsample_base_init (gpointer g_class); +static void gst_cogdownsample_class_init (gpointer g_class, + gpointer class_data); +static void gst_cogdownsample_init (GTypeInstance * instance, gpointer g_class); + +static void gst_cogdownsample_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_cogdownsample_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstCaps *gst_cogdownsample_transform_caps (GstBaseTransform * + base_transform, GstPadDirection direction, GstCaps * caps); +static GstFlowReturn gst_cogdownsample_transform (GstBaseTransform * + base_transform, GstBuffer * inbuf, GstBuffer * outbuf); +static gboolean gst_cogdownsample_get_unit_size (GstBaseTransform * + base_transform, GstCaps * caps, guint * size); + +static GstStaticPadTemplate gst_cogdownsample_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YV12, YUY2, UYVY, AYUV }")) + ); + +static GstStaticPadTemplate gst_cogdownsample_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YV12, YUY2, UYVY, AYUV }")) + ); + +GType +gst_cogdownsample_get_type (void) +{ + static GType compress_type = 0; + + if (!compress_type) { + static const GTypeInfo compress_info = { + sizeof (GstCogdownsampleClass), + gst_cogdownsample_base_init, + NULL, + gst_cogdownsample_class_init, + NULL, + NULL, + sizeof (GstCogdownsample), + 0, + gst_cogdownsample_init, + }; + + compress_type = g_type_register_static (GST_TYPE_BASE_TRANSFORM, + "GstCogdownsample", &compress_info, 0); + } + return compress_type; +} + + +static void +gst_cogdownsample_base_init (gpointer g_class) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cogdownsample_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cogdownsample_sink_template)); + + gst_element_class_set_details_simple (element_class, + "Scale down video by factor of 2", "Filter/Effect/Video", + "Scales down video by a factor of 2", "David Schleef "); +} + +static void +gst_cogdownsample_class_init (gpointer g_class, gpointer class_data) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *base_transform_class; + + gobject_class = G_OBJECT_CLASS (g_class); + base_transform_class = GST_BASE_TRANSFORM_CLASS (g_class); + + gobject_class->set_property = gst_cogdownsample_set_property; + gobject_class->get_property = gst_cogdownsample_get_property; + + base_transform_class->transform = gst_cogdownsample_transform; + base_transform_class->transform_caps = gst_cogdownsample_transform_caps; + base_transform_class->get_unit_size = gst_cogdownsample_get_unit_size; +} + +static void +gst_cogdownsample_init (GTypeInstance * instance, gpointer g_class) +{ + + GST_DEBUG ("gst_cogdownsample_init"); +} + +static void +gst_cogdownsample_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCogdownsample *src; + + g_return_if_fail (GST_IS_COGDOWNSAMPLE (object)); + src = GST_COGDOWNSAMPLE (object); + + GST_DEBUG ("gst_cogdownsample_set_property"); + switch (prop_id) { + default: + break; + } +} + +static void +gst_cogdownsample_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstCogdownsample *src; + + g_return_if_fail (GST_IS_COGDOWNSAMPLE (object)); + src = GST_COGDOWNSAMPLE (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +transform_value (GValue * dest, const GValue * src, GstPadDirection dir) +{ + g_value_init (dest, G_VALUE_TYPE (src)); + + if (G_VALUE_HOLDS_INT (src)) { + int x; + + x = g_value_get_int (src); + if (dir == GST_PAD_SINK) { + g_value_set_int (dest, x / 2); + } else { + g_value_set_int (dest, x * 2); + } + } else if (GST_VALUE_HOLDS_INT_RANGE (src)) { + int min, max; + + min = gst_value_get_int_range_min (src); + max = gst_value_get_int_range_max (src); + + if (dir == GST_PAD_SINK) { + min = (min + 1) / 2; + if (max == G_MAXINT) { + max = G_MAXINT / 2; + } else { + max = (max + 1) / 2; + } + } else { + if (max > G_MAXINT / 2) { + max = G_MAXINT; + } else { + max = max * 2; + } + if (min > G_MAXINT / 2) { + min = G_MAXINT; + } else { + min = min * 2; + } + } + gst_value_set_int_range (dest, min, max); + } else { + /* FIXME */ + g_warning ("case not handled"); + g_value_set_int (dest, 100); + } +} + +static GstCaps * +gst_cogdownsample_transform_caps (GstBaseTransform * base_transform, + GstPadDirection direction, GstCaps * caps) +{ + int i; + GstStructure *structure; + GValue new_value = { 0 }; + const GValue *value; + + caps = gst_caps_copy (caps); + + for (i = 0; i < gst_caps_get_size (caps); i++) { + structure = gst_caps_get_structure (caps, i); + + value = gst_structure_get_value (structure, "width"); + transform_value (&new_value, value, direction); + gst_structure_set_value (structure, "width", &new_value); + g_value_unset (&new_value); + + value = gst_structure_get_value (structure, "height"); + transform_value (&new_value, value, direction); + gst_structure_set_value (structure, "height", &new_value); + g_value_unset (&new_value); + } + + return caps; +} + +static gboolean +gst_cogdownsample_get_unit_size (GstBaseTransform * base_transform, + GstCaps * caps, guint * size) +{ + int width, height; + uint32_t format; + + gst_structure_get_fourcc (gst_caps_get_structure (caps, 0), + "format", &format); + gst_structure_get_int (gst_caps_get_structure (caps, 0), "width", &width); + gst_structure_get_int (gst_caps_get_structure (caps, 0), "height", &height); + + switch (format) { + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + *size = width * height * 3 / 2; + break; + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + *size = width * height * 2; + break; + case GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'): + *size = width * height * 4; + break; + default: + g_assert_not_reached (); + } + + return TRUE; +} + +static GstFlowReturn +gst_cogdownsample_transform (GstBaseTransform * base_transform, + GstBuffer * inbuf, GstBuffer * outbuf) +{ + GstCogdownsample *compress; + CogFrame *outframe; + int width, height; + uint32_t format; + CogFrame *frame; + + g_return_val_if_fail (GST_IS_COGDOWNSAMPLE (base_transform), GST_FLOW_ERROR); + compress = GST_COGDOWNSAMPLE (base_transform); + + gst_structure_get_fourcc (gst_caps_get_structure (inbuf->caps, 0), + "format", &format); + gst_structure_get_int (gst_caps_get_structure (inbuf->caps, 0), + "width", &width); + gst_structure_get_int (gst_caps_get_structure (inbuf->caps, 0), + "height", &height); + + switch (format) { + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + frame = cog_frame_new_from_data_I420 (GST_BUFFER_DATA (inbuf), + width, height); + outframe = cog_frame_new_from_data_I420 (GST_BUFFER_DATA (outbuf), + width / 2, height / 2); + break; + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + frame = cog_frame_new_from_data_YV12 (GST_BUFFER_DATA (inbuf), + width, height); + outframe = cog_frame_new_from_data_YV12 (GST_BUFFER_DATA (outbuf), + width / 2, height / 2); + break; + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + frame = cog_frame_new_from_data_YUY2 (GST_BUFFER_DATA (inbuf), + width, height); + outframe = cog_frame_new_from_data_YUY2 (GST_BUFFER_DATA (outbuf), + width / 2, height / 2); + break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + frame = cog_frame_new_from_data_UYVY (GST_BUFFER_DATA (inbuf), + width, height); + outframe = cog_frame_new_from_data_UYVY (GST_BUFFER_DATA (outbuf), + width / 2, height / 2); + break; + case GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'): + frame = cog_frame_new_from_data_AYUV (GST_BUFFER_DATA (inbuf), + width, height); + outframe = cog_frame_new_from_data_AYUV (GST_BUFFER_DATA (outbuf), + width / 2, height / 2); + break; + default: + g_assert_not_reached (); + return GST_FLOW_ERROR; + } + + frame = cog_virt_frame_new_unpack (frame); + frame = cog_virt_frame_new_horiz_downsample (frame, 3); + frame = cog_virt_frame_new_vert_downsample (frame, 2); + + switch (format) { + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + frame = cog_virt_frame_new_pack_YUY2 (frame); + break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + frame = cog_virt_frame_new_pack_UYVY (frame); + break; + case GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'): + frame = cog_virt_frame_new_pack_AYUV (frame); + break; + default: + break; + } + + cog_virt_frame_render (frame, outframe); + cog_frame_unref (frame); + cog_frame_unref (outframe); + + return GST_FLOW_OK; +} diff --git a/ext/cog/gstcogmse.c b/ext/cog/gstcogmse.c new file mode 100644 index 0000000..8eb63be --- /dev/null +++ b/ext/cog/gstcogmse.c @@ -0,0 +1,548 @@ +/* + * GStreamer + * Copyright (C) 2007,2009 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#ifdef HAVE_ORC +#include +#endif +#include + +#include "gstcogutils.h" + +#define GST_CAT_DEFAULT gst_mse_debug +GST_DEBUG_CATEGORY_STATIC (GST_CAT_DEFAULT); + +#define GST_TYPE_MSE (gst_mse_get_type()) +#define GST_MSE(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MSE,GstMSE)) +#define GST_IS_MSE(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MSE)) +#define GST_MSE_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass) ,GST_TYPE_MSE,GstMSEClass)) +#define GST_IS_MSE_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass) ,GST_TYPE_MSE)) +#define GST_MSE_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS((obj) ,GST_TYPE_MSE,GstMSEClass)) +typedef struct _GstMSE GstMSE; +typedef struct _GstMSEClass GstMSEClass; + +typedef void (*GstMSEProcessFunc) (GstMSE *, guint8 *, guint); + +struct _GstMSE +{ + GstElement element; + + /* < private > */ + GstPad *srcpad; + GstPad *sinkpad_ref; + GstPad *sinkpad_test; + + GstBuffer *buffer_ref; + + GMutex *lock; + GCond *cond; + gboolean cancel; + + GstVideoFormat format; + int width; + int height; + + double luma_mse_sum; + double chroma_mse_sum; + int n_frames; +}; + +struct _GstMSEClass +{ + GstElementClass parent; +}; + +GType gst_mse_get_type (void); + + +enum +{ + PROP_0, + LUMA_PSNR, + CHROMA_PSNR +}; + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_mse_debug, "mse", 0, "cogmse element"); + +GST_BOILERPLATE_FULL (GstMSE, gst_mse, GstElement, + GST_TYPE_ELEMENT, DEBUG_INIT); + +static void gst_mse_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_mse_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstFlowReturn gst_mse_chain_test (GstPad * pad, GstBuffer * buffer); +static GstFlowReturn gst_mse_chain_ref (GstPad * pad, GstBuffer * buffer); +static gboolean gst_mse_sink_event (GstPad * pad, GstEvent * event); +static void gst_mse_reset (GstMSE * filter); +static GstCaps *gst_mse_getcaps (GstPad * pad); +static gboolean gst_mse_set_caps (GstPad * pad, GstCaps * outcaps); +static void gst_mse_finalize (GObject * object); + +static void cog_frame_mse (CogFrame * a, CogFrame * b, double *mse); +static double mse_to_db (double mse, gboolean is_chroma); + + +static GstStaticPadTemplate gst_framestore_sink_ref_template = +GST_STATIC_PAD_TEMPLATE ("sink_ref", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,AYUV}")) + ); + +static GstStaticPadTemplate gst_framestore_sink_test_template = +GST_STATIC_PAD_TEMPLATE ("sink_test", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,AYUV}")) + ); + +static GstStaticPadTemplate gst_framestore_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,AYUV}")) + ); + +static void +gst_mse_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_framestore_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_framestore_sink_ref_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_framestore_sink_test_template)); + + gst_element_class_set_details_simple (element_class, "Calculate MSE", + "Filter/Effect", + "Calculates mean squared error between two video streams", + "David Schleef "); +} + +static void +gst_mse_class_init (GstMSEClass * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + gobject_class->set_property = gst_mse_set_property; + gobject_class->get_property = gst_mse_get_property; + + gobject_class->finalize = gst_mse_finalize; + + g_object_class_install_property (gobject_class, LUMA_PSNR, + g_param_spec_double ("luma-psnr", "luma-psnr", "luma-psnr", + 0, 70, 40, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, CHROMA_PSNR, + g_param_spec_double ("chroma-psnr", "chroma-psnr", "chroma-psnr", + 0, 70, 40, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + +} + +static void +gst_mse_init (GstMSE * filter, GstMSEClass * klass) +{ + gst_element_create_all_pads (GST_ELEMENT (filter)); + + filter->srcpad = gst_element_get_static_pad (GST_ELEMENT (filter), "src"); + + gst_pad_set_getcaps_function (filter->srcpad, gst_mse_getcaps); + + filter->sinkpad_ref = + gst_element_get_static_pad (GST_ELEMENT (filter), "sink_ref"); + + gst_pad_set_chain_function (filter->sinkpad_ref, gst_mse_chain_ref); + gst_pad_set_event_function (filter->sinkpad_ref, gst_mse_sink_event); + gst_pad_set_getcaps_function (filter->sinkpad_ref, gst_mse_getcaps); + + filter->sinkpad_test = + gst_element_get_static_pad (GST_ELEMENT (filter), "sink_test"); + + gst_pad_set_chain_function (filter->sinkpad_test, gst_mse_chain_test); + gst_pad_set_event_function (filter->sinkpad_test, gst_mse_sink_event); + gst_pad_set_getcaps_function (filter->sinkpad_test, gst_mse_getcaps); + gst_pad_set_setcaps_function (filter->sinkpad_test, gst_mse_set_caps); + + gst_mse_reset (filter); + + filter->cond = g_cond_new (); + filter->lock = g_mutex_new (); +} + +static void +gst_mse_finalize (GObject * object) +{ + GstMSE *fs = GST_MSE (object); + + g_mutex_free (fs->lock); + g_cond_free (fs->cond); +} + +static GstCaps * +gst_mse_getcaps (GstPad * pad) +{ + GstMSE *fs; + GstCaps *caps; + GstCaps *icaps; + GstCaps *peercaps; + + fs = GST_MSE (gst_pad_get_parent (pad)); + + caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + + if (pad != fs->srcpad) { + peercaps = gst_pad_peer_get_caps (fs->srcpad); + if (peercaps) { + icaps = gst_caps_intersect (caps, peercaps); + gst_caps_unref (caps); + gst_caps_unref (peercaps); + caps = icaps; + } + } + + if (pad != fs->sinkpad_ref) { + peercaps = gst_pad_peer_get_caps (fs->sinkpad_ref); + if (peercaps) { + icaps = gst_caps_intersect (caps, peercaps); + gst_caps_unref (caps); + gst_caps_unref (peercaps); + caps = icaps; + } + } + + if (pad != fs->sinkpad_test) { + peercaps = gst_pad_peer_get_caps (fs->sinkpad_ref); + if (peercaps) { + icaps = gst_caps_intersect (caps, peercaps); + gst_caps_unref (caps); + gst_caps_unref (peercaps); + caps = icaps; + } + } + + gst_object_unref (fs); + + return caps; +} + +static gboolean +gst_mse_set_caps (GstPad * pad, GstCaps * caps) +{ + GstMSE *fs; + + fs = GST_MSE (gst_pad_get_parent (pad)); + + gst_video_format_parse_caps (caps, &fs->format, &fs->width, &fs->height); + + gst_object_unref (fs); + + return TRUE; +} + +static void +gst_mse_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_mse_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMSE *fs = GST_MSE (object); + + switch (prop_id) { + case LUMA_PSNR: + g_value_set_double (value, + mse_to_db (fs->luma_mse_sum / fs->n_frames, FALSE)); + break; + case CHROMA_PSNR: + g_value_set_double (value, + mse_to_db (fs->chroma_mse_sum / fs->n_frames, TRUE)); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_mse_reset (GstMSE * fs) +{ + fs->luma_mse_sum = 0; + fs->chroma_mse_sum = 0; + fs->n_frames = 0; + + if (fs->buffer_ref) { + gst_buffer_unref (fs->buffer_ref); + fs->buffer_ref = NULL; + } +} + + +static GstFlowReturn +gst_mse_chain_ref (GstPad * pad, GstBuffer * buffer) +{ + GstMSE *fs; + + fs = GST_MSE (gst_pad_get_parent (pad)); + + GST_DEBUG ("chain ref"); + + g_mutex_lock (fs->lock); + while (fs->buffer_ref) { + GST_DEBUG ("waiting for ref buffer clear"); + g_cond_wait (fs->cond, fs->lock); + if (fs->cancel) { + g_mutex_unlock (fs->lock); + gst_object_unref (fs); + return GST_FLOW_WRONG_STATE; + } + } + + fs->buffer_ref = buffer; + g_cond_signal (fs->cond); + + g_mutex_unlock (fs->lock); + + gst_object_unref (fs); + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_mse_chain_test (GstPad * pad, GstBuffer * buffer) +{ + GstMSE *fs; + GstFlowReturn ret; + GstBuffer *buffer_ref; + + fs = GST_MSE (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (fs, "chain test"); + + g_mutex_lock (fs->lock); + while (fs->buffer_ref == NULL) { + GST_DEBUG_OBJECT (fs, "waiting for ref buffer"); + g_cond_wait (fs->cond, fs->lock); + if (fs->cancel) { + g_mutex_unlock (fs->lock); + gst_object_unref (fs); + return GST_FLOW_WRONG_STATE; + } + } + + buffer_ref = fs->buffer_ref; + fs->buffer_ref = NULL; + g_cond_signal (fs->cond); + + g_mutex_unlock (fs->lock); + + if (1) { + CogFrame *frame_ref; + CogFrame *frame_test; + double mse[3]; + + frame_ref = gst_cog_buffer_wrap (gst_buffer_ref (buffer_ref), fs->format, + fs->width, fs->height); + frame_test = gst_cog_buffer_wrap (gst_buffer_ref (buffer), fs->format, + fs->width, fs->height); + + cog_frame_mse (frame_ref, frame_test, mse); + + GST_INFO ("mse %g %g %g", mse_to_db (mse[0], FALSE), + mse_to_db (mse[1], TRUE), mse_to_db (mse[2], TRUE)); + + fs->luma_mse_sum += mse[0]; + fs->chroma_mse_sum += 0.5 * (mse[1] + mse[2]); + fs->n_frames++; + + cog_frame_unref (frame_ref); + cog_frame_unref (frame_test); + } + + + ret = gst_pad_push (fs->srcpad, buffer); + gst_buffer_unref (buffer_ref); + + gst_object_unref (fs); + + return ret; +} + +static gboolean +gst_mse_sink_event (GstPad * pad, GstEvent * event) +{ + GstMSE *fs; + + fs = GST_MSE (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + gboolean update; + double rate; + double applied_rate; + GstFormat format; + gint64 start, stop, position; + + gst_event_parse_new_segment_full (event, &update, &rate, &applied_rate, + &format, &start, &stop, &position); + + GST_DEBUG ("new_segment %d %g %g %d %" G_GINT64_FORMAT + " %" G_GINT64_FORMAT " %" G_GINT64_FORMAT, + update, rate, applied_rate, format, start, stop, position); + + } + break; + case GST_EVENT_FLUSH_START: + GST_DEBUG ("flush start"); + break; + case GST_EVENT_FLUSH_STOP: + GST_DEBUG ("flush stop"); + break; + default: + break; + } + + gst_pad_push_event (fs->srcpad, event); + gst_object_unref (fs); + + return TRUE; +} + +static int +sum_square_diff_u8 (uint8_t * s1, uint8_t * s2, int n) +{ +#ifndef HAVE_ORC + int sum = 0; + int i; + int x; + + for (i = 0; i < n; i++) { + x = s1[i] - s2[i]; + sum += x * x; + } + return sum; +#else + static OrcProgram *p = NULL; + OrcExecutor *ex; + int val; + + if (p == NULL) { + OrcCompileResult ret; + + p = orc_program_new_ass (4, 1, 1); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 4, "t3"); + + orc_program_append_ds_str (p, "convubw", "t1", "s1"); + orc_program_append_ds_str (p, "convubw", "t2", "s2"); + orc_program_append_str (p, "subw", "t1", "t1", "t2"); + orc_program_append_str (p, "mullw", "t1", "t1", "t1"); + orc_program_append_ds_str (p, "convuwl", "t3", "t1"); + orc_program_append_ds_str (p, "accl", "a1", "t3"); + + ret = orc_program_compile (p); + if (!ORC_COMPILE_RESULT_IS_SUCCESSFUL (ret)) { + GST_ERROR ("Orc compiler failure"); + return 0; + } + } + + ex = orc_executor_new (p); + orc_executor_set_n (ex, n); + orc_executor_set_array_str (ex, "s1", s1); + orc_executor_set_array_str (ex, "s2", s2); + + orc_executor_run (ex); + val = orc_executor_get_accumulator (ex, 0); + orc_executor_free (ex); + + return val; +#endif +} + +static double +cog_frame_component_squared_error (CogFrameData * a, CogFrameData * b) +{ + int j; + double sum; + + g_return_val_if_fail (a->width == b->width, 0.0); + g_return_val_if_fail (a->height == b->height, 0.0); + + sum = 0; + for (j = 0; j < a->height; j++) { + sum += sum_square_diff_u8 (COG_FRAME_DATA_GET_LINE (a, j), + COG_FRAME_DATA_GET_LINE (b, j), a->width); + } + return sum; +} + +static void +cog_frame_mse (CogFrame * a, CogFrame * b, double *mse) +{ + double sum, n; + + sum = cog_frame_component_squared_error (&a->components[0], + &b->components[0]); + n = a->components[0].width * a->components[0].height; + mse[0] = sum / n; + + sum = cog_frame_component_squared_error (&a->components[1], + &b->components[1]); + n = a->components[1].width * a->components[1].height; + mse[1] = sum / n; + + sum = cog_frame_component_squared_error (&a->components[2], + &b->components[2]); + n = a->components[2].width * a->components[2].height; + mse[2] = sum / n; +} + +static double +mse_to_db (double mse, gboolean is_chroma) +{ + if (is_chroma) { + return 10.0 * log (mse / (224.0 * 224.0)) / log (10.0); + } else { + return 10.0 * log (mse / (219.0 * 219.0)) / log (10.0); + } +} diff --git a/ext/cog/gstcogorc-dist.c b/ext/cog/gstcogorc-dist.c new file mode 100644 index 0000000..e752c55 --- /dev/null +++ b/ext/cog/gstcogorc-dist.c @@ -0,0 +1,15257 @@ + +/* autogenerated from gstcogorc.orc */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include + +#ifndef _ORC_INTEGER_TYPEDEFS_ +#define _ORC_INTEGER_TYPEDEFS_ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +typedef int8_t orc_int8; +typedef int16_t orc_int16; +typedef int32_t orc_int32; +typedef int64_t orc_int64; +typedef uint8_t orc_uint8; +typedef uint16_t orc_uint16; +typedef uint32_t orc_uint32; +typedef uint64_t orc_uint64; +#define ORC_UINT64_C(x) UINT64_C(x) +#elif defined(_MSC_VER) +typedef signed __int8 orc_int8; +typedef signed __int16 orc_int16; +typedef signed __int32 orc_int32; +typedef signed __int64 orc_int64; +typedef unsigned __int8 orc_uint8; +typedef unsigned __int16 orc_uint16; +typedef unsigned __int32 orc_uint32; +typedef unsigned __int64 orc_uint64; +#define ORC_UINT64_C(x) (x##Ui64) +#define inline __inline +#else +#include +typedef signed char orc_int8; +typedef short orc_int16; +typedef int orc_int32; +typedef unsigned char orc_uint8; +typedef unsigned short orc_uint16; +typedef unsigned int orc_uint32; +#if INT_MAX == LONG_MAX +typedef long long orc_int64; +typedef unsigned long long orc_uint64; +#define ORC_UINT64_C(x) (x##ULL) +#else +typedef long orc_int64; +typedef unsigned long orc_uint64; +#define ORC_UINT64_C(x) (x##UL) +#endif +#endif +typedef union +{ + orc_int16 i; + orc_int8 x2[2]; +} orc_union16; +typedef union +{ + orc_int32 i; + float f; + orc_int16 x2[2]; + orc_int8 x4[4]; +} orc_union32; +typedef union +{ + orc_int64 i; + double f; + orc_int32 x2[2]; + float x2f[2]; + orc_int16 x4[4]; +} orc_union64; +#endif +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif + +#ifndef DISABLE_ORC +#include +#endif +void cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n); +void cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n); +void cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n); +void cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int n); +void cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n); +void cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + int n); +void cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n); +void cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int n); +void cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int n); +void orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n); +void orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n); +void orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n); +void orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n); +void orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n); +void orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n); +void orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n); +void orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n); +void orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n); +void orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, + int p2, int n); +void orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, + int p2, int n); +void orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int p4, int n); +void orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int n); +void orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, + int n); +void orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, + int n); +void orc_pack_123x (guint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int p1, int n); +void orc_pack_x123 (guint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int p1, int n); +void cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int p1, int p2, int n); +void cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + int p1, int p2, int p3, int p4, int n); +void cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n); +void cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n); +void cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n); +void cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n); +void cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, + const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m); +void cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n); +void cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + const orc_uint8 * ORC_RESTRICT s5, int n); + + +/* begin Orc C target preamble */ +#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) +#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) +#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) +#define ORC_MAX(a,b) ((a)>(b) ? (a) : (b)) +#define ORC_SB_MAX 127 +#define ORC_SB_MIN (-1-ORC_SB_MAX) +#define ORC_UB_MAX 255 +#define ORC_UB_MIN 0 +#define ORC_SW_MAX 32767 +#define ORC_SW_MIN (-1-ORC_SW_MAX) +#define ORC_UW_MAX 65535 +#define ORC_UW_MIN 0 +#define ORC_SL_MAX 2147483647 +#define ORC_SL_MIN (-1-ORC_SL_MAX) +#define ORC_UL_MAX 4294967295U +#define ORC_UL_MIN 0 +#define ORC_CLAMP_SB(x) ORC_CLAMP(x,ORC_SB_MIN,ORC_SB_MAX) +#define ORC_CLAMP_UB(x) ORC_CLAMP(x,ORC_UB_MIN,ORC_UB_MAX) +#define ORC_CLAMP_SW(x) ORC_CLAMP(x,ORC_SW_MIN,ORC_SW_MAX) +#define ORC_CLAMP_UW(x) ORC_CLAMP(x,ORC_UW_MIN,ORC_UW_MAX) +#define ORC_CLAMP_SL(x) ORC_CLAMP(x,ORC_SL_MIN,ORC_SL_MAX) +#define ORC_CLAMP_UL(x) ORC_CLAMP(x,ORC_UL_MIN,ORC_UL_MAX) +#define ORC_SWAP_W(x) ((((x)&0xff)<<8) | (((x)&0xff00)>>8)) +#define ORC_SWAP_L(x) ((((x)&0xff)<<24) | (((x)&0xff00)<<8) | (((x)&0xff0000)>>8) | (((x)&0xff000000)>>24)) +#define ORC_SWAP_Q(x) ((((x)&ORC_UINT64_C(0xff))<<56) | (((x)&ORC_UINT64_C(0xff00))<<40) | (((x)&ORC_UINT64_C(0xff0000))<<24) | (((x)&ORC_UINT64_C(0xff000000))<<8) | (((x)&ORC_UINT64_C(0xff00000000))>>8) | (((x)&ORC_UINT64_C(0xff0000000000))>>24) | (((x)&ORC_UINT64_C(0xff000000000000))>>40) | (((x)&ORC_UINT64_C(0xff00000000000000))>>56)) +#define ORC_PTR_OFFSET(ptr,offset) ((void *)(((unsigned char *)(ptr)) + (offset))) +#define ORC_DENORMAL(x) ((x) & ((((x)&0x7f800000) == 0) ? 0xff800000 : 0xffffffff)) +#define ORC_ISNAN(x) ((((x)&0x7f800000) == 0x7f800000) && (((x)&0x007fffff) != 0)) +#define ORC_DENORMAL_DOUBLE(x) ((x) & ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == 0) ? ORC_UINT64_C(0xfff0000000000000) : ORC_UINT64_C(0xffffffffffffffff))) +#define ORC_ISNAN_DOUBLE(x) ((((x)&ORC_UINT64_C(0x7ff0000000000000)) == ORC_UINT64_C(0x7ff0000000000000)) && (((x)&ORC_UINT64_C(0x000fffffffffffff)) != 0)) +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif +/* end Orc C target preamble */ + + + +/* cogorc_memcpy_2d */ +#ifdef DISABLE_ORC +void +cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + orc_int8 var33; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + } + } + +} + +#else +static void +_backup_cogorc_memcpy_2d (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + orc_int8 var33; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + } + } + +} + +void +cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_memcpy_2d"); + orc_program_set_backup_function (p, _backup_cogorc_memcpy_2d); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + + orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_horiz_cosite_1tap */ +#ifdef DISABLE_ORC +void +cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select0wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[0]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_cogorc_downsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select0wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[0]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +void +cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_horiz_cosite_1tap"); + orc_program_set_backup_function (p, + _backup_cogorc_downsample_horiz_cosite_1tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_horiz_cosite_3tap */ +#ifdef DISABLE_ORC +void +cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_int8 var42; + orc_union16 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + + /* 9: loadpw */ + var40.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + /* 13: loadpw */ + var41.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var38 = ptr4[i]; + /* 1: copyw */ + var43.i = var38.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var43.i; + var44 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var43.i; + var45 = _src.x2[1]; + } + /* 4: loadw */ + var39 = ptr5[i]; + /* 5: select0wb */ + { + orc_union16 _src; + _src.i = var39.i; + var46 = _src.x2[0]; + } + /* 6: convubw */ + var47.i = (orc_uint8) var44; + /* 7: convubw */ + var48.i = (orc_uint8) var45; + /* 8: convubw */ + var49.i = (orc_uint8) var46; + /* 10: mullw */ + var50.i = (var48.i * var40.i) & 0xffff; + /* 11: addw */ + var51.i = var47.i + var49.i; + /* 12: addw */ + var52.i = var51.i + var50.i; + /* 14: addw */ + var53.i = var52.i + var41.i; + /* 15: shrsw */ + var54.i = var53.i >> 2; + /* 16: convsuswb */ + var42 = ORC_CLAMP_UB (var54.i); + /* 17: storeb */ + ptr0[i] = var42; + } + +} + +#else +static void +_backup_cogorc_downsample_horiz_cosite_3tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_int8 var42; + orc_union16 var43; + orc_int8 var44; + orc_int8 var45; + orc_int8 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + + /* 9: loadpw */ + var40.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + /* 13: loadpw */ + var41.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var38 = ptr4[i]; + /* 1: copyw */ + var43.i = var38.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var43.i; + var44 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var43.i; + var45 = _src.x2[1]; + } + /* 4: loadw */ + var39 = ptr5[i]; + /* 5: select0wb */ + { + orc_union16 _src; + _src.i = var39.i; + var46 = _src.x2[0]; + } + /* 6: convubw */ + var47.i = (orc_uint8) var44; + /* 7: convubw */ + var48.i = (orc_uint8) var45; + /* 8: convubw */ + var49.i = (orc_uint8) var46; + /* 10: mullw */ + var50.i = (var48.i * var40.i) & 0xffff; + /* 11: addw */ + var51.i = var47.i + var49.i; + /* 12: addw */ + var52.i = var51.i + var50.i; + /* 14: addw */ + var53.i = var52.i + var41.i; + /* 15: shrsw */ + var54.i = var53.i >> 2; + /* 16: convsuswb */ + var42 = ORC_CLAMP_UB (var54.i); + /* 17: storeb */ + ptr0[i] = var42; + } + +} + +void +cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_horiz_cosite_3tap"); + orc_program_set_backup_function (p, + _backup_cogorc_downsample_horiz_cosite_3tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_constant (p, 4, 0x00000002, "c1"); + orc_program_add_temporary (p, 1, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 2, "t4"); + orc_program_add_temporary (p, 2, "t5"); + orc_program_add_temporary (p, 2, "t6"); + + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T4, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T3, ORC_VAR_S2, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T5, ORC_VAR_T2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T4, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_420_jpeg */ +#ifdef DISABLE_ORC +void +cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_int8 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_int8 var45; + orc_int8 var46; + orc_int8 var47; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var40.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var40.i; + var41 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var40.i; + var42 = _src.x2[1]; + } + /* 4: avgub */ + var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1; + /* 5: loadw */ + var38 = ptr5[i]; + /* 6: copyw */ + var44.i = var38.i; + /* 7: select0wb */ + { + orc_union16 _src; + _src.i = var44.i; + var45 = _src.x2[0]; + } + /* 8: select1wb */ + { + orc_union16 _src; + _src.i = var44.i; + var46 = _src.x2[1]; + } + /* 9: avgub */ + var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1; + /* 10: avgub */ + var39 = ((orc_uint8) var43 + (orc_uint8) var47 + 1) >> 1; + /* 11: storeb */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_cogorc_downsample_420_jpeg (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_int8 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_int8 var45; + orc_int8 var46; + orc_int8 var47; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var40.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var40.i; + var41 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var40.i; + var42 = _src.x2[1]; + } + /* 4: avgub */ + var43 = ((orc_uint8) var41 + (orc_uint8) var42 + 1) >> 1; + /* 5: loadw */ + var38 = ptr5[i]; + /* 6: copyw */ + var44.i = var38.i; + /* 7: select0wb */ + { + orc_union16 _src; + _src.i = var44.i; + var45 = _src.x2[0]; + } + /* 8: select1wb */ + { + orc_union16 _src; + _src.i = var44.i; + var46 = _src.x2[1]; + } + /* 9: avgub */ + var47 = ((orc_uint8) var45 + (orc_uint8) var46 + 1) >> 1; + /* 10: avgub */ + var39 = ((orc_uint8) var43 + (orc_uint8) var47 + 1) >> 1; + /* 11: storeb */ + ptr0[i] = var39; + } + +} + +void +cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, + int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_420_jpeg"); + orc_program_set_backup_function (p, _backup_cogorc_downsample_420_jpeg); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 1, "t5"); + + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T4, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T4, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_vert_halfsite_2tap */ +#ifdef DISABLE_ORC +void +cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_downsample_vert_halfsite_2tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_vert_halfsite_2tap"); + orc_program_set_backup_function (p, + _backup_cogorc_downsample_vert_halfsite_2tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_vert_cosite_3tap */ +#ifdef DISABLE_ORC +void +cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 6: loadpw */ + var38.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + /* 10: loadpw */ + var39.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var41.i = (orc_uint8) var35; + /* 2: loadb */ + var36 = ptr5[i]; + /* 3: convubw */ + var42.i = (orc_uint8) var36; + /* 4: loadb */ + var37 = ptr6[i]; + /* 5: convubw */ + var43.i = (orc_uint8) var37; + /* 7: mullw */ + var44.i = (var42.i * var38.i) & 0xffff; + /* 8: addw */ + var45.i = var41.i + var43.i; + /* 9: addw */ + var46.i = var45.i + var44.i; + /* 11: addw */ + var47.i = var46.i + var39.i; + /* 12: shrsw */ + var48.i = var47.i >> 2; + /* 13: convsuswb */ + var40 = ORC_CLAMP_UB (var48.i); + /* 14: storeb */ + ptr0[i] = var40; + } + +} + +#else +static void +_backup_cogorc_downsample_vert_cosite_3tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 6: loadpw */ + var38.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + /* 10: loadpw */ + var39.i = (int) 0x00000002; /* 2 or 9.88131e-324f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var41.i = (orc_uint8) var35; + /* 2: loadb */ + var36 = ptr5[i]; + /* 3: convubw */ + var42.i = (orc_uint8) var36; + /* 4: loadb */ + var37 = ptr6[i]; + /* 5: convubw */ + var43.i = (orc_uint8) var37; + /* 7: mullw */ + var44.i = (var42.i * var38.i) & 0xffff; + /* 8: addw */ + var45.i = var41.i + var43.i; + /* 9: addw */ + var46.i = var45.i + var44.i; + /* 11: addw */ + var47.i = var46.i + var39.i; + /* 12: shrsw */ + var48.i = var47.i >> 2; + /* 13: convsuswb */ + var40 = ORC_CLAMP_UB (var48.i); + /* 14: storeb */ + ptr0[i] = var40; + } + +} + +void +cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_vert_cosite_3tap"); + orc_program_set_backup_function (p, + _backup_cogorc_downsample_vert_cosite_3tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 4, 0x00000002, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_downsample_vert_halfsite_4tap */ +#ifdef DISABLE_ORC +void +cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var36; + orc_int8 var37; + orc_int8 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + + /* 9: loadpw */ + var40.i = (int) 0x0000001a; /* 26 or 1.28457e-322f */ + /* 12: loadpw */ + var41.i = (int) 0x00000006; /* 6 or 2.96439e-323f */ + /* 15: loadpw */ + var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 2: loadb */ + var37 = ptr5[i]; + /* 3: convubw */ + var45.i = (orc_uint8) var37; + /* 4: loadb */ + var38 = ptr6[i]; + /* 5: convubw */ + var46.i = (orc_uint8) var38; + /* 6: loadb */ + var39 = ptr7[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 8: addw */ + var48.i = var45.i + var46.i; + /* 10: mullw */ + var49.i = (var48.i * var40.i) & 0xffff; + /* 11: addw */ + var50.i = var44.i + var47.i; + /* 13: mullw */ + var51.i = (var50.i * var41.i) & 0xffff; + /* 14: addw */ + var52.i = var49.i + var51.i; + /* 16: addw */ + var53.i = var52.i + var42.i; + /* 17: shrsw */ + var54.i = var53.i >> 6; + /* 18: convsuswb */ + var43 = ORC_CLAMP_UB (var54.i); + /* 19: storeb */ + ptr0[i] = var43; + } + +} + +#else +static void +_backup_cogorc_downsample_vert_halfsite_4tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var36; + orc_int8 var37; + orc_int8 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + + /* 9: loadpw */ + var40.i = (int) 0x0000001a; /* 26 or 1.28457e-322f */ + /* 12: loadpw */ + var41.i = (int) 0x00000006; /* 6 or 2.96439e-323f */ + /* 15: loadpw */ + var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 2: loadb */ + var37 = ptr5[i]; + /* 3: convubw */ + var45.i = (orc_uint8) var37; + /* 4: loadb */ + var38 = ptr6[i]; + /* 5: convubw */ + var46.i = (orc_uint8) var38; + /* 6: loadb */ + var39 = ptr7[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 8: addw */ + var48.i = var45.i + var46.i; + /* 10: mullw */ + var49.i = (var48.i * var40.i) & 0xffff; + /* 11: addw */ + var50.i = var44.i + var47.i; + /* 13: mullw */ + var51.i = (var50.i * var41.i) & 0xffff; + /* 14: addw */ + var52.i = var49.i + var51.i; + /* 16: addw */ + var53.i = var52.i + var42.i; + /* 17: shrsw */ + var54.i = var53.i >> 6; + /* 18: convsuswb */ + var43 = ORC_CLAMP_UB (var54.i); + /* 19: storeb */ + ptr0[i] = var43; + } + +} + +void +cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_downsample_vert_halfsite_4tap"); + orc_program_set_backup_function (p, + _backup_cogorc_downsample_vert_halfsite_4tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_constant (p, 4, 0x0000001a, "c1"); + orc_program_add_constant (p, 4, 0x00000006, "c2"); + orc_program_add_constant (p, 4, 0x00000020, "c3"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T4, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_upsample_horiz_cosite_1tap */ +#ifdef DISABLE_ORC +void +cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + orc_int8 var35; + + ptr0 = (orc_union16 *) d1; + ptr4 = (orc_int8 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: copyb */ + var35 = var33; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35; + _dest.x2[1] = var35; + var34.i = _dest.i; + } + /* 3: storew */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_upsample_horiz_cosite_1tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + orc_int8 var35; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: copyb */ + var35 = var33; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35; + _dest.x2[1] = var35; + var34.i = _dest.i; + } + /* 3: storew */ + ptr0[i] = var34; + } + +} + +void +cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_upsample_horiz_cosite_1tap"); + orc_program_set_backup_function (p, + _backup_cogorc_upsample_horiz_cosite_1tap); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_temporary (p, 1, "t1"); + + orc_program_append_2 (p, "copyb", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_upsample_horiz_cosite */ +#ifdef DISABLE_ORC +void +cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_int8 var35; + orc_union16 var36; + orc_int8 var37; + orc_int8 var38; + + ptr0 = (orc_union16 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: copyb */ + var37 = var34; + /* 2: loadb */ + var35 = ptr5[i]; + /* 3: avgub */ + var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37; + _dest.x2[1] = var38; + var36.i = _dest.i; + } + /* 5: storew */ + ptr0[i] = var36; + } + +} + +#else +static void +_backup_cogorc_upsample_horiz_cosite (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_int8 var35; + orc_union16 var36; + orc_int8 var37; + orc_int8 var38; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: copyb */ + var37 = var34; + /* 2: loadb */ + var35 = ptr5[i]; + /* 3: avgub */ + var38 = ((orc_uint8) var37 + (orc_uint8) var35 + 1) >> 1; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37; + _dest.x2[1] = var38; + var36.i = _dest.i; + } + /* 5: storew */ + ptr0[i] = var36; + } + +} + +void +cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_upsample_horiz_cosite"); + orc_program_set_backup_function (p, _backup_cogorc_upsample_horiz_cosite); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_temporary (p, 1, "t1"); + orc_program_add_temporary (p, 1, "t2"); + + orc_program_append_2 (p, "copyb", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_upsample_vert_avgub */ +#ifdef DISABLE_ORC +void +cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_upsample_vert_avgub (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_upsample_vert_avgub"); + orc_program_set_backup_function (p, _backup_cogorc_upsample_vert_avgub); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_yuyv_y */ +#ifdef DISABLE_ORC +void +orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select0wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[0]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_orc_unpack_yuyv_y (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select0wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[0]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +void +orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_yuyv_y"); + orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_y); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_yuyv_u */ +#ifdef DISABLE_ORC +void +orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_orc_unpack_yuyv_u (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_yuyv_u"); + orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_u); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_yuyv_v */ +#ifdef DISABLE_ORC +void +orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_orc_unpack_yuyv_v (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_yuyv_v"); + orc_program_set_backup_function (p, _backup_orc_unpack_yuyv_v); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_pack_yuyv */ +#ifdef DISABLE_ORC +void +orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_union16 var37; + orc_int8 var38; + orc_int8 var39; + orc_union32 var40; + orc_union16 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var41.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var41.i; + var42 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var41.i; + var43 = _src.x2[1]; + } + /* 4: loadb */ + var38 = ptr5[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var42; + _dest.x2[1] = var38; + var44.i = _dest.i; + } + /* 6: loadb */ + var39 = ptr6[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43; + _dest.x2[1] = var39; + var45.i = _dest.i; + } + /* 8: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var45.i; + var40.i = _dest.i; + } + /* 9: storel */ + ptr0[i] = var40; + } + +} + +#else +static void +_backup_orc_pack_yuyv (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_union16 var37; + orc_int8 var38; + orc_int8 var39; + orc_union32 var40; + orc_union16 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var41.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var41.i; + var42 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var41.i; + var43 = _src.x2[1]; + } + /* 4: loadb */ + var38 = ptr5[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var42; + _dest.x2[1] = var38; + var44.i = _dest.i; + } + /* 6: loadb */ + var39 = ptr6[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43; + _dest.x2[1] = var39; + var45.i = _dest.i; + } + /* 8: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var45.i; + var40.i = _dest.i; + } + /* 9: storel */ + ptr0[i] = var40; + } + +} + +void +orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_pack_yuyv"); + orc_program_set_backup_function (p, _backup_orc_pack_yuyv); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_temporary (p, 1, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + orc_program_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T5, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T5, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_uyvy_y */ +#ifdef DISABLE_ORC +void +orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select1wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[1]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_orc_unpack_uyvy_y (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var32 = ptr4[i]; + /* 1: select1wb */ + { + orc_union16 _src; + _src.i = var32.i; + var33 = _src.x2[1]; + } + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +void +orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1, + const orc_uint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_uyvy_y"); + orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_y); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_uyvy_u */ +#ifdef DISABLE_ORC +void +orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_orc_unpack_uyvy_u (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_uyvy_u"); + orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_u); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_unpack_uyvy_v */ +#ifdef DISABLE_ORC +void +orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_orc_unpack_uyvy_v (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_unpack_uyvy_v"); + orc_program_set_backup_function (p, _backup_orc_unpack_uyvy_v); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_pack_uyvy */ +#ifdef DISABLE_ORC +void +orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_union16 var37; + orc_int8 var38; + orc_int8 var39; + orc_union32 var40; + orc_union16 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var41.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var41.i; + var42 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var41.i; + var43 = _src.x2[1]; + } + /* 4: loadb */ + var38 = ptr5[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38; + _dest.x2[1] = var42; + var44.i = _dest.i; + } + /* 6: loadb */ + var39 = ptr6[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39; + _dest.x2[1] = var43; + var45.i = _dest.i; + } + /* 8: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var45.i; + var40.i = _dest.i; + } + /* 9: storel */ + ptr0[i] = var40; + } + +} + +#else +static void +_backup_orc_pack_uyvy (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_union16 var37; + orc_int8 var38; + orc_int8 var39; + orc_union32 var40; + orc_union16 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var37 = ptr4[i]; + /* 1: copyw */ + var41.i = var37.i; + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var41.i; + var42 = _src.x2[0]; + } + /* 3: select1wb */ + { + orc_union16 _src; + _src.i = var41.i; + var43 = _src.x2[1]; + } + /* 4: loadb */ + var38 = ptr5[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38; + _dest.x2[1] = var42; + var44.i = _dest.i; + } + /* 6: loadb */ + var39 = ptr6[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39; + _dest.x2[1] = var43; + var45.i = _dest.i; + } + /* 8: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var44.i; + _dest.x2[1] = var45.i; + var40.i = _dest.i; + } + /* 9: storel */ + ptr0[i] = var40; + } + +} + +void +orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_pack_uyvy"); + orc_program_set_backup_function (p, _backup_orc_pack_uyvy); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_temporary (p, 1, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + orc_program_add_temporary (p, 2, "t5"); + + orc_program_append_2 (p, "copyw", 0, ORC_VAR_T5, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T1, ORC_VAR_T5, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T5, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T4, ORC_VAR_S3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_addc_convert_u8_s16 */ +#ifdef DISABLE_ORC +void +orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var33; + orc_union16 var34; + orc_int8 var35; + orc_union16 var36; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union16 *) s1; + + /* 1: loadpw */ + var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var33 = ptr4[i]; + /* 2: addw */ + var36.i = var33.i + var34.i; + /* 3: convsuswb */ + var35 = ORC_CLAMP_UB (var36.i); + /* 4: storeb */ + ptr0[i] = var35; + } + +} + +#else +static void +_backup_orc_addc_convert_u8_s16 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var33; + orc_union16 var34; + orc_int8 var35; + orc_union16 var36; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union16 *) ex->arrays[4]; + + /* 1: loadpw */ + var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var33 = ptr4[i]; + /* 2: addw */ + var36.i = var33.i + var34.i; + /* 3: convsuswb */ + var35 = ORC_CLAMP_UB (var36.i); + /* 4: storeb */ + ptr0[i] = var35; + } + +} + +void +orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1, + const gint16 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_addc_convert_u8_s16"); + orc_program_set_backup_function (p, _backup_orc_addc_convert_u8_s16); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_constant (p, 4, 0x00000080, "c1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_subc_convert_s16_u8 */ +#ifdef DISABLE_ORC +void +orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + orc_union16 var35; + orc_union16 var36; + + ptr0 = (orc_union16 *) d1; + ptr4 = (orc_int8 *) s1; + + /* 2: loadpw */ + var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: convubw */ + var36.i = (orc_uint8) var33; + /* 3: subw */ + var35.i = var36.i - var34.i; + /* 4: storew */ + ptr0[i] = var35; + } + +} + +#else +static void +_backup_orc_subc_convert_s16_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + orc_union16 var35; + orc_union16 var36; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + + /* 2: loadpw */ + var34.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: convubw */ + var36.i = (orc_uint8) var33; + /* 3: subw */ + var35.i = var36.i - var34.i; + /* 4: storew */ + ptr0[i] = var35; + } + +} + +void +orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_subc_convert_s16_u8"); + orc_program_set_backup_function (p, _backup_orc_subc_convert_s16_u8); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_constant (p, 4, 0x00000080, "c1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_splat_u8_ns */ +#ifdef DISABLE_ORC +void +orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) d1; + + /* 0: loadpb */ + var32 = p1; + + for (i = 0; i < n; i++) { + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_orc_splat_u8_ns (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 var32; + orc_int8 var33; + + ptr0 = (orc_int8 *) ex->arrays[0]; + + /* 0: loadpb */ + var32 = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + } + +} + +void +orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_splat_u8_ns"); + orc_program_set_backup_function (p, _backup_orc_splat_u8_ns); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_parameter (p, 1, "p1"); + + orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_P1] = p1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_splat_s16_ns */ +#ifdef DISABLE_ORC +void +orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 var32; + orc_union16 var33; + + ptr0 = (orc_union16 *) d1; + + /* 0: loadpw */ + var32.i = p1; + + for (i = 0; i < n; i++) { + /* 1: copyw */ + var33.i = var32.i; + /* 2: storew */ + ptr0[i] = var33; + } + +} + +#else +static void +_backup_orc_splat_s16_ns (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 var32; + orc_union16 var33; + + ptr0 = (orc_union16 *) ex->arrays[0]; + + /* 0: loadpw */ + var32.i = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 1: copyw */ + var33.i = var32.i; + /* 2: storew */ + ptr0[i] = var33; + } + +} + +void +orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_splat_s16_ns"); + orc_program_set_backup_function (p, _backup_orc_splat_s16_ns); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_parameter (p, 2, "p1"); + + orc_program_append_2 (p, "copyw", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_P1] = p1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix2_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + /* 2: loadpw */ + var35.i = p1; + /* 6: loadpw */ + var37.i = p2; + /* 9: loadpw */ + var38.i = p3; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var40.i = (orc_uint8) var34; + /* 3: mullw */ + var41.i = (var40.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var42.i = (orc_uint8) var36; + /* 7: mullw */ + var43.i = (var42.i * var37.i) & 0xffff; + /* 8: addw */ + var44.i = var41.i + var43.i; + /* 10: addw */ + var45.i = var44.i + var38.i; + /* 11: shrsw */ + var46.i = var45.i >> 6; + /* 12: convsuswb */ + var39 = ORC_CLAMP_UB (var46.i); + /* 13: storeb */ + ptr0[i] = var39; + } + +} + +#else +static void +_backup_orc_matrix2_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + /* 2: loadpw */ + var35.i = ex->params[24]; + /* 6: loadpw */ + var37.i = ex->params[25]; + /* 9: loadpw */ + var38.i = ex->params[26]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var40.i = (orc_uint8) var34; + /* 3: mullw */ + var41.i = (var40.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var42.i = (orc_uint8) var36; + /* 7: mullw */ + var43.i = (var42.i * var37.i) & 0xffff; + /* 8: addw */ + var44.i = var41.i + var43.i; + /* 10: addw */ + var45.i = var44.i + var38.i; + /* 11: shrsw */ + var46.i = var45.i >> 6; + /* 12: convsuswb */ + var39 = ORC_CLAMP_UB (var46.i); + /* 13: storeb */ + ptr0[i] = var39; + } + +} + +void +orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix2_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix2_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_constant (p, 4, 0x00000006, "c1"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix2_11_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + /* 2: loadpw */ + var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var38.i = p1; + /* 8: loadpw */ + var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var41.i = p2; + /* 13: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 3: subw */ + var45.i = var44.i - var37.i; + /* 5: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 6: loadb */ + var39 = ptr5[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 9: subw */ + var48.i = var47.i - var40.i; + /* 11: mullw */ + var49.i = (var48.i * var41.i) & 0xffff; + /* 12: addw */ + var50.i = var46.i + var49.i; + /* 14: addw */ + var51.i = var50.i + var42.i; + /* 15: shrsw */ + var52.i = var51.i >> 8; + /* 16: addw */ + var53.i = var52.i + var45.i; + /* 17: addw */ + var54.i = var53.i + var48.i; + /* 18: convsuswb */ + var43 = ORC_CLAMP_UB (var54.i); + /* 19: storeb */ + ptr0[i] = var43; + } + +} + +#else +static void +_backup_orc_matrix2_11_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + /* 2: loadpw */ + var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var38.i = ex->params[24]; + /* 8: loadpw */ + var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var41.i = ex->params[25]; + /* 13: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 3: subw */ + var45.i = var44.i - var37.i; + /* 5: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 6: loadb */ + var39 = ptr5[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 9: subw */ + var48.i = var47.i - var40.i; + /* 11: mullw */ + var49.i = (var48.i * var41.i) & 0xffff; + /* 12: addw */ + var50.i = var46.i + var49.i; + /* 14: addw */ + var51.i = var50.i + var42.i; + /* 15: shrsw */ + var52.i = var51.i >> 8; + /* 16: addw */ + var53.i = var52.i + var45.i; + /* 17: addw */ + var54.i = var53.i + var48.i; + /* 18: convsuswb */ + var43 = ORC_CLAMP_UB (var54.i); + /* 19: storeb */ + ptr0[i] = var43; + } + +} + +void +orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix2_11_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix2_11_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_constant (p, 4, 0x00000010, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x00000008, "c3"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix2_12_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + /* 2: loadpw */ + var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var38.i = p1; + /* 8: loadpw */ + var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var41.i = p2; + /* 13: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 3: subw */ + var45.i = var44.i - var37.i; + /* 5: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 6: loadb */ + var39 = ptr5[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 9: subw */ + var48.i = var47.i - var40.i; + /* 11: mullw */ + var49.i = (var48.i * var41.i) & 0xffff; + /* 12: addw */ + var50.i = var46.i + var49.i; + /* 14: addw */ + var51.i = var50.i + var42.i; + /* 15: shrsw */ + var52.i = var51.i >> 8; + /* 16: addw */ + var53.i = var52.i + var45.i; + /* 17: addw */ + var54.i = var53.i + var48.i; + /* 18: addw */ + var55.i = var54.i + var48.i; + /* 19: convsuswb */ + var43 = ORC_CLAMP_UB (var55.i); + /* 20: storeb */ + ptr0[i] = var43; + } + +} + +#else +static void +_backup_orc_matrix2_12_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var36; + orc_union16 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + /* 2: loadpw */ + var37.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var38.i = ex->params[24]; + /* 8: loadpw */ + var40.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var41.i = ex->params[25]; + /* 13: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var36; + /* 3: subw */ + var45.i = var44.i - var37.i; + /* 5: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 6: loadb */ + var39 = ptr5[i]; + /* 7: convubw */ + var47.i = (orc_uint8) var39; + /* 9: subw */ + var48.i = var47.i - var40.i; + /* 11: mullw */ + var49.i = (var48.i * var41.i) & 0xffff; + /* 12: addw */ + var50.i = var46.i + var49.i; + /* 14: addw */ + var51.i = var50.i + var42.i; + /* 15: shrsw */ + var52.i = var51.i >> 8; + /* 16: addw */ + var53.i = var52.i + var45.i; + /* 17: addw */ + var54.i = var53.i + var48.i; + /* 18: addw */ + var55.i = var54.i + var48.i; + /* 19: convsuswb */ + var43 = ORC_CLAMP_UB (var55.i); + /* 20: storeb */ + ptr0[i] = var43; + } + +} + +void +orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, int p1, int p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix2_12_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix2_12_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_constant (p, 4, 0x00000010, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x00000008, "c3"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix3_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int p4, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 2: loadpw */ + var35.i = p1; + /* 6: loadpw */ + var37.i = p2; + /* 11: loadpw */ + var39.i = p3; + /* 14: loadpw */ + var40.i = p4; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var42.i = (orc_uint8) var34; + /* 3: mullw */ + var43.i = (var42.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var44.i = (orc_uint8) var36; + /* 7: mullw */ + var45.i = (var44.i * var37.i) & 0xffff; + /* 8: addw */ + var46.i = var43.i + var45.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var47.i = (orc_uint8) var38; + /* 12: mullw */ + var48.i = (var47.i * var39.i) & 0xffff; + /* 13: addw */ + var49.i = var46.i + var48.i; + /* 15: addw */ + var50.i = var49.i + var40.i; + /* 16: shrsw */ + var51.i = var50.i >> 6; + /* 17: convsuswb */ + var41 = ORC_CLAMP_UB (var51.i); + /* 18: storeb */ + ptr0[i] = var41; + } + +} + +#else +static void +_backup_orc_matrix3_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 2: loadpw */ + var35.i = ex->params[24]; + /* 6: loadpw */ + var37.i = ex->params[25]; + /* 11: loadpw */ + var39.i = ex->params[26]; + /* 14: loadpw */ + var40.i = ex->params[27]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var42.i = (orc_uint8) var34; + /* 3: mullw */ + var43.i = (var42.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var44.i = (orc_uint8) var36; + /* 7: mullw */ + var45.i = (var44.i * var37.i) & 0xffff; + /* 8: addw */ + var46.i = var43.i + var45.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var47.i = (orc_uint8) var38; + /* 12: mullw */ + var48.i = (var47.i * var39.i) & 0xffff; + /* 13: addw */ + var49.i = var46.i + var48.i; + /* 15: addw */ + var50.i = var49.i + var40.i; + /* 16: shrsw */ + var51.i = var50.i >> 6; + /* 17: convsuswb */ + var41 = ORC_CLAMP_UB (var51.i); + /* 18: storeb */ + ptr0[i] = var41; + } + +} + +void +orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int p4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix3_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix3_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 4, 0x00000006, "c1"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_parameter (p, 2, "p4"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + ex->params[ORC_VAR_P4] = p4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix3_100_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_union16 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_int8 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + orc_union16 var56; + orc_union16 var57; + orc_union16 var58; + orc_union16 var59; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 2: loadpw */ + var36.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var37.i = p1; + /* 8: loadpw */ + var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var40.i = p2; + /* 15: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 17: loadpw */ + var43.i = p3; + /* 20: loadpw */ + var44.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var46.i = (orc_uint8) var35; + /* 3: subw */ + var47.i = var46.i - var36.i; + /* 5: mullw */ + var48.i = (var47.i * var37.i) & 0xffff; + /* 6: loadb */ + var38 = ptr5[i]; + /* 7: convubw */ + var49.i = (orc_uint8) var38; + /* 9: subw */ + var50.i = var49.i - var39.i; + /* 11: mullw */ + var51.i = (var50.i * var40.i) & 0xffff; + /* 12: addw */ + var52.i = var48.i + var51.i; + /* 13: loadb */ + var41 = ptr6[i]; + /* 14: convubw */ + var53.i = (orc_uint8) var41; + /* 16: subw */ + var54.i = var53.i - var42.i; + /* 18: mullw */ + var55.i = (var54.i * var43.i) & 0xffff; + /* 19: addw */ + var56.i = var52.i + var55.i; + /* 21: addw */ + var57.i = var56.i + var44.i; + /* 22: shrsw */ + var58.i = var57.i >> 8; + /* 23: addw */ + var59.i = var58.i + var47.i; + /* 24: convsuswb */ + var45 = ORC_CLAMP_UB (var59.i); + /* 25: storeb */ + ptr0[i] = var45; + } + +} + +#else +static void +_backup_orc_matrix3_100_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_union16 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_int8 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + orc_union16 var56; + orc_union16 var57; + orc_union16 var58; + orc_union16 var59; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 2: loadpw */ + var36.i = (int) 0x00000010; /* 16 or 7.90505e-323f */ + /* 4: loadpw */ + var37.i = ex->params[24]; + /* 8: loadpw */ + var39.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 10: loadpw */ + var40.i = ex->params[25]; + /* 15: loadpw */ + var42.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 17: loadpw */ + var43.i = ex->params[26]; + /* 20: loadpw */ + var44.i = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var46.i = (orc_uint8) var35; + /* 3: subw */ + var47.i = var46.i - var36.i; + /* 5: mullw */ + var48.i = (var47.i * var37.i) & 0xffff; + /* 6: loadb */ + var38 = ptr5[i]; + /* 7: convubw */ + var49.i = (orc_uint8) var38; + /* 9: subw */ + var50.i = var49.i - var39.i; + /* 11: mullw */ + var51.i = (var50.i * var40.i) & 0xffff; + /* 12: addw */ + var52.i = var48.i + var51.i; + /* 13: loadb */ + var41 = ptr6[i]; + /* 14: convubw */ + var53.i = (orc_uint8) var41; + /* 16: subw */ + var54.i = var53.i - var42.i; + /* 18: mullw */ + var55.i = (var54.i * var43.i) & 0xffff; + /* 19: addw */ + var56.i = var52.i + var55.i; + /* 21: addw */ + var57.i = var56.i + var44.i; + /* 22: shrsw */ + var58.i = var57.i >> 8; + /* 23: addw */ + var59.i = var58.i + var47.i; + /* 24: convsuswb */ + var45 = ORC_CLAMP_UB (var59.i); + /* 25: storeb */ + ptr0[i] = var45; + } + +} + +void +orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix3_100_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix3_100_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 4, 0x00000010, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x00000008, "c3"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "subw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T3, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix3_100_offset_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, + int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_union16 var36; + orc_int8 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_int8 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 2: loadpw */ + var36.i = p1; + /* 6: loadpw */ + var38.i = p2; + /* 11: loadpw */ + var40.i = p3; + /* 14: loadpw */ + var41.i = p4; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var43.i = (orc_uint8) var35; + /* 3: mullw */ + var44.i = (var43.i * var36.i) & 0xffff; + /* 4: loadb */ + var37 = ptr5[i]; + /* 5: convubw */ + var45.i = (orc_uint8) var37; + /* 7: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 8: addw */ + var47.i = var44.i + var46.i; + /* 9: loadb */ + var39 = ptr6[i]; + /* 10: convubw */ + var48.i = (orc_uint8) var39; + /* 12: mullw */ + var49.i = (var48.i * var40.i) & 0xffff; + /* 13: addw */ + var50.i = var47.i + var49.i; + /* 15: addw */ + var51.i = var50.i + var41.i; + /* 16: shrsw */ + var52.i = var51.i >> p5; + /* 17: addw */ + var53.i = var52.i + var43.i; + /* 18: convsuswb */ + var42 = ORC_CLAMP_UB (var53.i); + /* 19: storeb */ + ptr0[i] = var42; + } + +} + +#else +static void +_backup_orc_matrix3_100_offset_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var35; + orc_union16 var36; + orc_int8 var37; + orc_union16 var38; + orc_int8 var39; + orc_union16 var40; + orc_union16 var41; + orc_int8 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 2: loadpw */ + var36.i = ex->params[24]; + /* 6: loadpw */ + var38.i = ex->params[25]; + /* 11: loadpw */ + var40.i = ex->params[26]; + /* 14: loadpw */ + var41.i = ex->params[27]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var35 = ptr4[i]; + /* 1: convubw */ + var43.i = (orc_uint8) var35; + /* 3: mullw */ + var44.i = (var43.i * var36.i) & 0xffff; + /* 4: loadb */ + var37 = ptr5[i]; + /* 5: convubw */ + var45.i = (orc_uint8) var37; + /* 7: mullw */ + var46.i = (var45.i * var38.i) & 0xffff; + /* 8: addw */ + var47.i = var44.i + var46.i; + /* 9: loadb */ + var39 = ptr6[i]; + /* 10: convubw */ + var48.i = (orc_uint8) var39; + /* 12: mullw */ + var49.i = (var48.i * var40.i) & 0xffff; + /* 13: addw */ + var50.i = var47.i + var49.i; + /* 15: addw */ + var51.i = var50.i + var41.i; + /* 16: shrsw */ + var52.i = var51.i >> ex->params[28]; + /* 17: addw */ + var53.i = var52.i + var43.i; + /* 18: convsuswb */ + var42 = ORC_CLAMP_UB (var53.i); + /* 19: storeb */ + ptr0[i] = var42; + } + +} + +void +orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, + const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, + const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, + int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix3_100_offset_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix3_100_offset_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_parameter (p, 2, "p4"); + orc_program_add_parameter (p, 2, "p5"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P5, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + ex->params[ORC_VAR_P4] = p4; + ex->params[ORC_VAR_P5] = p5; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_matrix3_000_u8 */ +#ifdef DISABLE_ORC +void +orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int p4, int p5, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 2: loadpw */ + var35.i = p1; + /* 6: loadpw */ + var37.i = p2; + /* 11: loadpw */ + var39.i = p3; + /* 14: loadpw */ + var40.i = p4; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var42.i = (orc_uint8) var34; + /* 3: mullw */ + var43.i = (var42.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var44.i = (orc_uint8) var36; + /* 7: mullw */ + var45.i = (var44.i * var37.i) & 0xffff; + /* 8: addw */ + var46.i = var43.i + var45.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var47.i = (orc_uint8) var38; + /* 12: mullw */ + var48.i = (var47.i * var39.i) & 0xffff; + /* 13: addw */ + var49.i = var46.i + var48.i; + /* 15: addw */ + var50.i = var49.i + var40.i; + /* 16: shrsw */ + var51.i = var50.i >> p5; + /* 17: convwb */ + var41 = var51.i; + /* 18: storeb */ + ptr0[i] = var41; + } + +} + +#else +static void +_backup_orc_matrix3_000_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_int8 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 2: loadpw */ + var35.i = ex->params[24]; + /* 6: loadpw */ + var37.i = ex->params[25]; + /* 11: loadpw */ + var39.i = ex->params[26]; + /* 14: loadpw */ + var40.i = ex->params[27]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var42.i = (orc_uint8) var34; + /* 3: mullw */ + var43.i = (var42.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var44.i = (orc_uint8) var36; + /* 7: mullw */ + var45.i = (var44.i * var37.i) & 0xffff; + /* 8: addw */ + var46.i = var43.i + var45.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var47.i = (orc_uint8) var38; + /* 12: mullw */ + var48.i = (var47.i * var39.i) & 0xffff; + /* 13: addw */ + var49.i = var46.i + var48.i; + /* 15: addw */ + var50.i = var49.i + var40.i; + /* 16: shrsw */ + var51.i = var50.i >> ex->params[28]; + /* 17: convwb */ + var41 = var51.i; + /* 18: storeb */ + ptr0[i] = var41; + } + +} + +void +orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, + const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, + int p2, int p3, int p4, int p5, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_matrix3_000_u8"); + orc_program_set_backup_function (p, _backup_orc_matrix3_000_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_parameter (p, 2, "p4"); + orc_program_add_parameter (p, 2, "p5"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P5, + ORC_VAR_D1); + orc_program_append_2 (p, "convwb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + ex->params[ORC_VAR_P4] = p4; + ex->params[ORC_VAR_P5] = p5; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_pack_123x */ +#ifdef DISABLE_ORC +void +orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + int p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 4: loadpb */ + var37 = p1; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: loadb */ + var35 = ptr5[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 3: loadb */ + var36 = ptr6[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + +} + +#else +static void +_backup_orc_pack_123x (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 4: loadpb */ + var37 = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: loadb */ + var35 = ptr5[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 3: loadb */ + var36 = ptr6[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + +} + +void +orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + int p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_pack_123x"); + orc_program_set_backup_function (p, _backup_orc_pack_123x); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_parameter (p, 1, "p1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* orc_pack_x123 */ +#ifdef DISABLE_ORC +void +orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + int p1, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 0: loadpb */ + var34 = p1; + + for (i = 0; i < n; i++) { + /* 1: loadb */ + var35 = ptr4[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 3: loadb */ + var36 = ptr5[i]; + /* 4: loadb */ + var37 = ptr6[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + +} + +#else +static void +_backup_orc_pack_x123 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 0: loadpb */ + var34 = ex->params[24]; + + for (i = 0; i < n; i++) { + /* 1: loadb */ + var35 = ptr4[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 3: loadb */ + var36 = ptr5[i]; + /* 4: loadb */ + var37 = ptr6[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var40.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + +} + +void +orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + int p1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "orc_pack_x123"); + orc_program_set_backup_function (p, _backup_orc_pack_x123); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_parameter (p, 1, "p1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_P1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_P1] = p1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_combine2_u8 */ +#ifdef DISABLE_ORC +void +cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int p1, int p2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + + /* 2: loadpw */ + var35.i = p1; + /* 6: loadpw */ + var37.i = p2; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var39.i = (orc_uint8) var34; + /* 3: mullw */ + var40.i = (var39.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var41.i = (orc_uint8) var36; + /* 7: mullw */ + var42.i = (var41.i * var37.i) & 0xffff; + /* 8: addw */ + var43.i = var40.i + var42.i; + /* 9: shruw */ + var44.i = ((orc_uint16) var43.i) >> 8; + /* 10: convsuswb */ + var38 = ORC_CLAMP_UB (var44.i); + /* 11: storeb */ + ptr0[i] = var38; + } + +} + +#else +static void +_backup_cogorc_combine2_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + + /* 2: loadpw */ + var35.i = ex->params[24]; + /* 6: loadpw */ + var37.i = ex->params[25]; + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var39.i = (orc_uint8) var34; + /* 3: mullw */ + var40.i = (var39.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var41.i = (orc_uint8) var36; + /* 7: mullw */ + var42.i = (var41.i * var37.i) & 0xffff; + /* 8: addw */ + var43.i = var40.i + var42.i; + /* 9: shruw */ + var44.i = ((orc_uint16) var43.i) >> 8; + /* 10: convsuswb */ + var38 = ORC_CLAMP_UB (var44.i); + /* 11: storeb */ + ptr0[i] = var38; + } + +} + +void +cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + int p1, int p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_combine2_u8"); + orc_program_set_backup_function (p, _backup_cogorc_combine2_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_constant (p, 4, 0x00000008, "c1"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "shruw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_combine4_u8 */ +#ifdef DISABLE_ORC +void +cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + int p1, int p2, int p3, int p4, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_int8 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + orc_union16 var56; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + + /* 2: loadpw */ + var35.i = p1; + /* 6: loadpw */ + var37.i = p2; + /* 11: loadpw */ + var39.i = p3; + /* 16: loadpw */ + var41.i = p4; + /* 19: loadpw */ + var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var34; + /* 3: mullw */ + var45.i = (var44.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var46.i = (orc_uint8) var36; + /* 7: mullw */ + var47.i = (var46.i * var37.i) & 0xffff; + /* 8: addw */ + var48.i = var45.i + var47.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var49.i = (orc_uint8) var38; + /* 12: mullw */ + var50.i = (var49.i * var39.i) & 0xffff; + /* 13: addw */ + var51.i = var48.i + var50.i; + /* 14: loadb */ + var40 = ptr7[i]; + /* 15: convubw */ + var52.i = (orc_uint8) var40; + /* 17: mullw */ + var53.i = (var52.i * var41.i) & 0xffff; + /* 18: addw */ + var54.i = var51.i + var53.i; + /* 20: addw */ + var55.i = var54.i + var42.i; + /* 21: shrsw */ + var56.i = var55.i >> 6; + /* 22: convsuswb */ + var43 = ORC_CLAMP_UB (var56.i); + /* 23: storeb */ + ptr0[i] = var43; + } + +} + +#else +static void +_backup_cogorc_combine4_u8 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var34; + orc_union16 var35; + orc_int8 var36; + orc_union16 var37; + orc_int8 var38; + orc_union16 var39; + orc_int8 var40; + orc_union16 var41; + orc_union16 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + orc_union16 var47; + orc_union16 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union16 var55; + orc_union16 var56; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + + /* 2: loadpw */ + var35.i = ex->params[24]; + /* 6: loadpw */ + var37.i = ex->params[25]; + /* 11: loadpw */ + var39.i = ex->params[26]; + /* 16: loadpw */ + var41.i = ex->params[27]; + /* 19: loadpw */ + var42.i = (int) 0x00000020; /* 32 or 1.58101e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr4[i]; + /* 1: convubw */ + var44.i = (orc_uint8) var34; + /* 3: mullw */ + var45.i = (var44.i * var35.i) & 0xffff; + /* 4: loadb */ + var36 = ptr5[i]; + /* 5: convubw */ + var46.i = (orc_uint8) var36; + /* 7: mullw */ + var47.i = (var46.i * var37.i) & 0xffff; + /* 8: addw */ + var48.i = var45.i + var47.i; + /* 9: loadb */ + var38 = ptr6[i]; + /* 10: convubw */ + var49.i = (orc_uint8) var38; + /* 12: mullw */ + var50.i = (var49.i * var39.i) & 0xffff; + /* 13: addw */ + var51.i = var48.i + var50.i; + /* 14: loadb */ + var40 = ptr7[i]; + /* 15: convubw */ + var52.i = (orc_uint8) var40; + /* 17: mullw */ + var53.i = (var52.i * var41.i) & 0xffff; + /* 18: addw */ + var54.i = var51.i + var53.i; + /* 20: addw */ + var55.i = var54.i + var42.i; + /* 21: shrsw */ + var56.i = var55.i >> 6; + /* 22: convsuswb */ + var43 = ORC_CLAMP_UB (var56.i); + /* 23: storeb */ + ptr0[i] = var43; + } + +} + +void +cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + int p1, int p2, int p3, int p4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_combine4_u8"); + orc_program_set_backup_function (p, _backup_cogorc_combine4_u8); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_constant (p, 4, 0x00000020, "c1"); + orc_program_add_constant (p, 4, 0x00000006, "c2"); + orc_program_add_parameter (p, 2, "p1"); + orc_program_add_parameter (p, 2, "p2"); + orc_program_add_parameter (p, 2, "p3"); + orc_program_add_parameter (p, 2, "p4"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P3, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "convubw", 0, ORC_VAR_T2, ORC_VAR_S4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P4, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + ex->params[ORC_VAR_P3] = p3; + ex->params[ORC_VAR_P4] = p4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_unpack_axyz_0 */ +#ifdef DISABLE_ORC +void +cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_unpack_axyz_0 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_unpack_axyz_0"); + orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_0); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_unpack_axyz_1 */ +#ifdef DISABLE_ORC +void +cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_unpack_axyz_1 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select0lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_unpack_axyz_1"); + orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_1); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_unpack_axyz_2 */ +#ifdef DISABLE_ORC +void +cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_unpack_axyz_2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select0wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[0]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_unpack_axyz_2"); + orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_2); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select0wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_unpack_axyz_3 */ +#ifdef DISABLE_ORC +void +cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_union32 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +#else +static void +_backup_cogorc_unpack_axyz_3 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_int8 var34; + orc_union16 var35; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_union32 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: select1lw */ + { + orc_union32 _src; + _src.i = var33.i; + var35.i = _src.x2[1]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var35.i; + var34 = _src.x2[1]; + } + /* 3: storeb */ + ptr0[i] = var34; + } + +} + +void +cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1, + const orc_uint32 * ORC_RESTRICT s1, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_unpack_axyz_3"); + orc_program_set_backup_function (p, _backup_cogorc_unpack_axyz_3); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "select1lw", 0, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_resample_horiz_1tap */ +#ifdef DISABLE_ORC +void +cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: ldresnearb */ + var32 = ptr4[(p1 + i * p2) >> 16]; + /* 1: storeb */ + ptr0[i] = var32; + } + +} + +#else +static void +_backup_cogorc_resample_horiz_1tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: ldresnearb */ + var32 = ptr4[(ex->params[24] + i * ex->params[25]) >> 16]; + /* 1: storeb */ + ptr0[i] = var32; + } + +} + +void +cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_resample_horiz_1tap"); + orc_program_set_backup_function (p, _backup_cogorc_resample_horiz_1tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_parameter (p, 4, "p1"); + orc_program_add_parameter (p, 4, "p2"); + + orc_program_append_2 (p, "ldresnearb", 0, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_P1, ORC_VAR_P2); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_resample_horiz_2tap */ +#ifdef DISABLE_ORC +void +cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n) +{ + int i; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + + ptr0 = (orc_int8 *) d1; + ptr4 = (orc_int8 *) s1; + + + for (i = 0; i < n; i++) { + /* 0: ldreslinb */ + { + int tmp = p1 + i * p2; + var32 = + ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) + + (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8; + } + /* 1: storeb */ + ptr0[i] = var32; + } + +} + +#else +static void +_backup_cogorc_resample_horiz_2tap (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + + ptr0 = (orc_int8 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + + + for (i = 0; i < n; i++) { + /* 0: ldreslinb */ + { + int tmp = ex->params[24] + i * ex->params[25]; + var32 = + ((orc_uint8) ptr4[tmp >> 16] * (256 - ((tmp >> 8) & 0xff)) + + (orc_uint8) ptr4[(tmp >> 16) + 1] * ((tmp >> 8) & 0xff)) >> 8; + } + /* 1: storeb */ + ptr0[i] = var32; + } + +} + +void +cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_resample_horiz_2tap"); + orc_program_set_backup_function (p, _backup_cogorc_resample_horiz_2tap); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_parameter (p, 4, "p1"); + orc_program_add_parameter (p, 4, "p2"); + + orc_program_append_2 (p, "ldreslinb", 0, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_P1, ORC_VAR_P2); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_P1] = p1; + ex->params[ORC_VAR_P2] = p2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_I420_UYVY */ +#ifdef DISABLE_ORC +void +cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + orc_union32 var38; + orc_union16 var39; + + ptr0 = (orc_union32 *) d1; + ptr1 = (orc_union32 *) d2; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr6[i]; + /* 1: loadb */ + var34 = ptr7[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var39.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[0]; + _dest.x2[1] = var35.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[1]; + _dest.x2[1] = var35.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + /* 6: loadw */ + var37 = ptr5[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[0]; + _dest.x2[1] = var37.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[1]; + _dest.x2[1] = var37.x2[1]; + var38.x2[1] = _dest.i; + } + /* 8: storel */ + ptr1[i] = var38; + } + +} + +#else +static void +_backup_cogorc_convert_I420_UYVY (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + orc_union32 var38; + orc_union16 var39; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr1 = (orc_union32 *) ex->arrays[1]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr6[i]; + /* 1: loadb */ + var34 = ptr7[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var39.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[0]; + _dest.x2[1] = var35.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[1]; + _dest.x2[1] = var35.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + /* 6: loadw */ + var37 = ptr5[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[0]; + _dest.x2[1] = var37.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var39.x2[1]; + _dest.x2[1] = var37.x2[1]; + var38.x2[1] = _dest.i; + } + /* 8: storel */ + ptr1[i] = var38; + } + +} + +void +cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_I420_UYVY"); + orc_program_set_backup_function (p, _backup_cogorc_convert_I420_UYVY); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_destination (p, 4, "d2"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_S2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_D2] = d2; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_I420_YUY2 */ +#ifdef DISABLE_ORC +void +cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + orc_union32 var38; + orc_union16 var39; + + ptr0 = (orc_union32 *) d1; + ptr1 = (orc_union32 *) d2; + ptr4 = (orc_union16 *) s1; + ptr5 = (orc_union16 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr6[i]; + /* 1: loadb */ + var34 = ptr7[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var39.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[0]; + _dest.x2[1] = var39.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[1]; + _dest.x2[1] = var39.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + /* 6: loadw */ + var37 = ptr5[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var39.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var39.x2[1]; + var38.x2[1] = _dest.i; + } + /* 8: storel */ + ptr1[i] = var38; + } + +} + +#else +static void +_backup_cogorc_convert_I420_YUY2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + orc_union32 var38; + orc_union16 var39; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr1 = (orc_union32 *) ex->arrays[1]; + ptr4 = (orc_union16 *) ex->arrays[4]; + ptr5 = (orc_union16 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr6[i]; + /* 1: loadb */ + var34 = ptr7[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var39.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[0]; + _dest.x2[1] = var39.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[1]; + _dest.x2[1] = var39.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + /* 6: loadw */ + var37 = ptr5[i]; + /* 7: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var39.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var39.x2[1]; + var38.x2[1] = _dest.i; + } + /* 8: storel */ + ptr1[i] = var38; + } + +} + +void +cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, + const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_I420_YUY2"); + orc_program_set_backup_function (p, _backup_cogorc_convert_I420_YUY2); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_destination (p, 4, "d2"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S3, ORC_VAR_S4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D2, ORC_VAR_S2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_D2] = d2; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_I420_AYUV */ +#ifdef DISABLE_ORC +void +cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_int8 var39; + orc_int8 var40; + orc_union32 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + + ptr0 = (orc_union32 *) d1; + ptr1 = (orc_union32 *) d2; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + + /* 3: loadpb */ + var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 8: loadpb */ + var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadupdb */ + var42 = ptr6[i >> 1]; + /* 1: loadupdb */ + var43 = ptr7[i >> 1]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var42; + _dest.x2[1] = var43; + var44.i = _dest.i; + } + /* 4: loadb */ + var37 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var45.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var45.i; + _dest.x2[1] = var44.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + /* 9: loadb */ + var40 = ptr5[i]; + /* 10: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39; + _dest.x2[1] = var40; + var46.i = _dest.i; + } + /* 11: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var46.i; + _dest.x2[1] = var44.i; + var41.i = _dest.i; + } + /* 12: storel */ + ptr1[i] = var41; + } + +} + +#else +static void +_backup_cogorc_convert_I420_AYUV (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + orc_union32 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_int8 var39; + orc_int8 var40; + orc_union32 var41; + orc_int8 var42; + orc_int8 var43; + orc_union16 var44; + orc_union16 var45; + orc_union16 var46; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr1 = (orc_union32 *) ex->arrays[1]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + + /* 3: loadpb */ + var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 8: loadpb */ + var39 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadupdb */ + var42 = ptr6[i >> 1]; + /* 1: loadupdb */ + var43 = ptr7[i >> 1]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var42; + _dest.x2[1] = var43; + var44.i = _dest.i; + } + /* 4: loadb */ + var37 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var45.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var45.i; + _dest.x2[1] = var44.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + /* 9: loadb */ + var40 = ptr5[i]; + /* 10: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var39; + _dest.x2[1] = var40; + var46.i = _dest.i; + } + /* 11: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var46.i; + _dest.x2[1] = var44.i; + var41.i = _dest.i; + } + /* 12: storel */ + ptr1[i] = var41; + } + +} + +void +cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1, + orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1, + const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, + const orc_uint8 * ORC_RESTRICT s4, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_I420_AYUV"); + orc_program_set_backup_function (p, _backup_cogorc_convert_I420_AYUV); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_destination (p, 4, "d2"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_constant (p, 1, 0x000000ff, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + + orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T3, ORC_VAR_S3, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "loadupdb", 0, ORC_VAR_T4, ORC_VAR_S4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_D2] = d2; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_YUY2_I420 */ +#ifdef DISABLE_ORC +void +cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union32 *ORC_RESTRICT ptr4; + const orc_union32 *ORC_RESTRICT ptr5; + orc_union32 var35; + orc_union32 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + ptr0 = (orc_union16 *) d1; + ptr1 = (orc_union16 *) d2; + ptr2 = (orc_int8 *) d3; + ptr3 = (orc_int8 *) d4; + ptr4 = (orc_union32 *) s1; + ptr5 = (orc_union32 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var40; + /* 3: loadl */ + var36 = ptr5[i]; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var41.x2[0] = _src.x2[1]; + var42.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var41.x2[1] = _src.x2[1]; + var42.x2[1] = _src.x2[0]; + } + /* 5: storew */ + ptr1[i] = var42; + /* 6: avgub */ + var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1; + var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1; + /* 7: splitwb */ + { + orc_union16 _src; + _src.i = var43.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 8: storeb */ + ptr3[i] = var37; + /* 9: storeb */ + ptr2[i] = var38; + } + +} + +#else +static void +_backup_cogorc_convert_YUY2_I420 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union32 *ORC_RESTRICT ptr4; + const orc_union32 *ORC_RESTRICT ptr5; + orc_union32 var35; + orc_union32 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr1 = (orc_union16 *) ex->arrays[1]; + ptr2 = (orc_int8 *) ex->arrays[2]; + ptr3 = (orc_int8 *) ex->arrays[3]; + ptr4 = (orc_union32 *) ex->arrays[4]; + ptr5 = (orc_union32 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var40; + /* 3: loadl */ + var36 = ptr5[i]; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var41.x2[0] = _src.x2[1]; + var42.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var41.x2[1] = _src.x2[1]; + var42.x2[1] = _src.x2[0]; + } + /* 5: storew */ + ptr1[i] = var42; + /* 6: avgub */ + var43.x2[0] = ((orc_uint8) var39.x2[0] + (orc_uint8) var41.x2[0] + 1) >> 1; + var43.x2[1] = ((orc_uint8) var39.x2[1] + (orc_uint8) var41.x2[1] + 1) >> 1; + /* 7: splitwb */ + { + orc_union16 _src; + _src.i = var43.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 8: storeb */ + ptr3[i] = var37; + /* 9: storeb */ + ptr2[i] = var38; + } + +} + +void +cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_YUY2_I420"); + orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_I420); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_destination (p, 1, "d4"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_source (p, 4, "s2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_D2] = d2; + ex->arrays[ORC_VAR_D3] = d3; + ex->arrays[ORC_VAR_D4] = d4; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_UYVY_YUY2 */ +#ifdef DISABLE_ORC +void +cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: swapw */ + var33.x2[0] = ORC_SWAP_W (var32.x2[0]); + var33.x2[1] = ORC_SWAP_W (var32.x2[1]); + /* 2: storel */ + ptr0[i] = var33; + } + } + +} + +#else +static void +_backup_cogorc_convert_UYVY_YUY2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var32; + orc_union32 var33; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var32 = ptr4[i]; + /* 1: swapw */ + var33.x2[0] = ORC_SWAP_W (var32.x2[0]); + var33.x2[1] = ORC_SWAP_W (var32.x2[1]); + /* 2: storel */ + ptr0[i] = var33; + } + } + +} + +void +cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_UYVY_YUY2"); + orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_YUY2); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + + orc_program_append_2 (p, "swapw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_420_422 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + orc_int8 var35; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + /* 3: loadb */ + var34 = ptr4[i]; + /* 4: copyb */ + var35 = var34; + /* 5: storeb */ + ptr1[i] = var35; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_420_422 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + orc_int8 var35; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: copyb */ + var33 = var32; + /* 2: storeb */ + ptr0[i] = var33; + /* 3: loadb */ + var34 = ptr4[i]; + /* 4: copyb */ + var35 = var34; + /* 5: storeb */ + ptr1[i] = var35; + } + } + +} + +void +cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_420_422"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_420_422); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_destination (p, 1, "d2"); + orc_program_add_source (p, 1, "s1"); + + orc_program_append_2 (p, "copyb", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "copyb", 0, ORC_VAR_D2, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_420_444 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: splatbw */ + var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff); + /* 2: storew */ + ptr0[i] = var34; + /* 3: storew */ + ptr1[i] = var34; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_420_444 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: splatbw */ + var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff); + /* 2: storew */ + ptr0[i] = var34; + /* 3: storew */ + ptr1[i] = var34; + } + } + +} + +void +cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_420_444"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_420_444); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_422_444 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: splatbw */ + var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff); + /* 2: storew */ + ptr0[i] = var34; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_422_444 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + orc_int8 var33; + orc_union16 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr4[i]; + /* 1: splatbw */ + var34.i = ((var33 & 0xff) << 8) | (var33 & 0xff); + /* 2: storew */ + ptr0[i] = var34; + } + } + +} + +void +cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_422_444"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_422_444); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_444_422 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var34 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var34.i; + var36 = _src.x2[1]; + var37 = _src.x2[0]; + } + /* 2: avgub */ + var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var35; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_444_422 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var34 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var34.i; + var36 = _src.x2[1]; + var37 = _src.x2[0]; + } + /* 2: avgub */ + var35 = ((orc_uint8) var36 + (orc_uint8) var37 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var35; + } + } + +} + +void +cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_444_422"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_444_422); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_temporary (p, 1, "t1"); + orc_program_add_temporary (p, 1, "t2"); + + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_444_420 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var35; + orc_union16 var36; + orc_int8 var37; + orc_union16 var38; + orc_int8 var39; + orc_int8 var40; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: loadw */ + var36 = ptr5[i]; + /* 2: avgub */ + var38.x2[0] = + ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1; + var38.x2[1] = + ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var38.i; + var39 = _src.x2[1]; + var40 = _src.x2[0]; + } + /* 4: avgub */ + var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1; + /* 5: storeb */ + ptr0[i] = var37; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_444_420 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + orc_union16 var35; + orc_union16 var36; + orc_int8 var37; + orc_union16 var38; + orc_int8 var39; + orc_int8 var40; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var35 = ptr4[i]; + /* 1: loadw */ + var36 = ptr5[i]; + /* 2: avgub */ + var38.x2[0] = + ((orc_uint8) var35.x2[0] + (orc_uint8) var36.x2[0] + 1) >> 1; + var38.x2[1] = + ((orc_uint8) var35.x2[1] + (orc_uint8) var36.x2[1] + 1) >> 1; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var38.i; + var39 = _src.x2[1]; + var40 = _src.x2[0]; + } + /* 4: avgub */ + var37 = ((orc_uint8) var39 + (orc_uint8) var40 + 1) >> 1; + /* 5: storeb */ + ptr0[i] = var37; + } + } + +} + +void +cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_444_420"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_444_420); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 1, "t3"); + + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_planar_chroma_422_420 */ +#ifdef DISABLE_ORC +void +cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + } + +} + +#else +static void +_backup_cogorc_planar_chroma_422_420 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + orc_int8 var32; + orc_int8 var33; + orc_int8 var34; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var32 = ptr4[i]; + /* 1: loadb */ + var33 = ptr5[i]; + /* 2: avgub */ + var34 = ((orc_uint8) var32 + (orc_uint8) var33 + 1) >> 1; + /* 3: storeb */ + ptr0[i] = var34; + } + } + +} + +void +cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_planar_chroma_422_420"); + orc_program_set_backup_function (p, _backup_cogorc_planar_chroma_422_420); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_S2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_YUY2_AYUV */ +#ifdef DISABLE_ORC +void +cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union16 var37; + orc_union64 var38; + orc_union16 var39; + orc_union16 var40; + orc_union32 var41; + orc_union32 var42; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 2: loadpb */ + var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 3: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var40.x2[0]; + var41.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var40.x2[1]; + var41.x2[1] = _dest.i; + } + /* 4: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var39.i; + var42.i = _dest.i; + } + /* 5: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[0]; + _dest.x2[1] = var42.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[1]; + _dest.x2[1] = var42.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_YUY2_AYUV (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union16 var37; + orc_union64 var38; + orc_union16 var39; + orc_union16 var40; + orc_union32 var41; + orc_union32 var42; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 2: loadpb */ + var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 3: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var40.x2[0]; + var41.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var40.x2[1]; + var41.x2[1] = _dest.i; + } + /* 4: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var39.i; + _dest.x2[1] = var39.i; + var42.i = _dest.i; + } + /* 5: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[0]; + _dest.x2[1] = var42.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[1]; + _dest.x2[1] = var42.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var38; + } + } + +} + +void +cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_YUY2_AYUV"); + orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_AYUV); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 2, 0x000000ff, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_UYVY_AYUV */ +#ifdef DISABLE_ORC +void +cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union16 var37; + orc_union64 var38; + orc_union16 var39; + orc_union16 var40; + orc_union32 var41; + orc_union32 var42; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 2: loadpb */ + var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 3: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var39.x2[0]; + var41.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var39.x2[1]; + var41.x2[1] = _dest.i; + } + /* 4: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var40.i; + var42.i = _dest.i; + } + /* 5: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[0]; + _dest.x2[1] = var42.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[1]; + _dest.x2[1] = var42.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_UYVY_AYUV (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var36; + orc_union16 var37; + orc_union64 var38; + orc_union16 var39; + orc_union16 var40; + orc_union32 var41; + orc_union32 var42; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 2: loadpb */ + var37.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var37.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var36 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 3: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var39.x2[0]; + var41.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var39.x2[1]; + var41.x2[1] = _dest.i; + } + /* 4: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var40.i; + var42.i = _dest.i; + } + /* 5: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[0]; + _dest.x2[1] = var42.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var41.x2[1]; + _dest.x2[1] = var42.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storeq */ + ptr0[i] = var38; + } + } + +} + +void +cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_UYVY_AYUV"); + orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_AYUV); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 2, 0x000000ff, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T3, ORC_VAR_C1, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_YUY2_Y42B */ +#ifdef DISABLE_ORC +void +cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var33.x2[0]; + var37.x2[0] = _src.x2[1]; + var34.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var33.x2[1]; + var37.x2[1] = _src.x2[1]; + var34.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var34; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 4: storeb */ + ptr2[i] = var35; + /* 5: storeb */ + ptr1[i] = var36; + } + } + +} + +#else +static void +_backup_cogorc_convert_YUY2_Y42B (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var33.x2[0]; + var37.x2[0] = _src.x2[1]; + var34.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var33.x2[1]; + var37.x2[1] = _src.x2[1]; + var34.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var34; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 4: storeb */ + ptr2[i] = var35; + /* 5: storeb */ + ptr1[i] = var36; + } + } + +} + +void +cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_YUY2_Y42B"); + orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_Y42B); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 1, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_UYVY_Y42B */ +#ifdef DISABLE_ORC +void +cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var33.x2[0]; + var34.x2[0] = _src.x2[1]; + var37.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var33.x2[1]; + var34.x2[1] = _src.x2[1]; + var37.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var34; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 4: storeb */ + ptr2[i] = var35; + /* 5: storeb */ + ptr1[i] = var36; + } + } + +} + +#else +static void +_backup_cogorc_convert_UYVY_Y42B (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var33; + orc_union16 var34; + orc_int8 var35; + orc_int8 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var33 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var33.x2[0]; + var34.x2[0] = _src.x2[1]; + var37.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var33.x2[1]; + var34.x2[1] = _src.x2[1]; + var37.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var34; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var37.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 4: storeb */ + ptr2[i] = var35; + /* 5: storeb */ + ptr1[i] = var36; + } + } + +} + +void +cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_UYVY_Y42B"); + orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_Y42B); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 1, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_YUY2_Y444 */ +#ifdef DISABLE_ORC +void +cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_union16 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var36.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var36.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var36; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 4: splatbw */ + var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff); + /* 5: storew */ + ptr1[i] = var37; + /* 6: splatbw */ + var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff); + /* 7: storew */ + ptr2[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_YUY2_Y444 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_union16 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var36.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var36.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var36; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 4: splatbw */ + var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff); + /* 5: storew */ + ptr1[i] = var37; + /* 6: splatbw */ + var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff); + /* 7: storew */ + ptr2[i] = var38; + } + } + +} + +void +cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_YUY2_Y444"); + orc_program_set_backup_function (p, _backup_cogorc_convert_YUY2_Y444); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_destination (p, 2, "d3"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 1, "t3"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T1, ORC_VAR_D1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_UYVY_Y444 */ +#ifdef DISABLE_ORC +void +cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_union16 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var36.x2[0] = _src.x2[1]; + var39.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var36.x2[1] = _src.x2[1]; + var39.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var36; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 4: splatbw */ + var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff); + /* 5: storew */ + ptr1[i] = var37; + /* 6: splatbw */ + var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff); + /* 7: storew */ + ptr2[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_UYVY_Y444 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_union16 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var35; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union16 var39; + orc_int8 var40; + orc_int8 var41; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var36.x2[0] = _src.x2[1]; + var39.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var36.x2[1] = _src.x2[1]; + var39.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var36; + /* 3: splitwb */ + { + orc_union16 _src; + _src.i = var39.i; + var40 = _src.x2[1]; + var41 = _src.x2[0]; + } + /* 4: splatbw */ + var37.i = ((var41 & 0xff) << 8) | (var41 & 0xff); + /* 5: storew */ + ptr1[i] = var37; + /* 6: splatbw */ + var38.i = ((var40 & 0xff) << 8) | (var40 & 0xff); + /* 7: storew */ + ptr2[i] = var38; + } + } + +} + +void +cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_UYVY_Y444"); + orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_Y444); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_destination (p, 2, "d3"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 1, "t2"); + orc_program_add_temporary (p, 1, "t3"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D2, ORC_VAR_T2, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "splatbw", 0, ORC_VAR_D3, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_UYVY_I420 */ +#ifdef DISABLE_ORC +void +cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n) +{ + int i; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union32 *ORC_RESTRICT ptr4; + const orc_union32 *ORC_RESTRICT ptr5; + orc_union32 var35; + orc_union32 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + ptr0 = (orc_union16 *) d1; + ptr1 = (orc_union16 *) d2; + ptr2 = (orc_int8 *) d3; + ptr3 = (orc_int8 *) d4; + ptr4 = (orc_union32 *) s1; + ptr5 = (orc_union32 *) s2; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var39; + /* 3: loadl */ + var36 = ptr5[i]; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var41.x2[0] = _src.x2[1]; + var42.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var41.x2[1] = _src.x2[1]; + var42.x2[1] = _src.x2[0]; + } + /* 5: storew */ + ptr1[i] = var41; + /* 6: avgub */ + var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 7: splitwb */ + { + orc_union16 _src; + _src.i = var43.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 8: storeb */ + ptr3[i] = var37; + /* 9: storeb */ + ptr2[i] = var38; + } + +} + +#else +static void +_backup_cogorc_convert_UYVY_I420 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union32 *ORC_RESTRICT ptr4; + const orc_union32 *ORC_RESTRICT ptr5; + orc_union32 var35; + orc_union32 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union16 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + ptr0 = (orc_union16 *) ex->arrays[0]; + ptr1 = (orc_union16 *) ex->arrays[1]; + ptr2 = (orc_int8 *) ex->arrays[2]; + ptr3 = (orc_int8 *) ex->arrays[3]; + ptr4 = (orc_union32 *) ex->arrays[4]; + ptr5 = (orc_union32 *) ex->arrays[5]; + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var35 = ptr4[i]; + /* 1: splitwb */ + { + orc_union16 _src; + _src.i = var35.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var35.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: storew */ + ptr0[i] = var39; + /* 3: loadl */ + var36 = ptr5[i]; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var36.x2[0]; + var41.x2[0] = _src.x2[1]; + var42.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var36.x2[1]; + var41.x2[1] = _src.x2[1]; + var42.x2[1] = _src.x2[0]; + } + /* 5: storew */ + ptr1[i] = var41; + /* 6: avgub */ + var43.x2[0] = ((orc_uint8) var40.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = ((orc_uint8) var40.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 7: splitwb */ + { + orc_union16 _src; + _src.i = var43.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 8: storeb */ + ptr3[i] = var37; + /* 9: storeb */ + ptr2[i] = var38; + } + +} + +void +cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1, + orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, + orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, + const orc_uint32 * ORC_RESTRICT s2, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_UYVY_I420"); + orc_program_set_backup_function (p, _backup_cogorc_convert_UYVY_I420); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_destination (p, 1, "d4"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_source (p, 4, "s2"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "storew", 0, ORC_VAR_D2, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D4, ORC_VAR_D3, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_D2] = d2; + ex->arrays[ORC_VAR_D3] = d3; + ex->arrays[ORC_VAR_D4] = d4; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_I420 */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, + const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union64 *ORC_RESTRICT ptr4; + const orc_union64 *ORC_RESTRICT ptr5; + orc_union64 var40; + orc_union16 var41; + orc_union64 var42; + orc_union16 var43; + orc_int8 var44; + orc_int8 var45; + orc_union32 var46; + orc_union32 var47; + orc_union32 var48; + orc_union32 var49; + orc_union32 var50; + orc_union16 var51; + orc_union16 var52; + orc_int8 var53; + orc_int8 var54; + orc_int8 var55; + orc_int8 var56; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr3 = ORC_PTR_OFFSET (d4, d4_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var40 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var40.x2[0]; + var46.x2[0] = _src.x2[1]; + var47.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var40.x2[1]; + var46.x2[1] = _src.x2[1]; + var47.x2[1] = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var47.x2[0]; + var41.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var47.x2[1]; + var41.x2[1] = _src.x2[1]; + } + /* 3: storew */ + ptr0[i] = var41; + /* 4: loadq */ + var42 = ptr5[i]; + /* 5: splitlw */ + { + orc_union32 _src; + _src.i = var42.x2[0]; + var48.x2[0] = _src.x2[1]; + var49.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var42.x2[1]; + var48.x2[1] = _src.x2[1]; + var49.x2[1] = _src.x2[0]; + } + /* 6: select1wb */ + { + orc_union16 _src; + _src.i = var49.x2[0]; + var43.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var49.x2[1]; + var43.x2[1] = _src.x2[1]; + } + /* 7: storew */ + ptr1[i] = var43; + /* 8: avgub */ + var50.x4[0] = + ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1; + var50.x4[1] = + ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1; + var50.x4[2] = + ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1; + var50.x4[3] = + ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1; + /* 9: splitwb */ + { + orc_union16 _src; + _src.i = var50.x2[0]; + var51.x2[0] = _src.x2[1]; + var52.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var50.x2[1]; + var51.x2[1] = _src.x2[1]; + var52.x2[1] = _src.x2[0]; + } + /* 10: splitwb */ + { + orc_union16 _src; + _src.i = var52.i; + var53 = _src.x2[1]; + var54 = _src.x2[0]; + } + /* 11: avgub */ + var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1; + /* 12: storeb */ + ptr2[i] = var44; + /* 13: splitwb */ + { + orc_union16 _src; + _src.i = var51.i; + var55 = _src.x2[1]; + var56 = _src.x2[0]; + } + /* 14: avgub */ + var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1; + /* 15: storeb */ + ptr3[i] = var45; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_I420 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_union16 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + orc_int8 *ORC_RESTRICT ptr3; + const orc_union64 *ORC_RESTRICT ptr4; + const orc_union64 *ORC_RESTRICT ptr5; + orc_union64 var40; + orc_union16 var41; + orc_union64 var42; + orc_union16 var43; + orc_int8 var44; + orc_int8 var45; + orc_union32 var46; + orc_union32 var47; + orc_union32 var48; + orc_union32 var49; + orc_union32 var50; + orc_union16 var51; + orc_union16 var52; + orc_int8 var53; + orc_int8 var54; + orc_int8 var55; + orc_int8 var56; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr3 = ORC_PTR_OFFSET (ex->arrays[3], ex->params[3] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var40 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var40.x2[0]; + var46.x2[0] = _src.x2[1]; + var47.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var40.x2[1]; + var46.x2[1] = _src.x2[1]; + var47.x2[1] = _src.x2[0]; + } + /* 2: select1wb */ + { + orc_union16 _src; + _src.i = var47.x2[0]; + var41.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var47.x2[1]; + var41.x2[1] = _src.x2[1]; + } + /* 3: storew */ + ptr0[i] = var41; + /* 4: loadq */ + var42 = ptr5[i]; + /* 5: splitlw */ + { + orc_union32 _src; + _src.i = var42.x2[0]; + var48.x2[0] = _src.x2[1]; + var49.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var42.x2[1]; + var48.x2[1] = _src.x2[1]; + var49.x2[1] = _src.x2[0]; + } + /* 6: select1wb */ + { + orc_union16 _src; + _src.i = var49.x2[0]; + var43.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var49.x2[1]; + var43.x2[1] = _src.x2[1]; + } + /* 7: storew */ + ptr1[i] = var43; + /* 8: avgub */ + var50.x4[0] = + ((orc_uint8) var46.x4[0] + (orc_uint8) var48.x4[0] + 1) >> 1; + var50.x4[1] = + ((orc_uint8) var46.x4[1] + (orc_uint8) var48.x4[1] + 1) >> 1; + var50.x4[2] = + ((orc_uint8) var46.x4[2] + (orc_uint8) var48.x4[2] + 1) >> 1; + var50.x4[3] = + ((orc_uint8) var46.x4[3] + (orc_uint8) var48.x4[3] + 1) >> 1; + /* 9: splitwb */ + { + orc_union16 _src; + _src.i = var50.x2[0]; + var51.x2[0] = _src.x2[1]; + var52.x2[0] = _src.x2[0]; + } + { + orc_union16 _src; + _src.i = var50.x2[1]; + var51.x2[1] = _src.x2[1]; + var52.x2[1] = _src.x2[0]; + } + /* 10: splitwb */ + { + orc_union16 _src; + _src.i = var52.i; + var53 = _src.x2[1]; + var54 = _src.x2[0]; + } + /* 11: avgub */ + var44 = ((orc_uint8) var53 + (orc_uint8) var54 + 1) >> 1; + /* 12: storeb */ + ptr2[i] = var44; + /* 13: splitwb */ + { + orc_union16 _src; + _src.i = var51.i; + var55 = _src.x2[1]; + var56 = _src.x2[0]; + } + /* 14: avgub */ + var45 = ((orc_uint8) var55 + (orc_uint8) var56 + 1) >> 1; + /* 15: storeb */ + ptr3[i] = var45; + } + } + +} + +void +cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, + const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_I420"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_I420); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 2, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_destination (p, 1, "d4"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_source (p, 8, "s2"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + orc_program_add_temporary (p, 2, "t5"); + orc_program_add_temporary (p, 2, "t6"); + orc_program_add_temporary (p, 1, "t7"); + orc_program_add_temporary (p, 1, "t8"); + + orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_S2, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D2, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 2, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 1, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D3, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T7, ORC_VAR_T8, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_D4, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_D4] = d4; + ex->params[ORC_VAR_D4] = d4_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_YUY2 */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var37 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var37.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var37.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 3: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 4: select1wb */ + { + orc_union16 _src; + _src.i = var40.x2[0]; + var44.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var40.x2[1]; + var44.x2[1] = _src.x2[1]; + } + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var43.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var43.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storel */ + ptr0[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_YUY2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var37 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var37.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var37.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 3: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 4: select1wb */ + { + orc_union16 _src; + _src.i = var40.x2[0]; + var44.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var40.x2[1]; + var44.x2[1] = _src.x2[1]; + } + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[0]; + _dest.x2[1] = var43.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var44.x2[1]; + _dest.x2[1] = var43.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storel */ + ptr0[i] = var38; + } + } + +} + +void +cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_YUY2"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_YUY2); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 4, "t4"); + orc_program_add_temporary (p, 4, "t5"); + + orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_UYVY */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var37 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var37.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var37.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 3: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 4: select1wb */ + { + orc_union16 _src; + _src.i = var40.x2[0]; + var44.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var40.x2[1]; + var44.x2[1] = _src.x2[1]; + } + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[0]; + _dest.x2[1] = var44.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[1]; + _dest.x2[1] = var44.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storel */ + ptr0[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_UYVY (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var37; + orc_union32 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var37 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var37.x2[0]; + var39.x2[0] = _src.x2[1]; + var40.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var37.x2[1]; + var39.x2[1] = _src.x2[1]; + var40.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var39.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 3: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 4: select1wb */ + { + orc_union16 _src; + _src.i = var40.x2[0]; + var44.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var40.x2[1]; + var44.x2[1] = _src.x2[1]; + } + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[0]; + _dest.x2[1] = var44.x2[0]; + var38.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[1]; + _dest.x2[1] = var44.x2[1]; + var38.x2[1] = _dest.i; + } + /* 6: storel */ + ptr0[i] = var38; + } + } + +} + +void +cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_UYVY"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_UYVY); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 4, "t4"); + orc_program_add_temporary (p, 4, "t5"); + + orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 1, ORC_VAR_T1, ORC_VAR_T4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_Y42B */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union32 var40; + orc_union32 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var36 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var36.x2[0]; + var40.x2[0] = _src.x2[1]; + var41.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var36.x2[1]; + var40.x2[1] = _src.x2[1]; + var41.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var42.i = _src.x2[1]; + var43.i = _src.x2[0]; + } + /* 3: avgub */ + var44.x2[0] = + ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1; + var44.x2[1] = + ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var44.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 5: storeb */ + ptr2[i] = var37; + /* 6: storeb */ + ptr1[i] = var38; + /* 7: select1wb */ + { + orc_union16 _src; + _src.i = var41.x2[0]; + var39.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var41.x2[1]; + var39.x2[1] = _src.x2[1]; + } + /* 8: storew */ + ptr0[i] = var39; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_Y42B (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union16 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union64 *ORC_RESTRICT ptr4; + orc_union64 var36; + orc_int8 var37; + orc_int8 var38; + orc_union16 var39; + orc_union32 var40; + orc_union32 var41; + orc_union16 var42; + orc_union16 var43; + orc_union16 var44; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadq */ + var36 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var36.x2[0]; + var40.x2[0] = _src.x2[1]; + var41.x2[0] = _src.x2[0]; + } + { + orc_union32 _src; + _src.i = var36.x2[1]; + var40.x2[1] = _src.x2[1]; + var41.x2[1] = _src.x2[0]; + } + /* 2: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var42.i = _src.x2[1]; + var43.i = _src.x2[0]; + } + /* 3: avgub */ + var44.x2[0] = + ((orc_uint8) var42.x2[0] + (orc_uint8) var43.x2[0] + 1) >> 1; + var44.x2[1] = + ((orc_uint8) var42.x2[1] + (orc_uint8) var43.x2[1] + 1) >> 1; + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var44.i; + var37 = _src.x2[1]; + var38 = _src.x2[0]; + } + /* 5: storeb */ + ptr2[i] = var37; + /* 6: storeb */ + ptr1[i] = var38; + /* 7: select1wb */ + { + orc_union16 _src; + _src.i = var41.x2[0]; + var39.x2[0] = _src.x2[1]; + } + { + orc_union16 _src; + _src.i = var41.x2[1]; + var39.x2[1] = _src.x2[1]; + } + /* 8: storew */ + ptr0[i] = var39; + } + } + +} + +void +cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_Y42B"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_Y42B); + orc_program_add_destination (p, 2, "d1"); + orc_program_add_destination (p, 1, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_source (p, 8, "s1"); + orc_program_add_temporary (p, 4, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "splitlw", 1, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T3, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 1, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_Y444 */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + int i; + int j; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr1 = ORC_PTR_OFFSET (d2, d2_stride * j); + ptr2 = ORC_PTR_OFFSET (d3, d3_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var34.i; + var38.i = _src.x2[1]; + var39.i = _src.x2[0]; + } + /* 2: splitwb */ + { + orc_union16 _src; + _src.i = var38.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 3: storeb */ + ptr2[i] = var35; + /* 4: storeb */ + ptr1[i] = var36; + /* 5: select1wb */ + { + orc_union16 _src; + _src.i = var39.i; + var37 = _src.x2[1]; + } + /* 6: storeb */ + ptr0[i] = var37; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_Y444 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_int8 *ORC_RESTRICT ptr0; + orc_int8 *ORC_RESTRICT ptr1; + orc_int8 *ORC_RESTRICT ptr2; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr1 = ORC_PTR_OFFSET (ex->arrays[1], ex->params[1] * j); + ptr2 = ORC_PTR_OFFSET (ex->arrays[2], ex->params[2] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var34 = ptr4[i]; + /* 1: splitlw */ + { + orc_union32 _src; + _src.i = var34.i; + var38.i = _src.x2[1]; + var39.i = _src.x2[0]; + } + /* 2: splitwb */ + { + orc_union16 _src; + _src.i = var38.i; + var35 = _src.x2[1]; + var36 = _src.x2[0]; + } + /* 3: storeb */ + ptr2[i] = var35; + /* 4: storeb */ + ptr1[i] = var36; + /* 5: select1wb */ + { + orc_union16 _src; + _src.i = var39.i; + var37 = _src.x2[1]; + } + /* 6: storeb */ + ptr0[i] = var37; + } + } + +} + +void +cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, + orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, + int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, + int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_Y444"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_Y444); + orc_program_add_destination (p, 1, "d1"); + orc_program_add_destination (p, 1, "d2"); + orc_program_add_destination (p, 1, "d3"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_D3, ORC_VAR_D2, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1, + ORC_VAR_D1, ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_D2] = d2; + ex->params[ORC_VAR_D2] = d2_stride; + ex->arrays[ORC_VAR_D3] = d3; + ex->params[ORC_VAR_D3] = d3_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y42B_YUY2 */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr5[i]; + /* 1: loadb */ + var34 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var37.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[0]; + _dest.x2[1] = var37.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[1]; + _dest.x2[1] = var37.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y42B_YUY2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr5[i]; + /* 1: loadb */ + var34 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var37.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[0]; + _dest.x2[1] = var37.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var35.x2[1]; + _dest.x2[1] = var37.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + } + } + +} + +void +cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y42B_YUY2"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_YUY2); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y42B_UYVY */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr5[i]; + /* 1: loadb */ + var34 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var37.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var35.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var35.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y42B_UYVY (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var33; + orc_int8 var34; + orc_union16 var35; + orc_union32 var36; + orc_union16 var37; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var33 = ptr5[i]; + /* 1: loadb */ + var34 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var33; + _dest.x2[1] = var34; + var37.i = _dest.i; + } + /* 3: loadw */ + var35 = ptr4[i]; + /* 4: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[0]; + _dest.x2[1] = var35.x2[0]; + var36.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var37.x2[1]; + _dest.x2[1] = var35.x2[1]; + var36.x2[1] = _dest.i; + } + /* 5: storel */ + ptr0[i] = var36; + } + } + +} + +void +cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y42B_UYVY"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_UYVY); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_temporary (p, 2, "t1"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y42B_AYUV */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + orc_union64 var40; + orc_union16 var41; + orc_union32 var42; + orc_union32 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + /* 3: loadpb */ + var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr5[i]; + /* 1: loadb */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var41.i = _dest.i; + } + /* 4: loadw */ + var39 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[0]; + _dest.x2[1] = var39.x2[0]; + var42.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[1]; + _dest.x2[1] = var39.x2[1]; + var42.x2[1] = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 7: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var42.x2[0]; + _dest.x2[1] = var43.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var42.x2[1]; + _dest.x2[1] = var43.x2[1]; + var40.x2[1] = _dest.i; + } + /* 8: storeq */ + ptr0[i] = var40; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y42B_AYUV (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union64 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var36; + orc_int8 var37; + orc_union16 var38; + orc_union16 var39; + orc_union64 var40; + orc_union16 var41; + orc_union32 var42; + orc_union32 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + /* 3: loadpb */ + var38.x2[0] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + var38.x2[1] = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var36 = ptr5[i]; + /* 1: loadb */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var41.i = _dest.i; + } + /* 4: loadw */ + var39 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[0]; + _dest.x2[1] = var39.x2[0]; + var42.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[1]; + _dest.x2[1] = var39.x2[1]; + var42.x2[1] = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var41.i; + _dest.x2[1] = var41.i; + var43.i = _dest.i; + } + /* 7: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var42.x2[0]; + _dest.x2[1] = var43.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union32 _dest; + _dest.x2[0] = var42.x2[1]; + _dest.x2[1] = var43.x2[1]; + var40.x2[1] = _dest.i; + } + /* 8: storeq */ + ptr0[i] = var40; + } + } + +} + +void +cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y42B_AYUV"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y42B_AYUV); + orc_program_add_destination (p, 8, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 1, 0x000000ff, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 4, "t3"); + orc_program_add_temporary (p, 4, "t4"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T4, ORC_VAR_C1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 1, ORC_VAR_D1, ORC_VAR_T4, ORC_VAR_T3, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y444_YUY2 */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var36 = ptr5[i]; + /* 1: loadw */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[0]; + _dest.x2[1] = var37.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[1]; + _dest.x2[1] = var37.x2[1]; + var40.x2[1] = _dest.i; + } + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 4: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 5: loadw */ + var38 = ptr4[i]; + /* 6: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[0]; + _dest.x2[1] = var43.x2[0]; + var39.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[1]; + _dest.x2[1] = var43.x2[1]; + var39.x2[1] = _dest.i; + } + /* 7: storel */ + ptr0[i] = var39; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y444_YUY2 (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var36 = ptr5[i]; + /* 1: loadw */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[0]; + _dest.x2[1] = var37.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[1]; + _dest.x2[1] = var37.x2[1]; + var40.x2[1] = _dest.i; + } + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 4: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 5: loadw */ + var38 = ptr4[i]; + /* 6: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[0]; + _dest.x2[1] = var43.x2[0]; + var39.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var38.x2[1]; + _dest.x2[1] = var43.x2[1]; + var39.x2[1] = _dest.i; + } + /* 7: storel */ + ptr0[i] = var39; + } + } + +} + +void +cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y444_YUY2"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_YUY2); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_source (p, 2, "s3"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_S1, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y444_UYVY */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var36 = ptr5[i]; + /* 1: loadw */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[0]; + _dest.x2[1] = var37.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[1]; + _dest.x2[1] = var37.x2[1]; + var40.x2[1] = _dest.i; + } + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 4: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 5: loadw */ + var38 = ptr4[i]; + /* 6: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[0]; + _dest.x2[1] = var38.x2[0]; + var39.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[1]; + _dest.x2[1] = var38.x2[1]; + var39.x2[1] = _dest.i; + } + /* 7: storel */ + ptr0[i] = var39; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y444_UYVY (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union16 *ORC_RESTRICT ptr4; + const orc_union16 *ORC_RESTRICT ptr5; + const orc_union16 *ORC_RESTRICT ptr6; + orc_union16 var36; + orc_union16 var37; + orc_union16 var38; + orc_union32 var39; + orc_union32 var40; + orc_union16 var41; + orc_union16 var42; + orc_union16 var43; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + + for (i = 0; i < n; i++) { + /* 0: loadw */ + var36 = ptr5[i]; + /* 1: loadw */ + var37 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[0]; + _dest.x2[1] = var37.x2[0]; + var40.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var36.x2[1]; + _dest.x2[1] = var37.x2[1]; + var40.x2[1] = _dest.i; + } + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var40.i; + var41.i = _src.x2[1]; + var42.i = _src.x2[0]; + } + /* 4: avgub */ + var43.x2[0] = + ((orc_uint8) var41.x2[0] + (orc_uint8) var42.x2[0] + 1) >> 1; + var43.x2[1] = + ((orc_uint8) var41.x2[1] + (orc_uint8) var42.x2[1] + 1) >> 1; + /* 5: loadw */ + var38 = ptr4[i]; + /* 6: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[0]; + _dest.x2[1] = var38.x2[0]; + var39.x2[0] = _dest.i; + } + { + orc_union16 _dest; + _dest.x2[0] = var43.x2[1]; + _dest.x2[1] = var38.x2[1]; + var39.x2[1] = _dest.i; + } + /* 7: storel */ + ptr0[i] = var39; + } + } + +} + +void +cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint16 * ORC_RESTRICT s1, int s1_stride, + const orc_uint16 * ORC_RESTRICT s2, int s2_stride, + const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y444_UYVY"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_UYVY); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 2, "s1"); + orc_program_add_source (p, 2, "s2"); + orc_program_add_source (p, 2, "s3"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 4, "t2"); + orc_program_add_temporary (p, 2, "t3"); + orc_program_add_temporary (p, 2, "t4"); + + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_T2, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_S1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_Y444_AYUV */ +#ifdef DISABLE_ORC +void +cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + ptr5 = ORC_PTR_OFFSET (s2, s2_stride * j); + ptr6 = ORC_PTR_OFFSET (s3, s3_stride * j); + + /* 3: loadpb */ + var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr5[i]; + /* 1: loadb */ + var35 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 4: loadb */ + var37 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + } + +} + +#else +static void +_backup_cogorc_convert_Y444_AYUV (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var34; + orc_int8 var35; + orc_int8 var36; + orc_int8 var37; + orc_union32 var38; + orc_union16 var39; + orc_union16 var40; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + ptr5 = ORC_PTR_OFFSET (ex->arrays[5], ex->params[5] * j); + ptr6 = ORC_PTR_OFFSET (ex->arrays[6], ex->params[6] * j); + + /* 3: loadpb */ + var36 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var34 = ptr5[i]; + /* 1: loadb */ + var35 = ptr6[i]; + /* 2: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var34; + _dest.x2[1] = var35; + var39.i = _dest.i; + } + /* 4: loadb */ + var37 = ptr4[i]; + /* 5: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var36; + _dest.x2[1] = var37; + var40.i = _dest.i; + } + /* 6: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var40.i; + _dest.x2[1] = var39.i; + var38.i = _dest.i; + } + /* 7: storel */ + ptr0[i] = var38; + } + } + +} + +void +cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint8 * ORC_RESTRICT s1, int s1_stride, + const orc_uint8 * ORC_RESTRICT s2, int s2_stride, + const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_Y444_AYUV"); + orc_program_set_backup_function (p, _backup_cogorc_convert_Y444_AYUV); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 1, 0x000000ff, "c1"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_S2, ORC_VAR_S3, + ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_C1, ORC_VAR_S1, + ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_T1, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->params[ORC_VAR_S2] = s2_stride; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->params[ORC_VAR_S3] = s3_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_ARGB */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var61; + _dest.x2[1] = var87; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var88; + _dest.x2[1] = var89; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_ARGB (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var61; + _dest.x2[1] = var87; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var88; + _dest.x2[1] = var89; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +void +cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_ARGB"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_ARGB); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 1, "t5"); + orc_program_add_temporary (p, 1, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 2, "t10"); + orc_program_add_temporary (p, 2, "t11"); + orc_program_add_temporary (p, 2, "t12"); + orc_program_add_temporary (p, 1, "t13"); + orc_program_add_temporary (p, 1, "t14"); + orc_program_add_temporary (p, 1, "t15"); + orc_program_add_temporary (p, 4, "t16"); + + orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T9, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T8, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, + ORC_VAR_T13, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14, + ORC_VAR_T15, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_BGRA */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var89; + _dest.x2[1] = var88; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var61; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_BGRA (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var89; + _dest.x2[1] = var88; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var61; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +void +cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_BGRA"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_BGRA); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 1, "t5"); + orc_program_add_temporary (p, 1, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 2, "t10"); + orc_program_add_temporary (p, 2, "t11"); + orc_program_add_temporary (p, 2, "t12"); + orc_program_add_temporary (p, 1, "t13"); + orc_program_add_temporary (p, 1, "t14"); + orc_program_add_temporary (p, 1, "t15"); + orc_program_add_temporary (p, 4, "t16"); + + orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T9, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T8, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T15, + ORC_VAR_T14, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T13, + ORC_VAR_T3, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_ABGR */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var61; + _dest.x2[1] = var89; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var88; + _dest.x2[1] = var87; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_ABGR (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var61; + _dest.x2[1] = var89; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var88; + _dest.x2[1] = var87; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +void +cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_ABGR"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_ABGR); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 1, "t5"); + orc_program_add_temporary (p, 1, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 2, "t10"); + orc_program_add_temporary (p, 2, "t11"); + orc_program_add_temporary (p, 2, "t12"); + orc_program_add_temporary (p, 1, "t13"); + orc_program_add_temporary (p, 1, "t14"); + orc_program_add_temporary (p, 1, "t15"); + orc_program_add_temporary (p, 4, "t16"); + + orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T9, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T8, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T3, + ORC_VAR_T15, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T14, + ORC_VAR_T13, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_AYUV_RGBA */ +#ifdef DISABLE_ORC +void +cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + int i; + int j; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (d1, d1_stride * j); + ptr4 = ORC_PTR_OFFSET (s1, s1_stride * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var88; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var89; + _dest.x2[1] = var61; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +#else +static void +_backup_cogorc_convert_AYUV_RGBA (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int j; + int n = ex->n; + int m = ex->params[ORC_VAR_A1]; + orc_union32 *ORC_RESTRICT ptr0; + const orc_union32 *ORC_RESTRICT ptr4; + orc_union32 var48; + orc_union32 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_union32 var55; + orc_union32 var56; + orc_union32 var57; + orc_union16 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_int8 var87; + orc_int8 var88; + orc_int8 var89; + orc_union16 var90; + orc_union16 var91; + orc_union32 var92; + + for (j = 0; j < m; j++) { + ptr0 = ORC_PTR_OFFSET (ex->arrays[0], ex->params[0] * j); + ptr4 = ORC_PTR_OFFSET (ex->arrays[4], ex->params[4] * j); + + /* 1: loadpb */ + var49.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var49.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 14: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 21: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 25: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 29: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 40: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadl */ + var48 = ptr4[i]; + /* 2: subb */ + var57.x4[0] = var48.x4[0] - var49.x4[0]; + var57.x4[1] = var48.x4[1] - var49.x4[1]; + var57.x4[2] = var48.x4[2] - var49.x4[2]; + var57.x4[3] = var48.x4[3] - var49.x4[3]; + /* 3: splitlw */ + { + orc_union32 _src; + _src.i = var57.i; + var58.i = _src.x2[1]; + var59.i = _src.x2[0]; + } + /* 4: splitwb */ + { + orc_union16 _src; + _src.i = var59.i; + var60 = _src.x2[1]; + var61 = _src.x2[0]; + } + /* 5: splitwb */ + { + orc_union16 _src; + _src.i = var58.i; + var62 = _src.x2[1]; + var63 = _src.x2[0]; + } + /* 6: convsbw */ + var64.i = var60; + /* 7: convsbw */ + var65.i = var63; + /* 8: convsbw */ + var66.i = var62; + /* 10: mullw */ + var67.i = (var64.i * var50.i) & 0xffff; + /* 11: shrsw */ + var68.i = var67.i >> 8; + /* 12: addssw */ + var69.i = ORC_CLAMP_SW (var64.i + var68.i); + /* 13: addssw */ + var70.i = ORC_CLAMP_SW (var69.i + var66.i); + /* 15: mullw */ + var71.i = (var66.i * var51.i) & 0xffff; + /* 16: shrsw */ + var72.i = var71.i >> 8; + /* 17: subssw */ + var73.i = ORC_CLAMP_SW (var70.i - var72.i); + /* 18: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var66.i); + /* 19: addssw */ + var75.i = ORC_CLAMP_SW (var69.i + var65.i); + /* 20: addssw */ + var76.i = ORC_CLAMP_SW (var75.i + var65.i); + /* 22: mullw */ + var77.i = (var65.i * var52.i) & 0xffff; + /* 23: shrsw */ + var78.i = var77.i >> 8; + /* 24: addssw */ + var79.i = ORC_CLAMP_SW (var76.i + var78.i); + /* 26: mullw */ + var80.i = (var65.i * var53.i) & 0xffff; + /* 27: shrsw */ + var81.i = var80.i >> 8; + /* 28: subssw */ + var82.i = ORC_CLAMP_SW (var69.i - var81.i); + /* 30: mullw */ + var83.i = (var66.i * var54.i) & 0xffff; + /* 31: shrsw */ + var84.i = var83.i >> 8; + /* 32: subssw */ + var85.i = ORC_CLAMP_SW (var82.i - var84.i); + /* 33: subssw */ + var86.i = ORC_CLAMP_SW (var85.i - var84.i); + /* 34: convssswb */ + var87 = ORC_CLAMP_SB (var74.i); + /* 35: convssswb */ + var88 = ORC_CLAMP_SB (var86.i); + /* 36: convssswb */ + var89 = ORC_CLAMP_SB (var79.i); + /* 37: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var88; + var90.i = _dest.i; + } + /* 38: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var89; + _dest.x2[1] = var61; + var91.i = _dest.i; + } + /* 39: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var90.i; + _dest.x2[1] = var91.i; + var92.i = _dest.i; + } + /* 41: addb */ + var56.x4[0] = var92.x4[0] + var55.x4[0]; + var56.x4[1] = var92.x4[1] + var55.x4[1]; + var56.x4[2] = var92.x4[2] + var55.x4[2]; + var56.x4[3] = var92.x4[3] + var55.x4[3]; + /* 42: storel */ + ptr0[i] = var56; + } + } + +} + +void +cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, + const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_2d (p); + orc_program_set_name (p, "cogorc_convert_AYUV_RGBA"); + orc_program_set_backup_function (p, _backup_cogorc_convert_AYUV_RGBA); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 4, "s1"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 4, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 1, "t5"); + orc_program_add_temporary (p, 1, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 2, "t10"); + orc_program_add_temporary (p, 2, "t11"); + orc_program_add_temporary (p, 2, "t12"); + orc_program_add_temporary (p, 1, "t13"); + orc_program_add_temporary (p, 1, "t14"); + orc_program_add_temporary (p, 1, "t15"); + orc_program_add_temporary (p, 4, "t16"); + + orc_program_append_2 (p, "subb", 2, 47, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T1, ORC_VAR_T2, 47, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T6, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T9, ORC_VAR_T6, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T7, ORC_VAR_T9, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T9, ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T7, ORC_VAR_T8, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T8, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T12, ORC_VAR_T12, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T8, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T9, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T11, ORC_VAR_T11, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T14, ORC_VAR_T11, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T15, ORC_VAR_T12, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13, + ORC_VAR_T14, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T15, + ORC_VAR_T3, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, 47, ORC_VAR_T1, ORC_VAR_T2, + ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, 47, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ORC_EXECUTOR_M (ex) = m; + ex->arrays[ORC_VAR_D1] = d1; + ex->params[ORC_VAR_D1] = d1_stride; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->params[ORC_VAR_S1] = s1_stride; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_I420_BGRA */ +#ifdef DISABLE_ORC +void +cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var45; + orc_int8 var46; + orc_int8 var47; + orc_int8 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_int8 var54; + orc_union32 var55; + orc_union32 var56; + orc_int8 var57; + orc_union16 var58; + orc_int8 var59; + orc_int8 var60; + orc_union16 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_int8 var85; + orc_int8 var86; + orc_int8 var87; + orc_union16 var88; + orc_union16 var89; + orc_union32 var90; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + + /* 1: loadpb */ + var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 5: loadpb */ + var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpb */ + var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 12: loadpw */ + var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 17: loadpw */ + var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 24: loadpw */ + var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 28: loadpw */ + var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 32: loadpw */ + var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 41: loadpb */ + var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 44: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var45 = ptr4[i]; + /* 2: subb */ + var57 = var45 - var46; + /* 3: convsbw */ + var58.i = var57; + /* 4: loadupib */ + var59 = + (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] + + 1) >> 1 : ptr5[i >> 1]; + /* 6: subb */ + var60 = var59 - var47; + /* 7: convsbw */ + var61.i = var60; + /* 8: loadupib */ + var62 = + (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] + + 1) >> 1 : ptr6[i >> 1]; + /* 10: subb */ + var63 = var62 - var48; + /* 11: convsbw */ + var64.i = var63; + /* 13: mullw */ + var65.i = (var58.i * var49.i) & 0xffff; + /* 14: shrsw */ + var66.i = var65.i >> 8; + /* 15: addssw */ + var67.i = ORC_CLAMP_SW (var58.i + var66.i); + /* 16: addssw */ + var68.i = ORC_CLAMP_SW (var67.i + var64.i); + /* 18: mullw */ + var69.i = (var64.i * var50.i) & 0xffff; + /* 19: shrsw */ + var70.i = var69.i >> 8; + /* 20: subssw */ + var71.i = ORC_CLAMP_SW (var68.i - var70.i); + /* 21: addssw */ + var72.i = ORC_CLAMP_SW (var71.i + var64.i); + /* 22: addssw */ + var73.i = ORC_CLAMP_SW (var67.i + var61.i); + /* 23: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var61.i); + /* 25: mullw */ + var75.i = (var61.i * var51.i) & 0xffff; + /* 26: shrsw */ + var76.i = var75.i >> 8; + /* 27: addssw */ + var77.i = ORC_CLAMP_SW (var74.i + var76.i); + /* 29: mullw */ + var78.i = (var61.i * var52.i) & 0xffff; + /* 30: shrsw */ + var79.i = var78.i >> 8; + /* 31: subssw */ + var80.i = ORC_CLAMP_SW (var67.i - var79.i); + /* 33: mullw */ + var81.i = (var64.i * var53.i) & 0xffff; + /* 34: shrsw */ + var82.i = var81.i >> 8; + /* 35: subssw */ + var83.i = ORC_CLAMP_SW (var80.i - var82.i); + /* 36: subssw */ + var84.i = ORC_CLAMP_SW (var83.i - var82.i); + /* 37: convssswb */ + var85 = ORC_CLAMP_SB (var72.i); + /* 38: convssswb */ + var86 = ORC_CLAMP_SB (var84.i); + /* 39: convssswb */ + var87 = ORC_CLAMP_SB (var77.i); + /* 40: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var86; + var88.i = _dest.i; + } + /* 42: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var85; + _dest.x2[1] = var54; + var89.i = _dest.i; + } + /* 43: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var88.i; + _dest.x2[1] = var89.i; + var90.i = _dest.i; + } + /* 45: addb */ + var56.x4[0] = var90.x4[0] + var55.x4[0]; + var56.x4[1] = var90.x4[1] + var55.x4[1]; + var56.x4[2] = var90.x4[2] + var55.x4[2]; + var56.x4[3] = var90.x4[3] + var55.x4[3]; + /* 46: storel */ + ptr0[i] = var56; + } + +} + +#else +static void +_backup_cogorc_convert_I420_BGRA (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + orc_int8 var45; + orc_int8 var46; + orc_int8 var47; + orc_int8 var48; + orc_union16 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_int8 var54; + orc_union32 var55; + orc_union32 var56; + orc_int8 var57; + orc_union16 var58; + orc_int8 var59; + orc_int8 var60; + orc_union16 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_union16 var65; + orc_union16 var66; + orc_union16 var67; + orc_union16 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_int8 var85; + orc_int8 var86; + orc_int8 var87; + orc_union16 var88; + orc_union16 var89; + orc_union32 var90; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + + /* 1: loadpb */ + var46 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 5: loadpb */ + var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 9: loadpb */ + var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 12: loadpw */ + var49.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 17: loadpw */ + var50.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 24: loadpw */ + var51.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 28: loadpw */ + var52.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 32: loadpw */ + var53.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 41: loadpb */ + var54 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 44: loadpb */ + var55.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var55.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var45 = ptr4[i]; + /* 2: subb */ + var57 = var45 - var46; + /* 3: convsbw */ + var58.i = var57; + /* 4: loadupib */ + var59 = + (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] + + 1) >> 1 : ptr5[i >> 1]; + /* 6: subb */ + var60 = var59 - var47; + /* 7: convsbw */ + var61.i = var60; + /* 8: loadupib */ + var62 = + (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] + + 1) >> 1 : ptr6[i >> 1]; + /* 10: subb */ + var63 = var62 - var48; + /* 11: convsbw */ + var64.i = var63; + /* 13: mullw */ + var65.i = (var58.i * var49.i) & 0xffff; + /* 14: shrsw */ + var66.i = var65.i >> 8; + /* 15: addssw */ + var67.i = ORC_CLAMP_SW (var58.i + var66.i); + /* 16: addssw */ + var68.i = ORC_CLAMP_SW (var67.i + var64.i); + /* 18: mullw */ + var69.i = (var64.i * var50.i) & 0xffff; + /* 19: shrsw */ + var70.i = var69.i >> 8; + /* 20: subssw */ + var71.i = ORC_CLAMP_SW (var68.i - var70.i); + /* 21: addssw */ + var72.i = ORC_CLAMP_SW (var71.i + var64.i); + /* 22: addssw */ + var73.i = ORC_CLAMP_SW (var67.i + var61.i); + /* 23: addssw */ + var74.i = ORC_CLAMP_SW (var73.i + var61.i); + /* 25: mullw */ + var75.i = (var61.i * var51.i) & 0xffff; + /* 26: shrsw */ + var76.i = var75.i >> 8; + /* 27: addssw */ + var77.i = ORC_CLAMP_SW (var74.i + var76.i); + /* 29: mullw */ + var78.i = (var61.i * var52.i) & 0xffff; + /* 30: shrsw */ + var79.i = var78.i >> 8; + /* 31: subssw */ + var80.i = ORC_CLAMP_SW (var67.i - var79.i); + /* 33: mullw */ + var81.i = (var64.i * var53.i) & 0xffff; + /* 34: shrsw */ + var82.i = var81.i >> 8; + /* 35: subssw */ + var83.i = ORC_CLAMP_SW (var80.i - var82.i); + /* 36: subssw */ + var84.i = ORC_CLAMP_SW (var83.i - var82.i); + /* 37: convssswb */ + var85 = ORC_CLAMP_SB (var72.i); + /* 38: convssswb */ + var86 = ORC_CLAMP_SB (var84.i); + /* 39: convssswb */ + var87 = ORC_CLAMP_SB (var77.i); + /* 40: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var87; + _dest.x2[1] = var86; + var88.i = _dest.i; + } + /* 42: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var85; + _dest.x2[1] = var54; + var89.i = _dest.i; + } + /* 43: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var88.i; + _dest.x2[1] = var89.i; + var90.i = _dest.i; + } + /* 45: addb */ + var56.x4[0] = var90.x4[0] + var55.x4[0]; + var56.x4[1] = var90.x4[1] + var55.x4[1]; + var56.x4[2] = var90.x4[2] + var55.x4[2]; + var56.x4[3] = var90.x4[3] + var55.x4[3]; + /* 46: storel */ + ptr0[i] = var56; + } + +} + +void +cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_I420_BGRA"); + orc_program_set_backup_function (p, _backup_cogorc_convert_I420_BGRA); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 1, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_constant (p, 4, 0x000000ff, "c8"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 2, "t4"); + orc_program_add_temporary (p, 2, "t5"); + orc_program_add_temporary (p, 2, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 1, "t10"); + orc_program_add_temporary (p, 1, "t11"); + orc_program_add_temporary (p, 1, "t12"); + orc_program_add_temporary (p, 4, "t13"); + + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S3, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T4, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T4, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T7, ORC_VAR_T7, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T4, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T5, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T4, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T10, ORC_VAR_T7, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T12, + ORC_VAR_T11, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T10, + ORC_VAR_C8, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T13, ORC_VAR_T1, + ORC_VAR_T2, ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T13, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + + func = p->code_exec; + func (ex); +} +#endif + + +/* cogorc_convert_I420_BGRA_avg */ +#ifdef DISABLE_ORC +void +cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + const orc_uint8 * ORC_RESTRICT s5, int n) +{ + int i; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + const orc_int8 *ORC_RESTRICT ptr8; + orc_int8 var46; + orc_int8 var47; + orc_int8 var48; + orc_int8 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_int8 var55; + orc_union32 var56; + orc_union32 var57; + orc_int8 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_int8 var65; + orc_int8 var66; + orc_int8 var67; + orc_int8 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_union16 var87; + orc_union16 var88; + orc_union16 var89; + orc_int8 var90; + orc_int8 var91; + orc_int8 var92; + orc_union16 var93; + orc_union16 var94; + orc_union32 var95; + + ptr0 = (orc_union32 *) d1; + ptr4 = (orc_int8 *) s1; + ptr5 = (orc_int8 *) s2; + ptr6 = (orc_int8 *) s3; + ptr7 = (orc_int8 *) s4; + ptr8 = (orc_int8 *) s5; + + /* 1: loadpb */ + var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 7: loadpb */ + var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 13: loadpb */ + var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 16: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 21: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 28: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 32: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 36: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 45: loadpb */ + var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 48: loadpb */ + var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var46 = ptr4[i]; + /* 2: subb */ + var58 = var46 - var47; + /* 3: convsbw */ + var59.i = var58; + /* 4: loadupib */ + var60 = + (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] + + 1) >> 1 : ptr5[i >> 1]; + /* 5: loadupib */ + var61 = + (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] + + 1) >> 1 : ptr6[i >> 1]; + /* 6: avgub */ + var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1; + /* 8: subb */ + var63 = var62 - var48; + /* 9: convsbw */ + var64.i = var63; + /* 10: loadupib */ + var65 = + (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] + + 1) >> 1 : ptr7[i >> 1]; + /* 11: loadupib */ + var66 = + (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] + + 1) >> 1 : ptr8[i >> 1]; + /* 12: avgub */ + var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1; + /* 14: subb */ + var68 = var67 - var49; + /* 15: convsbw */ + var69.i = var68; + /* 17: mullw */ + var70.i = (var59.i * var50.i) & 0xffff; + /* 18: shrsw */ + var71.i = var70.i >> 8; + /* 19: addssw */ + var72.i = ORC_CLAMP_SW (var59.i + var71.i); + /* 20: addssw */ + var73.i = ORC_CLAMP_SW (var72.i + var69.i); + /* 22: mullw */ + var74.i = (var69.i * var51.i) & 0xffff; + /* 23: shrsw */ + var75.i = var74.i >> 8; + /* 24: subssw */ + var76.i = ORC_CLAMP_SW (var73.i - var75.i); + /* 25: addssw */ + var77.i = ORC_CLAMP_SW (var76.i + var69.i); + /* 26: addssw */ + var78.i = ORC_CLAMP_SW (var72.i + var64.i); + /* 27: addssw */ + var79.i = ORC_CLAMP_SW (var78.i + var64.i); + /* 29: mullw */ + var80.i = (var64.i * var52.i) & 0xffff; + /* 30: shrsw */ + var81.i = var80.i >> 8; + /* 31: addssw */ + var82.i = ORC_CLAMP_SW (var79.i + var81.i); + /* 33: mullw */ + var83.i = (var64.i * var53.i) & 0xffff; + /* 34: shrsw */ + var84.i = var83.i >> 8; + /* 35: subssw */ + var85.i = ORC_CLAMP_SW (var72.i - var84.i); + /* 37: mullw */ + var86.i = (var69.i * var54.i) & 0xffff; + /* 38: shrsw */ + var87.i = var86.i >> 8; + /* 39: subssw */ + var88.i = ORC_CLAMP_SW (var85.i - var87.i); + /* 40: subssw */ + var89.i = ORC_CLAMP_SW (var88.i - var87.i); + /* 41: convssswb */ + var90 = ORC_CLAMP_SB (var77.i); + /* 42: convssswb */ + var91 = ORC_CLAMP_SB (var89.i); + /* 43: convssswb */ + var92 = ORC_CLAMP_SB (var82.i); + /* 44: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var92; + _dest.x2[1] = var91; + var93.i = _dest.i; + } + /* 46: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var90; + _dest.x2[1] = var55; + var94.i = _dest.i; + } + /* 47: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var93.i; + _dest.x2[1] = var94.i; + var95.i = _dest.i; + } + /* 49: addb */ + var57.x4[0] = var95.x4[0] + var56.x4[0]; + var57.x4[1] = var95.x4[1] + var56.x4[1]; + var57.x4[2] = var95.x4[2] + var56.x4[2]; + var57.x4[3] = var95.x4[3] + var56.x4[3]; + /* 50: storel */ + ptr0[i] = var57; + } + +} + +#else +static void +_backup_cogorc_convert_I420_BGRA_avg (OrcExecutor * ORC_RESTRICT ex) +{ + int i; + int n = ex->n; + orc_union32 *ORC_RESTRICT ptr0; + const orc_int8 *ORC_RESTRICT ptr4; + const orc_int8 *ORC_RESTRICT ptr5; + const orc_int8 *ORC_RESTRICT ptr6; + const orc_int8 *ORC_RESTRICT ptr7; + const orc_int8 *ORC_RESTRICT ptr8; + orc_int8 var46; + orc_int8 var47; + orc_int8 var48; + orc_int8 var49; + orc_union16 var50; + orc_union16 var51; + orc_union16 var52; + orc_union16 var53; + orc_union16 var54; + orc_int8 var55; + orc_union32 var56; + orc_union32 var57; + orc_int8 var58; + orc_union16 var59; + orc_int8 var60; + orc_int8 var61; + orc_int8 var62; + orc_int8 var63; + orc_union16 var64; + orc_int8 var65; + orc_int8 var66; + orc_int8 var67; + orc_int8 var68; + orc_union16 var69; + orc_union16 var70; + orc_union16 var71; + orc_union16 var72; + orc_union16 var73; + orc_union16 var74; + orc_union16 var75; + orc_union16 var76; + orc_union16 var77; + orc_union16 var78; + orc_union16 var79; + orc_union16 var80; + orc_union16 var81; + orc_union16 var82; + orc_union16 var83; + orc_union16 var84; + orc_union16 var85; + orc_union16 var86; + orc_union16 var87; + orc_union16 var88; + orc_union16 var89; + orc_int8 var90; + orc_int8 var91; + orc_int8 var92; + orc_union16 var93; + orc_union16 var94; + orc_union32 var95; + + ptr0 = (orc_union32 *) ex->arrays[0]; + ptr4 = (orc_int8 *) ex->arrays[4]; + ptr5 = (orc_int8 *) ex->arrays[5]; + ptr6 = (orc_int8 *) ex->arrays[6]; + ptr7 = (orc_int8 *) ex->arrays[7]; + ptr8 = (orc_int8 *) ex->arrays[8]; + + /* 1: loadpb */ + var47 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 7: loadpb */ + var48 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 13: loadpb */ + var49 = (int) 0x00000080; /* 128 or 6.32404e-322f */ + /* 16: loadpw */ + var50.i = (int) 0x0000002a; /* 42 or 2.07508e-322f */ + /* 21: loadpw */ + var51.i = (int) 0x00000067; /* 103 or 5.08888e-322f */ + /* 28: loadpw */ + var52.i = (int) 0x00000004; /* 4 or 1.97626e-323f */ + /* 32: loadpw */ + var53.i = (int) 0x00000064; /* 100 or 4.94066e-322f */ + /* 36: loadpw */ + var54.i = (int) 0x00000068; /* 104 or 5.13828e-322f */ + /* 45: loadpb */ + var55 = (int) 0x000000ff; /* 255 or 1.25987e-321f */ + /* 48: loadpb */ + var56.x4[0] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[1] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[2] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + var56.x4[3] = (int) 0x00000080; /* 128 or 6.32404e-322f */ + + for (i = 0; i < n; i++) { + /* 0: loadb */ + var46 = ptr4[i]; + /* 2: subb */ + var58 = var46 - var47; + /* 3: convsbw */ + var59.i = var58; + /* 4: loadupib */ + var60 = + (i & 1) ? ((orc_uint8) ptr5[i >> 1] + (orc_uint8) ptr5[(i >> 1) + 1] + + 1) >> 1 : ptr5[i >> 1]; + /* 5: loadupib */ + var61 = + (i & 1) ? ((orc_uint8) ptr6[i >> 1] + (orc_uint8) ptr6[(i >> 1) + 1] + + 1) >> 1 : ptr6[i >> 1]; + /* 6: avgub */ + var62 = ((orc_uint8) var60 + (orc_uint8) var61 + 1) >> 1; + /* 8: subb */ + var63 = var62 - var48; + /* 9: convsbw */ + var64.i = var63; + /* 10: loadupib */ + var65 = + (i & 1) ? ((orc_uint8) ptr7[i >> 1] + (orc_uint8) ptr7[(i >> 1) + 1] + + 1) >> 1 : ptr7[i >> 1]; + /* 11: loadupib */ + var66 = + (i & 1) ? ((orc_uint8) ptr8[i >> 1] + (orc_uint8) ptr8[(i >> 1) + 1] + + 1) >> 1 : ptr8[i >> 1]; + /* 12: avgub */ + var67 = ((orc_uint8) var65 + (orc_uint8) var66 + 1) >> 1; + /* 14: subb */ + var68 = var67 - var49; + /* 15: convsbw */ + var69.i = var68; + /* 17: mullw */ + var70.i = (var59.i * var50.i) & 0xffff; + /* 18: shrsw */ + var71.i = var70.i >> 8; + /* 19: addssw */ + var72.i = ORC_CLAMP_SW (var59.i + var71.i); + /* 20: addssw */ + var73.i = ORC_CLAMP_SW (var72.i + var69.i); + /* 22: mullw */ + var74.i = (var69.i * var51.i) & 0xffff; + /* 23: shrsw */ + var75.i = var74.i >> 8; + /* 24: subssw */ + var76.i = ORC_CLAMP_SW (var73.i - var75.i); + /* 25: addssw */ + var77.i = ORC_CLAMP_SW (var76.i + var69.i); + /* 26: addssw */ + var78.i = ORC_CLAMP_SW (var72.i + var64.i); + /* 27: addssw */ + var79.i = ORC_CLAMP_SW (var78.i + var64.i); + /* 29: mullw */ + var80.i = (var64.i * var52.i) & 0xffff; + /* 30: shrsw */ + var81.i = var80.i >> 8; + /* 31: addssw */ + var82.i = ORC_CLAMP_SW (var79.i + var81.i); + /* 33: mullw */ + var83.i = (var64.i * var53.i) & 0xffff; + /* 34: shrsw */ + var84.i = var83.i >> 8; + /* 35: subssw */ + var85.i = ORC_CLAMP_SW (var72.i - var84.i); + /* 37: mullw */ + var86.i = (var69.i * var54.i) & 0xffff; + /* 38: shrsw */ + var87.i = var86.i >> 8; + /* 39: subssw */ + var88.i = ORC_CLAMP_SW (var85.i - var87.i); + /* 40: subssw */ + var89.i = ORC_CLAMP_SW (var88.i - var87.i); + /* 41: convssswb */ + var90 = ORC_CLAMP_SB (var77.i); + /* 42: convssswb */ + var91 = ORC_CLAMP_SB (var89.i); + /* 43: convssswb */ + var92 = ORC_CLAMP_SB (var82.i); + /* 44: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var92; + _dest.x2[1] = var91; + var93.i = _dest.i; + } + /* 46: mergebw */ + { + orc_union16 _dest; + _dest.x2[0] = var90; + _dest.x2[1] = var55; + var94.i = _dest.i; + } + /* 47: mergewl */ + { + orc_union32 _dest; + _dest.x2[0] = var93.i; + _dest.x2[1] = var94.i; + var95.i = _dest.i; + } + /* 49: addb */ + var57.x4[0] = var95.x4[0] + var56.x4[0]; + var57.x4[1] = var95.x4[1] + var56.x4[1]; + var57.x4[2] = var95.x4[2] + var56.x4[2]; + var57.x4[3] = var95.x4[3] + var56.x4[3]; + /* 50: storel */ + ptr0[i] = var57; + } + +} + +void +cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1, + const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, + const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, + const orc_uint8 * ORC_RESTRICT s5, int n) +{ + OrcExecutor _ex, *ex = &_ex; + static int p_inited = 0; + static OrcProgram *p = 0; + void (*func) (OrcExecutor *); + + if (!p_inited) { + orc_once_mutex_lock (); + if (!p_inited) { + + p = orc_program_new (); + orc_program_set_name (p, "cogorc_convert_I420_BGRA_avg"); + orc_program_set_backup_function (p, _backup_cogorc_convert_I420_BGRA_avg); + orc_program_add_destination (p, 4, "d1"); + orc_program_add_source (p, 1, "s1"); + orc_program_add_source (p, 1, "s2"); + orc_program_add_source (p, 1, "s3"); + orc_program_add_source (p, 1, "s4"); + orc_program_add_source (p, 1, "s5"); + orc_program_add_constant (p, 1, 0x00000008, "c1"); + orc_program_add_constant (p, 1, 0x00000080, "c2"); + orc_program_add_constant (p, 4, 0x0000002a, "c3"); + orc_program_add_constant (p, 4, 0x00000067, "c4"); + orc_program_add_constant (p, 4, 0x00000004, "c5"); + orc_program_add_constant (p, 4, 0x00000064, "c6"); + orc_program_add_constant (p, 4, 0x00000068, "c7"); + orc_program_add_constant (p, 4, 0x000000ff, "c8"); + orc_program_add_temporary (p, 2, "t1"); + orc_program_add_temporary (p, 2, "t2"); + orc_program_add_temporary (p, 1, "t3"); + orc_program_add_temporary (p, 1, "t4"); + orc_program_add_temporary (p, 2, "t5"); + orc_program_add_temporary (p, 2, "t6"); + orc_program_add_temporary (p, 2, "t7"); + orc_program_add_temporary (p, 2, "t8"); + orc_program_add_temporary (p, 2, "t9"); + orc_program_add_temporary (p, 2, "t10"); + orc_program_add_temporary (p, 1, "t11"); + orc_program_add_temporary (p, 1, "t12"); + orc_program_add_temporary (p, 1, "t13"); + orc_program_add_temporary (p, 4, "t14"); + + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S2, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S3, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T6, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T3, ORC_VAR_S4, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "loadupib", 0, ORC_VAR_T4, ORC_VAR_S5, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "avgub", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_T4, + ORC_VAR_D1); + orc_program_append_2 (p, "subb", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_C2, + ORC_VAR_D1); + orc_program_append_2 (p, "convsbw", 0, ORC_VAR_T7, ORC_VAR_T3, ORC_VAR_D1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T5, ORC_VAR_C3, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T5, ORC_VAR_T7, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C4, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T8, ORC_VAR_T8, ORC_VAR_T7, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T5, ORC_VAR_T6, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T6, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C5, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "addssw", 0, ORC_VAR_T10, ORC_VAR_T10, + ORC_VAR_T1, ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T6, ORC_VAR_C6, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T5, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "mullw", 0, ORC_VAR_T1, ORC_VAR_T7, ORC_VAR_C7, + ORC_VAR_D1); + orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "subssw", 0, ORC_VAR_T9, ORC_VAR_T9, ORC_VAR_T1, + ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T11, ORC_VAR_T8, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T12, ORC_VAR_T9, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T13, ORC_VAR_T10, + ORC_VAR_D1, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T1, ORC_VAR_T13, + ORC_VAR_T12, ORC_VAR_D1); + orc_program_append_2 (p, "mergebw", 0, ORC_VAR_T2, ORC_VAR_T11, + ORC_VAR_C8, ORC_VAR_D1); + orc_program_append_2 (p, "mergewl", 0, ORC_VAR_T14, ORC_VAR_T1, + ORC_VAR_T2, ORC_VAR_D1); + orc_program_append_2 (p, "addb", 2, ORC_VAR_D1, ORC_VAR_T14, ORC_VAR_C2, + ORC_VAR_D1); + + orc_program_compile (p); + } + p_inited = TRUE; + orc_once_mutex_unlock (); + } + ex->program = p; + + ex->n = n; + ex->arrays[ORC_VAR_D1] = d1; + ex->arrays[ORC_VAR_S1] = (void *) s1; + ex->arrays[ORC_VAR_S2] = (void *) s2; + ex->arrays[ORC_VAR_S3] = (void *) s3; + ex->arrays[ORC_VAR_S4] = (void *) s4; + ex->arrays[ORC_VAR_S5] = (void *) s5; + + func = p->code_exec; + func (ex); +} +#endif diff --git a/ext/cog/gstcogorc-dist.h b/ext/cog/gstcogorc-dist.h new file mode 100644 index 0000000..e7bac24 --- /dev/null +++ b/ext/cog/gstcogorc-dist.h @@ -0,0 +1,150 @@ + +/* autogenerated from gstcogorc.orc */ + +#ifndef _GSTCOGORC_H_ +#define _GSTCOGORC_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + + + +#ifndef _ORC_INTEGER_TYPEDEFS_ +#define _ORC_INTEGER_TYPEDEFS_ +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#include +typedef int8_t orc_int8; +typedef int16_t orc_int16; +typedef int32_t orc_int32; +typedef int64_t orc_int64; +typedef uint8_t orc_uint8; +typedef uint16_t orc_uint16; +typedef uint32_t orc_uint32; +typedef uint64_t orc_uint64; +#define ORC_UINT64_C(x) UINT64_C(x) +#elif defined(_MSC_VER) +typedef signed __int8 orc_int8; +typedef signed __int16 orc_int16; +typedef signed __int32 orc_int32; +typedef signed __int64 orc_int64; +typedef unsigned __int8 orc_uint8; +typedef unsigned __int16 orc_uint16; +typedef unsigned __int32 orc_uint32; +typedef unsigned __int64 orc_uint64; +#define ORC_UINT64_C(x) (x##Ui64) +#define inline __inline +#else +#include +typedef signed char orc_int8; +typedef short orc_int16; +typedef int orc_int32; +typedef unsigned char orc_uint8; +typedef unsigned short orc_uint16; +typedef unsigned int orc_uint32; +#if INT_MAX == LONG_MAX +typedef long long orc_int64; +typedef unsigned long long orc_uint64; +#define ORC_UINT64_C(x) (x##ULL) +#else +typedef long orc_int64; +typedef unsigned long orc_uint64; +#define ORC_UINT64_C(x) (x##UL) +#endif +#endif +typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; +typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; +typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; +#endif +#ifndef ORC_RESTRICT +#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +#define ORC_RESTRICT restrict +#elif defined(__GNUC__) && __GNUC__ >= 4 +#define ORC_RESTRICT __restrict__ +#else +#define ORC_RESTRICT +#endif +#endif +void cogorc_memcpy_2d (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_downsample_horiz_cosite_1tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, int n); +void cogorc_downsample_horiz_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, int n); +void cogorc_downsample_420_jpeg (orc_uint8 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, int n); +void cogorc_downsample_vert_halfsite_2tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n); +void cogorc_downsample_vert_cosite_3tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n); +void cogorc_downsample_vert_halfsite_4tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_upsample_horiz_cosite_1tap (guint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int n); +void cogorc_upsample_horiz_cosite (guint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n); +void cogorc_upsample_vert_avgub (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int n); +void orc_unpack_yuyv_y (orc_uint8 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, int n); +void orc_unpack_yuyv_u (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_unpack_yuyv_v (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_pack_yuyv (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n); +void orc_unpack_uyvy_y (orc_uint8 * ORC_RESTRICT d1, const orc_uint16 * ORC_RESTRICT s1, int n); +void orc_unpack_uyvy_u (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_unpack_uyvy_v (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void orc_pack_uyvy (orc_uint32 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n); +void orc_addc_convert_u8_s16 (orc_uint8 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1, int n); +void orc_subc_convert_s16_u8 (gint16 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int n); +void orc_splat_u8_ns (orc_uint8 * ORC_RESTRICT d1, int p1, int n); +void orc_splat_s16_ns (gint16 * ORC_RESTRICT d1, int p1, int n); +void orc_matrix2_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int p2, int p3, int n); +void orc_matrix2_11_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int p2, int n); +void orc_matrix2_12_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int p1, int p2, int n); +void orc_matrix3_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int n); +void orc_matrix3_100_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int n); +void orc_matrix3_100_offset_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n); +void orc_matrix3_000_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, int p1, int p2, int p3, int p4, int p5, int n); +void orc_pack_123x (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int p1, int n); +void orc_pack_x123 (guint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int p1, int n); +void cogorc_combine2_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, int p1, int p2, int n); +void cogorc_combine4_u8 (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int p1, int p2, int p3, int p4, int n); +void cogorc_unpack_axyz_0 (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_1 (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_2 (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_unpack_axyz_3 (orc_uint8 * ORC_RESTRICT d1, const orc_uint32 * ORC_RESTRICT s1, int n); +void cogorc_resample_horiz_1tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n); +void cogorc_resample_horiz_2tap (orc_uint8 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, int p1, int p2, int n); +void cogorc_convert_I420_UYVY (orc_uint32 * ORC_RESTRICT d1, orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_I420_YUY2 (orc_uint32 * ORC_RESTRICT d1, orc_uint32 * ORC_RESTRICT d2, const orc_uint16 * ORC_RESTRICT s1, const orc_uint16 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_I420_AYUV (orc_uint32 * ORC_RESTRICT d1, orc_uint32 * ORC_RESTRICT d2, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, int n); +void cogorc_convert_YUY2_I420 (orc_uint16 * ORC_RESTRICT d1, orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n); +void cogorc_convert_UYVY_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_420_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, orc_uint8 * ORC_RESTRICT d2, int d2_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_420_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint16 * ORC_RESTRICT d2, int d2_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_422_444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_444_422 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_planar_chroma_444_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint16 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_planar_chroma_422_420 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_convert_YUY2_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_UYVY_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_YUY2_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_UYVY_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_YUY2_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_UYVY_Y444 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint16 * ORC_RESTRICT d3, int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_UYVY_I420 (orc_uint16 * ORC_RESTRICT d1, orc_uint16 * ORC_RESTRICT d2, orc_uint8 * ORC_RESTRICT d3, orc_uint8 * ORC_RESTRICT d4, const orc_uint32 * ORC_RESTRICT s1, const orc_uint32 * ORC_RESTRICT s2, int n); +void cogorc_convert_AYUV_I420 (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint16 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, int d3_stride, orc_uint8 * ORC_RESTRICT d4, int d4_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, const orc_uint64 * ORC_RESTRICT s2, int s2_stride, int n, int m); +void cogorc_convert_AYUV_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_Y42B (orc_uint16 * ORC_RESTRICT d1, int d1_stride, orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, int d3_stride, const orc_uint64 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_Y444 (orc_uint8 * ORC_RESTRICT d1, int d1_stride, orc_uint8 * ORC_RESTRICT d2, int d2_stride, orc_uint8 * ORC_RESTRICT d3, int d3_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_Y42B_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y42B_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y42B_AYUV (orc_uint64 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_YUY2 (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint16 * ORC_RESTRICT s2, int s2_stride, const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_UYVY (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint16 * ORC_RESTRICT s1, int s1_stride, const orc_uint16 * ORC_RESTRICT s2, int s2_stride, const orc_uint16 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_Y444_AYUV (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint8 * ORC_RESTRICT s1, int s1_stride, const orc_uint8 * ORC_RESTRICT s2, int s2_stride, const orc_uint8 * ORC_RESTRICT s3, int s3_stride, int n, int m); +void cogorc_convert_AYUV_ARGB (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_BGRA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_ABGR (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_AYUV_RGBA (orc_uint32 * ORC_RESTRICT d1, int d1_stride, const orc_uint32 * ORC_RESTRICT s1, int s1_stride, int n, int m); +void cogorc_convert_I420_BGRA (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, int n); +void cogorc_convert_I420_BGRA_avg (orc_uint32 * ORC_RESTRICT d1, const orc_uint8 * ORC_RESTRICT s1, const orc_uint8 * ORC_RESTRICT s2, const orc_uint8 * ORC_RESTRICT s3, const orc_uint8 * ORC_RESTRICT s4, const orc_uint8 * ORC_RESTRICT s5, int n); + +#ifdef __cplusplus +} +#endif + +#endif + diff --git a/ext/cog/gstcogorc.orc b/ext/cog/gstcogorc.orc new file mode 100644 index 0000000..3cd7f77 --- /dev/null +++ b/ext/cog/gstcogorc.orc @@ -0,0 +1,1426 @@ + +.function cogorc_memcpy_2d +.flags 2d +.dest 1 d1 +.source 1 s1 + +copyb d1, s1 + + +.function cogorc_downsample_horiz_cosite_1tap +.dest 1 d1 +.source 2 s1 + +select0wb d1, s1 + + +.function cogorc_downsample_horiz_cosite_3tap +.dest 1 d1 +.source 2 s1 +.source 2 s2 +.temp 1 t1 +.temp 1 t2 +.temp 1 t3 +.temp 2 t4 +.temp 2 t5 +.temp 2 t6 + +copyw t4, s1 +select0wb t1, t4 +select1wb t2, t4 +select0wb t3, s2 +convubw t4, t1 +convubw t5, t2 +convubw t6, t3 +mullw t5, t5, 2 +addw t4, t4, t6 +addw t4, t4, t5 +addw t4, t4, 2 +shrsw t4, t4, 2 +convsuswb d1, t4 + + +.function cogorc_downsample_420_jpeg +.dest 1 d1 +.source 2 s1 +.source 2 s2 +.temp 2 t1 +.temp 1 t2 +.temp 1 t3 +.temp 1 t4 +.temp 1 t5 + +copyw t1, s1 +select0wb t2, t1 +select1wb t3, t1 +avgub t2, t2, t3 +copyw t1, s2 +select0wb t4, t1 +select1wb t5, t1 +avgub t4, t4, t5 +avgub d1, t2, t4 + + +.function cogorc_downsample_vert_halfsite_2tap +.dest 1 d1 +.source 1 s1 +.source 1 s2 + +avgub d1, s1, s2 + + +.function cogorc_downsample_vert_cosite_3tap +.dest 1 d1 +.source 1 s1 +.source 1 s2 +.source 1 s3 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 + +convubw t1, s1 +convubw t2, s2 +convubw t3, s3 +mullw t2, t2, 2 +addw t1, t1, t3 +addw t1, t1, t2 +addw t1, t1, 2 +shrsw t1, t1, 2 +convsuswb d1, t1 + + + +.function cogorc_downsample_vert_halfsite_4tap +.dest 1 d1 +.source 1 s1 +.source 1 s2 +.source 1 s3 +.source 1 s4 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 +.temp 2 t4 + +convubw t1, s1 +convubw t2, s2 +convubw t3, s3 +convubw t4, s4 +addw t2, t2, t3 +mullw t2, t2, 26 +addw t1, t1, t4 +mullw t1, t1, 6 +addw t2, t2, t1 +addw t2, t2, 32 +shrsw t2, t2, 6 +convsuswb d1, t2 + + +.function cogorc_upsample_horiz_cosite_1tap +.dest 2 d1 guint8 +.source 1 s1 +.temp 1 t1 + +copyb t1, s1 +mergebw d1, t1, t1 + + +.function cogorc_upsample_horiz_cosite +.dest 2 d1 guint8 +.source 1 s1 +.source 1 s2 +.temp 1 t1 +.temp 1 t2 + +copyb t1, s1 +avgub t2, t1, s2 +mergebw d1, t1, t2 + + +.function cogorc_upsample_vert_avgub +.dest 1 d1 +.source 1 s1 +.source 1 s2 + +avgub d1, s1, s2 + + + + +.function orc_unpack_yuyv_y +.dest 1 d1 +.source 2 s1 + +select0wb d1, s1 + + +.function orc_unpack_yuyv_u +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select0lw t1, s1 +select1wb d1, t1 + + +.function orc_unpack_yuyv_v +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select1lw t1, s1 +select1wb d1, t1 + + +.function orc_pack_yuyv +.dest 4 d1 +.source 2 s1 guint8 +.source 1 s2 +.source 1 s3 +.temp 1 t1 +.temp 1 t2 +.temp 2 t3 +.temp 2 t4 +.temp 2 t5 + +copyw t5, s1 +select0wb t1, t5 +select1wb t2, t5 +mergebw t3, t1, s2 +mergebw t4, t2, s3 +mergewl d1, t3, t4 + + +.function orc_unpack_uyvy_y +.dest 1 d1 +.source 2 s1 + +select1wb d1, s1 + + +.function orc_unpack_uyvy_u +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select0lw t1, s1 +select0wb d1, t1 + + +.function orc_unpack_uyvy_v +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select1lw t1, s1 +select0wb d1, t1 + + +.function orc_pack_uyvy +.dest 4 d1 +.source 2 s1 guint8 +.source 1 s2 +.source 1 s3 +.temp 1 t1 +.temp 1 t2 +.temp 2 t3 +.temp 2 t4 +.temp 2 t5 + +copyw t5, s1 +select0wb t1, t5 +select1wb t2, t5 +mergebw t3, s2, t1 +mergebw t4, s3, t2 +mergewl d1, t3, t4 + + +.function orc_addc_convert_u8_s16 +.dest 1 d1 +.source 2 s1 gint16 +.temp 2 t1 + +addw t1, s1, 128 +convsuswb d1, t1 + + +.function orc_subc_convert_s16_u8 +.dest 2 d1 gint16 +.source 1 s1 +.temp 2 t1 + +convubw t1, s1 +subw d1, t1, 128 + + +.function orc_splat_u8_ns +.dest 1 d1 +.param 1 p1 + +copyb d1, p1 + + +.function orc_splat_s16_ns +.dest 2 d1 gint16 +.param 2 p1 + +copyw d1, p1 + + +.function orc_matrix2_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.temp 2 t1 +.temp 2 t2 + +convubw t1, s1 +mullw t1, t1, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +addw t1, t1, p3 +shrsw t1, t1, 6 +convsuswb d1, t1 + + +.function orc_matrix2_11_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.param 2 p1 +.param 2 p2 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 +.temp 2 t4 + +convubw t1, s1 +subw t1, t1, 16 +mullw t3, t1, p1 +convubw t2, s2 +subw t2, t2, 128 +mullw t4, t2, p2 +addw t3, t3, t4 +addw t3, t3, 128 +shrsw t3, t3, 8 +addw t3, t3, t1 +addw t3, t3, t2 +convsuswb d1, t3 + + +.function orc_matrix2_12_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.param 2 p1 +.param 2 p2 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 +.temp 2 t4 + +convubw t1, s1 +subw t1, t1, 16 +mullw t3, t1, p1 +convubw t2, s2 +subw t2, t2, 128 +mullw t4, t2, p2 +addw t3, t3, t4 +addw t3, t3, 128 +shrsw t3, t3, 8 +addw t3, t3, t1 +addw t3, t3, t2 +addw t3, t3, t2 +convsuswb d1, t3 + + +.function orc_matrix3_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.source 1 s3 guint8 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.temp 2 t1 +.temp 2 t2 + +convubw t1, s1 +mullw t1, t1, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +convubw t2, s3 +mullw t2, t2, p3 +addw t1, t1, t2 +addw t1, t1, p4 +shrsw t1, t1, 6 +convsuswb d1, t1 + + +.function orc_matrix3_100_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.source 1 s3 guint8 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 +#.temp 2 t4 + +convubw t1, s1 +subw t1, t1, 16 +mullw t3, t1, p1 +convubw t2, s2 +subw t2, t2, 128 +mullw t2, t2, p2 +addw t3, t3, t2 +convubw t2, s3 +subw t2, t2, 128 +mullw t2, t2, p3 +addw t3, t3, t2 +addw t3, t3, 128 +shrsw t3, t3, 8 +addw t3, t3, t1 +convsuswb d1, t3 + + +.function orc_matrix3_100_offset_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.source 1 s3 guint8 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 +#.param 2 p6 +.temp 2 t1 +.temp 2 t2 +.temp 2 t3 +#.temp 2 t3 +#.temp 2 t4 + +convubw t3, s1 +mullw t1, t3, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +convubw t2, s3 +mullw t2, t2, p3 +addw t1, t1, t2 +addw t1, t1, p4 +shrsw t1, t1, p5 +#addw t1, t1, p6 +addw t1, t1, t3 +convsuswb d1, t1 + + + +.function orc_matrix3_000_u8 +.dest 1 d1 guint8 +.source 1 s1 guint8 +.source 1 s2 guint8 +.source 1 s3 guint8 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.param 2 p5 +#.param 2 p6 +.temp 2 t1 +.temp 2 t2 +#.temp 2 t3 +#.temp 2 t4 + +convubw t1, s1 +mullw t1, t1, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +convubw t2, s3 +mullw t2, t2, p3 +addw t1, t1, t2 +addw t1, t1, p4 +shrsw t1, t1, p5 +#addw t1, t1, p6 +convwb d1, t1 + + + +.function orc_pack_123x +.dest 4 d1 guint32 +.source 1 s1 +.source 1 s2 +.source 1 s3 +.param 1 p1 +.temp 2 t1 +.temp 2 t2 + +mergebw t1, s1, s2 +mergebw t2, s3, p1 +mergewl d1, t1, t2 + + +.function orc_pack_x123 +.dest 4 d1 guint32 +.source 1 s1 +.source 1 s2 +.source 1 s3 +.param 1 p1 +.temp 2 t1 +.temp 2 t2 + +mergebw t1, p1, s1 +mergebw t2, s2, s3 +mergewl d1, t1, t2 + + +.function cogorc_combine2_u8 +.dest 1 d1 +.source 1 s1 +.source 1 s2 +.param 2 p1 +.param 2 p2 +.temp 2 t1 +.temp 2 t2 + +convubw t1, s1 +mullw t1, t1, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +shruw t1, t1, 8 +convsuswb d1, t1 + + +.function cogorc_combine4_u8 +.dest 1 d1 +.source 1 s1 +.source 1 s2 +.source 1 s3 +.source 1 s4 +.param 2 p1 +.param 2 p2 +.param 2 p3 +.param 2 p4 +.temp 2 t1 +.temp 2 t2 + +convubw t1, s1 +mullw t1, t1, p1 +convubw t2, s2 +mullw t2, t2, p2 +addw t1, t1, t2 +convubw t2, s3 +mullw t2, t2, p3 +addw t1, t1, t2 +convubw t2, s4 +mullw t2, t2, p4 +addw t1, t1, t2 +addw t1, t1, 32 +shrsw t1, t1, 6 +convsuswb d1, t1 + + +.function cogorc_unpack_axyz_0 +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select0lw t1, s1 +select0wb d1, t1 + + +.function cogorc_unpack_axyz_1 +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select0lw t1, s1 +select1wb d1, t1 + + +.function cogorc_unpack_axyz_2 +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select1lw t1, s1 +select0wb d1, t1 + + +.function cogorc_unpack_axyz_3 +.dest 1 d1 +.source 4 s1 +.temp 2 t1 + +select1lw t1, s1 +select1wb d1, t1 + + +.function cogorc_resample_horiz_1tap +.dest 1 d1 +.source 1 s1 +.param 4 p1 +.param 4 p2 + +ldresnearb d1, s1, p1, p2 + + +.function cogorc_resample_horiz_2tap +.dest 1 d1 +.source 1 s1 +.param 4 p1 +.param 4 p2 + +ldreslinb d1, s1, p1, p2 + + +.function cogorc_convert_I420_UYVY +.dest 4 d1 +.dest 4 d2 +.source 2 y1 +.source 2 y2 +.source 1 u +.source 1 v +.temp 2 uv + +mergebw uv, u, v +x2 mergebw d1, uv, y1 +x2 mergebw d2, uv, y2 + + +.function cogorc_convert_I420_YUY2 +.dest 4 d1 +.dest 4 d2 +.source 2 y1 +.source 2 y2 +.source 1 u +.source 1 v +.temp 2 uv + +mergebw uv, u, v +x2 mergebw d1, y1, uv +x2 mergebw d2, y2, uv + + + +.function cogorc_convert_I420_AYUV +.dest 4 d1 +.dest 4 d2 +.source 1 y1 +.source 1 y2 +.source 1 u +.source 1 v +.const 1 c255 255 +.temp 2 uv +.temp 2 ay +.temp 1 tu +.temp 1 tv + +loadupdb tu, u +loadupdb tv, v +mergebw uv, tu, tv +mergebw ay, c255, y1 +mergewl d1, ay, uv +mergebw ay, c255, y2 +mergewl d2, ay, uv + + +.function cogorc_convert_YUY2_I420 +.dest 2 y1 +.dest 2 y2 +.dest 1 u +.dest 1 v +.source 4 yuv1 +.source 4 yuv2 +.temp 2 t1 +.temp 2 t2 +.temp 2 ty + +x2 splitwb t1, ty, yuv1 +storew y1, ty +x2 splitwb t2, ty, yuv2 +storew y2, ty +x2 avgub t1, t1, t2 +splitwb v, u, t1 + + +.function cogorc_convert_UYVY_YUY2 +.flags 2d +.dest 4 yuy2 +.source 4 uyvy + +x2 swapw yuy2, uyvy + + +.function cogorc_planar_chroma_420_422 +.flags 2d +.dest 1 d1 +.dest 1 d2 +.source 1 s + +copyb d1, s +copyb d2, s + + +.function cogorc_planar_chroma_420_444 +.flags 2d +.dest 2 d1 +.dest 2 d2 +.source 1 s +.temp 2 t + +splatbw t, s +storew d1, t +storew d2, t + + +.function cogorc_planar_chroma_422_444 +.flags 2d +.dest 2 d1 +.source 1 s +.temp 2 t + +splatbw t, s +storew d1, t + + +.function cogorc_planar_chroma_444_422 +.flags 2d +.dest 1 d +.source 2 s +.temp 1 t1 +.temp 1 t2 + +splitwb t1, t2, s +avgub d, t1, t2 + + +.function cogorc_planar_chroma_444_420 +.flags 2d +.dest 1 d +.source 2 s1 +.source 2 s2 +.temp 2 t +.temp 1 t1 +.temp 1 t2 + +x2 avgub t, s1, s2 +splitwb t1, t2, t +avgub d, t1, t2 + + +.function cogorc_planar_chroma_422_420 +.flags 2d +.dest 1 d +.source 1 s1 +.source 1 s2 + +avgub d, s1, s2 + + +.function cogorc_convert_YUY2_AYUV +.flags 2d +.dest 8 ayuv +.source 4 yuy2 +.const 2 c255 0xff +.temp 2 yy +.temp 2 uv +.temp 4 ayay +.temp 4 uvuv + +x2 splitwb uv, yy, yuy2 +x2 mergebw ayay, c255, yy +mergewl uvuv, uv, uv +x2 mergewl ayuv, ayay, uvuv + + +.function cogorc_convert_UYVY_AYUV +.flags 2d +.dest 8 ayuv +.source 4 uyvy +.const 2 c255 0xff +.temp 2 yy +.temp 2 uv +.temp 4 ayay +.temp 4 uvuv + +x2 splitwb yy, uv, uyvy +x2 mergebw ayay, c255, yy +mergewl uvuv, uv, uv +x2 mergewl ayuv, ayay, uvuv + + +.function cogorc_convert_YUY2_Y42B +.flags 2d +.dest 2 y +.dest 1 u +.dest 1 v +.source 4 yuy2 +.temp 2 uv + +x2 splitwb uv, y, yuy2 +splitwb v, u, uv + + +.function cogorc_convert_UYVY_Y42B +.flags 2d +.dest 2 y +.dest 1 u +.dest 1 v +.source 4 uyvy +.temp 2 uv + +x2 splitwb y, uv, uyvy +splitwb v, u, uv + + +.function cogorc_convert_YUY2_Y444 +.flags 2d +.dest 2 y +.dest 2 uu +.dest 2 vv +.source 4 yuy2 +.temp 2 uv +.temp 1 u +.temp 1 v + +x2 splitwb uv, y, yuy2 +splitwb v, u, uv +splatbw uu, u +splatbw vv, v + + +.function cogorc_convert_UYVY_Y444 +.flags 2d +.dest 2 y +.dest 2 uu +.dest 2 vv +.source 4 uyvy +.temp 2 uv +.temp 1 u +.temp 1 v + +x2 splitwb y, uv, uyvy +splitwb v, u, uv +splatbw uu, u +splatbw vv, v + + +.function cogorc_convert_UYVY_I420 +.dest 2 y1 +.dest 2 y2 +.dest 1 u +.dest 1 v +.source 4 yuv1 +.source 4 yuv2 +.temp 2 t1 +.temp 2 t2 +.temp 2 ty + +x2 splitwb ty, t1, yuv1 +storew y1, ty +x2 splitwb ty, t2, yuv2 +storew y2, ty +x2 avgub t1, t1, t2 +splitwb v, u, t1 + + + +.function cogorc_convert_AYUV_I420 +.flags 2d +.dest 2 y1 +.dest 2 y2 +.dest 1 u +.dest 1 v +.source 8 ayuv1 +.source 8 ayuv2 +.temp 4 ay +.temp 4 uv1 +.temp 4 uv2 +.temp 4 uv +.temp 2 uu +.temp 2 vv +.temp 1 t1 +.temp 1 t2 + +x2 splitlw uv1, ay, ayuv1 +x2 select1wb y1, ay +x2 splitlw uv2, ay, ayuv2 +x2 select1wb y2, ay +x4 avgub uv, uv1, uv2 +x2 splitwb vv, uu, uv +splitwb t1, t2, uu +avgub u, t1, t2 +splitwb t1, t2, vv +avgub v, t1, t2 + + + +.function cogorc_convert_AYUV_YUY2 +.flags 2d +.dest 4 yuy2 +.source 8 ayuv +.temp 2 yy +.temp 2 uv1 +.temp 2 uv2 +.temp 4 ayay +.temp 4 uvuv + +x2 splitlw uvuv, ayay, ayuv +splitlw uv1, uv2, uvuv +x2 avgub uv1, uv1, uv2 +x2 select1wb yy, ayay +x2 mergebw yuy2, yy, uv1 + + +.function cogorc_convert_AYUV_UYVY +.flags 2d +.dest 4 yuy2 +.source 8 ayuv +.temp 2 yy +.temp 2 uv1 +.temp 2 uv2 +.temp 4 ayay +.temp 4 uvuv + +x2 splitlw uvuv, ayay, ayuv +splitlw uv1, uv2, uvuv +x2 avgub uv1, uv1, uv2 +x2 select1wb yy, ayay +x2 mergebw yuy2, uv1, yy + + + +.function cogorc_convert_AYUV_Y42B +.flags 2d +.dest 2 y +.dest 1 u +.dest 1 v +.source 8 ayuv +.temp 4 ayay +.temp 4 uvuv +.temp 2 uv1 +.temp 2 uv2 + +x2 splitlw uvuv, ayay, ayuv +splitlw uv1, uv2, uvuv +x2 avgub uv1, uv1, uv2 +splitwb v, u, uv1 +x2 select1wb y, ayay + + +.function cogorc_convert_AYUV_Y444 +.flags 2d +.dest 1 y +.dest 1 u +.dest 1 v +.source 4 ayuv +.temp 2 ay +.temp 2 uv + +splitlw uv, ay, ayuv +splitwb v, u, uv +select1wb y, ay + + +.function cogorc_convert_Y42B_YUY2 +.flags 2d +.dest 4 yuy2 +.source 2 y +.source 1 u +.source 1 v +.temp 2 uv + +mergebw uv, u, v +x2 mergebw yuy2, y, uv + + +.function cogorc_convert_Y42B_UYVY +.flags 2d +.dest 4 uyvy +.source 2 y +.source 1 u +.source 1 v +.temp 2 uv + +mergebw uv, u, v +x2 mergebw uyvy, uv, y + + +.function cogorc_convert_Y42B_AYUV +.flags 2d +.dest 8 ayuv +.source 2 yy +.source 1 u +.source 1 v +.const 1 c255 255 +.temp 2 uv +.temp 2 ay +.temp 4 uvuv +.temp 4 ayay + +mergebw uv, u, v +x2 mergebw ayay, c255, yy +mergewl uvuv, uv, uv +x2 mergewl ayuv, ayay, uvuv + + +.function cogorc_convert_Y444_YUY2 +.flags 2d +.dest 4 yuy2 +.source 2 y +.source 2 u +.source 2 v +.temp 2 uv +.temp 4 uvuv +.temp 2 uv1 +.temp 2 uv2 + +x2 mergebw uvuv, u, v +splitlw uv1, uv2, uvuv +x2 avgub uv, uv1, uv2 +x2 mergebw yuy2, y, uv + + +.function cogorc_convert_Y444_UYVY +.flags 2d +.dest 4 uyvy +.source 2 y +.source 2 u +.source 2 v +.temp 2 uv +.temp 4 uvuv +.temp 2 uv1 +.temp 2 uv2 + +x2 mergebw uvuv, u, v +splitlw uv1, uv2, uvuv +x2 avgub uv, uv1, uv2 +x2 mergebw uyvy, uv, y + + +.function cogorc_convert_Y444_AYUV +.flags 2d +.dest 4 ayuv +.source 1 yy +.source 1 u +.source 1 v +.const 1 c255 255 +.temp 2 uv +.temp 2 ay + +mergebw uv, u, v +mergebw ay, c255, yy +mergewl ayuv, ay, uv + + + +.function cogorc_convert_AYUV_ARGB +.flags 2d +.dest 4 argb +.source 4 ayuv +.temp 2 t1 +.temp 2 t2 +.temp 1 a +.temp 1 y +.temp 1 u +.temp 1 v +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 + +x4 subb x, ayuv, 128 +splitlw t1, t2, x +splitwb y, a, t2 +splitwb v, u, t1 +convsbw wy, y +convsbw wu, u +convsbw wv, v + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, a, r +mergebw t2, g, b +mergewl x, t1, t2 +x4 addb argb, x, 128 + + + +.function cogorc_convert_AYUV_BGRA +.flags 2d +.dest 4 argb +.source 4 ayuv +.temp 2 t1 +.temp 2 t2 +.temp 1 a +.temp 1 y +.temp 1 u +.temp 1 v +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 + +x4 subb x, ayuv, 128 +splitlw t1, t2, x +splitwb y, a, t2 +splitwb v, u, t1 +convsbw wy, y +convsbw wu, u +convsbw wv, v + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, b, g +mergebw t2, r, a +mergewl x, t1, t2 +x4 addb argb, x, 128 + + + + +.function cogorc_convert_AYUV_ABGR +.flags 2d +.dest 4 argb +.source 4 ayuv +.temp 2 t1 +.temp 2 t2 +.temp 1 a +.temp 1 y +.temp 1 u +.temp 1 v +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 + +x4 subb x, ayuv, 128 +splitlw t1, t2, x +splitwb y, a, t2 +splitwb v, u, t1 +convsbw wy, y +convsbw wu, u +convsbw wv, v + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, a, b +mergebw t2, g, r +mergewl x, t1, t2 +x4 addb argb, x, 128 + + + +.function cogorc_convert_AYUV_RGBA +.flags 2d +.dest 4 argb +.source 4 ayuv +.temp 2 t1 +.temp 2 t2 +.temp 1 a +.temp 1 y +.temp 1 u +.temp 1 v +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 + +x4 subb x, ayuv, 128 +splitlw t1, t2, x +splitwb y, a, t2 +splitwb v, u, t1 +convsbw wy, y +convsbw wu, u +convsbw wv, v + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, r, g +mergebw t2, b, a +mergewl x, t1, t2 +x4 addb argb, x, 128 + + + +.function cogorc_convert_I420_BGRA +.dest 4 argb +.source 1 y +.source 1 u +.source 1 v +.temp 2 t1 +.temp 2 t2 +.temp 1 t3 +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 +.const 1 c128 128 + +subb t3, y, c128 +convsbw wy, t3 +loadupib t3, u +subb t3, t3, c128 +convsbw wu, t3 +loadupib t3, v +subb t3, t3, c128 +convsbw wv, t3 + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, b, g +mergebw t2, r, 255 +mergewl x, t1, t2 +x4 addb argb, x, c128 + + + +.function cogorc_convert_I420_BGRA_avg +.dest 4 argb +.source 1 y +.source 1 u1 +.source 1 u2 +.source 1 v1 +.source 1 v2 +.temp 2 t1 +.temp 2 t2 +.temp 1 t3 +.temp 1 t4 +.temp 2 wy +.temp 2 wu +.temp 2 wv +.temp 2 wr +.temp 2 wg +.temp 2 wb +.temp 1 r +.temp 1 g +.temp 1 b +.temp 4 x +.const 1 c8 8 +.const 1 c128 128 + +subb t3, y, c128 +convsbw wy, t3 +loadupib t3, u1 +loadupib t4, u2 +avgub t3, t3, t4 +subb t3, t3, c128 +convsbw wu, t3 +loadupib t3, v1 +loadupib t4, v2 +avgub t3, t3, t4 +subb t3, t3, c128 +convsbw wv, t3 + +mullw t1, wy, 42 +shrsw t1, t1, c8 +addssw wy, wy, t1 + +addssw wr, wy, wv +mullw t1, wv, 103 +shrsw t1, t1, c8 +subssw wr, wr, t1 +addssw wr, wr, wv + +addssw wb, wy, wu +addssw wb, wb, wu +mullw t1, wu, 4 +shrsw t1, t1, c8 +addssw wb, wb, t1 + +mullw t1, wu, 100 +shrsw t1, t1, c8 +subssw wg, wy, t1 +mullw t1, wv, 104 +shrsw t1, t1, c8 +subssw wg, wg, t1 +subssw wg, wg, t1 + +convssswb r, wr +convssswb g, wg +convssswb b, wb + +mergebw t1, b, g +mergebw t2, r, 255 +mergewl x, t1, t2 +x4 addb argb, x, c128 + + + diff --git a/ext/cog/gstcogscale.c b/ext/cog/gstcogscale.c new file mode 100644 index 0000000..570f367 --- /dev/null +++ b/ext/cog/gstcogscale.c @@ -0,0 +1,659 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * Copyright (C) 2005 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-videoscale + * @see_also: videorate, ffmpegcolorspace + * + * + * + * This element resizes video frames. By default the element will try to + * negotiate to the same size on the source and sinkpad so that no scaling + * is needed. It is therefore safe to insert this element in a pipeline to + * get more robust behaviour without any cost if no scaling is needed. + * + * + * This element supports a wide range of color spaces including various YUV and + * RGB formats and is therefore generally able to operate anywhere in a + * pipeline. + * + * Example pipelines + * + * + * gst-launch -v filesrc location=videotestsrc.ogg ! oggdemux ! theoradec ! ffmpegcolorspace ! videoscale ! ximagesink + * + * Decode an Ogg/Theora and display the video using ximagesink. Since + * ximagesink cannot perform scaling, the video scaling will be performed by + * videoscale when you resize the video window. + * To create the test Ogg/Theora file refer to the documentation of theoraenc. + * + * + * + * gst-launch -v filesrc location=videotestsrc.ogg ! oggdemux ! theoradec ! videoscale ! video/x-raw-yuv, width=50 ! xvimagesink + * + * Decode an Ogg/Theora and display the video using xvimagesink with a width of + * 50. + * + * + * + * Last reviewed on 2006-03-02 (0.10.4) + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include +#include +#include +#include +#include "gstcogutils.h" + +GST_DEBUG_CATEGORY_STATIC (cog_scale_debug); +#define GST_CAT_DEFAULT cog_scale_debug + +#define GST_TYPE_COG_SCALE \ + (gst_cog_scale_get_type()) +#define GST_COG_SCALE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COG_SCALE,GstCogScale)) +#define GST_COG_SCALE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COG_SCALE,GstCogScaleClass)) +#define GST_IS_COG_SCALE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COG_SCALE)) +#define GST_IS_COG_SCALE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COG_SCALE)) + +typedef struct _GstCogScale GstCogScale; +typedef struct _GstCogScaleClass GstCogScaleClass; + +/** + * GstCogScale: + * + * Opaque data structure + */ +struct _GstCogScale +{ + GstBaseTransform element; + + int quality; + + /* negotiated stuff */ + GstVideoFormat format; + guint src_size; + guint dest_size; + gint to_width; + gint to_height; + gint from_width; + gint from_height; + + /*< private > */ +}; + +struct _GstCogScaleClass +{ + GstBaseTransformClass parent_class; +}; + +GType gst_cog_scale_get_type (void); + +#define DEFAULT_QUALITY 5 + +enum +{ + PROP_0, + PROP_QUALITY +}; + +/* can't handle width/height of 1 yet, since we divide a lot by (n-1) */ +#undef GST_VIDEO_SIZE_RANGE +#define GST_VIDEO_SIZE_RANGE "(int) [ 2, MAX ]" + +#define TEMPLATE_CAPS \ + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YV12, YUY2, UYVY, AYUV, Y42B }") ";" \ + GST_VIDEO_CAPS_ARGB) + +static GstStaticPadTemplate gst_cog_scale_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + TEMPLATE_CAPS); + +static GstStaticPadTemplate gst_cog_scale_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + TEMPLATE_CAPS); + +static void gst_cog_scale_base_init (gpointer g_class); +static void gst_cog_scale_class_init (GstCogScaleClass * klass); +static void gst_cog_scale_init (GstCogScale * videoscale); +static void gst_cog_scale_finalize (GstCogScale * videoscale); +static gboolean gst_cog_scale_src_event (GstBaseTransform * trans, + GstEvent * event); + +/* base transform vmethods */ +static GstCaps *gst_cog_scale_transform_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps); +static gboolean gst_cog_scale_set_caps (GstBaseTransform * trans, + GstCaps * in, GstCaps * out); +static gboolean gst_cog_scale_get_unit_size (GstBaseTransform * trans, + GstCaps * caps, guint * size); +static GstFlowReturn gst_cog_scale_transform (GstBaseTransform * trans, + GstBuffer * in, GstBuffer * out); +static void gst_cog_scale_fixate_caps (GstBaseTransform * base, + GstPadDirection direction, GstCaps * caps, GstCaps * othercaps); + +static void gst_cog_scale_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_cog_scale_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstElementClass *parent_class = NULL; + + +GType +gst_cog_scale_get_type (void) +{ + static GType cog_scale_type = 0; + + if (!cog_scale_type) { + static const GTypeInfo cog_scale_info = { + sizeof (GstCogScaleClass), + gst_cog_scale_base_init, + NULL, + (GClassInitFunc) gst_cog_scale_class_init, + NULL, + NULL, + sizeof (GstCogScale), + 0, + (GInstanceInitFunc) gst_cog_scale_init, + }; + + cog_scale_type = + g_type_register_static (GST_TYPE_BASE_TRANSFORM, "GstCogScale", + &cog_scale_info, 0); + + GST_DEBUG_CATEGORY_INIT (cog_scale_debug, "cogscale", 0, "Cog scale"); + } + return cog_scale_type; +} + +static void +gst_cog_scale_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "Video scaler", + "Filter/Effect/Video", + "Resizes video", "Wim Taymans "); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cog_scale_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_cog_scale_sink_template)); +} + +static void +gst_cog_scale_class_init (GstCogScaleClass * klass) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *trans_class; + + gobject_class = (GObjectClass *) klass; + trans_class = (GstBaseTransformClass *) klass; + + gobject_class->finalize = (GObjectFinalizeFunc) gst_cog_scale_finalize; + gobject_class->set_property = gst_cog_scale_set_property; + gobject_class->get_property = gst_cog_scale_get_property; + + g_object_class_install_property (gobject_class, PROP_QUALITY, + g_param_spec_int ("quality", "quality", "Scaling Quality", + 0, 10, DEFAULT_QUALITY, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + trans_class->transform_caps = + GST_DEBUG_FUNCPTR (gst_cog_scale_transform_caps); + trans_class->set_caps = GST_DEBUG_FUNCPTR (gst_cog_scale_set_caps); + trans_class->get_unit_size = GST_DEBUG_FUNCPTR (gst_cog_scale_get_unit_size); + trans_class->transform = GST_DEBUG_FUNCPTR (gst_cog_scale_transform); + trans_class->fixate_caps = GST_DEBUG_FUNCPTR (gst_cog_scale_fixate_caps); + trans_class->src_event = GST_DEBUG_FUNCPTR (gst_cog_scale_src_event); + + trans_class->passthrough_on_same_caps = TRUE; + + parent_class = g_type_class_peek_parent (klass); +} + +static void +gst_cog_scale_init (GstCogScale * videoscale) +{ + gst_base_transform_set_qos_enabled (GST_BASE_TRANSFORM (videoscale), TRUE); + videoscale->quality = DEFAULT_QUALITY; +} + +static void +gst_cog_scale_finalize (GstCogScale * videoscale) +{ + G_OBJECT_CLASS (parent_class)->finalize (G_OBJECT (videoscale)); +} + +static void +gst_cog_scale_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCogScale *vscale = GST_COG_SCALE (object); + + switch (prop_id) { + case PROP_QUALITY: + GST_OBJECT_LOCK (vscale); + vscale->quality = g_value_get_int (value); + GST_OBJECT_UNLOCK (vscale); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_cog_scale_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstCogScale *vscale = GST_COG_SCALE (object); + + switch (prop_id) { + case PROP_QUALITY: + GST_OBJECT_LOCK (vscale); + g_value_set_int (value, vscale->quality); + GST_OBJECT_UNLOCK (vscale); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstCaps * +gst_cog_scale_transform_caps (GstBaseTransform * trans, + GstPadDirection direction, GstCaps * caps) +{ + GstCogScale *videoscale; + GstCaps *ret; + GstStructure *structure; + const GValue *par; + + /* this function is always called with a simple caps */ + g_return_val_if_fail (GST_CAPS_IS_SIMPLE (caps), NULL); + + videoscale = GST_COG_SCALE (trans); + + structure = gst_caps_get_structure (caps, 0); + + ret = gst_caps_copy (caps); + structure = gst_caps_get_structure (ret, 0); + + gst_structure_set (structure, + "width", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); + + /* if pixel aspect ratio, make a range of it */ + if ((par = gst_structure_get_value (structure, "pixel-aspect-ratio"))) { + GstCaps *copy; + GstStructure *cstruct; + + /* copy input PAR first, this is the prefered PAR */ + gst_structure_set_value (structure, "pixel-aspect-ratio", par); + + /* then make a copy with a fraction range as a second choice */ + copy = gst_caps_copy (ret); + cstruct = gst_caps_get_structure (copy, 0); + gst_structure_set (cstruct, + "pixel-aspect-ratio", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + + /* and append */ + gst_caps_append (ret, copy); + } + + GST_DEBUG_OBJECT (trans, "returning caps: %" GST_PTR_FORMAT, ret); + + return ret; +} + +static gboolean +gst_cog_scale_set_caps (GstBaseTransform * trans, GstCaps * in, GstCaps * out) +{ + GstCogScale *videoscale; + gboolean ret; + + videoscale = GST_COG_SCALE (trans); + + ret = gst_video_format_parse_caps (in, &videoscale->format, + &videoscale->from_width, &videoscale->from_height); + ret &= gst_video_format_parse_caps (out, NULL, + &videoscale->to_width, &videoscale->to_height); + if (!ret) + goto done; + + videoscale->src_size = gst_video_format_get_size (videoscale->format, + videoscale->from_width, videoscale->from_height); + videoscale->dest_size = gst_video_format_get_size (videoscale->format, + videoscale->to_width, videoscale->to_height); + + /* FIXME: par */ + GST_DEBUG_OBJECT (videoscale, "from=%dx%d, size %d -> to=%dx%d, size %d", + videoscale->from_width, videoscale->from_height, videoscale->src_size, + videoscale->to_width, videoscale->to_height, videoscale->dest_size); + +done: + return ret; +} + +static gboolean +gst_cog_scale_get_unit_size (GstBaseTransform * trans, GstCaps * caps, + guint * size) +{ + GstCogScale *videoscale; + GstVideoFormat format; + gint width, height; + + g_assert (size); + + videoscale = GST_COG_SCALE (trans); + + if (!gst_video_format_parse_caps (caps, &format, &width, &height)) + return FALSE; + + *size = gst_video_format_get_size (format, width, height); + + return TRUE; +} + +static void +gst_cog_scale_fixate_caps (GstBaseTransform * base, GstPadDirection direction, + GstCaps * caps, GstCaps * othercaps) +{ + GstStructure *ins, *outs; + const GValue *from_par, *to_par; + + g_return_if_fail (gst_caps_is_fixed (caps)); + + GST_DEBUG_OBJECT (base, "trying to fixate othercaps %" GST_PTR_FORMAT + " based on caps %" GST_PTR_FORMAT, othercaps, caps); + + ins = gst_caps_get_structure (caps, 0); + outs = gst_caps_get_structure (othercaps, 0); + + from_par = gst_structure_get_value (ins, "pixel-aspect-ratio"); + to_par = gst_structure_get_value (outs, "pixel-aspect-ratio"); + + /* we have both PAR but they might not be fixated */ + if (from_par && to_par) { + gint from_w, from_h, from_par_n, from_par_d, to_par_n, to_par_d; + gint count = 0, w = 0, h = 0; + guint num, den; + + /* from_par should be fixed */ + g_return_if_fail (gst_value_is_fixed (from_par)); + + from_par_n = gst_value_get_fraction_numerator (from_par); + from_par_d = gst_value_get_fraction_denominator (from_par); + + /* fixate the out PAR */ + if (!gst_value_is_fixed (to_par)) { + GST_DEBUG_OBJECT (base, "fixating to_par to %dx%d", from_par_n, + from_par_d); + gst_structure_fixate_field_nearest_fraction (outs, "pixel-aspect-ratio", + from_par_n, from_par_d); + } + + to_par_n = gst_value_get_fraction_numerator (to_par); + to_par_d = gst_value_get_fraction_denominator (to_par); + + /* if both width and height are already fixed, we can't do anything + * about it anymore */ + if (gst_structure_get_int (outs, "width", &w)) + ++count; + if (gst_structure_get_int (outs, "height", &h)) + ++count; + if (count == 2) { + GST_DEBUG_OBJECT (base, "dimensions already set to %dx%d, not fixating", + w, h); + return; + } + + gst_structure_get_int (ins, "width", &from_w); + gst_structure_get_int (ins, "height", &from_h); + + if (!gst_video_calculate_display_ratio (&num, &den, from_w, from_h, + from_par_n, from_par_d, to_par_n, to_par_d)) { + GST_ELEMENT_ERROR (base, CORE, NEGOTIATION, (NULL), + ("Error calculating the output scaled size - integer overflow")); + return; + } + + GST_DEBUG_OBJECT (base, + "scaling input with %dx%d and PAR %d/%d to output PAR %d/%d", + from_w, from_h, from_par_n, from_par_d, to_par_n, to_par_d); + GST_DEBUG_OBJECT (base, "resulting output should respect ratio of %d/%d", + num, den); + + /* now find a width x height that respects this display ratio. + * prefer those that have one of w/h the same as the incoming video + * using wd / hd = num / den */ + + /* if one of the output width or height is fixed, we work from there */ + if (h) { + GST_DEBUG_OBJECT (base, "height is fixed,scaling width"); + w = (guint) gst_util_uint64_scale_int (h, num, den); + } else if (w) { + GST_DEBUG_OBJECT (base, "width is fixed, scaling height"); + h = (guint) gst_util_uint64_scale_int (w, den, num); + } else { + /* none of width or height is fixed, figure out both of them based only on + * the input width and height */ + /* check hd / den is an integer scale factor, and scale wd with the PAR */ + if (from_h % den == 0) { + GST_DEBUG_OBJECT (base, "keeping video height"); + h = from_h; + w = (guint) gst_util_uint64_scale_int (h, num, den); + } else if (from_w % num == 0) { + GST_DEBUG_OBJECT (base, "keeping video width"); + w = from_w; + h = (guint) gst_util_uint64_scale_int (w, den, num); + } else { + GST_DEBUG_OBJECT (base, "approximating but keeping video height"); + h = from_h; + w = (guint) gst_util_uint64_scale_int (h, num, den); + } + } + GST_DEBUG_OBJECT (base, "scaling to %dx%d", w, h); + + /* now fixate */ + gst_structure_fixate_field_nearest_int (outs, "width", w); + gst_structure_fixate_field_nearest_int (outs, "height", h); + } else { + gint width, height; + + if (gst_structure_get_int (ins, "width", &width)) { + if (gst_structure_has_field (outs, "width")) { + gst_structure_fixate_field_nearest_int (outs, "width", width); + } + } + if (gst_structure_get_int (ins, "height", &height)) { + if (gst_structure_has_field (outs, "height")) { + gst_structure_fixate_field_nearest_int (outs, "height", height); + } + } + } + + GST_DEBUG_OBJECT (base, "fixated othercaps to %" GST_PTR_FORMAT, othercaps); +} + +#if 0 +static gboolean +gst_cog_scale_prepare_image (gint format, GstBuffer * buf, + VSImage * img, VSImage * img_u, VSImage * img_v) +{ + gboolean res = TRUE; + + img->pixels = GST_BUFFER_DATA (buf); + + switch (format) { + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + img_u->pixels = img->pixels + GST_ROUND_UP_2 (img->height) * img->stride; + img_u->height = GST_ROUND_UP_2 (img->height) / 2; + img_u->width = GST_ROUND_UP_2 (img->width) / 2; + img_u->stride = GST_ROUND_UP_4 (img_u->width); + memcpy (img_v, img_u, sizeof (*img_v)); + img_v->pixels = img_u->pixels + img_u->height * img_u->stride; + break; + default: + break; + } + return res; +} +#endif + +static GstFlowReturn +gst_cog_scale_transform (GstBaseTransform * trans, GstBuffer * in, + GstBuffer * out) +{ + GstCogScale *videoscale; + GstFlowReturn ret = GST_FLOW_OK; + CogFrame *outframe; + CogFrame *frame; + int w, h; + int quality; + static const int n_vert_taps[11] = { 1, 1, 2, 2, 2, 2, 4, 4, 4, 4, 4 }; + static const int n_horiz_taps[11] = { 1, 1, 1, 1, 2, 2, 2, 2, 4, 4, 4 }; + + videoscale = GST_COG_SCALE (trans); + + GST_OBJECT_LOCK (videoscale); + quality = videoscale->quality; + GST_OBJECT_UNLOCK (videoscale); + + frame = gst_cog_buffer_wrap (gst_buffer_ref (in), videoscale->format, + videoscale->from_width, videoscale->from_height); + outframe = gst_cog_buffer_wrap (gst_buffer_ref (out), videoscale->format, + videoscale->to_width, videoscale->to_height); + + frame = cog_virt_frame_new_unpack (frame); + + w = videoscale->from_width; + h = videoscale->from_height; + while (w >= 2 * videoscale->to_width || h >= 2 * videoscale->to_height) { + if (w >= 2 * videoscale->to_width) { + frame = cog_virt_frame_new_horiz_downsample (frame, 3); + w /= 2; + } + if (h >= 2 * videoscale->to_height) { + frame = cog_virt_frame_new_vert_downsample (frame, 4); + h /= 2; + } + } + if (w != videoscale->to_width) { + frame = cog_virt_frame_new_horiz_resample (frame, videoscale->to_width, + n_horiz_taps[quality]); + } + if (h != videoscale->to_height) { + frame = cog_virt_frame_new_vert_resample (frame, videoscale->to_height, + n_vert_taps[quality]); + } + + switch (videoscale->format) { + case GST_VIDEO_FORMAT_YUY2: + frame = cog_virt_frame_new_pack_YUY2 (frame); + break; + case GST_VIDEO_FORMAT_UYVY: + frame = cog_virt_frame_new_pack_UYVY (frame); + break; + default: + break; + } + + cog_virt_frame_render (frame, outframe); + cog_frame_unref (frame); + cog_frame_unref (outframe); + + GST_LOG_OBJECT (videoscale, "pushing buffer of %d bytes", + GST_BUFFER_SIZE (out)); + + return ret; + + /* ERRORS */ +#if 0 +unsupported: + { + GST_ELEMENT_ERROR (videoscale, STREAM, NOT_IMPLEMENTED, (NULL), + ("Unsupported format %d for scaling method %d", + videoscale->format, method)); + return GST_FLOW_ERROR; + } +unknown_mode: + { + GST_ELEMENT_ERROR (videoscale, STREAM, NOT_IMPLEMENTED, (NULL), + ("Unknown scaling method %d", videoscale->method)); + return GST_FLOW_ERROR; + } +#endif +} + +static gboolean +gst_cog_scale_src_event (GstBaseTransform * trans, GstEvent * event) +{ + GstCogScale *videoscale; + gboolean ret; + double a; + GstStructure *structure; + + videoscale = GST_COG_SCALE (trans); + + GST_DEBUG_OBJECT (videoscale, "handling %s event", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NAVIGATION: + event = + GST_EVENT (gst_mini_object_make_writable (GST_MINI_OBJECT (event))); + + structure = (GstStructure *) gst_event_get_structure (event); + if (gst_structure_get_double (structure, "pointer_x", &a)) { + gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE, + a * videoscale->from_width / videoscale->to_width, NULL); + } + if (gst_structure_get_double (structure, "pointer_y", &a)) { + gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE, + a * videoscale->from_height / videoscale->to_height, NULL); + } + break; + case GST_EVENT_QOS: + break; + default: + break; + } + + ret = GST_BASE_TRANSFORM_CLASS (parent_class)->src_event (trans, event); + + return ret; +} diff --git a/ext/cog/gstcogutils.c b/ext/cog/gstcogutils.c new file mode 100644 index 0000000..ff23862 --- /dev/null +++ b/ext/cog/gstcogutils.c @@ -0,0 +1,185 @@ +/* Cog + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstcogutils.h" + +#include +#include +#include +#include +#include +#include + +GST_DEBUG_CATEGORY_EXTERN (cog_debug); +#define GST_CAT_DEFAULT cog_debug + + + + +static void +gst_cog_frame_free (CogFrame * frame, void *priv) +{ + gst_buffer_unref (GST_BUFFER (priv)); +} + +CogFrame * +gst_cog_buffer_wrap (GstBuffer * buf, GstVideoFormat format, int width, + int height) +{ + CogFrame *frame; + int size; + + size = gst_video_format_get_size (format, width, height); + if (GST_BUFFER_SIZE (buf) != size) { + GST_ERROR ("size incorrect, expected %d, got %d", size, + GST_BUFFER_SIZE (buf)); + } + + switch (format) { + case GST_VIDEO_FORMAT_I420: + frame = + cog_frame_new_from_data_I420 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_YV12: + frame = + cog_frame_new_from_data_YV12 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_YUY2: + frame = + cog_frame_new_from_data_YUY2 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_UYVY: + frame = + cog_frame_new_from_data_UYVY (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_AYUV: + frame = + cog_frame_new_from_data_AYUV (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_Y42B: + frame = + cog_frame_new_from_data_Y42B (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_Y444: + frame = + cog_frame_new_from_data_Y444 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_v210: + frame = + cog_frame_new_from_data_v210 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_v216: + frame = + cog_frame_new_from_data_v216 (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_RGBx: + frame = + cog_frame_new_from_data_RGBx (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_BGRx: + frame = + cog_frame_new_from_data_BGRx (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_xRGB: + frame = + cog_frame_new_from_data_xRGB (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_xBGR: + frame = + cog_frame_new_from_data_xBGR (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_RGBA: + frame = + cog_frame_new_from_data_RGBA (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_BGRA: + frame = + cog_frame_new_from_data_BGRA (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_ARGB: + frame = + cog_frame_new_from_data_ARGB (GST_BUFFER_DATA (buf), width, height); + break; + case GST_VIDEO_FORMAT_ABGR: + frame = + cog_frame_new_from_data_ABGR (GST_BUFFER_DATA (buf), width, height); + break; + default: + g_assert_not_reached (); + return NULL; + } + cog_frame_set_free_callback (frame, gst_cog_frame_free, buf); + + return frame; +} + +#if 0 +#ifdef GST_BUFFER_FREE_FUNC +static void +cog_buf_free_func (gpointer priv) +{ + CogBuffer *buffer = (CogBuffer *) priv; + + cog_buffer_unref (buffer); +} +#endif + +/* takes the reference */ +GstBuffer * +gst_cog_wrap_cog_buffer (CogBuffer * buffer) +{ + GstBuffer *gstbuf; + +#ifdef GST_BUFFER_FREE_FUNC + gstbuf = gst_buffer_new (); + GST_BUFFER_DATA (gstbuf) = buffer->data; + GST_BUFFER_SIZE (gstbuf) = buffer->length; + GST_BUFFER_MALLOCDATA (gstbuf) = (void *) buffer; + GST_BUFFER_FREE_FUNC (gstbuf) = cog_buf_free_func; +#else + gstbuf = gst_buffer_new_and_alloc (buffer->length); + memcpy (GST_BUFFER_DATA (gstbuf), buffer->data, buffer->length); +#endif + + return gstbuf; +} + +static void +gst_cog_buffer_free (CogBuffer * buffer, void *priv) +{ + gst_buffer_unref (GST_BUFFER (priv)); +} + +CogBuffer * +gst_cog_wrap_gst_buffer (GstBuffer * buffer) +{ + CogBuffer *cogbuf; + + cogbuf = cog_buffer_new_with_data (GST_BUFFER_DATA (buffer), + GST_BUFFER_SIZE (buffer)); + cogbuf->free = gst_cog_buffer_free; + cogbuf->priv = buffer; + + return cogbuf; +} +#endif diff --git a/ext/cog/gstcogutils.h b/ext/cog/gstcogutils.h new file mode 100644 index 0000000..1b846eb --- /dev/null +++ b/ext/cog/gstcogutils.h @@ -0,0 +1,37 @@ +/* Schrodinger + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef _GST_COG_UTILS_H_ +#define _GST_COG_UTILS_H_ + +#include +#include +#include +#include + +CogFrame * +gst_cog_buffer_wrap (GstBuffer *buf, GstVideoFormat format, int width, + int height); +#if 0 +GstBuffer * gst_cog_wrap_cog_buffer (CogBuffer *buffer); +CogBuffer * gst_cog_wrap_gst_buffer (GstBuffer *buffer); +#endif + +#endif + diff --git a/ext/cog/gstcolorconvert.c b/ext/cog/gstcolorconvert.c new file mode 100644 index 0000000..560ca68 --- /dev/null +++ b/ext/cog/gstcolorconvert.c @@ -0,0 +1,391 @@ +/* GStreamer + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include "gstcogutils.h" + +#include "gstcms.h" + +#define GST_TYPE_COLORCONVERT \ + (gst_colorconvert_get_type()) +#define GST_COLORCONVERT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_COLORCONVERT,GstColorconvert)) +#define GST_COLORCONVERT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_COLORCONVERT,GstColorconvertClass)) +#define GST_IS_COLORCONVERT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_COLORCONVERT)) +#define GST_IS_COLORCONVERT_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_COLORCONVERT)) + +typedef struct _GstColorconvert GstColorconvert; +typedef struct _GstColorconvertClass GstColorconvertClass; + +struct _GstColorconvert +{ + GstBaseTransform base_transform; + + gchar *location; + + GstVideoFormat format; + int width; + int height; + +}; + +struct _GstColorconvertClass +{ + GstBaseTransformClass parent_class; + +}; + +enum +{ + ARG_0, +}; + +GType gst_colorconvert_get_type (void); + +static void gst_colorconvert_base_init (gpointer g_class); +static void gst_colorconvert_class_init (gpointer g_class, gpointer class_data); +static void gst_colorconvert_init (GTypeInstance * instance, gpointer g_class); + +static void gst_colorconvert_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_colorconvert_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_colorconvert_set_caps (GstBaseTransform * base_transform, + GstCaps * incaps, GstCaps * outcaps); +static GstFlowReturn gst_colorconvert_transform_ip (GstBaseTransform * + base_transform, GstBuffer * buf); +static CogFrame *cog_virt_frame_new_color_transform (CogFrame * frame); + +static GstStaticPadTemplate gst_colorconvert_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,UYVY,AYUV}")) + ); + +static GstStaticPadTemplate gst_colorconvert_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{I420,YUY2,UYVY,AYUV}")) + ); + +GType +gst_colorconvert_get_type (void) +{ + static GType compress_type = 0; + + if (!compress_type) { + static const GTypeInfo compress_info = { + sizeof (GstColorconvertClass), + gst_colorconvert_base_init, + NULL, + gst_colorconvert_class_init, + NULL, + NULL, + sizeof (GstColorconvert), + 0, + gst_colorconvert_init, + }; + + compress_type = g_type_register_static (GST_TYPE_BASE_TRANSFORM, + "GstColorconvert", &compress_info, 0); + } + return compress_type; +} + + +static void +gst_colorconvert_base_init (gpointer g_class) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_colorconvert_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_colorconvert_sink_template)); + + gst_element_class_set_details_simple (element_class, "Convert colorspace", + "Filter/Effect/Video", + "Convert between SDTV and HDTV colorspace", + "David Schleef "); +} + +static void +gst_colorconvert_class_init (gpointer g_class, gpointer class_data) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *base_transform_class; + GstColorconvertClass *filter_class; + + gobject_class = G_OBJECT_CLASS (g_class); + base_transform_class = GST_BASE_TRANSFORM_CLASS (g_class); + filter_class = GST_COLORCONVERT_CLASS (g_class); + + gobject_class->set_property = gst_colorconvert_set_property; + gobject_class->get_property = gst_colorconvert_get_property; + + base_transform_class->set_caps = gst_colorconvert_set_caps; + base_transform_class->transform_ip = gst_colorconvert_transform_ip; +} + +static void +gst_colorconvert_init (GTypeInstance * instance, gpointer g_class) +{ + + GST_DEBUG ("gst_colorconvert_init"); +} + +static void +gst_colorconvert_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstColorconvert *src; + + g_return_if_fail (GST_IS_COLORCONVERT (object)); + src = GST_COLORCONVERT (object); + + GST_DEBUG ("gst_colorconvert_set_property"); + switch (prop_id) { + default: + break; + } +} + +static void +gst_colorconvert_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstColorconvert *src; + + g_return_if_fail (GST_IS_COLORCONVERT (object)); + src = GST_COLORCONVERT (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_colorconvert_set_caps (GstBaseTransform * base_transform, + GstCaps * incaps, GstCaps * outcaps) +{ + GstColorconvert *li; + + g_return_val_if_fail (GST_IS_COLORCONVERT (base_transform), GST_FLOW_ERROR); + li = GST_COLORCONVERT (base_transform); + + gst_video_format_parse_caps (incaps, &li->format, &li->width, &li->height); + + return TRUE; +} + +static GstFlowReturn +gst_colorconvert_transform_ip (GstBaseTransform * base_transform, + GstBuffer * buf) +{ + GstColorconvert *li; + CogFrame *frame; + CogFrame *vf; + + g_return_val_if_fail (GST_IS_COLORCONVERT (base_transform), GST_FLOW_ERROR); + li = GST_COLORCONVERT (base_transform); + + frame = gst_cog_buffer_wrap (gst_buffer_ref (buf), + li->format, li->width, li->height); + + vf = cog_virt_frame_new_unpack (cog_frame_ref (frame)); + vf = cog_virt_frame_new_subsample (vf, COG_FRAME_FORMAT_U8_444, + COG_CHROMA_SITE_MPEG2, 2); + vf = cog_virt_frame_new_color_transform (vf); + if (frame->format == COG_FRAME_FORMAT_YUYV) { + vf = cog_virt_frame_new_subsample (vf, COG_FRAME_FORMAT_U8_422, + COG_CHROMA_SITE_MPEG2, 2); + vf = cog_virt_frame_new_pack_YUY2 (vf); + } else if (frame->format == COG_FRAME_FORMAT_UYVY) { + vf = cog_virt_frame_new_subsample (vf, COG_FRAME_FORMAT_U8_422, + COG_CHROMA_SITE_MPEG2, 2); + vf = cog_virt_frame_new_pack_UYVY (vf); + } else if (frame->format == COG_FRAME_FORMAT_AYUV) { + vf = cog_virt_frame_new_pack_AYUV (vf); + } else if (frame->format == COG_FRAME_FORMAT_U8_420) { + vf = cog_virt_frame_new_subsample (vf, COG_FRAME_FORMAT_U8_420, + COG_CHROMA_SITE_MPEG2, 2); + } else { + g_assert_not_reached (); + } + + cog_virt_frame_render (vf, frame); + + cog_frame_unref (frame); + cog_frame_unref (vf); + + return GST_FLOW_OK; +} + + + +static void +color_transform (CogFrame * frame, void *_dest, int component, int j) +{ + uint8_t *dest = _dest; + uint8_t *src_y; + uint8_t *src_u; + uint8_t *src_v; + uint8_t *table; + int i; + + table = COG_OFFSET (frame->virt_priv2, component * 0x1000000); + + src_y = cog_virt_frame_get_line (frame->virt_frame1, 0, j); + src_u = cog_virt_frame_get_line (frame->virt_frame1, 1, j); + src_v = cog_virt_frame_get_line (frame->virt_frame1, 2, j); + + for (i = 0; i < frame->width; i++) { + dest[i] = table[(src_y[i] << 16) | (src_u[i] << 8) | (src_v[i])]; + } +} + +static uint8_t *get_color_transform_table (void); + +static CogFrame * +cog_virt_frame_new_color_transform (CogFrame * frame) +{ + CogFrame *virt_frame; + + g_return_val_if_fail (frame->format == COG_FRAME_FORMAT_U8_444, NULL); + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_U8_444, + frame->width, frame->height); + virt_frame->virt_frame1 = frame; + virt_frame->render_line = color_transform; + + virt_frame->virt_priv2 = get_color_transform_table (); + + return virt_frame; +} + + +static uint8_t * +get_color_transform_table (void) +{ + static uint8_t *color_transform_table = NULL; + +#if 1 + if (!color_transform_table) { + ColorMatrix bt601_to_rgb; + ColorMatrix bt601_to_yuv; + ColorMatrix bt601_rgb_to_XYZ; + ColorMatrix dell_XYZ_to_rgb; + uint8_t *table_y; + uint8_t *table_u; + uint8_t *table_v; + int y, u, v; + + color_matrix_build_yuv_to_rgb_601 (&bt601_to_rgb); + color_matrix_build_rgb_to_yuv_601 (&bt601_to_yuv); + color_matrix_build_rgb_to_XYZ_601 (&bt601_rgb_to_XYZ); + color_matrix_build_XYZ_to_rgb_dell (&dell_XYZ_to_rgb); + + color_transform_table = g_malloc (0x1000000 * 3); + + table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000); + table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000); + table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000); + + for (y = 0; y < 256; y++) { + for (u = 0; u < 256; u++) { + for (v = 0; v < 256; v++) { + Color c; + + c.v[0] = y; + c.v[1] = u; + c.v[2] = v; + color_matrix_apply (&bt601_to_rgb, &c, &c); + color_gamut_clamp (&c, &c); + color_transfer_function_apply (&c, &c); + color_matrix_apply (&bt601_rgb_to_XYZ, &c, &c); + color_matrix_apply (&dell_XYZ_to_rgb, &c, &c); + color_transfer_function_unapply (&c, &c); + color_gamut_clamp (&c, &c); + color_matrix_apply (&bt601_to_yuv, &c, &c); + + table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]); + table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]); + table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]); + } + } + } + } +#endif +#if 0 + if (!color_transform_table) { + ColorMatrix bt709_to_bt601; + uint8_t *table_y; + uint8_t *table_u; + uint8_t *table_v; + int y, u, v; + + color_matrix_build_bt709_to_bt601 (&bt709_to_bt601); + + color_transform_table = g_malloc (0x1000000 * 3); + + table_y = COG_OFFSET (color_transform_table, 0 * 0x1000000); + table_u = COG_OFFSET (color_transform_table, 1 * 0x1000000); + table_v = COG_OFFSET (color_transform_table, 2 * 0x1000000); + + for (y = 0; y < 256; y++) { + for (u = 0; u < 256; u++) { + for (v = 0; v < 256; v++) { + Color c; + + c.v[0] = y; + c.v[1] = u; + c.v[2] = v; + color_matrix_apply (&bt709_to_bt601, &c, &c); + + table_y[(y << 16) | (u << 8) | (v)] = rint (c.v[0]); + table_u[(y << 16) | (u << 8) | (v)] = rint (c.v[1]); + table_v[(y << 16) | (u << 8) | (v)] = rint (c.v[2]); + } + } + } + } +#endif + + return color_transform_table; +} diff --git a/ext/cog/gstlogoinsert.c b/ext/cog/gstlogoinsert.c new file mode 100644 index 0000000..a49d854 --- /dev/null +++ b/ext/cog/gstlogoinsert.c @@ -0,0 +1,513 @@ +/* GStreamer + * Copyright (C) 2008 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include "gstcogutils.h" + +#define GST_TYPE_LOGOINSERT \ + (gst_logoinsert_get_type()) +#define GST_LOGOINSERT(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_LOGOINSERT,GstLogoinsert)) +#define GST_LOGOINSERT_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_LOGOINSERT,GstLogoinsertClass)) +#define GST_IS_LOGOINSERT(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_LOGOINSERT)) +#define GST_IS_LOGOINSERT_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_LOGOINSERT)) + +typedef struct _GstLogoinsert GstLogoinsert; +typedef struct _GstLogoinsertClass GstLogoinsertClass; + +struct _GstLogoinsert +{ + GstBaseTransform base_transform; + + char *location; + GstBuffer *buffer; + + GstVideoFormat format; + int width; + int height; + + gchar *data; + gsize size; + CogFrame *overlay_frame; + CogFrame *argb_frame; + CogFrame *alpha_frame; + +}; + +struct _GstLogoinsertClass +{ + GstBaseTransformClass parent_class; + +}; + +enum +{ + ARG_0, + ARG_LOCATION, + ARG_DATA +}; + +GType gst_logoinsert_get_type (void); + +GST_DEBUG_CATEGORY_STATIC (gst_logoinsert_debug_category); +#define GST_CAT_DEFAULT gst_logoinsert_debug_category + +static void gst_logoinsert_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_logoinsert_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_logoinsert_dispose (GObject * object); +static void gst_logoinsert_finalize (GObject * object); + +static void +gst_logoinsert_set_location (GstLogoinsert * li, const char *location); +static void gst_logoinsert_set_data (GstLogoinsert * li, GstBuffer * buffer); + +static gboolean gst_logoinsert_set_caps (GstBaseTransform * base_transform, + GstCaps * incaps, GstCaps * outcaps); +static GstFlowReturn gst_logoinsert_transform_ip (GstBaseTransform * + base_transform, GstBuffer * buf); +static CogFrame *cog_frame_new_from_png (void *data, int size); +static CogFrame *cog_virt_frame_extract_alpha (CogFrame * frame); +static CogFrame *cog_frame_realize (CogFrame * frame); + +static GstStaticPadTemplate gst_logoinsert_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); + +static GstStaticPadTemplate gst_logoinsert_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("I420")) + ); + +/* class initialization */ + +#define DEBUG_INIT(bla) \ + GST_DEBUG_CATEGORY_INIT (gst_logoinsert_debug_category, "logoinsert", 0, \ + "debug category for logoinsert element"); + +GST_BOILERPLATE_FULL (GstLogoinsert, gst_logoinsert, GstBaseTransform, + GST_TYPE_BASE_TRANSFORM, DEBUG_INIT); + +static void +gst_logoinsert_base_init (gpointer g_class) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_logoinsert_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_logoinsert_sink_template)); + + gst_element_class_set_details_simple (element_class, + "Overlay image onto video", "Filter/Effect/Video", + "Overlay image onto video", "David Schleef "); +} + +static void +gst_logoinsert_class_init (GstLogoinsertClass * klass) +{ + GObjectClass *gobject_class; + GstBaseTransformClass *base_transform_class; + + gobject_class = G_OBJECT_CLASS (klass); + base_transform_class = GST_BASE_TRANSFORM_CLASS (klass); + + gobject_class->set_property = gst_logoinsert_set_property; + gobject_class->get_property = gst_logoinsert_get_property; + gobject_class->dispose = gst_logoinsert_dispose; + gobject_class->finalize = gst_logoinsert_finalize; + + g_object_class_install_property (gobject_class, ARG_LOCATION, + g_param_spec_string ("location", "location", + "location of PNG file to overlay", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_DATA, + gst_param_spec_mini_object ("data", "data", + "Buffer containing PNG file to overlay", GST_TYPE_BUFFER, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + base_transform_class->set_caps = gst_logoinsert_set_caps; + base_transform_class->transform_ip = gst_logoinsert_transform_ip; +} + +static void +gst_logoinsert_init (GstLogoinsert * logoinsert, + GstLogoinsertClass * logoinsert_class) +{ + + GST_DEBUG ("gst_logoinsert_init"); +} + +static void +gst_logoinsert_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstLogoinsert *src; + + g_return_if_fail (GST_IS_LOGOINSERT (object)); + src = GST_LOGOINSERT (object); + + GST_DEBUG ("gst_logoinsert_set_property"); + switch (prop_id) { + case ARG_LOCATION: + gst_logoinsert_set_location (src, g_value_get_string (value)); + break; + case ARG_DATA: + gst_logoinsert_set_data (src, + (GstBuffer *) gst_value_get_mini_object (value)); + break; + default: + break; + } +} + +static void +gst_logoinsert_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstLogoinsert *src; + + g_return_if_fail (GST_IS_LOGOINSERT (object)); + src = GST_LOGOINSERT (object); + + switch (prop_id) { + case ARG_LOCATION: + g_value_set_string (value, src->location); + break; + case ARG_DATA: + gst_value_set_mini_object (value, (GstMiniObject *) src->buffer); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +void +gst_logoinsert_dispose (GObject * object) +{ + GstLogoinsert *logoinsert; + + g_return_if_fail (GST_IS_LOGOINSERT (object)); + logoinsert = GST_LOGOINSERT (object); + + /* clean up as possible. may be called multiple times */ + + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +void +gst_logoinsert_finalize (GObject * object) +{ + GstLogoinsert *logoinsert; + + g_return_if_fail (GST_IS_LOGOINSERT (object)); + logoinsert = GST_LOGOINSERT (object); + + g_free (logoinsert->location); + if (logoinsert->buffer) { + gst_buffer_unref (logoinsert->buffer); + } + if (logoinsert->overlay_frame) { + cog_frame_unref (logoinsert->overlay_frame); + logoinsert->overlay_frame = NULL; + } + if (logoinsert->alpha_frame) { + cog_frame_unref (logoinsert->alpha_frame); + logoinsert->alpha_frame = NULL; + } + if (logoinsert->argb_frame) { + cog_frame_unref (logoinsert->argb_frame); + logoinsert->argb_frame = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_logoinsert_set_caps (GstBaseTransform * base_transform, + GstCaps * incaps, GstCaps * outcaps) +{ + GstLogoinsert *li; + + g_return_val_if_fail (GST_IS_LOGOINSERT (base_transform), GST_FLOW_ERROR); + li = GST_LOGOINSERT (base_transform); + + gst_video_format_parse_caps (incaps, &li->format, &li->width, &li->height); + + return TRUE; +} + +static GstFlowReturn +gst_logoinsert_transform_ip (GstBaseTransform * base_transform, GstBuffer * buf) +{ + GstLogoinsert *li; + CogFrame *frame; + + g_return_val_if_fail (GST_IS_LOGOINSERT (base_transform), GST_FLOW_ERROR); + li = GST_LOGOINSERT (base_transform); + + if (li->argb_frame == NULL) + return GST_FLOW_OK; + + frame = gst_cog_buffer_wrap (gst_buffer_ref (buf), + li->format, li->width, li->height); + + if (li->overlay_frame == NULL) { + CogFrame *f; + + f = cog_virt_frame_extract_alpha (cog_frame_ref (li->argb_frame)); + f = cog_virt_frame_new_subsample (f, frame->format, + COG_CHROMA_SITE_MPEG2, 2); + li->alpha_frame = cog_frame_realize (f); + + f = cog_virt_frame_new_unpack (cog_frame_ref (li->argb_frame)); + f = cog_virt_frame_new_color_matrix_RGB_to_YCbCr (f, COG_COLOR_MATRIX_SDTV, + 8); + f = cog_virt_frame_new_subsample (f, frame->format, + COG_CHROMA_SITE_MPEG2, 2); + li->overlay_frame = cog_frame_realize (f); + } + + if (1) { + int i, j; + int k; + guint8 *dest; + guint8 *src; + guint8 *alpha; + int offset_x, offset_y; + + for (k = 0; k < 3; k++) { + offset_x = frame->components[k].width - + li->alpha_frame->components[k].width; + offset_y = frame->components[k].height - + li->alpha_frame->components[k].height; + + for (j = 0; j < li->overlay_frame->components[k].height; j++) { + dest = COG_FRAME_DATA_GET_LINE (frame->components + k, j + offset_y); + src = COG_FRAME_DATA_GET_LINE (li->overlay_frame->components + k, j); + alpha = COG_FRAME_DATA_GET_LINE (li->alpha_frame->components + k, j); + +#define oil_divide_255(x) ((((x)+128) + (((x)+128)>>8))>>8) + + for (i = 0; i < li->overlay_frame->components[k].width; i++) { + dest[i + offset_x] = + oil_divide_255 (src[i] * alpha[i] + dest[i + offset_x] * (255 - + alpha[i])); + } + } + } + } + + cog_frame_unref (frame); + + return GST_FLOW_OK; +} + +static GstBuffer * +get_buffer_from_file (const char *filename) +{ + gboolean ret; + GstBuffer *buffer; + gsize size; + gchar *data; + + ret = g_file_get_contents (filename, &data, &size, NULL); + if (!ret) + return NULL; + + buffer = gst_buffer_new (); + GST_BUFFER_DATA (buffer) = (guchar *) data; + GST_BUFFER_MALLOCDATA (buffer) = (guchar *) data; + GST_BUFFER_SIZE (buffer) = size; + + return buffer; +} + +static void +gst_logoinsert_set_location (GstLogoinsert * li, const char *location) +{ + g_free (li->location); + li->location = g_strdup (location); + + gst_logoinsert_set_data (li, get_buffer_from_file (li->location)); +} + +static void +gst_logoinsert_set_data (GstLogoinsert * li, GstBuffer * buffer) +{ + if (li->buffer) + gst_buffer_unref (li->buffer); + + /* steals the reference */ + li->buffer = buffer; + + if (li->overlay_frame) { + cog_frame_unref (li->overlay_frame); + li->overlay_frame = NULL; + } + if (li->alpha_frame) { + cog_frame_unref (li->alpha_frame); + li->alpha_frame = NULL; + } + if (li->argb_frame) { + cog_frame_unref (li->argb_frame); + li->argb_frame = NULL; + } + + if (li->buffer) { + li->argb_frame = cog_frame_new_from_png (GST_BUFFER_DATA (li->buffer), + GST_BUFFER_SIZE (li->buffer)); + } +} + + +/* load PNG into CogFrame */ + +struct png_data_struct +{ + unsigned char *data; + int size; + int offset; +}; + +static void +read_data (png_structp png_ptr, png_bytep data, png_size_t length) +{ + struct png_data_struct *s = png_get_io_ptr (png_ptr); + + memcpy (data, s->data + s->offset, length); + s->offset += length; +} + +static CogFrame * +cog_frame_new_from_png (void *data, int size) +{ + struct png_data_struct s = { 0 }; + png_structp png_ptr; + png_infop info_ptr; + png_bytep *rows; + CogFrame *frame; + guchar *frame_data; + int rowbytes; + int j; + int width, height; + int color_type; + + png_ptr = png_create_read_struct (PNG_LIBPNG_VER_STRING, NULL, NULL, NULL); + info_ptr = png_create_info_struct (png_ptr); + + s.data = data; + s.size = size; + png_set_read_fn (png_ptr, (void *) &s, read_data); + + png_read_info (png_ptr, info_ptr); + + width = png_get_image_width (png_ptr, info_ptr); + height = png_get_image_height (png_ptr, info_ptr); + color_type = png_get_color_type (png_ptr, info_ptr); + GST_DEBUG ("PNG size %dx%d color_type %d", width, height, color_type); + + png_set_strip_16 (png_ptr); + png_set_packing (png_ptr); + if (color_type == PNG_COLOR_TYPE_RGB) { + png_set_filler (png_ptr, 0xff, PNG_FILLER_BEFORE); + } + if (color_type == PNG_COLOR_TYPE_RGB_ALPHA) { + png_set_swap_alpha (png_ptr); + } + + frame_data = g_malloc (width * height * 4); + frame = cog_frame_new_from_data_ARGB (frame_data, width, height); + frame->regions[0] = frame_data; + + rowbytes = png_get_rowbytes (png_ptr, info_ptr); + rows = (png_bytep *) g_malloc (sizeof (png_bytep) * height); + + for (j = 0; j < height; j++) { + rows[j] = COG_FRAME_DATA_GET_LINE (frame->components + 0, j); + } + png_read_image (png_ptr, rows); + g_free (rows); + + png_destroy_read_struct (&png_ptr, &info_ptr, (png_infopp) NULL); + + return frame; +} + +static void +extract_alpha (CogFrame * frame, void *_dest, int component, int j) +{ + uint8_t *dest = _dest; + uint8_t *src; + int i; + + src = COG_FRAME_DATA_GET_LINE (frame->virt_frame1->components + 0, j); + for (i = 0; i < frame->width; i++) { + dest[i] = src[i * 4 + 0]; + } +} + +static CogFrame * +cog_virt_frame_extract_alpha (CogFrame * frame) +{ + CogFrame *virt_frame; + + /* FIXME check that frame is a real AYUV frame */ + + virt_frame = cog_frame_new_virtual (NULL, COG_FRAME_FORMAT_U8_444, + frame->width, frame->height); + virt_frame->virt_frame1 = frame; + virt_frame->render_line = extract_alpha; + + return virt_frame; +} + +static CogFrame * +cog_frame_realize (CogFrame * frame) +{ + CogFrame *dest; + + dest = cog_frame_clone (NULL, frame); + cog_virt_frame_render (frame, dest); + cog_frame_unref (frame); + + return dest; +} diff --git a/ext/curl/Makefile.am b/ext/curl/Makefile.am new file mode 100644 index 0000000..77b2373 --- /dev/null +++ b/ext/curl/Makefile.am @@ -0,0 +1,15 @@ +plugin_LTLIBRARIES = libgstcurl.la + +libgstcurl_la_SOURCES = gstcurl.c gstcurlsink.c +libgstcurl_la_CFLAGS = \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(CURL_CFLAGS) +libgstcurl_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(CURL_LIBS) +libgstcurl_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstcurl_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstcurlsink.h diff --git a/ext/curl/Makefile.in b/ext/curl/Makefile.in new file mode 100644 index 0000000..2858c50 --- /dev/null +++ b/ext/curl/Makefile.in @@ -0,0 +1,873 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/curl +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstcurl_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstcurl_la_OBJECTS = libgstcurl_la-gstcurl.lo \ + libgstcurl_la-gstcurlsink.lo +libgstcurl_la_OBJECTS = $(am_libgstcurl_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstcurl_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstcurl_la_CFLAGS) $(CFLAGS) \ + $(libgstcurl_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstcurl_la_SOURCES) +DIST_SOURCES = $(libgstcurl_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstcurl.la +libgstcurl_la_SOURCES = gstcurl.c gstcurlsink.c +libgstcurl_la_CFLAGS = \ + $(GST_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(CURL_CFLAGS) + +libgstcurl_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(CURL_LIBS) + +libgstcurl_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstcurl_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstcurlsink.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/curl/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/curl/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstcurl.la: $(libgstcurl_la_OBJECTS) $(libgstcurl_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstcurl_la_LINK) -rpath $(plugindir) $(libgstcurl_la_OBJECTS) $(libgstcurl_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcurl_la-gstcurl.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstcurl_la-gstcurlsink.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstcurl_la-gstcurl.lo: gstcurl.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcurl_la_CFLAGS) $(CFLAGS) -MT libgstcurl_la-gstcurl.lo -MD -MP -MF $(DEPDIR)/libgstcurl_la-gstcurl.Tpo -c -o libgstcurl_la-gstcurl.lo `test -f 'gstcurl.c' || echo '$(srcdir)/'`gstcurl.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcurl_la-gstcurl.Tpo $(DEPDIR)/libgstcurl_la-gstcurl.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcurl.c' object='libgstcurl_la-gstcurl.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcurl_la_CFLAGS) $(CFLAGS) -c -o libgstcurl_la-gstcurl.lo `test -f 'gstcurl.c' || echo '$(srcdir)/'`gstcurl.c + +libgstcurl_la-gstcurlsink.lo: gstcurlsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcurl_la_CFLAGS) $(CFLAGS) -MT libgstcurl_la-gstcurlsink.lo -MD -MP -MF $(DEPDIR)/libgstcurl_la-gstcurlsink.Tpo -c -o libgstcurl_la-gstcurlsink.lo `test -f 'gstcurlsink.c' || echo '$(srcdir)/'`gstcurlsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstcurl_la-gstcurlsink.Tpo $(DEPDIR)/libgstcurl_la-gstcurlsink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstcurlsink.c' object='libgstcurl_la-gstcurlsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstcurl_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstcurl_la_CFLAGS) $(CFLAGS) -c -o libgstcurl_la-gstcurlsink.lo `test -f 'gstcurlsink.c' || echo '$(srcdir)/'`gstcurlsink.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/curl/gstcurl.c b/ext/curl/gstcurl.c new file mode 100644 index 0000000..39c214d --- /dev/null +++ b/ext/curl/gstcurl.c @@ -0,0 +1,40 @@ +/* GStreamer + * Copyright (C) 2011 Axis Communications + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include "gstcurlsink.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + + if (!gst_element_register (plugin, "curlsink", GST_RANK_NONE, + GST_TYPE_CURL_SINK)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "curl", + "libcurl-based elements", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/curl/gstcurlsink.c b/ext/curl/gstcurlsink.c new file mode 100644 index 0000000..2a448f4 --- /dev/null +++ b/ext/curl/gstcurlsink.c @@ -0,0 +1,1268 @@ +/* GStreamer + * Copyright (C) 2011 Axis Communications + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-curlsink + * @short_description: sink that uploads data to a server using libcurl + * @see_also: + * + * This is a network sink that uses libcurl as a client to upload data to + * a server (e.g. a HTTP/FTP server). + * + * + * Example launch line (upload a JPEG file to an HTTP server) + * |[ + * gst-launch filesrc filesrc location=image.jpg ! jpegparse ! curlsink \ + * file-name=image.jpg \ + * location=http://192.168.0.1:8080/cgi-bin/patupload.cgi/ \ + * user=test passwd=test \ + * content-type=image/jpeg \ + * use-content-length=false + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "gstcurlsink.h" + +/* Default values */ +#define GST_CAT_DEFAULT gst_curl_sink_debug +#define DEFAULT_URL "localhost:5555" +#define DEFAULT_TIMEOUT 30 +#define DEFAULT_PROXY_PORT 3128 +#define DEFAULT_QOS_DSCP 0 +#define DEFAULT_ACCEPT_SELF_SIGNED FALSE +#define DEFAULT_USE_CONTENT_LENGTH FALSE + +#define DSCP_MIN 0 +#define DSCP_MAX 63 +#define RESPONSE_100_CONTINUE 100 +#define RESPONSE_CONNECT_PROXY 200 + +/* Plugin specific settings */ +static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + +GST_DEBUG_CATEGORY_STATIC (gst_curl_sink_debug); + +enum +{ + PROP_0, + PROP_LOCATION, + PROP_USER_NAME, + PROP_USER_PASSWD, + PROP_PROXY, + PROP_PROXY_PORT, + PROP_PROXY_USER_NAME, + PROP_PROXY_USER_PASSWD, + PROP_FILE_NAME, + PROP_TIMEOUT, + PROP_QOS_DSCP, + PROP_ACCEPT_SELF_SIGNED, + PROP_USE_CONTENT_LENGTH, + PROP_CONTENT_TYPE +}; +static gboolean proxy_auth = FALSE; +static gboolean proxy_conn_established = FALSE; + +/* Object class function declarations */ +static void gst_curl_sink_finalize (GObject * gobject); +static void gst_curl_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_curl_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +/* BaseSink class function declarations */ +static GstFlowReturn gst_curl_sink_render (GstBaseSink * bsink, + GstBuffer * buf); +static gboolean gst_curl_sink_event (GstBaseSink * bsink, GstEvent * event); +static gboolean gst_curl_sink_start (GstBaseSink * bsink); +static gboolean gst_curl_sink_stop (GstBaseSink * bsink); +static gboolean gst_curl_sink_unlock (GstBaseSink * bsink); +static gboolean gst_curl_sink_unlock_stop (GstBaseSink * bsink); + +/* private functions */ +static gboolean gst_curl_sink_transfer_setup_unlocked (GstCurlSink * sink); +static gboolean gst_curl_sink_transfer_set_options_unlocked (GstCurlSink + * sink); +static gboolean gst_curl_sink_transfer_start_unlocked (GstCurlSink * sink); +static void gst_curl_sink_transfer_cleanup (GstCurlSink * sink); +static size_t gst_curl_sink_transfer_read_cb (void *ptr, size_t size, + size_t nmemb, void *stream); +static size_t gst_curl_sink_transfer_write_cb (void *ptr, size_t size, + size_t nmemb, void *stream); +static GstFlowReturn gst_curl_sink_handle_transfer (GstCurlSink * sink); +static int gst_curl_sink_transfer_socket_cb (void *clientp, + curl_socket_t curlfd, curlsocktype purpose); +static gpointer gst_curl_sink_transfer_thread_func (gpointer data); +static CURLcode gst_curl_sink_transfer_check (GstCurlSink * sink); +static gint gst_curl_sink_setup_dscp_unlocked (GstCurlSink * sink); + +static gboolean gst_curl_sink_wait_for_data_unlocked (GstCurlSink * sink); +static void gst_curl_sink_new_file_notify_unlocked (GstCurlSink * sink); +static void gst_curl_sink_transfer_thread_notify_unlocked (GstCurlSink * sink); +static void gst_curl_sink_transfer_thread_close_unlocked (GstCurlSink * sink); +static void gst_curl_sink_wait_for_transfer_thread_to_send_unlocked (GstCurlSink + * sink); +static void gst_curl_sink_data_sent_notify_unlocked (GstCurlSink * sink); + +static void +_do_init (GType type) +{ + GST_DEBUG_CATEGORY_INIT (gst_curl_sink_debug, "curlsink", 0, + "curl sink element"); +} + +GST_BOILERPLATE_FULL (GstCurlSink, gst_curl_sink, GstBaseSink, + GST_TYPE_BASE_SINK, _do_init); + +static void +gst_curl_sink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sinktemplate)); + gst_element_class_set_details_simple (element_class, + "Curl sink", + "Sink/Network", + "Upload data over the network to a server using libcurl", + "Patricia Muscalu "); +} + +static void +gst_curl_sink_class_init (GstCurlSinkClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstBaseSinkClass *gstbasesink_class = (GstBaseSinkClass *) klass; + + GST_DEBUG_OBJECT (klass, "class_init"); + + gstbasesink_class->event = GST_DEBUG_FUNCPTR (gst_curl_sink_event); + gstbasesink_class->render = GST_DEBUG_FUNCPTR (gst_curl_sink_render); + gstbasesink_class->start = GST_DEBUG_FUNCPTR (gst_curl_sink_start); + gstbasesink_class->stop = GST_DEBUG_FUNCPTR (gst_curl_sink_stop); + gstbasesink_class->unlock = GST_DEBUG_FUNCPTR (gst_curl_sink_unlock); + gstbasesink_class->unlock_stop = + GST_DEBUG_FUNCPTR (gst_curl_sink_unlock_stop); + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_curl_sink_finalize); + + gobject_class->set_property = gst_curl_sink_set_property; + gobject_class->get_property = gst_curl_sink_get_property; + + /* FIXME: check against souphttpsrc and use same names for same properties */ + g_object_class_install_property (gobject_class, PROP_LOCATION, + g_param_spec_string ("location", "Location", + "URI location to write to", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USER_NAME, + g_param_spec_string ("user", "User name", + "User name to use for server authentication", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USER_PASSWD, + g_param_spec_string ("passwd", "User password", + "User password to use for server authentication", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY, + g_param_spec_string ("proxy", "Proxy", "HTTP proxy server URI", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY_PORT, + g_param_spec_int ("proxy-port", "Proxy port", + "HTTP proxy server port", 0, G_MAXINT, DEFAULT_PROXY_PORT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY_USER_NAME, + g_param_spec_string ("proxy-user", "Proxy user name", + "Proxy user name to use for proxy authentication", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_PROXY_USER_PASSWD, + g_param_spec_string ("proxy-passwd", "Proxy user password", + "Proxy user password to use for proxy authentication", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_FILE_NAME, + g_param_spec_string ("file-name", "Base file name", + "The base file name for the uploaded images", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_TIMEOUT, + g_param_spec_int ("timeout", "Timeout", + "Number of seconds waiting to write before timeout", + 0, G_MAXINT, DEFAULT_TIMEOUT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_QOS_DSCP, + g_param_spec_int ("qos-dscp", + "QoS diff srv code point", + "Quality of Service, differentiated services code point (0 default)", + DSCP_MIN, DSCP_MAX, DEFAULT_QOS_DSCP, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_ACCEPT_SELF_SIGNED, + g_param_spec_boolean ("accept-self-signed", + "Accept self-signed certificates", + "Accept self-signed SSL/TLS certificates", + DEFAULT_ACCEPT_SELF_SIGNED, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_USE_CONTENT_LENGTH, + g_param_spec_boolean ("use-content-length", "Use content length header", + "Use the Content-Length HTTP header instead of " + "Transfer-Encoding header", DEFAULT_USE_CONTENT_LENGTH, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, PROP_CONTENT_TYPE, + g_param_spec_string ("content-type", "Content type", + "The mime type of the body of the request", NULL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); +} + +static void +gst_curl_sink_init (GstCurlSink * sink, GstCurlSinkClass * klass) +{ + sink->transfer_buf = g_malloc (sizeof (TransferBuffer)); + sink->transfer_cond = g_malloc (sizeof (TransferCondition)); + sink->transfer_cond->cond = g_cond_new (); + sink->transfer_cond->data_sent = FALSE; + sink->transfer_cond->data_available = FALSE; + sink->timeout = DEFAULT_TIMEOUT; + sink->proxy_port = DEFAULT_PROXY_PORT; + sink->qos_dscp = DEFAULT_QOS_DSCP; + sink->url = g_strdup (DEFAULT_URL); + sink->header_list = NULL; + sink->accept_self_signed = DEFAULT_ACCEPT_SELF_SIGNED; + sink->use_content_length = DEFAULT_USE_CONTENT_LENGTH; + sink->transfer_thread_close = FALSE; + sink->new_file = TRUE; + sink->proxy_headers_set = FALSE; + sink->content_type = NULL; +} + +static void +gst_curl_sink_finalize (GObject * gobject) +{ + GstCurlSink *this = GST_CURL_SINK (gobject); + + GST_DEBUG ("finalizing curlsink"); + if (this->transfer_thread != NULL) { + g_thread_join (this->transfer_thread); + } + + gst_curl_sink_transfer_cleanup (this); + g_cond_free (this->transfer_cond->cond); + g_free (this->transfer_cond); + + g_free (this->transfer_buf); + + g_free (this->url); + g_free (this->user); + g_free (this->passwd); + g_free (this->proxy); + g_free (this->proxy_user); + g_free (this->proxy_passwd); + g_free (this->file_name); + g_free (this->content_type); + + if (this->header_list) { + curl_slist_free_all (this->header_list); + this->header_list = NULL; + } + + if (this->fdset != NULL) { + gst_poll_free (this->fdset); + this->fdset = NULL; + } + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + +static GstFlowReturn +gst_curl_sink_render (GstBaseSink * bsink, GstBuffer * buf) +{ + GstCurlSink *sink = GST_CURL_SINK (bsink); + guint8 *data; + size_t size; + GstFlowReturn ret; + + GST_LOG ("enter render"); + + sink = GST_CURL_SINK (bsink); + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + + if (sink->content_type == NULL) { + GstCaps *caps; + GstStructure *structure; + const gchar *mime_type; + + caps = buf->caps; + structure = gst_caps_get_structure (caps, 0); + mime_type = gst_structure_get_name (structure); + sink->content_type = g_strdup (mime_type); + } + + GST_OBJECT_LOCK (sink); + + /* check if the transfer thread has encountered problems while the + * pipeline thread was working elsewhere */ + if (sink->flow_ret != GST_FLOW_OK) { + goto done; + } + + g_assert (sink->transfer_cond->data_available == FALSE); + + /* if there is no transfer thread created, lets create one */ + if (sink->transfer_thread == NULL) { + if (!gst_curl_sink_transfer_start_unlocked (sink)) { + sink->flow_ret = GST_FLOW_ERROR; + goto done; + } + } + + /* make data available for the transfer thread and notify */ + sink->transfer_buf->ptr = data; + sink->transfer_buf->len = size; + sink->transfer_buf->offset = 0; + gst_curl_sink_transfer_thread_notify_unlocked (sink); + + /* wait for the transfer thread to send the data. This will be notified + * either when transfer is completed by the curl read callback or by + * the thread function if an error has occured. */ + gst_curl_sink_wait_for_transfer_thread_to_send_unlocked (sink); + +done: + ret = sink->flow_ret; + GST_OBJECT_UNLOCK (sink); + + GST_LOG ("exit render"); + + return ret; +} + +static gboolean +gst_curl_sink_event (GstBaseSink * bsink, GstEvent * event) +{ + GstCurlSink *sink = GST_CURL_SINK (bsink); + + switch (event->type) { + case GST_EVENT_EOS: + GST_DEBUG_OBJECT (sink, "received EOS"); + GST_OBJECT_LOCK (sink); + gst_curl_sink_transfer_thread_close_unlocked (sink); + GST_OBJECT_UNLOCK (sink); + if (sink->transfer_thread != NULL) { + g_thread_join (sink->transfer_thread); + sink->transfer_thread = NULL; + } + break; + default: + break; + } + return TRUE; +} + +static gboolean +gst_curl_sink_start (GstBaseSink * bsink) +{ + GstCurlSink *sink; + + sink = GST_CURL_SINK (bsink); + + if ((sink->fdset = gst_poll_new (TRUE)) == NULL) { + GST_ELEMENT_ERROR (sink, RESOURCE, OPEN_READ_WRITE, + ("gst_poll_new failed: %s", g_strerror (errno)), (NULL)); + return FALSE; + } + + return TRUE; +} + +static gboolean +gst_curl_sink_stop (GstBaseSink * bsink) +{ + GstCurlSink *sink = GST_CURL_SINK (bsink); + + GST_OBJECT_LOCK (sink); + gst_curl_sink_transfer_thread_close_unlocked (sink); + GST_OBJECT_UNLOCK (sink); + if (sink->fdset != NULL) { + gst_poll_free (sink->fdset); + sink->fdset = NULL; + } + + return TRUE; +} + +static gboolean +gst_curl_sink_unlock (GstBaseSink * bsink) +{ + GstCurlSink *sink; + + sink = GST_CURL_SINK (bsink); + + GST_LOG_OBJECT (sink, "Flushing"); + gst_poll_set_flushing (sink->fdset, TRUE); + + return TRUE; +} + +static gboolean +gst_curl_sink_unlock_stop (GstBaseSink * bsink) +{ + GstCurlSink *sink; + + sink = GST_CURL_SINK (bsink); + + GST_LOG_OBJECT (sink, "No longer flushing"); + gst_poll_set_flushing (sink->fdset, FALSE); + + return TRUE; +} + +static void +gst_curl_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstCurlSink *sink; + GstState cur_state; + + g_return_if_fail (GST_IS_CURL_SINK (object)); + sink = GST_CURL_SINK (object); + + gst_element_get_state (GST_ELEMENT (sink), &cur_state, NULL, 0); + if (cur_state != GST_STATE_PLAYING && cur_state != GST_STATE_PAUSED) { + GST_OBJECT_LOCK (sink); + + switch (prop_id) { + case PROP_LOCATION: + g_free (sink->url); + sink->url = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "url set to %s", sink->url); + break; + case PROP_USER_NAME: + g_free (sink->user); + sink->user = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "user set to %s", sink->user); + break; + case PROP_USER_PASSWD: + g_free (sink->passwd); + sink->passwd = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "passwd set to %s", sink->passwd); + break; + case PROP_PROXY: + g_free (sink->proxy); + sink->proxy = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "proxy set to %s", sink->proxy); + break; + case PROP_PROXY_PORT: + sink->proxy_port = g_value_get_int (value); + GST_DEBUG_OBJECT (sink, "proxy port set to %d", sink->proxy_port); + break; + case PROP_PROXY_USER_NAME: + g_free (sink->proxy_user); + sink->proxy_user = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "proxy user set to %s", sink->proxy_user); + break; + case PROP_PROXY_USER_PASSWD: + g_free (sink->proxy_passwd); + sink->proxy_passwd = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "proxy password set to %s", sink->proxy_passwd); + break; + case PROP_FILE_NAME: + g_free (sink->file_name); + sink->file_name = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "file_name set to %s", sink->file_name); + break; + case PROP_TIMEOUT: + sink->timeout = g_value_get_int (value); + GST_DEBUG_OBJECT (sink, "timeout set to %d", sink->timeout); + break; + case PROP_QOS_DSCP: + sink->qos_dscp = g_value_get_int (value); + gst_curl_sink_setup_dscp_unlocked (sink); + GST_DEBUG_OBJECT (sink, "dscp set to %d", sink->qos_dscp); + break; + case PROP_ACCEPT_SELF_SIGNED: + sink->accept_self_signed = g_value_get_boolean (value); + GST_DEBUG_OBJECT (sink, "accept_self_signed set to %d", + sink->accept_self_signed); + break; + case PROP_USE_CONTENT_LENGTH: + sink->use_content_length = g_value_get_boolean (value); + GST_DEBUG_OBJECT (sink, "use_content_length set to %d", + sink->use_content_length); + break; + case PROP_CONTENT_TYPE: + g_free (sink->content_type); + sink->content_type = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "content type set to %s", sink->content_type); + break; + default: + GST_DEBUG_OBJECT (sink, "invalid property id %d", prop_id); + break; + } + + GST_OBJECT_UNLOCK (sink); + + return; + } + + /* in PLAYING or PAUSED state */ + GST_OBJECT_LOCK (sink); + + switch (prop_id) { + case PROP_FILE_NAME: + g_free (sink->file_name); + sink->file_name = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "file_name set to %s", sink->file_name); + gst_curl_sink_new_file_notify_unlocked (sink); + break; + case PROP_TIMEOUT: + sink->timeout = g_value_get_int (value); + GST_DEBUG_OBJECT (sink, "timeout set to %d", sink->timeout); + break; + case PROP_QOS_DSCP: + sink->qos_dscp = g_value_get_int (value); + gst_curl_sink_setup_dscp_unlocked (sink); + GST_DEBUG_OBJECT (sink, "dscp set to %d", sink->qos_dscp); + break; + case PROP_CONTENT_TYPE: + g_free (sink->content_type); + sink->content_type = g_value_dup_string (value); + GST_DEBUG_OBJECT (sink, "content type set to %s", sink->content_type); + break; + default: + GST_WARNING_OBJECT (sink, "cannot set property when PLAYING"); + break; + } + + GST_OBJECT_UNLOCK (sink); +} + +static void +gst_curl_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstCurlSink *sink; + + g_return_if_fail (GST_IS_CURL_SINK (object)); + sink = GST_CURL_SINK (object); + + switch (prop_id) { + case PROP_LOCATION: + g_value_set_string (value, sink->url); + break; + case PROP_USER_NAME: + g_value_set_string (value, sink->user); + break; + case PROP_USER_PASSWD: + g_value_set_string (value, sink->passwd); + break; + case PROP_PROXY: + g_value_set_string (value, sink->proxy); + break; + case PROP_PROXY_PORT: + g_value_set_int (value, sink->proxy_port); + break; + case PROP_PROXY_USER_NAME: + g_value_set_string (value, sink->proxy_user); + break; + case PROP_PROXY_USER_PASSWD: + g_value_set_string (value, sink->proxy_passwd); + break; + case PROP_FILE_NAME: + g_value_set_string (value, sink->file_name); + break; + case PROP_TIMEOUT: + g_value_set_int (value, sink->timeout); + break; + case PROP_QOS_DSCP: + g_value_set_int (value, sink->qos_dscp); + break; + case PROP_ACCEPT_SELF_SIGNED: + g_value_set_boolean (value, sink->accept_self_signed); + break; + case PROP_USE_CONTENT_LENGTH: + g_value_set_boolean (value, sink->use_content_length); + break; + case PROP_CONTENT_TYPE: + g_value_set_string (value, sink->content_type); + break; + default: + GST_DEBUG_OBJECT (sink, "invalid property id"); + break; + } +} + +static void +gst_curl_sink_set_http_header_unlocked (GstCurlSink * sink) +{ + gchar *tmp; + + if (sink->header_list) { + curl_slist_free_all (sink->header_list); + sink->header_list = NULL; + } + + if (proxy_auth && !sink->proxy_headers_set && !proxy_conn_established) { + sink->header_list = + curl_slist_append (sink->header_list, "Content-Length: 0"); + sink->proxy_headers_set = TRUE; + goto set_headers; + } + if (sink->use_content_length) { + /* if content length is used we assume that every buffer is one + * entire file, which is the case when uploading several jpegs */ + tmp = g_strdup_printf ("Content-Length: %d", (int) sink->transfer_buf->len); + sink->header_list = curl_slist_append (sink->header_list, tmp); + g_free (tmp); + } else { + /* when sending a POST request to a HTTP 1.1 server, you can send data + * without knowing the size before starting the POST if you use chunked + * encoding */ + sink->header_list = curl_slist_append (sink->header_list, + "Transfer-Encoding: chunked"); + } + + tmp = g_strdup_printf ("Content-Type: %s", sink->content_type); + sink->header_list = curl_slist_append (sink->header_list, tmp); + g_free (tmp); + +set_headers: + + tmp = g_strdup_printf ("Content-Disposition: attachment; filename=" + "\"%s\"", sink->file_name); + sink->header_list = curl_slist_append (sink->header_list, tmp); + g_free (tmp); + curl_easy_setopt (sink->curl, CURLOPT_HTTPHEADER, sink->header_list); +} + +static gboolean +gst_curl_sink_transfer_set_options_unlocked (GstCurlSink * sink) +{ +#ifdef DEBUG + curl_easy_setopt (sink->curl, CURLOPT_VERBOSE, 1); +#endif + + curl_easy_setopt (sink->curl, CURLOPT_URL, sink->url); + curl_easy_setopt (sink->curl, CURLOPT_CONNECTTIMEOUT, sink->timeout); + + curl_easy_setopt (sink->curl, CURLOPT_SOCKOPTDATA, sink); + curl_easy_setopt (sink->curl, CURLOPT_SOCKOPTFUNCTION, + gst_curl_sink_transfer_socket_cb); + + if (sink->user != NULL && strlen (sink->user)) { + curl_easy_setopt (sink->curl, CURLOPT_USERNAME, sink->user); + curl_easy_setopt (sink->curl, CURLOPT_PASSWORD, sink->passwd); + curl_easy_setopt (sink->curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY); + } + + if (sink->accept_self_signed && g_str_has_prefix (sink->url, "https")) { + /* TODO verify the authenticity of the peer's certificate */ + curl_easy_setopt (sink->curl, CURLOPT_SSL_VERIFYPEER, 0L); + /* TODO check the servers's claimed identity */ + curl_easy_setopt (sink->curl, CURLOPT_SSL_VERIFYHOST, 0L); + } + + /* proxy settings */ + if (sink->proxy != NULL && strlen (sink->proxy)) { + if (curl_easy_setopt (sink->curl, CURLOPT_PROXY, sink->proxy) + != CURLE_OK) { + return FALSE; + } + if (curl_easy_setopt (sink->curl, CURLOPT_PROXYPORT, sink->proxy_port) + != CURLE_OK) { + return FALSE; + } + if (sink->proxy_user != NULL && + strlen (sink->proxy_user) && + sink->proxy_passwd != NULL && strlen (sink->proxy_passwd)) { + curl_easy_setopt (sink->curl, CURLOPT_PROXYUSERNAME, sink->proxy_user); + curl_easy_setopt (sink->curl, CURLOPT_PROXYPASSWORD, sink->proxy_passwd); + curl_easy_setopt (sink->curl, CURLOPT_PROXYAUTH, CURLAUTH_ANY); + proxy_auth = TRUE; + } + /* tunnel all operations through a given HTTP proxy */ + if (curl_easy_setopt (sink->curl, CURLOPT_HTTPPROXYTUNNEL, 1L) + != CURLE_OK) { + return FALSE; + } + } + + /* POST options */ + curl_easy_setopt (sink->curl, CURLOPT_POST, 1L); + + curl_easy_setopt (sink->curl, CURLOPT_READFUNCTION, + gst_curl_sink_transfer_read_cb); + curl_easy_setopt (sink->curl, CURLOPT_READDATA, sink); + curl_easy_setopt (sink->curl, CURLOPT_WRITEFUNCTION, + gst_curl_sink_transfer_write_cb); + + return TRUE; +} + +static size_t +gst_curl_sink_transfer_read_cb (void *curl_ptr, size_t size, size_t nmemb, + void *stream) +{ + GstCurlSink *sink; + TransferBuffer *buffer; + size_t max_bytes_to_send; + guint buf_len; + + sink = (GstCurlSink *) stream; + + /* wait for data to come available, if new file or thread close is set + * then zero will be returned to indicate end of current transfer */ + GST_OBJECT_LOCK (sink); + if (gst_curl_sink_wait_for_data_unlocked (sink) == FALSE) { + GST_LOG ("returning 0, no more data to send in this file"); + GST_OBJECT_UNLOCK (sink); + return 0; + } + GST_OBJECT_UNLOCK (sink); + + + max_bytes_to_send = size * nmemb; + buffer = sink->transfer_buf; + + buf_len = buffer->len; + GST_LOG ("write buf len=%" G_GSIZE_FORMAT ", offset=%" G_GSIZE_FORMAT, + buffer->len, buffer->offset); + + /* more data in buffer */ + if (buffer->len > 0) { + size_t bytes_to_send = MIN (max_bytes_to_send, buf_len); + + memcpy ((guint8 *) curl_ptr, buffer->ptr + buffer->offset, bytes_to_send); + + buffer->offset = buffer->offset + bytes_to_send; + buffer->len = buffer->len - bytes_to_send; + + /* the last data chunk */ + if (bytes_to_send == buf_len) { + buffer->ptr = NULL; + buffer->offset = 0; + buffer->len = 0; + GST_OBJECT_LOCK (sink); + gst_curl_sink_data_sent_notify_unlocked (sink); + GST_OBJECT_UNLOCK (sink); + } + + GST_LOG ("sent : %" G_GSIZE_FORMAT, bytes_to_send); + + return bytes_to_send; + } else { + GST_WARNING ("got zero-length buffer"); + return 0; + } +} + +static size_t +gst_curl_sink_transfer_write_cb (void G_GNUC_UNUSED * ptr, size_t size, + size_t nmemb, void G_GNUC_UNUSED * stream) +{ + size_t realsize = size * nmemb; + + GST_DEBUG ("response %s", (gchar *) ptr); + return realsize; +} + +static CURLcode +gst_curl_sink_transfer_check (GstCurlSink * sink) +{ + CURLcode code = CURLE_OK; + CURL *easy; + CURLMsg *msg; + gint msgs_left; + gchar *eff_url = NULL; + + do { + easy = NULL; + while ((msg = curl_multi_info_read (sink->multi_handle, &msgs_left))) { + if (msg->msg == CURLMSG_DONE) { + easy = msg->easy_handle; + code = msg->data.result; + break; + } + } + if (easy) { + curl_easy_getinfo (easy, CURLINFO_EFFECTIVE_URL, &eff_url); + GST_DEBUG ("transfer done %s (%s-%d)\n", eff_url, + curl_easy_strerror (code), code); + } + } while (easy); + + return code; +} + +static GstFlowReturn +gst_curl_sink_handle_transfer (GstCurlSink * sink) +{ + gint retval; + gint running_handles; + gint timeout; + CURLMcode m_code; + CURLcode e_code; + glong resp = -1; + glong resp_proxy = -1; + + GST_OBJECT_LOCK (sink); + timeout = sink->timeout; + GST_OBJECT_UNLOCK (sink); + + /* Receiving CURLM_CALL_MULTI_PERFORM means that libcurl may have more data + available to send or receive - call simply curl_multi_perform before + poll() on more actions */ + do { + m_code = curl_multi_perform (sink->multi_handle, &running_handles); + } while (m_code == CURLM_CALL_MULTI_PERFORM); + + while (running_handles && (m_code == CURLM_OK)) { + if (!proxy_conn_established && (resp_proxy != RESPONSE_CONNECT_PROXY) + && proxy_auth) { + curl_easy_getinfo (sink->curl, CURLINFO_HTTP_CONNECTCODE, &resp_proxy); + if ((resp_proxy == RESPONSE_CONNECT_PROXY)) { + GST_LOG ("received HTTP/1.0 200 Connection Established"); + /* Workaround: redefine HTTP headers before connecting to HTTP server. + * When talking to proxy, the Content-Length: 0 is send with the request. + */ + curl_multi_remove_handle (sink->multi_handle, sink->curl); + gst_curl_sink_set_http_header_unlocked (sink); + curl_multi_add_handle (sink->multi_handle, sink->curl); + proxy_conn_established = TRUE; + } + } + + retval = gst_poll_wait (sink->fdset, timeout * GST_SECOND); + if (G_UNLIKELY (retval == -1)) { + if (errno == EAGAIN || errno == EINTR) { + GST_DEBUG_OBJECT (sink, "interrupted by signal"); + } else if (errno == EBUSY) { + goto poll_stopped; + } else { + goto poll_error; + } + } else if (G_UNLIKELY (retval == 0)) { + GST_DEBUG ("timeout"); + goto poll_timeout; + } + + /* readable/writable sockets */ + do { + m_code = curl_multi_perform (sink->multi_handle, &running_handles); + } while (m_code == CURLM_CALL_MULTI_PERFORM); + + if (resp != RESPONSE_100_CONTINUE) { + curl_easy_getinfo (sink->curl, CURLINFO_RESPONSE_CODE, &resp); + } + } + + if (resp != RESPONSE_100_CONTINUE) { + /* No 100 Continue response received. Using POST with HTTP 1.1 implies + * the use of a "Expect: 100-continue" header. If the server doesn't + * send HTTP/1.1 100 Continue, libcurl will not call transfer_read_cb + * in order to send POST data. + */ + goto no_100_continue_response; + } + + if (m_code != CURLM_OK) { + goto curl_multi_error; + } + + /* problems still might have occurred on individual transfers even when + * curl_multi_perform returns CURLM_OK */ + if ((e_code = gst_curl_sink_transfer_check (sink)) != CURLE_OK) { + goto curl_easy_error; + } + + /* check response code */ + curl_easy_getinfo (sink->curl, CURLINFO_RESPONSE_CODE, &resp); + GST_DEBUG_OBJECT (sink, "response code: %ld", resp); + if (resp < 200 || resp >= 300) { + goto response_error; + } + + return GST_FLOW_OK; + +poll_error: + { + GST_DEBUG_OBJECT (sink, "poll failed: %s", g_strerror (errno)); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("poll failed"), (NULL)); + return GST_FLOW_ERROR; + } + +poll_stopped: + { + GST_DEBUG_OBJECT (sink, "poll stopped"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("poll stopped"), (NULL)); + return GST_FLOW_ERROR; + } + +poll_timeout: + { + GST_DEBUG_OBJECT (sink, "poll timed out"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("poll timed out"), (NULL)); + return GST_FLOW_ERROR; + } + +curl_multi_error: + { + GST_DEBUG_OBJECT (sink, "curl multi error"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("%s", + curl_multi_strerror (m_code)), (NULL)); + return GST_FLOW_ERROR; + } + +curl_easy_error: + { + GST_DEBUG_OBJECT (sink, "curl easy error"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("%s", + curl_easy_strerror (e_code)), (NULL)); + return GST_FLOW_ERROR; + } + +no_100_continue_response: + { + GST_DEBUG_OBJECT (sink, "100 continue response missing"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("100 continue response missing"), + (NULL)); + return GST_FLOW_ERROR; + } + +response_error: + { + GST_DEBUG_OBJECT (sink, "response error"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("response error: %ld", resp), + (NULL)); + return GST_FLOW_ERROR; + } +} + +/* This function gets called by libcurl after the socket() call but before + * the connect() call. */ +static int +gst_curl_sink_transfer_socket_cb (void *clientp, curl_socket_t curlfd, + curlsocktype G_GNUC_UNUSED purpose) +{ + GstCurlSink *sink; + gboolean ret = TRUE; + + sink = (GstCurlSink *) clientp; + + g_assert (sink); + + if (curlfd < 0) { + /* signal an unrecoverable error to the library which will close the socket + and return CURLE_COULDNT_CONNECT + */ + return 1; + } + + gst_poll_fd_init (&sink->fd); + sink->fd.fd = curlfd; + + ret = ret && gst_poll_add_fd (sink->fdset, &sink->fd); + ret = ret && gst_poll_fd_ctl_write (sink->fdset, &sink->fd, TRUE); + ret = ret && gst_poll_fd_ctl_read (sink->fdset, &sink->fd, TRUE); + GST_DEBUG ("fd: %d", sink->fd.fd); + GST_OBJECT_LOCK (sink); + gst_curl_sink_setup_dscp_unlocked (sink); + GST_OBJECT_UNLOCK (sink); + + /* success */ + if (ret) { + return 0; + } else { + return 1; + } +} + +static gboolean +gst_curl_sink_transfer_start_unlocked (GstCurlSink * sink) +{ + GError *error = NULL; + gboolean ret = TRUE; + + GST_LOG ("creating transfer thread"); + sink->transfer_thread_close = FALSE; + sink->new_file = TRUE; + sink->transfer_thread = + g_thread_create ((GThreadFunc) gst_curl_sink_transfer_thread_func, sink, + TRUE, &error); + + if (sink->transfer_thread == NULL || error != NULL) { + ret = FALSE; + if (error) { + GST_ERROR_OBJECT (sink, "could not create thread %s", error->message); + g_error_free (error); + } else { + GST_ERROR_OBJECT (sink, "could not create thread for unknown reason"); + } + } + + return ret; +} + +static gpointer +gst_curl_sink_transfer_thread_func (gpointer data) +{ + GstCurlSink *sink = (GstCurlSink *) data; + GstFlowReturn ret = GST_FLOW_OK; + gboolean data_available; + + GST_LOG ("transfer thread started"); + GST_OBJECT_LOCK (sink); + if (!gst_curl_sink_transfer_setup_unlocked (sink)) { + GST_DEBUG_OBJECT (sink, "curl setup error"); + GST_ELEMENT_ERROR (sink, RESOURCE, WRITE, ("curl setup error"), (NULL)); + sink->flow_ret = GST_FLOW_ERROR; + goto done; + } + + while (!sink->transfer_thread_close && sink->flow_ret == GST_FLOW_OK) { + /* we are working on a new file, clearing flag and setting file + * name in http header */ + sink->new_file = FALSE; + + /* wait for data to arrive for this new file, if we get a new file name + * again before getting data we will simply skip transfering anything + * for this file and go directly to the new file */ + data_available = gst_curl_sink_wait_for_data_unlocked (sink); + if (data_available) { + gst_curl_sink_set_http_header_unlocked (sink); + } + + /* stay unlocked while handling the actual transfer */ + GST_OBJECT_UNLOCK (sink); + + if (data_available) { + curl_multi_add_handle (sink->multi_handle, sink->curl); + + /* Start driving the transfer. */ + ret = gst_curl_sink_handle_transfer (sink); + + /* easy handle will be possibly re-used for next transfer, thus it needs to + * be removed from the multi stack and re-added again */ + curl_multi_remove_handle (sink->multi_handle, sink->curl); + } + + /* lock again before looping to check the thread closed flag */ + GST_OBJECT_LOCK (sink); + + /* if we have transfered data, then set the return code */ + if (data_available) { + sink->flow_ret = ret; + } + } + +done: + /* if there is a flow error, always notify the render function so it + * can return the flow error up along the pipeline */ + if (sink->flow_ret != GST_FLOW_OK) { + gst_curl_sink_data_sent_notify_unlocked (sink); + } + + GST_OBJECT_UNLOCK (sink); + GST_DEBUG ("exit thread func - transfer thread close flag: %d", + sink->transfer_thread_close); + + return NULL; +} + +static gboolean +gst_curl_sink_transfer_setup_unlocked (GstCurlSink * sink) +{ + g_assert (sink); + + if (sink->curl == NULL) { + /* curl_easy_init automatically calls curl_global_init(3) */ + if ((sink->curl = curl_easy_init ()) == NULL) { + g_warning ("Failed to init easy handle"); + return FALSE; + } + } + + if (!gst_curl_sink_transfer_set_options_unlocked (sink)) { + g_warning ("Failed to setup easy handle"); + GST_OBJECT_UNLOCK (sink); + return FALSE; + } + + /* init a multi stack (non-blocking interface to liburl) */ + if (sink->multi_handle == NULL) { + if ((sink->multi_handle = curl_multi_init ()) == NULL) { + return FALSE; + } + } + + return TRUE; +} + +static void +gst_curl_sink_transfer_cleanup (GstCurlSink * sink) +{ + if (sink->curl != NULL) { + if (sink->multi_handle != NULL) { + curl_multi_remove_handle (sink->multi_handle, sink->curl); + } + curl_easy_cleanup (sink->curl); + sink->curl = NULL; + } + + if (sink->multi_handle != NULL) { + curl_multi_cleanup (sink->multi_handle); + sink->multi_handle = NULL; + } +} + +static gboolean +gst_curl_sink_wait_for_data_unlocked (GstCurlSink * sink) +{ + gboolean data_available = FALSE; + + GST_LOG ("waiting for data"); + while (!sink->transfer_cond->data_available && + !sink->transfer_thread_close && !sink->new_file) { + g_cond_wait (sink->transfer_cond->cond, GST_OBJECT_GET_LOCK (sink)); + } + + if (sink->transfer_thread_close) { + GST_LOG ("wait for data aborted due to thread close"); + } else if (sink->new_file) { + GST_LOG ("wait for data aborted due to new file name"); + } else { + GST_LOG ("wait for data completed"); + data_available = TRUE; + } + + return data_available; +} + +static void +gst_curl_sink_transfer_thread_notify_unlocked (GstCurlSink * sink) +{ + GST_LOG ("more data to send"); + sink->transfer_cond->data_available = TRUE; + sink->transfer_cond->data_sent = FALSE; + g_cond_signal (sink->transfer_cond->cond); +} + +static void +gst_curl_sink_new_file_notify_unlocked (GstCurlSink * sink) +{ + GST_LOG ("new file name"); + sink->new_file = TRUE; + g_cond_signal (sink->transfer_cond->cond); +} + +static void +gst_curl_sink_transfer_thread_close_unlocked (GstCurlSink * sink) +{ + GST_LOG ("setting transfer thread close flag"); + sink->transfer_thread_close = TRUE; + g_cond_signal (sink->transfer_cond->cond); +} + +static void +gst_curl_sink_wait_for_transfer_thread_to_send_unlocked (GstCurlSink * sink) +{ + GST_LOG ("waiting for buffer send to complete"); + + /* this function should not check if the transfer thread is set to be closed + * since that flag only can be set by the EoS event (by the pipeline thread). + * This can therefore never happen while this function is running since this + * function also is called by the pipeline thread (in the render function) */ + while (!sink->transfer_cond->data_sent) { + g_cond_wait (sink->transfer_cond->cond, GST_OBJECT_GET_LOCK (sink)); + } + GST_LOG ("buffer send completed"); +} + +static void +gst_curl_sink_data_sent_notify_unlocked (GstCurlSink * sink) +{ + GST_LOG ("transfer completed"); + sink->transfer_cond->data_available = FALSE; + sink->transfer_cond->data_sent = TRUE; + g_cond_signal (sink->transfer_cond->cond); +} + +static gint +gst_curl_sink_setup_dscp_unlocked (GstCurlSink * sink) +{ + gint tos; + gint af; + gint ret = -1; + union + { + struct sockaddr sa; + struct sockaddr_in6 sa_in6; + struct sockaddr_storage sa_stor; + } sa; + socklen_t slen = sizeof (sa); + + if (getsockname (sink->fd.fd, &sa.sa, &slen) < 0) { + GST_DEBUG_OBJECT (sink, "could not get sockname: %s", g_strerror (errno)); + return ret; + } + af = sa.sa.sa_family; + + /* if this is an IPv4-mapped address then do IPv4 QoS */ + if (af == AF_INET6) { + GST_DEBUG_OBJECT (sink, "check IP6 socket"); + if (IN6_IS_ADDR_V4MAPPED (&(sa.sa_in6.sin6_addr))) { + GST_DEBUG_OBJECT (sink, "mapped to IPV4"); + af = AF_INET; + } + } + /* extract and shift 6 bits of the DSCP */ + tos = (sink->qos_dscp & 0x3f) << 2; + + switch (af) { + case AF_INET: + ret = setsockopt (sink->fd.fd, IPPROTO_IP, IP_TOS, &tos, sizeof (tos)); + break; + case AF_INET6: +#ifdef IPV6_TCLASS + ret = setsockopt (sink->fd.fd, IPPROTO_IPV6, IPV6_TCLASS, &tos, + sizeof (tos)); + break; +#endif + default: + GST_ERROR_OBJECT (sink, "unsupported AF"); + break; + } + if (ret) { + GST_DEBUG_OBJECT (sink, "could not set DSCP: %s", g_strerror (errno)); + } + + return ret; +} diff --git a/ext/curl/gstcurlsink.h b/ext/curl/gstcurlsink.h new file mode 100644 index 0000000..d158577 --- /dev/null +++ b/ext/curl/gstcurlsink.h @@ -0,0 +1,100 @@ +/* GStreamer + * Copyright (C) 2011 Axis Communications + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_CURL_SINK__ +#define __GST_CURL_SINK__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_CURL_SINK \ + (gst_curl_sink_get_type()) +#define GST_CURL_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_CURL_SINK, GstCurlSink)) +#define GST_CURL_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_CURL_SINK, GstCurlSinkClass)) +#define GST_IS_CURL_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_CURL_SINK)) +#define GST_IS_CURL_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_CURL_SINK)) + +typedef struct _GstCurlSink GstCurlSink; +typedef struct _GstCurlSinkClass GstCurlSinkClass; + +typedef struct _TransferBuffer TransferBuffer; +typedef struct _TransferCondition TransferCondition; + +struct _TransferBuffer { + guint8 *ptr; + size_t len; + size_t offset; +}; + +struct _TransferCondition { + GCond *cond; + gboolean data_sent; + gboolean data_available; +}; + +struct _GstCurlSink +{ + GstBaseSink parent; + + /*< private >*/ + CURLM *multi_handle; + CURL *curl; + struct curl_slist *header_list; + GstPollFD fd; + GstPoll *fdset; + GThread *transfer_thread; + GstFlowReturn flow_ret; + TransferBuffer *transfer_buf; + TransferCondition *transfer_cond; + gint num_buffers_per_packet; + gint timeout; + gchar *url; + gchar *user; + gchar *passwd; + gchar *proxy; + guint proxy_port; + gchar *proxy_user; + gchar *proxy_passwd; + gchar *file_name; + guint qos_dscp; + gboolean accept_self_signed; + gboolean use_content_length; + gboolean transfer_thread_close; + gboolean new_file; + gchar *content_type; + gboolean proxy_headers_set; +}; + +struct _GstCurlSinkClass +{ + GstBaseSinkClass parent_class; +}; + +GType gst_curl_sink_get_type (void); + +G_END_DECLS + +#endif diff --git a/ext/dc1394/Makefile.am b/ext/dc1394/Makefile.am new file mode 100644 index 0000000..6b09532 --- /dev/null +++ b/ext/dc1394/Makefile.am @@ -0,0 +1,16 @@ + +plugin_LTLIBRARIES = libgstdc1394.la + +libgstdc1394_la_SOURCES = gstdc1394.c + + +libgstdc1394_la_CFLAGS = $(GST_CFLAGS) \ + $(LIBDC1394_CFLAGS) + +libgstdc1394_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdc1394_la_LIBTOOLFLAGS = --tag=disable-static + +libgstdc1394_la_LIBADD = $(GST_BASE_LIBS) \ + $(LIBDC1394_LIBS) + +noinst_HEADERS = gstdc1394.h diff --git a/ext/dc1394/Makefile.in b/ext/dc1394/Makefile.in new file mode 100644 index 0000000..90c74e3 --- /dev/null +++ b/ext/dc1394/Makefile.in @@ -0,0 +1,859 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/dc1394 +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdc1394_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdc1394_la_OBJECTS = libgstdc1394_la-gstdc1394.lo +libgstdc1394_la_OBJECTS = $(am_libgstdc1394_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstdc1394_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdc1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstdc1394_la_CFLAGS) $(CFLAGS) \ + $(libgstdc1394_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstdc1394_la_SOURCES) +DIST_SOURCES = $(libgstdc1394_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdc1394.la +libgstdc1394_la_SOURCES = gstdc1394.c +libgstdc1394_la_CFLAGS = $(GST_CFLAGS) \ + $(LIBDC1394_CFLAGS) + +libgstdc1394_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdc1394_la_LIBTOOLFLAGS = --tag=disable-static +libgstdc1394_la_LIBADD = $(GST_BASE_LIBS) \ + $(LIBDC1394_LIBS) + +noinst_HEADERS = gstdc1394.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dc1394/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/dc1394/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstdc1394.la: $(libgstdc1394_la_OBJECTS) $(libgstdc1394_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdc1394_la_LINK) -rpath $(plugindir) $(libgstdc1394_la_OBJECTS) $(libgstdc1394_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdc1394_la-gstdc1394.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstdc1394_la-gstdc1394.lo: gstdc1394.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdc1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdc1394_la_CFLAGS) $(CFLAGS) -MT libgstdc1394_la-gstdc1394.lo -MD -MP -MF $(DEPDIR)/libgstdc1394_la-gstdc1394.Tpo -c -o libgstdc1394_la-gstdc1394.lo `test -f 'gstdc1394.c' || echo '$(srcdir)/'`gstdc1394.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdc1394_la-gstdc1394.Tpo $(DEPDIR)/libgstdc1394_la-gstdc1394.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdc1394.c' object='libgstdc1394_la-gstdc1394.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdc1394_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdc1394_la_CFLAGS) $(CFLAGS) -c -o libgstdc1394_la-gstdc1394.lo `test -f 'gstdc1394.c' || echo '$(srcdir)/'`gstdc1394.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/dc1394/gstdc1394.c b/ext/dc1394/gstdc1394.c new file mode 100644 index 0000000..94fcffb --- /dev/null +++ b/ext/dc1394/gstdc1394.c @@ -0,0 +1,1284 @@ +/* GStreamer + * Copyright (C) <2006> Eric Jonas + * Copyright (C) <2006> Antoine Tremblay + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-dc1394 + * + * Source for IIDC (Instrumentation & Industrial Digital Camera) firewire + * cameras. + * + * + * Example launch line + * |[ + * gst-launch -v dc1394 camera-number=0 ! xvimagesink + * ]| + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include "gstdc1394.h" +#include +#include +#include + +GST_DEBUG_CATEGORY (dc1394_debug); +#define GST_CAT_DEFAULT dc1394_debug + +enum +{ + PROP_0, + PROP_TIMESTAMP_OFFSET, + PROP_CAMNUM, + PROP_BUFSIZE, + PROP_ISO_SPEED + /* FILL ME */ +}; + + +GST_BOILERPLATE (GstDc1394, gst_dc1394, GstPushSrc, GST_TYPE_PUSH_SRC); + +static void gst_dc1394_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_dc1394_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstCaps *gst_dc1394_getcaps (GstBaseSrc * bsrc); +static gboolean gst_dc1394_setcaps (GstBaseSrc * bsrc, GstCaps * caps); +static void gst_dc1394_src_fixate (GstPad * pad, GstCaps * caps); + +static void gst_dc1394_get_times (GstBaseSrc * basesrc, + GstBuffer * buffer, GstClockTime * start, GstClockTime * end); + +static GstFlowReturn gst_dc1394_create (GstPushSrc * psrc, GstBuffer ** buffer); + +static GstStateChangeReturn +gst_dc1394_change_state (GstElement * element, GstStateChange transition); + +static gboolean gst_dc1394_parse_caps (const GstCaps * caps, + gint * width, + gint * height, + gint * rate_numerator, gint * rate_denominator, gint * vmode, gint * bpp); + +static gint gst_dc1394_caps_set_format_vmode_caps (GstStructure * st, + gint mode); +static gboolean gst_dc1394_set_caps_color (GstStructure * gs, gint mc); +static void gst_dc1394_set_caps_framesize (GstStructure * gs, gint width, + gint height); +static void gst_dc1394_set_caps_framesize_range (GstStructure * gs, + gint minwidth, gint maxwidth, gint incwidth, + gint minheight, gint maxheight, gint incheight); + +static gint gst_dc1394_caps_set_framerate_list (GstStructure * gs, + dc1394framerates_t * framerates); + +static GstCaps *gst_dc1394_get_all_dc1394_caps (void); +static GstCaps *gst_dc1394_get_cam_caps (GstDc1394 * src); +static gboolean gst_dc1394_open_cam_with_best_caps (GstDc1394 * src); +static gint gst_dc1394_framerate_frac_to_const (gint num, gint denom); +static void gst_dc1394_framerate_const_to_frac (gint framerateconst, + GValue * framefrac); +static gboolean +gst_dc1394_change_camera_transmission (GstDc1394 * src, gboolean on); + +static void +gst_dc1394_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "1394 IIDC Video Source", + "Source/Video", + "libdc1394 based source, supports 1394 IIDC cameras", + "Antoine Tremblay "); + + gst_element_class_add_pad_template (element_class, + gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + gst_dc1394_get_all_dc1394_caps ())); + +} + +static void +gst_dc1394_class_init (GstDc1394Class * klass) +{ + GObjectClass *gobject_class; + GstBaseSrcClass *gstbasesrc_class; + GstPushSrcClass *gstpushsrc_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstbasesrc_class = (GstBaseSrcClass *) klass; + gstpushsrc_class = (GstPushSrcClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_dc1394_set_property; + gobject_class->get_property = gst_dc1394_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_TIMESTAMP_OFFSET, g_param_spec_int64 ("timestamp-offset", + "Timestamp offset", + "An offset added to timestamps set on buffers (in ns)", G_MININT64, + G_MAXINT64, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_CAMNUM, g_param_spec_int ("camera-number", + "The number of the camera on the firewire bus", + "The number of the camera on the firewire bus", 0, + G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_BUFSIZE, g_param_spec_int ("buffer-size", + "The number of frames in the dma ringbuffer", + "The number of frames in the dma ringbuffer", 1, + G_MAXINT, 10, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), + PROP_ISO_SPEED, g_param_spec_int ("iso-speed", + "The iso bandwidth in Mbps (100, 200, 400, 800, 1600, 3200)", + "The iso bandwidth in Mbps (100, 200, 400, 800, 1600, 3200)", 100, + 3200, 400, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstbasesrc_class->get_caps = gst_dc1394_getcaps; + gstbasesrc_class->set_caps = gst_dc1394_setcaps; + + gstbasesrc_class->get_times = gst_dc1394_get_times; + gstpushsrc_class->create = gst_dc1394_create; + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_dc1394_change_state); + +} + +static void +gst_dc1394_init (GstDc1394 * src, GstDc1394Class * g_class) +{ + + src->segment_start_frame = -1; + src->segment_end_frame = -1; + src->timestamp_offset = 0; + src->caps = gst_dc1394_get_all_dc1394_caps (); + src->bufsize = 10; + src->iso_speed = 400; + src->camnum = 0; + src->n_frames = 0; + + gst_pad_set_fixatecaps_function (GST_BASE_SRC_PAD (src), + gst_dc1394_src_fixate); + + gst_base_src_set_live (GST_BASE_SRC (src), TRUE); + +} + +static void +gst_dc1394_src_fixate (GstPad * pad, GstCaps * caps) +{ + + GstDc1394 *src = GST_DC1394 (gst_pad_get_parent (pad)); + GstStructure *structure; + int i; + + GST_LOG_OBJECT (src, " fixating caps to closest to 320x240 , 30 fps"); + + for (i = 0; i < gst_caps_get_size (caps); ++i) { + structure = gst_caps_get_structure (caps, i); + + gst_structure_fixate_field_nearest_int (structure, "width", 320); + gst_structure_fixate_field_nearest_int (structure, "height", 240); + gst_structure_fixate_field_nearest_fraction (structure, "framerate", 30, 1); + } + gst_object_unref (GST_OBJECT (src)); +} + +static void +gst_dc1394_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstDc1394 *src = GST_DC1394 (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + src->timestamp_offset = g_value_get_int64 (value); + break; + case PROP_CAMNUM: + src->camnum = g_value_get_int (value); + break; + case PROP_BUFSIZE: + src->bufsize = g_value_get_int (value); + break; + case PROP_ISO_SPEED: + switch (g_value_get_int (value)) { + case 100: + case 200: + case 300: + case 400: + case 800: + case 1600: + case 3200: + // fallthrough + src->iso_speed = g_value_get_int (value); + break; + default: + g_warning ("%s: Invalid iso speed %d, ignoring", + GST_ELEMENT_NAME (src), g_value_get_int (value)); + break; + } + default: + break; + } +} + +static void +gst_dc1394_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstDc1394 *src = GST_DC1394 (object); + + switch (prop_id) { + case PROP_TIMESTAMP_OFFSET: + g_value_set_int64 (value, src->timestamp_offset); + break; + case PROP_CAMNUM: + g_value_set_int (value, src->camnum); + break; + case PROP_BUFSIZE: + g_value_set_int (value, src->bufsize); + break; + case PROP_ISO_SPEED: + g_value_set_int (value, src->iso_speed); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstCaps * +gst_dc1394_getcaps (GstBaseSrc * bsrc) +{ + GstDc1394 *gsrc; + + gsrc = GST_DC1394 (bsrc); + + g_return_val_if_fail (gsrc->caps, NULL); + + return gst_caps_copy (gsrc->caps); +} + + +static gboolean +gst_dc1394_setcaps (GstBaseSrc * bsrc, GstCaps * caps) +{ + + gboolean res = TRUE; + GstDc1394 *dc1394; + gint width, height, rate_denominator, rate_numerator; + gint bpp, vmode; + + dc1394 = GST_DC1394 (bsrc); + + if (dc1394->caps) { + gst_caps_unref (dc1394->caps); + } + + dc1394->caps = gst_caps_copy (caps); + + res = gst_dc1394_parse_caps (caps, &width, &height, + &rate_numerator, &rate_denominator, &vmode, &bpp); + + if (res) { + /* looks ok here */ + dc1394->width = width; + dc1394->height = height; + dc1394->vmode = vmode; + dc1394->rate_numerator = rate_numerator; + dc1394->rate_denominator = rate_denominator; + dc1394->bpp = bpp; + } + + return res; +} + +static void +gst_dc1394_get_times (GstBaseSrc * basesrc, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + /* for live sources, sync on the timestamp of the buffer */ + if (gst_base_src_is_live (basesrc)) { + GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); + + if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + /* get duration to calculate end time */ + GstClockTime duration = GST_BUFFER_DURATION (buffer); + + if (GST_CLOCK_TIME_IS_VALID (duration)) { + *end = timestamp + duration; + } + *start = timestamp; + } + } else { + *start = -1; + *end = -1; + } +} + +static GstFlowReturn +gst_dc1394_create (GstPushSrc * psrc, GstBuffer ** buffer) +{ + GstDc1394 *src; + GstBuffer *outbuf; + GstCaps *caps; + dc1394video_frame_t *frame[1]; + GstFlowReturn res = GST_FLOW_OK; + dc1394error_t err; + + src = GST_DC1394 (psrc); + + err = dc1394_capture_dequeue (src->camera, DC1394_CAPTURE_POLICY_WAIT, frame); + + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("failed to dequeue frame"), ("failed to dequeue frame")); + goto error; + } + + outbuf = gst_buffer_new_and_alloc (frame[0]->image_bytes); + + memcpy (GST_BUFFER_MALLOCDATA (outbuf), (guchar *) frame[0]->image, + frame[0]->image_bytes * sizeof (guchar)); + + GST_BUFFER_DATA (outbuf) = GST_BUFFER_MALLOCDATA (outbuf); + + caps = gst_pad_get_caps (GST_BASE_SRC_PAD (psrc)); + gst_buffer_set_caps (outbuf, caps); + gst_caps_unref (caps); + + GST_BUFFER_TIMESTAMP (outbuf) = src->timestamp_offset + src->running_time; + if (src->rate_numerator != 0) { + GST_BUFFER_DURATION (outbuf) = gst_util_uint64_scale_int (GST_SECOND, + src->rate_denominator, src->rate_numerator); + } + + src->n_frames++; + if (src->rate_numerator != 0) { + src->running_time = gst_util_uint64_scale_int (src->n_frames * GST_SECOND, + src->rate_denominator, src->rate_numerator); + } + + if (dc1394_capture_enqueue (src->camera, frame[0]) != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("failed to enqueue frame"), + ("failed to enqueue frame")); + goto error; + } + + *buffer = outbuf; + + return res; + +error: + { + return GST_FLOW_ERROR; + } +} + + +static gboolean +gst_dc1394_parse_caps (const GstCaps * caps, + gint * width, + gint * height, + gint * rate_numerator, gint * rate_denominator, gint * vmode, gint * bpp) +{ + const GstStructure *structure; + GstPadLinkReturn ret; + const GValue *framerate; + + if (gst_caps_get_size (caps) < 1) + return FALSE; + + structure = gst_caps_get_structure (caps, 0); + + ret = gst_structure_get_int (structure, "width", width); + ret &= gst_structure_get_int (structure, "height", height); + + framerate = gst_structure_get_value (structure, "framerate"); + + ret &= gst_structure_get_int (structure, "vmode", vmode); + + ret &= gst_structure_get_int (structure, "bpp", bpp); + + + if (framerate) { + *rate_numerator = gst_value_get_fraction_numerator (framerate); + *rate_denominator = gst_value_get_fraction_denominator (framerate); + } else { + ret = FALSE; + } + + return ret; +} + +static GstStateChangeReturn +gst_dc1394_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstDc1394 *src = GST_DC1394 (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + GST_LOG_OBJECT (src, "State change null to ready"); + src->dc1394 = dc1394_new (); + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_LOG_OBJECT (src, "State ready to paused"); + + if (src->caps) { + gst_caps_unref (src->caps); + src->caps = NULL; + } + src->caps = gst_dc1394_get_cam_caps (src); + if (src->caps == NULL) { + GST_LOG_OBJECT (src, + "Error : Set property could not get cam caps ! , reverting to default"); + src->caps = gst_dc1394_get_all_dc1394_caps (); + ret = GST_STATE_CHANGE_FAILURE; + } + + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + GST_LOG_OBJECT (src, "State change paused to playing"); + + if (!gst_dc1394_open_cam_with_best_caps (src)) { + ret = GST_STATE_CHANGE_FAILURE; + } + + if (src->camera && !gst_dc1394_change_camera_transmission (src, TRUE)) { + ret = GST_STATE_CHANGE_FAILURE; + } + + break; + default: + break; + } + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + GST_LOG_OBJECT (src, "State change playing to paused"); + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_LOG_OBJECT (src, "State change paused to ready"); + + if (src->camera && !gst_dc1394_change_camera_transmission (src, FALSE)) { + + if (src->camera) { + dc1394_camera_free (src->camera); + } + src->camera = NULL; + + if (src->caps) { + gst_caps_unref (src->caps); + src->caps = NULL; + } + + ret = GST_STATE_CHANGE_FAILURE; + } + + break; + case GST_STATE_CHANGE_READY_TO_NULL: + GST_LOG_OBJECT (src, "State change ready to null"); + if (src->camera) { + dc1394_camera_free (src->camera); + } + src->camera = NULL; + + if (src->dc1394) { + dc1394_free (src->dc1394); + } + src->dc1394 = NULL; + + if (src->caps) { + gst_caps_unref (src->caps); + src->caps = NULL; + } + break; + default: + break; + } + + return ret; +} + + +static gint +gst_dc1394_caps_set_format_vmode_caps (GstStructure * gs, gint mode) +{ + gint retval = 0; + + switch (mode) { + case DC1394_VIDEO_MODE_160x120_YUV444: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV444); + gst_dc1394_set_caps_framesize (gs, 160, 120); + break; + case DC1394_VIDEO_MODE_320x240_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 320, 240); + break; + case DC1394_VIDEO_MODE_640x480_YUV411: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV411); + gst_dc1394_set_caps_framesize (gs, 640, 480); + break; + case DC1394_VIDEO_MODE_640x480_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 640, 480); + break; + case DC1394_VIDEO_MODE_640x480_RGB8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_RGB8); + gst_dc1394_set_caps_framesize (gs, 640, 480); + break; + case DC1394_VIDEO_MODE_640x480_MONO8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 640, 480); + break; + case DC1394_VIDEO_MODE_640x480_MONO16: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO16); + gst_dc1394_set_caps_framesize (gs, 640, 480); + break; + case DC1394_VIDEO_MODE_800x600_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 800, 600); + break; + case DC1394_VIDEO_MODE_800x600_RGB8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_RGB8); + gst_dc1394_set_caps_framesize (gs, 800, 600); + break; + case DC1394_VIDEO_MODE_800x600_MONO8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 800, 600); + break; + case DC1394_VIDEO_MODE_1024x768_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 1024, 768); + break; + case DC1394_VIDEO_MODE_1024x768_RGB8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_RGB8); + gst_dc1394_set_caps_framesize (gs, 1024, 768); + break; + case DC1394_VIDEO_MODE_1024x768_MONO8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 1024, 768); + break; + case DC1394_VIDEO_MODE_800x600_MONO16: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO16); + gst_dc1394_set_caps_framesize (gs, 800, 600); + break; + case DC1394_VIDEO_MODE_1024x768_MONO16: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO16); + gst_dc1394_set_caps_framesize (gs, 1024, 768); + break; + case DC1394_VIDEO_MODE_1280x960_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 1280, 960); + break; + case DC1394_VIDEO_MODE_1280x960_RGB8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_RGB8); + gst_dc1394_set_caps_framesize (gs, 1280, 960); + break; + case DC1394_VIDEO_MODE_1280x960_MONO8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 1280, 960); + break; + case DC1394_VIDEO_MODE_1600x1200_YUV422: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_YUV422); + gst_dc1394_set_caps_framesize (gs, 1600, 1200); + break; + case DC1394_VIDEO_MODE_1600x1200_RGB8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_RGB8); + gst_dc1394_set_caps_framesize (gs, 1600, 1200); + break; + case DC1394_VIDEO_MODE_1600x1200_MONO8: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 1600, 1200); + break; + case DC1394_VIDEO_MODE_1280x960_MONO16: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO16); + gst_dc1394_set_caps_framesize (gs, 1280, 960); + break; + case DC1394_VIDEO_MODE_1600x1200_MONO16: + gst_dc1394_set_caps_color (gs, DC1394_COLOR_CODING_MONO8); + gst_dc1394_set_caps_framesize (gs, 1600, 1200); + break; + + default: + retval = -1; + } + + return retval; + +} + + +static gboolean +gst_dc1394_set_caps_color (GstStructure * gs, gint mc) +{ + gboolean ret = TRUE; + gint fourcc; + + switch (mc) { + case DC1394_COLOR_CODING_YUV444: + gst_structure_set_name (gs, "video/x-raw-yuv"); + + fourcc = GST_MAKE_FOURCC ('I', 'Y', 'U', '2'); + gst_structure_set (gs, + "format", GST_TYPE_FOURCC, fourcc, "bpp", G_TYPE_INT, 16, NULL); + break; + + case DC1394_COLOR_CODING_YUV422: + gst_structure_set_name (gs, "video/x-raw-yuv"); + fourcc = GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'); + gst_structure_set (gs, + "format", GST_TYPE_FOURCC, fourcc, "bpp", G_TYPE_INT, 16, NULL); + break; + + case DC1394_COLOR_CODING_YUV411: + gst_structure_set_name (gs, "video/x-raw-yuv"); + fourcc = GST_MAKE_FOURCC ('I', 'Y', 'U', '1'); + gst_structure_set (gs, + "format", GST_TYPE_FOURCC, fourcc, "bpp", G_TYPE_INT, 12, NULL); + break; + case DC1394_COLOR_CODING_RGB8: + gst_structure_set_name (gs, "video/x-raw-rgb"); + gst_structure_set (gs, + "bpp", G_TYPE_INT, 24, + "depth", G_TYPE_INT, 24, + "endianness", G_TYPE_INT, G_BIG_ENDIAN, + "red_mask", G_TYPE_INT, 0xFF0000, + "green_mask", G_TYPE_INT, 0x00FF00, + "blue_mask", G_TYPE_INT, 0x0000FF, NULL); + break; + case DC1394_COLOR_CODING_MONO8: + gst_structure_set_name (gs, "video/x-raw-gray"); + gst_structure_set (gs, + "bpp", G_TYPE_INT, 8, "depth", G_TYPE_INT, 8, NULL); + + break; + case DC1394_COLOR_CODING_MONO16: + gst_structure_set_name (gs, "video/x-raw-gray"); + gst_structure_set (gs, + "bpp", G_TYPE_INT, 16, "depth", G_TYPE_INT, 16, NULL); + // there is no fourcc for this format + break; + default: + GST_DEBUG ("Ignoring unsupported color format %d", mc); + ret = FALSE; + break; + } + return ret; +} + + +static void +gst_dc1394_set_caps_framesize (GstStructure * gs, gint width, gint height) +{ + gst_structure_set (gs, + "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL); +} + +static void +gst_dc1394_set_caps_framesize_range (GstStructure * gs, + gint minwidth, + gint maxwidth, + gint incwidth, gint minheight, gint maxheight, gint incheight) +{ + /* + Format 7 cameras allow you to change the camera width/height in multiples + of incwidth/incheight up to some max. This sets the necessary + list structure in the gst caps structure + */ + + GValue widthlist = { 0 }; + GValue widthval = { 0 }; + GValue heightlist = { 0 }; + GValue heightval = { 0 }; + gint x = 0; + + g_value_init (&widthlist, GST_TYPE_LIST); + g_value_init (&widthval, G_TYPE_INT); + for (x = minwidth; x <= maxwidth; x += incwidth) { + g_value_set_int (&widthval, x); + gst_value_list_append_value (&widthlist, &widthval); + } + gst_structure_set_value (gs, "width", &widthlist); + + g_value_unset (&widthlist); + g_value_unset (&widthval); + + g_value_init (&heightlist, GST_TYPE_LIST); + g_value_init (&heightval, G_TYPE_INT); + for (x = minheight; x <= maxheight; x += incheight) { + g_value_set_int (&heightval, x); + gst_value_list_append_value (&heightlist, &heightval); + } + + gst_structure_set_value (gs, "height", &heightlist); + + g_value_unset (&heightlist); + g_value_unset (&heightval); +} + + +static gint +gst_dc1394_caps_set_framerate_list (GstStructure * gs, + dc1394framerates_t * framerates) +{ + GValue framefrac = { 0 }; + GValue frameratelist = { 0 }; + gint f; + + g_value_init (&frameratelist, GST_TYPE_LIST); + g_value_init (&framefrac, GST_TYPE_FRACTION); + + // figure out the frame rate + for (f = framerates->num - 1; f >= 0; f--) { + /* reverse order so we place the faster frame rates higher in + the sequence */ + if (framerates->framerates[f]) { + gst_dc1394_framerate_const_to_frac (framerates->framerates[f], + &framefrac); + + gst_value_list_append_value (&frameratelist, &framefrac); + } + } + gst_structure_set_value (gs, "framerate", &frameratelist); + + g_value_unset (&framefrac); + g_value_unset (&frameratelist); + return 0; +} + + + +static void +gst_dc1394_framerate_const_to_frac (gint framerateconst, GValue * framefrac) +{ + + // frac must have been already initialized + + switch (framerateconst) { + case DC1394_FRAMERATE_1_875: + gst_value_set_fraction (framefrac, 15, 8); + break; + case DC1394_FRAMERATE_3_75: + gst_value_set_fraction (framefrac, 15, 4); + break; + case DC1394_FRAMERATE_7_5: + gst_value_set_fraction (framefrac, 15, 2); + break; + case DC1394_FRAMERATE_15: + gst_value_set_fraction (framefrac, 15, 1); + break; + case DC1394_FRAMERATE_30: + gst_value_set_fraction (framefrac, 30, 1); + break; + case DC1394_FRAMERATE_60: + gst_value_set_fraction (framefrac, 60, 1); + break; + case DC1394_FRAMERATE_120: + gst_value_set_fraction (framefrac, 120, 1); + break; + case DC1394_FRAMERATE_240: + gst_value_set_fraction (framefrac, 240, 1); + break; + } +} + +static GstCaps * +gst_dc1394_get_all_dc1394_caps (void) +{ + /* + generate all possible caps + + */ + + GstCaps *gcaps; + gint i = 0; + + gcaps = gst_caps_new_empty (); + // first, the fixed mode caps + for (i = DC1394_VIDEO_MODE_MIN; i < DC1394_VIDEO_MODE_EXIF; i++) { + GstStructure *gs = gst_structure_empty_new ("video"); + gint ret = gst_dc1394_caps_set_format_vmode_caps (gs, i); + + gst_structure_set (gs, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + gst_structure_set (gs, "vmode", G_TYPE_INT, i, NULL); + if (ret >= 0) { + gst_caps_append_structure (gcaps, gs); + } + } + + // then Format 7 options + + for (i = DC1394_COLOR_CODING_MIN; i <= DC1394_COLOR_CODING_MAX; i++) { + GstStructure *gs = gst_structure_empty_new ("video"); + + //int ret = gst_dc1394_caps_set_format_vmode_caps(gs, i); + + gst_structure_set (gs, "vmode", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); + + gst_structure_set (gs, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + gst_structure_set (gs, + "width", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL); + + if (gst_dc1394_set_caps_color (gs, i)) { + gst_caps_append_structure (gcaps, gs); + } + } + return gcaps; + +} + +GstCaps * +gst_dc1394_get_cam_caps (GstDc1394 * src) +{ + + dc1394camera_t *camera = NULL; + dc1394camera_list_t *cameras = NULL; + dc1394error_t camerr; + gint i, j; + dc1394video_modes_t modes; + dc1394framerates_t framerates; + GstCaps *gcaps = NULL; + + gcaps = gst_caps_new_empty (); + + camerr = dc1394_camera_enumerate (src->dc1394, &cameras); + + if (camerr != DC1394_SUCCESS || cameras == NULL) { + GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, + ("Can't find cameras error : %d", camerr), + ("Can't find cameras error : %d", camerr)); + goto error; + } + + if (cameras->num == 0) { + GST_ELEMENT_ERROR (src, RESOURCE, NOT_FOUND, ("There were no cameras"), + ("There were no cameras")); + goto error; + } + + if (src->camnum > (cameras->num - 1)) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Invalid camera number"), + ("Invalid camera number %d", src->camnum)); + goto error; + } + + camera = + dc1394_camera_new_unit (src->dc1394, cameras->ids[src->camnum].guid, + cameras->ids[src->camnum].unit); + + dc1394_camera_free_list (cameras); + cameras = NULL; + + camerr = dc1394_video_get_supported_modes (camera, &modes); + if (camerr != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Error getting supported modes"), + ("Error getting supported modes")); + goto error; + } + + for (i = modes.num - 1; i >= 0; i--) { + int m = modes.modes[i]; + + if (m < DC1394_VIDEO_MODE_EXIF) { + + GstStructure *gs = gst_structure_empty_new ("video"); + + gst_structure_set (gs, "vmode", G_TYPE_INT, m, NULL); + + if (gst_dc1394_caps_set_format_vmode_caps (gs, m) < 0) { + GST_ELEMENT_ERROR (src, STREAM, FAILED, + ("attempt to set mode to %d failed", m), + ("attempt to set mode to %d failed", m)); + goto error; + } else { + + camerr = dc1394_video_get_supported_framerates (camera, m, &framerates); + gst_dc1394_caps_set_framerate_list (gs, &framerates); + gst_caps_append_structure (gcaps, gs); + + } + } else { + // FORMAT 7 + guint maxx, maxy; + GstStructure *gs = gst_structure_empty_new ("video"); + dc1394color_codings_t colormodes; + guint xunit, yunit; + + gst_structure_set (gs, "vmode", G_TYPE_INT, m, NULL); + + // Get the maximum frame size + camerr = dc1394_format7_get_max_image_size (camera, m, &maxx, &maxy); + if (camerr != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Error getting format 7 max image size"), + ("Error getting format 7 max image size")); + goto error; + } + GST_LOG_OBJECT (src, "Format 7 maxx=%d maxy=%d", maxx, maxy); + + camerr = dc1394_format7_get_unit_size (camera, m, &xunit, &yunit); + if (camerr != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Error getting format 7 image unit size"), + ("Error getting format 7 image unit size")); + goto error; + } + GST_LOG_OBJECT (src, "Format 7 unitx=%d unity=%d", xunit, yunit); + + gst_dc1394_set_caps_framesize_range (gs, xunit, maxx, xunit, + yunit, maxy, yunit); + + // note that format 7 has no concept of a framerate, so we pass the + // full range + gst_structure_set (gs, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + + // get the available color codings + camerr = dc1394_format7_get_color_codings (camera, m, &colormodes); + if (camerr != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Error getting format 7 color modes"), + ("Error getting format 7 color modes")); + goto error; + } + + for (j = 0; j < colormodes.num; j++) { + GstStructure *newgs = gst_structure_copy (gs); + + gst_dc1394_set_caps_color (newgs, colormodes.codings[j]); + GST_LOG_OBJECT (src, "Format 7 colormode set : %d", + colormodes.codings[j]); + // note that since there are multiple color modes, we append + // multiple structures. + gst_caps_append_structure (gcaps, newgs); + } + } + } + + if (camera) { + dc1394_camera_free (camera); + } + + return gcaps; + +error: + + if (gcaps) { + gst_caps_unref (gcaps); + } + + if (cameras) { + dc1394_camera_free_list (cameras); + cameras = NULL; + } + + if (camera) { + dc1394_camera_free (camera); + camera = NULL; + } + + return NULL; +} + +static gint +gst_dc1394_framerate_frac_to_const (gint num, gint denom) +{ + // frac must have been already initialized + int retvalue = -1; + + if (num == 15 && denom == 8) + retvalue = DC1394_FRAMERATE_1_875; + + if (num == 15 && denom == 4) + retvalue = DC1394_FRAMERATE_3_75; + + if (num == 15 && denom == 2) + retvalue = DC1394_FRAMERATE_7_5; + + if (num == 15 && denom == 1) + retvalue = DC1394_FRAMERATE_15; + + + if (num == 30 && denom == 1) + retvalue = DC1394_FRAMERATE_30; + + if (num == 60 && denom == 1) + retvalue = DC1394_FRAMERATE_60; + + return retvalue; +} + + +static gboolean +gst_dc1394_open_cam_with_best_caps (GstDc1394 * src) +{ + dc1394camera_list_t *cameras = NULL; + gint err = 0; + int framerateconst; + + GST_LOG_OBJECT (src, "Opening the camera!!!"); + + + if (dc1394_camera_enumerate (src->dc1394, &cameras) != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Can't find cameras"), + ("Can't find cameras")); + goto error; + } + + GST_LOG_OBJECT (src, "Found %d cameras", cameras->num); + + if (src->camnum > (cameras->num - 1)) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Invalid camera number"), + ("Invalid camera number")); + goto error; + } + + GST_LOG_OBJECT (src, "Opening camera : %d", src->camnum); + + src->camera = + dc1394_camera_new_unit (src->dc1394, cameras->ids[src->camnum].guid, + cameras->ids[src->camnum].unit); + + dc1394_camera_free_list (cameras); + cameras = NULL; + + // figure out mode + framerateconst = gst_dc1394_framerate_frac_to_const (src->rate_numerator, + src->rate_denominator); + + GST_LOG_OBJECT (src, "The dma buffer queue size is %d buffers", + src->bufsize); + + switch (src->iso_speed) { + case 100: + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_100); + break; + case 200: + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_200); + break; + case 400: + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_400); + break; + case 800: + if (src->camera->bmode_capable > 0) { + dc1394_video_set_operation_mode (src->camera, + DC1394_OPERATION_MODE_1394B); + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_800); + } + break; + case 1600: + if (src->camera->bmode_capable > 0) { + dc1394_video_set_operation_mode (src->camera, + DC1394_OPERATION_MODE_1394B); + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_1600); + } + break; + case 3200: + if (src->camera->bmode_capable > 0) { + dc1394_video_set_operation_mode (src->camera, + DC1394_OPERATION_MODE_1394B); + err = dc1394_video_set_iso_speed (src->camera, DC1394_ISO_SPEED_3200); + } + break; + default: + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Invalid ISO speed"), + ("Invalid ISO speed")); + goto error; + break; + } + + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Could not set ISO speed"), + ("Could not set ISO speed")); + goto error; + } + + GST_LOG_OBJECT (src, "Setting mode : %d", src->vmode); + err = dc1394_video_set_mode (src->camera, src->vmode); + + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Could not set video mode %d", + src->vmode), ("Could not set video mode %d", src->vmode)); + goto error; + } + + GST_LOG_OBJECT (src, "Setting framerate : %d", framerateconst); + dc1394_video_set_framerate (src->camera, framerateconst); + + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Could not set framerate to %d", + framerateconst), ("Could not set framerate to %d", framerateconst)); + goto error; + } + // set any format-7 parameters if this is a format-7 mode + if (src->vmode >= DC1394_VIDEO_MODE_FORMAT7_MIN && + src->vmode <= DC1394_VIDEO_MODE_FORMAT7_MAX) { + // the big thing we care about right now is frame size + err = dc1394_format7_set_image_size (src->camera, src->vmode, + src->width, src->height); + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Could not set format 7 image size to %d x %d", src->width, + src->height), ("Could not set format 7 image size to %d x %d", + src->width, src->height)); + + goto error; + } + + } + err = dc1394_capture_setup (src->camera, src->bufsize, + DC1394_CAPTURE_FLAGS_DEFAULT); + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Error setting capture mode"), + ("Error setting capture mode")); + } + if (err != DC1394_SUCCESS) { + if (err == DC1394_NO_BANDWIDTH) { + GST_LOG_OBJECT (src, "Capture setup_dma failed." + "Trying to cleanup the iso_channels_and_bandwidth and retrying"); + + // try to cleanup the bandwidth and retry + err = dc1394_iso_release_all (src->camera); + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Could not cleanup bandwidth"), ("Could not cleanup bandwidth")); + goto error; + } else { + err = + dc1394_capture_setup (src->camera, src->bufsize, + DC1394_CAPTURE_FLAGS_DEFAULT); + if (err != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("unable to setup camera error %d", err), + ("unable to setup camera error %d", err)); + goto error; + } + } + } else { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("unable to setup camera error %d", err), + ("unable to setup camera error %d", err)); + goto error; + + } + } + + + return TRUE; + +error: + + if (src->camera) { + dc1394_camera_free (src->camera); + src->camera = NULL; + } + + return FALSE;; + +} + + +gboolean +gst_dc1394_change_camera_transmission (GstDc1394 * src, gboolean on) +{ + dc1394switch_t status = DC1394_OFF; + dc1394error_t err = DC1394_FAILURE; + gint i = 0; + + g_return_val_if_fail (src->camera, FALSE); + + if (on) { + + status = dc1394_video_set_transmission (src->camera, DC1394_ON); + + i = 0; + while (status == DC1394_OFF && i++ < 5) { + g_usleep (50000); + if (dc1394_video_get_transmission (src->camera, + &status) != DC1394_SUCCESS) { + if (status == DC1394_OFF) { + GST_LOG_OBJECT (src, "camera is still off , retrying"); + } + } + } + + if (i == 5) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, + ("Camera doesn't seem to want to turn on!"), + ("Camera doesn't seem to want to turn on!")); + return FALSE; + } + + GST_LOG_OBJECT (src, "got transmision status ON"); + + } else { + + if (dc1394_video_set_transmission (src->camera, + DC1394_OFF) != DC1394_SUCCESS) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Unable to stop transmision"), + ("Unable to stop transmision")); + return FALSE; + } + + GST_LOG_OBJECT (src, "Stopping capture"); + + err = dc1394_capture_stop (src->camera); + if (err > 0) { + GST_ELEMENT_ERROR (src, RESOURCE, FAILED, ("Capture stop error : %d ", + err), ("Capture stop error : %d ", err)); + return FALSE; + } else { + GST_LOG_OBJECT (src, "Capture stoped successfully"); + } + } + + return TRUE; +} + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (dc1394_debug, "dc1394", 0, "DC1394 interface"); + + return gst_element_register (plugin, "dc1394src", GST_RANK_NONE, + GST_TYPE_DC1394); + +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "dc1394", + "1394 IIDC Video Source", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/dc1394/gstdc1394.h b/ext/dc1394/gstdc1394.h new file mode 100644 index 0000000..1144e8a --- /dev/null +++ b/ext/dc1394/gstdc1394.h @@ -0,0 +1,81 @@ +/* GStreamer + * Copyright (C) <2006> Eric Jonas + * Copyright (C) <2006> Antoine Tremblay + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_DC1394_H__ +#define __GST_DC1394_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_DC1394 \ + (gst_dc1394_get_type()) +#define GST_DC1394(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DC1394,GstDc1394)) +#define GST_DC1394_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DC1394,GstDc1394)) +#define GST_IS_DC1394(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DC1394)) +#define GST_IS_DC1394_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DC1394)) + +typedef struct _GstDc1394 GstDc1394; +typedef struct _GstDc1394Class GstDc1394Class; + +struct _GstDc1394 { + GstPushSrc element; + + /* video state */ + gint width; + gint height; + gint vmode; + + gint bpp; + gint rate_numerator; + gint rate_denominator; + + /* private */ + gint64 timestamp_offset; /* base offset */ + GstClockTime running_time; /* total running time */ + gint64 n_frames; /* total frames sent */ + gint64 segment_start_frame; + gint64 segment_end_frame; + gboolean segment; + gint camnum; + gint bufsize; + gint iso_speed; + + dc1394_t * dc1394; + dc1394camera_t * camera; + + GstCaps *caps; +}; + +struct _GstDc1394Class { + GstPushSrcClass parent_class; +}; + +GType gst_dc1394_get_type (void); + +G_END_DECLS + +#endif /* __GST_DC1394_H__ */ diff --git a/ext/dirac/Makefile.am b/ext/dirac/Makefile.am new file mode 100644 index 0000000..c93a3d4 --- /dev/null +++ b/ext/dirac/Makefile.am @@ -0,0 +1,23 @@ +plugin_LTLIBRARIES = libgstdirac.la + +libgstdirac_la_SOURCES = \ + gstdirac.cc \ + gstdiracenc.cc + +libgstdirac_la_CXXFLAGS = \ + $(GST_PLUGINS_BAD_CXXFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CXXFLAGS) \ + $(DIRAC_CFLAGS) \ + -DGST_USE_UNSTABLE_API +libgstdirac_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/video/libgstbasevideo-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) \ + $(GST_BASE_LIBS) $(GST_LIBS) \ + $(DIRAC_LIBS) -lz $(LIBM) +libgstdirac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdirac_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstdiracdec.h + diff --git a/ext/dirac/Makefile.in b/ext/dirac/Makefile.in new file mode 100644 index 0000000..8a03e70 --- /dev/null +++ b/ext/dirac/Makefile.in @@ -0,0 +1,883 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/dirac +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdirac_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/video/libgstbasevideo-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdirac_la_OBJECTS = libgstdirac_la-gstdirac.lo \ + libgstdirac_la-gstdiracenc.lo +libgstdirac_la_OBJECTS = $(am_libgstdirac_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstdirac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(libgstdirac_la_CXXFLAGS) $(CXXFLAGS) \ + $(libgstdirac_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstdirac_la_SOURCES) +DIST_SOURCES = $(libgstdirac_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdirac.la +libgstdirac_la_SOURCES = \ + gstdirac.cc \ + gstdiracenc.cc + +libgstdirac_la_CXXFLAGS = \ + $(GST_PLUGINS_BAD_CXXFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CXXFLAGS) \ + $(DIRAC_CFLAGS) \ + -DGST_USE_UNSTABLE_API + +libgstdirac_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/video/libgstbasevideo-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) \ + $(GST_BASE_LIBS) $(GST_LIBS) \ + $(DIRAC_LIBS) -lz $(LIBM) + +libgstdirac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdirac_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstdiracdec.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dirac/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/dirac/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstdirac.la: $(libgstdirac_la_OBJECTS) $(libgstdirac_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstdirac_la_LINK) -rpath $(plugindir) $(libgstdirac_la_OBJECTS) $(libgstdirac_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirac_la-gstdirac.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdirac_la-gstdiracenc.Plo@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +libgstdirac_la-gstdirac.lo: gstdirac.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirac_la_CXXFLAGS) $(CXXFLAGS) -MT libgstdirac_la-gstdirac.lo -MD -MP -MF $(DEPDIR)/libgstdirac_la-gstdirac.Tpo -c -o libgstdirac_la-gstdirac.lo `test -f 'gstdirac.cc' || echo '$(srcdir)/'`gstdirac.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirac_la-gstdirac.Tpo $(DEPDIR)/libgstdirac_la-gstdirac.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdirac.cc' object='libgstdirac_la-gstdirac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirac_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstdirac_la-gstdirac.lo `test -f 'gstdirac.cc' || echo '$(srcdir)/'`gstdirac.cc + +libgstdirac_la-gstdiracenc.lo: gstdiracenc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirac_la_CXXFLAGS) $(CXXFLAGS) -MT libgstdirac_la-gstdiracenc.lo -MD -MP -MF $(DEPDIR)/libgstdirac_la-gstdiracenc.Tpo -c -o libgstdirac_la-gstdiracenc.lo `test -f 'gstdiracenc.cc' || echo '$(srcdir)/'`gstdiracenc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdirac_la-gstdiracenc.Tpo $(DEPDIR)/libgstdirac_la-gstdiracenc.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstdiracenc.cc' object='libgstdirac_la-gstdiracenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstdirac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdirac_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstdirac_la-gstdiracenc.lo `test -f 'gstdiracenc.cc' || echo '$(srcdir)/'`gstdiracenc.cc + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/dirac/gstdirac.cc b/ext/dirac/gstdirac.cc new file mode 100644 index 0000000..d23a78e --- /dev/null +++ b/ext/dirac/gstdirac.cc @@ -0,0 +1,55 @@ +/* GStreamer + * Copyright (C) 2004 David A. Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +GType gst_dirac_dec_get_type (void); +GType gst_dirac_enc_get_type (void); + +GST_DEBUG_CATEGORY (dirac_debug); +#define GST_CAT_DEFAULT dirac_debug + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (dirac_debug, "dirac", 0, "Dirac elements"); + + if (!gst_element_register (plugin, "diracenc", GST_RANK_MARGINAL, + gst_dirac_enc_get_type ())) { + return FALSE; + } +#if 0 + if (!gst_element_register (plugin, "diracdec", GST_RANK_MARGINAL, + gst_dirac_dec_get_type ())) { + return FALSE; + } +#endif + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "dirac", + "Dirac plugin", plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, + GST_PACKAGE_ORIGIN) diff --git a/ext/dirac/gstdiracdec.h b/ext/dirac/gstdiracdec.h new file mode 100644 index 0000000..45c2980 --- /dev/null +++ b/ext/dirac/gstdiracdec.h @@ -0,0 +1,69 @@ +/* GStreamer + * Copyright (C) 2004 David A. Schleef + * Copyright (C) 2004 Ronald S. Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_DIRACDEC_H__ +#define __GST_DIRACDEC_H__ + +#include + +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_DIRACDEC \ + (gst_diracdec_get_type()) +#define GST_DIRACDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DIRACDEC,GstDiracDec)) +#define GST_DIRACDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DIRACDEC,GstDiracDecClass)) +#define GST_IS_DIRACDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DIRACDEC)) +#define GST_IS_DIRACDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DIRACDEC)) + +typedef struct _GstDiracDec GstDiracDec; +typedef struct _GstDiracDecClass GstDiracDecClass; + +struct _GstDiracDec +{ + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + + dirac_decoder_t *decoder; + + /* size is size of buf */ + gint width, height, size; + gdouble fps; + guint32 fcc; +}; + +struct _GstDiracDecClass +{ + GstElementClass parent_class; +}; + +GType gst_diracdec_get_type (void); + +G_END_DECLS + +#endif /* __GST_DIRACDEC_H__ */ diff --git a/ext/dirac/gstdiracenc.cc b/ext/dirac/gstdiracenc.cc new file mode 100644 index 0000000..6e3129a --- /dev/null +++ b/ext/dirac/gstdiracenc.cc @@ -0,0 +1,1457 @@ +/* Dirac Encoder + * Copyright (C) 2006 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include +#include +#include + +GST_DEBUG_CATEGORY_EXTERN (dirac_debug); +#define GST_CAT_DEFAULT dirac_debug + +#define GST_TYPE_DIRAC_ENC \ + (gst_dirac_enc_get_type()) +#define GST_DIRAC_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DIRAC_ENC,GstDiracEnc)) +#define GST_DIRAC_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DIRAC_ENC,GstDiracEncClass)) +#define GST_IS_DIRAC_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DIRAC_ENC)) +#define GST_IS_DIRAC_ENC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DIRAC_ENC)) + +typedef struct _GstDiracEnc GstDiracEnc; +typedef struct _GstDiracEncClass GstDiracEncClass; + +typedef enum +{ + GST_DIRAC_ENC_OUTPUT_OGG, + GST_DIRAC_ENC_OUTPUT_QUICKTIME, + GST_DIRAC_ENC_OUTPUT_AVI, + GST_DIRAC_ENC_OUTPUT_MPEG_TS, + GST_DIRAC_ENC_OUTPUT_MP4 +} GstDiracEncOutputType; + +struct _GstDiracEnc +{ + GstBaseVideoEncoder base_encoder; + + GstPad *sinkpad; + GstPad *srcpad; + +#if 0 + /* video properties */ + int width; + int height; + int fps_n, fps_d; + int par_n, par_d; + guint64 duration; + guint32 fourcc; + + /* segment properties */ + GstClockTime segment_start; + GstClockTime segment_position; +#endif + + /* state */ +#if 0 + gboolean got_offset; + guint64 granulepos_offset; + guint64 granulepos_low; + guint64 granulepos_hi; + gboolean started; + gint64 timestamp_offset; + int picture_number; +#endif + + dirac_encoder_context_t enc_ctx; + dirac_encoder_t *encoder; + dirac_sourceparams_t *src_params; + GstBuffer *seq_header_buffer; + GstDiracEncOutputType output_format; + guint64 last_granulepos; + guint64 granule_offset; + + GstBuffer *codec_data; + GstBuffer *buffer; + GstCaps *srccaps; + int pull_frame_num; + + int frame_index; +}; + +struct _GstDiracEncClass +{ + GstBaseVideoEncoderClass parent_class; +}; + +GType gst_dirac_enc_get_type (void); + +enum +{ + LAST_SIGNAL +}; + +enum +{ + PROP_0, + PROP_L1_SEP, + PROP_NUM_L1, + PROP_XBLEN, + PROP_YBLEN, + PROP_XBSEP, + PROP_YBSEP, + PROP_CPD, + PROP_QF, + PROP_TARGETRATE, + PROP_LOSSLESS, + PROP_IWLT_FILTER, + PROP_RWLT_FILTER, + PROP_WLT_DEPTH, + PROP_MULTI_QUANTS, + PROP_MV_PREC, + PROP_NO_SPARTITION, + PROP_PREFILTER, + PROP_PREFILTER_STRENGTH, + PROP_PICTURE_CODING_MODE, + PROP_USE_VLC +}; + +static void gst_dirac_enc_finalize (GObject * object); +static void gst_dirac_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_dirac_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_dirac_enc_set_format (GstBaseVideoEncoder * + base_video_encoder, GstVideoState * state); +static gboolean gst_dirac_enc_start (GstBaseVideoEncoder * base_video_encoder); +static gboolean gst_dirac_enc_stop (GstBaseVideoEncoder * base_video_encoder); +static gboolean gst_dirac_enc_finish (GstBaseVideoEncoder * base_video_encoder); +static gboolean gst_dirac_enc_handle_frame (GstBaseVideoEncoder * + base_video_encoder, GstVideoFrame * frame); +static GstFlowReturn gst_dirac_enc_shape_output (GstBaseVideoEncoder * + base_video_encoder, GstVideoFrame * frame); +static GstCaps *gst_dirac_enc_get_caps (GstBaseVideoEncoder * + base_video_encoder); +static void gst_dirac_enc_create_codec_data (GstDiracEnc * dirac_enc, + GstBuffer * seq_header); + +static GstFlowReturn +gst_dirac_enc_process (GstDiracEnc * dirac_enc, gboolean end_sequence); +#if 0 +static gboolean gst_dirac_enc_sink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_dirac_enc_sink_event (GstPad * pad, GstEvent * event); +static GstFlowReturn gst_dirac_enc_chain (GstPad * pad, GstBuffer * buf); +static GstFlowReturn gst_dirac_enc_process (GstDiracEnc * dirac_enc, + gboolean end_sequence); +static GstStateChangeReturn gst_dirac_enc_change_state (GstElement * element, + GstStateChange transition); +static const GstQueryType *gst_dirac_enc_get_query_types (GstPad * pad); +static gboolean gst_dirac_enc_src_query (GstPad * pad, GstQuery * query); +#endif + +static GstStaticPadTemplate gst_dirac_enc_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YUY2, UYVY, AYUV }")) + ); + +static GstStaticPadTemplate gst_dirac_enc_src_template = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-dirac;video/x-qt-part;video/x-mp4-part") + ); + +static void +_do_init (GType object_type) +{ + const GInterfaceInfo preset_interface_info = { + NULL, /* interface_init */ + NULL, /* interface_finalize */ + NULL /* interface_data */ + }; + + g_type_add_interface_static (object_type, GST_TYPE_PRESET, + &preset_interface_info); +} + +GST_BOILERPLATE_FULL (GstDiracEnc, gst_dirac_enc, GstBaseVideoEncoder, + GST_TYPE_BASE_VIDEO_ENCODER, _do_init); + +static void +gst_dirac_enc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_dirac_enc_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_dirac_enc_sink_template)); + + gst_element_class_set_details_simple (element_class, "Dirac Encoder", + "Codec/Encoder/Video", + "Encode raw YUV video into Dirac stream", + "David Schleef "); +} + +static void +gst_dirac_enc_class_init (GstDiracEncClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + GstBaseVideoEncoderClass *basevideoencoder_class; + + //int i; + + gobject_class = G_OBJECT_CLASS (klass); + gstelement_class = GST_ELEMENT_CLASS (klass); + basevideoencoder_class = GST_BASE_VIDEO_ENCODER_CLASS (klass); + + gobject_class->set_property = gst_dirac_enc_set_property; + gobject_class->get_property = gst_dirac_enc_get_property; + gobject_class->finalize = gst_dirac_enc_finalize; + + g_object_class_install_property (gobject_class, PROP_L1_SEP, + g_param_spec_int ("l1-sep", "l1_sep", "l1_sep", + 1, 1000, 24, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_NUM_L1, + g_param_spec_int ("num-l1", "num_l1", "num_l1", + 0, 1000, 1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_XBLEN, + g_param_spec_int ("xblen", "xblen", "xblen", + 4, 64, 8, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_YBLEN, + g_param_spec_int ("yblen", "yblen", "yblen", + 4, 64, 8, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_XBSEP, + g_param_spec_int ("xbsep", "xbsep", "xbsep", + 4, 64, 12, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_YBSEP, + g_param_spec_int ("ybsep", "ybsep", "ybsep", + 4, 64, 12, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_CPD, + g_param_spec_int ("cpd", "cpd", "cpd", + 1, 100, 60, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_QF, + g_param_spec_double ("qf", "qf", "qf", + 0.0, 10.0, 7.0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_TARGETRATE, + g_param_spec_int ("targetrate", "targetrate", "targetrate", + 0, 10000, 1000, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_LOSSLESS, + g_param_spec_boolean ("lossless", "lossless", "lossless", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_IWLT_FILTER, + g_param_spec_int ("iwlt-filter", "iwlt_filter", "iwlt_filter", + 0, 7, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_RWLT_FILTER, + g_param_spec_int ("rwlt-filter", "rwlt_filter", "rwlt_filter", + 0, 7, 1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_WLT_DEPTH, + g_param_spec_int ("wlt-depth", "wlt_depth", "wlt_depth", + 1, 4, 3, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_MULTI_QUANTS, + g_param_spec_boolean ("multi-quants", "multi_quants", "multi_quants", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_MV_PREC, + g_param_spec_int ("mv-prec", "mv_prec", "mv_prec", + 0, 3, 1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_NO_SPARTITION, + g_param_spec_boolean ("no-spartition", "no_spartition", "no_spartition", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_PREFILTER, + g_param_spec_int ("prefilter", "prefilter", "prefilter", + 0, 3, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_PREFILTER_STRENGTH, + g_param_spec_int ("pf-strength", "pf_strength", "pf_strength", + 0, 10, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_PICTURE_CODING_MODE, + g_param_spec_int ("picture-coding-mode", "picture_coding_mode", + "picture_coding_mode", 0, 1, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (gobject_class, PROP_USE_VLC, + g_param_spec_boolean ("use-vlc", "use_vlc", "use_vlc", FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + basevideoencoder_class->set_format = + GST_DEBUG_FUNCPTR (gst_dirac_enc_set_format); + basevideoencoder_class->start = GST_DEBUG_FUNCPTR (gst_dirac_enc_start); + basevideoencoder_class->stop = GST_DEBUG_FUNCPTR (gst_dirac_enc_stop); + basevideoencoder_class->finish = GST_DEBUG_FUNCPTR (gst_dirac_enc_finish); + basevideoencoder_class->handle_frame = + GST_DEBUG_FUNCPTR (gst_dirac_enc_handle_frame); + basevideoencoder_class->shape_output = + GST_DEBUG_FUNCPTR (gst_dirac_enc_shape_output); + basevideoencoder_class->get_caps = GST_DEBUG_FUNCPTR (gst_dirac_enc_get_caps); +} + +static void +gst_dirac_enc_init (GstDiracEnc * dirac_enc, GstDiracEncClass * klass) +{ + GST_DEBUG ("gst_dirac_enc_init"); + + dirac_encoder_context_init (&dirac_enc->enc_ctx, VIDEO_FORMAT_CUSTOM); +} + +static gboolean +gst_dirac_enc_set_format (GstBaseVideoEncoder * base_video_encoder, + GstVideoState * state) +{ + GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); + GstCaps *caps; + GstStructure *structure; + + GST_DEBUG ("set_format"); + + caps = + gst_pad_get_allowed_caps (GST_BASE_VIDEO_CODEC_SRC_PAD + (base_video_encoder)); + + if (caps == NULL) { + caps = + gst_caps_copy (gst_pad_get_pad_template_caps + (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder))); + } + + if (gst_caps_is_empty (caps)) { + gst_caps_unref (caps); + return FALSE; + } + + structure = gst_caps_get_structure (caps, 0); + + if (gst_structure_has_name (structure, "video/x-dirac")) { + dirac_enc->output_format = GST_DIRAC_ENC_OUTPUT_OGG; + } else if (gst_structure_has_name (structure, "video/x-qt-part")) { + dirac_enc->output_format = GST_DIRAC_ENC_OUTPUT_QUICKTIME; + } else if (gst_structure_has_name (structure, "video/x-avi-part")) { + dirac_enc->output_format = GST_DIRAC_ENC_OUTPUT_AVI; + } else if (gst_structure_has_name (structure, "video/x-mp4-part")) { + dirac_enc->output_format = GST_DIRAC_ENC_OUTPUT_MP4; + } else { + return FALSE; + } + + gst_caps_unref (caps); + + gst_base_video_encoder_set_latency_fields (base_video_encoder, 2 * 2); + + switch (state->format) { + case GST_VIDEO_FORMAT_I420: + case GST_VIDEO_FORMAT_YV12: + dirac_enc->enc_ctx.src_params.chroma = format420; + break; + case GST_VIDEO_FORMAT_YUY2: + case GST_VIDEO_FORMAT_UYVY: + dirac_enc->enc_ctx.src_params.chroma = format422; + break; + case GST_VIDEO_FORMAT_AYUV: + dirac_enc->enc_ctx.src_params.chroma = format444; + break; + default: + g_assert_not_reached (); + } + + dirac_enc->enc_ctx.src_params.frame_rate.numerator = state->fps_n; + dirac_enc->enc_ctx.src_params.frame_rate.denominator = state->fps_d; + + dirac_enc->enc_ctx.src_params.width = state->width; + dirac_enc->enc_ctx.src_params.height = state->height; + + dirac_enc->enc_ctx.src_params.clean_area.width = state->width; + dirac_enc->enc_ctx.src_params.clean_area.height = state->height; + dirac_enc->enc_ctx.src_params.clean_area.left_offset = 0; + dirac_enc->enc_ctx.src_params.clean_area.top_offset = 0; + + dirac_enc->enc_ctx.src_params.pix_asr.numerator = state->par_n; + dirac_enc->enc_ctx.src_params.pix_asr.denominator = state->par_d; + + dirac_enc->enc_ctx.src_params.signal_range.luma_offset = 16; + dirac_enc->enc_ctx.src_params.signal_range.luma_excursion = 219; + dirac_enc->enc_ctx.src_params.signal_range.chroma_offset = 128; + dirac_enc->enc_ctx.src_params.signal_range.chroma_excursion = 224; + dirac_enc->enc_ctx.src_params.colour_spec.col_primary = CP_HDTV_COMP_INTERNET; + dirac_enc->enc_ctx.src_params.colour_spec.col_matrix.kr = 0.2126; + dirac_enc->enc_ctx.src_params.colour_spec.col_matrix.kb = 0.0722; + dirac_enc->enc_ctx.src_params.colour_spec.trans_func = TF_TV; + + dirac_enc->enc_ctx.decode_flag = 0; + dirac_enc->enc_ctx.instr_flag = 0; + + return TRUE; +} + +static void +gst_dirac_enc_finalize (GObject * object) +{ + GstDiracEnc *dirac_enc; + + g_return_if_fail (GST_IS_DIRAC_ENC (object)); + dirac_enc = GST_DIRAC_ENC (object); + + if (dirac_enc->encoder) { + dirac_encoder_close (dirac_enc->encoder); + dirac_enc->encoder = NULL; + } + + if (dirac_enc->codec_data) { + gst_buffer_unref (dirac_enc->codec_data); + dirac_enc->codec_data = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_dirac_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstDiracEnc *encoder; + + g_return_if_fail (GST_IS_DIRAC_ENC (object)); + encoder = GST_DIRAC_ENC (object); + + GST_DEBUG ("gst_dirac_enc_set_property"); + + switch (prop_id) { + case PROP_L1_SEP: + encoder->enc_ctx.enc_params.L1_sep = g_value_get_int (value); + break; + case PROP_NUM_L1: + encoder->enc_ctx.enc_params.num_L1 = g_value_get_int (value); + break; + case PROP_XBLEN: + encoder->enc_ctx.enc_params.xblen = g_value_get_int (value); + break; + case PROP_YBLEN: + encoder->enc_ctx.enc_params.yblen = g_value_get_int (value); + break; + case PROP_XBSEP: + encoder->enc_ctx.enc_params.xbsep = g_value_get_int (value); + break; + case PROP_YBSEP: + encoder->enc_ctx.enc_params.ybsep = g_value_get_int (value); + break; + case PROP_CPD: + encoder->enc_ctx.enc_params.cpd = g_value_get_int (value); + break; + case PROP_QF: + encoder->enc_ctx.enc_params.qf = g_value_get_double (value); + break; + case PROP_TARGETRATE: + encoder->enc_ctx.enc_params.trate = g_value_get_int (value); + break; + case PROP_LOSSLESS: + encoder->enc_ctx.enc_params.lossless = g_value_get_boolean (value); + break; + case PROP_IWLT_FILTER: + encoder->enc_ctx.enc_params.intra_wlt_filter = + (dirac_wlt_filter_t) g_value_get_int (value); + break; + case PROP_RWLT_FILTER: + encoder->enc_ctx.enc_params.inter_wlt_filter = + (dirac_wlt_filter_t) g_value_get_int (value); + break; + case PROP_WLT_DEPTH: + encoder->enc_ctx.enc_params.wlt_depth = g_value_get_int (value); + break; + case PROP_MULTI_QUANTS: + encoder->enc_ctx.enc_params.multi_quants = g_value_get_boolean (value); + break; + case PROP_MV_PREC: + encoder->enc_ctx.enc_params.mv_precision = + (dirac_mvprecision_t) g_value_get_int (value); + break; + case PROP_NO_SPARTITION: + encoder->enc_ctx.enc_params.spatial_partition = + !g_value_get_boolean (value); + break; + case PROP_PREFILTER: + encoder->enc_ctx.enc_params.prefilter = + (dirac_prefilter_t) g_value_get_int (value); + break; + case PROP_PREFILTER_STRENGTH: + encoder->enc_ctx.enc_params.prefilter_strength = g_value_get_int (value); + break; + case PROP_PICTURE_CODING_MODE: + encoder->enc_ctx.enc_params.picture_coding_mode = g_value_get_int (value); + break; + case PROP_USE_VLC: + encoder->enc_ctx.enc_params.using_ac = !g_value_get_boolean (value); + break; + } +} + +static void +gst_dirac_enc_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstDiracEnc *encoder; + + g_return_if_fail (GST_IS_DIRAC_ENC (object)); + encoder = GST_DIRAC_ENC (object); + + switch (prop_id) { + case PROP_L1_SEP: + g_value_set_int (value, encoder->enc_ctx.enc_params.L1_sep); + break; + case PROP_NUM_L1: + g_value_set_int (value, encoder->enc_ctx.enc_params.num_L1); + break; + case PROP_XBLEN: + g_value_set_int (value, encoder->enc_ctx.enc_params.xblen); + break; + case PROP_YBLEN: + g_value_set_int (value, encoder->enc_ctx.enc_params.yblen); + break; + case PROP_XBSEP: + g_value_set_int (value, encoder->enc_ctx.enc_params.xbsep); + break; + case PROP_YBSEP: + g_value_set_int (value, encoder->enc_ctx.enc_params.ybsep); + break; + case PROP_CPD: + g_value_set_int (value, encoder->enc_ctx.enc_params.cpd); + break; + case PROP_QF: + g_value_set_double (value, encoder->enc_ctx.enc_params.qf); + break; + case PROP_TARGETRATE: + g_value_set_int (value, encoder->enc_ctx.enc_params.trate); + break; + case PROP_LOSSLESS: + g_value_set_boolean (value, encoder->enc_ctx.enc_params.lossless); + break; + case PROP_IWLT_FILTER: + g_value_set_int (value, encoder->enc_ctx.enc_params.intra_wlt_filter); + break; + case PROP_RWLT_FILTER: + g_value_set_int (value, encoder->enc_ctx.enc_params.inter_wlt_filter); + break; + case PROP_WLT_DEPTH: + g_value_set_int (value, encoder->enc_ctx.enc_params.wlt_depth); + break; + case PROP_MULTI_QUANTS: + g_value_set_boolean (value, encoder->enc_ctx.enc_params.multi_quants); + break; + case PROP_MV_PREC: + g_value_set_int (value, encoder->enc_ctx.enc_params.mv_precision); + break; + case PROP_NO_SPARTITION: + g_value_set_boolean (value, + !encoder->enc_ctx.enc_params.spatial_partition); + break; + case PROP_PREFILTER: + g_value_set_int (value, encoder->enc_ctx.enc_params.prefilter); + break; + case PROP_PREFILTER_STRENGTH: + g_value_set_int (value, encoder->enc_ctx.enc_params.prefilter_strength); + break; + case PROP_PICTURE_CODING_MODE: + g_value_set_int (value, encoder->enc_ctx.enc_params.picture_coding_mode); + break; + case PROP_USE_VLC: + g_value_set_boolean (value, !encoder->enc_ctx.enc_params.using_ac); + break; + } +} + +#if 0 +static gboolean +gst_dirac_enc_sink_event (GstPad * pad, GstEvent * event) +{ + GstDiracEnc *dirac_enc; + gboolean ret; + + dirac_enc = GST_DIRAC_ENC (GST_PAD_PARENT (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + gst_dirac_enc_process (dirac_enc, TRUE); + ret = gst_pad_push_event (dirac_enc->srcpad, event); + break; + case GST_EVENT_NEWSEGMENT: + { + gboolean update; + double rate; + double applied_rate; + GstFormat format; + gint64 start; + gint64 stop; + gint64 position; + + gst_event_parse_new_segment_full (event, &update, &rate, + &applied_rate, &format, &start, &stop, &position); + + GST_DEBUG ("new segment %lld %lld", start, position); + dirac_enc->segment_start = start; + dirac_enc->segment_position = position; + + ret = gst_pad_push_event (dirac_enc->srcpad, event); + } + break; + default: + ret = gst_pad_push_event (dirac_enc->srcpad, event); + break; + } + + return ret; +} +#endif + +#if 0 +#define OGG_DIRAC_GRANULE_SHIFT 30 +#define OGG_DIRAC_GRANULE_LOW_MASK ((1ULL<> OGG_DIRAC_GRANULE_SHIFT) + + (granulepos & OGG_DIRAC_GRANULE_LOW_MASK); +} + +static const GstQueryType * +gst_dirac_enc_get_query_types (GstPad * pad) +{ + static const GstQueryType query_types[] = { + //GST_QUERY_POSITION, + //GST_QUERY_DURATION, + GST_QUERY_CONVERT + /* FIXME */ + //0 + }; + + return query_types; +} +#endif + +#if 0 +static gboolean +gst_dirac_enc_sink_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + GstDiracEnc *enc; + + if (src_format == *dest_format) { + *dest_value = src_value; + return TRUE; + } + + enc = GST_DIRAC_ENC (gst_pad_get_parent (pad)); + + /* FIXME: check if we are in a decoding state */ + + switch (src_format) { + case GST_FORMAT_BYTES: + switch (*dest_format) { +#if 0 + case GST_FORMAT_DEFAULT: + *dest_value = gst_util_uint64_scale_int (src_value, 1, + enc->bytes_per_picture); + break; +#endif + case GST_FORMAT_TIME: + /* seems like a rather silly conversion, implement me if you like */ + default: + res = FALSE; + } + break; + case GST_FORMAT_DEFAULT: + switch (*dest_format) { + case GST_FORMAT_TIME: + *dest_value = gst_util_uint64_scale (src_value, + GST_SECOND * enc->fps_d, enc->fps_n); + break; +#if 0 + case GST_FORMAT_BYTES: + *dest_value = gst_util_uint64_scale_int (src_value, + enc->bytes_per_picture, 1); + break; +#endif + default: + res = FALSE; + } + break; + default: + res = FALSE; + break; + } +} +#endif + +#if 0 +static gboolean +gst_dirac_enc_src_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + GstDiracEnc *enc; + + if (src_format == *dest_format) { + *dest_value = src_value; + return TRUE; + } + + enc = GST_DIRAC_ENC (gst_pad_get_parent (pad)); + + /* FIXME: check if we are in a encoding state */ + + switch (src_format) { + case GST_FORMAT_DEFAULT: + switch (*dest_format) { + case GST_FORMAT_TIME: + *dest_value = gst_util_uint64_scale (granulepos_to_frame (src_value), + enc->fps_d * GST_SECOND, enc->fps_n); + break; + default: + res = FALSE; + } + break; + case GST_FORMAT_TIME: + switch (*dest_format) { + case GST_FORMAT_DEFAULT: + { + *dest_value = gst_util_uint64_scale (src_value, + enc->fps_n, enc->fps_d * GST_SECOND); + break; + } + default: + res = FALSE; + break; + } + break; + default: + res = FALSE; + break; + } + + gst_object_unref (enc); + + return res; +} + +static gboolean +gst_dirac_enc_src_query (GstPad * pad, GstQuery * query) +{ + GstDiracEnc *enc; + gboolean res; + + enc = GST_DIRAC_ENC (gst_pad_get_parent (pad)); + + switch GST_QUERY_TYPE + (query) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + res = gst_dirac_enc_src_convert (pad, src_fmt, src_val, &dest_fmt, + &dest_val); + if (!res) + goto error; + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + break; + } + default: + res = gst_pad_query_default (pad, query); + } + gst_object_unref (enc); + return res; +error: + GST_DEBUG_OBJECT (enc, "query failed"); + gst_object_unref (enc); + return res; +} +#endif + +/* + * start is called once the input format is known. This function + * must decide on an output format and negotiate it. + */ +static gboolean +gst_dirac_enc_start (GstBaseVideoEncoder * base_video_encoder) +{ + GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); + + dirac_enc->granule_offset = ~0; + + dirac_enc->encoder = dirac_encoder_init (&dirac_enc->enc_ctx, FALSE); + + return TRUE; +} + +static gboolean +gst_dirac_enc_stop (GstBaseVideoEncoder * base_video_encoder) +{ + //GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); + +#if 0 + if (dirac_enc->encoder) { + dirac_encoder_free (dirac_enc->encoder); + dirac_enc->encoder = NULL; + } +#endif + + return TRUE; +} + +static gboolean +gst_dirac_enc_finish (GstBaseVideoEncoder * base_video_encoder) +{ + GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); + + GST_DEBUG ("finish"); + + gst_dirac_enc_process (dirac_enc, TRUE); + + return TRUE; +} + +static gboolean +gst_dirac_enc_handle_frame (GstBaseVideoEncoder * base_video_encoder, + GstVideoFrame * frame) +{ + GstDiracEnc *dirac_enc = GST_DIRAC_ENC (base_video_encoder); + gboolean ret; + int r; + const GstVideoState *state; + uint8_t *data; + gboolean copied = FALSE; + int size; + + state = gst_base_video_encoder_get_state (base_video_encoder); + + if (dirac_enc->granule_offset == ~0ULL) { + dirac_enc->granule_offset = + gst_util_uint64_scale (frame->presentation_timestamp, + 2 * state->fps_n, GST_SECOND * state->fps_d); + GST_DEBUG ("granule offset %" G_GINT64_FORMAT, dirac_enc->granule_offset); + } + + switch (state->format) { + case GST_VIDEO_FORMAT_I420: + data = GST_BUFFER_DATA (frame->sink_buffer); + size = GST_BUFFER_SIZE (frame->sink_buffer); + break; + case GST_VIDEO_FORMAT_YUY2: + { + uint8_t *bufdata = GST_BUFFER_DATA (frame->sink_buffer); + int i, j; + + data = (uint8_t *) g_malloc (GST_BUFFER_SIZE (frame->sink_buffer)); + copied = TRUE; + size = GST_BUFFER_SIZE (frame->sink_buffer); + for (j = 0; j < state->height; j++) { + for (i = 0; i < state->width; i++) { + data[j * state->width + i] = bufdata[j * state->width * 2 + i * 2]; + } + for (i = 0; i < state->width / 2; i++) { + data[state->height * state->width + + j * (state->width / 2) + i] = + bufdata[j * state->width * 2 + i * 4 + 1]; + data[state->height * state->width + + +state->height * (state->width / 2) + + j * (state->width / 2) + i] = + bufdata[j * state->width * 2 + i * 4 + 3]; + } + } + } + break; + case GST_VIDEO_FORMAT_UYVY: + { + uint8_t *bufdata = GST_BUFFER_DATA (frame->sink_buffer); + int i, j; + + data = (uint8_t *) g_malloc (GST_BUFFER_SIZE (frame->sink_buffer)); + copied = TRUE; + size = GST_BUFFER_SIZE (frame->sink_buffer); + for (j = 0; j < state->height; j++) { + for (i = 0; i < state->width; i++) { + data[j * state->width + i] = + bufdata[j * state->width * 2 + i * 2 + 1]; + } + for (i = 0; i < state->width / 2; i++) { + data[state->height * state->width + + j * (state->width / 2) + i] = + bufdata[j * state->width * 2 + i * 4 + 0]; + data[state->height * state->width + + +state->height * (state->width / 2) + + j * (state->width / 2) + i] = + bufdata[j * state->width * 2 + i * 4 + 2]; + } + } + } + break; + case GST_VIDEO_FORMAT_AYUV: + { + uint8_t *bufdata = GST_BUFFER_DATA (frame->sink_buffer); + int i, j; + + size = state->height * state->width * 3; + data = (uint8_t *) g_malloc (size); + copied = TRUE; + for (j = 0; j < state->height; j++) { + for (i = 0; i < state->width; i++) { + data[j * state->width + i] = + bufdata[j * state->width * 4 + i * 4 + 1]; + data[state->height * state->width + + j * state->width + i] = + bufdata[j * state->width * 4 + i * 4 + 2]; + data[2 * state->height * state->width + + +j * state->width + i] = + bufdata[j * state->width * 4 + i * 4 + 3]; + } + } + } + break; + default: + g_assert_not_reached (); + } + + r = dirac_encoder_load (dirac_enc->encoder, data, + GST_BUFFER_SIZE (frame->sink_buffer)); + if (copied) { + g_free (data); + } + if (r != (int) GST_BUFFER_SIZE (frame->sink_buffer)) { + GST_ERROR ("failed to push picture"); + return FALSE; + } + + GST_DEBUG ("handle frame"); + + gst_buffer_unref (frame->sink_buffer); + frame->sink_buffer = NULL; + + frame->system_frame_number = dirac_enc->frame_index; + dirac_enc->frame_index++; + + ret = gst_dirac_enc_process (dirac_enc, FALSE); + + return (ret == GST_FLOW_OK); +} + +#if 0 +static gboolean +gst_pad_is_negotiated (GstPad * pad) +{ + GstCaps *caps; + + g_return_val_if_fail (pad != NULL, FALSE); + + caps = gst_pad_get_negotiated_caps (pad); + if (caps) { + gst_caps_unref (caps); + return TRUE; + } + + return FALSE; +} +#endif + +#if 0 +static GstFlowReturn +gst_dirac_enc_chain (GstPad * pad, GstBuffer * buf) +{ + GstDiracEnc *dirac_enc; + GstFlowReturn ret; + + dirac_enc = GST_DIRAC_ENC (gst_pad_get_parent (pad)); + + if (!gst_pad_is_negotiated (pad)) { + return GST_FLOW_NOT_NEGOTIATED; + } + if (GST_BUFFER_TIMESTAMP (buf) < dirac_enc->segment_start) { + GST_DEBUG ("dropping early buffer"); + return GST_FLOW_OK; + } + if (!dirac_enc->got_offset) { + dirac_enc->granulepos_offset = + gst_util_uint64_scale (GST_BUFFER_TIMESTAMP (buf), dirac_enc->fps_n, + GST_SECOND * dirac_enc->fps_d); + + GST_DEBUG ("using granulepos offset %lld", dirac_enc->granulepos_offset); + dirac_enc->granulepos_hi = 0; + dirac_enc->got_offset = TRUE; + + dirac_enc->timestamp_offset = GST_BUFFER_TIMESTAMP (buf); + dirac_enc->picture_number = 0; + } + if (!dirac_enc->started) { + dirac_enc->encoder = dirac_encoder_init (&dirac_enc->enc_ctx, FALSE); + dirac_enc->started = TRUE; + } + + switch (dirac_enc->fourcc) { + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + dirac_encoder_load (dirac_enc->encoder, GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf)); + break; + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + { + uint8_t *data; + uint8_t *bufdata = GST_BUFFER_DATA (buf); + int i, j; + + data = (uint8_t *) g_malloc (GST_BUFFER_SIZE (buf)); + for (j = 0; j < dirac_enc->height; j++) { + for (i = 0; i < dirac_enc->width; i++) { + data[j * dirac_enc->width + i] = + bufdata[j * dirac_enc->width * 2 + i * 2]; + } + for (i = 0; i < dirac_enc->width / 2; i++) { + data[dirac_enc->height * dirac_enc->width + + j * (dirac_enc->width / 2) + i] = + bufdata[j * dirac_enc->width * 2 + i * 4 + 1]; + data[dirac_enc->height * dirac_enc->width + + +dirac_enc->height * (dirac_enc->width / 2) + + j * (dirac_enc->width / 2) + i] = + bufdata[j * dirac_enc->width * 2 + i * 4 + 3]; + } + } + dirac_encoder_load (dirac_enc->encoder, data, GST_BUFFER_SIZE (buf)); + g_free (data); + } + break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + { + uint8_t *data; + uint8_t *bufdata = GST_BUFFER_DATA (buf); + int i, j; + + data = (uint8_t *) g_malloc (GST_BUFFER_SIZE (buf)); + for (j = 0; j < dirac_enc->height; j++) { + for (i = 0; i < dirac_enc->width; i++) { + data[j * dirac_enc->width + i] = + bufdata[j * dirac_enc->width * 2 + i * 2 + 1]; + } + for (i = 0; i < dirac_enc->width / 2; i++) { + data[dirac_enc->height * dirac_enc->width + + j * (dirac_enc->width / 2) + i] = + bufdata[j * dirac_enc->width * 2 + i * 4 + 0]; + data[dirac_enc->height * dirac_enc->width + + +dirac_enc->height * (dirac_enc->width / 2) + + j * (dirac_enc->width / 2) + i] = + bufdata[j * dirac_enc->width * 2 + i * 4 + 2]; + } + } + dirac_encoder_load (dirac_enc->encoder, data, GST_BUFFER_SIZE (buf)); + g_free (data); + } + break; + case GST_MAKE_FOURCC ('A', 'Y', 'U', 'V'): + { + uint8_t *data; + uint8_t *bufdata = GST_BUFFER_DATA (buf); + int i, j; + + data = (uint8_t *) g_malloc (GST_BUFFER_SIZE (buf)); + for (j = 0; j < dirac_enc->height; j++) { + for (i = 0; i < dirac_enc->width; i++) { + data[j * dirac_enc->width + i] = + bufdata[j * dirac_enc->width * 4 + i * 4 + 1]; + } + for (i = 0; i < dirac_enc->width; i++) { + data[dirac_enc->height * dirac_enc->width + + j * dirac_enc->width + i] = + bufdata[j * dirac_enc->width * 4 + i * 4 + 2]; + data[2 * dirac_enc->height * dirac_enc->width + + +j * dirac_enc->width + i] = + bufdata[j * dirac_enc->width * 4 + i * 4 + 3]; + } + } + dirac_encoder_load (dirac_enc->encoder, data, GST_BUFFER_SIZE (buf)); + g_free (data); + } + break; + default: + g_assert_not_reached (); + } + + ret = gst_dirac_enc_process (dirac_enc, FALSE); + + gst_buffer_unref (buf); + gst_object_unref (dirac_enc); + + return ret; +} +#endif + +#define DIRAC_PARSE_CODE_IS_SEQ_HEADER(x) ((x) == 0x00) +#define DIRAC_PARSE_CODE_IS_END_OF_SEQUENCE(x) ((x) == 0x10) +#define DIRAC_PARSE_CODE_IS_PICTURE(x) ((x) & 0x8) +#define DIRAC_PARSE_CODE_NUM_REFS(x) ((x) & 0x3) +#define DIRAC_PARSE_CODE_IS_INTRA(x) (DIRAC_PARSE_CODE_IS_PICTURE(x) && DIRAC_PARSE_CODE_NUM_REFS(x) == 0) + +static GstFlowReturn +gst_dirac_enc_process (GstDiracEnc * dirac_enc, gboolean end_sequence) +{ + GstBuffer *outbuf; + GstFlowReturn ret; + int presentation_frame; + int parse_code; + int state; + GstVideoFrame *frame; + + do { + outbuf = gst_buffer_new_and_alloc (32 * 1024 * 1024); + dirac_enc->encoder->enc_buf.buffer = GST_BUFFER_DATA (outbuf); + dirac_enc->encoder->enc_buf.size = GST_BUFFER_SIZE (outbuf); + + if (end_sequence) { + dirac_encoder_end_sequence (dirac_enc->encoder); + } + state = dirac_encoder_output (dirac_enc->encoder); + + switch (state) { + case ENC_STATE_BUFFER: + GST_DEBUG ("BUFFER"); + gst_buffer_unref (outbuf); + break; + case ENC_STATE_INVALID: + GST_DEBUG ("Dirac returned ENC_STATE_INVALID"); + gst_buffer_unref (outbuf); + return GST_FLOW_ERROR; + case ENC_STATE_EOS: + frame = + gst_base_video_encoder_get_oldest_frame (GST_BASE_VIDEO_ENCODER + (dirac_enc)); + + /* FIXME: Get the frame from somewhere somehow... */ + if (frame) { + frame->src_buffer = outbuf; + GST_BUFFER_SIZE (outbuf) = dirac_enc->encoder->enc_buf.size; + + ret = + gst_base_video_encoder_finish_frame (GST_BASE_VIDEO_ENCODER + (dirac_enc), frame); + + if (ret != GST_FLOW_OK) { + GST_DEBUG ("pad_push returned %d", ret); + return ret; + } + } + break; + case ENC_STATE_AVAIL: + GST_DEBUG ("AVAIL"); + /* FIXME this doesn't reorder frames */ + frame = + gst_base_video_encoder_get_oldest_frame (GST_BASE_VIDEO_ENCODER + (dirac_enc)); + if (frame == NULL) { + GST_ERROR ("didn't get frame %d", dirac_enc->pull_frame_num); + } + dirac_enc->pull_frame_num++; + + parse_code = ((guint8 *) GST_BUFFER_DATA (outbuf))[4]; + /* FIXME */ + presentation_frame = 0; + + if (DIRAC_PARSE_CODE_IS_SEQ_HEADER (parse_code)) { + frame->is_sync_point = TRUE; + } + + if (!dirac_enc->codec_data) { + gst_dirac_enc_create_codec_data (dirac_enc, outbuf); + } + + frame->src_buffer = outbuf; + GST_BUFFER_SIZE (outbuf) = dirac_enc->encoder->enc_buf.size; + + ret = + gst_base_video_encoder_finish_frame (GST_BASE_VIDEO_ENCODER + (dirac_enc), frame); + + if (ret != GST_FLOW_OK) { + GST_DEBUG ("pad_push returned %d", ret); + return ret; + } + break; + default: + GST_ERROR ("Dirac returned state==%d", state); + gst_buffer_unref (outbuf); + return GST_FLOW_ERROR; + } + } while (state == ENC_STATE_AVAIL); + + return GST_FLOW_OK; +} + +static GstFlowReturn +gst_dirac_enc_shape_output_ogg (GstBaseVideoEncoder * base_video_encoder, + GstVideoFrame * frame) +{ + GstDiracEnc *dirac_enc; + int dpn; + int delay; + int dist; + int pt; + int dt; + guint64 granulepos_hi; + guint64 granulepos_low; + GstBuffer *buf = frame->src_buffer; + + dirac_enc = GST_DIRAC_ENC (base_video_encoder); + + dpn = frame->decode_frame_number; + + pt = frame->presentation_frame_number * 2 + dirac_enc->granule_offset; + dt = frame->decode_frame_number * 2 + dirac_enc->granule_offset; + delay = pt - dt; + dist = frame->distance_from_sync; + + GST_DEBUG ("sys %d dpn %d pt %d dt %d delay %d dist %d", + (int) frame->system_frame_number, + (int) frame->decode_frame_number, pt, dt, delay, dist); + + granulepos_hi = (((uint64_t) pt - delay) << 9) | ((dist >> 8)); + granulepos_low = (delay << 9) | (dist & 0xff); + GST_DEBUG ("granulepos %" G_GINT64_FORMAT ":%" G_GINT64_FORMAT, granulepos_hi, + granulepos_low); + + if (frame->is_eos) { + GST_BUFFER_OFFSET_END (buf) = dirac_enc->last_granulepos; + } else { + dirac_enc->last_granulepos = (granulepos_hi << 22) | (granulepos_low); + GST_BUFFER_OFFSET_END (buf) = dirac_enc->last_granulepos; + } + + gst_buffer_set_caps (buf, GST_BASE_VIDEO_CODEC(base_video_encoder)->caps); + + return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); +} + +static GstFlowReturn +gst_dirac_enc_shape_output_quicktime (GstBaseVideoEncoder * base_video_encoder, + GstVideoFrame * frame) +{ + GstBuffer *buf = frame->src_buffer; + const GstVideoState *state; + + state = gst_base_video_encoder_get_state (base_video_encoder); + + GST_BUFFER_TIMESTAMP (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, frame->presentation_frame_number); + GST_BUFFER_DURATION (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->presentation_frame_number + 1) - GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_OFFSET_END (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->system_frame_number); + GST_BUFFER_OFFSET (buf) = GST_CLOCK_TIME_NONE; + + if (frame->is_sync_point && + frame->presentation_frame_number == frame->system_frame_number) { + GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + } else { + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + } + + gst_buffer_set_caps (buf, GST_BASE_VIDEO_CODEC(base_video_encoder)->caps); + + return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); +} + +static GstFlowReturn +gst_dirac_enc_shape_output_mp4 (GstBaseVideoEncoder * base_video_encoder, + GstVideoFrame * frame) +{ + GstBuffer *buf = frame->src_buffer; + const GstVideoState *state; + + state = gst_base_video_encoder_get_state (base_video_encoder); + + GST_BUFFER_TIMESTAMP (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->presentation_frame_number); + GST_BUFFER_DURATION (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->presentation_frame_number + 1) - GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_OFFSET_END (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->decode_frame_number); + GST_BUFFER_OFFSET (buf) = GST_CLOCK_TIME_NONE; + + GST_BUFFER_OFFSET_END (buf) = gst_video_state_get_timestamp (state, + &GST_BASE_VIDEO_CODEC(base_video_encoder)->segment, + frame->system_frame_number); + + if (frame->is_sync_point && + frame->presentation_frame_number == frame->system_frame_number) { + GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + } else { + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + } + + gst_buffer_set_caps (buf, GST_BASE_VIDEO_CODEC(base_video_encoder)->caps); + + return gst_pad_push (GST_BASE_VIDEO_CODEC_SRC_PAD (base_video_encoder), buf); +} + +static GstFlowReturn +gst_dirac_enc_shape_output (GstBaseVideoEncoder * base_video_encoder, + GstVideoFrame * frame) +{ + GstDiracEnc *dirac_enc; + + dirac_enc = GST_DIRAC_ENC (base_video_encoder); + + switch (dirac_enc->output_format) { + case GST_DIRAC_ENC_OUTPUT_OGG: + return gst_dirac_enc_shape_output_ogg (base_video_encoder, frame); + case GST_DIRAC_ENC_OUTPUT_QUICKTIME: + return gst_dirac_enc_shape_output_quicktime (base_video_encoder, frame); + case GST_DIRAC_ENC_OUTPUT_MP4: + return gst_dirac_enc_shape_output_mp4 (base_video_encoder, frame); + default: + g_assert_not_reached (); + break; + } + + return GST_FLOW_ERROR; +} + +static void +gst_dirac_enc_create_codec_data (GstDiracEnc * dirac_enc, + GstBuffer * seq_header) +{ + GstBuffer *buf; + int size; + + size = GST_READ_UINT32_BE (GST_BUFFER_DATA (seq_header) + 9); + +#define DIRAC_PARSE_HEADER_SIZE 13 + buf = gst_buffer_new_and_alloc (size + DIRAC_PARSE_HEADER_SIZE); + + memcpy (GST_BUFFER_DATA (buf), GST_BUFFER_DATA (seq_header), size); + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + size + 0, 0x42424344); +#define DIRAC_PARSE_CODE_END_OF_SEQUENCE 0x10 + GST_WRITE_UINT8 (GST_BUFFER_DATA (buf) + size + 4, + DIRAC_PARSE_CODE_END_OF_SEQUENCE); + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + size + 5, 0); + GST_WRITE_UINT32_BE (GST_BUFFER_DATA (buf) + size + 9, size); + + /* ogg(mux) expects the header buffers to have 0 timestamps - + set OFFSET and OFFSET_END accordingly */ + GST_BUFFER_OFFSET (buf) = 0; + GST_BUFFER_OFFSET_END (buf) = 0; + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_IN_CAPS); + + if (dirac_enc->codec_data) { + gst_buffer_unref (dirac_enc->codec_data); + } + dirac_enc->codec_data = buf; +} + +static GstCaps * +gst_dirac_enc_get_caps (GstBaseVideoEncoder * base_video_encoder) +{ + GstCaps *caps; + const GstVideoState *state; + GstDiracEnc *dirac_enc; + + dirac_enc = GST_DIRAC_ENC (base_video_encoder); + + state = gst_base_video_encoder_get_state (base_video_encoder); + + if (dirac_enc->output_format == GST_DIRAC_ENC_OUTPUT_OGG) { + caps = gst_caps_new_simple ("video/x-dirac", + "width", G_TYPE_INT, state->width, + "height", G_TYPE_INT, state->height, + "framerate", GST_TYPE_FRACTION, state->fps_n, + state->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, + state->par_d, + "streamheader", GST_TYPE_BUFFER, dirac_enc->codec_data, NULL); + } else if (dirac_enc->output_format == GST_DIRAC_ENC_OUTPUT_QUICKTIME) { + caps = gst_caps_new_simple ("video/x-qt-part", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('d', 'r', 'a', 'c'), + "width", G_TYPE_INT, state->width, + "height", G_TYPE_INT, state->height, + "framerate", GST_TYPE_FRACTION, state->fps_n, + state->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, + state->par_d, NULL); + } else if (dirac_enc->output_format == GST_DIRAC_ENC_OUTPUT_AVI) { + caps = gst_caps_new_simple ("video/x-avi-part", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('d', 'r', 'a', 'c'), + "width", G_TYPE_INT, state->width, + "height", G_TYPE_INT, state->height, + "framerate", GST_TYPE_FRACTION, state->fps_n, + state->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, + state->par_d, NULL); + } else if (dirac_enc->output_format == GST_DIRAC_ENC_OUTPUT_MPEG_TS) { + caps = gst_caps_new_simple ("video/x-mpegts-part", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('d', 'r', 'a', 'c'), + "width", G_TYPE_INT, state->width, + "height", G_TYPE_INT, state->height, + "framerate", GST_TYPE_FRACTION, state->fps_n, + state->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, + state->par_d, NULL); + } else if (dirac_enc->output_format == GST_DIRAC_ENC_OUTPUT_MP4) { + caps = gst_caps_new_simple ("video/x-mp4-part", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('d', 'r', 'a', 'c'), + "width", G_TYPE_INT, state->width, + "height", G_TYPE_INT, state->height, + "framerate", GST_TYPE_FRACTION, state->fps_n, + state->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, state->par_n, + state->par_d, NULL); + } else { + g_assert_not_reached (); + } + + return caps; +} diff --git a/ext/directfb/Makefile.am b/ext/directfb/Makefile.am new file mode 100644 index 0000000..05e79ac --- /dev/null +++ b/ext/directfb/Makefile.am @@ -0,0 +1,18 @@ + +plugin_LTLIBRARIES = libgstdfbvideosink.la + +libgstdfbvideosink_la_SOURCES = dfbvideosink.c +libgstdfbvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + $(DIRECTFB_CFLAGS) +libgstdfbvideosink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) \ + $(DIRECTFB_LIBS) $(LIBOIL_LIBS) +libgstdfbvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdfbvideosink_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = dfbvideosink.h + +noinst_PROGRAMS = dfb-example +dfb_example_CFLAGS = $(GST_CFLAGS) $(DIRECTFB_CFLAGS) +dfb_example_LDADD = $(GST_LIBS) $(DIRECTFB_LIBS) diff --git a/ext/directfb/Makefile.in b/ext/directfb/Makefile.in new file mode 100644 index 0000000..69a6794 --- /dev/null +++ b/ext/directfb/Makefile.in @@ -0,0 +1,903 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = dfb-example$(EXEEXT) +subdir = ext/directfb +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdfbvideosink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdfbvideosink_la_OBJECTS = \ + libgstdfbvideosink_la-dfbvideosink.lo +libgstdfbvideosink_la_OBJECTS = $(am_libgstdfbvideosink_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstdfbvideosink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdfbvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstdfbvideosink_la_CFLAGS) $(CFLAGS) \ + $(libgstdfbvideosink_la_LDFLAGS) $(LDFLAGS) -o $@ +PROGRAMS = $(noinst_PROGRAMS) +dfb_example_SOURCES = dfb-example.c +dfb_example_OBJECTS = dfb_example-dfb-example.$(OBJEXT) +dfb_example_DEPENDENCIES = $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +dfb_example_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(dfb_example_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstdfbvideosink_la_SOURCES) dfb-example.c +DIST_SOURCES = $(libgstdfbvideosink_la_SOURCES) dfb-example.c +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdfbvideosink.la +libgstdfbvideosink_la_SOURCES = dfbvideosink.c +libgstdfbvideosink_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) \ + $(DIRECTFB_CFLAGS) + +libgstdfbvideosink_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) \ + -lgstvideo-$(GST_MAJORMINOR) \ + -lgstinterfaces-$(GST_MAJORMINOR) \ + $(DIRECTFB_LIBS) $(LIBOIL_LIBS) + +libgstdfbvideosink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdfbvideosink_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = dfbvideosink.h +dfb_example_CFLAGS = $(GST_CFLAGS) $(DIRECTFB_CFLAGS) +dfb_example_LDADD = $(GST_LIBS) $(DIRECTFB_LIBS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/directfb/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/directfb/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstdfbvideosink.la: $(libgstdfbvideosink_la_OBJECTS) $(libgstdfbvideosink_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdfbvideosink_la_LINK) -rpath $(plugindir) $(libgstdfbvideosink_la_OBJECTS) $(libgstdfbvideosink_la_LIBADD) $(LIBS) + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +dfb-example$(EXEEXT): $(dfb_example_OBJECTS) $(dfb_example_DEPENDENCIES) + @rm -f dfb-example$(EXEEXT) + $(AM_V_CCLD)$(dfb_example_LINK) $(dfb_example_OBJECTS) $(dfb_example_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/dfb_example-dfb-example.Po@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdfbvideosink_la-dfbvideosink.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstdfbvideosink_la-dfbvideosink.lo: dfbvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdfbvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdfbvideosink_la_CFLAGS) $(CFLAGS) -MT libgstdfbvideosink_la-dfbvideosink.lo -MD -MP -MF $(DEPDIR)/libgstdfbvideosink_la-dfbvideosink.Tpo -c -o libgstdfbvideosink_la-dfbvideosink.lo `test -f 'dfbvideosink.c' || echo '$(srcdir)/'`dfbvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdfbvideosink_la-dfbvideosink.Tpo $(DEPDIR)/libgstdfbvideosink_la-dfbvideosink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfbvideosink.c' object='libgstdfbvideosink_la-dfbvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdfbvideosink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdfbvideosink_la_CFLAGS) $(CFLAGS) -c -o libgstdfbvideosink_la-dfbvideosink.lo `test -f 'dfbvideosink.c' || echo '$(srcdir)/'`dfbvideosink.c + +dfb_example-dfb-example.o: dfb-example.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dfb_example_CFLAGS) $(CFLAGS) -MT dfb_example-dfb-example.o -MD -MP -MF $(DEPDIR)/dfb_example-dfb-example.Tpo -c -o dfb_example-dfb-example.o `test -f 'dfb-example.c' || echo '$(srcdir)/'`dfb-example.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dfb_example-dfb-example.Tpo $(DEPDIR)/dfb_example-dfb-example.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfb-example.c' object='dfb_example-dfb-example.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dfb_example_CFLAGS) $(CFLAGS) -c -o dfb_example-dfb-example.o `test -f 'dfb-example.c' || echo '$(srcdir)/'`dfb-example.c + +dfb_example-dfb-example.obj: dfb-example.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dfb_example_CFLAGS) $(CFLAGS) -MT dfb_example-dfb-example.obj -MD -MP -MF $(DEPDIR)/dfb_example-dfb-example.Tpo -c -o dfb_example-dfb-example.obj `if test -f 'dfb-example.c'; then $(CYGPATH_W) 'dfb-example.c'; else $(CYGPATH_W) '$(srcdir)/dfb-example.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/dfb_example-dfb-example.Tpo $(DEPDIR)/dfb_example-dfb-example.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='dfb-example.c' object='dfb_example-dfb-example.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(dfb_example_CFLAGS) $(CFLAGS) -c -o dfb_example-dfb-example.obj `if test -f 'dfb-example.c'; then $(CYGPATH_W) 'dfb-example.c'; else $(CYGPATH_W) '$(srcdir)/dfb-example.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(PROGRAMS) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + clean-pluginLTLIBRARIES mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-noinstPROGRAMS clean-pluginLTLIBRARIES \ + ctags distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pluginLTLIBRARIES install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-compile mostlyclean-generic mostlyclean-libtool \ + pdf pdf-am ps ps-am tags uninstall uninstall-am \ + uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/directfb/dfb-example.c b/ext/directfb/dfb-example.c new file mode 100644 index 0000000..59bbd4a --- /dev/null +++ b/ext/directfb/dfb-example.c @@ -0,0 +1,83 @@ + +#include +#include +#include + +static IDirectFB *dfb = NULL; +static IDirectFBSurface *primary = NULL; +static GMainLoop *loop; + +#define DFBCHECK(x...) \ + { \ + DFBResult err = x; \ + \ + if (err != DFB_OK) \ + { \ + fprintf( stderr, "%s <%d>:\n\t", __FILE__, __LINE__ ); \ + DirectFBErrorFatal( #x, err ); \ + } \ + } + +static gboolean +get_me_out (gpointer data) +{ + g_main_loop_quit (loop); + return FALSE; +} + +int +main (int argc, char *argv[]) +{ + DFBSurfaceDescription dsc; + GstElement *pipeline, *src, *sink; + + /* Init both GStreamer and DirectFB */ + DFBCHECK (DirectFBInit (&argc, &argv)); + gst_init (&argc, &argv); + + /* Creates DirectFB main context and set it to fullscreen layout */ + DFBCHECK (DirectFBCreate (&dfb)); + DFBCHECK (dfb->SetCooperativeLevel (dfb, DFSCL_FULLSCREEN)); + + /* We want a double buffered primary surface */ + dsc.flags = DSDESC_CAPS; + dsc.caps = DSCAPS_PRIMARY | DSCAPS_FLIPPING; + + DFBCHECK (dfb->CreateSurface (dfb, &dsc, &primary)); + + /* Creating our pipeline : videotestsrc ! dfbvideosink */ + pipeline = gst_pipeline_new (NULL); + g_assert (pipeline); + src = gst_element_factory_make ("videotestsrc", NULL); + g_assert (src); + sink = gst_element_factory_make ("dfbvideosink", NULL); + g_assert (sink); + /* That's the interesting part, giving the primary surface to dfbvideosink */ + g_object_set (sink, "surface", primary, NULL); + + /* Adding elements to the pipeline */ + gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL); + if (!gst_element_link (src, sink)) + g_error ("Couldn't link videotestsrc and dfbvideosink"); + + /* Let's play ! */ + gst_element_set_state (pipeline, GST_STATE_PLAYING); + + /* we need to run a GLib main loop to get out of here */ + loop = g_main_loop_new (NULL, FALSE); + /* Get us out after 20 seconds */ + g_timeout_add (20000, get_me_out, NULL); + g_main_loop_run (loop); + + /* Release elements and stop playback */ + gst_element_set_state (pipeline, GST_STATE_NULL); + + /* Free the main loop */ + g_main_loop_unref (loop); + + /* Release DirectFB context and surface */ + primary->Release (primary); + dfb->Release (dfb); + + return 0; +} diff --git a/ext/directfb/dfbvideosink.c b/ext/directfb/dfbvideosink.c new file mode 100644 index 0000000..d8bb6d9 --- /dev/null +++ b/ext/directfb/dfbvideosink.c @@ -0,0 +1,2409 @@ +/* GStreamer DirectFB plugin + * Copyright (C) 2005 Julien MOUTTE + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-dfbvideosink + * + * DfbVideoSink renders video frames using the + * DirectFB library. + * Rendering can happen in two different modes : + * + * + * + * Standalone: this mode will take complete control of the monitor forcing + * DirectFB to fullscreen layout. + * This is convenient to test using the gst-launch command line tool or + * other simple applications. It is possible to interrupt playback while + * being in this mode by pressing the Escape key. + * + * + * This mode handles navigation events for every input device supported by + * the DirectFB library, it will + * look for available video modes in the fb.modes file and try to switch + * the framebuffer video mode to the most suitable one. Depending on + * hardware acceleration capabilities the element will handle scaling or not. + * If no acceleration is available it will do clipping or centering of the + * video frames respecting the original aspect ratio. + * + * + * + * + * Embedded: this mode will render video frames in a + * #GstDfbVideoSink:surface provided by the + * application developer. This is a more advanced usage of the element and + * it is required to integrate video playback in existing + * DirectFB applications. + * + * + * When using this mode the element just renders to the + * #GstDfbVideoSink:surface provided by the + * application, that means it won't handle navigation events and won't resize + * the #GstDfbVideoSink:surface to fit video + * frames geometry. Application has to implement the necessary code to grab + * informations about the negotiated geometry and resize there + * #GstDfbVideoSink:surface accordingly. + * + * + * + * For both modes the element implements a buffer pool allocation system to + * optimize memory allocation time and handle reverse negotiation. Indeed if + * you insert an element like videoscale in the pipeline the video sink will + * negotiate with it to try get a scaled video for either the fullscreen layout + * or the application provided external #GstDfbVideoSink:surface. + * + * + * Example application + * + * + * + * + * + * Example pipelines + * |[ + * gst-launch -v videotestsrc ! dfbvideosink hue=20000 saturation=40000 brightness=25000 + * ]| test the colorbalance interface implementation in dfbvideosink + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* Our interfaces */ +#include +#include + +/* Object header */ +#include "dfbvideosink.h" + +#include +#include + +/* Debugging category */ +GST_DEBUG_CATEGORY_STATIC (dfbvideosink_debug); +#define GST_CAT_DEFAULT dfbvideosink_debug + +/* Default template */ +static GstStaticPadTemplate gst_dfbvideosink_sink_template_factory = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-rgb, " + "framerate = (fraction) [ 0, MAX ], " + "width = (int) [ 1, MAX ], " + "height = (int) [ 1, MAX ]; " + "video/x-raw-yuv, " + "framerate = (fraction) [ 0, MAX ], " + "width = (int) [ 1, MAX ], " "height = (int) [ 1, MAX ]") + ); + +/* Signals and args */ +enum +{ + ARG_0, + ARG_SURFACE, + ARG_CONTRAST, + ARG_BRIGHTNESS, + ARG_HUE, + ARG_SATURATION, + ARG_PIXEL_ASPECT_RATIO, + ARG_VSYNC +}; + +static void gst_dfbvideosink_bufferpool_clear (GstDfbVideoSink * dfbvideosink); +static DFBSurfacePixelFormat gst_dfbvideosink_get_format_from_caps (GstCaps * + caps); +static void gst_dfbvideosink_update_colorbalance (GstDfbVideoSink * + dfbvideosink); +static void gst_dfbvideosink_surface_destroy (GstDfbVideoSink * dfbvideosink, + GstDfbSurface * surface); + +static GstVideoSinkClass *parent_class = NULL; +static GstBufferClass *surface_parent_class = NULL; + +#ifndef GST_DISABLE_GST_DEBUG +static const char * +gst_dfbvideosink_get_format_name (DFBSurfacePixelFormat format) +{ + switch (format) { + case DSPF_ARGB1555: + return "ARGB1555"; + case DSPF_RGB16: + return "RGB16"; + case DSPF_RGB24: + return "RGB24"; + case DSPF_RGB32: + return "RGB32"; + case DSPF_ARGB: + return "ARGB"; + case DSPF_A8: + return "A8"; + case DSPF_YUY2: + return "YUY2"; + case DSPF_RGB332: + return "RGB33"; + case DSPF_UYVY: + return "UYVY"; + case DSPF_I420: + return "I420"; + case DSPF_YV12: + return "YV12"; + case DSPF_LUT8: + return "LUT8"; + case DSPF_ALUT44: + return "ALUT44"; + case DSPF_AiRGB: + return "AiRGB"; + case DSPF_A1: + return "A1"; + case DSPF_NV12: + return "NV12"; + case DSPF_NV16: + return "NV16"; + case DSPF_ARGB2554: + return "ARGB2554"; + case DSPF_ARGB4444: + return "ARGB4444"; + case DSPF_NV21: + return "NV21"; + default: + return "UNKNOWN"; + } +} +#endif /* GST_DISABLE_GST_DEBUG */ + +/* Creates miniobject and our internal surface */ +static GstDfbSurface * +gst_dfbvideosink_surface_create (GstDfbVideoSink * dfbvideosink, GstCaps * caps, + size_t size) +{ + GstDfbSurface *surface = NULL; + GstStructure *structure = NULL; + DFBResult ret; + DFBSurfaceDescription s_dsc; + gpointer data; + gint pitch; + gboolean succeeded = FALSE; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), NULL); + + surface = (GstDfbSurface *) gst_mini_object_new (GST_TYPE_DFBSURFACE); + + /* Keep a ref to our sink */ + surface->dfbvideosink = gst_object_ref (dfbvideosink); + /* Surface is not locked yet */ + surface->locked = FALSE; + + structure = gst_caps_get_structure (caps, 0); + + if (!gst_structure_get_int (structure, "width", &surface->width) || + !gst_structure_get_int (structure, "height", &surface->height)) { + GST_WARNING_OBJECT (dfbvideosink, "failed getting geometry from caps %" + GST_PTR_FORMAT, caps); + goto fallback; + } + + /* Pixel format from caps */ + surface->pixel_format = gst_dfbvideosink_get_format_from_caps (caps); + if (surface->pixel_format == DSPF_UNKNOWN) { + goto fallback; + } + + if (!dfbvideosink->dfb) { + GST_DEBUG_OBJECT (dfbvideosink, "no DirectFB context to create a surface"); + goto fallback; + } + + /* Creating an internal surface which will be used as GstBuffer, we used + the detected pixel format and video dimensions */ + + s_dsc.flags = + DSDESC_PIXELFORMAT | DSDESC_WIDTH | DSDESC_HEIGHT /*| DSDESC_CAPS */ ; + + s_dsc.pixelformat = surface->pixel_format; + s_dsc.width = surface->width; + s_dsc.height = surface->height; + /*s_dsc.caps = DSCAPS_VIDEOONLY; */ + + ret = dfbvideosink->dfb->CreateSurface (dfbvideosink->dfb, &s_dsc, + &surface->surface); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed creating a DirectFB surface"); + surface->surface = NULL; + goto fallback; + } + + /* Clearing surface */ + surface->surface->Clear (surface->surface, 0x00, 0x00, 0x00, 0xFF); + + /* Locking the surface to acquire the memory pointer */ + surface->surface->Lock (surface->surface, DSLF_WRITE, &data, &pitch); + surface->locked = TRUE; + GST_BUFFER_DATA (surface) = data; + GST_BUFFER_SIZE (surface) = pitch * surface->height; + + /* Be carefull here. If size is different from the surface size + (pitch * height), we can't use that surface through buffer alloc system + or we are going to run into serious stride issues */ + if (GST_BUFFER_SIZE (surface) != size) { + GST_WARNING_OBJECT (dfbvideosink, "DirectFB surface size (%dx%d=%d) " + "differs from GStreamer requested size %u", pitch, surface->height, + GST_BUFFER_SIZE (surface), (guint) size); + goto fallback; + } + + GST_DEBUG_OBJECT (dfbvideosink, "creating a %dx%d surface (%p) with %s " + "pixel format, line pitch %d", surface->width, surface->height, surface, + gst_dfbvideosink_get_format_name (surface->pixel_format), pitch); + + succeeded = TRUE; + + goto beach; + +fallback: + + /* We allocate a standard buffer ourselves to store it in our buffer pool, + this is an optimisation for memory allocation */ + GST_BUFFER (surface)->malloc_data = g_malloc (size); + GST_BUFFER_DATA (surface) = GST_BUFFER (surface)->malloc_data; + GST_BUFFER_SIZE (surface) = size; + if (surface->surface) { + if (surface->locked) { + surface->surface->Unlock (surface->surface); + surface->locked = FALSE; + } + surface->surface->Release (surface->surface); + surface->surface = NULL; + } + GST_DEBUG_OBJECT (dfbvideosink, "allocating a buffer (%p) of %u bytes", + surface, (guint) size); + + succeeded = TRUE; + +beach: + if (!succeeded) { + gst_dfbvideosink_surface_destroy (dfbvideosink, surface); + surface = NULL; + } + return surface; +} + +/* We are called from the finalize method of miniobject, the object will be + * destroyed so we just have to clean our internal stuff */ +static void +gst_dfbvideosink_surface_destroy (GstDfbVideoSink * dfbvideosink, + GstDfbSurface * surface) +{ + g_return_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink)); + + /* Release our internal surface */ + if (surface->surface) { + if (surface->locked) { + surface->surface->Unlock (surface->surface); + surface->locked = FALSE; + } + surface->surface->Release (surface->surface); + surface->surface = NULL; + } + + if (surface->dfbvideosink) { + /* Release the ref to our sink */ + surface->dfbvideosink = NULL; + gst_object_unref (dfbvideosink); + } + + GST_MINI_OBJECT_CLASS (surface_parent_class)->finalize (GST_MINI_OBJECT + (surface)); +} + +static gpointer +gst_dfbvideosink_event_thread (GstDfbVideoSink * dfbvideosink) +{ + DFBResult ret; + + while (dfbvideosink->running) { + /* Wait for an event with a 50 ms timeout */ + dfbvideosink->event_buffer-> + WaitForEventWithTimeout (dfbvideosink->event_buffer, 0, 50); + + /* Do we have an event ? */ + ret = dfbvideosink->event_buffer->HasEvent (dfbvideosink->event_buffer); + + if (ret == DFB_OK) { + DFBEvent event; + + GST_DEBUG_OBJECT (dfbvideosink, "we have an event"); + + ret = dfbvideosink->event_buffer->GetEvent (dfbvideosink->event_buffer, + &event); + if (ret != DFB_OK) { /* Error */ + GST_WARNING_OBJECT (dfbvideosink, "failed when getting event from " + "event buffer"); + } else { /* Handle event */ + if (event.input.type == DIET_KEYPRESS) { + switch (event.input.key_symbol) { + case DIKS_ESCAPE: + { + GST_ELEMENT_ERROR (dfbvideosink, RESOURCE, OPEN_WRITE, + ("Video output device is gone."), + ("We were running fullscreen and user " + "pressed the ESC key, stopping playback.")); + } + default: + GST_DEBUG_OBJECT (dfbvideosink, "key press event %c !", + event.input.key_symbol); + gst_navigation_send_key_event (GST_NAVIGATION (dfbvideosink), + "key-press", "prout"); + } + } else if (event.input.type == DIET_BUTTONPRESS) { + gint x, y; + + dfbvideosink->layer->GetCursorPosition (dfbvideosink->layer, &x, &y); + + GST_DEBUG_OBJECT (dfbvideosink, "button %d pressed at %dx%d", + event.input.button, x, y); + + gst_navigation_send_mouse_event (GST_NAVIGATION (dfbvideosink), + "mouse-button-press", event.input.button, x, y); + } else if (event.input.type == DIET_BUTTONRELEASE) { + gint x, y; + + dfbvideosink->layer->GetCursorPosition (dfbvideosink->layer, &x, &y); + + GST_DEBUG_OBJECT (dfbvideosink, "button %d released at %dx%d", + event.input.button, x, y); + + gst_navigation_send_mouse_event (GST_NAVIGATION (dfbvideosink), + "mouse-button-release", event.input.button, x, y); + } else if (event.input.type == DIET_AXISMOTION) { + gint x, y; + + dfbvideosink->layer->GetCursorPosition (dfbvideosink->layer, &x, &y); + gst_navigation_send_mouse_event (GST_NAVIGATION (dfbvideosink), + "mouse-move", 0, x, y); + } else { + GST_WARNING_OBJECT (dfbvideosink, "unhandled event type %d", + event.input.type); + } + } + } + } + return NULL; +} + +static DFBEnumerationResult +gst_dfbvideosink_enum_layers (DFBDisplayLayerID id, + DFBDisplayLayerDescription desc, void *data) +{ + GstDfbVideoSink *dfbvideosink = NULL; + IDirectFBDisplayLayer *layer = NULL; + DFBDisplayLayerConfig dlc; + DFBResult ret; + gboolean backbuffer = FALSE; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (data), DFENUM_CANCEL); + + dfbvideosink = GST_DFBVIDEOSINK (data); + + GST_DEBUG_OBJECT (dfbvideosink, "inspecting display layer %d with name: %s", + id, desc.name); + + if ((desc.type & DLTF_VIDEO) && (desc.caps & DLCAPS_SURFACE)) { + GST_DEBUG_OBJECT (dfbvideosink, + "this layer can handle live video and has a surface"); + } else { + if (desc.caps & DLCAPS_SURFACE) { + GST_DEBUG_OBJECT (dfbvideosink, + "this layer can not handle live video but has a surface"); + } else { + GST_DEBUG_OBJECT (dfbvideosink, "no we can't use that layer, really..."); + goto beach; + } + } + + ret = dfbvideosink->dfb->GetDisplayLayer (dfbvideosink->dfb, id, &layer); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed getting display layer %s", + desc.name); + goto beach; + } + + ret = layer->GetConfiguration (layer, &dlc); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, + "failed getting display layer configuration"); + goto beach; + } + + if ((dlc.flags & DLCONF_BUFFERMODE) && (dlc.buffermode & DLBM_FRONTONLY)) { + GST_DEBUG_OBJECT (dfbvideosink, "no backbuffer"); + } + if ((dlc.flags & DLCONF_BUFFERMODE) && (dlc.buffermode & DLBM_BACKVIDEO)) { + GST_DEBUG_OBJECT (dfbvideosink, "backbuffer is in video memory"); + backbuffer = TRUE; + } + if ((dlc.flags & DLCONF_BUFFERMODE) && (dlc.buffermode & DLBM_BACKSYSTEM)) { + GST_DEBUG_OBJECT (dfbvideosink, "backbuffer is in system memory"); + backbuffer = TRUE; + } + if ((dlc.flags & DLCONF_BUFFERMODE) && (dlc.buffermode & DLBM_TRIPLE)) { + GST_DEBUG_OBJECT (dfbvideosink, "triple buffering"); + backbuffer = TRUE; + } + + /* If the primary is suitable we prefer using it */ + if (dfbvideosink->layer_id != DLID_PRIMARY) { + GST_DEBUG_OBJECT (dfbvideosink, "selecting layer named %s", desc.name); + dfbvideosink->layer_id = id; + dfbvideosink->backbuffer = backbuffer; + } else { + GST_DEBUG_OBJECT (dfbvideosink, "layer %s is suitable but the primary " + "is currently selected and we prefer that one", desc.name); + } + +beach: + if (layer) { + layer->Release (layer); + } + return DFENUM_OK; +} + +static DFBEnumerationResult +gst_dfbvideosink_enum_vmodes (gint width, gint height, gint bpp, void *data) +{ + GstDfbVideoSink *dfbvideosink = NULL; + GstDfbVMode *vmode = NULL; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (data), DFENUM_CANCEL); + + dfbvideosink = GST_DFBVIDEOSINK (data); + + GST_DEBUG_OBJECT (dfbvideosink, "adding video mode %dx%d at %d bpp", width, + height, bpp); + vmode = g_new0 (GstDfbVMode, 1); + vmode->width = width; + vmode->height = height; + vmode->bpp = bpp; + + /* We need to know the maximum video geometry we can accept for the caps */ + if (width > dfbvideosink->out_width) { + dfbvideosink->out_width = width; + } + if (height > dfbvideosink->out_height) { + dfbvideosink->out_height = height; + } + + dfbvideosink->vmodes = g_slist_append (dfbvideosink->vmodes, vmode); + + return DFENUM_OK; +} + +static DFBEnumerationResult +gst_dfbvideosink_enum_devices (DFBInputDeviceID id, + DFBInputDeviceDescription desc, void *data) +{ + GstDfbVideoSink *dfbvideosink = NULL; + IDirectFBInputDevice *device = NULL; + DFBResult ret; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (data), DFENUM_CANCEL); + + dfbvideosink = GST_DFBVIDEOSINK (data); + + GST_DEBUG_OBJECT (dfbvideosink, "detected input device %s from vendor %s", + desc.name, desc.vendor); + + /* Get that input device */ + ret = dfbvideosink->dfb->GetInputDevice (dfbvideosink->dfb, id, &device); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when getting input device id %d", + id); + goto beach; + } + + ret = device->AttachEventBuffer (device, dfbvideosink->event_buffer); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when attaching input device " + "%d to our event buffer", id); + } + +beach: + if (device) { + device->Release (device); + } + return DFENUM_OK; +} + +static gboolean +gst_dfbvideosink_setup (GstDfbVideoSink * dfbvideosink) +{ + DFBResult ret; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), FALSE); + + dfbvideosink->video_width = 0; + dfbvideosink->video_height = 0; + dfbvideosink->out_width = 0; + dfbvideosink->out_height = 0; + dfbvideosink->fps_d = 0; + dfbvideosink->fps_n = 0; + dfbvideosink->hw_scaling = FALSE; + dfbvideosink->backbuffer = FALSE; + dfbvideosink->pixel_format = DSPF_UNKNOWN; + + /* If we do it all by ourself we create the DirectFB context, get the + primary layer and use a fullscreen configuration */ + if (!dfbvideosink->ext_surface) { + GST_DEBUG_OBJECT (dfbvideosink, "no external surface, taking over " + "DirectFB fullscreen"); + if (!dfbvideosink->dfb) { + DFBGraphicsDeviceDescription hw_caps; + char *argv[] = { (char *) "-", (char *) "--dfb:quiet", NULL }; + int argc = 2; + char **args; + + GST_DEBUG_OBJECT (dfbvideosink, "initializing DirectFB"); + + args = argv; + ret = DirectFBInit (&argc, &args); + + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "DirectFB initialization failed"); + goto beach; + } + + ret = DirectFBCreate (&(dfbvideosink->dfb)); + + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed creating the DirectFB " + "main object"); + goto beach; + } + + /* Get Hardware capabilities */ + ret = dfbvideosink->dfb->GetDeviceDescription (dfbvideosink->dfb, + &hw_caps); + + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed grabbing the hardware " + "capabilities"); + goto beach; + } + + GST_DEBUG_OBJECT (dfbvideosink, "video card %s from vendor %s detected " + "with %d bytes of video memory", hw_caps.name, hw_caps.vendor, + hw_caps.video_memory); + + if (hw_caps.acceleration_mask & DFXL_BLIT) { + GST_DEBUG_OBJECT (dfbvideosink, "Blit is accelerated"); + } + if (hw_caps.acceleration_mask & DFXL_STRETCHBLIT) { + GST_DEBUG_OBJECT (dfbvideosink, "StretchBlit is accelerated"); + dfbvideosink->hw_scaling = TRUE; + } else { + GST_DEBUG_OBJECT (dfbvideosink, "StretchBlit is not accelerated"); + dfbvideosink->hw_scaling = FALSE; + } + + dfbvideosink->layer_id = -1; + + /* Inspect all the Display layers */ + dfbvideosink->dfb->EnumDisplayLayers (dfbvideosink->dfb, + gst_dfbvideosink_enum_layers, dfbvideosink); + /* Inspect all Video modes */ + dfbvideosink->dfb->EnumVideoModes (dfbvideosink->dfb, + gst_dfbvideosink_enum_vmodes, dfbvideosink); + + /* Create an event buffer for input */ + dfbvideosink->dfb->CreateEventBuffer (dfbvideosink->dfb, + &dfbvideosink->event_buffer); + + /* Inspect all Input devices */ + dfbvideosink->dfb->EnumInputDevices (dfbvideosink->dfb, + gst_dfbvideosink_enum_devices, dfbvideosink); + /* Create a thread to handle those events */ + dfbvideosink->event_thread = g_thread_create ( + (GThreadFunc) gst_dfbvideosink_event_thread, + dfbvideosink, TRUE, NULL); + } + if (!dfbvideosink->layer) { + GList *channels_list = NULL; + DFBDisplayLayerDescription dl_desc; + + /* Get the best Display Layer */ + ret = dfbvideosink->dfb->GetDisplayLayer (dfbvideosink->dfb, + dfbvideosink->layer_id, &dfbvideosink->layer); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed getting display layer"); + goto beach; + } + + ret = dfbvideosink->layer->SetCooperativeLevel (dfbvideosink->layer, + DLSCL_EXCLUSIVE); + + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed setting display layer to " + "fullscreen mode"); + goto beach; + } + + dfbvideosink->layer->GetDescription (dfbvideosink->layer, &dl_desc); + + /* Check that this layer is able to do colorbalance settings */ + if (dl_desc.caps & DLCAPS_BRIGHTNESS) { + channels_list = g_list_append (channels_list, (char *) "BRIGHTNESS"); + } + if (dl_desc.caps & DLCAPS_CONTRAST) { + channels_list = g_list_append (channels_list, (char *) "CONTRAST"); + } + if (dl_desc.caps & DLCAPS_HUE) { + channels_list = g_list_append (channels_list, (char *) "HUE"); + } + if (dl_desc.caps & DLCAPS_SATURATION) { + channels_list = g_list_append (channels_list, (char *) "SATURATION"); + } + + if (channels_list) { + GList *walk = channels_list; + + /* Generate Color balance channel list */ + while (walk) { + GstColorBalanceChannel *channel = NULL; + + GST_DEBUG_OBJECT (dfbvideosink, "adding %s as a colorbalance channel", + (const char *) walk->data); + + channel = g_object_new (GST_TYPE_COLOR_BALANCE_CHANNEL, NULL); + channel->label = g_strdup (walk->data); + channel->min_value = 0x0000; + channel->max_value = 0xFFFF; + + dfbvideosink->cb_channels = g_list_append (dfbvideosink->cb_channels, + channel); + + walk = g_list_next (walk); + } + + /* If the colorbalance settings have not been touched we get current + values as defaults and update our internal variables */ + if (!dfbvideosink->cb_changed) { + DFBColorAdjustment cb_adjust; + + ret = dfbvideosink->layer->GetColorAdjustment (dfbvideosink->layer, + &cb_adjust); + + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when getting color " + "adjustment from layer"); + } + + if (cb_adjust.flags & DCAF_BRIGHTNESS) { + dfbvideosink->brightness = cb_adjust.brightness; + } else { + dfbvideosink->brightness = 0x8000; + } + if (cb_adjust.flags & DCAF_CONTRAST) { + dfbvideosink->contrast = cb_adjust.contrast; + } else { + dfbvideosink->contrast = 0x8000; + } + if (cb_adjust.flags & DCAF_HUE) { + dfbvideosink->hue = cb_adjust.hue; + } else { + dfbvideosink->hue = 0x8000; + } + if (cb_adjust.flags & DCAF_SATURATION) { + dfbvideosink->saturation = cb_adjust.saturation; + } else { + dfbvideosink->saturation = 0x8000; + } + GST_DEBUG_OBJECT (dfbvideosink, "brightness %d, contrast %d, " + "hue %d, saturation %d", dfbvideosink->brightness, + dfbvideosink->contrast, dfbvideosink->hue, + dfbvideosink->saturation); + } + + g_list_free (channels_list); + + gst_dfbvideosink_update_colorbalance (dfbvideosink); + } + + dfbvideosink->layer->SetBackgroundColor (dfbvideosink->layer, + 0x00, 0x00, 0x00, 0xFF); + + dfbvideosink->layer->EnableCursor (dfbvideosink->layer, TRUE); + + GST_DEBUG_OBJECT (dfbvideosink, "getting primary surface"); + dfbvideosink->layer->GetSurface (dfbvideosink->layer, + &dfbvideosink->primary); + + dfbvideosink->primary->SetBlittingFlags (dfbvideosink->primary, + DSBLIT_NOFX); + } + + dfbvideosink->primary->GetPixelFormat (dfbvideosink->primary, + &dfbvideosink->pixel_format); + } else { + DFBSurfaceCapabilities s_caps; + + GST_DEBUG_OBJECT (dfbvideosink, "getting pixel format from foreign " + "surface %p", dfbvideosink->ext_surface); + dfbvideosink->ext_surface->GetPixelFormat (dfbvideosink->ext_surface, + &dfbvideosink->pixel_format); + dfbvideosink->ext_surface->GetSize (dfbvideosink->ext_surface, + &dfbvideosink->out_width, &dfbvideosink->out_height); + dfbvideosink->ext_surface->GetCapabilities (dfbvideosink->ext_surface, + &s_caps); + if ((s_caps & DSCAPS_DOUBLE) || (s_caps & DSCAPS_TRIPLE)) { + dfbvideosink->backbuffer = TRUE; + } else { + dfbvideosink->backbuffer = FALSE; + } + GST_DEBUG_OBJECT (dfbvideosink, "external surface is %dx%d and uses %s " + "pixel format", dfbvideosink->out_width, dfbvideosink->out_height, + gst_dfbvideosink_get_format_name (dfbvideosink->pixel_format)); + } + + dfbvideosink->setup = TRUE; + +beach: + return dfbvideosink->setup; +} + +static void +gst_dfbvideosink_cleanup (GstDfbVideoSink * dfbvideosink) +{ + g_return_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink)); + + GST_DEBUG_OBJECT (dfbvideosink, "cleaning up DirectFB environment"); + + /* Wait for our event thread */ + if (dfbvideosink->event_thread) { + g_thread_join (dfbvideosink->event_thread); + dfbvideosink->event_thread = NULL; + } + + if (dfbvideosink->event_buffer) { + dfbvideosink->event_buffer->Release (dfbvideosink->event_buffer); + dfbvideosink->event_buffer = NULL; + } + + if (dfbvideosink->vmodes) { + GSList *walk = dfbvideosink->vmodes; + + while (walk) { + g_free (walk->data); + walk = g_slist_next (walk); + } + g_slist_free (dfbvideosink->vmodes); + dfbvideosink->vmodes = NULL; + } + + if (dfbvideosink->cb_channels) { + GList *walk = dfbvideosink->cb_channels; + + while (walk) { + GstColorBalanceChannel *channel = walk->data; + + g_object_unref (channel); + walk = g_list_next (walk); + } + g_list_free (dfbvideosink->cb_channels); + dfbvideosink->cb_channels = NULL; + } + + if (dfbvideosink->buffer_pool) { + gst_dfbvideosink_bufferpool_clear (dfbvideosink); + } + + if (dfbvideosink->primary) { + dfbvideosink->primary->Release (dfbvideosink->primary); + dfbvideosink->primary = NULL; + } + + if (dfbvideosink->layer) { + dfbvideosink->layer->EnableCursor (dfbvideosink->layer, FALSE); + dfbvideosink->layer->Release (dfbvideosink->layer); + dfbvideosink->layer = NULL; + } + + if (dfbvideosink->dfb) { + dfbvideosink->dfb->Release (dfbvideosink->dfb); + dfbvideosink->dfb = NULL; + } + + dfbvideosink->setup = FALSE; +} + +static DFBSurfacePixelFormat +gst_dfbvideosink_get_format_from_caps (GstCaps * caps) +{ + GstStructure *structure; + gboolean ret; + DFBSurfacePixelFormat pixel_format = DSPF_UNKNOWN; + + g_return_val_if_fail (GST_IS_CAPS (caps), DSPF_UNKNOWN); + + structure = gst_caps_get_structure (caps, 0); + + if (gst_structure_has_name (structure, "video/x-raw-rgb")) { + gint bpp, depth; + + ret = gst_structure_get_int (structure, "bpp", &bpp); + ret &= gst_structure_get_int (structure, "depth", &depth); + + if (!ret) { + goto beach; + } + + switch (bpp) { + case 16: + pixel_format = DSPF_RGB16; + break; + case 24: + pixel_format = DSPF_RGB24; + break; + case 32: + if (depth == 24) { + pixel_format = DSPF_RGB32; + } else if (depth == 32) { + pixel_format = DSPF_ARGB; + } else { + goto beach; + } + break; + default: + GST_WARNING ("unhandled RGB format, bpp %d, depth %d", bpp, depth); + goto beach; + } + } else if (gst_structure_has_name (structure, "video/x-raw-yuv")) { + guint32 fourcc; + + ret = gst_structure_get_fourcc (structure, "format", &fourcc); + + if (!ret) { + GST_WARNING ("failed grabbing fourcc from caps %" GST_PTR_FORMAT, caps); + goto beach; + } + + switch (fourcc) { + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + pixel_format = DSPF_I420; + break; + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + pixel_format = DSPF_YV12; + break; + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + pixel_format = DSPF_YUY2; + break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + pixel_format = DSPF_UYVY; + break; + default: + GST_WARNING ("unhandled YUV format %" GST_FOURCC_FORMAT, + GST_FOURCC_ARGS (fourcc)); + goto beach; + } + } else { + GST_WARNING ("unknown caps name received %" GST_PTR_FORMAT, caps); + goto beach; + } + +beach: + return pixel_format; +} + +static GstCaps * +gst_dfbvideosink_get_caps_from_format (DFBSurfacePixelFormat format) +{ + GstCaps *caps = NULL; + gboolean is_rgb = FALSE, is_yuv = FALSE; + gint bpp, depth; + guint32 fourcc; + + g_return_val_if_fail (format != DSPF_UNKNOWN, NULL); + + switch (format) { + case DSPF_RGB16: + is_rgb = TRUE; + bpp = 16; + depth = 16; + break; + case DSPF_RGB24: + is_rgb = TRUE; + bpp = 24; + depth = 24; + break; + case DSPF_RGB32: + is_rgb = TRUE; + bpp = 32; + depth = 24; + break; + case DSPF_ARGB: + is_rgb = TRUE; + bpp = 32; + depth = 32; + break; + case DSPF_YUY2: + is_yuv = TRUE; + fourcc = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'); + break; + case DSPF_UYVY: + is_yuv = TRUE; + fourcc = GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'); + break; + case DSPF_I420: + is_yuv = TRUE; + fourcc = GST_MAKE_FOURCC ('I', '4', '2', '0'); + break; + case DSPF_YV12: + is_yuv = TRUE; + fourcc = GST_MAKE_FOURCC ('Y', 'V', '1', '2'); + break; + default: + GST_WARNING ("unknown pixel format %s", + gst_dfbvideosink_get_format_name (format)); + goto beach; + } + + if (is_rgb) { + caps = gst_caps_new_simple ("video/x-raw-rgb", + "bpp", G_TYPE_INT, bpp, "depth", G_TYPE_INT, depth, NULL); + } else if (is_yuv) { + caps = gst_caps_new_simple ("video/x-raw-yuv", + "format", GST_TYPE_FOURCC, fourcc, NULL); + } else { + GST_WARNING ("neither rgb nor yuv, something strange here"); + } + +beach: + return caps; +} + +static gboolean +gst_dfbvideosink_can_blit_from_format (GstDfbVideoSink * dfbvideosink, + DFBSurfacePixelFormat format) +{ + gboolean res = FALSE; + DFBResult ret; + IDirectFBSurface *surface = NULL; + DFBSurfaceDescription s_dsc; + DFBAccelerationMask mask; + DFBDisplayLayerConfig dlc, prev_dlc; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), FALSE); + + /* Create a surface of desired format */ + s_dsc.flags = DSDESC_PIXELFORMAT | DSDESC_WIDTH | DSDESC_HEIGHT; + s_dsc.pixelformat = format; + s_dsc.width = 10; + s_dsc.height = 10; + + ret = dfbvideosink->dfb->CreateSurface (dfbvideosink->dfb, &s_dsc, &surface); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed creating surface with format %s", + gst_dfbvideosink_get_format_name (format)); + goto beach; + } + + /* Backup layer configuration */ + ret = dfbvideosink->layer->GetConfiguration (dfbvideosink->layer, &prev_dlc); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when getting current layer " + "configuration"); + goto beach; + } + + /* Test configuration of the layer to this pixel format */ + dlc.flags = DLCONF_PIXELFORMAT; + dlc.pixelformat = format; + + ret = dfbvideosink->layer->TestConfiguration (dfbvideosink->layer, &dlc, + NULL); + if (ret != DFB_OK) { + GST_DEBUG_OBJECT (dfbvideosink, "our layer refuses to operate in pixel " + "format %s", gst_dfbvideosink_get_format_name (format)); + goto beach; + } + + ret = dfbvideosink->layer->SetConfiguration (dfbvideosink->layer, &dlc); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "our layer refuses to operate in pixel " + "format, though this format was successfully tested earlied %s", + gst_dfbvideosink_get_format_name (format)); + goto beach; + } + + ret = dfbvideosink->primary->GetAccelerationMask (dfbvideosink->primary, + surface, &mask); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed getting acceleration mask"); + goto beach; + } + + /* Blitting from this format to our primary is accelerated */ + if (mask & DFXL_BLIT) { + GST_DEBUG_OBJECT (dfbvideosink, "blitting from format %s to our primary " + "is accelerated", gst_dfbvideosink_get_format_name (format)); + res = TRUE; + } else { + GST_DEBUG_OBJECT (dfbvideosink, "blitting from format %s to our primary " + "is not accelerated", gst_dfbvideosink_get_format_name (format)); + res = FALSE; + } + + /* Restore original layer configuration */ + ret = dfbvideosink->layer->SetConfiguration (dfbvideosink->layer, &prev_dlc); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when restoring layer " + "configuration"); + goto beach; + } + +beach: + if (surface) { + surface->Release (surface); + } + return res; +} + +static gboolean +gst_dfbvideosink_get_best_vmode (GstDfbVideoSink * dfbvideosink, gint v_width, + gint v_height, GstDfbVMode * best_vmode) +{ + GSList *walk = NULL; + gboolean ret = FALSE; + gint width, height, bpp; + GstDfbVMode *vmode = NULL; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), FALSE); + + if (!dfbvideosink->vmodes) { + goto beach; + } + + walk = dfbvideosink->vmodes; + + vmode = (GstDfbVMode *) walk->data; + + /* First mode */ + width = vmode->width; + height = vmode->height; + bpp = vmode->bpp; + + while (walk) { + gint wgap, hgap, best_wgap, best_hgap; + + vmode = (GstDfbVMode *) walk->data; + + /* What are the gaps */ + wgap = abs (vmode->width - v_width); + hgap = abs (vmode->height - v_height); + best_wgap = abs (width - v_width); + best_hgap = abs (height - v_height); + + /* If this mode is better we ll use that */ + if (wgap + hgap < best_wgap + best_hgap) { + width = vmode->width; + height = vmode->height; + bpp = vmode->bpp; + } + + walk = g_slist_next (walk); + } + + GST_DEBUG_OBJECT (dfbvideosink, "found video mode %dx%d for input at %dx%d", + width, height, v_width, v_height); + + best_vmode->width = width; + best_vmode->height = height; + best_vmode->bpp = bpp; + + ret = TRUE; + +beach: + return ret; +} + +static GstCaps * +gst_dfbvideosink_getcaps (GstBaseSink * bsink) +{ + GstDfbVideoSink *dfbvideosink; + GstCaps *caps = NULL; + gint i; + + dfbvideosink = GST_DFBVIDEOSINK (bsink); + + if (!dfbvideosink->setup) { + caps = gst_caps_copy (gst_pad_get_pad_template_caps (GST_VIDEO_SINK_PAD + (dfbvideosink))); + GST_DEBUG_OBJECT (dfbvideosink, "getcaps called and we are not setup yet, " + "returning template %" GST_PTR_FORMAT, caps); + goto beach; + } else { + GST_DEBUG_OBJECT (dfbvideosink, "getcaps called, checking our internal " + "format"); + if (dfbvideosink->ext_surface) { + /* We are not rendering to our own surface, returning this surface's + * pixel format */ + caps = gst_dfbvideosink_get_caps_from_format (dfbvideosink->pixel_format); + } else { + /* Try some formats */ + caps = gst_caps_new_empty (); + + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB16)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB16)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB24)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB24)); + } + /* There's something wrong with RGB32, ffmpegcolorspace ? + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_RGB32)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_RGB32)); + } */ + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_ARGB)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_ARGB)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_YUY2)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_YUY2)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_UYVY)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_UYVY)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_I420)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_I420)); + } + if (gst_dfbvideosink_can_blit_from_format (dfbvideosink, DSPF_YV12)) { + gst_caps_append (caps, + gst_dfbvideosink_get_caps_from_format (DSPF_YV12)); + } + } + } + + for (i = 0; i < gst_caps_get_size (caps); i++) { + GstStructure *structure = gst_caps_get_structure (caps, i); + + gst_structure_set (structure, + "width", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "height", GST_TYPE_INT_RANGE, 1, G_MAXINT, + "framerate", GST_TYPE_FRACTION_RANGE, 0, 1, G_MAXINT, 1, NULL); + + if (!dfbvideosink->hw_scaling && dfbvideosink->par) { + int nom, den; + + nom = gst_value_get_fraction_numerator (dfbvideosink->par); + den = gst_value_get_fraction_denominator (dfbvideosink->par); + gst_structure_set (structure, "pixel-aspect-ratio", + GST_TYPE_FRACTION, nom, den, NULL); + } + } + + GST_DEBUG_OBJECT (dfbvideosink, "returning our caps %" GST_PTR_FORMAT, caps); + +beach: + return caps; +} + +static gboolean +gst_dfbvideosink_setcaps (GstBaseSink * bsink, GstCaps * caps) +{ + GstDfbVideoSink *dfbvideosink; + GstStructure *structure; + gboolean res, result = FALSE; + gint video_width, video_height; + const GValue *framerate; + DFBSurfacePixelFormat pixel_format = DSPF_UNKNOWN; + + dfbvideosink = GST_DFBVIDEOSINK (bsink); + + structure = gst_caps_get_structure (caps, 0); + res = gst_structure_get_int (structure, "width", &video_width); + res &= gst_structure_get_int (structure, "height", &video_height); + framerate = gst_structure_get_value (structure, "framerate"); + res &= (framerate != NULL); + if (!res) { + goto beach; + } + + dfbvideosink->fps_n = gst_value_get_fraction_numerator (framerate); + dfbvideosink->fps_d = gst_value_get_fraction_denominator (framerate); + + pixel_format = gst_dfbvideosink_get_format_from_caps (caps); + + GST_DEBUG_OBJECT (dfbvideosink, "setcaps called with %" GST_PTR_FORMAT, caps); + GST_DEBUG_OBJECT (dfbvideosink, "our format is: %dx%d %s video at %d/%d fps", + video_width, video_height, + gst_dfbvideosink_get_format_name (pixel_format), dfbvideosink->fps_n, + dfbvideosink->fps_d); + + if (dfbvideosink->hw_scaling && dfbvideosink->par) { + gint video_par_n, video_par_d; /* video's PAR */ + gint display_par_n, display_par_d; /* display's PAR */ + gint num, den; + GValue display_ratio = { 0, }; /* display w/h ratio */ + const GValue *caps_par; + + /* get aspect ratio from caps if it's present, and + * convert video width and height to a display width and height + * using wd / hd = wv / hv * PARv / PARd + * the ratio wd / hd will be stored in display_ratio */ + g_value_init (&display_ratio, GST_TYPE_FRACTION); + + /* get video's PAR */ + caps_par = gst_structure_get_value (structure, "pixel-aspect-ratio"); + if (caps_par) { + video_par_n = gst_value_get_fraction_numerator (caps_par); + video_par_d = gst_value_get_fraction_denominator (caps_par); + } else { + video_par_n = 1; + video_par_d = 1; + } + /* get display's PAR */ + if (dfbvideosink->par) { + display_par_n = gst_value_get_fraction_numerator (dfbvideosink->par); + display_par_d = gst_value_get_fraction_denominator (dfbvideosink->par); + } else { + display_par_n = 1; + display_par_d = 1; + } + + gst_value_set_fraction (&display_ratio, + video_width * video_par_n * display_par_d, + video_height * video_par_d * display_par_n); + + num = gst_value_get_fraction_numerator (&display_ratio); + den = gst_value_get_fraction_denominator (&display_ratio); + GST_DEBUG_OBJECT (dfbvideosink, + "video width/height: %dx%d, calculated display ratio: %d/%d", + video_width, video_height, num, den); + + /* now find a width x height that respects this display ratio. + * prefer those that have one of w/h the same as the incoming video + * using wd / hd = num / den */ + + /* start with same height, because of interlaced video */ + /* check hd / den is an integer scale factor, and scale wd with the PAR */ + if (video_height % den == 0) { + GST_DEBUG_OBJECT (dfbvideosink, "keeping video height"); + GST_VIDEO_SINK_WIDTH (dfbvideosink) = video_height * num / den; + GST_VIDEO_SINK_HEIGHT (dfbvideosink) = video_height; + } else if (video_width % num == 0) { + GST_DEBUG_OBJECT (dfbvideosink, "keeping video width"); + GST_VIDEO_SINK_WIDTH (dfbvideosink) = video_width; + GST_VIDEO_SINK_HEIGHT (dfbvideosink) = video_width * den / num; + } else { + GST_DEBUG_OBJECT (dfbvideosink, "approximating while keeping height"); + GST_VIDEO_SINK_WIDTH (dfbvideosink) = video_height * num / den; + GST_VIDEO_SINK_HEIGHT (dfbvideosink) = video_height; + } + GST_DEBUG_OBJECT (dfbvideosink, "scaling to %dx%d", + GST_VIDEO_SINK_WIDTH (dfbvideosink), + GST_VIDEO_SINK_HEIGHT (dfbvideosink)); + } else { + if (dfbvideosink->par) { + const GValue *par; + + par = gst_structure_get_value (structure, "pixel-aspect-ratio"); + if (par) { + if (gst_value_compare (par, dfbvideosink->par) != GST_VALUE_EQUAL) { + goto wrong_aspect; + } + } + } + GST_VIDEO_SINK_WIDTH (dfbvideosink) = video_width; + GST_VIDEO_SINK_HEIGHT (dfbvideosink) = video_height; + } + + /* Try to adapt the video mode to the video geometry */ + if (dfbvideosink->dfb) { + DFBResult ret; + GstDfbVMode vmode; + + GST_DEBUG_OBJECT (dfbvideosink, "trying to adapt the video mode to video " + "geometry"); + + /* Set video mode and layer configuration appropriately */ + if (gst_dfbvideosink_get_best_vmode (dfbvideosink, + GST_VIDEO_SINK_WIDTH (dfbvideosink), + GST_VIDEO_SINK_HEIGHT (dfbvideosink), &vmode)) { + DFBDisplayLayerConfig lc; + gint width, height, bpp; + + width = vmode.width; + height = vmode.height; + bpp = vmode.bpp; + + GST_DEBUG_OBJECT (dfbvideosink, "setting video mode to %dx%d at %d bpp", + width, height, bpp); + + ret = dfbvideosink->dfb->SetVideoMode (dfbvideosink->dfb, width, + height, bpp); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed setting video mode %dx%d " + "at %d bpp", width, height, bpp); + } + + lc.flags = DLCONF_PIXELFORMAT; + lc.pixelformat = pixel_format; + + ret = dfbvideosink->layer->SetConfiguration (dfbvideosink->layer, &lc); + if (ret != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed setting layer pixelformat " + "to %s", gst_dfbvideosink_get_format_name (pixel_format)); + } else { + dfbvideosink->layer->GetConfiguration (dfbvideosink->layer, &lc); + dfbvideosink->out_width = lc.width; + dfbvideosink->out_height = lc.height; + dfbvideosink->pixel_format = lc.pixelformat; + GST_DEBUG_OBJECT (dfbvideosink, "layer %d now configured to %dx%d %s", + dfbvideosink->layer_id, lc.width, lc.height, + gst_dfbvideosink_get_format_name (lc.pixelformat)); + } + } + } + + if (pixel_format != dfbvideosink->pixel_format) { + GST_WARNING_OBJECT (dfbvideosink, "setcaps sent us a different pixel " + "format %s", gst_dfbvideosink_get_format_name (pixel_format)); + goto beach; + } + + dfbvideosink->video_width = video_width; + dfbvideosink->video_height = video_height; + + result = TRUE; + +beach: + return result; + +/* ERRORS */ +wrong_aspect: + { + GST_INFO_OBJECT (dfbvideosink, "pixel aspect ratio does not match"); + return FALSE; + } +} + +static GstStateChangeReturn +gst_dfbvideosink_change_state (GstElement * element, GstStateChange transition) +{ + GstDfbVideoSink *dfbvideosink; + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + + dfbvideosink = GST_DFBVIDEOSINK (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + dfbvideosink->running = TRUE; + if (!dfbvideosink->setup) { + if (!gst_dfbvideosink_setup (dfbvideosink)) { + GST_DEBUG_OBJECT (dfbvideosink, "setup failed when changing state " + "from NULL to READY"); + GST_ELEMENT_ERROR (dfbvideosink, RESOURCE, OPEN_WRITE, + (NULL), ("Failed initializing DirectFB system")); + return GST_STATE_CHANGE_FAILURE; + } + } + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + /* Blank surface if we have one */ + if (dfbvideosink->ext_surface) { + dfbvideosink->ext_surface->Clear (dfbvideosink->ext_surface, + 0x00, 0x00, 0x00, 0xFF); + } + if (dfbvideosink->primary) { + dfbvideosink->primary->Clear (dfbvideosink->primary, 0x00, 0x00, + 0x00, 0xFF); + } + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + dfbvideosink->fps_d = 0; + dfbvideosink->fps_n = 0; + dfbvideosink->video_width = 0; + dfbvideosink->video_height = 0; + + if (dfbvideosink->buffer_pool) { + gst_dfbvideosink_bufferpool_clear (dfbvideosink); + } + break; + case GST_STATE_CHANGE_READY_TO_NULL: + dfbvideosink->running = FALSE; + if (dfbvideosink->setup) { + gst_dfbvideosink_cleanup (dfbvideosink); + } + break; + default: + break; + } + + return ret; +} + +static void +gst_dfbvideosink_get_times (GstBaseSink * bsink, GstBuffer * buf, + GstClockTime * start, GstClockTime * end) +{ + GstDfbVideoSink *dfbvideosink; + + dfbvideosink = GST_DFBVIDEOSINK (bsink); + + if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + *start = GST_BUFFER_TIMESTAMP (buf); + if (GST_BUFFER_DURATION_IS_VALID (buf)) { + *end = *start + GST_BUFFER_DURATION (buf); + } else { + if (dfbvideosink->fps_n > 0) { + *end = + *start + (GST_SECOND * dfbvideosink->fps_d) / dfbvideosink->fps_n; + } + } + } +} + +static GstFlowReturn +gst_dfbvideosink_show_frame (GstBaseSink * bsink, GstBuffer * buf) +{ + GstDfbVideoSink *dfbvideosink = NULL; + DFBResult res; + GstVideoRectangle dst, src, result; + GstFlowReturn ret = GST_FLOW_OK; + gboolean mem_cpy = TRUE; + + dfbvideosink = GST_DFBVIDEOSINK (bsink); + + if (!dfbvideosink->setup) { + ret = GST_FLOW_UNEXPECTED; + goto beach; + } + + /* Is that a buffer we allocated ourselves ? */ + if (GST_IS_DFBSURFACE (buf)) { + GstDfbSurface *tmp_surface = GST_DFBSURFACE (buf); + + /* Does it have a surface ? */ + if (tmp_surface->surface) { + mem_cpy = FALSE; + GST_DEBUG_OBJECT (dfbvideosink, "we have a buffer (%p) we allocated " + "ourselves and it has a surface, no memcpy then", buf); + } else { + /* No surface, that's a malloc */ + GST_DEBUG_OBJECT (dfbvideosink, "we have a buffer (%p) we allocated " + "ourselves but it does not hold a surface", buf); + } + } else { + /* Not our baby */ + GST_DEBUG_OBJECT (dfbvideosink, "we have a buffer (%p) we did not allocate", + buf); + } + + if (mem_cpy) { + IDirectFBSurface *dest = NULL, *surface = NULL; + guint8 *data; + gint dest_pitch, src_pitch, line; + GstStructure *structure; + + /* As we are not blitting no acceleration is possible. If the surface is + * too small we do clipping, if it's too big we center. Theoretically as + * we are using buffer_alloc, there's a chance that we have been able to + * do reverse caps negotiation */ + + if (dfbvideosink->ext_surface) { + surface = dfbvideosink->ext_surface; + GST_DEBUG_OBJECT (dfbvideosink, "memcpy to an external surface " + "subsurface (vsync %d)", dfbvideosink->vsync); + } else { + surface = dfbvideosink->primary; + GST_DEBUG_OBJECT (dfbvideosink, "memcpy to a primary subsurface " + "(vsync %d)", dfbvideosink->vsync); + } + + /* Get the video frame geometry from the buffer caps */ + structure = gst_caps_get_structure (GST_BUFFER_CAPS (buf), 0); + if (structure) { + gst_structure_get_int (structure, "width", &src.w); + gst_structure_get_int (structure, "height", &src.h); + } else { + src.w = dfbvideosink->video_width; + src.h = dfbvideosink->video_height; + } + res = surface->GetSize (surface, &dst.w, &dst.h); + + /* Center / Clip */ + gst_video_sink_center_rect (src, dst, &result, FALSE); + + res = + surface->GetSubSurface (surface, (DFBRectangle *) (void *) &result, + &dest); + if (res != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed when getting a sub surface"); + ret = GST_FLOW_UNEXPECTED; + goto beach; + } + + /* If we are not using Flip we wait for VSYNC before blit */ + if (!dfbvideosink->backbuffer && dfbvideosink->vsync) { + dfbvideosink->layer->WaitForSync (dfbvideosink->layer); + } + + res = dest->Lock (dest, DSLF_WRITE, (void *) &data, &dest_pitch); + if (res != DFB_OK) { + GST_WARNING_OBJECT (dfbvideosink, "failed locking the external " + "subsurface for writing"); + ret = GST_FLOW_ERROR; + goto beach; + } + + /* Source video rowbytes */ + src_pitch = GST_BUFFER_SIZE (buf) / src.h; + + /* Write each line respecting subsurface pitch */ + for (line = 0; line < result.h; line++) { + /* We do clipping */ + memcpy (data, GST_BUFFER_DATA (buf) + (line * src_pitch), + MIN (src_pitch, dest_pitch)); + data += dest_pitch; + } + + res = dest->Unlock (dest); + + res = dest->Release (dest); + + if (dfbvideosink->backbuffer) { + if (dfbvideosink->vsync) { + res = surface->Flip (surface, NULL, DSFLIP_ONSYNC); + } else { + res = surface->Flip (surface, NULL, DSFLIP_NONE); + } + } + } else { + /* Else we will [Stretch]Blit to our primary */ + GstDfbSurface *surface = GST_DFBSURFACE (buf); + + GST_DEBUG_OBJECT (dfbvideosink, "blitting to a primary surface (vsync %d)", + dfbvideosink->vsync); + + src.w = GST_VIDEO_SINK_WIDTH (dfbvideosink); + src.h = GST_VIDEO_SINK_HEIGHT (dfbvideosink); + + dfbvideosink->primary->GetSize (dfbvideosink->primary, &dst.w, &dst.h); + + /* Unlocking surface before blit */ + if (surface->locked) { + surface->surface->Unlock (surface->surface); + surface->locked = FALSE; + } + + gst_video_sink_center_rect (src, dst, &result, dfbvideosink->hw_scaling); + + /* If we are not using Flip we wait for VSYNC before blit */ + if (!dfbvideosink->backbuffer && dfbvideosink->vsync) { + dfbvideosink->layer->WaitForSync (dfbvideosink->layer); + } + + if (dfbvideosink->hw_scaling) { + dfbvideosink->primary->StretchBlit (dfbvideosink->primary, + surface->surface, NULL, (DFBRectangle *) (void *) &result); + } else { + DFBRectangle clip; + + clip.x = clip.y = 0; + clip.w = result.w; + clip.h = result.h; + dfbvideosink->primary->Blit (dfbvideosink->primary, surface->surface, + &clip, result.x, result.y); + } + + if (dfbvideosink->backbuffer) { + if (dfbvideosink->vsync) { + dfbvideosink->primary->Flip (dfbvideosink->primary, NULL, + DSFLIP_ONSYNC); + } else { + dfbvideosink->primary->Flip (dfbvideosink->primary, NULL, DSFLIP_NONE); + } + } + } + +beach: + return ret; +} + +static void +gst_dfbvideosink_bufferpool_clear (GstDfbVideoSink * dfbvideosink) +{ + g_mutex_lock (dfbvideosink->pool_lock); + while (dfbvideosink->buffer_pool) { + GstDfbSurface *surface = dfbvideosink->buffer_pool->data; + + dfbvideosink->buffer_pool = g_slist_delete_link (dfbvideosink->buffer_pool, + dfbvideosink->buffer_pool); + gst_dfbvideosink_surface_destroy (dfbvideosink, surface); + } + g_mutex_unlock (dfbvideosink->pool_lock); +} + +/* For every buffer request we create a custom buffer containing and + * IDirectFBSurface or allocate a previously created one that's not used + * anymore. */ +static GstFlowReturn +gst_dfbvideosink_buffer_alloc (GstBaseSink * bsink, guint64 offset, guint size, + GstCaps * caps, GstBuffer ** buf) +{ + GstDfbVideoSink *dfbvideosink; + GstDfbSurface *surface = NULL; + GstFlowReturn ret = GST_FLOW_OK; + + gboolean rev_nego = FALSE; + gint width, height; + + GstCaps *desired_caps = NULL; + GstStructure *structure = NULL; + + dfbvideosink = GST_DFBVIDEOSINK (bsink); + + GST_LOG_OBJECT (dfbvideosink, "a buffer of %u bytes was requested with caps " + "%" GST_PTR_FORMAT " and offset %" G_GUINT64_FORMAT, size, caps, offset); + + if (G_UNLIKELY (!dfbvideosink->setup)) { + GST_DEBUG_OBJECT (dfbvideosink, "we are not setup yet, can't allocate!"); + *buf = NULL; + return ret; + } + + desired_caps = gst_caps_copy (caps); + + structure = gst_caps_get_structure (desired_caps, 0); + + if (gst_structure_get_int (structure, "width", &width) && + gst_structure_get_int (structure, "height", &height)) { + GstVideoRectangle dst, src, result; + GstDfbVMode vmode; + + /* If we can do hardware scaling we don't do reverse negotiation */ + if (dfbvideosink->hw_scaling) { + goto alloc; + } + + /* Our desired geometry respects aspect ratio */ + src.w = width; + src.h = height; + /* We should adapt the destination to the most suitable video mode */ + if (gst_dfbvideosink_get_best_vmode (dfbvideosink, width, height, &vmode)) { + dst.w = vmode.width; + dst.h = vmode.height; + } else { + if (dfbvideosink->ext_surface) { + dfbvideosink->ext_surface->GetSize (dfbvideosink->ext_surface, &dst.w, + &dst.h); + } else { + dfbvideosink->primary->GetSize (dfbvideosink->primary, &dst.w, &dst.h); + } + dfbvideosink->out_width = dst.w; + dfbvideosink->out_height = dst.h; + } + + gst_video_sink_center_rect (src, dst, &result, TRUE); + + if (width != result.w || height != result.h) { + GstPad *peer = gst_pad_get_peer (GST_VIDEO_SINK_PAD (dfbvideosink)); + + if (!GST_IS_PAD (peer)) { + /* Is this situation possible ? */ + goto alloc; + } + + GST_DEBUG_OBJECT (dfbvideosink, "we would love to receive a %dx%d video", + result.w, result.h); + gst_structure_set (structure, "width", G_TYPE_INT, result.w, NULL); + gst_structure_set (structure, "height", G_TYPE_INT, result.h, NULL); + + /* PAR property overrides the X calculated one */ + if (dfbvideosink->par) { + gint nom, den; + + nom = gst_value_get_fraction_numerator (dfbvideosink->par); + den = gst_value_get_fraction_denominator (dfbvideosink->par); + gst_structure_set (structure, "pixel-aspect-ratio", + GST_TYPE_FRACTION, nom, den, NULL); + } + + if (gst_pad_accept_caps (peer, desired_caps)) { + gint bpp; + + bpp = size / height / width; + rev_nego = TRUE; + width = result.w; + height = result.h; + size = bpp * width * height; + GST_DEBUG_OBJECT (dfbvideosink, "peed pad accepts our desired caps %" + GST_PTR_FORMAT " buffer size is now %d bytes", desired_caps, size); + } else { + GST_DEBUG_OBJECT (dfbvideosink, "peer pad does not accept our " + "desired caps %" GST_PTR_FORMAT, desired_caps); + rev_nego = FALSE; + width = dfbvideosink->video_width; + height = dfbvideosink->video_height; + } + gst_object_unref (peer); + } + } + +alloc: + /* Inspect our buffer pool */ + g_mutex_lock (dfbvideosink->pool_lock); + while (dfbvideosink->buffer_pool) { + surface = (GstDfbSurface *) dfbvideosink->buffer_pool->data; + + if (surface) { + /* Removing from the pool */ + dfbvideosink->buffer_pool = + g_slist_delete_link (dfbvideosink->buffer_pool, + dfbvideosink->buffer_pool); + + /* If the surface is invalid for our need, destroy */ + if ((surface->width != width) || + (surface->height != height) || + (surface->pixel_format != dfbvideosink->pixel_format)) { + gst_dfbvideosink_surface_destroy (dfbvideosink, surface); + surface = NULL; + } else { + /* We found a suitable surface */ + break; + } + } + } + g_mutex_unlock (dfbvideosink->pool_lock); + + /* We haven't found anything, creating a new one */ + if (!surface) { + if (rev_nego) { + surface = gst_dfbvideosink_surface_create (dfbvideosink, desired_caps, + size); + } else { + surface = gst_dfbvideosink_surface_create (dfbvideosink, caps, size); + } + } + /* Now we should have a surface, set appropriate caps on it */ + if (surface) { + if (rev_nego) { + gst_buffer_set_caps (GST_BUFFER (surface), desired_caps); + } else { + gst_buffer_set_caps (GST_BUFFER (surface), caps); + } + } + + *buf = GST_BUFFER (surface); + + gst_caps_unref (desired_caps); + + return ret; +} + +/* Our subclass of GstBuffer */ + +static void +gst_dfbsurface_finalize (GstDfbSurface * surface) +{ + GstDfbVideoSink *dfbvideosink = NULL; + + g_return_if_fail (surface != NULL); + + dfbvideosink = surface->dfbvideosink; + if (!dfbvideosink) { + GST_WARNING_OBJECT (surface, "no sink found"); + goto beach; + } + + /* If our geometry changed we can't reuse that image. */ + if ((surface->width != dfbvideosink->video_width) || + (surface->height != dfbvideosink->video_height) || + (surface->pixel_format != dfbvideosink->pixel_format)) { + GST_DEBUG_OBJECT (dfbvideosink, "destroy surface %p as its size changed " + "%dx%d vs current %dx%d", surface, surface->width, surface->height, + dfbvideosink->video_width, dfbvideosink->video_height); + gst_dfbvideosink_surface_destroy (dfbvideosink, surface); + } else { + /* In that case we can reuse the image and add it to our image pool. */ + GST_DEBUG_OBJECT (dfbvideosink, "recycling surface %p in pool", surface); + /* need to increment the refcount again to recycle */ + gst_buffer_ref (GST_BUFFER (surface)); + g_mutex_lock (dfbvideosink->pool_lock); + dfbvideosink->buffer_pool = g_slist_prepend (dfbvideosink->buffer_pool, + surface); + g_mutex_unlock (dfbvideosink->pool_lock); + } + +beach: + return; +} + +static void +gst_dfbsurface_init (GstDfbSurface * surface, gpointer g_class) +{ + surface->surface = NULL; + surface->width = 0; + surface->height = 0; + surface->pixel_format = DSPF_UNKNOWN; + surface->dfbvideosink = NULL; +} + +static void +gst_dfbsurface_class_init (gpointer g_class, gpointer class_data) +{ + GstMiniObjectClass *mini_object_class = GST_MINI_OBJECT_CLASS (g_class); + + surface_parent_class = g_type_class_peek_parent (g_class); + + mini_object_class->finalize = (GstMiniObjectFinalizeFunction) + gst_dfbsurface_finalize; +} + +GType +gst_dfbsurface_get_type (void) +{ + static GType _gst_dfbsurface_type; + + if (G_UNLIKELY (_gst_dfbsurface_type == 0)) { + static const GTypeInfo dfbsurface_info = { + sizeof (GstBufferClass), + NULL, + NULL, + gst_dfbsurface_class_init, + NULL, + NULL, + sizeof (GstDfbSurface), + 0, + (GInstanceInitFunc) gst_dfbsurface_init, + NULL + }; + _gst_dfbsurface_type = g_type_register_static (GST_TYPE_BUFFER, + "GstDfbSurface", &dfbsurface_info, 0); + } + return _gst_dfbsurface_type; +} + +/* Interfaces stuff */ + +static gboolean +gst_dfbvideosink_interface_supported (GstImplementsInterface * iface, + GType type) +{ + g_assert (type == GST_TYPE_NAVIGATION || type == GST_TYPE_COLOR_BALANCE); + return TRUE; +} + +static void +gst_dfbvideosink_interface_init (GstImplementsInterfaceClass * klass) +{ + klass->supported = gst_dfbvideosink_interface_supported; +} + +static void +gst_dfbvideosink_navigation_send_event (GstNavigation * navigation, + GstStructure * structure) +{ + GstDfbVideoSink *dfbvideosink = GST_DFBVIDEOSINK (navigation); + GstEvent *event; + GstVideoRectangle src, dst, result; + double x, y, old_x, old_y; + GstPad *pad = NULL; + + src.w = GST_VIDEO_SINK_WIDTH (dfbvideosink); + src.h = GST_VIDEO_SINK_HEIGHT (dfbvideosink); + dst.w = dfbvideosink->out_width; + dst.h = dfbvideosink->out_height; + gst_video_sink_center_rect (src, dst, &result, dfbvideosink->hw_scaling); + + event = gst_event_new_navigation (structure); + + /* Our coordinates can be wrong here if we centered the video */ + + /* Converting pointer coordinates to the non scaled geometry */ + if (gst_structure_get_double (structure, "pointer_x", &old_x)) { + x = old_x; + + if (x >= result.x && x <= (result.x + result.w)) { + x -= result.x; + x *= dfbvideosink->video_width; + x /= result.w; + } else { + x = 0; + } + GST_DEBUG_OBJECT (dfbvideosink, "translated navigation event x " + "coordinate from %f to %f", old_x, x); + gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE, x, NULL); + } + if (gst_structure_get_double (structure, "pointer_y", &old_y)) { + y = old_y; + + if (y >= result.y && y <= (result.y + result.h)) { + y -= result.y; + y *= dfbvideosink->video_height; + y /= result.h; + } else { + y = 0; + } + GST_DEBUG_OBJECT (dfbvideosink, "translated navigation event y " + "coordinate from %fd to %fd", old_y, y); + gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE, y, NULL); + } + + pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (dfbvideosink)); + + if (GST_IS_PAD (pad) && GST_IS_EVENT (event)) { + gst_pad_send_event (pad, event); + + gst_object_unref (pad); + } +} + +static void +gst_dfbvideosink_navigation_init (GstNavigationInterface * iface) +{ + iface->send_event = gst_dfbvideosink_navigation_send_event; +} + +static void +gst_dfbvideosink_update_colorbalance (GstDfbVideoSink * dfbvideosink) +{ + g_return_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink)); + + if (dfbvideosink->layer) { + DFBColorAdjustment cb_adjust; + + cb_adjust.flags = DCAF_NONE; + + if (dfbvideosink->brightness >= 0) { + cb_adjust.flags |= DCAF_BRIGHTNESS; + } + if (dfbvideosink->contrast >= 0) { + cb_adjust.flags |= DCAF_CONTRAST; + } + if (dfbvideosink->hue >= 0) { + cb_adjust.flags |= DCAF_HUE; + } + if (dfbvideosink->saturation >= 0) { + cb_adjust.flags |= DCAF_SATURATION; + } + + cb_adjust.brightness = dfbvideosink->brightness; + cb_adjust.contrast = dfbvideosink->contrast; + cb_adjust.hue = dfbvideosink->hue; + cb_adjust.saturation = dfbvideosink->saturation; + + GST_DEBUG_OBJECT (dfbvideosink, "updating colorbalance: flags %d " + "brightness %d contrast %d hue %d saturation %d", cb_adjust.flags, + cb_adjust.brightness, cb_adjust.contrast, cb_adjust.hue, + cb_adjust.saturation); + dfbvideosink->layer->SetColorAdjustment (dfbvideosink->layer, &cb_adjust); + } +} + +static const GList * +gst_dfbvideosink_colorbalance_list_channels (GstColorBalance * balance) +{ + GstDfbVideoSink *dfbvideosink = GST_DFBVIDEOSINK (balance); + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), NULL); + + return dfbvideosink->cb_channels; +} + +static void +gst_dfbvideosink_colorbalance_set_value (GstColorBalance * balance, + GstColorBalanceChannel * channel, gint value) +{ + GstDfbVideoSink *dfbvideosink = GST_DFBVIDEOSINK (balance); + + g_return_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink)); + g_return_if_fail (channel->label != NULL); + + dfbvideosink->cb_changed = TRUE; + + if (g_ascii_strcasecmp (channel->label, "HUE") == 0) { + dfbvideosink->hue = value; + } else if (g_ascii_strcasecmp (channel->label, "SATURATION") == 0) { + dfbvideosink->saturation = value; + } else if (g_ascii_strcasecmp (channel->label, "CONTRAST") == 0) { + dfbvideosink->contrast = value; + } else if (g_ascii_strcasecmp (channel->label, "BRIGHTNESS") == 0) { + dfbvideosink->brightness = value; + } else { + GST_WARNING_OBJECT (dfbvideosink, "got an unknown channel %s", + channel->label); + return; + } + + gst_dfbvideosink_update_colorbalance (dfbvideosink); +} + +static gint +gst_dfbvideosink_colorbalance_get_value (GstColorBalance * balance, + GstColorBalanceChannel * channel) +{ + GstDfbVideoSink *dfbvideosink = GST_DFBVIDEOSINK (balance); + gint value = 0; + + g_return_val_if_fail (GST_IS_DFBVIDEOSINK (dfbvideosink), 0); + g_return_val_if_fail (channel->label != NULL, 0); + + if (g_ascii_strcasecmp (channel->label, "HUE") == 0) { + value = dfbvideosink->hue; + } else if (g_ascii_strcasecmp (channel->label, "SATURATION") == 0) { + value = dfbvideosink->saturation; + } else if (g_ascii_strcasecmp (channel->label, "CONTRAST") == 0) { + value = dfbvideosink->contrast; + } else if (g_ascii_strcasecmp (channel->label, "BRIGHTNESS") == 0) { + value = dfbvideosink->brightness; + } else { + GST_WARNING_OBJECT (dfbvideosink, "got an unknown channel %s", + channel->label); + } + + return value; +} + +static void +gst_dfbvideosink_colorbalance_init (GstColorBalanceClass * iface) +{ + GST_COLOR_BALANCE_TYPE (iface) = GST_COLOR_BALANCE_HARDWARE; + iface->list_channels = gst_dfbvideosink_colorbalance_list_channels; + iface->set_value = gst_dfbvideosink_colorbalance_set_value; + iface->get_value = gst_dfbvideosink_colorbalance_get_value; +} + +/* Properties */ + +static void +gst_dfbvideosink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstDfbVideoSink *dfbvideosink; + + g_return_if_fail (GST_IS_DFBVIDEOSINK (object)); + dfbvideosink = GST_DFBVIDEOSINK (object); + + switch (prop_id) { + case ARG_SURFACE: + dfbvideosink->ext_surface = g_value_get_pointer (value); + break; + case ARG_HUE: + dfbvideosink->hue = g_value_get_int (value); + dfbvideosink->cb_changed = TRUE; + gst_dfbvideosink_update_colorbalance (dfbvideosink); + break; + case ARG_CONTRAST: + dfbvideosink->contrast = g_value_get_int (value); + dfbvideosink->cb_changed = TRUE; + gst_dfbvideosink_update_colorbalance (dfbvideosink); + break; + case ARG_BRIGHTNESS: + dfbvideosink->brightness = g_value_get_int (value); + dfbvideosink->cb_changed = TRUE; + gst_dfbvideosink_update_colorbalance (dfbvideosink); + break; + case ARG_SATURATION: + dfbvideosink->saturation = g_value_get_int (value); + dfbvideosink->cb_changed = TRUE; + gst_dfbvideosink_update_colorbalance (dfbvideosink); + break; + case ARG_PIXEL_ASPECT_RATIO: + g_free (dfbvideosink->par); + dfbvideosink->par = g_new0 (GValue, 1); + g_value_init (dfbvideosink->par, GST_TYPE_FRACTION); + if (!g_value_transform (value, dfbvideosink->par)) { + GST_WARNING_OBJECT (dfbvideosink, "Could not transform string to " + "aspect ratio"); + gst_value_set_fraction (dfbvideosink->par, 1, 1); + } + GST_DEBUG_OBJECT (dfbvideosink, "set PAR to %d/%d", + gst_value_get_fraction_numerator (dfbvideosink->par), + gst_value_get_fraction_denominator (dfbvideosink->par)); + break; + case ARG_VSYNC: + dfbvideosink->vsync = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_dfbvideosink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstDfbVideoSink *dfbvideosink; + + g_return_if_fail (GST_IS_DFBVIDEOSINK (object)); + dfbvideosink = GST_DFBVIDEOSINK (object); + + switch (prop_id) { + case ARG_HUE: + g_value_set_int (value, dfbvideosink->hue); + break; + case ARG_CONTRAST: + g_value_set_int (value, dfbvideosink->contrast); + break; + case ARG_BRIGHTNESS: + g_value_set_int (value, dfbvideosink->brightness); + break; + case ARG_SATURATION: + g_value_set_int (value, dfbvideosink->saturation); + break; + case ARG_PIXEL_ASPECT_RATIO: + if (dfbvideosink->par) + g_value_transform (dfbvideosink->par, value); + break; + case ARG_VSYNC: + g_value_set_boolean (value, dfbvideosink->vsync); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* =========================================== */ +/* */ +/* Init & Class init */ +/* */ +/* =========================================== */ +static void +gst_dfbvideosink_finalize (GObject * object) +{ + GstDfbVideoSink *dfbvideosink; + + dfbvideosink = GST_DFBVIDEOSINK (object); + + if (dfbvideosink->par) { + g_free (dfbvideosink->par); + dfbvideosink->par = NULL; + } + if (dfbvideosink->pool_lock) { + g_mutex_free (dfbvideosink->pool_lock); + dfbvideosink->pool_lock = NULL; + } + if (dfbvideosink->setup) { + gst_dfbvideosink_cleanup (dfbvideosink); + } + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_dfbvideosink_init (GstDfbVideoSink * dfbvideosink) +{ + dfbvideosink->pool_lock = g_mutex_new (); + dfbvideosink->buffer_pool = NULL; + dfbvideosink->video_height = dfbvideosink->out_width = 0; + dfbvideosink->video_width = dfbvideosink->out_height = 0; + dfbvideosink->fps_d = 0; + dfbvideosink->fps_n = 0; + + dfbvideosink->dfb = NULL; + dfbvideosink->vmodes = NULL; + dfbvideosink->layer_id = -1; + dfbvideosink->layer = NULL; + dfbvideosink->primary = NULL; + dfbvideosink->event_buffer = NULL; + dfbvideosink->event_thread = NULL; + + dfbvideosink->ext_surface = NULL; + + dfbvideosink->pixel_format = DSPF_UNKNOWN; + + dfbvideosink->hw_scaling = FALSE; + dfbvideosink->backbuffer = FALSE; + dfbvideosink->vsync = TRUE; + dfbvideosink->setup = FALSE; + dfbvideosink->running = FALSE; + + dfbvideosink->cb_channels = NULL; + dfbvideosink->brightness = -1; + dfbvideosink->contrast = -1; + dfbvideosink->hue = -1; + dfbvideosink->saturation = -1; + + dfbvideosink->par = NULL; +} + +static void +gst_dfbvideosink_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "DirectFB video sink", + "Sink/Video", + "A DirectFB based videosink", "Julien Moutte "); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_dfbvideosink_sink_template_factory)); +} + +static void +gst_dfbvideosink_class_init (GstDfbVideoSinkClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + GstBaseSinkClass *gstbasesink_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + gstbasesink_class = (GstBaseSinkClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = gst_dfbvideosink_finalize; + gobject_class->set_property = gst_dfbvideosink_set_property; + gobject_class->get_property = gst_dfbvideosink_get_property; + + g_object_class_install_property (gobject_class, ARG_SURFACE, + g_param_spec_pointer ("surface", "Surface", + "The target surface for video", + G_PARAM_WRITABLE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_CONTRAST, + g_param_spec_int ("contrast", "Contrast", "The contrast of the video", + 0x0000, 0xFFFF, 0x8000, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_BRIGHTNESS, + g_param_spec_int ("brightness", "Brightness", + "The brightness of the video", 0x0000, 0xFFFF, 0x8000, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_HUE, + g_param_spec_int ("hue", "Hue", "The hue of the video", 0x0000, 0xFFFF, + 0x8000, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_SATURATION, + g_param_spec_int ("saturation", "Saturation", + "The saturation of the video", 0x0000, 0xFFFF, 0x8000, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_PIXEL_ASPECT_RATIO, + g_param_spec_string ("pixel-aspect-ratio", "Pixel Aspect Ratio", + "The pixel aspect ratio of the device", "1/1", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_VSYNC, + g_param_spec_boolean ("vsync", "Vertical synchronisation", + "Wait for next vertical sync to draw frames", TRUE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = gst_dfbvideosink_change_state; + + gstbasesink_class->get_caps = gst_dfbvideosink_getcaps; + gstbasesink_class->set_caps = gst_dfbvideosink_setcaps; + gstbasesink_class->buffer_alloc = gst_dfbvideosink_buffer_alloc; + gstbasesink_class->get_times = gst_dfbvideosink_get_times; + gstbasesink_class->preroll = gst_dfbvideosink_show_frame; + gstbasesink_class->render = gst_dfbvideosink_show_frame; +} + +/* ============================================================= */ +/* */ +/* Public Methods */ +/* */ +/* ============================================================= */ + +/* =========================================== */ +/* */ +/* Object typing & Creation */ +/* */ +/* =========================================== */ + +GType +gst_dfbvideosink_get_type (void) +{ + static GType dfbvideosink_type = 0; + + if (!dfbvideosink_type) { + static const GTypeInfo dfbvideosink_info = { + sizeof (GstDfbVideoSinkClass), + gst_dfbvideosink_base_init, + NULL, + (GClassInitFunc) gst_dfbvideosink_class_init, + NULL, + NULL, + sizeof (GstDfbVideoSink), + 0, + (GInstanceInitFunc) gst_dfbvideosink_init, + }; + static const GInterfaceInfo iface_info = { + (GInterfaceInitFunc) gst_dfbvideosink_interface_init, + NULL, + NULL, + }; + static const GInterfaceInfo navigation_info = { + (GInterfaceInitFunc) gst_dfbvideosink_navigation_init, + NULL, + NULL, + }; + static const GInterfaceInfo colorbalance_info = { + (GInterfaceInitFunc) gst_dfbvideosink_colorbalance_init, + NULL, + NULL, + }; + + dfbvideosink_type = g_type_register_static (GST_TYPE_VIDEO_SINK, + "GstDfbVideoSink", &dfbvideosink_info, 0); + + g_type_add_interface_static (dfbvideosink_type, + GST_TYPE_IMPLEMENTS_INTERFACE, &iface_info); + g_type_add_interface_static (dfbvideosink_type, GST_TYPE_NAVIGATION, + &navigation_info); + g_type_add_interface_static (dfbvideosink_type, GST_TYPE_COLOR_BALANCE, + &colorbalance_info); + } + + return dfbvideosink_type; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "dfbvideosink", GST_RANK_MARGINAL, + GST_TYPE_DFBVIDEOSINK)) + return FALSE; + + GST_DEBUG_CATEGORY_INIT (dfbvideosink_debug, "dfbvideosink", 0, + "DirectFB video sink element"); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "dfbvideosink", + "DirectFB video output plugin", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/directfb/dfbvideosink.h b/ext/directfb/dfbvideosink.h new file mode 100644 index 0000000..bbab762 --- /dev/null +++ b/ext/directfb/dfbvideosink.h @@ -0,0 +1,130 @@ +/* GStreamer DirectFB plugin + * Copyright (C) 2005 Julien MOUTTE + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_DFBVIDEOSINK_H__ +#define __GST_DFBVIDEOSINK_H__ + +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_DFBVIDEOSINK (gst_dfbvideosink_get_type()) +#define GST_DFBVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DFBVIDEOSINK, GstDfbVideoSink)) +#define GST_DFBVIDEOSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_DFBVIDEOSINK, GstDfbVideoSinkClass)) +#define GST_IS_DFBVIDEOSINK(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DFBVIDEOSINK)) +#define GST_IS_DFBVIDEOSINK_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_DFBVIDEOSINK)) + +typedef struct _GstDfbVideoSink GstDfbVideoSink; +typedef struct _GstDfbVideoSinkClass GstDfbVideoSinkClass; + +#define GST_TYPE_DFBSURFACE (gst_dfbsurface_get_type()) + +#define GST_IS_DFBSURFACE(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_DFBSURFACE)) +#define GST_DFBSURFACE(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_DFBSURFACE, GstDfbSurface)) + +typedef struct _GstDfbSurface GstDfbSurface; + +struct _GstDfbSurface { + GstBuffer buffer; /* We extend GstBuffer */ + + IDirectFBSurface *surface; + + gint width; + gint height; + + gboolean locked; + + DFBSurfacePixelFormat pixel_format; + + GstDfbVideoSink *dfbvideosink; +}; + +typedef struct _GstDfbVMode GstDfbVMode; + +struct _GstDfbVMode { + gint width; + gint height; + gint bpp; +}; + +/** + * GstDfbVideoSink: + * + * The opaque #GstDfbVideoSink structure. + */ +struct _GstDfbVideoSink { + GstVideoSink videosink; + + /* < private > */ + GMutex *pool_lock; + GSList *buffer_pool; + + /* Framerate numerator and denominator */ + gint fps_n; + gint fps_d; + + gint video_width, video_height; /* size of incoming video */ + gint out_width, out_height; + + /* Standalone */ + IDirectFB *dfb; + + GSList *vmodes; /* Video modes */ + + gint layer_id; + IDirectFBDisplayLayer *layer; + IDirectFBSurface *primary; + IDirectFBEventBuffer *event_buffer; + GThread *event_thread; + + /* Embedded */ + IDirectFBSurface *ext_surface; + + DFBSurfacePixelFormat pixel_format; + + gboolean hw_scaling; + gboolean backbuffer; + gboolean vsync; + gboolean setup; + gboolean running; + + /* Color balance */ + GList *cb_channels; + gint brightness; + gint contrast; + gint hue; + gint saturation; + gboolean cb_changed; + + /* object-set pixel aspect ratio */ + GValue *par; +}; + +struct _GstDfbVideoSinkClass { + GstVideoSinkClass parent_class; +}; + +GType gst_dfbvideosink_get_type (void); +GType gst_dfbsurface_get_type (void); + +G_END_DECLS + +#endif /* __GST_DFBVIDEOSINK_H__ */ diff --git a/ext/divx/Makefile.am b/ext/divx/Makefile.am new file mode 100644 index 0000000..1cf0a71 --- /dev/null +++ b/ext/divx/Makefile.am @@ -0,0 +1,15 @@ +plugin_LTLIBRARIES = libgstdivxdec.la libgstdivxenc.la + +AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(DIVX_CFLAGS) + +libgstdivxenc_la_SOURCES = gstdivxenc.c +libgstdivxenc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(DIVXENC_LIBS) +libgstdivxenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdivxenc_la_LIBTOOLFLAGS = --tag=disable-static + +libgstdivxdec_la_SOURCES = gstdivxdec.c +libgstdivxdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(DIVXDEC_LIBS) +libgstdivxdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdivxdec_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstdivxenc.h gstdivxdec.h diff --git a/ext/divx/Makefile.in b/ext/divx/Makefile.in new file mode 100644 index 0000000..483f56d --- /dev/null +++ b/ext/divx/Makefile.in @@ -0,0 +1,878 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/divx +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdivxdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdivxdec_la_OBJECTS = libgstdivxdec_la-gstdivxdec.lo +libgstdivxdec_la_OBJECTS = $(am_libgstdivxdec_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstdivxdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdivxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgstdivxdec_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +libgstdivxenc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstdivxenc_la_OBJECTS = libgstdivxenc_la-gstdivxenc.lo +libgstdivxenc_la_OBJECTS = $(am_libgstdivxenc_la_OBJECTS) +libgstdivxenc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdivxenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(AM_CFLAGS) $(CFLAGS) $(libgstdivxenc_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstdivxdec_la_SOURCES) $(libgstdivxenc_la_SOURCES) +DIST_SOURCES = $(libgstdivxdec_la_SOURCES) $(libgstdivxenc_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdivxdec.la libgstdivxenc.la +AM_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(DIVX_CFLAGS) +libgstdivxenc_la_SOURCES = gstdivxenc.c +libgstdivxenc_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(DIVXENC_LIBS) +libgstdivxenc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdivxenc_la_LIBTOOLFLAGS = --tag=disable-static +libgstdivxdec_la_SOURCES = gstdivxdec.c +libgstdivxdec_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(DIVXDEC_LIBS) +libgstdivxdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdivxdec_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstdivxenc.h gstdivxdec.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/divx/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/divx/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstdivxdec.la: $(libgstdivxdec_la_OBJECTS) $(libgstdivxdec_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdivxdec_la_LINK) -rpath $(plugindir) $(libgstdivxdec_la_OBJECTS) $(libgstdivxdec_la_LIBADD) $(LIBS) +libgstdivxenc.la: $(libgstdivxenc_la_OBJECTS) $(libgstdivxenc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdivxenc_la_LINK) -rpath $(plugindir) $(libgstdivxenc_la_OBJECTS) $(libgstdivxenc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdivxdec_la-gstdivxdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdivxenc_la-gstdivxenc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstdivxdec_la-gstdivxdec.lo: gstdivxdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdivxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgstdivxdec_la-gstdivxdec.lo -MD -MP -MF $(DEPDIR)/libgstdivxdec_la-gstdivxdec.Tpo -c -o libgstdivxdec_la-gstdivxdec.lo `test -f 'gstdivxdec.c' || echo '$(srcdir)/'`gstdivxdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdivxdec_la-gstdivxdec.Tpo $(DEPDIR)/libgstdivxdec_la-gstdivxdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdivxdec.c' object='libgstdivxdec_la-gstdivxdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdivxdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgstdivxdec_la-gstdivxdec.lo `test -f 'gstdivxdec.c' || echo '$(srcdir)/'`gstdivxdec.c + +libgstdivxenc_la-gstdivxenc.lo: gstdivxenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdivxenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -MT libgstdivxenc_la-gstdivxenc.lo -MD -MP -MF $(DEPDIR)/libgstdivxenc_la-gstdivxenc.Tpo -c -o libgstdivxenc_la-gstdivxenc.lo `test -f 'gstdivxenc.c' || echo '$(srcdir)/'`gstdivxenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdivxenc_la-gstdivxenc.Tpo $(DEPDIR)/libgstdivxenc_la-gstdivxenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdivxenc.c' object='libgstdivxenc_la-gstdivxenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdivxenc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) -c -o libgstdivxenc_la-gstdivxenc.lo `test -f 'gstdivxenc.c' || echo '$(srcdir)/'`gstdivxenc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/divx/gstdivxdec.c b/ext/divx/gstdivxdec.c new file mode 100644 index 0000000..2b66256 --- /dev/null +++ b/ext/divx/gstdivxdec.c @@ -0,0 +1,577 @@ +/* GStreamer divx decoder plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstdivxdec.h" +#include + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-divx, " + "divxversion = (int) [ 3, 5 ], " + "width = (int) [ 16, 4096 ], " + "height = (int) [ 16, 4096 ], " "framerate = (fraction) [0/1, MAX]") + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YUY2, YV12, UYVY }") + /* FIXME: 15/16/24/32bpp RGB */ + ) + ); + + +/* DivxDec signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + ARG_0 + /* FILL ME */ +}; + + +static void gst_divxdec_base_init (GstDivxDecClass * klass); +static void gst_divxdec_class_init (GstDivxDecClass * klass); +static void gst_divxdec_init (GstDivxDec * divxdec); +static void gst_divxdec_dispose (GObject * object); +static GstFlowReturn gst_divxdec_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_divxdec_connect (GstPad * pad, GstCaps * vscapslist); +static gboolean gst_divxdec_negotiate (GstDivxDec * divxdec); +static GstStateChangeReturn +gst_divxdec_change_state (GstElement * element, GstStateChange transition); +static GstElementClass *parent_class = NULL; + +/* static guint gst_divxdec_signals[LAST_SIGNAL] = { 0 }; */ + + +static const gchar * +gst_divxdec_error (int errorcode) +{ + const gchar *error; + + switch (errorcode) { + case DEC_OK: + error = "No error"; + break; + case DEC_MEMORY: + error = "Invalid memory"; + break; + case DEC_BAD_FORMAT: + error = "Invalid format"; + break; + case DEC_INVALID_ARGUMENT: + error = "Invalid argument"; + break; + case DEC_NOT_IMPLEMENTED: + error = "Not implemented"; + break; + default: + error = "Unknown error"; + break; + } + + return error; +} + +GType +gst_divxdec_get_type (void) +{ + static GType divxdec_type = 0; + + if (!divxdec_type) { + static const GTypeInfo divxdec_info = { + sizeof (GstDivxDecClass), + (GBaseInitFunc) gst_divxdec_base_init, + NULL, + (GClassInitFunc) gst_divxdec_class_init, + NULL, + NULL, + sizeof (GstDivxDec), + 0, + (GInstanceInitFunc) gst_divxdec_init, + }; + + divxdec_type = g_type_register_static (GST_TYPE_ELEMENT, + "GstDivxDec", &divxdec_info, 0); + } + return divxdec_type; +} + + +static void +gst_divxdec_base_init (GstDivxDecClass * klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + + gst_element_class_set_details_simple (element_class, + "Divx4linux video decoder", "Codec/Decoder/Video", + "Divx decoder based on divxdecore", + "Ronald Bultje "); +} + + +static void +gst_divxdec_class_init (GstDivxDecClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = (GObjectClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gstelement_class->change_state = gst_divxdec_change_state; + gobject_class->dispose = gst_divxdec_dispose; +} + + +static void +gst_divxdec_init (GstDivxDec * divxdec) +{ + /* create the sink pad */ + divxdec->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_element_add_pad (GST_ELEMENT (divxdec), divxdec->sinkpad); + gst_pad_set_chain_function (divxdec->sinkpad, gst_divxdec_chain); + gst_pad_set_setcaps_function (divxdec->sinkpad, gst_divxdec_connect); + + /* create the src pad */ + divxdec->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_element_add_pad (GST_ELEMENT (divxdec), divxdec->srcpad); + gst_pad_use_fixed_caps (divxdec->srcpad); + + /* bitrate, etc. */ + divxdec->width = divxdec->height = divxdec->csp = divxdec->bitcnt = -1; + divxdec->version = 0; + + /* set divx handle to NULL */ + divxdec->handle = NULL; +} + + +static void +gst_divxdec_unset (GstDivxDec * divxdec) +{ + if (divxdec->handle) { + /* unref this instance */ + decore (divxdec->handle, DEC_OPT_RELEASE, NULL, NULL); + divxdec->handle = NULL; + } +} + + +static gboolean +gst_divxdec_setup (GstDivxDec * divxdec) +{ + void *handle; + DEC_INIT xinit; + DivXBitmapInfoHeader output; + int ret; + + /* initialize the handle */ + memset (&xinit, 0, sizeof (DEC_INIT)); + xinit.smooth_playback = 0; + switch (divxdec->version) { + case 3: + xinit.codec_version = 311; + break; + case 4: + xinit.codec_version = 400; + break; + case 5: + xinit.codec_version = 500; + break; + default: + xinit.codec_version = 0; + break; + } + if ((ret = decore (&handle, DEC_OPT_INIT, &xinit, NULL)) != 0) { + GST_ELEMENT_ERROR (divxdec, LIBRARY, INIT, (NULL), + ("divx library error: %s (%d)", gst_divxdec_error (ret), ret)); + return FALSE; + } + + /* we've got a handle now */ + divxdec->handle = handle; + + /* initialise parameters, see divx documentation */ + memset (&output, 0, sizeof (DivXBitmapInfoHeader)); + output.biSize = sizeof (DivXBitmapInfoHeader); + output.biWidth = divxdec->width; + output.biHeight = divxdec->height; + output.biBitCount = divxdec->bitcnt; + output.biCompression = divxdec->csp; + + if ((ret = decore (divxdec->handle, DEC_OPT_SETOUT, &output, NULL)) != 0) { + GST_ELEMENT_ERROR (divxdec, LIBRARY, SETTINGS, (NULL), + ("error setting output: %s (%d)", gst_divxdec_error (ret), ret)); + gst_divxdec_unset (divxdec); + return FALSE; + } + return TRUE; +} + +static void +gst_divxdec_dispose (GObject * object) +{ + GstDivxDec *divxdec = GST_DIVXDEC (object); + + gst_divxdec_unset (divxdec); + G_OBJECT_CLASS (parent_class)->dispose (object); +} + +static GstFlowReturn +gst_divxdec_chain (GstPad * pad, GstBuffer * buf) +{ + GstDivxDec *divxdec; + GstBuffer *outbuf; + DEC_FRAME xframe; + int res; + GstFlowReturn ret; + + divxdec = GST_DIVXDEC (gst_pad_get_parent (pad)); + if (!divxdec->handle) { + if (gst_divxdec_negotiate (divxdec) <= 0) { + goto not_negotiated; + } + } + + outbuf = gst_buffer_new_and_alloc (divxdec->width * + divxdec->height * divxdec->bpp / 8); + GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); + GST_BUFFER_SIZE (outbuf) = divxdec->width * + divxdec->height * divxdec->bpp / 8; + + /* encode and so ... */ + xframe.bitstream = (void *) GST_BUFFER_DATA (buf); + xframe.bmp = (void *) GST_BUFFER_DATA (outbuf); + xframe.length = GST_BUFFER_SIZE (buf); + xframe.stride = 0; + xframe.render_flag = 1; + + if ((res = decore (divxdec->handle, DEC_OPT_FRAME, &xframe, NULL))) { + goto not_decoding; + } + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (divxdec->srcpad)); + ret = gst_pad_push (divxdec->srcpad, outbuf); + goto cleanup; + +not_negotiated: + { + GST_ELEMENT_ERROR (divxdec, CORE, TOO_LAZY, (NULL), + ("No format set - aborting")); + ret = GST_FLOW_NOT_NEGOTIATED; + goto cleanup; + } + +not_decoding: + { + GST_ELEMENT_ERROR (divxdec, STREAM, DECODE, (NULL), + ("Error decoding divx frame: %s (%d)", gst_divxdec_error (res), res)); + gst_buffer_unref (outbuf); + ret = GST_FLOW_ERROR; + goto cleanup; + } + +cleanup: + + gst_buffer_unref (buf); + gst_object_unref (divxdec); + return ret; + +} + + +/* FIXME: moved all the bits out here that are broken so the syntax + * stays clear */ + +/* + { + GST_MAKE_FOURCC ('R', 'G', 'B', ' '), 32, 32, + #if (G_BYTE_ORDER == G_BIG_ENDIAN) + GST_MAKE_FOURCC ('A', 'B', 'G', 'R'), 32} + + , + #else + 0, 32} + + , + #endif + { + GST_MAKE_FOURCC ('R', 'G', 'B', ' '), 24, 24, + #if (G_BYTE_ORDER == G_BIG_ENDIAN) + GST_MAKE_FOURCC ('A', 'B', 'G', 'R'), 24} + + , + #else + 0, 24} + + , + #endif + { + GST_MAKE_FOURCC ('R', 'G', 'B', ' '), 16, 16, 3, 16} + + , { + GST_MAKE_FOURCC ('R', 'G', 'B', ' '), 15, 16, 0, 16} + + , + #endif + if (fmt_list[i].fourcc == GST_MAKE_FOURCC ('R', 'G', 'B', ' ')) { + guint32 r_mask = 0, b_mask = 0, g_mask = 0; + gint endianness = 0; + + switch (fmt_list[i].depth) { + case 15: + endianness = G_BYTE_ORDER; + r_mask = 0xf800; + g_mask = 0x07c0; + b_mask = 0x003e; + break; + case 16: + endianness = G_BYTE_ORDER; + r_mask = 0xf800; + g_mask = 0x07e0; + b_mask = 0x001f; + break; + case 24: + endianness = G_BIG_ENDIAN; + r_mask = GST_VIDEO_BYTE1_MASK_24_INT; + g_mask = GST_VIDEO_BYTE2_MASK_24_INT; + b_mask = GST_VIDEO_BYTE3_MASK_24_INT break; + case 32: + endianness = G_BIG_ENDIAN; + r_mask = GST_VIDEO_BYTE1_MASK_32_INT; + g_mask = GST_VIDEO_BYTE2_MASK_32_INT; + b_mask = GST_VIDEO_BYTE3_MASK_32_INT break; + } + caps = GST_CAPS_NEW ("divxdec_src_pad_rgb", + "video/x-raw-rgb", + "width", GST_PROPS_INT (divxdec->width), + "height", GST_PROPS_INT (divxdec->height), + "framerate", GST_PROPS_FLOAT (divxdec->fps), + "depth", GST_PROPS_INT (fmt_list[i].depth), + "bpp", GST_PROPS_INT (fmt_list[i].bpp), + "endianness", GST_PROPS_INT (endianness), + "red_mask", GST_PROPS_INT (r_mask), + "green_mask", GST_PROPS_INT (g_mask), + "blue_mask", GST_PROPS_INT (b_mask)); + } else { + #endif + + #endif +*/ + +static gboolean +gst_divxdec_negotiate (GstDivxDec * divxdec) +{ + GstCaps *caps = NULL; + gint i; + gint par_num, par_den; + gboolean ret = FALSE; + + struct + { + guint32 fourcc; + gint depth, bpp; + guint32 csp; + gint bitcnt; + } + + fmt_list[] = { + { + GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'), 16, 16, + GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'), 0} + , { + GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'), 16, 16, + GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'), 0} + , { + GST_MAKE_FOURCC ('I', '4', '2', '0'), 12, 12, + GST_MAKE_FOURCC ('I', '4', '2', '0'), 0} + , { + GST_MAKE_FOURCC ('Y', 'V', '1', '2'), 12, 12, + GST_MAKE_FOURCC ('Y', 'V', '1', '2'), 0} + , { + 0, 0, 0, 0, 0} + }; + + GST_DEBUG_OBJECT (divxdec, "fps %d/%d, PAR %d/%d", + divxdec->fps_n, divxdec->fps_d, divxdec->par_n, divxdec->par_d); + + /* calculate par + * the info.aspect_* values reflect PAR; + * 0:0 is allowed and can be interpreted as 1:1, so correct for it */ + par_num = divxdec->par_n; + par_den = divxdec->par_d; + if (par_num == 0 && par_den == 0) { + par_num = par_den = 1; + } + + for (i = 0; fmt_list[i].fourcc != 0; i++) { + divxdec->csp = fmt_list[i].csp; + + caps = gst_caps_new_simple ("video/x-raw-yuv", + "width", G_TYPE_INT, divxdec->width, + "height", G_TYPE_INT, divxdec->height, + "framerate", GST_TYPE_FRACTION, divxdec->fps_n, divxdec->fps_d, + "pixel-aspect-ratio", GST_TYPE_FRACTION, par_num, par_den, + "format", GST_TYPE_FOURCC, fmt_list[i].fourcc, NULL); + + if (caps) { + + if (gst_divxdec_setup (divxdec) && + gst_pad_set_caps (divxdec->srcpad, caps)) { + divxdec->csp = fmt_list[i].csp; + divxdec->bpp = fmt_list[i].bpp; + divxdec->bitcnt = fmt_list[i].bitcnt; + ret = TRUE; + goto done; + } + + gst_caps_unref (caps); + caps = NULL; + + } + + } + + /* if we got here - it's not good */ + +done: + + if (caps) { + gst_caps_unref (caps); + } + + return ret; +} + + +static gboolean +gst_divxdec_connect (GstPad * pad, GstCaps * caps) +{ + GstDivxDec *divxdec; + const GValue *par; + const GValue *fps; + gboolean ret = FALSE; + + GstStructure *structure = gst_caps_get_structure (caps, 0); + + divxdec = GST_DIVXDEC (gst_pad_get_parent (pad)); + + /* if there's something old around, remove it */ + if (divxdec->handle) { + gst_divxdec_unset (divxdec); + } + + /* if we get here, we know the input is divx. we + * only need to bother with the output colorspace */ + gst_structure_get_int (structure, "width", &divxdec->width); + gst_structure_get_int (structure, "height", &divxdec->height); + gst_structure_get_int (structure, "divxversion", &divxdec->version); + + /* get pixel aspect ratio if it's set */ + par = gst_structure_get_value (structure, "pixel-aspect-ratio"); + if (par) { + divxdec->par_n = gst_value_get_fraction_numerator (par), + divxdec->par_d = gst_value_get_fraction_denominator (par); + } + + fps = gst_structure_get_value (structure, "framerate"); + if (fps != NULL) { + divxdec->fps_n = gst_value_get_fraction_numerator (fps); + divxdec->fps_d = gst_value_get_fraction_denominator (fps); + } else { + divxdec->fps_n = -1; + } + + ret = gst_divxdec_negotiate (divxdec); + gst_object_unref (divxdec); + + return ret; +} + +static GstStateChangeReturn +gst_divxdec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + default: + break; + } + + ret = parent_class->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_NULL: + break; + default: + break; + } + + return ret; +} + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + int lib_version; + + lib_version = decore (NULL, DEC_OPT_VERSION, 0, 0); + if (lib_version != DECORE_VERSION) { + g_warning ("Version mismatch! This plugin was compiled for " + "DivX version %d, while your library has version %d!", + DECORE_VERSION, lib_version); + return FALSE; + } + + return gst_element_register (plugin, "divxdec", + GST_RANK_SECONDARY, GST_TYPE_DIVXDEC); +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "divxdec", + "DivX decoder", + plugin_init, + "5.03", GST_LICENSE_UNKNOWN, "divx4linux", "http://www.divx.com/"); diff --git a/ext/divx/gstdivxdec.h b/ext/divx/gstdivxdec.h new file mode 100644 index 0000000..24819eb --- /dev/null +++ b/ext/divx/gstdivxdec.h @@ -0,0 +1,74 @@ +/* GStreamer divx decoder plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_DIVXDEC_H__ +#define __GST_DIVXDEC_H__ + +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +#define GST_TYPE_DIVXDEC \ + (gst_divxdec_get_type()) +#define GST_DIVXDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_DIVXDEC, GstDivxDec)) +#define GST_DIVXDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_DIVXDEC, GstDivxDecClass)) +#define GST_IS_DIVXDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_DIVXDEC)) +#define GST_IS_DIVXDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_DIVXDEC)) + +typedef struct _GstDivxDec GstDivxDec; +typedef struct _GstDivxDecClass GstDivxDecClass; + +struct _GstDivxDec { + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + + /* divx handle */ + void *handle; + + /* video (output) settings */ + guint32 csp; + int bitcnt, bpp; + int version; + int width, height; + + gint fps_n, fps_d; + gint par_n, par_d; +}; + +struct _GstDivxDecClass { + GstElementClass parent_class; +}; + +GType gst_divxdec_get_type(void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __GST_DIVXDEC_H__ */ diff --git a/ext/divx/gstdivxenc.c b/ext/divx/gstdivxenc.c new file mode 100644 index 0000000..924f674 --- /dev/null +++ b/ext/divx/gstdivxenc.c @@ -0,0 +1,544 @@ +/* GStreamer divx encoder plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "gstdivxenc.h" +#include +#include + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_YUV ("{ I420, YUY2, YV12, YVYU, UYVY }") + /* FIXME: 15/16/24/32bpp RGB */ + ) + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-divx, " + "divxversion = (int) 5, " + "width = (int) [ 16, 4096 ], " + "height = (int) [ 16, 4096 ], " "framerate = (fraction) [0/1, MAX]") + ); + + +/* DivxEnc signals and args */ +enum +{ + FRAME_ENCODED, + LAST_SIGNAL +}; + +enum +{ + ARG_0, + ARG_BITRATE, + ARG_MAXKEYINTERVAL, + ARG_BUFSIZE, + ARG_QUALITY +}; + + +static void gst_divxenc_class_init (GstDivxEncClass * klass); +static void gst_divxenc_base_init (GstDivxEncClass * klass); +static void gst_divxenc_init (GstDivxEnc * divxenc); +static void gst_divxenc_dispose (GObject * object); +static GstFlowReturn gst_divxenc_chain (GstPad * pad, GstBuffer * buf); +static gboolean gst_divxenc_setcaps (GstPad * pad, GstCaps * caps); + +/* properties */ +static void gst_divxenc_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_divxenc_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static GstElementClass *parent_class = NULL; +static guint gst_divxenc_signals[LAST_SIGNAL] = { 0 }; + + +static const gchar * +gst_divxenc_error (int errorcode) +{ + const gchar *error; + + switch (errorcode) { + case ENC_BUFFER: + error = "Invalid buffer"; + break; + case ENC_FAIL: + error = "Operation failed"; + break; + case ENC_OK: + error = "No error"; + break; + case ENC_MEMORY: + error = "Bad memory location"; + break; + case ENC_BAD_FORMAT: + error = "Invalid format"; + break; + case ENC_INTERNAL: + error = "Internal error"; + break; + default: + error = "Unknown error"; + break; + } + + return error; +} + + +GType +gst_divxenc_get_type (void) +{ + static GType divxenc_type = 0; + + if (!divxenc_type) { + static const GTypeInfo divxenc_info = { + sizeof (GstDivxEncClass), + (GBaseInitFunc) gst_divxenc_base_init, + NULL, + (GClassInitFunc) gst_divxenc_class_init, + NULL, + NULL, + sizeof (GstDivxEnc), + 0, + (GInstanceInitFunc) gst_divxenc_init, + }; + + divxenc_type = g_type_register_static (GST_TYPE_ELEMENT, + "GstDivxEnc", &divxenc_info, 0); + } + return divxenc_type; +} + + +static void +gst_divxenc_base_init (GstDivxEncClass * klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + + gst_element_class_set_details_simple (element_class, + "Divx4linux video encoder", "Codec/Encoder/Video", + "Divx encoder based on divxencore", + "Ronald Bultje "); +} + + +static void +gst_divxenc_class_init (GstDivxEncClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->set_property = gst_divxenc_set_property; + gobject_class->get_property = gst_divxenc_get_property; + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BITRATE, + g_param_spec_ulong ("bitrate", "Bitrate", + "Target video bitrate", 0, G_MAXULONG, 0, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MAXKEYINTERVAL, + g_param_spec_int ("max-key-interval", "Max. Key Interval", + "Maximum number of frames between two keyframes", + -1, G_MAXINT, -1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_BUFSIZE, + g_param_spec_ulong ("buffer-size", "Buffer Size", + "Size of the video buffers", 0, G_MAXULONG, 0, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_QUALITY, + g_param_spec_int ("quality", "Quality", + "Amount of Motion Estimation", 1, 5, 3, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gobject_class->dispose = gst_divxenc_dispose; + + gst_divxenc_signals[FRAME_ENCODED] = + g_signal_new ("frame-encoded", G_TYPE_FROM_CLASS (klass), + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (GstDivxEncClass, frame_encoded), + NULL, NULL, g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); +} + + +static void +gst_divxenc_init (GstDivxEnc * divxenc) +{ + /* create the sink pad */ + divxenc->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_element_add_pad (GST_ELEMENT (divxenc), divxenc->sinkpad); + + gst_pad_set_chain_function (divxenc->sinkpad, gst_divxenc_chain); + gst_pad_set_setcaps_function (divxenc->sinkpad, gst_divxenc_setcaps); + + /* create the src pad */ + divxenc->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_use_fixed_caps (divxenc->srcpad); + gst_element_add_pad (GST_ELEMENT (divxenc), divxenc->srcpad); + + /* bitrate, etc. */ + divxenc->width = divxenc->height = divxenc->csp = divxenc->bitcnt = -1; + divxenc->bitrate = 512 * 1024; + divxenc->max_key_interval = -1; /* default - 2*fps */ + divxenc->buffer_size = 512 * 1024; + divxenc->quality = 3; + + /* set divx handle to NULL */ + divxenc->handle = NULL; +} + + +static gboolean +gst_divxenc_setup (GstDivxEnc * divxenc) +{ + void *handle = NULL; + SETTINGS output; + DivXBitmapInfoHeader input; + int ret; + + /* set it up */ + memset (&input, 0, sizeof (DivXBitmapInfoHeader)); + input.biSize = sizeof (DivXBitmapInfoHeader); + input.biWidth = divxenc->width; + input.biHeight = divxenc->height; + input.biBitCount = divxenc->bitcnt; + input.biCompression = divxenc->csp; + + memset (&output, 0, sizeof (SETTINGS)); + output.vbr_mode = RCMODE_VBV_1PASS; + output.bitrate = divxenc->bitrate; + output.quantizer = 0; + output.use_bidirect = 1; + output.input_clock = 0; + output.input_frame_period = 1000000; + output.internal_timescale = (divxenc->fps_n / divxenc->fps_d) * 1000000; /* FIX? */ + output.max_key_interval = (divxenc->max_key_interval == -1) ? + 150 : divxenc->max_key_interval; + output.key_frame_threshold = 50; + output.vbv_bitrate = 0; + output.vbv_size = 0; + output.vbv_occupancy = 0; + output.complexity_modulation = 0; + output.deinterlace = 0; + output.quality = divxenc->quality; + output.data_partitioning = 0; + output.quarter_pel = 1; + output.use_gmc = 1; + output.psychovisual = 0; + output.pv_strength_frame = 0; + output.pv_strength_MB = 0; + output.interlace_mode = 0; + output.enable_crop = 0; + output.enable_resize = 0; + output.temporal_enable = 1; + output.spatial_passes = 3; + output.spatial_level = 1.0; + output.temporal_level = 1.0; + + if ((ret = encore (&handle, ENC_OPT_INIT, &input, &output))) { + GST_ELEMENT_ERROR (divxenc, LIBRARY, SETTINGS, (NULL), + ("Error setting up divx encoder: %s (%d)", + gst_divxenc_error (ret), ret)); + return FALSE; + } + + divxenc->handle = handle; + + /* set buffer size to theoretical limit (see docs on divx.com) */ + divxenc->buffer_size = 6 * divxenc->width * divxenc->height; + + return TRUE; +} + + +static void +gst_divxenc_unset (GstDivxEnc * divxenc) +{ + if (divxenc->handle) { + encore (divxenc->handle, ENC_OPT_RELEASE, NULL, NULL); + divxenc->handle = NULL; + } +} + + +static void +gst_divxenc_dispose (GObject * object) +{ + GstDivxEnc *divxenc = GST_DIVXENC (object); + + gst_divxenc_unset (divxenc); + G_OBJECT_CLASS (parent_class)->dispose (object); +} + + +static GstFlowReturn +gst_divxenc_chain (GstPad * pad, GstBuffer * buf) +{ + GstDivxEnc *divxenc; + GstBuffer *outbuf; + ENC_FRAME xframe; + ENC_RESULT xres; + int res; + GstFlowReturn ret = GST_FLOW_OK; + + divxenc = GST_DIVXENC (gst_pad_get_parent (pad)); + + outbuf = gst_buffer_new_and_alloc (divxenc->buffer_size); + GST_BUFFER_TIMESTAMP (outbuf) = GST_BUFFER_TIMESTAMP (buf); + + /* encode and so ... */ + xframe.image = GST_BUFFER_DATA (buf); + xframe.bitstream = (void *) GST_BUFFER_DATA (outbuf); + xframe.length = GST_BUFFER_SIZE (outbuf); /* GST_BUFFER_MAXSIZE */ + xframe.produce_empty_frame = 0; + + if ((res = encore (divxenc->handle, ENC_OPT_ENCODE, &xframe, &xres))) { + goto not_encoding; + } + + GST_BUFFER_SIZE (outbuf) = xframe.length; + + /* go out, multiply! */ + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (divxenc->srcpad)); + gst_pad_push (divxenc->srcpad, outbuf); + + /* proclaim destiny */ + g_signal_emit (G_OBJECT (divxenc), gst_divxenc_signals[FRAME_ENCODED], 0); + + /* until the final judgement */ + goto done; + +not_encoding: + + GST_ELEMENT_ERROR (divxenc, LIBRARY, ENCODE, (NULL), + ("Error encoding divx frame: %s (%d)", gst_divxenc_error (res), res)); + ret = GST_FLOW_ERROR; + gst_buffer_unref (outbuf); + goto done; + +done: + gst_buffer_unref (buf); + gst_object_unref (divxenc); + return ret; + +} + +/* FIXME: moving broken bits here for others to fix */ + /* someone fix RGB please */ +/* + case GST_MAKE_FOURCC ('R', 'G', 'B', ' '): + gst_caps_get_int (caps, "depth", &d); + switch (d) { + case 24: + divx_cs = 0; + bitcnt = 24; + break; + case 32: + divx_cs = 0; + bitcnt = 32; + break; +*/ + +static gboolean +gst_divxenc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstDivxEnc *divxenc; + GstStructure *structure = gst_caps_get_structure (caps, 0); + gint w, h; + const GValue *fps; + guint32 fourcc; + guint32 divx_cs; + gint bitcnt = 0; + gboolean ret = FALSE; + + divxenc = GST_DIVXENC (gst_pad_get_parent (pad)); + + /* if there's something old around, remove it */ + gst_divxenc_unset (divxenc); + + gst_structure_get_int (structure, "width", &w); + gst_structure_get_int (structure, "height", &h); + gst_structure_get_fourcc (structure, "format", &fourcc); + + fps = gst_structure_get_value (structure, "framerate"); + if (fps != NULL && GST_VALUE_HOLDS_FRACTION (fps)) { + divxenc->fps_n = gst_value_get_fraction_numerator (fps); + divxenc->fps_d = gst_value_get_fraction_denominator (fps); + } else { + divxenc->fps_n = -1; + } + + switch (fourcc) { + case GST_MAKE_FOURCC ('I', '4', '2', '0'): + divx_cs = GST_MAKE_FOURCC ('I', '4', '2', '0'); + break; + case GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'): + divx_cs = GST_MAKE_FOURCC ('Y', 'U', 'Y', '2'); + break; + case GST_MAKE_FOURCC ('Y', 'V', '1', '2'): + divx_cs = GST_MAKE_FOURCC ('Y', 'V', '1', '2'); + break; + case GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'): + divx_cs = GST_MAKE_FOURCC ('Y', 'V', 'Y', 'U'); + break; + case GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'): + divx_cs = GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'); + break; + default: + ret = FALSE; + goto done; + } + + divxenc->csp = divx_cs; + divxenc->bitcnt = bitcnt; + divxenc->width = w; + divxenc->height = h; + + /* try it */ + if (gst_divxenc_setup (divxenc)) { + GstCaps *new_caps = NULL; + + new_caps = gst_caps_new_simple ("video/x-divx", + "divxversion", G_TYPE_INT, 5, + "width", G_TYPE_INT, w, + "height", G_TYPE_INT, h, + "framerate", GST_TYPE_FRACTION, divxenc->fps_n, divxenc->fps_d, NULL); + + if (new_caps) { + + if (!gst_pad_set_caps (divxenc->srcpad, new_caps)) { + gst_divxenc_unset (divxenc); + ret = FALSE; + goto done; + } + gst_caps_unref (new_caps); + ret = TRUE; + goto done; + + } + + } + + /* if we got here - it's not good */ + + ret = FALSE; + +done: + gst_object_unref (divxenc); + return ret; +} + + +static void +gst_divxenc_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstDivxEnc *divxenc = GST_DIVXENC (object); + + GST_OBJECT_LOCK (divxenc); + + switch (prop_id) { + case ARG_BITRATE: + divxenc->bitrate = g_value_get_ulong (value); + break; + case ARG_MAXKEYINTERVAL: + divxenc->max_key_interval = g_value_get_int (value); + break; + case ARG_QUALITY: + divxenc->quality = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (divxenc); +} + + +static void +gst_divxenc_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstDivxEnc *divxenc = GST_DIVXENC (object); + + GST_OBJECT_LOCK (divxenc); + + switch (prop_id) { + case ARG_BITRATE: + g_value_set_ulong (value, divxenc->bitrate); + break; + case ARG_BUFSIZE: + g_value_set_ulong (value, divxenc->buffer_size); + break; + case ARG_MAXKEYINTERVAL: + g_value_set_int (value, divxenc->max_key_interval); + break; + case ARG_QUALITY: + g_value_set_int (value, divxenc->quality); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (divxenc); +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + int lib_version; + + lib_version = encore (NULL, ENC_OPT_VERSION, 0, 0); + if (lib_version != ENCORE_VERSION) { + g_warning ("Version mismatch! This plugin was compiled for " + "DivX version %d, while your library has version %d!", + ENCORE_VERSION, lib_version); + return FALSE; + } + + /* create an elementfactory for the v4lmjpegsrcparse element */ + return gst_element_register (plugin, "divxenc", + GST_RANK_NONE, GST_TYPE_DIVXENC); +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "divxenc", + "DivX encoder", + plugin_init, + "5.03", GST_LICENSE_UNKNOWN, "divx4linux", "http://www.divx.com/"); diff --git a/ext/divx/gstdivxenc.h b/ext/divx/gstdivxenc.h new file mode 100644 index 0000000..b7bc169 --- /dev/null +++ b/ext/divx/gstdivxenc.h @@ -0,0 +1,83 @@ +/* GStreamer divx encoder plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_DIVXENC_H__ +#define __GST_DIVXENC_H__ + +#include + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + + +#define GST_TYPE_DIVXENC \ + (gst_divxenc_get_type()) +#define GST_DIVXENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj), GST_TYPE_DIVXENC, GstDivxEnc)) +#define GST_DIVXENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass), GST_TYPE_DIVXENC, GstDivxEncClass)) +#define GST_IS_DIVXENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj), GST_TYPE_DIVXENC)) +#define GST_IS_DIVXENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass), GST_TYPE_DIVXENC)) + +typedef struct _GstDivxEnc GstDivxEnc; +typedef struct _GstDivxEncClass GstDivxEncClass; + +struct _GstDivxEnc { + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + + /* quality of encoded image */ + gulong bitrate; + + /* size of the buffers */ + gulong buffer_size; + + /* max key interval */ + gint max_key_interval; + + /* amount of motion estimation to do */ + gint quality; + + /* divx handle */ + void *handle; + guint32 csp; + gint bitcnt; + gint width, height; + gint fps_n, fps_d; +}; + +struct _GstDivxEncClass { + GstElementClass parent_class; + + /* signals */ + void (*frame_encoded) (GstElement *element); +}; + +GType gst_divxenc_get_type(void); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __GST_DIVXENC_H__ */ diff --git a/ext/dts/Makefile.am b/ext/dts/Makefile.am new file mode 100644 index 0000000..f93e87d --- /dev/null +++ b/ext/dts/Makefile.am @@ -0,0 +1,10 @@ +plugin_LTLIBRARIES = libgstdtsdec.la + +libgstdtsdec_la_SOURCES = gstdtsdec.c +libgstdtsdec_la_CFLAGS = $(GST_CFLAGS) $(ORC_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +libgstdtsdec_la_LIBADD = $(DTS_LIBS) $(ORC_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ +libgstdtsdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdtsdec_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstdtsdec.h diff --git a/ext/dts/Makefile.in b/ext/dts/Makefile.in new file mode 100644 index 0000000..fc6f96f --- /dev/null +++ b/ext/dts/Makefile.in @@ -0,0 +1,857 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/dts +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstdtsdec_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstdtsdec_la_OBJECTS = libgstdtsdec_la-gstdtsdec.lo +libgstdtsdec_la_OBJECTS = $(am_libgstdtsdec_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstdtsdec_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstdtsdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstdtsdec_la_CFLAGS) $(CFLAGS) \ + $(libgstdtsdec_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstdtsdec_la_SOURCES) +DIST_SOURCES = $(libgstdtsdec_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstdtsdec.la +libgstdtsdec_la_SOURCES = gstdtsdec.c +libgstdtsdec_la_CFLAGS = $(GST_CFLAGS) $(ORC_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +libgstdtsdec_la_LIBADD = $(DTS_LIBS) $(ORC_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ + +libgstdtsdec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstdtsdec_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstdtsdec.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/dts/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/dts/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstdtsdec.la: $(libgstdtsdec_la_OBJECTS) $(libgstdtsdec_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstdtsdec_la_LINK) -rpath $(plugindir) $(libgstdtsdec_la_OBJECTS) $(libgstdtsdec_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstdtsdec_la-gstdtsdec.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstdtsdec_la-gstdtsdec.lo: gstdtsdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtsdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtsdec_la_CFLAGS) $(CFLAGS) -MT libgstdtsdec_la-gstdtsdec.lo -MD -MP -MF $(DEPDIR)/libgstdtsdec_la-gstdtsdec.Tpo -c -o libgstdtsdec_la-gstdtsdec.lo `test -f 'gstdtsdec.c' || echo '$(srcdir)/'`gstdtsdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstdtsdec_la-gstdtsdec.Tpo $(DEPDIR)/libgstdtsdec_la-gstdtsdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstdtsdec.c' object='libgstdtsdec_la-gstdtsdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstdtsdec_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstdtsdec_la_CFLAGS) $(CFLAGS) -c -o libgstdtsdec_la-gstdtsdec.lo `test -f 'gstdtsdec.c' || echo '$(srcdir)/'`gstdtsdec.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/dts/gstdtsdec.c b/ext/dts/gstdtsdec.c new file mode 100644 index 0000000..2039c58 --- /dev/null +++ b/ext/dts/gstdtsdec.c @@ -0,0 +1,973 @@ +/* GStreamer DTS decoder plugin based on libdtsdec + * Copyright (C) 2004 Ronald Bultje + * Copyright (C) 2009 Jan Schmidt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-dtsdec + * + * Digital Theatre System (DTS) audio decoder + * + * + * Example launch line + * |[ + * gst-launch dvdreadsrc title=1 ! mpegpsdemux ! dtsdec ! audioresample ! audioconvert ! alsasink + * ]| Play a DTS audio track from a dvd. + * |[ + * gst-launch filesrc location=abc.dts ! dtsdec ! audioresample ! audioconvert ! alsasink + * ]| Decode a standalone file and play it. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include "_stdint.h" +#include + +#include +#include + +#ifndef DTS_OLD +#include +#else +#include + +typedef struct dts_state_s dca_state_t; +#define DCA_MONO DTS_MONO +#define DCA_CHANNEL DTS_CHANNEL +#define DCA_STEREO DTS_STEREO +#define DCA_STEREO_SUMDIFF DTS_STEREO_SUMDIFF +#define DCA_STEREO_TOTAL DTS_STEREO_TOTAL +#define DCA_3F DTS_3F +#define DCA_2F1R DTS_2F1R +#define DCA_3F1R DTS_3F1R +#define DCA_2F2R DTS_2F2R +#define DCA_3F2R DTS_3F2R +#define DCA_4F2R DTS_4F2R +#define DCA_DOLBY DTS_DOLBY +#define DCA_CHANNEL_MAX DTS_CHANNEL_MAX +#define DCA_CHANNEL_BITS DTS_CHANNEL_BITS +#define DCA_CHANNEL_MASK DTS_CHANNEL_MASK +#define DCA_LFE DTS_LFE +#define DCA_ADJUST_LEVEL DTS_ADJUST_LEVEL + +#define dca_init dts_init +#define dca_syncinfo dts_syncinfo +#define dca_frame dts_frame +#define dca_dynrng dts_dynrng +#define dca_blocks_num dts_blocks_num +#define dca_block dts_block +#define dca_samples dts_samples +#define dca_free dts_free +#endif + +#include "gstdtsdec.h" + +#if HAVE_ORC +#include +#endif + +#if defined(LIBDTS_FIXED) || defined(LIBDCA_FIXED) +#define SAMPLE_WIDTH 16 +#elif defined (LIBDTS_DOUBLE) || defined(LIBDCA_DOUBLE) +#define SAMPLE_WIDTH 64 +#else +#define SAMPLE_WIDTH 32 +#endif + +GST_DEBUG_CATEGORY_STATIC (dtsdec_debug); +#define GST_CAT_DEFAULT (dtsdec_debug) + +enum +{ + ARG_0, + ARG_DRC +}; + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-dts; audio/x-private1-dts") + ); + +#if defined(LIBDTS_FIXED) || defined(LIBDCA_FIXED) +#define DTS_CAPS "audio/x-raw-int, " \ + "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", " \ + "signed = (boolean) true, " \ + "width = (int) " G_STRINGIFY (SAMPLE_WIDTH) ", " \ + "depth = (int) 16" +#else +#define DTS_CAPS "audio/x-raw-float, " \ + "endianness = (int) " G_STRINGIFY (G_BYTE_ORDER) ", " \ + "width = (int) " G_STRINGIFY (SAMPLE_WIDTH) +#endif + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (DTS_CAPS ", " + "rate = (int) [ 4000, 96000 ], " "channels = (int) [ 1, 6 ]") + ); + +GST_BOILERPLATE (GstDtsDec, gst_dtsdec, GstElement, GST_TYPE_ELEMENT); + +static gboolean gst_dtsdec_sink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_dtsdec_sink_event (GstPad * pad, GstEvent * event); +static GstFlowReturn gst_dtsdec_chain (GstPad * pad, GstBuffer * buf); +static GstFlowReturn gst_dtsdec_chain_raw (GstPad * pad, GstBuffer * buf); +static GstStateChangeReturn gst_dtsdec_change_state (GstElement * element, + GstStateChange transition); + +static void gst_dtsdec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_dtsdec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + + +static void +gst_dtsdec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_set_details_simple (element_class, "DTS audio decoder", + "Codec/Decoder/Audio", + "Decodes DTS audio streams", + "Jan Schmidt , " + "Ronald Bultje "); + + GST_DEBUG_CATEGORY_INIT (dtsdec_debug, "dtsdec", 0, "DTS/DCA audio decoder"); +} + +static void +gst_dtsdec_class_init (GstDtsDecClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + guint cpuflags; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_dtsdec_set_property; + gobject_class->get_property = gst_dtsdec_get_property; + + gstelement_class->change_state = gst_dtsdec_change_state; + + /** + * GstDtsDec::drc + * + * Set to true to apply the recommended DTS dynamic range compression + * to the audio stream. Dynamic range compression makes loud sounds + * softer and soft sounds louder, so you can more easily listen + * to the stream without disturbing other people. + */ + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_DRC, + g_param_spec_boolean ("drc", "Dynamic Range Compression", + "Use Dynamic Range Compression", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + klass->dts_cpuflags = 0; + +#if HAVE_ORC + cpuflags = orc_target_get_default_flags (orc_target_get_by_name ("mmx")); + if (cpuflags & ORC_TARGET_MMX_MMX) + klass->dts_cpuflags |= MM_ACCEL_X86_MMX; + if (cpuflags & ORC_TARGET_MMX_3DNOW) + klass->dts_cpuflags |= MM_ACCEL_X86_3DNOW; + if (cpuflags & ORC_TARGET_MMX_MMXEXT) + klass->dts_cpuflags |= MM_ACCEL_X86_MMXEXT; +#else + cpuflags = 0; + klass->dts_cpuflags = 0; +#endif + + GST_LOG ("CPU flags: dts=%08x, liboil=%08x", klass->dts_cpuflags, cpuflags); +} + +static void +gst_dtsdec_init (GstDtsDec * dtsdec, GstDtsDecClass * g_class) +{ + /* create the sink and src pads */ + dtsdec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_pad_set_setcaps_function (dtsdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_dtsdec_sink_setcaps)); + gst_pad_set_chain_function (dtsdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_dtsdec_chain)); + gst_pad_set_event_function (dtsdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_dtsdec_sink_event)); + gst_element_add_pad (GST_ELEMENT (dtsdec), dtsdec->sinkpad); + + dtsdec->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_element_add_pad (GST_ELEMENT (dtsdec), dtsdec->srcpad); + + dtsdec->request_channels = DCA_CHANNEL; + dtsdec->dynamic_range_compression = FALSE; + + gst_segment_init (&dtsdec->segment, GST_FORMAT_UNDEFINED); +} + +static gint +gst_dtsdec_channels (uint32_t flags, GstAudioChannelPosition ** pos) +{ + gint chans = 0; + GstAudioChannelPosition *tpos = NULL; + + if (pos) { + /* Allocate the maximum, for ease */ + tpos = *pos = g_new (GstAudioChannelPosition, 7); + if (!tpos) + return 0; + } + + switch (flags & DCA_CHANNEL_MASK) { + case DCA_MONO: + chans = 1; + if (tpos) + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO; + break; + /* case DCA_CHANNEL: */ + case DCA_STEREO: + case DCA_STEREO_SUMDIFF: + case DCA_STEREO_TOTAL: + case DCA_DOLBY: + chans = 2; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + } + break; + case DCA_3F: + chans = 3; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + } + break; + case DCA_2F1R: + chans = 3; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER; + } + break; + case DCA_3F1R: + chans = 4; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + tpos[3] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER; + } + break; + case DCA_2F2R: + chans = 4; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; + tpos[3] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; + } + break; + case DCA_3F2R: + chans = 5; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + tpos[3] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; + tpos[4] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; + } + break; + case DCA_4F2R: + chans = 6; + if (tpos) { + tpos[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER; + tpos[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; + tpos[2] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + tpos[3] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + tpos[4] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; + tpos[5] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; + } + break; + default: + g_warning ("dtsdec: invalid flags 0x%x", flags); + return 0; + } + if (flags & DCA_LFE) { + if (tpos) { + tpos[chans] = GST_AUDIO_CHANNEL_POSITION_LFE; + } + chans += 1; + } + + return chans; +} + +static void +clear_queued (GstDtsDec * dec) +{ + g_list_foreach (dec->queued, (GFunc) gst_mini_object_unref, NULL); + g_list_free (dec->queued); + dec->queued = NULL; +} + +static GstFlowReturn +flush_queued (GstDtsDec * dec) +{ + GstFlowReturn ret = GST_FLOW_OK; + + while (dec->queued) { + GstBuffer *buf = GST_BUFFER_CAST (dec->queued->data); + + GST_LOG_OBJECT (dec, "pushing buffer %p, timestamp %" + GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT, buf, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + /* iterate ouput queue an push downstream */ + ret = gst_pad_push (dec->srcpad, buf); + + dec->queued = g_list_delete_link (dec->queued, dec->queued); + } + return ret; +} + +static GstFlowReturn +gst_dtsdec_drain (GstDtsDec * dec) +{ + GstFlowReturn ret = GST_FLOW_OK; + + if (dec->segment.rate < 0.0) { + /* if we have some queued frames for reverse playback, flush + * them now */ + ret = flush_queued (dec); + } + return ret; +} + +static GstFlowReturn +gst_dtsdec_push (GstDtsDec * dtsdec, + GstPad * srcpad, int flags, sample_t * samples, GstClockTime timestamp) +{ + GstBuffer *buf; + int chans, n, c; + GstFlowReturn result; + + flags &= (DCA_CHANNEL_MASK | DCA_LFE); + chans = gst_dtsdec_channels (flags, NULL); + if (!chans) { + GST_ELEMENT_ERROR (GST_ELEMENT (dtsdec), STREAM, DECODE, (NULL), + ("Invalid channel flags: %d", flags)); + return GST_FLOW_ERROR; + } + + result = + gst_pad_alloc_buffer_and_set_caps (srcpad, 0, + 256 * chans * (SAMPLE_WIDTH / 8), GST_PAD_CAPS (srcpad), &buf); + if (result != GST_FLOW_OK) + return result; + + for (n = 0; n < 256; n++) { + for (c = 0; c < chans; c++) { + ((sample_t *) GST_BUFFER_DATA (buf))[n * chans + c] = + samples[c * 256 + n]; + } + } + GST_BUFFER_TIMESTAMP (buf) = timestamp; + GST_BUFFER_DURATION (buf) = 256 * GST_SECOND / dtsdec->sample_rate; + + result = GST_FLOW_OK; + if ((buf = gst_audio_buffer_clip (buf, &dtsdec->segment, + dtsdec->sample_rate, (SAMPLE_WIDTH / 8) * chans))) { + /* set discont when needed */ + if (dtsdec->discont) { + GST_LOG_OBJECT (dtsdec, "marking DISCONT"); + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT); + dtsdec->discont = FALSE; + } + + if (dtsdec->segment.rate > 0.0) { + GST_DEBUG_OBJECT (dtsdec, + "Pushing buffer with ts %" GST_TIME_FORMAT " duration %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + result = gst_pad_push (srcpad, buf); + } else { + /* reverse playback, queue frame till later when we get a discont. */ + GST_DEBUG_OBJECT (dtsdec, "queued frame"); + dtsdec->queued = g_list_prepend (dtsdec->queued, buf); + } + } + return result; +} + +static gboolean +gst_dtsdec_renegotiate (GstDtsDec * dts) +{ + GstAudioChannelPosition *pos; + GstCaps *caps = gst_caps_from_string (DTS_CAPS); + gint channels = gst_dtsdec_channels (dts->using_channels, &pos); + gboolean result = FALSE; + + if (!channels) + goto done; + + GST_INFO ("dtsdec renegotiate, channels=%d, rate=%d", + channels, dts->sample_rate); + + gst_caps_set_simple (caps, + "channels", G_TYPE_INT, channels, + "rate", G_TYPE_INT, (gint) dts->sample_rate, NULL); + gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos); + g_free (pos); + + if (!gst_pad_set_caps (dts->srcpad, caps)) + goto done; + + result = TRUE; + +done: + if (caps) { + gst_caps_unref (caps); + } + return result; +} + +static gboolean +gst_dtsdec_sink_event (GstPad * pad, GstEvent * event) +{ + GstDtsDec *dtsdec = GST_DTSDEC (gst_pad_get_parent (pad)); + gboolean ret = FALSE; + + GST_LOG_OBJECT (dtsdec, "%s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT:{ + GstFormat format; + gboolean update; + gint64 start, end, pos; + gdouble rate; + + gst_event_parse_new_segment (event, &update, &rate, &format, &start, &end, + &pos); + + /* drain queued buffers before activating the segment so that we can clip + * against the old segment first */ + gst_dtsdec_drain (dtsdec); + + if (format != GST_FORMAT_TIME || !GST_CLOCK_TIME_IS_VALID (start)) { + GST_WARNING ("No time in newsegment event %p (format is %s)", + event, gst_format_get_name (format)); + gst_event_unref (event); + dtsdec->sent_segment = FALSE; + /* set some dummy values, FIXME: do proper conversion */ + dtsdec->time = start = pos = 0; + format = GST_FORMAT_TIME; + end = -1; + } else { + dtsdec->time = start; + dtsdec->sent_segment = TRUE; + ret = gst_pad_push_event (dtsdec->srcpad, event); + } + + gst_segment_set_newsegment (&dtsdec->segment, update, rate, format, start, + end, pos); + break; + } + case GST_EVENT_TAG: + ret = gst_pad_push_event (dtsdec->srcpad, event); + break; + case GST_EVENT_EOS: + gst_dtsdec_drain (dtsdec); + ret = gst_pad_push_event (dtsdec->srcpad, event); + break; + case GST_EVENT_FLUSH_START: + ret = gst_pad_push_event (dtsdec->srcpad, event); + break; + case GST_EVENT_FLUSH_STOP: + if (dtsdec->cache) { + gst_buffer_unref (dtsdec->cache); + dtsdec->cache = NULL; + } + clear_queued (dtsdec); + gst_segment_init (&dtsdec->segment, GST_FORMAT_UNDEFINED); + ret = gst_pad_push_event (dtsdec->srcpad, event); + break; + default: + ret = gst_pad_push_event (dtsdec->srcpad, event); + break; + } + + gst_object_unref (dtsdec); + return ret; +} + +static void +gst_dtsdec_update_streaminfo (GstDtsDec * dts) +{ + GstTagList *taglist; + + taglist = gst_tag_list_new (); + + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, + GST_TAG_AUDIO_CODEC, "DTS DCA", NULL); + + if (dts->bit_rate > 3) { + /* 1 => open bitrate, 2 => variable bitrate, 3 => lossless */ + gst_tag_list_add (taglist, GST_TAG_MERGE_APPEND, GST_TAG_BITRATE, + (guint) dts->bit_rate, NULL); + } + + gst_element_found_tags_for_pad (GST_ELEMENT (dts), dts->srcpad, taglist); +} + +static GstFlowReturn +gst_dtsdec_handle_frame (GstDtsDec * dts, guint8 * data, + guint length, gint flags, gint sample_rate, gint bit_rate) +{ + gint channels, i, num_blocks; + gboolean need_renegotiation = FALSE; + + /* go over stream properties, renegotiate or update streaminfo if needed */ + if (dts->sample_rate != sample_rate) { + need_renegotiation = TRUE; + dts->sample_rate = sample_rate; + } + + if (flags) { + dts->stream_channels = flags & (DCA_CHANNEL_MASK | DCA_LFE); + } + + if (bit_rate != dts->bit_rate) { + dts->bit_rate = bit_rate; + gst_dtsdec_update_streaminfo (dts); + } + + /* If we haven't had an explicit number of channels chosen through properties + * at this point, choose what to downmix to now, based on what the peer will + * accept - this allows a52dec to do downmixing in preference to a + * downstream element such as audioconvert. + * FIXME: Add the property back in for forcing output channels. + */ + if (dts->request_channels != DCA_CHANNEL) { + flags = dts->request_channels; + } else if (dts->flag_update) { + GstCaps *caps; + + dts->flag_update = FALSE; + + caps = gst_pad_get_allowed_caps (dts->srcpad); + if (caps && gst_caps_get_size (caps) > 0) { + GstCaps *copy = gst_caps_copy_nth (caps, 0); + GstStructure *structure = gst_caps_get_structure (copy, 0); + gint channels; + const int dts_channels[6] = { + DCA_MONO, + DCA_STEREO, + DCA_STEREO | DCA_LFE, + DCA_2F2R, + DCA_2F2R | DCA_LFE, + DCA_3F2R | DCA_LFE, + }; + + /* Prefer the original number of channels, but fixate to something + * preferred (first in the caps) downstream if possible. + */ + gst_structure_fixate_field_nearest_int (structure, "channels", + flags ? gst_dtsdec_channels (flags, NULL) : 6); + gst_structure_get_int (structure, "channels", &channels); + if (channels <= 6) + flags = dts_channels[channels - 1]; + else + flags = dts_channels[5]; + + gst_caps_unref (copy); + } else if (flags) { + flags = dts->stream_channels; + } else { + flags = DCA_3F2R | DCA_LFE; + } + + if (caps) + gst_caps_unref (caps); + } else { + flags = dts->using_channels; + } + /* process */ + flags |= DCA_ADJUST_LEVEL; + dts->level = 1; + if (dca_frame (dts->state, data, &flags, &dts->level, dts->bias)) { + GST_WARNING_OBJECT (dts, "dts_frame error"); + dts->discont = TRUE; + return GST_FLOW_OK; + } + channels = flags & (DCA_CHANNEL_MASK | DCA_LFE); + if (dts->using_channels != channels) { + need_renegotiation = TRUE; + dts->using_channels = channels; + } + + /* negotiate if required */ + if (need_renegotiation) { + GST_DEBUG ("dtsdec: sample_rate:%d stream_chans:0x%x using_chans:0x%x", + dts->sample_rate, dts->stream_channels, dts->using_channels); + if (!gst_dtsdec_renegotiate (dts)) { + GST_ELEMENT_ERROR (dts, CORE, NEGOTIATION, (NULL), (NULL)); + return GST_FLOW_ERROR; + } + } + + if (dts->dynamic_range_compression == FALSE) { + dca_dynrng (dts->state, NULL, NULL); + } + + /* handle decoded data, one block is 256 samples */ + num_blocks = dca_blocks_num (dts->state); + for (i = 0; i < num_blocks; i++) { + if (dca_block (dts->state)) { + /* Ignore errors, but mark a discont */ + GST_WARNING_OBJECT (dts, "dts_block error %d", i); + dts->discont = TRUE; + } else { + GstFlowReturn ret; + + /* push on */ + ret = gst_dtsdec_push (dts, dts->srcpad, dts->using_channels, + dts->samples, dts->time); + if (ret != GST_FLOW_OK) + return ret; + } + dts->time += GST_SECOND * 256 / dts->sample_rate; + } + + return GST_FLOW_OK; +} + +static gboolean +gst_dtsdec_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstDtsDec *dts = GST_DTSDEC (gst_pad_get_parent (pad)); + GstStructure *structure; + + structure = gst_caps_get_structure (caps, 0); + + if (structure && gst_structure_has_name (structure, "audio/x-private1-dts")) + dts->dvdmode = TRUE; + else + dts->dvdmode = FALSE; + + gst_object_unref (dts); + + return TRUE; +} + +static GstFlowReturn +gst_dtsdec_chain (GstPad * pad, GstBuffer * buf) +{ + GstFlowReturn ret = GST_FLOW_OK; + GstDtsDec *dts = GST_DTSDEC (GST_PAD_PARENT (pad)); + gint first_access; + + if (GST_BUFFER_IS_DISCONT (buf)) { + GST_LOG_OBJECT (dts, "received DISCONT"); + gst_dtsdec_drain (dts); + /* clear cache on discont and mark a discont in the element */ + if (dts->cache) { + gst_buffer_unref (dts->cache); + dts->cache = NULL; + } + dts->discont = TRUE; + } + + if (dts->dvdmode) { + gint size = GST_BUFFER_SIZE (buf); + guint8 *data = GST_BUFFER_DATA (buf); + gint offset, len; + GstBuffer *subbuf; + + if (size < 2) + goto not_enough_data; + + first_access = (data[0] << 8) | data[1]; + + /* Skip the first_access header */ + offset = 2; + + if (first_access > 1) { + /* Length of data before first_access */ + len = first_access - 1; + + if (len <= 0 || offset + len > size) + goto bad_first_access_parameter; + + subbuf = gst_buffer_create_sub (buf, offset, len); + GST_BUFFER_TIMESTAMP (subbuf) = GST_CLOCK_TIME_NONE; + ret = gst_dtsdec_chain_raw (pad, subbuf); + if (ret != GST_FLOW_OK) + goto done; + + offset += len; + len = size - offset; + + if (len > 0) { + subbuf = gst_buffer_create_sub (buf, offset, len); + GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf); + + ret = gst_dtsdec_chain_raw (pad, subbuf); + } + } else { + /* first_access = 0 or 1, so if there's a timestamp it applies to the first byte */ + subbuf = gst_buffer_create_sub (buf, offset, size - offset); + GST_BUFFER_TIMESTAMP (subbuf) = GST_BUFFER_TIMESTAMP (buf); + ret = gst_dtsdec_chain_raw (pad, subbuf); + } + } else { + gst_buffer_ref (buf); + ret = gst_dtsdec_chain_raw (pad, buf); + } + +done: + gst_buffer_unref (buf); + return ret; + +/* ERRORS */ +not_enough_data: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dts), STREAM, DECODE, (NULL), + ("Insufficient data in buffer. Can't determine first_acess")); + gst_buffer_unref (buf); + return GST_FLOW_ERROR; + } +bad_first_access_parameter: + { + GST_ELEMENT_ERROR (GST_ELEMENT (dts), STREAM, DECODE, (NULL), + ("Bad first_access parameter (%d) in buffer", first_access)); + gst_buffer_unref (buf); + return GST_FLOW_ERROR; + } +} + +static GstFlowReturn +gst_dtsdec_chain_raw (GstPad * pad, GstBuffer * buf) +{ + GstDtsDec *dts; + guint8 *data; + gint size; + gint length = 0, flags, sample_rate, bit_rate, frame_length; + GstFlowReturn result = GST_FLOW_OK; + + dts = GST_DTSDEC (GST_PAD_PARENT (pad)); + + if (!dts->sent_segment) { + GstSegment segment; + + /* Create a basic segment. Usually, we'll get a new-segment sent by + * another element that will know more information (a demuxer). If we're + * just looking at a raw AC3 stream, we won't - so we need to send one + * here, but we don't know much info, so just send a minimal TIME + * new-segment event + */ + gst_segment_init (&segment, GST_FORMAT_TIME); + gst_pad_push_event (dts->srcpad, gst_event_new_new_segment (FALSE, + segment.rate, segment.format, segment.start, + segment.duration, segment.start)); + dts->sent_segment = TRUE; + } + + /* merge with cache, if any. Also make sure timestamps match */ + if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + dts->time = GST_BUFFER_TIMESTAMP (buf); + GST_DEBUG_OBJECT (dts, + "Received buffer with ts %" GST_TIME_FORMAT " duration %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + } + + if (dts->cache) { + buf = gst_buffer_join (dts->cache, buf); + dts->cache = NULL; + } + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + + /* find and read header */ + bit_rate = dts->bit_rate; + sample_rate = dts->sample_rate; + flags = 0; + while (size >= 7) { + length = dca_syncinfo (dts->state, data, &flags, + &sample_rate, &bit_rate, &frame_length); + + if (length == 0) { + /* shift window to re-find sync */ + data++; + size--; + } else if (length <= size) { + GST_DEBUG ("Sync: frame size %d", length); + + if (flags != dts->prev_flags) + dts->flag_update = TRUE; + dts->prev_flags = flags; + + result = gst_dtsdec_handle_frame (dts, data, length, + flags, sample_rate, bit_rate); + if (result != GST_FLOW_OK) { + size = 0; + break; + } + size -= length; + data += length; + } else { + GST_LOG ("Not enough data available (needed %d had %d)", length, size); + break; + } + } + + /* keep cache */ + if (length == 0) { + GST_LOG ("No sync found"); + } + + if (size > 0) { + dts->cache = gst_buffer_create_sub (buf, + GST_BUFFER_SIZE (buf) - size, size); + } + + gst_buffer_unref (buf); + + return result; +} + +static GstStateChangeReturn +gst_dtsdec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstDtsDec *dts = GST_DTSDEC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY:{ + GstDtsDecClass *klass; + + klass = GST_DTSDEC_CLASS (G_OBJECT_GET_CLASS (dts)); + dts->state = dca_init (klass->dts_cpuflags); + break; + } + case GST_STATE_CHANGE_READY_TO_PAUSED: + dts->samples = dca_samples (dts->state); + dts->bit_rate = -1; + dts->sample_rate = -1; + dts->stream_channels = DCA_CHANNEL; + dts->using_channels = DCA_CHANNEL; + dts->level = 1; + dts->bias = 0; + dts->time = 0; + dts->sent_segment = FALSE; + dts->flag_update = TRUE; + gst_segment_init (&dts->segment, GST_FORMAT_UNDEFINED); + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + dts->samples = NULL; + if (dts->cache) { + gst_buffer_unref (dts->cache); + dts->cache = NULL; + } + clear_queued (dts); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + dca_free (dts->state); + dts->state = NULL; + break; + default: + break; + } + + return ret; +} + +static void +gst_dtsdec_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * pspec) +{ + GstDtsDec *dts = GST_DTSDEC (object); + + switch (prop_id) { + case ARG_DRC: + dts->dynamic_range_compression = g_value_get_boolean (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_dtsdec_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstDtsDec *dts = GST_DTSDEC (object); + + switch (prop_id) { + case ARG_DRC: + g_value_set_boolean (value, dts->dynamic_range_compression); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ +#if HAVE_ORC + orc_init (); +#endif + + if (!gst_element_register (plugin, "dtsdec", GST_RANK_PRIMARY, + GST_TYPE_DTSDEC)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "dtsdec", + "Decodes DTS audio streams", + plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/dts/gstdtsdec.h b/ext/dts/gstdtsdec.h new file mode 100644 index 0000000..a7c8f71 --- /dev/null +++ b/ext/dts/gstdtsdec.h @@ -0,0 +1,93 @@ +/* GStreamer DTS decoder plugin based on libdtsdec + * Copyright (C) 2004 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_DTSDEC_H__ +#define __GST_DTSDEC_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_DTSDEC \ + (gst_dtsdec_get_type()) +#define GST_DTSDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_DTSDEC,GstDtsDec)) +#define GST_DTSDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_DTSDEC,GstDtsDecClass)) +#define GST_IS_DTSDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_DTSDEC)) +#define GST_IS_DTSDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_DTSDEC)) + +typedef struct _GstDtsDec GstDtsDec; +typedef struct _GstDtsDecClass GstDtsDecClass; + +struct _GstDtsDec { + GstElement element; + + /* pads */ + GstPad *sinkpad; + GstPad *srcpad; + GstSegment segment; + + gboolean dvdmode; + gboolean sent_segment; + gboolean discont; + gboolean flag_update; + gboolean prev_flags; + + /* stream properties */ + gint bit_rate; + gint sample_rate; + gint stream_channels; + gint request_channels; + gint using_channels; + + /* decoding properties */ + sample_t level; + sample_t bias; + gboolean dynamic_range_compression; + sample_t *samples; +#ifndef DTS_OLD + dca_state_t *state; +#else + dts_state_t *state; +#endif + + + /* Data left over from the previous buffer */ + GstBuffer *cache; + GstClockTime time; + + /* reverse playback */ + GList *queued; +}; + +struct _GstDtsDecClass { + GstElementClass parent_class; + + guint32 dts_cpuflags; +}; + +GType gst_dtsdec_get_type(void); + +G_END_DECLS + +#endif /* __GST_DTSDEC_H__ */ diff --git a/ext/faac/Makefile.am b/ext/faac/Makefile.am new file mode 100644 index 0000000..b4ec10a --- /dev/null +++ b/ext/faac/Makefile.am @@ -0,0 +1,11 @@ +plugin_LTLIBRARIES = libgstfaac.la + +libgstfaac_la_SOURCES = gstfaac.c +libgstfaac_la_CFLAGS = $(FAAC_CFLAGS) $(GST_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) +libgstfaac_la_LIBADD = $(FAAC_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ +libgstfaac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaac_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstfaac.h diff --git a/ext/faac/Makefile.in b/ext/faac/Makefile.in new file mode 100644 index 0000000..bd4774b --- /dev/null +++ b/ext/faac/Makefile.in @@ -0,0 +1,859 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/faac +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstfaac_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstfaac_la_OBJECTS = libgstfaac_la-gstfaac.lo +libgstfaac_la_OBJECTS = $(am_libgstfaac_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstfaac_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstfaac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstfaac_la_CFLAGS) $(CFLAGS) \ + $(libgstfaac_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstfaac_la_SOURCES) +DIST_SOURCES = $(libgstfaac_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstfaac.la +libgstfaac_la_SOURCES = gstfaac.c +libgstfaac_la_CFLAGS = $(FAAC_CFLAGS) $(GST_CFLAGS) $(GST_BASE_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) + +libgstfaac_la_LIBADD = $(FAAC_LIBS) $(GST_BASE_LIBS) $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ + +libgstfaac_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaac_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstfaac.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/faac/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/faac/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstfaac.la: $(libgstfaac_la_OBJECTS) $(libgstfaac_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstfaac_la_LINK) -rpath $(plugindir) $(libgstfaac_la_OBJECTS) $(libgstfaac_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstfaac_la-gstfaac.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstfaac_la-gstfaac.lo: gstfaac.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaac_la_CFLAGS) $(CFLAGS) -MT libgstfaac_la-gstfaac.lo -MD -MP -MF $(DEPDIR)/libgstfaac_la-gstfaac.Tpo -c -o libgstfaac_la-gstfaac.lo `test -f 'gstfaac.c' || echo '$(srcdir)/'`gstfaac.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfaac_la-gstfaac.Tpo $(DEPDIR)/libgstfaac_la-gstfaac.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfaac.c' object='libgstfaac_la-gstfaac.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaac_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaac_la_CFLAGS) $(CFLAGS) -c -o libgstfaac_la-gstfaac.lo `test -f 'gstfaac.c' || echo '$(srcdir)/'`gstfaac.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/faac/gstfaac.c b/ext/faac/gstfaac.c new file mode 100644 index 0000000..f308603 --- /dev/null +++ b/ext/faac/gstfaac.c @@ -0,0 +1,947 @@ +/* GStreamer FAAC (Free AAC Encoder) plugin + * Copyright (C) 2003 Ronald Bultje + * Copyright (C) 2009 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-faac + * @see_also: faad + * + * faac encodes raw audio to AAC (MPEG-4 part 3) streams. + * + * The #GstFaac:outputformat property determines whether or not the + * AAC data needs additional framing provided by a container + * (such as Matroska or Quicktime). + * This is required for raw data, whereas ADTS formatted AAC already provides + * framing and needs no container. + * + * The #GstFaac:profile property determines the AAC profile, where the default + * LC (Low Complexity) profile is most widely used, supported and suitable for + * general use. The other profiles are very rarely used and often not supported. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc wave=sine num-buffers=100 ! audioconvert ! faac ! matroskamux ! filesink location=sine.mkv + * ]| Encode a sine beep as aac and write to matroska container. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include + +#include + +#include "gstfaac.h" + +#define SINK_CAPS \ + "audio/x-raw-int, " \ + "endianness = (int) BYTE_ORDER, " \ + "signed = (boolean) true, " \ + "width = (int) 16, " \ + "depth = (int) 16, " \ + "rate = (int) [ 8000, 96000 ], " \ + "channels = (int) [ 1, 6 ] " + +/* these don't seem to work? */ +#if 0 +"audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " + "width = (int) 32, " + "depth = (int) { 24, 32 }, " + "rate = (int) [ 8000, 96000], " + "channels = (int) [ 1, 6]; " + "audio/x-raw-float, " + "endianness = (int) BYTE_ORDER, " + "width = (int) 32, " + "rate = (int) [ 8000, 96000], " "channels = (int) [ 1, 6]" +#endif +#define SRC_CAPS \ + "audio/mpeg, " \ + "mpegversion = (int) { 4, 2 }, " \ + "channels = (int) [ 1, 6 ], " \ + "rate = (int) [ 8000, 96000 ], " \ + "stream-format = (string) { adts, raw } " +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SRC_CAPS)); + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (SINK_CAPS)); + +enum +{ + ARG_0, + ARG_OUTPUTFORMAT, + ARG_BITRATE, + ARG_PROFILE, + ARG_TNS, + ARG_MIDSIDE, + ARG_SHORTCTL +}; + +static void gst_faac_base_init (GstFaacClass * klass); +static void gst_faac_class_init (GstFaacClass * klass); +static void gst_faac_init (GstFaac * faac); +static void gst_faac_finalize (GObject * object); +static void gst_faac_reset (GstFaac * faac); + +static void gst_faac_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_faac_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static gboolean gst_faac_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_faac_configure_source_pad (GstFaac * faac); +static gboolean gst_faac_sink_setcaps (GstPad * pad, GstCaps * caps); +static GstCaps *gst_faac_sink_getcaps (GstPad * pad); +static GstFlowReturn gst_faac_push_buffers (GstFaac * faac, gboolean force); +static GstFlowReturn gst_faac_chain (GstPad * pad, GstBuffer * data); +static GstStateChangeReturn gst_faac_change_state (GstElement * element, + GstStateChange transition); + +static GstElementClass *parent_class = NULL; + +GST_DEBUG_CATEGORY_STATIC (faac_debug); +#define GST_CAT_DEFAULT faac_debug + +#define FAAC_DEFAULT_MPEGVERSION 4 +#define FAAC_DEFAULT_OUTPUTFORMAT 0 /* RAW */ +#define FAAC_DEFAULT_BITRATE 128 * 1000 +#define FAAC_DEFAULT_PROFILE LOW +#define FAAC_DEFAULT_TNS FALSE +#define FAAC_DEFAULT_MIDSIDE TRUE +#define FAAC_DEFAULT_SHORTCTL SHORTCTL_NORMAL + +GType +gst_faac_get_type (void) +{ + static GType gst_faac_type = 0; + + if (!gst_faac_type) { + static const GTypeInfo gst_faac_info = { + sizeof (GstFaacClass), + (GBaseInitFunc) gst_faac_base_init, + NULL, + (GClassInitFunc) gst_faac_class_init, + NULL, + NULL, + sizeof (GstFaac), + 0, + (GInstanceInitFunc) gst_faac_init, + }; + const GInterfaceInfo preset_interface_info = { + NULL, /* interface_init */ + NULL, /* interface_finalize */ + NULL /* interface_data */ + }; + + gst_faac_type = g_type_register_static (GST_TYPE_ELEMENT, + "GstFaac", &gst_faac_info, 0); + + g_type_add_interface_static (gst_faac_type, GST_TYPE_PRESET, + &preset_interface_info); + } + + return gst_faac_type; +} + +static void +gst_faac_base_init (GstFaacClass * klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + + gst_element_class_set_details_simple (element_class, "AAC audio encoder", + "Codec/Encoder/Audio", + "Free MPEG-2/4 AAC encoder", + "Ronald Bultje "); + + GST_DEBUG_CATEGORY_INIT (faac_debug, "faac", 0, "AAC encoding"); +} + +#define GST_TYPE_FAAC_PROFILE (gst_faac_profile_get_type ()) +static GType +gst_faac_profile_get_type (void) +{ + static GType gst_faac_profile_type = 0; + + if (!gst_faac_profile_type) { + static GEnumValue gst_faac_profile[] = { + {MAIN, "MAIN", "Main profile"}, + {LOW, "LC", "Low complexity profile"}, + {SSR, "SSR", "Scalable sampling rate profile"}, + {LTP, "LTP", "Long term prediction profile"}, + {0, NULL, NULL}, + }; + + gst_faac_profile_type = g_enum_register_static ("GstFaacProfile", + gst_faac_profile); + } + + return gst_faac_profile_type; +} + +#define GST_TYPE_FAAC_SHORTCTL (gst_faac_shortctl_get_type ()) +static GType +gst_faac_shortctl_get_type (void) +{ + static GType gst_faac_shortctl_type = 0; + + if (!gst_faac_shortctl_type) { + static GEnumValue gst_faac_shortctl[] = { + {SHORTCTL_NORMAL, "SHORTCTL_NORMAL", "Normal block type"}, + {SHORTCTL_NOSHORT, "SHORTCTL_NOSHORT", "No short blocks"}, + {SHORTCTL_NOLONG, "SHORTCTL_NOLONG", "No long blocks"}, + {0, NULL, NULL}, + }; + + gst_faac_shortctl_type = g_enum_register_static ("GstFaacShortCtl", + gst_faac_shortctl); + } + + return gst_faac_shortctl_type; +} + +#define GST_TYPE_FAAC_OUTPUTFORMAT (gst_faac_outputformat_get_type ()) +static GType +gst_faac_outputformat_get_type (void) +{ + static GType gst_faac_outputformat_type = 0; + + if (!gst_faac_outputformat_type) { + static GEnumValue gst_faac_outputformat[] = { + {0, "OUTPUTFORMAT_RAW", "Raw AAC"}, + {1, "OUTPUTFORMAT_ADTS", "ADTS headers"}, + {0, NULL, NULL}, + }; + + gst_faac_outputformat_type = g_enum_register_static ("GstFaacOutputFormat", + gst_faac_outputformat); + } + + return gst_faac_outputformat_type; +} + +static void +gst_faac_class_init (GstFaacClass * klass) +{ + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->set_property = gst_faac_set_property; + gobject_class->get_property = gst_faac_get_property; + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_faac_finalize); + + /* properties */ + g_object_class_install_property (gobject_class, ARG_BITRATE, + g_param_spec_int ("bitrate", "Bitrate (bps)", "Bitrate in bits/sec", + 8 * 1000, 320 * 1000, FAAC_DEFAULT_BITRATE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_PROFILE, + g_param_spec_enum ("profile", "Profile", "MPEG/AAC encoding profile", + GST_TYPE_FAAC_PROFILE, FAAC_DEFAULT_PROFILE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_TNS, + g_param_spec_boolean ("tns", "TNS", "Use temporal noise shaping", + FAAC_DEFAULT_TNS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_MIDSIDE, + g_param_spec_boolean ("midside", "Midside", "Allow mid/side encoding", + FAAC_DEFAULT_MIDSIDE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_SHORTCTL, + g_param_spec_enum ("shortctl", "Block type", + "Block type encorcing", + GST_TYPE_FAAC_SHORTCTL, FAAC_DEFAULT_SHORTCTL, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_OUTPUTFORMAT, + g_param_spec_enum ("outputformat", "Output format", + "Format of output frames", + GST_TYPE_FAAC_OUTPUTFORMAT, FAAC_DEFAULT_OUTPUTFORMAT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + /* virtual functions */ + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_faac_change_state); +} + +static void +gst_faac_init (GstFaac * faac) +{ + faac->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_chain_function (faac->sinkpad, + GST_DEBUG_FUNCPTR (gst_faac_chain)); + gst_pad_set_setcaps_function (faac->sinkpad, + GST_DEBUG_FUNCPTR (gst_faac_sink_setcaps)); + gst_pad_set_getcaps_function (faac->sinkpad, + GST_DEBUG_FUNCPTR (gst_faac_sink_getcaps)); + gst_pad_set_event_function (faac->sinkpad, + GST_DEBUG_FUNCPTR (gst_faac_sink_event)); + gst_element_add_pad (GST_ELEMENT (faac), faac->sinkpad); + + faac->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_use_fixed_caps (faac->srcpad); + gst_element_add_pad (GST_ELEMENT (faac), faac->srcpad); + + faac->adapter = gst_adapter_new (); + + /* default properties */ + faac->bitrate = FAAC_DEFAULT_BITRATE; + faac->profile = FAAC_DEFAULT_PROFILE; + faac->shortctl = FAAC_DEFAULT_SHORTCTL; + faac->outputformat = FAAC_DEFAULT_OUTPUTFORMAT; + faac->tns = FAAC_DEFAULT_TNS; + faac->midside = FAAC_DEFAULT_MIDSIDE; + + gst_faac_reset (faac); +} + +static void +gst_faac_reset (GstFaac * faac) +{ + faac->handle = NULL; + faac->samplerate = -1; + faac->channels = -1; + faac->offset = 0; + gst_adapter_clear (faac->adapter); +} + +static void +gst_faac_finalize (GObject * object) +{ + GstFaac *faac = (GstFaac *) object; + + g_object_unref (faac->adapter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_faac_close_encoder (GstFaac * faac) +{ + if (faac->handle) + faacEncClose (faac->handle); + faac->handle = NULL; + gst_adapter_clear (faac->adapter); + faac->offset = 0; +} + +static const GstAudioChannelPosition aac_channel_positions[][8] = { + {GST_AUDIO_CHANNEL_POSITION_FRONT_MONO}, + {GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT}, + { + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + }, + { + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_CENTER}, + { + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT}, + { + GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER, + GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT, + GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT, + GST_AUDIO_CHANNEL_POSITION_REAR_LEFT, + GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT, + GST_AUDIO_CHANNEL_POSITION_LFE} +}; + +static GstCaps * +gst_faac_sink_getcaps (GstPad * pad) +{ + static volatile gsize sinkcaps = 0; + + if (g_once_init_enter (&sinkcaps)) { + GstCaps *tmp = gst_caps_new_empty (); + GstStructure *s, *t; + gint i, c; + + s = gst_structure_new ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "signed", G_TYPE_BOOLEAN, TRUE, + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, "rate", GST_TYPE_INT_RANGE, 8000, 96000, NULL); + + for (i = 1; i <= 6; i++) { + GValue chanpos = { 0 }; + GValue pos = { 0 }; + + t = gst_structure_copy (s); + + gst_structure_set (t, "channels", G_TYPE_INT, i, NULL); + + g_value_init (&chanpos, GST_TYPE_ARRAY); + g_value_init (&pos, GST_TYPE_AUDIO_CHANNEL_POSITION); + + for (c = 0; c < i; c++) { + g_value_set_enum (&pos, aac_channel_positions[i - 1][c]); + gst_value_array_append_value (&chanpos, &pos); + } + g_value_unset (&pos); + + gst_structure_set_value (t, "channel-positions", &chanpos); + g_value_unset (&chanpos); + gst_caps_append_structure (tmp, t); + } + gst_structure_free (s); + + GST_DEBUG_OBJECT (pad, "Generated sinkcaps: %" GST_PTR_FORMAT, tmp); + + g_once_init_leave (&sinkcaps, (gsize) tmp); + } + + return gst_caps_ref ((GstCaps *) sinkcaps); +} + +static gboolean +gst_faac_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstFaac *faac = GST_FAAC (gst_pad_get_parent (pad)); + GstStructure *structure = gst_caps_get_structure (caps, 0); + faacEncHandle *handle; + gint channels, samplerate, width; + gulong samples, bytes, fmt = 0, bps = 0; + gboolean result = FALSE; + + if (!gst_caps_is_fixed (caps)) + goto refuse_caps; + + if (!gst_structure_get_int (structure, "channels", &channels) || + !gst_structure_get_int (structure, "rate", &samplerate)) { + goto refuse_caps; + } + + if (gst_structure_has_name (structure, "audio/x-raw-int")) { + gst_structure_get_int (structure, "width", &width); + switch (width) { + case 16: + fmt = FAAC_INPUT_16BIT; + bps = 2; + break; + case 24: + case 32: + fmt = FAAC_INPUT_32BIT; + bps = 4; + break; + default: + g_return_val_if_reached (FALSE); + } + } else if (gst_structure_has_name (structure, "audio/x-raw-float")) { + fmt = FAAC_INPUT_FLOAT; + bps = 4; + } + + if (!fmt) + goto refuse_caps; + + /* If the encoder is initialized, do not + reinitialize it again if not necessary */ + if (faac->handle) { + if (samplerate == faac->samplerate && channels == faac->channels && + fmt == faac->format) + return TRUE; + + /* clear out pending frames */ + gst_faac_push_buffers (faac, TRUE); + + gst_faac_close_encoder (faac); + } + + if (!(handle = faacEncOpen (samplerate, channels, &samples, &bytes))) + goto setup_failed; + + /* ok, record and set up */ + faac->format = fmt; + faac->bps = bps; + faac->handle = handle; + faac->bytes = bytes; + faac->samples = samples; + faac->channels = channels; + faac->samplerate = samplerate; + + /* finish up */ + result = gst_faac_configure_source_pad (faac); + +done: + gst_object_unref (faac); + return result; + + /* ERRORS */ +setup_failed: + { + GST_ELEMENT_ERROR (faac, LIBRARY, SETTINGS, (NULL), (NULL)); + goto done; + } +refuse_caps: + { + GST_WARNING_OBJECT (faac, "refused caps %" GST_PTR_FORMAT, caps); + goto done; + } +} + +static gboolean +gst_faac_configure_source_pad (GstFaac * faac) +{ + GstCaps *allowed_caps; + GstCaps *srccaps; + gboolean ret = FALSE; + gint n, ver, mpegversion = 2; + faacEncConfiguration *conf; + guint maxbitrate; + + mpegversion = FAAC_DEFAULT_MPEGVERSION; + + allowed_caps = gst_pad_get_allowed_caps (faac->srcpad); + GST_DEBUG_OBJECT (faac, "allowed caps: %" GST_PTR_FORMAT, allowed_caps); + + if (allowed_caps) { + if (gst_caps_is_empty (allowed_caps)) + goto empty_caps; + + if (!gst_caps_is_any (allowed_caps)) { + for (n = 0; n < gst_caps_get_size (allowed_caps); n++) { + GstStructure *s = gst_caps_get_structure (allowed_caps, n); + + if (gst_structure_get_int (s, "mpegversion", &ver) && + (ver == 4 || ver == 2)) { + mpegversion = ver; + break; + } + } + } + gst_caps_unref (allowed_caps); + } + + /* we negotiated caps update current configuration */ + conf = faacEncGetCurrentConfiguration (faac->handle); + conf->mpegVersion = (mpegversion == 4) ? MPEG4 : MPEG2; + conf->aacObjectType = faac->profile; + conf->allowMidside = faac->midside; + conf->useLfe = 0; + conf->useTns = faac->tns; + conf->bitRate = faac->bitrate / faac->channels; + conf->inputFormat = faac->format; + conf->outputFormat = faac->outputformat; + conf->shortctl = faac->shortctl; + + /* check, warn and correct if the max bitrate for the given samplerate is + * exceeded. Maximum of 6144 bit for a channel */ + maxbitrate = + (unsigned int) (6144.0 * (double) faac->samplerate / (double) 1024.0 + + .5); + if (conf->bitRate > maxbitrate) { + GST_ELEMENT_WARNING (faac, RESOURCE, SETTINGS, (NULL), + ("bitrate %lu exceeds maximum allowed bitrate of %u for samplerate %d. " + "Setting bitrate to %u", conf->bitRate, maxbitrate, + faac->samplerate, maxbitrate)); + conf->bitRate = maxbitrate; + } + + /* default 0 to start with, libfaac chooses based on bitrate */ + conf->bandWidth = 0; + + if (!faacEncSetConfiguration (faac->handle, conf)) + goto set_failed; + + /* let's see what really happened, + * note that this may not really match desired rate */ + GST_DEBUG_OBJECT (faac, "average bitrate: %lu kbps", + (conf->bitRate + 500) / 1000 * faac->channels); + GST_DEBUG_OBJECT (faac, "quantization quality: %ld", conf->quantqual); + GST_DEBUG_OBJECT (faac, "bandwidth: %d Hz", conf->bandWidth); + + /* now create a caps for it all */ + srccaps = gst_caps_new_simple ("audio/mpeg", + "mpegversion", G_TYPE_INT, mpegversion, + "channels", G_TYPE_INT, faac->channels, + "rate", G_TYPE_INT, faac->samplerate, + "stream-format", G_TYPE_STRING, (faac->outputformat ? "adts" : "raw"), + NULL); + + if (!faac->outputformat) { + GstBuffer *codec_data; + guint8 *config = NULL; + gulong config_len = 0; + + /* get the config string */ + GST_DEBUG_OBJECT (faac, "retrieving decoder info"); + faacEncGetDecoderSpecificInfo (faac->handle, &config, &config_len); + + /* copy it into a buffer */ + codec_data = gst_buffer_new_and_alloc (config_len); + memcpy (GST_BUFFER_DATA (codec_data), config, config_len); + free (config); + + /* add to caps */ + gst_caps_set_simple (srccaps, + "codec_data", GST_TYPE_BUFFER, codec_data, NULL); + + gst_buffer_unref (codec_data); + } + + GST_DEBUG_OBJECT (faac, "src pad caps: %" GST_PTR_FORMAT, srccaps); + + ret = gst_pad_set_caps (faac->srcpad, srccaps); + gst_caps_unref (srccaps); + + return ret; + + /* ERROR */ +empty_caps: + { + gst_caps_unref (allowed_caps); + return FALSE; + } +set_failed: + { + GST_WARNING_OBJECT (faac, "Faac doesn't support the current configuration"); + return FALSE; + } +} + +static GstFlowReturn +gst_faac_push_buffers (GstFaac * faac, gboolean force) +{ + GstFlowReturn ret = GST_FLOW_OK; + gint av, frame_size, size, ret_size; + GstBuffer *outbuf; + guint64 timestamp, distance; + const guint8 *data; + + /* samples already considers channel count */ + frame_size = faac->samples * faac->bps; + + while (G_LIKELY (ret == GST_FLOW_OK)) { + + av = gst_adapter_available (faac->adapter); + + GST_LOG_OBJECT (faac, "pushing: force: %d, frame_size: %d, av: %d, " + "offset: %d", force, frame_size, av, faac->offset); + + /* idea: + * - start of adapter corresponds with what has already been encoded + * (i.e. really returned by faac) + * - start + offset is what needs to be fed to faac next + * That way we can timestamp the output based + * on adapter provided timestamp (and duration is a fixed frame duration) */ + + /* not enough data for one frame and no flush forcing */ + if (!force && (av < frame_size + faac->offset)) + break; + + if (G_LIKELY (av - faac->offset >= frame_size)) { + GST_LOG_OBJECT (faac, "encoding a frame"); + data = gst_adapter_peek (faac->adapter, faac->offset + frame_size); + data += faac->offset; + size = frame_size; + } else if (av - faac->offset > 0) { + GST_LOG_OBJECT (faac, "encoding leftover"); + data = gst_adapter_peek (faac->adapter, av); + data += faac->offset; + size = av - faac->offset; + } else { + GST_LOG_OBJECT (faac, "emptying encoder"); + data = NULL; + size = 0; + } + + outbuf = gst_buffer_new_and_alloc (faac->bytes); + + if (G_UNLIKELY ((ret_size = faacEncEncode (faac->handle, (gint32 *) data, + size / faac->bps, GST_BUFFER_DATA (outbuf), + faac->bytes)) < 0)) { + gst_buffer_unref (outbuf); + goto encode_failed; + } + + GST_LOG_OBJECT (faac, "encoder return: %d", ret_size); + + /* consumed, advanced view */ + faac->offset += size; + g_assert (faac->offset <= av); + + if (G_UNLIKELY (!ret_size)) { + gst_buffer_unref (outbuf); + if (size) + continue; + else + break; + } + + /* deal with encoder lead-out */ + if (G_UNLIKELY (av == 0 && faac->offset == 0)) { + GST_DEBUG_OBJECT (faac, "encoder returned additional data"); + /* continuous with previous output, ok to have 0 duration */ + timestamp = faac->next_ts; + } else { + /* after some caching, finally some data */ + /* adapter gives time */ + timestamp = gst_adapter_prev_timestamp (faac->adapter, &distance); + } + + if (G_LIKELY ((av = gst_adapter_available (faac->adapter)) >= frame_size)) { + /* must have then come from a complete frame */ + gst_adapter_flush (faac->adapter, frame_size); + faac->offset -= frame_size; + size = frame_size; + } else { + /* otherwise leftover */ + gst_adapter_clear (faac->adapter); + faac->offset = 0; + size = av; + } + + GST_BUFFER_SIZE (outbuf) = ret_size; + if (G_LIKELY (GST_CLOCK_TIME_IS_VALID (timestamp))) + GST_BUFFER_TIMESTAMP (outbuf) = timestamp + + GST_FRAMES_TO_CLOCK_TIME (distance / faac->channels / faac->bps, + faac->samplerate); + GST_BUFFER_DURATION (outbuf) = + GST_FRAMES_TO_CLOCK_TIME (size / faac->channels / faac->bps, + faac->samplerate); + faac->next_ts = + GST_BUFFER_TIMESTAMP (outbuf) + GST_BUFFER_DURATION (outbuf); + + /* perhaps check/set DISCONT based on timestamps ? */ + + GST_LOG_OBJECT (faac, "Pushing out buffer time: %" GST_TIME_FORMAT + " duration: %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (outbuf))); + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (faac->srcpad)); + ret = gst_pad_push (faac->srcpad, outbuf); + } + + /* in case encoder returns less than expected, clear our view as well */ + if (G_UNLIKELY (force)) { +#ifndef GST_DISABLE_GST_DEBUG + if ((av = gst_adapter_available (faac->adapter))) + GST_WARNING_OBJECT (faac, "encoder left %d bytes; discarding", av); +#endif + gst_adapter_clear (faac->adapter); + faac->offset = 0; + } + + return ret; + + /* ERRORS */ +encode_failed: + { + GST_ELEMENT_ERROR (faac, LIBRARY, ENCODE, (NULL), (NULL)); + return GST_FLOW_ERROR; + } +} + +static gboolean +gst_faac_sink_event (GstPad * pad, GstEvent * event) +{ + GstFaac *faac; + gboolean ret; + + faac = GST_FAAC (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (faac, "received %s", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + { + if (faac->handle) { + /* flush first */ + GST_DEBUG_OBJECT (faac, "Pushing out remaining buffers because of EOS"); + gst_faac_push_buffers (faac, TRUE); + } + + ret = gst_pad_event_default (pad, event); + break; + } + default: + ret = gst_pad_event_default (pad, event); + break; + + } + gst_object_unref (faac); + return ret; +} + +static GstFlowReturn +gst_faac_chain (GstPad * pad, GstBuffer * inbuf) +{ + GstFlowReturn result = GST_FLOW_OK; + GstFaac *faac; + + faac = GST_FAAC (gst_pad_get_parent (pad)); + + if (!faac->handle) + goto no_handle; + + GST_LOG_OBJECT (faac, "Got buffer time: %" GST_TIME_FORMAT " duration: %" + GST_TIME_FORMAT, GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (inbuf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (inbuf))); + + gst_adapter_push (faac->adapter, inbuf); + + result = gst_faac_push_buffers (faac, FALSE); + +done: + gst_object_unref (faac); + + return result; + + /* ERRORS */ +no_handle: + { + GST_ELEMENT_ERROR (faac, CORE, NEGOTIATION, (NULL), + ("format wasn't negotiated before chain function")); + gst_buffer_unref (inbuf); + result = GST_FLOW_ERROR; + goto done; + } +} + +static void +gst_faac_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GstFaac *faac = GST_FAAC (object); + + GST_OBJECT_LOCK (faac); + + switch (prop_id) { + case ARG_BITRATE: + faac->bitrate = g_value_get_int (value); + break; + case ARG_PROFILE: + faac->profile = g_value_get_enum (value); + break; + case ARG_TNS: + faac->tns = g_value_get_boolean (value); + break; + case ARG_MIDSIDE: + faac->midside = g_value_get_boolean (value); + break; + case ARG_SHORTCTL: + faac->shortctl = g_value_get_enum (value); + break; + case ARG_OUTPUTFORMAT: + faac->outputformat = g_value_get_enum (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (faac); +} + +static void +gst_faac_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GstFaac *faac = GST_FAAC (object); + + GST_OBJECT_LOCK (faac); + + switch (prop_id) { + case ARG_BITRATE: + g_value_set_int (value, faac->bitrate); + break; + case ARG_PROFILE: + g_value_set_enum (value, faac->profile); + break; + case ARG_TNS: + g_value_set_boolean (value, faac->tns); + break; + case ARG_MIDSIDE: + g_value_set_boolean (value, faac->midside); + break; + case ARG_SHORTCTL: + g_value_set_enum (value, faac->shortctl); + break; + case ARG_OUTPUTFORMAT: + g_value_set_enum (value, faac->outputformat); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (faac); +} + +static GstStateChangeReturn +gst_faac_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstFaac *faac = GST_FAAC (element); + + /* upwards state changes */ + switch (transition) { + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + /* downwards state changes */ + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + { + gst_faac_close_encoder (faac); + gst_faac_reset (faac); + break; + } + default: + break; + } + + return ret; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "faac", GST_RANK_SECONDARY, + GST_TYPE_FAAC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "faac", + "Free AAC Encoder (FAAC)", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/faac/gstfaac.h b/ext/faac/gstfaac.h new file mode 100644 index 0000000..7a282ec --- /dev/null +++ b/ext/faac/gstfaac.h @@ -0,0 +1,83 @@ +/* GStreamer FAAC (Free AAC Encoder) plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_FAAC_H__ +#define __GST_FAAC_H__ + +#include +#include +#include +#include + +G_BEGIN_DECLS + +#define GST_TYPE_FAAC \ + (gst_faac_get_type ()) +#define GST_FAAC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_FAAC, GstFaac)) +#define GST_FAAC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_FAAC, GstFaacClass)) +#define GST_IS_FAAC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_FAAC)) +#define GST_IS_FAAC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FAAC)) + +typedef struct _GstFaac GstFaac; +typedef struct _GstFaacClass GstFaacClass; + +struct _GstFaac { + GstElement element; + + /* pads */ + GstPad *srcpad, *sinkpad; + + /* stream properties */ + gint samplerate, + channels, + format, + bps, + bitrate, + profile, + shortctl, + outputformat; + gboolean tns, + midside; + gulong bytes, + samples; + + /* FAAC object */ + faacEncHandle handle; + + /* cache of the input */ + GstAdapter *adapter; + /* offset of data to be encoded next */ + guint offset; + /* ts for last buffer */ + GstClockTime next_ts; +}; + +struct _GstFaacClass { + GstElementClass parent_class; +}; + +GType gst_faac_get_type (void); + +G_END_DECLS + +#endif /* __GST_FAAC_H__ */ diff --git a/ext/faad/Makefile.am b/ext/faad/Makefile.am new file mode 100644 index 0000000..957ad78 --- /dev/null +++ b/ext/faad/Makefile.am @@ -0,0 +1,26 @@ +plugin_LTLIBRARIES = libgstfaad.la + +libgstfaad_la_SOURCES = gstfaad.c +libgstfaad_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FAAD_CFLAGS) +libgstfaad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(FAAD_LIBS) +libgstfaad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaad_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstfaad.h + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstfaad -:SHARED libgstfaad \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstfaad_la_SOURCES) \ + -:CPPFLAGS $(CPPFLAGS) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstfaad_la_CFLAGS) \ + -:LDFLAGS $(libgstfaad_la_LDFLAGS) \ + $(libgstfaad_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ diff --git a/ext/faad/Makefile.in b/ext/faad/Makefile.in new file mode 100644 index 0000000..5ee49fe --- /dev/null +++ b/ext/faad/Makefile.in @@ -0,0 +1,875 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/faad +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstfaad_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstfaad_la_OBJECTS = libgstfaad_la-gstfaad.lo +libgstfaad_la_OBJECTS = $(am_libgstfaad_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstfaad_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstfaad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstfaad_la_CFLAGS) $(CFLAGS) \ + $(libgstfaad_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstfaad_la_SOURCES) +DIST_SOURCES = $(libgstfaad_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstfaad.la +libgstfaad_la_SOURCES = gstfaad.c +libgstfaad_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(FAAD_CFLAGS) + +libgstfaad_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) $(GST_LIBS) $(FAAD_LIBS) + +libgstfaad_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstfaad_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstfaad.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/faad/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/faad/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstfaad.la: $(libgstfaad_la_OBJECTS) $(libgstfaad_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstfaad_la_LINK) -rpath $(plugindir) $(libgstfaad_la_OBJECTS) $(libgstfaad_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstfaad_la-gstfaad.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstfaad_la-gstfaad.lo: gstfaad.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaad_la_CFLAGS) $(CFLAGS) -MT libgstfaad_la-gstfaad.lo -MD -MP -MF $(DEPDIR)/libgstfaad_la-gstfaad.Tpo -c -o libgstfaad_la-gstfaad.lo `test -f 'gstfaad.c' || echo '$(srcdir)/'`gstfaad.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstfaad_la-gstfaad.Tpo $(DEPDIR)/libgstfaad_la-gstfaad.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstfaad.c' object='libgstfaad_la-gstfaad.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstfaad_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstfaad_la_CFLAGS) $(CFLAGS) -c -o libgstfaad_la-gstfaad.lo `test -f 'gstfaad.c' || echo '$(srcdir)/'`gstfaad.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +Android.mk: Makefile.am $(BUILT_SOURCES) + androgenizer \ + -:PROJECT libgstfaad -:SHARED libgstfaad \ + -:TAGS eng debug \ + -:REL_TOP $(top_srcdir) -:ABS_TOP $(abs_top_srcdir) \ + -:SOURCES $(libgstfaad_la_SOURCES) \ + -:CPPFLAGS $(CPPFLAGS) \ + -:CFLAGS $(DEFS) $(DEFAULT_INCLUDES) $(libgstfaad_la_CFLAGS) \ + -:LDFLAGS $(libgstfaad_la_LDFLAGS) \ + $(libgstfaad_la_LIBADD) \ + -ldl \ + -:PASSTHROUGH LOCAL_ARM_MODE:=arm \ + LOCAL_MODULE_PATH:='$$(TARGET_OUT)/lib/gstreamer-0.10' \ + > $@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/faad/gstfaad.c b/ext/faad/gstfaad.c new file mode 100644 index 0000000..1f9c3d2 --- /dev/null +++ b/ext/faad/gstfaad.c @@ -0,0 +1,1422 @@ +/* GStreamer FAAD (Free AAC Decoder) plugin + * Copyright (C) 2003 Ronald Bultje + * Copyright (C) 2006 Tim-Philipp Müller + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-faad + * @seealso: faac + * + * faad decodes AAC (MPEG-4 part 3) stream. + * + * + * Example launch lines + * |[ + * gst-launch filesrc location=example.mp4 ! qtdemux ! faad ! audioconvert ! audioresample ! autoaudiosink + * ]| Play aac from mp4 file. + * |[ + * gst-launch filesrc location=example.adts ! faad ! audioconvert ! audioresample ! autoaudiosink + * ]| Play standalone aac bitstream. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include + +/* These are the correct types for these functions, as defined in the source, + * with types changed to match glib types, since those are defined for us. + * However, upstream FAAD is distributed with a broken header file that defined + * these wrongly (in a way which was broken on 64 bit systems). + * + * Upstream CVS still has the bug, but has also renamed all the public symbols + * for Better Corporate Branding (or whatever), so we need to take that + * (FAAD_IS_NEAAC) into account as well. + * + * We must call them using these definitions. Most distributions now have the + * corrected header file (they distribute a patch along with the source), + * but not all, hence this Truly Evil Hack. + * + * Note: The prototypes don't need to be defined conditionaly, as the cpp will + * do that for us. + */ +#if FAAD2_MINOR_VERSION < 7 +#ifdef FAAD_IS_NEAAC +#define NeAACDecInit NeAACDecInit_no_definition +#define NeAACDecInit2 NeAACDecInit2_no_definition +#else +#define faacDecInit faacDecInit_no_definition +#define faacDecInit2 faacDecInit2_no_definition +#endif +#endif /* FAAD2_MINOR_VERSION < 7 */ + +#include "gstfaad.h" + +#if FAAD2_MINOR_VERSION < 7 +#ifdef FAAD_IS_NEAAC +#undef NeAACDecInit +#undef NeAACDecInit2 +#else +#undef faacDecInit +#undef faacDecInit2 +#endif + +extern long faacDecInit (faacDecHandle, guint8 *, guint32, guint32 *, guint8 *); +extern gint8 faacDecInit2 (faacDecHandle, guint8 *, guint32, + guint32 *, guint8 *); + +#endif /* FAAD2_MINOR_VERSION < 7 */ + +GST_DEBUG_CATEGORY_STATIC (faad_debug); +#define GST_CAT_DEFAULT faad_debug + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/mpeg, " "mpegversion = (int) { 2, 4 }") + ); + +#define STATIC_INT_CAPS(bpp) \ + "audio/x-raw-int, " \ + "endianness = (int) BYTE_ORDER, " \ + "signed = (bool) TRUE, " \ + "width = (int) " G_STRINGIFY (bpp) ", " \ + "depth = (int) " G_STRINGIFY (bpp) ", " \ + "rate = (int) [ 8000, 96000 ], " \ + "channels = (int) [ 1, 8 ]" + +#if 0 +#define STATIC_FLOAT_CAPS(bpp) \ + "audio/x-raw-float, " \ + "endianness = (int) BYTE_ORDER, " \ + "depth = (int) " G_STRINGIFY (bpp) ", " \ + "rate = (int) [ 8000, 96000 ], " \ + "channels = (int) [ 1, 8 ]" +#endif + +/* + * All except 16-bit integer are disabled until someone fixes FAAD. + * FAAD allocates approximately 8*1024*2 bytes bytes, which is enough + * for 1 frame (1024 samples) of 6 channel (5.1) 16-bit integer 16bpp + * audio, but not for any other. You'll get random segfaults, crashes + * and even valgrind goes crazy. + */ + +#define STATIC_CAPS \ + STATIC_INT_CAPS (16) +#if 0 +#define NOTUSED "; " \ +STATIC_INT_CAPS (24) \ + "; " \ +STATIC_INT_CAPS (32) \ + "; " \ +STATIC_FLOAT_CAPS (32) \ + "; " \ +STATIC_FLOAT_CAPS (64) +#endif + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (STATIC_CAPS) + ); + +static void gst_faad_base_init (GstFaadClass * klass); +static void gst_faad_class_init (GstFaadClass * klass); +static void gst_faad_init (GstFaad * faad); +static void gst_faad_reset (GstFaad * faad); +static void gst_faad_finalize (GObject * object); + +static void clear_queued (GstFaad * faad); + +static gboolean gst_faad_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_faad_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_faad_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_faad_src_query (GstPad * pad, GstQuery * query); +static GstFlowReturn gst_faad_chain (GstPad * pad, GstBuffer * buffer); +static GstStateChangeReturn gst_faad_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_faad_src_convert (GstFaad * faad, GstFormat src_format, + gint64 src_val, GstFormat dest_format, gint64 * dest_val); +static gboolean gst_faad_open_decoder (GstFaad * faad); +static void gst_faad_close_decoder (GstFaad * faad); + +static GstElementClass *parent_class; /* NULL */ + +GType +gst_faad_get_type (void) +{ + static GType gst_faad_type = 0; + + if (!gst_faad_type) { + static const GTypeInfo gst_faad_info = { + sizeof (GstFaadClass), + (GBaseInitFunc) gst_faad_base_init, + NULL, + (GClassInitFunc) gst_faad_class_init, + NULL, + NULL, + sizeof (GstFaad), + 0, + (GInstanceInitFunc) gst_faad_init, + }; + + gst_faad_type = g_type_register_static (GST_TYPE_ELEMENT, + "GstFaad", &gst_faad_info, 0); + } + + return gst_faad_type; +} + +static void +gst_faad_base_init (GstFaadClass * klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + + gst_element_class_set_details_simple (element_class, "AAC audio decoder", + "Codec/Decoder/Audio", + "Free MPEG-2/4 AAC decoder", + "Ronald Bultje "); + + GST_DEBUG_CATEGORY_INIT (faad_debug, "faad", 0, "AAC decoding"); +} + +static void +gst_faad_class_init (GstFaadClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_faad_finalize); + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_faad_change_state); +} + +static void +gst_faad_init (GstFaad * faad) +{ + faad->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_element_add_pad (GST_ELEMENT (faad), faad->sinkpad); + gst_pad_set_event_function (faad->sinkpad, + GST_DEBUG_FUNCPTR (gst_faad_sink_event)); + gst_pad_set_setcaps_function (faad->sinkpad, + GST_DEBUG_FUNCPTR (gst_faad_setcaps)); + gst_pad_set_chain_function (faad->sinkpad, + GST_DEBUG_FUNCPTR (gst_faad_chain)); + + faad->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_use_fixed_caps (faad->srcpad); + gst_pad_set_query_function (faad->srcpad, + GST_DEBUG_FUNCPTR (gst_faad_src_query)); + gst_pad_set_event_function (faad->srcpad, + GST_DEBUG_FUNCPTR (gst_faad_src_event)); + gst_element_add_pad (GST_ELEMENT (faad), faad->srcpad); + + faad->adapter = gst_adapter_new (); + + gst_faad_reset (faad); +} + +static void +gst_faad_reset_stream_state (GstFaad * faad) +{ + faad->sync_flush = 0; + gst_adapter_clear (faad->adapter); + clear_queued (faad); + if (faad->handle) + faacDecPostSeekReset (faad->handle, 0); +} + +static void +gst_faad_reset (GstFaad * faad) +{ + gst_segment_init (&faad->segment, GST_FORMAT_TIME); + faad->samplerate = -1; + faad->channels = -1; + faad->init = FALSE; + faad->packetised = FALSE; + g_free (faad->channel_positions); + faad->channel_positions = NULL; + faad->next_ts = GST_CLOCK_TIME_NONE; + faad->prev_ts = 0; + faad->bytes_in = 0; + faad->sum_dur_out = 0; + faad->error_count = 0; + faad->last_header = 0; + + gst_faad_reset_stream_state (faad); +} + + +static void +gst_faad_finalize (GObject * object) +{ + GstFaad *faad = GST_FAAD (object); + + g_object_unref (faad->adapter); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_faad_send_tags (GstFaad * faad) +{ + GstTagList *tags; + + tags = gst_tag_list_new (); + + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_AUDIO_CODEC, "MPEG-4 AAC audio", NULL); + + gst_element_found_tags (GST_ELEMENT (faad), tags); +} + +static gint +aac_rate_idx (gint rate) +{ + if (92017 <= rate) + return 0; + else if (75132 <= rate) + return 1; + else if (55426 <= rate) + return 2; + else if (46009 <= rate) + return 3; + else if (37566 <= rate) + return 4; + else if (27713 <= rate) + return 5; + else if (23004 <= rate) + return 6; + else if (18783 <= rate) + return 7; + else if (13856 <= rate) + return 8; + else if (11502 <= rate) + return 9; + else if (9391 <= rate) + return 10; + else + return 11; +} + +static gboolean +gst_faad_setcaps (GstPad * pad, GstCaps * caps) +{ + GstFaad *faad = GST_FAAD (gst_pad_get_parent (pad)); + GstStructure *str = gst_caps_get_structure (caps, 0); + GstBuffer *buf; + const GValue *value; + + /* clean up current decoder, rather than trying to reconfigure */ + gst_faad_close_decoder (faad); + + /* Assume raw stream */ + faad->packetised = FALSE; + + if ((value = gst_structure_get_value (str, "codec_data"))) { +#if FAAD2_MINOR_VERSION >= 7 + unsigned long samplerate; +#else + guint32 samplerate; +#endif + guint8 channels; + guint8 *cdata; + guint csize; + + /* We have codec data, means packetised stream */ + faad->packetised = TRUE; + buf = gst_value_get_buffer (value); + + g_return_val_if_fail (buf != NULL, FALSE); + + cdata = GST_BUFFER_DATA (buf); + csize = GST_BUFFER_SIZE (buf); + + if (csize < 2) + goto wrong_length; + + GST_DEBUG_OBJECT (faad, + "codec_data: object_type=%d, sample_rate=%d, channels=%d", + ((cdata[0] & 0xf8) >> 3), + (((cdata[0] & 0x07) << 1) | ((cdata[1] & 0x80) >> 7)), + ((cdata[1] & 0x78) >> 3)); + + if (!gst_faad_open_decoder (faad)) + goto open_failed; + /* someone forgot that char can be unsigned when writing the API */ + if ((gint8) faacDecInit2 (faad->handle, cdata, csize, &samplerate, + &channels) < 0) + goto init_failed; + + if (channels != ((cdata[1] & 0x78) >> 3)) { + /* https://bugs.launchpad.net/ubuntu/+source/faad2/+bug/290259 */ + GST_WARNING_OBJECT (faad, + "buggy faad version, wrong nr of channels %d instead of %d", channels, + ((cdata[1] & 0x78) >> 3)); + } + + GST_DEBUG_OBJECT (faad, "codec_data init: channels=%u, rate=%u", channels, + (guint32) samplerate); + + /* not updating these here, so they are updated in the + * chain function, and new caps are created etc. */ + faad->samplerate = 0; + faad->channels = 0; + + faad->init = TRUE; + gst_faad_send_tags (faad); + + gst_adapter_clear (faad->adapter); + } else if ((value = gst_structure_get_value (str, "framed")) && + g_value_get_boolean (value) == TRUE) { + faad->packetised = TRUE; + faad->init = FALSE; + GST_DEBUG_OBJECT (faad, "we have packetized audio"); + } else { + faad->init = FALSE; + } + + faad->fake_codec_data[0] = 0; + faad->fake_codec_data[1] = 0; + + if (faad->packetised && !faad->init) { + gint rate, channels; + + if (gst_structure_get_int (str, "rate", &rate) && + gst_structure_get_int (str, "channels", &channels)) { + gint rate_idx, profile; + + profile = 3; /* 0=MAIN, 1=LC, 2=SSR, 3=LTP */ + rate_idx = aac_rate_idx (rate); + + faad->fake_codec_data[0] = ((profile + 1) << 3) | ((rate_idx & 0xE) >> 1); + faad->fake_codec_data[1] = ((rate_idx & 0x1) << 7) | (channels << 3); + GST_LOG_OBJECT (faad, "created fake codec data (%u,%u): 0x%x 0x%x", rate, + channels, (int) faad->fake_codec_data[0], + (int) faad->fake_codec_data[1]); + } + } + + gst_object_unref (faad); + return TRUE; + + /* ERRORS */ +wrong_length: + { + GST_DEBUG_OBJECT (faad, "codec_data less than 2 bytes long"); + gst_object_unref (faad); + return FALSE; + } +open_failed: + { + GST_DEBUG_OBJECT (faad, "failed to create decoder"); + gst_object_unref (faad); + return FALSE; + } +init_failed: + { + GST_DEBUG_OBJECT (faad, "faacDecInit2() failed"); + gst_object_unref (faad); + return FALSE; + } +} + +static GstAudioChannelPosition * +gst_faad_chanpos_to_gst (GstFaad * faad, guchar * fpos, guint num, + gboolean * channel_map_failed) +{ + GstAudioChannelPosition *pos; + guint n; + gboolean unknown_channel = FALSE; + + *channel_map_failed = FALSE; + + /* special handling for the common cases for mono and stereo */ + if (num == 1 && fpos[0] == FRONT_CHANNEL_CENTER) { + GST_DEBUG_OBJECT (faad, "mono common case; won't set channel positions"); + return NULL; + } else if (num == 2 && fpos[0] == FRONT_CHANNEL_LEFT + && fpos[1] == FRONT_CHANNEL_RIGHT) { + GST_DEBUG_OBJECT (faad, "stereo common case; won't set channel positions"); + return NULL; + } + + pos = g_new (GstAudioChannelPosition, num); + for (n = 0; n < num; n++) { + GST_DEBUG_OBJECT (faad, "faad channel %d as %d", n, fpos[n]); + switch (fpos[n]) { + case FRONT_CHANNEL_LEFT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + break; + case FRONT_CHANNEL_RIGHT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + break; + case FRONT_CHANNEL_CENTER: + /* argh, mono = center */ + if (num == 1) + pos[n] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO; + else + pos[n] = GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; + break; + case SIDE_CHANNEL_LEFT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT; + break; + case SIDE_CHANNEL_RIGHT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT; + break; + case BACK_CHANNEL_LEFT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; + break; + case BACK_CHANNEL_RIGHT: + pos[n] = GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; + break; + case BACK_CHANNEL_CENTER: + pos[n] = GST_AUDIO_CHANNEL_POSITION_REAR_CENTER; + break; + case LFE_CHANNEL: + pos[n] = GST_AUDIO_CHANNEL_POSITION_LFE; + break; + default: + GST_DEBUG_OBJECT (faad, "unknown channel %d at %d", fpos[n], n); + unknown_channel = TRUE; + break; + } + } + if (unknown_channel) { + g_free (pos); + pos = NULL; + switch (num) { + case 1:{ + GST_DEBUG_OBJECT (faad, + "FAAD reports unknown 1 channel mapping. Forcing to mono"); + break; + } + case 2:{ + GST_DEBUG_OBJECT (faad, + "FAAD reports unknown 2 channel mapping. Forcing to stereo"); + break; + } + default:{ + GST_WARNING_OBJECT (faad, + "Unsupported FAAD channel position 0x%x encountered", fpos[n]); + *channel_map_failed = TRUE; + break; + } + } + } + + return pos; +} + +static void +clear_queued (GstFaad * faad) +{ + g_list_foreach (faad->queued, (GFunc) gst_mini_object_unref, NULL); + g_list_free (faad->queued); + faad->queued = NULL; + g_list_foreach (faad->gather, (GFunc) gst_mini_object_unref, NULL); + g_list_free (faad->gather); + faad->gather = NULL; + g_list_foreach (faad->decode, (GFunc) gst_mini_object_unref, NULL); + g_list_free (faad->decode); + faad->decode = NULL; +} + +static GstFlowReturn +flush_queued (GstFaad * faad) +{ + GstFlowReturn ret = GST_FLOW_OK; + + while (faad->queued) { + GstBuffer *buf = GST_BUFFER_CAST (faad->queued->data); + + GST_LOG_OBJECT (faad, "pushing buffer %p, timestamp %" + GST_TIME_FORMAT ", duration %" GST_TIME_FORMAT, buf, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buf))); + + /* iterate ouput queue an push downstream */ + ret = gst_pad_push (faad->srcpad, buf); + + faad->queued = g_list_delete_link (faad->queued, faad->queued); + } + return ret; +} + +static GstFlowReturn +gst_faad_drain (GstFaad * faad) +{ + GstFlowReturn ret = GST_FLOW_OK; + + GST_DEBUG_OBJECT (faad, "draining"); + + if (faad->segment.rate < 0.0) { + /* also decode tail = head of previous fragment to fill this one */ + while (faad->decode) { + GstBuffer *buf = GST_BUFFER_CAST (faad->decode->data); + + GST_DEBUG_OBJECT (faad, "processing delayed decode buffer"); + gst_faad_chain (faad->sinkpad, buf); + faad->decode = g_list_delete_link (faad->decode, faad->decode); + } + /* if we have some queued frames for reverse playback, flush + * them now */ + ret = flush_queued (faad); + /* move non-decoded leading buffers gathered in previous run + * to decode queue for this run */ + faad->decode = g_list_reverse (faad->gather); + faad->gather = NULL; + } else { + /* squeeze any possible remaining frames that are pending sync */ + gst_faad_chain (faad->sinkpad, NULL); + } + return ret; +} + +static gboolean +gst_faad_do_raw_seek (GstFaad * faad, GstEvent * event) +{ + GstSeekFlags flags; + GstSeekType start_type, end_type; + GstFormat format; + gdouble rate; + gint64 start, start_time; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, + &start_time, &end_type, NULL); + + if (rate != 1.0 || + format != GST_FORMAT_TIME || + start_type != GST_SEEK_TYPE_SET || end_type != GST_SEEK_TYPE_NONE) { + return FALSE; + } + + if (!gst_faad_src_convert (faad, GST_FORMAT_TIME, start_time, + GST_FORMAT_BYTES, &start)) { + return FALSE; + } + + event = gst_event_new_seek (1.0, GST_FORMAT_BYTES, flags, + GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, -1); + + GST_DEBUG_OBJECT (faad, "seeking to %" GST_TIME_FORMAT " at byte offset %" + G_GINT64_FORMAT, GST_TIME_ARGS (start_time), start); + + return gst_pad_push_event (faad->sinkpad, event); +} + +static gboolean +gst_faad_src_event (GstPad * pad, GstEvent * event) +{ + GstFaad *faad; + gboolean res; + + faad = GST_FAAD (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (faad, "Handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK:{ + /* try upstream first, there might be a demuxer */ + gst_event_ref (event); + if (!(res = gst_pad_push_event (faad->sinkpad, event))) { + res = gst_faad_do_raw_seek (faad, event); + } + gst_event_unref (event); + break; + } + default: + res = gst_pad_push_event (faad->sinkpad, event); + break; + } + + gst_object_unref (faad); + return res; +} + +static gboolean +gst_faad_sink_event (GstPad * pad, GstEvent * event) +{ + GstFaad *faad; + gboolean res = TRUE; + + faad = GST_FAAD (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (faad, "Handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_STOP: + gst_faad_reset_stream_state (faad); + res = gst_pad_push_event (faad->srcpad, event); + break; + case GST_EVENT_EOS: + gst_faad_drain (faad); + gst_faad_reset_stream_state (faad); + res = gst_pad_push_event (faad->srcpad, event); + break; + case GST_EVENT_NEWSEGMENT: + { + GstFormat fmt; + gboolean is_update; + gint64 start, end, base; + gdouble rate; + + gst_event_parse_new_segment (event, &is_update, &rate, &fmt, &start, + &end, &base); + + /* drain queued buffers before we activate the new segment */ + gst_faad_drain (faad); + + if (fmt == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (faad, + "Got NEWSEGMENT event in GST_FORMAT_TIME, passing on (%" + GST_TIME_FORMAT " - %" GST_TIME_FORMAT ")", GST_TIME_ARGS (start), + GST_TIME_ARGS (end)); + gst_segment_set_newsegment (&faad->segment, is_update, rate, fmt, start, + end, base); + } else if (fmt == GST_FORMAT_BYTES) { + gint64 new_start = 0; + gint64 new_end = -1; + + GST_DEBUG_OBJECT (faad, "Got NEWSEGMENT event in GST_FORMAT_BYTES (%" + G_GUINT64_FORMAT " - %" G_GUINT64_FORMAT ")", start, end); + + if (gst_faad_src_convert (faad, GST_FORMAT_BYTES, start, + GST_FORMAT_TIME, &new_start)) { + if (end != -1) { + gst_faad_src_convert (faad, GST_FORMAT_BYTES, end, + GST_FORMAT_TIME, &new_end); + } + } else { + GST_DEBUG_OBJECT (faad, + "no average bitrate yet, sending newsegment with start at 0"); + } + gst_event_unref (event); + + event = gst_event_new_new_segment (is_update, rate, + GST_FORMAT_TIME, new_start, new_end, new_start); + + gst_segment_set_newsegment (&faad->segment, is_update, rate, + GST_FORMAT_TIME, new_start, new_end, new_start); + + GST_DEBUG_OBJECT (faad, + "Sending new NEWSEGMENT event, time %" GST_TIME_FORMAT + " - %" GST_TIME_FORMAT, GST_TIME_ARGS (new_start), + GST_TIME_ARGS (new_end)); + + faad->next_ts = GST_CLOCK_TIME_NONE; + faad->prev_ts = new_start; + } + + res = gst_pad_push_event (faad->srcpad, event); + break; + } + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (faad); + return res; +} + +static gboolean +gst_faad_src_convert (GstFaad * faad, GstFormat src_format, gint64 src_val, + GstFormat dest_format, gint64 * dest_val) +{ + guint64 bytes_in, time_out, val; + + if (src_format == dest_format) { + if (dest_val) + *dest_val = src_val; + return TRUE; + } + + GST_OBJECT_LOCK (faad); + bytes_in = faad->bytes_in; + time_out = faad->sum_dur_out; + GST_OBJECT_UNLOCK (faad); + + if (bytes_in == 0 || time_out == 0) + return FALSE; + + /* convert based on the average bitrate so far */ + if (src_format == GST_FORMAT_BYTES && dest_format == GST_FORMAT_TIME) { + val = gst_util_uint64_scale (src_val, time_out, bytes_in); + } else if (src_format == GST_FORMAT_TIME && dest_format == GST_FORMAT_BYTES) { + val = gst_util_uint64_scale (src_val, bytes_in, time_out); + } else { + return FALSE; + } + + if (dest_val) + *dest_val = (gint64) val; + + return TRUE; +} + +static gboolean +gst_faad_src_query (GstPad * pad, GstQuery * query) +{ + gboolean res = FALSE; + GstFaad *faad; + GstPad *peer = NULL; + + faad = GST_FAAD (gst_pad_get_parent (pad)); + + GST_LOG_OBJECT (faad, "processing %s query", GST_QUERY_TYPE_NAME (query)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_DURATION:{ + GstFormat format; + gint64 len_bytes, duration; + + /* try upstream first, in case there's a demuxer */ + if ((res = gst_pad_query_default (pad, query))) + break; + + gst_query_parse_duration (query, &format, NULL); + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (faad, "query failed: can't handle format %s", + gst_format_get_name (format)); + break; + } + + peer = gst_pad_get_peer (faad->sinkpad); + if (peer == NULL) + break; + + format = GST_FORMAT_BYTES; + if (!gst_pad_query_duration (peer, &format, &len_bytes)) { + GST_DEBUG_OBJECT (faad, "query failed: failed to get upstream length"); + break; + } + + res = gst_faad_src_convert (faad, GST_FORMAT_BYTES, len_bytes, + GST_FORMAT_TIME, &duration); + + if (res) { + gst_query_set_duration (query, GST_FORMAT_TIME, duration); + + GST_LOG_OBJECT (faad, "duration estimate: %" GST_TIME_FORMAT, + GST_TIME_ARGS (duration)); + } + break; + } + case GST_QUERY_POSITION:{ + GstFormat format; + gint64 pos_bytes, pos; + + /* try upstream first, in case there's a demuxer */ + if ((res = gst_pad_query_default (pad, query))) + break; + + gst_query_parse_position (query, &format, NULL); + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (faad, "query failed: can't handle format %s", + gst_format_get_name (format)); + break; + } + + peer = gst_pad_get_peer (faad->sinkpad); + if (peer == NULL) + break; + + format = GST_FORMAT_BYTES; + if (!gst_pad_query_position (peer, &format, &pos_bytes)) { + GST_OBJECT_LOCK (faad); + pos = faad->next_ts; + GST_OBJECT_UNLOCK (faad); + res = TRUE; + } else { + res = gst_faad_src_convert (faad, GST_FORMAT_BYTES, pos_bytes, + GST_FORMAT_TIME, &pos); + } + + if (res) { + gst_query_set_position (query, GST_FORMAT_TIME, pos); + } + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + + if (peer) + gst_object_unref (peer); + + gst_object_unref (faad); + return res; +} + + +static gboolean +gst_faad_update_caps (GstFaad * faad, faacDecFrameInfo * info) +{ + GstAudioChannelPosition *pos; + gboolean ret; + gboolean channel_map_failed; + GstCaps *caps; + gboolean fmt_change = FALSE; + + /* see if we need to renegotiate */ + if (info->samplerate != faad->samplerate || + info->channels != faad->channels || !faad->channel_positions) { + fmt_change = TRUE; + } else { + gint i; + + for (i = 0; i < info->channels; i++) { + if (info->channel_position[i] != faad->channel_positions[i]) + fmt_change = TRUE; + } + } + + if (G_LIKELY (!fmt_change)) + return TRUE; + + /* store new negotiation information */ + faad->samplerate = info->samplerate; + faad->channels = info->channels; + g_free (faad->channel_positions); + faad->channel_positions = g_memdup (info->channel_position, faad->channels); + + caps = gst_caps_new_simple ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "signed", G_TYPE_BOOLEAN, TRUE, + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, + "rate", G_TYPE_INT, faad->samplerate, + "channels", G_TYPE_INT, faad->channels, NULL); + + faad->bps = 16 / 8; + + channel_map_failed = FALSE; + pos = + gst_faad_chanpos_to_gst (faad, faad->channel_positions, faad->channels, + &channel_map_failed); + if (channel_map_failed) { + GST_DEBUG_OBJECT (faad, "Could not map channel positions"); + gst_caps_unref (caps); + return FALSE; + } + if (pos) { + gst_audio_set_channel_positions (gst_caps_get_structure (caps, 0), pos); + g_free (pos); + } + + GST_DEBUG_OBJECT (faad, "New output caps: %" GST_PTR_FORMAT, caps); + + ret = gst_pad_set_caps (faad->srcpad, caps); + gst_caps_unref (caps); + + return ret; +} + +/* + * Find syncpoint in ADTS/ADIF stream. Doesn't work for raw, + * packetized streams. Be careful when calling. + * Returns FALSE on no-sync, fills offset/length if one/two + * syncpoints are found, only returns TRUE when it finds two + * subsequent syncpoints (similar to mp3 typefinding in + * gst/typefind/) for ADTS because 12 bits isn't very reliable. + */ +static gboolean +gst_faad_sync (GstFaad * faad, guint8 * data, guint size, gboolean next, + guint * off) +{ + guint n = 0; + gint snc; + gboolean ret = FALSE; + + GST_LOG_OBJECT (faad, "Finding syncpoint"); + + /* check for too small a buffer */ + if (size < 3) + goto exit; + + for (n = 0; n < size - 3; n++) { + snc = GST_READ_UINT16_BE (&data[n]); + if ((snc & 0xfff6) == 0xfff0) { + /* we have an ADTS syncpoint. Parse length and find + * next syncpoint. */ + guint len; + + GST_LOG_OBJECT (faad, + "Found one ADTS syncpoint at offset 0x%x, tracing next...", n); + + if (size - n < 5) { + GST_LOG_OBJECT (faad, "Not enough data to parse ADTS header"); + break; + } + + len = ((data[n + 3] & 0x03) << 11) | + (data[n + 4] << 3) | ((data[n + 5] & 0xe0) >> 5); + if (n + len + 2 >= size) { + GST_LOG_OBJECT (faad, "Frame size %d, next frame is not within reach", + len); + if (next) { + break; + } else if (n + len <= size) { + GST_LOG_OBJECT (faad, "but have complete frame and no next frame; " + "accept ADTS syncpoint at offset 0x%x (framelen %u)", n, len); + ret = TRUE; + break; + } + } + + snc = GST_READ_UINT16_BE (&data[n + len]); + if ((snc & 0xfff6) == 0xfff0) { + GST_LOG_OBJECT (faad, + "Found ADTS syncpoint at offset 0x%x (framelen %u)", n, len); + ret = TRUE; + break; + } + + GST_LOG_OBJECT (faad, "No next frame found... (should be at 0x%x)", + n + len); + } else if (!memcmp (&data[n], "ADIF", 4)) { + /* we have an ADIF syncpoint. 4 bytes is enough. */ + GST_LOG_OBJECT (faad, "Found ADIF syncpoint at offset 0x%x", n); + ret = TRUE; + break; + } + } + +exit: + *off = n; + + if (!ret) + GST_LOG_OBJECT (faad, "Found no syncpoint"); + + return ret; +} + +static gboolean +looks_like_valid_header (guint8 * input_data, guint input_size) +{ + if (input_size < 4) + return FALSE; + + if (input_data[0] == 'A' + && input_data[1] == 'D' && input_data[2] == 'I' && input_data[3] == 'F') + /* ADIF type header */ + return TRUE; + + if (input_data[0] == 0xff && (input_data[1] >> 4) == 0xf) + /* ADTS type header */ + return TRUE; + + return FALSE; +} + +#define FAAD_MAX_ERROR 10 +#define FAAD_MAX_SYNC 10 * 8 * 1024 + +static GstFlowReturn +gst_faad_chain (GstPad * pad, GstBuffer * buffer) +{ + GstFlowReturn ret = GST_FLOW_OK; + guint input_size; + guint available; + guchar *input_data; + GstFaad *faad; + GstBuffer *outbuf; + faacDecFrameInfo info; + void *out; + gboolean run_loop = TRUE; + guint sync_off; + GstClockTime ts; + gboolean next; + + faad = GST_FAAD (gst_pad_get_parent (pad)); + + if (G_LIKELY (buffer)) { + GST_LOG_OBJECT (faad, "buffer of size %d with ts: %" GST_TIME_FORMAT + ", duration %" GST_TIME_FORMAT, GST_BUFFER_SIZE (buffer), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buffer)), + GST_TIME_ARGS (GST_BUFFER_DURATION (buffer))); + + if (GST_BUFFER_IS_DISCONT (buffer)) { + gst_faad_drain (faad); + gst_faad_reset_stream_state (faad); + faad->discont = TRUE; + } + + gst_adapter_push (faad->adapter, buffer); + buffer = NULL; + next = TRUE; + } else { + next = FALSE; + } + + available = gst_adapter_available (faad->adapter); + input_size = available; + if (G_UNLIKELY (!available)) + goto out; + + ts = gst_adapter_prev_timestamp (faad->adapter, NULL); + if (GST_CLOCK_TIME_IS_VALID (ts) && (ts != faad->prev_ts)) { + faad->prev_ts = ts; + } else { + /* nothing new */ + ts = GST_CLOCK_TIME_NONE; + } + + if (!GST_CLOCK_TIME_IS_VALID (faad->next_ts)) + faad->next_ts = faad->prev_ts; + + input_data = (guchar *) gst_adapter_peek (faad->adapter, available); + + if (!faad->packetised) { + if (!gst_faad_sync (faad, input_data, input_size, next, &sync_off)) { + faad->sync_flush += sync_off; + input_size -= sync_off; + if (faad->sync_flush > FAAD_MAX_SYNC) + goto parse_failed; + else + goto out; + } else { + faad->sync_flush = 0; + input_data += sync_off; + input_size -= sync_off; + } + } + +init: + /* init if not already done during capsnego */ + if (!faad->init) { +#if FAAD2_MINOR_VERSION >= 7 + unsigned long rate; +#else + guint32 rate; +#endif + guint8 ch; + + GST_DEBUG_OBJECT (faad, "initialising ..."); + if (!gst_faad_open_decoder (faad)) + goto open_failed; + /* We check if the first data looks like it might plausibly contain + * appropriate initialisation info... if not, we use our fake_codec_data + */ + if (looks_like_valid_header (input_data, input_size) || !faad->packetised) { + if (faacDecInit (faad->handle, input_data, input_size, &rate, &ch) < 0) + goto init_failed; + + GST_DEBUG_OBJECT (faad, "faacDecInit() ok: rate=%u,channels=%u", + (guint32) rate, ch); + } else { + if ((gint8) faacDecInit2 (faad->handle, faad->fake_codec_data, 2, + &rate, &ch) < 0) { + goto init2_failed; + } + GST_DEBUG_OBJECT (faad, "faacDecInit2() ok: rate=%u,channels=%u", + (guint32) rate, ch); + } + + faad->init = TRUE; + gst_faad_send_tags (faad); + + /* make sure we create new caps below */ + faad->samplerate = 0; + faad->channels = 0; + } + + /* decode cycle */ + info.bytesconsumed = input_size; + info.error = 0; + + while ((input_size > 0) && run_loop) { + + if (faad->packetised) { + /* Only one packet per buffer, no matter how much is really consumed */ + run_loop = FALSE; + } else { + if (input_size < FAAD_MIN_STREAMSIZE || info.bytesconsumed <= 0) { + break; + } + /* faad only really parses ADTS header at Init time, not when decoding, + * so monitor for changes and kick faad when needed */ + if (GST_READ_UINT32_BE (input_data) >> 4 != faad->last_header >> 4) { + GST_DEBUG_OBJECT (faad, "ADTS header changed, forcing Init"); + faad->last_header = GST_READ_UINT32_BE (input_data); + /* kick hard */ + gst_faad_close_decoder (faad); + faad->init = FALSE; + goto init; + } + } + + out = faacDecDecode (faad->handle, &info, input_data, input_size); + + if (info.error > 0) { + /* mark discont for the next buffer */ + faad->discont = TRUE; + /* flush a bit, arranges for resync next time */ + input_size--; + faad->error_count++; + /* do not bail out at once, but know when to stop */ + if (faad->error_count > FAAD_MAX_ERROR) + goto decode_failed; + else { + GST_WARNING_OBJECT (faad, "decoding error: %s", + faacDecGetErrorMessage (info.error)); + goto out; + } + } + + /* ok again */ + faad->error_count = 0; + + GST_LOG_OBJECT (faad, "%d bytes consumed, %d samples decoded", + (guint) info.bytesconsumed, (guint) info.samples); + + if (info.bytesconsumed > input_size) + info.bytesconsumed = input_size; + + input_size -= info.bytesconsumed; + input_data += info.bytesconsumed; + + if (out && info.samples > 0) { + if (!gst_faad_update_caps (faad, &info)) + goto negotiation_failed; + + /* C's lovely propensity for int overflow.. */ + if (info.samples > G_MAXUINT / faad->bps) + goto sample_overflow; + + /* play decoded data */ + if (info.samples > 0) { + guint bufsize = info.samples * faad->bps; + guint num_samples = info.samples / faad->channels; + + /* note: info.samples is total samples, not per channel */ + ret = + gst_pad_alloc_buffer_and_set_caps (faad->srcpad, 0, bufsize, + GST_PAD_CAPS (faad->srcpad), &outbuf); + if (ret != GST_FLOW_OK) + goto out; + + memcpy (GST_BUFFER_DATA (outbuf), out, GST_BUFFER_SIZE (outbuf)); + GST_BUFFER_OFFSET (outbuf) = + GST_CLOCK_TIME_TO_FRAMES (faad->next_ts, faad->samplerate); + GST_BUFFER_TIMESTAMP (outbuf) = faad->next_ts; + GST_BUFFER_DURATION (outbuf) = + GST_FRAMES_TO_CLOCK_TIME (num_samples, faad->samplerate); + + GST_OBJECT_LOCK (faad); + faad->next_ts += GST_BUFFER_DURATION (outbuf); + faad->sum_dur_out += GST_BUFFER_DURATION (outbuf); + faad->bytes_in += info.bytesconsumed; + GST_OBJECT_UNLOCK (faad); + + if ((outbuf = gst_audio_buffer_clip (outbuf, &faad->segment, + faad->samplerate, faad->bps * faad->channels))) { + GST_LOG_OBJECT (faad, + "pushing buffer, off=%" G_GUINT64_FORMAT ", ts=%" GST_TIME_FORMAT, + GST_BUFFER_OFFSET (outbuf), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf))); + + if (faad->discont) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + faad->discont = FALSE; + } + + if (faad->segment.rate > 0.0) { + ret = gst_pad_push (faad->srcpad, outbuf); + } else { + /* reverse playback, queue frame till later when we get a discont. */ + GST_LOG_OBJECT (faad, "queued frame"); + faad->queued = g_list_prepend (faad->queued, outbuf); + ret = GST_FLOW_OK; + } + if (ret != GST_FLOW_OK) + goto out; + } + } + } else { + if (faad->packetised && faad->segment.rate < 0.0) { + /* leading non-decoded frames used as tail + * for next preceding fragment */ + outbuf = gst_adapter_take_buffer (faad->adapter, available); + available = 0; + outbuf = gst_buffer_make_metadata_writable (outbuf); + GST_BUFFER_FLAG_UNSET (outbuf, GST_BUFFER_FLAG_DISCONT); + faad->gather = g_list_prepend (faad->gather, outbuf); + } + } + + /* adjust to incoming new timestamp, if any, after decoder delay */ + if (GST_CLOCK_TIME_IS_VALID (ts)) { + faad->next_ts = ts; + ts = GST_CLOCK_TIME_NONE; + } + } + +out: + /* in raw case: (pretend) all consumed */ + if (faad->packetised) + input_size = 0; + gst_adapter_flush (faad->adapter, available - input_size); + + gst_object_unref (faad); + + return ret; + +/* ERRORS */ +open_failed: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("Failed to open decoder")); + ret = GST_FLOW_ERROR; + goto out; + } +init_failed: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("Failed to init decoder from stream")); + ret = GST_FLOW_ERROR; + goto out; + } +init2_failed: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("%s() failed", (faad->handle) ? "faacDecInit2" : "faacDecOpen")); + ret = GST_FLOW_ERROR; + goto out; + } +decode_failed: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("decoding error: %s", faacDecGetErrorMessage (info.error))); + ret = GST_FLOW_ERROR; + goto out; + } +negotiation_failed: + { + GST_ELEMENT_ERROR (faad, CORE, NEGOTIATION, (NULL), + ("Setting caps on source pad failed")); + ret = GST_FLOW_ERROR; + goto out; + } +sample_overflow: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("Output buffer too large")); + ret = GST_FLOW_ERROR; + goto out; + } +parse_failed: + { + GST_ELEMENT_ERROR (faad, STREAM, DECODE, (NULL), + ("failed to parse non-packetized stream")); + ret = GST_FLOW_ERROR; + goto out; + } +} + +static gboolean +gst_faad_open_decoder (GstFaad * faad) +{ + faacDecConfiguration *conf; + + faad->handle = faacDecOpen (); + + if (faad->handle == NULL) { + GST_WARNING_OBJECT (faad, "faacDecOpen() failed"); + return FALSE; + } + + conf = faacDecGetCurrentConfiguration (faad->handle); + conf->defObjectType = LC; + conf->dontUpSampleImplicitSBR = 1; + conf->outputFormat = FAAD_FMT_16BIT; + + if (faacDecSetConfiguration (faad->handle, conf) == 0) { + GST_WARNING_OBJECT (faad, "faacDecSetConfiguration() failed"); + return FALSE; + } + + return TRUE; +} + +static void +gst_faad_close_decoder (GstFaad * faad) +{ + if (faad->handle) { + faacDecClose (faad->handle); + faad->handle = NULL; + } +} + +static GstStateChangeReturn +gst_faad_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstFaad *faad = GST_FAAD (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + default: + break; + } + + if (GST_ELEMENT_CLASS (parent_class)->change_state) + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_faad_reset (faad); + gst_faad_close_decoder (faad); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + break; + default: + break; + } + + return ret; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "faad", GST_RANK_PRIMARY, GST_TYPE_FAAD); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "faad", + "Free AAC Decoder (FAAD)", + plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/faad/gstfaad.h b/ext/faad/gstfaad.h new file mode 100644 index 0000000..4552250 --- /dev/null +++ b/ext/faad/gstfaad.h @@ -0,0 +1,92 @@ +/* GStreamer FAAD (Free AAC Decoder) plugin + * Copyright (C) 2003 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_FAAD_H__ +#define __GST_FAAD_H__ + +#include +#include +#ifdef FAAD_IS_NEAAC +#include +#else +#include +#endif + +G_BEGIN_DECLS + +#define GST_TYPE_FAAD \ + (gst_faad_get_type ()) +#define GST_FAAD(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_FAAD, GstFaad)) +#define GST_FAAD_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_FAAD, GstFaadClass)) +#define GST_IS_FAAD(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_FAAD)) +#define GST_IS_FAAD_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_FAAD)) + +typedef struct _GstFaad { + GstElement element; + + GstPad *srcpad; + GstPad *sinkpad; + + guint samplerate; /* sample rate of the last MPEG frame */ + guint channels; /* number of channels of the last frame */ + guint bps; /* bytes per sample */ + guchar *channel_positions; + + guint8 fake_codec_data[2]; + guint32 last_header; + + GstAdapter *adapter; + + /* FAAD object */ + faacDecHandle handle; + gboolean init; + + gboolean packetised; /* We must differentiate between raw and packetised streams */ + + gint64 prev_ts; /* timestamp of previous buffer */ + gint64 next_ts; /* timestamp of next buffer */ + guint64 bytes_in; /* bytes received */ + guint64 sum_dur_out; /* sum of durations of decoded buffers we sent out */ + gint error_count; + gboolean discont; + gint sync_flush; + + /* segment handling */ + GstSegment segment; + + /* list of raw output buffers for reverse playback */ + GList *queued; + /* gather/decode queues for reverse playback */ + GList *gather; + GList *decode; +} GstFaad; + +typedef struct _GstFaadClass { + GstElementClass parent_class; +} GstFaadClass; + +GType gst_faad_get_type (void); + +G_END_DECLS + +#endif /* __GST_FAAD_H__ */ diff --git a/ext/flite/Makefile.am b/ext/flite/Makefile.am new file mode 100644 index 0000000..84d87de --- /dev/null +++ b/ext/flite/Makefile.am @@ -0,0 +1,17 @@ +plugin_LTLIBRARIES = libgstflite.la + +libgstflite_la_SOURCES = gstflite.c gstflitetestsrc.c +libgstflite_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(FLITE_CFLAGS) +libgstflite_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(FLITE_LIBS) +libgstflite_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstflite_la_LIBTOOLFLAGS = --tag=disable-static + + diff --git a/ext/flite/Makefile.in b/ext/flite/Makefile.in new file mode 100644 index 0000000..782151f --- /dev/null +++ b/ext/flite/Makefile.in @@ -0,0 +1,872 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/flite +DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstflite_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstflite_la_OBJECTS = libgstflite_la-gstflite.lo \ + libgstflite_la-gstflitetestsrc.lo +libgstflite_la_OBJECTS = $(am_libgstflite_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstflite_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstflite_la_CFLAGS) $(CFLAGS) \ + $(libgstflite_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstflite_la_SOURCES) +DIST_SOURCES = $(libgstflite_la_SOURCES) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstflite.la +libgstflite_la_SOURCES = gstflite.c gstflitetestsrc.c +libgstflite_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CFLAGS) \ + $(FLITE_CFLAGS) + +libgstflite_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) \ + -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) \ + $(GST_LIBS) \ + $(FLITE_LIBS) + +libgstflite_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(LIBM) +libgstflite_la_LIBTOOLFLAGS = --tag=disable-static +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/flite/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/flite/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstflite.la: $(libgstflite_la_OBJECTS) $(libgstflite_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstflite_la_LINK) -rpath $(plugindir) $(libgstflite_la_OBJECTS) $(libgstflite_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstflite_la-gstflite.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstflite_la-gstflitetestsrc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstflite_la-gstflite.lo: gstflite.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflite_la_CFLAGS) $(CFLAGS) -MT libgstflite_la-gstflite.lo -MD -MP -MF $(DEPDIR)/libgstflite_la-gstflite.Tpo -c -o libgstflite_la-gstflite.lo `test -f 'gstflite.c' || echo '$(srcdir)/'`gstflite.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflite_la-gstflite.Tpo $(DEPDIR)/libgstflite_la-gstflite.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflite.c' object='libgstflite_la-gstflite.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflite_la_CFLAGS) $(CFLAGS) -c -o libgstflite_la-gstflite.lo `test -f 'gstflite.c' || echo '$(srcdir)/'`gstflite.c + +libgstflite_la-gstflitetestsrc.lo: gstflitetestsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflite_la_CFLAGS) $(CFLAGS) -MT libgstflite_la-gstflitetestsrc.lo -MD -MP -MF $(DEPDIR)/libgstflite_la-gstflitetestsrc.Tpo -c -o libgstflite_la-gstflitetestsrc.lo `test -f 'gstflitetestsrc.c' || echo '$(srcdir)/'`gstflitetestsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstflite_la-gstflitetestsrc.Tpo $(DEPDIR)/libgstflite_la-gstflitetestsrc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstflitetestsrc.c' object='libgstflite_la-gstflitetestsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstflite_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstflite_la_CFLAGS) $(CFLAGS) -c -o libgstflite_la-gstflitetestsrc.lo `test -f 'gstflitetestsrc.c' || echo '$(srcdir)/'`gstflitetestsrc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/flite/gstflite.c b/ext/flite/gstflite.c new file mode 100644 index 0000000..2995d9f --- /dev/null +++ b/ext/flite/gstflite.c @@ -0,0 +1,48 @@ +/* GStreamer + * Copyright (C) 2010 David Schleef + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +GType gst_flite_synth_get_type (void); +GType gst_flite_test_src_get_type (void); + + +static gboolean +plugin_init (GstPlugin * plugin) +{ + flite_init (); + +// gst_element_register (plugin, "flitesynth", GST_RANK_NONE, +// gst_flite_synth_get_type ()); + gst_element_register (plugin, "flitetestsrc", GST_RANK_NONE, + gst_flite_test_src_get_type ()); + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "flite", + "Flite speech synthesizer plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/flite/gstflitetestsrc.c b/ext/flite/gstflitetestsrc.c new file mode 100644 index 0000000..ea7da1d --- /dev/null +++ b/ext/flite/gstflitetestsrc.c @@ -0,0 +1,432 @@ +/* GStreamer + * Copyright (C) 2010 David Schleef + * Copyright (C) 2005 Stefan Kost + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include +#include + +#include + +#define GST_TYPE_FLITE_TEST_SRC \ + (gst_flite_test_src_get_type()) +#define GST_FLITE_TEST_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_FLITE_TEST_SRC,GstFliteTestSrc)) +#define GST_FLITE_TEST_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_FLITE_TEST_SRC,GstFliteTestSrcClass)) +#define GST_IS_FLITE_TEST_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_FLITE_TEST_SRC)) +#define GST_IS_FLITE_TEST_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_FLITE_TEST_SRC)) + +typedef struct _GstFliteTestSrc GstFliteTestSrc; +typedef struct _GstFliteTestSrcClass GstFliteTestSrcClass; + +struct _GstFliteTestSrc +{ + GstBaseSrc parent; + + GstAdapter *adapter; + + int samplerate; + int n_channels; + GstAudioChannelPosition *layout; + + int samples_per_buffer; + + int channel; + + cst_voice *voice; +}; + +struct _GstFliteTestSrcClass +{ + GstBaseSrcClass parent_class; +}; + +GType gst_flite_test_src_get_type (void); + + + +GST_DEBUG_CATEGORY_STATIC (flite_test_src_debug); +#define GST_CAT_DEFAULT flite_test_src_debug + +#define DEFAULT_SAMPLES_PER_BUFFER 1024 + +enum +{ + PROP_0, + PROP_SAMPLES_PER_BUFFER, + PROP_LAST +}; + + +static GstStaticPadTemplate gst_flite_test_src_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " + "width = (int) 16, " + "depth = (int) 16, " "rate = (int) 48000, " "channels = (int) [1,8]") + ); + + +GST_BOILERPLATE (GstFliteTestSrc, gst_flite_test_src, GstBaseSrc, + GST_TYPE_BASE_SRC); + +static void gst_flite_test_src_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_flite_test_src_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static gboolean gst_flite_test_src_start (GstBaseSrc * basesrc); +static gboolean gst_flite_test_src_stop (GstBaseSrc * basesrc); +static GstFlowReturn gst_flite_test_src_create (GstBaseSrc * basesrc, + guint64 offset, guint length, GstBuffer ** buffer); +static gboolean +gst_flite_test_src_set_caps (GstBaseSrc * basesrc, GstCaps * caps); + + +static void +gst_flite_test_src_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + GST_DEBUG_CATEGORY_INIT (flite_test_src_debug, "flitetestsrc", 0, + "Flite Audio Test Source"); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_flite_test_src_src_template)); + gst_element_class_set_details_simple (element_class, + "Flite speech test source", "Source/Audio", + "Creates audio test signals identifying channels", + "David Schleef "); +} + +static void +gst_flite_test_src_class_init (GstFliteTestSrcClass * klass) +{ + GObjectClass *gobject_class; + GstBaseSrcClass *gstbasesrc_class; + + gobject_class = (GObjectClass *) klass; + gstbasesrc_class = (GstBaseSrcClass *) klass; + + gobject_class->set_property = gst_flite_test_src_set_property; + gobject_class->get_property = gst_flite_test_src_get_property; + + gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_flite_test_src_start); + gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_flite_test_src_stop); + gstbasesrc_class->create = GST_DEBUG_FUNCPTR (gst_flite_test_src_create); + gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_flite_test_src_set_caps); + + g_object_class_install_property (gobject_class, PROP_SAMPLES_PER_BUFFER, + g_param_spec_int ("samplesperbuffer", "Samples per buffer", + "Number of samples in each outgoing buffer", + 1, G_MAXINT, DEFAULT_SAMPLES_PER_BUFFER, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + +} + +static void +gst_flite_test_src_init (GstFliteTestSrc * src, GstFliteTestSrcClass * g_class) +{ +#if 0 + GstPad *pad = GST_BASE_SRC_PAD (src); +#endif + + src->samplerate = 48000; + src->samples_per_buffer = DEFAULT_SAMPLES_PER_BUFFER; + + /* we operate in time */ + gst_base_src_set_format (GST_BASE_SRC (src), GST_FORMAT_TIME); + + gst_base_src_set_blocksize (GST_BASE_SRC (src), -1); +} + +static gboolean +gst_flite_test_src_set_caps (GstBaseSrc * basesrc, GstCaps * caps) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (basesrc); + GstStructure *structure; + gboolean ret; + + structure = gst_caps_get_structure (caps, 0); + + ret = gst_structure_get_int (structure, "channels", &src->n_channels); + + g_free (src->layout); + + if (src->n_channels < 3) { + src->layout = g_malloc (sizeof (GstAudioChannelPosition) * 2); + if (src->n_channels == 1) { + src->layout[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_MONO; + } else { + src->layout[0] = GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + src->layout[1] = GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + } + } else { + src->layout = gst_audio_get_channel_positions (structure); + if (src->layout == NULL) { + /* thanks, libgstaudio, for returning us NULL instead of + * doing this yourself. */ + int i; + src->layout = + g_malloc (sizeof (GstAudioChannelPosition) * src->n_channels); + for (i = 0; i < src->n_channels; i++) { + src->layout[i] = GST_AUDIO_CHANNEL_POSITION_NONE; + } + } + } + + return ret; +} + +#if 0 +static gboolean +gst_flite_test_src_query (GstBaseSrc * basesrc, GstQuery * query) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (basesrc); + gboolean res = FALSE; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (src_fmt == dest_fmt) { + dest_val = src_val; + goto done; + } + + switch (src_fmt) { + case GST_FORMAT_DEFAULT: + switch (dest_fmt) { + case GST_FORMAT_TIME: + /* samples to time */ + dest_val = + gst_util_uint64_scale_int (src_val, GST_SECOND, + src->samplerate); + break; + default: + goto error; + } + break; + case GST_FORMAT_TIME: + switch (dest_fmt) { + case GST_FORMAT_DEFAULT: + /* time to samples */ + dest_val = + gst_util_uint64_scale_int (src_val, src->samplerate, + GST_SECOND); + break; + default: + goto error; + } + break; + default: + goto error; + } + done: + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + res = TRUE; + break; + } + default: + res = GST_BASE_SRC_CLASS (parent_class)->query (basesrc, query); + break; + } + + return res; + /* ERROR */ +error: + { + GST_DEBUG_OBJECT (src, "query failed"); + return FALSE; + } +} +#endif + + +#if 0 +static void +gst_flite_test_src_get_times (GstBaseSrc * basesrc, GstBuffer * buffer, + GstClockTime * start, GstClockTime * end) +{ + /* for live sources, sync on the timestamp of the buffer */ + if (gst_base_src_is_live (basesrc)) { + GstClockTime timestamp = GST_BUFFER_TIMESTAMP (buffer); + + if (GST_CLOCK_TIME_IS_VALID (timestamp)) { + /* get duration to calculate end time */ + GstClockTime duration = GST_BUFFER_DURATION (buffer); + + if (GST_CLOCK_TIME_IS_VALID (duration)) { + *end = timestamp + duration; + } + *start = timestamp; + } + } else { + *start = -1; + *end = -1; + } +} +#endif + +cst_voice *register_cmu_us_kal (); + + + +static gboolean +gst_flite_test_src_start (GstBaseSrc * basesrc) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (basesrc); + + src->adapter = gst_adapter_new (); + + src->voice = register_cmu_us_kal (); + src->n_channels = 2; + + return TRUE; +} + +static gboolean +gst_flite_test_src_stop (GstBaseSrc * basesrc) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (basesrc); + + g_object_unref (src->adapter); + + return TRUE; +} + +static char * +get_channel_name (GstFliteTestSrc * src, int channel) +{ + const char *numbers[10] = { + "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", + "nine" + }; + const char *names[GST_AUDIO_CHANNEL_POSITION_NUM] = { + "mono", "front left", "front right", "rear center", + "rear left", "rear right", "low frequency effects", + "front center", "front left center", "front right center", + "side left", "side right", + "none" + }; + const char *name; + + if (src->layout[channel] == GST_AUDIO_CHANNEL_POSITION_INVALID) { + name = "invalid"; + } else { + name = names[src->layout[channel]]; + } + + return g_strdup_printf ("%s, %s", numbers[channel], name); +} + +static GstFlowReturn +gst_flite_test_src_create (GstBaseSrc * basesrc, guint64 offset, + guint length, GstBuffer ** buffer) +{ + GstFliteTestSrc *src; + int n_bytes; + + src = GST_FLITE_TEST_SRC (basesrc); + + n_bytes = src->n_channels * sizeof (gint16) * src->samples_per_buffer; + + while (gst_adapter_available (src->adapter) < n_bytes) { + GstBuffer *buf; + char *text; + int i; + gint16 *data; + cst_wave *wave; + + text = get_channel_name (src, src->channel); + + wave = flite_text_to_wave (text, src->voice); + g_free (text); + cst_wave_resample (wave, 48000); + + GST_DEBUG ("type %s, sample_rate %d, num_samples %d, num_channels %d", + wave->type, wave->sample_rate, wave->num_samples, wave->num_channels); + + buf = gst_buffer_new_and_alloc (src->n_channels * sizeof (gint16) * + wave->num_samples); + + data = (void *) GST_BUFFER_DATA (buf); + memset (data, 0, src->n_channels * sizeof (gint16) * wave->num_samples); + for (i = 0; i < wave->num_samples; i++) { + data[i * src->n_channels + src->channel] = wave->samples[i]; + } + + src->channel++; + if (src->channel == src->n_channels) { + src->channel = 0; + } + + gst_adapter_push (src->adapter, buf); + } + + *buffer = gst_adapter_take_buffer (src->adapter, n_bytes); + + return GST_FLOW_OK; +} + +static void +gst_flite_test_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (object); + + switch (prop_id) { + case PROP_SAMPLES_PER_BUFFER: + src->samples_per_buffer = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_flite_test_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstFliteTestSrc *src = GST_FLITE_TEST_SRC (object); + + switch (prop_id) { + case PROP_SAMPLES_PER_BUFFER: + g_value_set_int (value, src->samples_per_buffer); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} diff --git a/ext/gme/Makefile.am b/ext/gme/Makefile.am new file mode 100644 index 0000000..f9a7b13 --- /dev/null +++ b/ext/gme/Makefile.am @@ -0,0 +1,10 @@ +plugin_LTLIBRARIES = libgstgme.la + +libgstgme_la_SOURCES = gstgme.c + +libgstgme_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GME_CFLAGS) +libgstgme_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GME_LIBS) +libgstgme_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgme_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstgme.h diff --git a/ext/gme/Makefile.in b/ext/gme/Makefile.in new file mode 100644 index 0000000..5cf6dbe --- /dev/null +++ b/ext/gme/Makefile.in @@ -0,0 +1,855 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/gme +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstgme_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstgme_la_OBJECTS = libgstgme_la-gstgme.lo +libgstgme_la_OBJECTS = $(am_libgstgme_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstgme_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstgme_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstgme_la_CFLAGS) $(CFLAGS) \ + $(libgstgme_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstgme_la_SOURCES) +DIST_SOURCES = $(libgstgme_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstgme.la +libgstgme_la_SOURCES = gstgme.c +libgstgme_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GME_CFLAGS) +libgstgme_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(GME_LIBS) +libgstgme_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgme_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstgme.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gme/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/gme/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstgme.la: $(libgstgme_la_OBJECTS) $(libgstgme_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstgme_la_LINK) -rpath $(plugindir) $(libgstgme_la_OBJECTS) $(libgstgme_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgme_la-gstgme.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstgme_la-gstgme.lo: gstgme.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgme_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgme_la_CFLAGS) $(CFLAGS) -MT libgstgme_la-gstgme.lo -MD -MP -MF $(DEPDIR)/libgstgme_la-gstgme.Tpo -c -o libgstgme_la-gstgme.lo `test -f 'gstgme.c' || echo '$(srcdir)/'`gstgme.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgme_la-gstgme.Tpo $(DEPDIR)/libgstgme_la-gstgme.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgme.c' object='libgstgme_la-gstgme.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgme_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgme_la_CFLAGS) $(CFLAGS) -c -o libgstgme_la-gstgme.lo `test -f 'gstgme.c' || echo '$(srcdir)/'`gstgme.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/gme/gstgme.c b/ext/gme/gstgme.c new file mode 100644 index 0000000..ae49c64 --- /dev/null +++ b/ext/gme/gstgme.c @@ -0,0 +1,556 @@ +/* Copyright (C) 2004-2005,2009 Michael Pyne + * Copyright (C) 2004-2006 Chris Lee + * Copyright (C) 2007 Brian Koropoff + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstgme.h" + +#include +#include +#include + +static GstStaticPadTemplate sink_factory = + GST_STATIC_PAD_TEMPLATE ("sink", GST_PAD_SINK, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-ay; " + "audio/x-gbs; " + "audio/x-gym; " + "audio/x-hes; " + "audio/x-kss; " + "audio/x-nsf; " "audio/x-sap; " "audio/x-spc; " "audio/x-vgm")); + +static GstStaticPadTemplate src_factory = +GST_STATIC_PAD_TEMPLATE ("src", GST_PAD_SRC, GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) TRUE, " + "width = (int) 16, " + "depth = (int) 16, " "rate = (int) 32000, " "channels = (int) 2")); + +GST_BOILERPLATE (GstGmeDec, gst_gme_dec, GstElement, GST_TYPE_ELEMENT); + +static GstFlowReturn gst_gme_dec_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_gme_dec_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_gme_dec_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_gme_dec_src_query (GstPad * pad, GstQuery * query); +static GstStateChangeReturn gst_gme_dec_change_state (GstElement * element, + GstStateChange transition); +static void gst_gme_play (GstPad * pad); +static void gst_gme_dec_dispose (GObject * object); +static gboolean gme_setup (GstGmeDec * gme); + +static gboolean +gme_negotiate (GstGmeDec * gme) +{ + GstCaps *allowed, *caps; + GstStructure *structure; + gint width = 16, depth = 16; + gboolean sign; + int rate = 32000; + int channels = 2; + + allowed = gst_pad_get_allowed_caps (gme->srcpad); + if (!allowed) { + GST_DEBUG_OBJECT (gme, "couldn't get allowed caps"); + return FALSE; + } + + GST_DEBUG_OBJECT (gme, "allowed caps: %" GST_PTR_FORMAT, allowed); + + structure = gst_caps_get_structure (allowed, 0); + gst_structure_get_int (structure, "width", &width); + gst_structure_get_int (structure, "depth", &depth); + + if (width && depth && width != depth) { + GST_DEBUG_OBJECT (gme, "width %d and depth %d are different", width, depth); + gst_caps_unref (allowed); + return FALSE; + } + + gst_structure_get_boolean (structure, "signed", &sign); + gst_structure_get_int (structure, "rate", &rate); + gst_structure_get_int (structure, "channels", &channels); + + caps = gst_caps_new_simple ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "signed", G_TYPE_BOOLEAN, TRUE, + "width", G_TYPE_INT, width, + "depth", G_TYPE_INT, depth, + "rate", G_TYPE_INT, rate, "channels", G_TYPE_INT, channels, NULL); + gst_pad_set_caps (gme->srcpad, caps); + + gst_caps_unref (caps); + gst_caps_unref (allowed); + + return TRUE; +} + +static void +gst_gme_dec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, + "Gaming console music file decoder", "Codec/Audio/Decoder", + "Uses libgme to emulate a gaming console sound processors", + "Chris Lee , Brian Koropoff , " + "Michael Pyne , Sebastian Dröge "); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); +} + +static void +gst_gme_dec_class_init (GstGmeDecClass * klass) +{ + GstElementClass *element_class = (GstElementClass *) klass; + GObjectClass *gobject_class = (GObjectClass *) klass; + + element_class->change_state = GST_DEBUG_FUNCPTR (gst_gme_dec_change_state); + gobject_class->dispose = gst_gme_dec_dispose; +} + +static const GstQueryType * +gst_gme_dec_src_query_type (GstPad * pad) +{ + static const GstQueryType query_types[] = { + GST_QUERY_DURATION, + GST_QUERY_POSITION, + (GstQueryType) 0 + }; + + return query_types; +} + + +static void +gst_gme_dec_init (GstGmeDec * gme, GstGmeDecClass * klass) +{ + gme->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + /* gst_pad_set_query_function (gme->sinkpad, NULL); */ + gst_pad_set_event_function (gme->sinkpad, gst_gme_dec_sink_event); + gst_pad_set_chain_function (gme->sinkpad, gst_gme_dec_chain); + gst_element_add_pad (GST_ELEMENT (gme), gme->sinkpad); + + gme->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_event_function (gme->srcpad, gst_gme_dec_src_event); + gst_pad_set_query_function (gme->srcpad, gst_gme_dec_src_query); + gst_pad_set_query_type_function (gme->srcpad, gst_gme_dec_src_query_type); + gst_pad_use_fixed_caps (gme->srcpad); + gst_element_add_pad (GST_ELEMENT (gme), gme->srcpad); + + gme->adapter = gst_adapter_new (); + gme->player = NULL; + gme->total_duration = GST_CLOCK_TIME_NONE; + gme->initialized = FALSE; +} + +static void +gst_gme_dec_dispose (GObject * object) +{ + GstGmeDec *gme = GST_GME_DEC (object); + + if (gme->adapter) { + g_object_unref (gme->adapter); + gme->adapter = NULL; + } +} + +static GstFlowReturn +gst_gme_dec_chain (GstPad * pad, GstBuffer * buffer) +{ + GstGmeDec *gme = GST_GME_DEC (gst_pad_get_parent (pad)); + + /* Accumulate GME data until end-of-stream, then commence playback. */ + gst_adapter_push (gme->adapter, buffer); + + gst_object_unref (gme); + + return GST_FLOW_OK; +} + +static gboolean +gst_gme_dec_sink_event (GstPad * pad, GstEvent * event) +{ + GstGmeDec *gme = GST_GME_DEC (gst_pad_get_parent (pad)); + gboolean result = TRUE; + gboolean forward = FALSE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + /* we get EOS when we loaded the complete file, now try to initialize the + * decoding */ + if (!(result = gme_setup (gme))) { + /* can't start, post an ERROR and push EOS downstream */ + GST_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), + ("can't start playback")); + forward = TRUE; + } + break; + default: + break; + } + if (forward) + result = gst_pad_push_event (gme->srcpad, event); + else + gst_event_unref (event); + + gst_object_unref (gme); + + return result; +} + +static gboolean +gst_gme_dec_src_event (GstPad * pad, GstEvent * event) +{ + GstGmeDec *gme = GST_GME_DEC (gst_pad_get_parent (pad)); + gboolean result = FALSE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + { + gdouble rate; + GstFormat format; + GstSeekFlags flags; + GstSeekType start_type, stop_type; + gint64 start, stop; + gboolean flush; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + gst_event_unref (event); + + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (gme, "seeking is only supported in TIME format"); + break; + } + + if (start_type != GST_SEEK_TYPE_SET || stop_type != GST_SEEK_TYPE_NONE) { + GST_DEBUG_OBJECT (gme, "unsupported seek type"); + break; + } + + if (stop_type == GST_SEEK_TYPE_NONE) + stop = GST_CLOCK_TIME_NONE; + + if (start_type == GST_SEEK_TYPE_SET) { + guint64 cur = gme_tell (gme->player) * GST_MSECOND; + guint64 dest = (guint64) start; + + if (gme->total_duration != GST_CLOCK_TIME_NONE) + dest = CLAMP (dest, 0, gme->total_duration); + else + dest = MAX (0, dest); + + if (dest == cur) + break; + + flush = (flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH; + + if (flush) { + gst_pad_push_event (gme->srcpad, gst_event_new_flush_start ()); + } else { + gst_pad_stop_task (gme->srcpad); + } + + GST_PAD_STREAM_LOCK (gme->srcpad); + + if (flags & GST_SEEK_FLAG_SEGMENT) { + gst_element_post_message (GST_ELEMENT (gme), + gst_message_new_segment_start (GST_OBJECT (gme), format, cur)); + } + + if (flush) { + gst_pad_push_event (gme->srcpad, gst_event_new_flush_stop ()); + } + + if (stop == GST_CLOCK_TIME_NONE + && gme->total_duration != GST_CLOCK_TIME_NONE) + stop = gme->total_duration; + + gst_pad_push_event (gme->srcpad, gst_event_new_new_segment (FALSE, rate, + GST_FORMAT_TIME, dest, stop, dest)); + + gme->seekpoint = dest / GST_MSECOND; /* nsecs to msecs */ + gme->seeking = TRUE; + + gst_pad_start_task (gme->srcpad, (GstTaskFunction) gst_gme_play, + gme->srcpad); + + GST_PAD_STREAM_UNLOCK (gme->srcpad); + result = TRUE; + } + break; + } + default: + result = gst_pad_push_event (gme->sinkpad, event); + break; + } + + gst_object_unref (gme); + + return result; +} + +static gboolean +gst_gme_dec_src_query (GstPad * pad, GstQuery * query) +{ + GstGmeDec *gme = GST_GME_DEC (gst_pad_get_parent (pad)); + gboolean result = TRUE; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_DURATION: + { + GstFormat format; + + gst_query_parse_duration (query, &format, NULL); + if (!gme->initialized || format != GST_FORMAT_TIME + || gme->total_duration == GST_CLOCK_TIME_NONE) { + result = FALSE; + break; + } + gst_query_set_duration (query, GST_FORMAT_TIME, gme->total_duration); + break; + } + case GST_QUERY_POSITION: + { + GstFormat format; + + gst_query_parse_position (query, &format, NULL); + if (!gme->initialized || format != GST_FORMAT_TIME) { + result = FALSE; + break; + } + gst_query_set_position (query, GST_FORMAT_TIME, + (gint64) gme_tell (gme->player) * GST_MSECOND); + break; + } + default: + result = gst_pad_query_default (pad, query); + break; + } + + gst_object_unref (gme); + + return result; +} + +static void +gst_gme_play (GstPad * pad) +{ + GstGmeDec *gme = GST_GME_DEC (gst_pad_get_parent (pad)); + GstFlowReturn flow_return; + GstBuffer *out; + gboolean seeking = gme->seeking; + gme_err_t gme_err = NULL; + const int NUM_SAMPLES = 1600; /* 4 bytes (stereo 16-bit) per sample */ + + if (!seeking) { + out = gst_buffer_new_and_alloc (NUM_SAMPLES * 4); + gst_buffer_set_caps (out, GST_PAD_CAPS (pad)); + GST_BUFFER_TIMESTAMP (out) = gme_tell (gme->player) * GST_MSECOND; + + gme_err = + gme_play (gme->player, NUM_SAMPLES * 2, + (short *) GST_BUFFER_DATA (out)); + if (gme_err) { + GST_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), (gme_err)); + gst_pad_pause_task (pad); + gst_pad_push_event (pad, gst_event_new_eos ()); + gst_object_unref (gme); + return; + } + } else { + gme_seek (gme->player, gme->seekpoint); + gme->seeking = FALSE; + + out = gst_buffer_new (); + gst_buffer_set_caps (out, GST_PAD_CAPS (pad)); + } + + if ((flow_return = gst_pad_push (gme->srcpad, out)) != GST_FLOW_OK) { + GST_DEBUG_OBJECT (gme, "pausing task, reason %s", + gst_flow_get_name (flow_return)); + + gst_pad_pause_task (pad); + + if (flow_return == GST_FLOW_UNEXPECTED) { + gst_pad_push_event (pad, gst_event_new_eos ()); + } else if (flow_return < GST_FLOW_UNEXPECTED + || flow_return == GST_FLOW_NOT_LINKED) { + GST_ELEMENT_ERROR (gme, STREAM, FAILED, ("Internal data stream error."), + ("stream stopped, reason %s", gst_flow_get_name (flow_return))); + + gst_pad_push_event (pad, gst_event_new_eos ()); + } + } + + if (gme_tell (gme->player) * GST_MSECOND > gme->total_duration) { + gst_pad_pause_task (pad); + gst_pad_push_event (pad, gst_event_new_eos ()); + } + + gst_object_unref (gme); + + return; +} + +static gboolean +gme_setup (GstGmeDec * gme) +{ + gme_info_t *info; + gme_err_t gme_err = NULL; + GstTagList *taglist; + guint64 total_duration; + guint64 fade_time; + GstBuffer *buffer; + + if (!gst_adapter_available (gme->adapter) || !gme_negotiate (gme)) { + return FALSE; + } + + buffer = + gst_adapter_take_buffer (gme->adapter, + gst_adapter_available (gme->adapter)); + + gme_err = + gme_open_data (GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), + &gme->player, 32000); + gst_buffer_unref (buffer); + + if (gme_err || !gme->player) { + if (gme->player) { + gme_delete (gme->player); + gme->player = NULL; + } + + GST_ELEMENT_ERROR (gme, STREAM, DEMUX, (NULL), (gme_err)); + + return FALSE; + } + + gme_err = gme_track_info (gme->player, &info, 0); + + taglist = gst_tag_list_new (); + + if (info->song && *info->song) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_TITLE, + info->song, NULL); + if (info->author && *info->author) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_ARTIST, + info->author, NULL); + /* Prefer the name of the official soundtrack over the name of the game (since this is + * how track numbers are derived) + */ + if (info->game && *info->game) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_ALBUM, info->game, + NULL); + + if (info->comment && *info->comment) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_COMMENT, + info->comment, NULL); + if (info->dumper && *info->dumper) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_CONTACT, + info->dumper, NULL); + if (info->copyright && *info->copyright) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_COPYRIGHT, + info->copyright, NULL); + if (info->system && *info->system) + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, GST_TAG_ENCODER, + info->system, NULL); + + gme->total_duration = total_duration = + gst_util_uint64_scale_int (info->play_length + (info->loop_length > + 0 ? 8000 : 0), GST_MSECOND, 1); + fade_time = info->loop_length > 0 ? info->play_length : 0; + + gst_tag_list_add (taglist, GST_TAG_MERGE_REPLACE, + GST_TAG_DURATION, total_duration, NULL); + + gst_element_found_tags_for_pad (GST_ELEMENT (gme), gme->srcpad, taglist); + + g_free (info); + +#ifdef HAVE_LIBGME_ACCURACY + /* TODO: Is it worth it to make this optional? */ + gme_enable_accuracy (gme->player, 1); +#endif + gme_start_track (gme->player, 0); + if (fade_time) + gme_set_fade (gme->player, fade_time); + + gst_pad_push_event (gme->srcpad, gst_event_new_new_segment (FALSE, 1.0, + GST_FORMAT_TIME, 0, -1, 0)); + + gst_pad_start_task (gme->srcpad, (GstTaskFunction) gst_gme_play, gme->srcpad); + + gme->initialized = TRUE; + gme->seeking = FALSE; + gme->seekpoint = 0; + return gme->initialized; +} + +static GstStateChangeReturn +gst_gme_dec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn result; + GstGmeDec *dec; + + dec = GST_GME_DEC (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + dec->total_duration = GST_CLOCK_TIME_NONE; + break; + default: + break; + } + + result = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (result == GST_STATE_CHANGE_FAILURE) + return result; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_adapter_clear (dec->adapter); + break; + default: + break; + } + + return result; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "gmedec", GST_RANK_PRIMARY, + GST_TYPE_GME_DEC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "gmedec", + "GME Audio Decoder", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); diff --git a/ext/gme/gstgme.h b/ext/gme/gstgme.h new file mode 100644 index 0000000..5d2fa5b --- /dev/null +++ b/ext/gme/gstgme.h @@ -0,0 +1,70 @@ +/* Copyright (C) 2004-2005, 2009 Michael Pyne + * Copyright (C) 2004-2006 Chris Lee + * Copyright (C) 2007 Brian Koropoff + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GME_DEC_H__ +#define __GST_GME_DEC_H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_GME_DEC \ + (gst_gme_dec_get_type()) +#define GST_GME_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GME_DEC,GstGmeDec)) +#define GST_GME_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GME_DEC,GstGmeDecClass)) +#define GST_IS_GME_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GME_DEC)) +#define GST_IS_GME_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GME_DEC)) + +typedef struct _GstGmeDec GstGmeDec; +typedef struct _GstGmeDecClass GstGmeDecClass; + +struct _GstGmeDec +{ + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + GstAdapter *adapter; + Music_Emu *player; + gboolean initialized; + gboolean seeking; + int seekpoint; + + GstClockTime total_duration; +}; + +struct _GstGmeDecClass +{ + GstElementClass parent_class; +}; + +GType gst_gme_dec_get_type (void); + +G_END_DECLS + +#endif /* __GST_GME_DEC_H__ */ diff --git a/ext/gsettings/Makefile.am b/ext/gsettings/Makefile.am new file mode 100644 index 0000000..64801df --- /dev/null +++ b/ext/gsettings/Makefile.am @@ -0,0 +1,41 @@ +gsettings_SCHEMAS = org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml + +org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml: org.freedesktop.gstreamer.default-elements.gschema.xml + cp org.freedesktop.gstreamer.default-elements.gschema.xml org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml + +if USE_GSETTINGS +@GSETTINGS_RULES@ +endif + +plugin_LTLIBRARIES = libgstgsettingselements.la + +libgstgsettingselements_la_SOURCES = \ + gstgsettingsaudiosink.c \ + gstgsettingsaudiosrc.c \ + gstgsettingsvideosink.c \ + gstgsettingsvideosrc.c \ + gstswitchsink.c \ + gstswitchsrc.c \ + plugin.c + +libgstgsettingselements_la_CFLAGS = $(GST_CFLAGS) $(GSETTINGS_CFLAGS) $(DIR_CFLAGS) \ + -DGstSwitchSrc=GstGSettingsSwitchSrc \ + -DGstSwitchSrcClass=GstGSettingsSwitchSrcClass \ + -DGstSwitchSink=GstGSettingsSwitchSink \ + -DGstSwitchSinkClass=GstGSettingsSwitchSinkClass +libgstgsettingselements_la_LIBADD = $(GST_LIBS) $(GSETTINGS_LIBS) +libgstgsettingselements_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgsettingselements_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstgsettingsaudiosink.h \ + gstgsettingsaudiosrc.h \ + gstgsettingsvideosink.h \ + gstgsettingsvideosrc.h \ + gstswitchsink.h \ + gstswitchsrc.h \ + gstgsettings.h + +EXTRA_DIST = org.freedesktop.gstreamer.default-elements.gschema.xml + +CLEANFILES = $(gsettings_SCHEMAS) diff --git a/ext/gsettings/Makefile.in b/ext/gsettings/Makefile.in new file mode 100644 index 0000000..04d05e1 --- /dev/null +++ b/ext/gsettings/Makefile.in @@ -0,0 +1,952 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/gsettings +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in \ + $(srcdir)/org.freedesktop.gstreamer.default-elements.gschema.xml.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = \ + org.freedesktop.gstreamer.default-elements.gschema.xml +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstgsettingselements_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstgsettingselements_la_OBJECTS = \ + libgstgsettingselements_la-gstgsettingsaudiosink.lo \ + libgstgsettingselements_la-gstgsettingsaudiosrc.lo \ + libgstgsettingselements_la-gstgsettingsvideosink.lo \ + libgstgsettingselements_la-gstgsettingsvideosrc.lo \ + libgstgsettingselements_la-gstswitchsink.lo \ + libgstgsettingselements_la-gstswitchsrc.lo \ + libgstgsettingselements_la-plugin.lo +libgstgsettingselements_la_OBJECTS = \ + $(am_libgstgsettingselements_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstgsettingselements_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \ + --mode=link $(CCLD) $(libgstgsettingselements_la_CFLAGS) \ + $(CFLAGS) $(libgstgsettingselements_la_LDFLAGS) $(LDFLAGS) -o \ + $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstgsettingselements_la_SOURCES) +DIST_SOURCES = $(libgstgsettingselements_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +gsettings_SCHEMAS = org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml +plugin_LTLIBRARIES = libgstgsettingselements.la +libgstgsettingselements_la_SOURCES = \ + gstgsettingsaudiosink.c \ + gstgsettingsaudiosrc.c \ + gstgsettingsvideosink.c \ + gstgsettingsvideosrc.c \ + gstswitchsink.c \ + gstswitchsrc.c \ + plugin.c + +libgstgsettingselements_la_CFLAGS = $(GST_CFLAGS) $(GSETTINGS_CFLAGS) $(DIR_CFLAGS) \ + -DGstSwitchSrc=GstGSettingsSwitchSrc \ + -DGstSwitchSrcClass=GstGSettingsSwitchSrcClass \ + -DGstSwitchSink=GstGSettingsSwitchSink \ + -DGstSwitchSinkClass=GstGSettingsSwitchSinkClass + +libgstgsettingselements_la_LIBADD = $(GST_LIBS) $(GSETTINGS_LIBS) +libgstgsettingselements_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgsettingselements_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstgsettingsaudiosink.h \ + gstgsettingsaudiosrc.h \ + gstgsettingsvideosink.h \ + gstgsettingsvideosrc.h \ + gstswitchsink.h \ + gstswitchsrc.h \ + gstgsettings.h + +EXTRA_DIST = org.freedesktop.gstreamer.default-elements.gschema.xml +CLEANFILES = $(gsettings_SCHEMAS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gsettings/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/gsettings/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +org.freedesktop.gstreamer.default-elements.gschema.xml: $(top_builddir)/config.status $(srcdir)/org.freedesktop.gstreamer.default-elements.gschema.xml.in + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstgsettingselements.la: $(libgstgsettingselements_la_OBJECTS) $(libgstgsettingselements_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstgsettingselements_la_LINK) -rpath $(plugindir) $(libgstgsettingselements_la_OBJECTS) $(libgstgsettingselements_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstswitchsink.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-gstswitchsrc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsettingselements_la-plugin.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstgsettingselements_la-gstgsettingsaudiosink.lo: gstgsettingsaudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstgsettingsaudiosink.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosink.Tpo -c -o libgstgsettingselements_la-gstgsettingsaudiosink.lo `test -f 'gstgsettingsaudiosink.c' || echo '$(srcdir)/'`gstgsettingsaudiosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosink.Tpo $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsettingsaudiosink.c' object='libgstgsettingselements_la-gstgsettingsaudiosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstgsettingsaudiosink.lo `test -f 'gstgsettingsaudiosink.c' || echo '$(srcdir)/'`gstgsettingsaudiosink.c + +libgstgsettingselements_la-gstgsettingsaudiosrc.lo: gstgsettingsaudiosrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstgsettingsaudiosrc.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosrc.Tpo -c -o libgstgsettingselements_la-gstgsettingsaudiosrc.lo `test -f 'gstgsettingsaudiosrc.c' || echo '$(srcdir)/'`gstgsettingsaudiosrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosrc.Tpo $(DEPDIR)/libgstgsettingselements_la-gstgsettingsaudiosrc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsettingsaudiosrc.c' object='libgstgsettingselements_la-gstgsettingsaudiosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstgsettingsaudiosrc.lo `test -f 'gstgsettingsaudiosrc.c' || echo '$(srcdir)/'`gstgsettingsaudiosrc.c + +libgstgsettingselements_la-gstgsettingsvideosink.lo: gstgsettingsvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstgsettingsvideosink.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosink.Tpo -c -o libgstgsettingselements_la-gstgsettingsvideosink.lo `test -f 'gstgsettingsvideosink.c' || echo '$(srcdir)/'`gstgsettingsvideosink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosink.Tpo $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsettingsvideosink.c' object='libgstgsettingselements_la-gstgsettingsvideosink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstgsettingsvideosink.lo `test -f 'gstgsettingsvideosink.c' || echo '$(srcdir)/'`gstgsettingsvideosink.c + +libgstgsettingselements_la-gstgsettingsvideosrc.lo: gstgsettingsvideosrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstgsettingsvideosrc.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosrc.Tpo -c -o libgstgsettingselements_la-gstgsettingsvideosrc.lo `test -f 'gstgsettingsvideosrc.c' || echo '$(srcdir)/'`gstgsettingsvideosrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosrc.Tpo $(DEPDIR)/libgstgsettingselements_la-gstgsettingsvideosrc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsettingsvideosrc.c' object='libgstgsettingselements_la-gstgsettingsvideosrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstgsettingsvideosrc.lo `test -f 'gstgsettingsvideosrc.c' || echo '$(srcdir)/'`gstgsettingsvideosrc.c + +libgstgsettingselements_la-gstswitchsink.lo: gstswitchsink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstswitchsink.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstswitchsink.Tpo -c -o libgstgsettingselements_la-gstswitchsink.lo `test -f 'gstswitchsink.c' || echo '$(srcdir)/'`gstswitchsink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstswitchsink.Tpo $(DEPDIR)/libgstgsettingselements_la-gstswitchsink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstswitchsink.c' object='libgstgsettingselements_la-gstswitchsink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstswitchsink.lo `test -f 'gstswitchsink.c' || echo '$(srcdir)/'`gstswitchsink.c + +libgstgsettingselements_la-gstswitchsrc.lo: gstswitchsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-gstswitchsrc.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-gstswitchsrc.Tpo -c -o libgstgsettingselements_la-gstswitchsrc.lo `test -f 'gstswitchsrc.c' || echo '$(srcdir)/'`gstswitchsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-gstswitchsrc.Tpo $(DEPDIR)/libgstgsettingselements_la-gstswitchsrc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstswitchsrc.c' object='libgstgsettingselements_la-gstswitchsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-gstswitchsrc.lo `test -f 'gstswitchsrc.c' || echo '$(srcdir)/'`gstswitchsrc.c + +libgstgsettingselements_la-plugin.lo: plugin.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -MT libgstgsettingselements_la-plugin.lo -MD -MP -MF $(DEPDIR)/libgstgsettingselements_la-plugin.Tpo -c -o libgstgsettingselements_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsettingselements_la-plugin.Tpo $(DEPDIR)/libgstgsettingselements_la-plugin.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='plugin.c' object='libgstgsettingselements_la-plugin.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsettingselements_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsettingselements_la_CFLAGS) $(CFLAGS) -c -o libgstgsettingselements_la-plugin.lo `test -f 'plugin.c' || echo '$(srcdir)/'`plugin.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml: org.freedesktop.gstreamer.default-elements.gschema.xml + cp org.freedesktop.gstreamer.default-elements.gschema.xml org.freedesktop.gstreamer-@GST_MAJORMINOR@.default-elements.gschema.xml + +@USE_GSETTINGS_TRUE@@GSETTINGS_RULES@ + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/gsettings/gstgsettings.h b/ext/gsettings/gstgsettings.h new file mode 100644 index 0000000..1e36415 --- /dev/null +++ b/ext/gsettings/gstgsettings.h @@ -0,0 +1,40 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSETTINGS_H__ +#define __GST_GSETTINGS_H__ + +#include + +G_BEGIN_DECLS + +#define GST_GSETTINGS_SCHEMA "org.freedesktop.gstreamer-0.10.default-elements" +#define GST_GSETTINGS_PATH "/desktop/gstreamer/0.10/default-elements/" + +#define GST_GSETTINGS_KEY_SOUNDS_AUDIOSINK "sounds-audiosink" +#define GST_GSETTINGS_KEY_MUSIC_AUDIOSINK "music-audiosink" +#define GST_GSETTINGS_KEY_CHAT_AUDIOSINK "chat-audiosink" +#define GST_GSETTINGS_KEY_AUDIOSRC "audiosrc" +#define GST_GSETTINGS_KEY_VIDEOSINK "videosink" +#define GST_GSETTINGS_KEY_VIDEOSRC "videosrc" +#define GST_GSETTINGS_KEY_VISUALIZATION "visualization" + +G_END_DECLS + +#endif /* __GST_GSETTINGS_H__ */ diff --git a/ext/gsettings/gstgsettingsaudiosink.c b/ext/gsettings/gstgsettingsaudiosink.c new file mode 100644 index 0000000..7e115c9 --- /dev/null +++ b/ext/gsettings/gstgsettingsaudiosink.c @@ -0,0 +1,353 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-gsettingsaudiosink + * + * This element outputs sound to the audiosink that has been configured in + * GSettings by the user. + * + * + * Example launch line + * |[ + * gst-launch audiotestsrc ! audioconvert ! audioresample ! gsettingsaudiosink + * ]| Play on configured audiosink + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "gstgsettingsaudiosink.h" +#include "gstgsettings.h" + +#define GST_TYPE_GSETTINGS_AUDIOSINK_PROFILE (gst_gsettings_audiosink_profile_get_type()) +static GType +gst_gsettings_audiosink_profile_get_type (void) +{ + static GType gsettings_profile_type = 0; + static const GEnumValue gsettings_profiles[] = { + {GST_GSETTINGS_AUDIOSINK_PROFILE_SOUNDS, "Sound Events", "sounds"}, + {GST_GSETTINGS_AUDIOSINK_PROFILE_MUSIC, "Music and Movies (default)", + "music"}, + {GST_GSETTINGS_AUDIOSINK_PROFILE_CHAT, "Audio/Video Conferencing", "chat"}, + {0, NULL, NULL} + }; + + if (!gsettings_profile_type) { + gsettings_profile_type = + g_enum_register_static ("GstGSettingsAudioSinkProfile", + gsettings_profiles); + } + return gsettings_profile_type; +} + +enum +{ + PROP_0, + PROP_PROFILE +}; + +GST_BOILERPLATE (GstGSettingsAudioSink, gst_gsettings_audio_sink, GstSwitchSink, + GST_TYPE_SWITCH_SINK); + +static gboolean +gst_gsettings_audio_sink_change_child (GstGSettingsAudioSink * sink) +{ + const gchar *key = NULL; + gchar *new_string; + GError *err = NULL; + GstElement *new_kid; + + GST_OBJECT_LOCK (sink); + switch (sink->profile) { + case GST_GSETTINGS_AUDIOSINK_PROFILE_SOUNDS: + key = GST_GSETTINGS_KEY_SOUNDS_AUDIOSINK; + break; + case GST_GSETTINGS_AUDIOSINK_PROFILE_MUSIC: + key = GST_GSETTINGS_KEY_MUSIC_AUDIOSINK; + break; + case GST_GSETTINGS_AUDIOSINK_PROFILE_CHAT: + key = GST_GSETTINGS_KEY_CHAT_AUDIOSINK; + break; + default: + break; + } + + new_string = g_settings_get_string (sink->settings, key); + + if (new_string != NULL && sink->gsettings_str != NULL && + (strlen (new_string) == 0 || + strcmp (sink->gsettings_str, new_string) == 0)) { + g_free (new_string); + GST_DEBUG_OBJECT (sink, + "GSettings key was updated, but it didn't change. Ignoring"); + GST_OBJECT_UNLOCK (sink); + return TRUE; + } + GST_OBJECT_UNLOCK (sink); + + GST_DEBUG_OBJECT (sink, "GSettings key changed from '%s' to '%s'", + GST_STR_NULL (sink->gsettings_str), GST_STR_NULL (new_string)); + + if (new_string) { + new_kid = gst_parse_bin_from_description (new_string, TRUE, &err); + if (err) { + GST_ERROR_OBJECT (sink, "error creating bin '%s': %s", new_string, + err->message); + g_error_free (err); + } + } else { + new_kid = NULL; + } + + if (new_kid == NULL) { + GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL), + ("Failed to render audio sink from GSettings")); + goto fail; + } + + if (!gst_switch_sink_set_child (GST_SWITCH_SINK (sink), new_kid)) { + GST_WARNING_OBJECT (sink, "Failed to update child element"); + goto fail; + } + + g_free (sink->gsettings_str); + sink->gsettings_str = new_string; + + return TRUE; + +fail: + g_free (new_string); + return FALSE; +} + +static gboolean +gst_gsettings_audio_sink_switch_profile (GstGSettingsAudioSink * sink, + GstGSettingsAudioSinkProfile profile) +{ + if (sink->settings == NULL) + return TRUE; + + GST_OBJECT_LOCK (sink); + sink->profile = profile; + GST_OBJECT_UNLOCK (sink); + + return gst_gsettings_audio_sink_change_child (sink); +} + +static void +on_changed (GSettings * settings, gchar * key, GstGSettingsAudioSink * sink) +{ + gboolean changed = FALSE; + if (!g_str_has_suffix (key, "audiosink")); + return; + + GST_OBJECT_LOCK (sink); + if ((sink->profile == GST_GSETTINGS_AUDIOSINK_PROFILE_SOUNDS && + g_str_equal (key, GST_GSETTINGS_KEY_SOUNDS_AUDIOSINK)) || + (sink->profile == GST_GSETTINGS_AUDIOSINK_PROFILE_MUSIC && + g_str_equal (key, GST_GSETTINGS_KEY_MUSIC_AUDIOSINK)) || + (sink->profile == GST_GSETTINGS_AUDIOSINK_PROFILE_CHAT && + g_str_equal (key, GST_GSETTINGS_KEY_CHAT_AUDIOSINK))) + changed = TRUE; + GST_OBJECT_UNLOCK (sink); + + if (changed) + gst_gsettings_audio_sink_change_child (sink); +} + +static gboolean +gst_gsettings_audio_sink_start (GstGSettingsAudioSink * sink) +{ + GError *err = NULL; + GThread *thread; + + sink->loop = g_main_loop_new (sink->context, FALSE); + + thread = + g_thread_create ((GThreadFunc) g_main_loop_run, sink->loop, FALSE, &err); + if (!thread) { + GST_ELEMENT_ERROR (sink, CORE, STATE_CHANGE, (NULL), + ("Failed to create new thread: %s", err->message)); + g_error_free (err); + g_main_loop_unref (sink->loop); + sink->loop = NULL; + return FALSE; + } + + g_main_context_push_thread_default (sink->context); + sink->settings = g_settings_new (GST_GSETTINGS_SCHEMA); + sink->changed_id = + g_signal_connect_data (G_OBJECT (sink->settings), "changed", + G_CALLBACK (on_changed), gst_object_ref (sink), + (GClosureNotify) gst_object_unref, 0); + g_main_context_pop_thread_default (sink->context); + + return TRUE; +} + +static gboolean +gst_gsettings_audio_sink_reset (GstGSettingsAudioSink * sink) +{ + gst_switch_sink_set_child (GST_SWITCH_SINK (sink), NULL); + + if (sink->changed_id) { + g_signal_handler_disconnect (sink->settings, sink->changed_id); + sink->changed_id = 0; + } + + if (sink->loop) { + g_main_loop_quit (sink->loop); + g_main_loop_unref (sink->loop); + sink->loop = NULL; + } + + if (sink->settings) { + g_object_unref (sink->settings); + sink->settings = NULL; + } + + GST_OBJECT_LOCK (sink); + g_free (sink->gsettings_str); + sink->gsettings_str = NULL; + GST_OBJECT_UNLOCK (sink); + + return TRUE; +} + +static void +gst_gsettings_audio_sink_finalize (GObject * object) +{ + GstGSettingsAudioSink *sink = GST_GSETTINGS_AUDIO_SINK (object); + + g_free (sink->gsettings_str); + g_main_context_unref (sink->context); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, ((GObject *) (sink))); +} + +static void +gst_gsettings_audio_sink_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstGSettingsAudioSink *sink = GST_GSETTINGS_AUDIO_SINK (object); + + switch (prop_id) { + case PROP_PROFILE: + gst_gsettings_audio_sink_switch_profile (sink, g_value_get_enum (value)); + break; + default: + break; + } +} + +static void +gst_gsettings_audio_sink_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstGSettingsAudioSink *sink = GST_GSETTINGS_AUDIO_SINK (object); + + switch (prop_id) { + case PROP_PROFILE: + g_value_set_enum (value, sink->profile); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_gsettings_audio_sink_change_state (GstElement * element, + GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstGSettingsAudioSink *sink = GST_GSETTINGS_AUDIO_SINK (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_gsettings_audio_sink_start (sink)) + return GST_STATE_CHANGE_FAILURE; + + if (!gst_gsettings_audio_sink_change_child (sink)) { + gst_gsettings_audio_sink_reset (sink); + return GST_STATE_CHANGE_FAILURE; + } + break; + default: + break; + } + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_gsettings_audio_sink_reset (sink); + break; + default: + break; + } + + return ret; +} + +static void +gst_gsettings_audio_sink_init (GstGSettingsAudioSink * sink, + GstGSettingsAudioSinkClass * g_class) +{ + sink->context = g_main_context_new (); + gst_gsettings_audio_sink_reset (sink); + + sink->profile = GST_GSETTINGS_AUDIOSINK_PROFILE_MUSIC; +} + +static void +gst_gsettings_audio_sink_base_init (gpointer klass) +{ + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (eklass, "GSettings audio sink", + "Sink/Audio", + "Audio sink embedding the GSettings preferences for audio output", + "Sebastian Dröge "); +} + +static void +gst_gsettings_audio_sink_class_init (GstGSettingsAudioSinkClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + oklass->finalize = gst_gsettings_audio_sink_finalize; + oklass->set_property = gst_gsettings_audio_sink_set_property; + oklass->get_property = gst_gsettings_audio_sink_get_property; + + g_object_class_install_property (oklass, PROP_PROFILE, + g_param_spec_enum ("profile", "Profile", "Profile", + GST_TYPE_GSETTINGS_AUDIOSINK_PROFILE, + GST_GSETTINGS_AUDIOSINK_PROFILE_SOUNDS, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + eklass->change_state = gst_gsettings_audio_sink_change_state; +} diff --git a/ext/gsettings/gstgsettingsaudiosink.h b/ext/gsettings/gstgsettingsaudiosink.h new file mode 100644 index 0000000..139a138 --- /dev/null +++ b/ext/gsettings/gstgsettingsaudiosink.h @@ -0,0 +1,71 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSETTINGS_AUDIO_SINK_H__ +#define __GST_GSETTINGS_AUDIO_SINK_H__ + +#include +#include +#include "gstswitchsink.h" + +G_BEGIN_DECLS + +#define GST_TYPE_GSETTINGS_AUDIO_SINK \ + (gst_gsettings_audio_sink_get_type ()) +#define GST_GSETTINGS_AUDIO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GSETTINGS_AUDIO_SINK, \ + GstGSettingsAudioSink)) +#define GST_GSETTINGS_AUDIO_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GSETTINGS_AUDIO_SINK, \ + GstGSettingsAudioSinkClass)) +#define GST_IS_GSETTINGS_AUDIO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GSETTINGS_AUDIO_SINK)) +#define GST_IS_GSETTINGS_AUDIO_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GSETTINGS_AUDIO_SINK)) + +typedef enum +{ + GST_GSETTINGS_AUDIOSINK_PROFILE_SOUNDS, + GST_GSETTINGS_AUDIOSINK_PROFILE_MUSIC, + GST_GSETTINGS_AUDIOSINK_PROFILE_CHAT, + GST_GSETTINGS_AUDIOSINK_PROFILE_NONE /* Internal value only */ +} GstGSettingsAudioSinkProfile; + +typedef struct _GstGSettingsAudioSink { + GstSwitchSink parent; + + GSettings *settings; + + GMainContext *context; + GMainLoop *loop; + gulong changed_id; + + GstGSettingsAudioSinkProfile profile; + gchar *gsettings_str; +} GstGSettingsAudioSink; + +typedef struct _GstGSettingsAudioSinkClass { + GstSwitchSinkClass parent_class; +} GstGSettingsAudioSinkClass; + +GType gst_gsettings_audio_sink_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSETTINGS_AUDIO_SINK_H__ */ diff --git a/ext/gsettings/gstgsettingsaudiosrc.c b/ext/gsettings/gstgsettingsaudiosrc.c new file mode 100644 index 0000000..844c8eb --- /dev/null +++ b/ext/gsettings/gstgsettingsaudiosrc.c @@ -0,0 +1,245 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-gsettingsaudiosrc + * + * This element outputs sound to the audiosrc that has been configured in + * GSettings by the user. + * + * + * Example launch line + * |[ + * gst-launch gsettingsaudiosrc ! audioconvert ! audioresample ! autoaudiosink + * ]| Play from configured audiosrc + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "gstgsettingsaudiosrc.h" +#include "gstgsettings.h" + +GST_BOILERPLATE (GstGSettingsAudioSrc, gst_gsettings_audio_src, GstSwitchSrc, + GST_TYPE_SWITCH_SRC); + +static gboolean +gst_gsettings_audio_src_change_child (GstGSettingsAudioSrc * src) +{ + gchar *new_string; + GError *err = NULL; + GstElement *new_kid; + + GST_OBJECT_LOCK (src); + new_string = + g_settings_get_string (src->settings, GST_GSETTINGS_KEY_AUDIOSRC); + + if (new_string != NULL && src->gsettings_str != NULL && + (strlen (new_string) == 0 || + strcmp (src->gsettings_str, new_string) == 0)) { + g_free (new_string); + GST_DEBUG_OBJECT (src, + "GSettings key was updated, but it didn't change. Ignoring"); + GST_OBJECT_UNLOCK (src); + return TRUE; + } + GST_OBJECT_UNLOCK (src); + + GST_DEBUG_OBJECT (src, "GSettings key changed from '%s' to '%s'", + GST_STR_NULL (src->gsettings_str), GST_STR_NULL (new_string)); + + if (new_string) { + new_kid = gst_parse_bin_from_description (new_string, TRUE, &err); + if (err) { + GST_ERROR_OBJECT (src, "error creating bin '%s': %s", new_string, + err->message); + g_error_free (err); + } + } else { + new_kid = NULL; + } + + if (new_kid == NULL) { + GST_ELEMENT_ERROR (src, LIBRARY, SETTINGS, (NULL), + ("Failed to render audio src from GSettings")); + goto fail; + } + + if (!gst_switch_src_set_child (GST_SWITCH_SRC (src), new_kid)) { + GST_WARNING_OBJECT (src, "Failed to update child element"); + goto fail; + } + + g_free (src->gsettings_str); + src->gsettings_str = new_string; + + return TRUE; + +fail: + g_free (new_string); + return FALSE; +} + +static void +on_changed (GSettings * settings, gchar * key, GstGSettingsAudioSrc * src) +{ + if (!g_str_equal (key, "audiosrc")); + return; + + gst_gsettings_audio_src_change_child (src); +} + +static gboolean +gst_gsettings_audio_src_start (GstGSettingsAudioSrc * src) +{ + GError *err = NULL; + GThread *thread; + + src->loop = g_main_loop_new (src->context, FALSE); + + thread = + g_thread_create ((GThreadFunc) g_main_loop_run, src->loop, FALSE, &err); + if (!thread) { + GST_ELEMENT_ERROR (src, CORE, STATE_CHANGE, (NULL), + ("Failed to create new thread: %s", err->message)); + g_error_free (err); + g_main_loop_unref (src->loop); + src->loop = NULL; + return FALSE; + } + + g_main_context_push_thread_default (src->context); + src->settings = g_settings_new (GST_GSETTINGS_SCHEMA); + src->changed_id = + g_signal_connect_data (G_OBJECT (src->settings), "changed", + G_CALLBACK (on_changed), gst_object_ref (src), + (GClosureNotify) gst_object_unref, 0); + g_main_context_pop_thread_default (src->context); + + return TRUE; +} + +static gboolean +gst_gsettings_audio_src_reset (GstGSettingsAudioSrc * src) +{ + gst_switch_src_set_child (GST_SWITCH_SRC (src), NULL); + + if (src->changed_id) { + g_signal_handler_disconnect (src->settings, src->changed_id); + src->changed_id = 0; + } + + if (src->loop) { + g_main_loop_quit (src->loop); + g_main_loop_unref (src->loop); + src->loop = NULL; + } + + if (src->settings) { + g_object_unref (src->settings); + src->settings = NULL; + } + + GST_OBJECT_LOCK (src); + g_free (src->gsettings_str); + src->gsettings_str = NULL; + GST_OBJECT_UNLOCK (src); + + return TRUE; +} + +static void +gst_gsettings_audio_src_finalize (GObject * object) +{ + GstGSettingsAudioSrc *src = GST_GSETTINGS_AUDIO_SRC (object); + + g_free (src->gsettings_str); + g_main_context_unref (src->context); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, ((GObject *) (src))); +} + +static GstStateChangeReturn +gst_gsettings_audio_src_change_state (GstElement * element, + GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstGSettingsAudioSrc *src = GST_GSETTINGS_AUDIO_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_gsettings_audio_src_start (src)) + return GST_STATE_CHANGE_FAILURE; + + if (!gst_gsettings_audio_src_change_child (src)) { + gst_gsettings_audio_src_reset (src); + return GST_STATE_CHANGE_FAILURE; + } + break; + default: + break; + } + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_gsettings_audio_src_reset (src); + break; + default: + break; + } + + return ret; +} + +static void +gst_gsettings_audio_src_init (GstGSettingsAudioSrc * src, + GstGSettingsAudioSrcClass * g_class) +{ + src->context = g_main_context_new (); + gst_gsettings_audio_src_reset (src); +} + +static void +gst_gsettings_audio_src_base_init (gpointer klass) +{ + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (eklass, "GSettings audio src", + "Src/Audio", + "Audio src embedding the GSettings preferences for audio input", + "Sebastian Dröge "); +} + +static void +gst_gsettings_audio_src_class_init (GstGSettingsAudioSrcClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + oklass->finalize = gst_gsettings_audio_src_finalize; + + eklass->change_state = gst_gsettings_audio_src_change_state; +} diff --git a/ext/gsettings/gstgsettingsaudiosrc.h b/ext/gsettings/gstgsettingsaudiosrc.h new file mode 100644 index 0000000..affecf6 --- /dev/null +++ b/ext/gsettings/gstgsettingsaudiosrc.h @@ -0,0 +1,62 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSETTINGS_AUDIO_SRC_H__ +#define __GST_GSETTINGS_AUDIO_SRC_H__ + +#include +#include +#include "gstswitchsrc.h" + +G_BEGIN_DECLS + +#define GST_TYPE_GSETTINGS_AUDIO_SRC \ + (gst_gsettings_audio_src_get_type ()) +#define GST_GSETTINGS_AUDIO_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GSETTINGS_AUDIO_SRC, \ + GstGSettingsAudioSrc)) +#define GST_GSETTINGS_AUDIO_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GSETTINGS_AUDIO_SRC, \ + GstGSettingsAudioSrcClass)) +#define GST_IS_GSETTINGS_AUDIO_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GSETTINGS_AUDIO_SRC)) +#define GST_IS_GSETTINGS_AUDIO_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GSETTINGS_AUDIO_SRC)) + +typedef struct _GstGSettingsAudioSrc { + GstSwitchSrc parent; + + GSettings *settings; + + GMainContext *context; + GMainLoop *loop; + gulong changed_id; + + gchar *gsettings_str; +} GstGSettingsAudioSrc; + +typedef struct _GstGSettingsAudioSrcClass { + GstSwitchSrcClass parent_class; +} GstGSettingsAudioSrcClass; + +GType gst_gsettings_audio_src_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSETTINGS_AUDIO_SRC_H__ */ diff --git a/ext/gsettings/gstgsettingsvideosink.c b/ext/gsettings/gstgsettingsvideosink.c new file mode 100644 index 0000000..2444c7c --- /dev/null +++ b/ext/gsettings/gstgsettingsvideosink.c @@ -0,0 +1,245 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-gsettingsvideosink + * + * This element outputs sound to the videosink that has been configured in + * GSettings by the user. + * + * + * Example launch line + * |[ + * gst-launch videotestsrc ! ffmpegcolorspace ! videoscale ! gsettingsvideosink + * ]| Play on configured videosink + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "gstgsettingsvideosink.h" +#include "gstgsettings.h" + +GST_BOILERPLATE (GstGSettingsVideoSink, gst_gsettings_video_sink, GstSwitchSink, + GST_TYPE_SWITCH_SINK); + +static gboolean +gst_gsettings_video_sink_change_child (GstGSettingsVideoSink * sink) +{ + gchar *new_string; + GError *err = NULL; + GstElement *new_kid; + + GST_OBJECT_LOCK (sink); + new_string = + g_settings_get_string (sink->settings, GST_GSETTINGS_KEY_VIDEOSINK); + + if (new_string != NULL && sink->gsettings_str != NULL && + (strlen (new_string) == 0 || + strcmp (sink->gsettings_str, new_string) == 0)) { + g_free (new_string); + GST_DEBUG_OBJECT (sink, + "GSettings key was updated, but it didn't change. Ignoring"); + GST_OBJECT_UNLOCK (sink); + return TRUE; + } + GST_OBJECT_UNLOCK (sink); + + GST_DEBUG_OBJECT (sink, "GSettings key changed from '%s' to '%s'", + GST_STR_NULL (sink->gsettings_str), GST_STR_NULL (new_string)); + + if (new_string) { + new_kid = gst_parse_bin_from_description (new_string, TRUE, &err); + if (err) { + GST_ERROR_OBJECT (sink, "error creating bin '%s': %s", new_string, + err->message); + g_error_free (err); + } + } else { + new_kid = NULL; + } + + if (new_kid == NULL) { + GST_ELEMENT_ERROR (sink, LIBRARY, SETTINGS, (NULL), + ("Failed to render video sink from GSettings")); + goto fail; + } + + if (!gst_switch_sink_set_child (GST_SWITCH_SINK (sink), new_kid)) { + GST_WARNING_OBJECT (sink, "Failed to update child element"); + goto fail; + } + + g_free (sink->gsettings_str); + sink->gsettings_str = new_string; + + return TRUE; + +fail: + g_free (new_string); + return FALSE; +} + +static void +on_changed (GSettings * settings, gchar * key, GstGSettingsVideoSink * sink) +{ + if (!g_str_has_suffix (key, "videosink")); + return; + + gst_gsettings_video_sink_change_child (sink); +} + +static gboolean +gst_gsettings_video_sink_start (GstGSettingsVideoSink * sink) +{ + GError *err = NULL; + GThread *thread; + + sink->loop = g_main_loop_new (sink->context, FALSE); + + thread = + g_thread_create ((GThreadFunc) g_main_loop_run, sink->loop, FALSE, &err); + if (!thread) { + GST_ELEMENT_ERROR (sink, CORE, STATE_CHANGE, (NULL), + ("Failed to create new thread: %s", err->message)); + g_error_free (err); + g_main_loop_unref (sink->loop); + sink->loop = NULL; + return FALSE; + } + + g_main_context_push_thread_default (sink->context); + sink->settings = g_settings_new (GST_GSETTINGS_SCHEMA); + sink->changed_id = + g_signal_connect_data (G_OBJECT (sink->settings), "changed", + G_CALLBACK (on_changed), gst_object_ref (sink), + (GClosureNotify) gst_object_unref, 0); + g_main_context_pop_thread_default (sink->context); + + return TRUE; +} + +static gboolean +gst_gsettings_video_sink_reset (GstGSettingsVideoSink * sink) +{ + gst_switch_sink_set_child (GST_SWITCH_SINK (sink), NULL); + + if (sink->changed_id) { + g_signal_handler_disconnect (sink->settings, sink->changed_id); + sink->changed_id = 0; + } + + if (sink->loop) { + g_main_loop_quit (sink->loop); + g_main_loop_unref (sink->loop); + sink->loop = NULL; + } + + if (sink->settings) { + g_object_unref (sink->settings); + sink->settings = NULL; + } + + GST_OBJECT_LOCK (sink); + g_free (sink->gsettings_str); + sink->gsettings_str = NULL; + GST_OBJECT_UNLOCK (sink); + + return TRUE; +} + +static void +gst_gsettings_video_sink_finalize (GObject * object) +{ + GstGSettingsVideoSink *sink = GST_GSETTINGS_VIDEO_SINK (object); + + g_free (sink->gsettings_str); + g_main_context_unref (sink->context); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, ((GObject *) (sink))); +} + +static GstStateChangeReturn +gst_gsettings_video_sink_change_state (GstElement * element, + GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstGSettingsVideoSink *sink = GST_GSETTINGS_VIDEO_SINK (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_gsettings_video_sink_start (sink)) + return GST_STATE_CHANGE_FAILURE; + + if (!gst_gsettings_video_sink_change_child (sink)) { + gst_gsettings_video_sink_reset (sink); + return GST_STATE_CHANGE_FAILURE; + } + break; + default: + break; + } + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_gsettings_video_sink_reset (sink); + break; + default: + break; + } + + return ret; +} + +static void +gst_gsettings_video_sink_init (GstGSettingsVideoSink * sink, + GstGSettingsVideoSinkClass * g_class) +{ + sink->context = g_main_context_new (); + gst_gsettings_video_sink_reset (sink); +} + +static void +gst_gsettings_video_sink_base_init (gpointer klass) +{ + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (eklass, "GSettings video sink", + "Sink/Video", + "Video sink embedding the GSettings preferences for video input", + "Sebastian Dröge "); +} + +static void +gst_gsettings_video_sink_class_init (GstGSettingsVideoSinkClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + oklass->finalize = gst_gsettings_video_sink_finalize; + + eklass->change_state = gst_gsettings_video_sink_change_state; +} diff --git a/ext/gsettings/gstgsettingsvideosink.h b/ext/gsettings/gstgsettingsvideosink.h new file mode 100644 index 0000000..d4cdf5d --- /dev/null +++ b/ext/gsettings/gstgsettingsvideosink.h @@ -0,0 +1,62 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSETTINGS_VIDEO_SINK_H__ +#define __GST_GSETTINGS_VIDEO_SINK_H__ + +#include +#include +#include "gstswitchsink.h" + +G_BEGIN_DECLS + +#define GST_TYPE_GSETTINGS_VIDEO_SINK \ + (gst_gsettings_video_sink_get_type ()) +#define GST_GSETTINGS_VIDEO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GSETTINGS_VIDEO_SINK, \ + GstGSettingsVideoSink)) +#define GST_GSETTINGS_VIDEO_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GSETTINGS_VIDEO_SINK, \ + GstGSettingsVideoSinkClass)) +#define GST_IS_GSETTINGS_VIDEO_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GSETTINGS_VIDEO_SINK)) +#define GST_IS_GSETTINGS_VIDEO_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GSETTINGS_VIDEO_SINK)) + +typedef struct _GstGSettingsVideoSink { + GstSwitchSink parent; + + GSettings *settings; + + GMainContext *context; + GMainLoop *loop; + gulong changed_id; + + gchar *gsettings_str; +} GstGSettingsVideoSink; + +typedef struct _GstGSettingsVideoSinkClass { + GstSwitchSinkClass parent_class; +} GstGSettingsVideoSinkClass; + +GType gst_gsettings_video_sink_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSETTINGS_VIDEO_SINK_H__ */ diff --git a/ext/gsettings/gstgsettingsvideosrc.c b/ext/gsettings/gstgsettingsvideosrc.c new file mode 100644 index 0000000..42ee5fe --- /dev/null +++ b/ext/gsettings/gstgsettingsvideosrc.c @@ -0,0 +1,245 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-gsettingsvideosrc + * + * This element outputs sound to the videosrc that has been configured in + * GSettings by the user. + * + * + * Example launch line + * |[ + * gst-launch gsettingsvideosrc ! ffmpegcolorspace ! videoscale ! autovideosink + * ]| Play from configured videosrc + * + */ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#include "gstgsettingsvideosrc.h" +#include "gstgsettings.h" + +GST_BOILERPLATE (GstGSettingsVideoSrc, gst_gsettings_video_src, GstSwitchSrc, + GST_TYPE_SWITCH_SRC); + +static gboolean +gst_gsettings_video_src_change_child (GstGSettingsVideoSrc * src) +{ + gchar *new_string; + GError *err = NULL; + GstElement *new_kid; + + GST_OBJECT_LOCK (src); + new_string = + g_settings_get_string (src->settings, GST_GSETTINGS_KEY_VIDEOSRC); + + if (new_string != NULL && src->gsettings_str != NULL && + (strlen (new_string) == 0 || + strcmp (src->gsettings_str, new_string) == 0)) { + g_free (new_string); + GST_DEBUG_OBJECT (src, + "GSettings key was updated, but it didn't change. Ignoring"); + GST_OBJECT_UNLOCK (src); + return TRUE; + } + GST_OBJECT_UNLOCK (src); + + GST_DEBUG_OBJECT (src, "GSettings key changed from '%s' to '%s'", + GST_STR_NULL (src->gsettings_str), GST_STR_NULL (new_string)); + + if (new_string) { + new_kid = gst_parse_bin_from_description (new_string, TRUE, &err); + if (err) { + GST_ERROR_OBJECT (src, "error creating bin '%s': %s", new_string, + err->message); + g_error_free (err); + } + } else { + new_kid = NULL; + } + + if (new_kid == NULL) { + GST_ELEMENT_ERROR (src, LIBRARY, SETTINGS, (NULL), + ("Failed to render video src from GSettings")); + goto fail; + } + + if (!gst_switch_src_set_child (GST_SWITCH_SRC (src), new_kid)) { + GST_WARNING_OBJECT (src, "Failed to update child element"); + goto fail; + } + + g_free (src->gsettings_str); + src->gsettings_str = new_string; + + return TRUE; + +fail: + g_free (new_string); + return FALSE; +} + +static void +on_changed (GSettings * settings, gchar * key, GstGSettingsVideoSrc * src) +{ + if (!g_str_equal (key, "videosrc")); + return; + + gst_gsettings_video_src_change_child (src); +} + +static gboolean +gst_gsettings_video_src_start (GstGSettingsVideoSrc * src) +{ + GError *err = NULL; + GThread *thread; + + src->loop = g_main_loop_new (src->context, FALSE); + + thread = + g_thread_create ((GThreadFunc) g_main_loop_run, src->loop, FALSE, &err); + if (!thread) { + GST_ELEMENT_ERROR (src, CORE, STATE_CHANGE, (NULL), + ("Failed to create new thread: %s", err->message)); + g_error_free (err); + g_main_loop_unref (src->loop); + src->loop = NULL; + return FALSE; + } + + g_main_context_push_thread_default (src->context); + src->settings = g_settings_new (GST_GSETTINGS_SCHEMA); + src->changed_id = + g_signal_connect_data (G_OBJECT (src->settings), "changed", + G_CALLBACK (on_changed), gst_object_ref (src), + (GClosureNotify) gst_object_unref, 0); + g_main_context_pop_thread_default (src->context); + + return TRUE; +} + +static gboolean +gst_gsettings_video_src_reset (GstGSettingsVideoSrc * src) +{ + gst_switch_src_set_child (GST_SWITCH_SRC (src), NULL); + + if (src->changed_id) { + g_signal_handler_disconnect (src->settings, src->changed_id); + src->changed_id = 0; + } + + if (src->loop) { + g_main_loop_quit (src->loop); + g_main_loop_unref (src->loop); + src->loop = NULL; + } + + if (src->settings) { + g_object_unref (src->settings); + src->settings = NULL; + } + + GST_OBJECT_LOCK (src); + g_free (src->gsettings_str); + src->gsettings_str = NULL; + GST_OBJECT_UNLOCK (src); + + return TRUE; +} + +static void +gst_gsettings_video_src_finalize (GObject * object) +{ + GstGSettingsVideoSrc *src = GST_GSETTINGS_VIDEO_SRC (object); + + g_free (src->gsettings_str); + g_main_context_unref (src->context); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, ((GObject *) (src))); +} + +static GstStateChangeReturn +gst_gsettings_video_src_change_state (GstElement * element, + GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstGSettingsVideoSrc *src = GST_GSETTINGS_VIDEO_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (!gst_gsettings_video_src_start (src)) + return GST_STATE_CHANGE_FAILURE; + + if (!gst_gsettings_video_src_change_child (src)) { + gst_gsettings_video_src_reset (src); + return GST_STATE_CHANGE_FAILURE; + } + break; + default: + break; + } + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_gsettings_video_src_reset (src); + break; + default: + break; + } + + return ret; +} + +static void +gst_gsettings_video_src_init (GstGSettingsVideoSrc * src, + GstGSettingsVideoSrcClass * g_class) +{ + src->context = g_main_context_new (); + gst_gsettings_video_src_reset (src); +} + +static void +gst_gsettings_video_src_base_init (gpointer klass) +{ + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (eklass, "GSettings video src", + "Src/Video", + "Video src embedding the GSettings preferences for video input", + "Sebastian Dröge "); +} + +static void +gst_gsettings_video_src_class_init (GstGSettingsVideoSrcClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + + oklass->finalize = gst_gsettings_video_src_finalize; + + eklass->change_state = gst_gsettings_video_src_change_state; +} diff --git a/ext/gsettings/gstgsettingsvideosrc.h b/ext/gsettings/gstgsettingsvideosrc.h new file mode 100644 index 0000000..9718865 --- /dev/null +++ b/ext/gsettings/gstgsettingsvideosrc.h @@ -0,0 +1,62 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSETTINGS_VIDEO_SRC_H__ +#define __GST_GSETTINGS_VIDEO_SRC_H__ + +#include +#include +#include "gstswitchsrc.h" + +G_BEGIN_DECLS + +#define GST_TYPE_GSETTINGS_VIDEO_SRC \ + (gst_gsettings_video_src_get_type ()) +#define GST_GSETTINGS_VIDEO_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_GSETTINGS_VIDEO_SRC, \ + GstGSettingsVideoSrc)) +#define GST_GSETTINGS_VIDEO_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_GSETTINGS_VIDEO_SRC, \ + GstGSettingsVideoSrcClass)) +#define GST_IS_GSETTINGS_VIDEO_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_GSETTINGS_VIDEO_SRC)) +#define GST_IS_GSETTINGS_VIDEO_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_GSETTINGS_VIDEO_SRC)) + +typedef struct _GstGSettingsVideoSrc { + GstSwitchSrc parent; + + GSettings *settings; + + GMainContext *context; + GMainLoop *loop; + gulong changed_id; + + gchar *gsettings_str; +} GstGSettingsVideoSrc; + +typedef struct _GstGSettingsVideoSrcClass { + GstSwitchSrcClass parent_class; +} GstGSettingsVideoSrcClass; + +GType gst_gsettings_video_src_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSETTINGS_VIDEO_SRC_H__ */ diff --git a/ext/gsettings/gstswitchsink.c b/ext/gsettings/gstswitchsink.c new file mode 100644 index 0000000..1fccf68 --- /dev/null +++ b/ext/gsettings/gstswitchsink.c @@ -0,0 +1,270 @@ +/* GStreamer + * Copyright (c) 2005 Ronald S. Bultje + * Copyright (c) 2006 Jürg Billeter + * Copyright (c) 2007 Jan Schmidt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstswitchsink.h" + +GST_DEBUG_CATEGORY_STATIC (switch_debug); +#define GST_CAT_DEFAULT switch_debug + +static void gst_switch_sink_dispose (GObject * object); +static GstStateChangeReturn +gst_switch_sink_change_state (GstElement * element, GstStateChange transition); + +enum +{ + PROP_0 +}; + +GST_BOILERPLATE (GstSwitchSink, gst_switch_sink, GstBin, GST_TYPE_BIN); + +static void +gst_switch_sink_base_init (gpointer klass) +{ + GST_DEBUG_CATEGORY_INIT (switch_debug, "switchsink", 0, "switchsink element"); +} + +static void +gst_switch_sink_class_init (GstSwitchSinkClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + GstPadTemplate *child_pad_templ; + + oklass->dispose = gst_switch_sink_dispose; + eklass->change_state = gst_switch_sink_change_state; + + /* Provide a default pad template if the child didn't */ + child_pad_templ = gst_element_class_get_pad_template (eklass, "sink"); + if (child_pad_templ == NULL) { + gst_element_class_add_pad_template (eklass, + gst_static_pad_template_get (&sink_template)); + } +} + +static gboolean +gst_switch_sink_reset (GstSwitchSink * sink) +{ + /* this will install fakesink if no other child has been set, + * otherwise we rely on the subclass to know when to unset its + * custom kid */ + if (sink->kid == NULL) { + return gst_switch_sink_set_child (sink, NULL); + } + + return TRUE; +} + +static void +gst_switch_sink_init (GstSwitchSink * sink, GstSwitchSinkClass * g_class) +{ + GstElementClass *eklass = GST_ELEMENT_GET_CLASS (sink); + GstPadTemplate *templ; + + templ = gst_element_class_get_pad_template (eklass, "sink"); + sink->pad = gst_ghost_pad_new_no_target_from_template ("sink", templ); + gst_element_add_pad (GST_ELEMENT (sink), sink->pad); + + gst_switch_sink_reset (sink); + + GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_IS_SINK); +} + +static void +gst_switch_sink_dispose (GObject * object) +{ + GstSwitchSink *sink = GST_SWITCH_SINK (object); + GstObject *new_kid, *kid; + + GST_OBJECT_LOCK (sink); + new_kid = GST_OBJECT_CAST (sink->new_kid); + sink->new_kid = NULL; + + kid = GST_OBJECT_CAST (sink->kid); + sink->kid = NULL; + GST_OBJECT_UNLOCK (sink); + + gst_object_replace (&new_kid, NULL); + gst_object_replace (&kid, NULL); + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static gboolean +gst_switch_sink_commit_new_kid (GstSwitchSink * sink) +{ + GstPad *targetpad; + GstState kid_state; + GstElement *new_kid, *old_kid; + gboolean is_fakesink = FALSE; + GstBus *bus; + + /* need locking around member accesses */ + GST_OBJECT_LOCK (sink); + /* If we're currently changing state, set the child to the next state + * we're transitioning too, rather than our current state which is + * about to change */ + if (GST_STATE_NEXT (sink) != GST_STATE_VOID_PENDING) + kid_state = GST_STATE_NEXT (sink); + else + kid_state = GST_STATE (sink); + + new_kid = sink->new_kid ? gst_object_ref (sink->new_kid) : NULL; + sink->new_kid = NULL; + GST_OBJECT_UNLOCK (sink); + + /* Fakesink by default if NULL is passed as the new child */ + if (new_kid == NULL) { + GST_DEBUG_OBJECT (sink, "Replacing kid with fakesink"); + new_kid = gst_element_factory_make ("fakesink", "testsink"); + if (new_kid == NULL) { + GST_ERROR_OBJECT (sink, "Failed to create fakesink"); + return FALSE; + } + /* Add a reference, as it would if the element came from sink->new_kid */ + gst_object_ref (new_kid); + g_object_set (new_kid, "sync", TRUE, NULL); + is_fakesink = TRUE; + } else { + GST_DEBUG_OBJECT (sink, "Setting new kid"); + } + + /* set temporary bus of our own to catch error messages from the child + * (could we just set our own bus on it, or would the state change messages + * from the not-yet-added element confuse the state change algorithm? Let's + * play it safe for now) */ + bus = gst_bus_new (); + gst_element_set_bus (new_kid, bus); + gst_object_unref (bus); + + if (gst_element_set_state (new_kid, kid_state) == GST_STATE_CHANGE_FAILURE) { + GstMessage *msg; + + /* check if child posted an error message and if so re-post it on our bus + * so that the application gets to see a decent error and not our generic + * fallback error message which is completely indecipherable to the user */ + msg = gst_bus_pop_filtered (GST_ELEMENT_BUS (new_kid), GST_MESSAGE_ERROR); + if (msg) { + GST_INFO_OBJECT (sink, "Forwarding kid error: %" GST_PTR_FORMAT, msg); + gst_element_post_message (GST_ELEMENT (sink), msg); + } + GST_ELEMENT_ERROR (sink, CORE, STATE_CHANGE, (NULL), + ("Failed to set state on new child.")); + gst_element_set_bus (new_kid, NULL); + gst_object_unref (new_kid); + return FALSE; + } + gst_element_set_bus (new_kid, NULL); + gst_bin_add (GST_BIN (sink), new_kid); + + /* Now, replace the existing child */ + GST_OBJECT_LOCK (sink); + old_kid = sink->kid; + sink->kid = new_kid; + /* Mark whether a custom kid or fakesink has been installed */ + sink->have_kid = !is_fakesink; + GST_OBJECT_UNLOCK (sink); + + /* kill old element */ + if (old_kid) { + GST_DEBUG_OBJECT (sink, "Removing old kid %" GST_PTR_FORMAT, old_kid); + gst_element_set_state (old_kid, GST_STATE_NULL); + gst_bin_remove (GST_BIN (sink), old_kid); + gst_object_unref (old_kid); + /* Don't lose the SINK flag */ + GST_OBJECT_FLAG_SET (sink, GST_ELEMENT_IS_SINK); + } + + /* re-attach ghostpad */ + GST_DEBUG_OBJECT (sink, "Creating new ghostpad"); + targetpad = gst_element_get_static_pad (sink->kid, "sink"); + gst_ghost_pad_set_target (GST_GHOST_PAD (sink->pad), targetpad); + gst_object_unref (targetpad); + GST_DEBUG_OBJECT (sink, "done changing child of switchsink"); + + /* FIXME: Push new-segment info and pre-roll buffer(s) into the kid */ + + return TRUE; +} + +gboolean +gst_switch_sink_set_child (GstSwitchSink * sink, GstElement * new_kid) +{ + GstState cur, next; + GstElement **p_kid; + + /* Nothing to do if clearing the child and we've already installed fakesink */ + if (new_kid == NULL && sink->kid != NULL && sink->have_kid == FALSE) + return TRUE; + + /* Store the new kid to be committed later */ + GST_OBJECT_LOCK (sink); + cur = GST_STATE (sink); + next = GST_STATE_NEXT (sink); + p_kid = &sink->new_kid; + gst_object_replace ((GstObject **) p_kid, (GstObject *) new_kid); + GST_OBJECT_UNLOCK (sink); + if (new_kid) + gst_object_unref (new_kid); + + /* Sometime, it would be lovely to allow sink changes even when + * already running, but this involves sending an appropriate new-segment + * and possibly prerolling etc */ + /* FIXME: Block the pad and replace the kid when it completes */ + if (cur > GST_STATE_READY || next == GST_STATE_PAUSED) { + GST_DEBUG_OBJECT (sink, + "Switch-sink is already running. Ignoring change of child."); + gst_object_unref (new_kid); + return TRUE; + } + + return gst_switch_sink_commit_new_kid (sink); +} + +static GstStateChangeReturn +gst_switch_sink_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstSwitchSink *sink = GST_SWITCH_SINK (element); + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + if (!gst_switch_sink_reset (sink)) + ret = GST_STATE_CHANGE_FAILURE; + break; + default: + break; + } + + return ret; +} diff --git a/ext/gsettings/gstswitchsink.h b/ext/gsettings/gstswitchsink.h new file mode 100644 index 0000000..556e755 --- /dev/null +++ b/ext/gsettings/gstswitchsink.h @@ -0,0 +1,62 @@ +/* GStreamer + * Copyright (c) 2005 Ronald S. Bultje + * Copyright (c) 2007 Jan Schmidt + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_SWITCH_SINK_H__ +#define __GST_SWITCH_SINK_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SWITCH_SINK \ + (gst_switch_sink_get_type ()) +#define GST_SWITCH_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SWITCH_SINK, \ + GstSwitchSink)) +#define GST_SWITCH_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SWITCH_SINK, \ + GstSwitchSinkClass)) +#define GST_IS_SWITCH_SINK(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SWITCH_SINK)) +#define GST_IS_SWITCH_SINK_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SWITCH_SINK)) + +typedef struct _GstSwitchSink { + GstBin parent; + + GstElement *kid; + GstElement *new_kid; + GstPad *pad; + + /* If a custom child has been set... */ + gboolean have_kid; +} GstSwitchSink; + +typedef struct _GstSwitchSinkClass { + GstBinClass parent_class; +} GstSwitchSinkClass; + +GType gst_switch_sink_get_type (void); + +gboolean gst_switch_sink_set_child (GstSwitchSink *ssink, GstElement *new_kid); + +G_END_DECLS + +#endif /* __GST_SWITCH_SINK_H__ */ diff --git a/ext/gsettings/gstswitchsrc.c b/ext/gsettings/gstswitchsrc.c new file mode 100644 index 0000000..0136e4a --- /dev/null +++ b/ext/gsettings/gstswitchsrc.c @@ -0,0 +1,262 @@ +/* GStreamer + * Copyright (c) 2005 Ronald S. Bultje + * Copyright (c) 2006 Jürg Billeter + * Copyright (c) 2007 Jan Schmidt + * Copyright (c) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstswitchsrc.h" + +GST_DEBUG_CATEGORY_STATIC (switch_debug); +#define GST_CAT_DEFAULT switch_debug + +static void gst_switch_src_dispose (GObject * object); +static GstStateChangeReturn +gst_switch_src_change_state (GstElement * element, GstStateChange transition); + +GST_BOILERPLATE (GstSwitchSrc, gst_switch_src, GstBin, GST_TYPE_BIN); + +static void +gst_switch_src_base_init (gpointer klass) +{ + GST_DEBUG_CATEGORY_INIT (switch_debug, "switchsrc", 0, "switchsrc element"); +} + +static void +gst_switch_src_class_init (GstSwitchSrcClass * klass) +{ + GObjectClass *oklass = G_OBJECT_CLASS (klass); + GstElementClass *eklass = GST_ELEMENT_CLASS (klass); + static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); + GstPadTemplate *child_pad_templ; + + oklass->dispose = gst_switch_src_dispose; + eklass->change_state = gst_switch_src_change_state; + + /* Provide a default pad template if the child didn't */ + child_pad_templ = gst_element_class_get_pad_template (eklass, "src"); + if (child_pad_templ == NULL) { + gst_element_class_add_pad_template (eklass, + gst_static_pad_template_get (&src_template)); + } +} + +static gboolean +gst_switch_src_reset (GstSwitchSrc * src) +{ + /* this will install fakesrc if no other child has been set, + * otherwise we rely on the subclass to know when to unset its + * custom kid */ + if (src->kid == NULL) { + return gst_switch_src_set_child (src, NULL); + } + + return TRUE; +} + +static void +gst_switch_src_init (GstSwitchSrc * src, GstSwitchSrcClass * g_class) +{ + GstElementClass *eklass = GST_ELEMENT_GET_CLASS (src); + GstPadTemplate *templ; + + templ = gst_element_class_get_pad_template (eklass, "src"); + src->pad = gst_ghost_pad_new_no_target_from_template ("src", templ); + gst_element_add_pad (GST_ELEMENT (src), src->pad); + + gst_switch_src_reset (src); + + GST_OBJECT_FLAG_SET (src, GST_ELEMENT_IS_SOURCE); +} + +static void +gst_switch_src_dispose (GObject * object) +{ + GstSwitchSrc *src = GST_SWITCH_SRC (object); + GstObject *new_kid, *kid; + + GST_OBJECT_LOCK (src); + new_kid = GST_OBJECT_CAST (src->new_kid); + src->new_kid = NULL; + + kid = GST_OBJECT_CAST (src->kid); + src->kid = NULL; + GST_OBJECT_UNLOCK (src); + + gst_object_replace (&new_kid, NULL); + gst_object_replace (&kid, NULL); + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static gboolean +gst_switch_src_commit_new_kid (GstSwitchSrc * src) +{ + GstPad *targetpad; + GstState kid_state; + GstElement *new_kid, *old_kid; + gboolean is_fakesrc = FALSE; + GstBus *bus; + + /* need locking around member accesses */ + GST_OBJECT_LOCK (src); + /* If we're currently changing state, set the child to the next state + * we're transitioning too, rather than our current state which is + * about to change */ + if (GST_STATE_NEXT (src) != GST_STATE_VOID_PENDING) + kid_state = GST_STATE_NEXT (src); + else + kid_state = GST_STATE (src); + + new_kid = src->new_kid ? gst_object_ref (src->new_kid) : NULL; + src->new_kid = NULL; + GST_OBJECT_UNLOCK (src); + + /* Fakesrc by default if NULL is passed as the new child */ + if (new_kid == NULL) { + GST_DEBUG_OBJECT (src, "Replacing kid with fakesrc"); + new_kid = gst_element_factory_make ("fakesrc", "testsrc"); + if (new_kid == NULL) { + GST_ERROR_OBJECT (src, "Failed to create fakesrc"); + return FALSE; + } + /* Add a reference, as it would if the element came from src->new_kid */ + gst_object_ref (new_kid); + is_fakesrc = TRUE; + } else { + GST_DEBUG_OBJECT (src, "Setting new kid"); + } + + /* set temporary bus of our own to catch error messages from the child + * (could we just set our own bus on it, or would the state change messages + * from the not-yet-added element confuse the state change algorithm? Let's + * play it safe for now) */ + bus = gst_bus_new (); + gst_element_set_bus (new_kid, bus); + gst_object_unref (bus); + + if (gst_element_set_state (new_kid, kid_state) == GST_STATE_CHANGE_FAILURE) { + GstMessage *msg; + + /* check if child posted an error message and if so re-post it on our bus + * so that the application gets to see a decent error and not our generic + * fallback error message which is completely indecipherable to the user */ + msg = gst_bus_pop_filtered (GST_ELEMENT_BUS (new_kid), GST_MESSAGE_ERROR); + if (msg) { + GST_INFO_OBJECT (src, "Forwarding kid error: %" GST_PTR_FORMAT, msg); + gst_element_post_message (GST_ELEMENT (src), msg); + } + GST_ELEMENT_ERROR (src, CORE, STATE_CHANGE, (NULL), + ("Failed to set state on new child.")); + gst_element_set_bus (new_kid, NULL); + gst_object_unref (new_kid); + return FALSE; + } + gst_element_set_bus (new_kid, NULL); + gst_bin_add (GST_BIN (src), new_kid); + + /* Now, replace the existing child */ + GST_OBJECT_LOCK (src); + old_kid = src->kid; + src->kid = new_kid; + /* Mark whether a custom kid or fakesrc has been installed */ + src->have_kid = !is_fakesrc; + GST_OBJECT_UNLOCK (src); + + /* kill old element */ + if (old_kid) { + GST_DEBUG_OBJECT (src, "Removing old kid %" GST_PTR_FORMAT, old_kid); + gst_element_set_state (old_kid, GST_STATE_NULL); + gst_bin_remove (GST_BIN (src), old_kid); + gst_object_unref (old_kid); + /* Don't lose the SOURCE flag */ + GST_OBJECT_FLAG_SET (src, GST_ELEMENT_IS_SOURCE); + } + + /* re-attach ghostpad */ + GST_DEBUG_OBJECT (src, "Creating new ghostpad"); + targetpad = gst_element_get_static_pad (src->kid, "src"); + gst_ghost_pad_set_target (GST_GHOST_PAD (src->pad), targetpad); + gst_object_unref (targetpad); + GST_DEBUG_OBJECT (src, "done changing child of switchsrc"); + + return TRUE; +} + +gboolean +gst_switch_src_set_child (GstSwitchSrc * src, GstElement * new_kid) +{ + GstState cur, next; + GstElement **p_kid; + + /* Nothing to do if clearing the child and we've already installed fakesrc */ + if (new_kid == NULL && src->kid != NULL && src->have_kid == FALSE) + return TRUE; + + /* Store the new kid to be committed later */ + GST_OBJECT_LOCK (src); + cur = GST_STATE (src); + next = GST_STATE_NEXT (src); + p_kid = &src->new_kid; + gst_object_replace ((GstObject **) p_kid, (GstObject *) new_kid); + GST_OBJECT_UNLOCK (src); + if (new_kid) + gst_object_unref (new_kid); + + /* Sometime, it would be lovely to allow src changes even when + * already running */ + /* FIXME: Block the pad and replace the kid when it completes */ + if (cur > GST_STATE_READY || next == GST_STATE_PAUSED) { + GST_DEBUG_OBJECT (src, + "Switch-src is already running. Ignoring change of child."); + gst_object_unref (new_kid); + return TRUE; + } + + return gst_switch_src_commit_new_kid (src); +} + +static GstStateChangeReturn +gst_switch_src_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstSwitchSrc *src = GST_SWITCH_SRC (element); + + ret = GST_CALL_PARENT_WITH_DEFAULT (GST_ELEMENT_CLASS, change_state, + (element, transition), GST_STATE_CHANGE_SUCCESS); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + if (!gst_switch_src_reset (src)) + ret = GST_STATE_CHANGE_FAILURE; + break; + default: + break; + } + + return ret; +} diff --git a/ext/gsettings/gstswitchsrc.h b/ext/gsettings/gstswitchsrc.h new file mode 100644 index 0000000..6c550ad --- /dev/null +++ b/ext/gsettings/gstswitchsrc.h @@ -0,0 +1,57 @@ +/* GStreamer + * + * Copyright (c) 2005 Ronald S. Bultje + * Copyright (c) 2005 Tim-Philipp Müller + * Copyright (c) 2007 Jan Schmidt + * Copyright (c) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_SWITCH_SRC_H__ +#define __GST_SWITCH_SRC_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_SWITCH_SRC (gst_switch_src_get_type ()) +#define GST_SWITCH_SRC(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_SWITCH_SRC, GstSwitchSrc)) +#define GST_SWITCH_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_SWITCH_SRC, GstSwitchSrcClass)) +#define GST_IS_SWITCH_SRC(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_SWITCH_SRC)) +#define GST_IS_SWITCH_SRC_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_SWITCH_SRC)) + +typedef struct _GstSwitchSrc { + GstBin parent; + + GstElement *kid; + GstElement *new_kid; + GstPad *pad; + + /* If a custom child has been set... */ + gboolean have_kid; +} GstSwitchSrc; + +typedef struct _GstSwitchSrcClass { + GstBinClass parent_class; +} GstSwitchSrcClass; + +GType gst_switch_src_get_type (void); +gboolean gst_switch_src_set_child (GstSwitchSrc *ssrc, GstElement *new_kid); + +G_END_DECLS + +#endif /* __GST_SWITCH_SRC_H__ */ diff --git a/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml.in b/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml.in new file mode 100644 index 0000000..f10e44b --- /dev/null +++ b/ext/gsettings/org.freedesktop.gstreamer.default-elements.gschema.xml.in @@ -0,0 +1,94 @@ + + + + "@DEFAULT_AUDIOSINK@" + default GStreamer sound events audiosink + GStreamer can play audio using any number of + output elements. Some possible choices are osssink, pulsesink + and alsasink. The audiosink can be a partial pipeline instea + of just one element. + + + "Default" + description for default GStreamer sound events audiosink + Describes the selected audiosink element. + + + "@DEFAULT_AUDIOSINK@" + default GStreamer audiosink for Audio/Video Conferencing + GStreamer can play audio using any number of + output elements. Some possible choices are osssink, pulsesink + and alsasink. The audiosink can be a partial pipeline instea + of just one element. + + + "Default" + description for default GStreamer audiosink for Audio/Video Conferencing + Describes the selected audiosink element. + + + "@DEFAULT_AUDIOSINK@" + default GStreamer audiosink for Music and Movies + GStreamer can play audio using any number of + output elements. Some possible choices are osssink, pulsesink + and alsasink. The audiosink can be a partial pipeline instea + of just one element. + + + "Default" + description for default GStreamer audiosink for Music and Movies + Describes the selected audiosink element. + + + "@DEFAULT_VIDEOSINK@" + default GStreamer videosink + GStreamer can play video using any number of + output elements. Some possible choices are xvimagesink, + ximagesink, sdlvideosink and aasink. The videosink can be + a partial pipeline instead of just one element. + + + "Default" + description for default GStreamer videosink + Describes the selected videosink element. + + + "@DEFAULT_AUDIOSRC@" + default GStreamer audiosrc + GStreamer can record audio using any number of + input elements. Some possible choices are osssrc, pulsesrc and + alsasrc. The audio source can be a partial pipeline instead of + just one element. + + + "Default" + description for default GStreamer audiosrc + Describes the selected audiosrc element. + + + "@DEFAULT_VIDEOSRC@" + default GStreamer videosrc + GStreamer can record video from any number of input elements. + Some possible choices are v4lsrc, v4l2src and videotestsrc. The video + source can be a partial pipeline instead of just one element. + + + "Default" + description for default GStreamer videosrc + Describes the selected videosrc element. + + + "@DEFAULT_VISUALIZER@" + default GStreamer visualization + GStreamer can put visualization plugins in a pipeline to + transform audio streams in video frames. Some possible choices are + goom, goom2k1 and synaesthesia. The visualization plugin can be a + partial pipeline instead of just one element. + + + "Default" + description for default GStreamer visualization + Describes the selected visualization element. + + + diff --git a/ext/gsettings/plugin.c b/ext/gsettings/plugin.c new file mode 100644 index 0000000..6d562e8 --- /dev/null +++ b/ext/gsettings/plugin.c @@ -0,0 +1,50 @@ +/* GStreamer + * Copyright (C) 2010 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +#ifdef HAVE_CONFIG_H +#include +#endif + +#include + +#include "gstgsettingsaudiosrc.h" +#include "gstgsettingsaudiosink.h" +#include "gstgsettingsvideosrc.h" +#include "gstgsettingsvideosink.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "gsettingsaudiosink", GST_RANK_NONE, + GST_TYPE_GSETTINGS_AUDIO_SINK) || + !gst_element_register (plugin, "gsettingsaudiosrc", GST_RANK_NONE, + GST_TYPE_GSETTINGS_AUDIO_SRC) || + !gst_element_register (plugin, "gsettingsvideosink", GST_RANK_NONE, + GST_TYPE_GSETTINGS_VIDEO_SINK) || + !gst_element_register (plugin, "gsettingsvideosrc", GST_RANK_NONE, + GST_TYPE_GSETTINGS_VIDEO_SRC)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "gsettings", + "GSettings plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/gsm/Makefile.am b/ext/gsm/Makefile.am new file mode 100644 index 0000000..cd2f0df --- /dev/null +++ b/ext/gsm/Makefile.am @@ -0,0 +1,15 @@ +plugin_LTLIBRARIES = libgstgsm.la + +libgstgsm_la_SOURCES = gstgsm.c gstgsmenc.c gstgsmdec.c +libgstgsm_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) +libgstgsm_la_LIBADD = \ + $(GSM_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) +libgstgsm_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgsm_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstgsmenc.h gstgsmdec.h diff --git a/ext/gsm/Makefile.in b/ext/gsm/Makefile.in new file mode 100644 index 0000000..f5c5625 --- /dev/null +++ b/ext/gsm/Makefile.in @@ -0,0 +1,882 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/gsm +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstgsm_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstgsm_la_OBJECTS = libgstgsm_la-gstgsm.lo \ + libgstgsm_la-gstgsmenc.lo libgstgsm_la-gstgsmdec.lo +libgstgsm_la_OBJECTS = $(am_libgstgsm_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstgsm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstgsm_la_CFLAGS) $(CFLAGS) \ + $(libgstgsm_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstgsm_la_SOURCES) +DIST_SOURCES = $(libgstgsm_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstgsm.la +libgstgsm_la_SOURCES = gstgsm.c gstgsmenc.c gstgsmdec.c +libgstgsm_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_BASE_CFLAGS) + +libgstgsm_la_LIBADD = \ + $(GSM_LIBS) \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-@GST_MAJORMINOR@ \ + $(GST_BASE_LIBS) + +libgstgsm_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstgsm_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstgsmenc.h gstgsmdec.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/gsm/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/gsm/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstgsm.la: $(libgstgsm_la_OBJECTS) $(libgstgsm_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstgsm_la_LINK) -rpath $(plugindir) $(libgstgsm_la_OBJECTS) $(libgstgsm_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsm_la-gstgsm.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsm_la-gstgsmdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstgsm_la-gstgsmenc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstgsm_la-gstgsm.lo: gstgsm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -MT libgstgsm_la-gstgsm.lo -MD -MP -MF $(DEPDIR)/libgstgsm_la-gstgsm.Tpo -c -o libgstgsm_la-gstgsm.lo `test -f 'gstgsm.c' || echo '$(srcdir)/'`gstgsm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsm_la-gstgsm.Tpo $(DEPDIR)/libgstgsm_la-gstgsm.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsm.c' object='libgstgsm_la-gstgsm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -c -o libgstgsm_la-gstgsm.lo `test -f 'gstgsm.c' || echo '$(srcdir)/'`gstgsm.c + +libgstgsm_la-gstgsmenc.lo: gstgsmenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -MT libgstgsm_la-gstgsmenc.lo -MD -MP -MF $(DEPDIR)/libgstgsm_la-gstgsmenc.Tpo -c -o libgstgsm_la-gstgsmenc.lo `test -f 'gstgsmenc.c' || echo '$(srcdir)/'`gstgsmenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsm_la-gstgsmenc.Tpo $(DEPDIR)/libgstgsm_la-gstgsmenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsmenc.c' object='libgstgsm_la-gstgsmenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -c -o libgstgsm_la-gstgsmenc.lo `test -f 'gstgsmenc.c' || echo '$(srcdir)/'`gstgsmenc.c + +libgstgsm_la-gstgsmdec.lo: gstgsmdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -MT libgstgsm_la-gstgsmdec.lo -MD -MP -MF $(DEPDIR)/libgstgsm_la-gstgsmdec.Tpo -c -o libgstgsm_la-gstgsmdec.lo `test -f 'gstgsmdec.c' || echo '$(srcdir)/'`gstgsmdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstgsm_la-gstgsmdec.Tpo $(DEPDIR)/libgstgsm_la-gstgsmdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstgsmdec.c' object='libgstgsm_la-gstgsmdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstgsm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstgsm_la_CFLAGS) $(CFLAGS) -c -o libgstgsm_la-gstgsmdec.lo `test -f 'gstgsmdec.c' || echo '$(srcdir)/'`gstgsmdec.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/gsm/gstgsm.c b/ext/gsm/gstgsm.c new file mode 100644 index 0000000..9b32abe --- /dev/null +++ b/ext/gsm/gstgsm.c @@ -0,0 +1,46 @@ +/* + * Farsight + * GStreamer GSM encoder/decoder (uses WAV49 compiled libgsm) + * Copyright (C) 2005 Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstgsmdec.h" +#include "gstgsmenc.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "gsmenc", GST_RANK_PRIMARY, + GST_TYPE_GSMENC)) + return FALSE; + if (!gst_element_register (plugin, "gsmdec", GST_RANK_PRIMARY, + GST_TYPE_GSMDEC)) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "gsm", + "GSM encoder/decoder", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/gsm/gstgsmdec.c b/ext/gsm/gstgsmdec.c new file mode 100644 index 0000000..3318bdc --- /dev/null +++ b/ext/gsm/gstgsmdec.c @@ -0,0 +1,344 @@ +/* + * Farsight + * GStreamer GSM encoder + * Copyright (C) 2005 Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include + +#include "gstgsmdec.h" + +GST_DEBUG_CATEGORY_STATIC (gsmdec_debug); +#define GST_CAT_DEFAULT (gsmdec_debug) + +/* GSMDec signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + /* FILL ME */ + ARG_0 +}; + +static void gst_gsmdec_base_init (gpointer g_class); +static void gst_gsmdec_class_init (GstGSMDec * klass); +static void gst_gsmdec_init (GstGSMDec * gsmdec); +static void gst_gsmdec_finalize (GObject * object); + +static gboolean gst_gsmdec_sink_setcaps (GstPad * pad, GstCaps * caps); +static gboolean gst_gsmdec_sink_event (GstPad * pad, GstEvent * event); +static GstFlowReturn gst_gsmdec_chain (GstPad * pad, GstBuffer * buf); + +static GstElementClass *parent_class = NULL; + +/*static guint gst_gsmdec_signals[LAST_SIGNAL] = { 0 }; */ + +GType +gst_gsmdec_get_type (void) +{ + static GType gsmdec_type = 0; + + if (!gsmdec_type) { + static const GTypeInfo gsmdec_info = { + sizeof (GstGSMDecClass), + gst_gsmdec_base_init, + NULL, + (GClassInitFunc) gst_gsmdec_class_init, + NULL, + NULL, + sizeof (GstGSMDec), + 0, + (GInstanceInitFunc) gst_gsmdec_init, + }; + + gsmdec_type = + g_type_register_static (GST_TYPE_ELEMENT, "GstGSMDec", &gsmdec_info, 0); + } + return gsmdec_type; +} + +#define ENCODED_SAMPLES 160 + +static GstStaticPadTemplate gsmdec_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-gsm, rate = (int) 8000, channels = (int) 1; " + "audio/ms-gsm, rate = (int) [1, MAX], channels = (int) 1") + ); + +static GstStaticPadTemplate gsmdec_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " + "width = (int) 16, " + "depth = (int) 16, " "rate = (int) [1, MAX], " "channels = (int) 1") + ); + +static void +gst_gsmdec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gsmdec_sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gsmdec_src_template)); + gst_element_class_set_details_simple (element_class, "GSM audio decoder", + "Codec/Decoder/Audio", + "Decodes GSM encoded audio", "Philippe Khalaf "); +} + +static void +gst_gsmdec_class_init (GstGSMDec * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = gst_gsmdec_finalize; + + GST_DEBUG_CATEGORY_INIT (gsmdec_debug, "gsmdec", 0, "GSM Decoder"); +} + +static void +gst_gsmdec_init (GstGSMDec * gsmdec) +{ + /* create the sink and src pads */ + gsmdec->sinkpad = + gst_pad_new_from_static_template (&gsmdec_sink_template, "sink"); + gst_pad_set_setcaps_function (gsmdec->sinkpad, gst_gsmdec_sink_setcaps); + gst_pad_set_event_function (gsmdec->sinkpad, gst_gsmdec_sink_event); + gst_pad_set_chain_function (gsmdec->sinkpad, gst_gsmdec_chain); + gst_element_add_pad (GST_ELEMENT (gsmdec), gsmdec->sinkpad); + + gsmdec->srcpad = + gst_pad_new_from_static_template (&gsmdec_src_template, "src"); + gst_element_add_pad (GST_ELEMENT (gsmdec), gsmdec->srcpad); + + gsmdec->state = gsm_create (); + + gsmdec->adapter = gst_adapter_new (); + gsmdec->next_of = 0; + gsmdec->next_ts = 0; +} + +static void +gst_gsmdec_finalize (GObject * object) +{ + GstGSMDec *gsmdec; + + gsmdec = GST_GSMDEC (object); + + g_object_unref (gsmdec->adapter); + gsm_destroy (gsmdec->state); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_gsmdec_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstGSMDec *gsmdec; + GstCaps *srccaps; + GstStructure *s; + gboolean ret = FALSE; + + gsmdec = GST_GSMDEC (gst_pad_get_parent (pad)); + + s = gst_caps_get_structure (caps, 0); + if (s == NULL) + goto wrong_caps; + + /* figure out if we deal with plain or MSGSM */ + if (gst_structure_has_name (s, "audio/x-gsm")) + gsmdec->use_wav49 = 0; + else if (gst_structure_has_name (s, "audio/ms-gsm")) + gsmdec->use_wav49 = 1; + else + goto wrong_caps; + + if (!gst_structure_get_int (s, "rate", &gsmdec->rate)) { + GST_WARNING_OBJECT (gsmdec, "missing sample rate parameter from sink caps"); + goto beach; + } + + /* MSGSM needs different framing */ + gsm_option (gsmdec->state, GSM_OPT_WAV49, &gsmdec->use_wav49); + + gsmdec->duration = gst_util_uint64_scale (ENCODED_SAMPLES, + GST_SECOND, gsmdec->rate); + + /* Setting up src caps based on the input sample rate. */ + srccaps = gst_caps_new_simple ("audio/x-raw-int", + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "signed", G_TYPE_BOOLEAN, TRUE, + "width", G_TYPE_INT, 16, + "depth", G_TYPE_INT, 16, + "rate", G_TYPE_INT, gsmdec->rate, "channels", G_TYPE_INT, 1, NULL); + + ret = gst_pad_set_caps (gsmdec->srcpad, srccaps); + + gst_caps_unref (srccaps); + gst_object_unref (gsmdec); + + return ret; + + /* ERRORS */ +wrong_caps: + + GST_ERROR_OBJECT (gsmdec, "invalid caps received"); + +beach: + gst_object_unref (gsmdec); + + return ret; +} + +static gboolean +gst_gsmdec_sink_event (GstPad * pad, GstEvent * event) +{ + gboolean res; + GstGSMDec *gsmdec; + + gsmdec = GST_GSMDEC (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + res = gst_pad_push_event (gsmdec->srcpad, event); + break; + case GST_EVENT_FLUSH_STOP: + gst_segment_init (&gsmdec->segment, GST_FORMAT_UNDEFINED); + res = gst_pad_push_event (gsmdec->srcpad, event); + break; + case GST_EVENT_NEWSEGMENT: + { + gboolean update; + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + + /* now configure the values */ + gst_segment_set_newsegment_full (&gsmdec->segment, update, + rate, arate, format, start, stop, time); + + /* and forward */ + res = gst_pad_push_event (gsmdec->srcpad, event); + break; + } + case GST_EVENT_EOS: + default: + res = gst_pad_push_event (gsmdec->srcpad, event); + break; + } + + gst_object_unref (gsmdec); + + return res; +} + +static GstFlowReturn +gst_gsmdec_chain (GstPad * pad, GstBuffer * buf) +{ + GstGSMDec *gsmdec; + gsm_byte *data; + GstFlowReturn ret = GST_FLOW_OK; + GstClockTime timestamp; + gint needed; + + gsmdec = GST_GSMDEC (gst_pad_get_parent (pad)); + + timestamp = GST_BUFFER_TIMESTAMP (buf); + + if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) { + gst_adapter_clear (gsmdec->adapter); + gsmdec->next_ts = GST_CLOCK_TIME_NONE; + /* FIXME, do some good offset */ + gsmdec->next_of = 0; + } + gst_adapter_push (gsmdec->adapter, buf); + + needed = 33; + /* do we have enough bytes to read a frame */ + while (gst_adapter_available (gsmdec->adapter) >= needed) { + GstBuffer *outbuf; + + /* always the same amount of output samples */ + outbuf = gst_buffer_new_and_alloc (ENCODED_SAMPLES * sizeof (gsm_signal)); + + /* If we are not given any timestamp, interpolate from last seen + * timestamp (if any). */ + if (timestamp == GST_CLOCK_TIME_NONE) + timestamp = gsmdec->next_ts; + + GST_BUFFER_TIMESTAMP (outbuf) = timestamp; + + /* interpolate in the next run */ + if (timestamp != GST_CLOCK_TIME_NONE) + gsmdec->next_ts = timestamp + gsmdec->duration; + timestamp = GST_CLOCK_TIME_NONE; + + GST_BUFFER_DURATION (outbuf) = gsmdec->duration; + GST_BUFFER_OFFSET (outbuf) = gsmdec->next_of; + if (gsmdec->next_of != -1) + gsmdec->next_of += ENCODED_SAMPLES; + GST_BUFFER_OFFSET_END (outbuf) = gsmdec->next_of; + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (gsmdec->srcpad)); + + /* now encode frame into the output buffer */ + data = (gsm_byte *) gst_adapter_peek (gsmdec->adapter, needed); + if (gsm_decode (gsmdec->state, data, + (gsm_signal *) GST_BUFFER_DATA (outbuf)) < 0) { + /* invalid frame */ + GST_WARNING_OBJECT (gsmdec, "tried to decode an invalid frame, skipping"); + } + gst_adapter_flush (gsmdec->adapter, needed); + + /* WAV49 requires alternating 33 and 32 bytes of input */ + if (gsmdec->use_wav49) + needed = (needed == 33 ? 32 : 33); + + GST_DEBUG_OBJECT (gsmdec, "Pushing buffer of size %d ts %" GST_TIME_FORMAT, + GST_BUFFER_SIZE (outbuf), + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (outbuf))); + + /* push */ + ret = gst_pad_push (gsmdec->srcpad, outbuf); + } + + gst_object_unref (gsmdec); + + return ret; +} diff --git a/ext/gsm/gstgsmdec.h b/ext/gsm/gstgsmdec.h new file mode 100644 index 0000000..0013aa4 --- /dev/null +++ b/ext/gsm/gstgsmdec.h @@ -0,0 +1,78 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSMDEC_H__ +#define __GST_GSMDEC_H__ + +#include +#include + +#ifdef GSM_HEADER_IN_SUBDIR +#include +#else +#include +#endif + +G_BEGIN_DECLS + +#define GST_TYPE_GSMDEC \ + (gst_gsmdec_get_type()) +#define GST_GSMDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GSMDEC,GstGSMDec)) +#define GST_GSMDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GSMDEC,GstGSMDecClass)) +#define GST_IS_GSMDEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GSMDEC)) +#define GST_IS_GSMDEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GSMDEC)) + +typedef struct _GstGSMDec GstGSMDec; +typedef struct _GstGSMDecClass GstGSMDecClass; + +struct _GstGSMDec +{ + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + + gsm state; + gint use_wav49; + gint64 next_of; + GstClockTime next_ts; + + GstAdapter *adapter; + + GstSegment segment; + + gint rate; + + GstClockTime duration; +}; + +struct _GstGSMDecClass +{ + GstElementClass parent_class; +}; + +GType gst_gsmdec_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSMDEC_H__ */ diff --git a/ext/gsm/gstgsmenc.c b/ext/gsm/gstgsmenc.c new file mode 100644 index 0000000..434c4b1 --- /dev/null +++ b/ext/gsm/gstgsmenc.c @@ -0,0 +1,222 @@ +/* + * Farsight + * GStreamer GSM encoder + * Copyright (C) 2005 Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include + +#include "gstgsmenc.h" + +GST_DEBUG_CATEGORY_STATIC (gsmenc_debug); +#define GST_CAT_DEFAULT (gsmenc_debug) + +/* GSMEnc signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + /* FILL ME */ + ARG_0 +}; + +static void gst_gsmenc_base_init (gpointer g_class); +static void gst_gsmenc_class_init (GstGSMEnc * klass); +static void gst_gsmenc_init (GstGSMEnc * gsmenc); +static void gst_gsmenc_finalize (GObject * object); + +static gboolean gst_gsmenc_setcaps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_gsmenc_chain (GstPad * pad, GstBuffer * buf); + +static GstElementClass *parent_class = NULL; + +GType +gst_gsmenc_get_type (void) +{ + static GType gsmenc_type = 0; + + if (!gsmenc_type) { + static const GTypeInfo gsmenc_info = { + sizeof (GstGSMEncClass), + gst_gsmenc_base_init, + NULL, + (GClassInitFunc) gst_gsmenc_class_init, + NULL, + NULL, + sizeof (GstGSMEnc), + 0, + (GInstanceInitFunc) gst_gsmenc_init, + }; + + gsmenc_type = + g_type_register_static (GST_TYPE_ELEMENT, "GstGSMEnc", &gsmenc_info, 0); + } + return gsmenc_type; +} + +static GstStaticPadTemplate gsmenc_src_template = +GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-gsm, " "rate = (int) 8000, " "channels = (int) 1") + ); + +static GstStaticPadTemplate gsmenc_sink_template = +GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (boolean) true, " + "width = (int) 16, " + "depth = (int) 16, " "rate = (int) 8000, " "channels = (int) 1") + ); + +static void +gst_gsmenc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gsmenc_sink_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gsmenc_src_template)); + gst_element_class_set_details_simple (element_class, "GSM audio encoder", + "Codec/Encoder/Audio", + "Encodes GSM audio", "Philippe Khalaf "); +} + +static void +gst_gsmenc_class_init (GstGSMEnc * klass) +{ + GObjectClass *gobject_class; + + gobject_class = (GObjectClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->finalize = gst_gsmenc_finalize; + + GST_DEBUG_CATEGORY_INIT (gsmenc_debug, "gsmenc", 0, "GSM Encoder"); +} + +static void +gst_gsmenc_init (GstGSMEnc * gsmenc) +{ + gint use_wav49; + + /* create the sink and src pads */ + gsmenc->sinkpad = + gst_pad_new_from_static_template (&gsmenc_sink_template, "sink"); + gst_pad_set_chain_function (gsmenc->sinkpad, gst_gsmenc_chain); + gst_pad_set_setcaps_function (gsmenc->sinkpad, gst_gsmenc_setcaps); + gst_element_add_pad (GST_ELEMENT (gsmenc), gsmenc->sinkpad); + + gsmenc->srcpad = + gst_pad_new_from_static_template (&gsmenc_src_template, "src"); + gst_element_add_pad (GST_ELEMENT (gsmenc), gsmenc->srcpad); + + gsmenc->state = gsm_create (); + + /* turn off WAV49 handling */ + use_wav49 = 0; + gsm_option (gsmenc->state, GSM_OPT_WAV49, &use_wav49); + + gsmenc->adapter = gst_adapter_new (); + gsmenc->next_ts = 0; +} + +static void +gst_gsmenc_finalize (GObject * object) +{ + GstGSMEnc *gsmenc; + + gsmenc = GST_GSMENC (object); + + g_object_unref (gsmenc->adapter); + gsm_destroy (gsmenc->state); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static gboolean +gst_gsmenc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstGSMEnc *gsmenc; + GstCaps *srccaps; + + gsmenc = GST_GSMENC (gst_pad_get_parent (pad)); + + srccaps = gst_static_pad_template_get_caps (&gsmenc_src_template); + + gst_pad_set_caps (gsmenc->srcpad, srccaps); + + gst_object_unref (gsmenc); + + return TRUE; +} + + +static GstFlowReturn +gst_gsmenc_chain (GstPad * pad, GstBuffer * buf) +{ + GstGSMEnc *gsmenc; + gsm_signal *data; + GstFlowReturn ret = GST_FLOW_OK; + + gsmenc = GST_GSMENC (gst_pad_get_parent (pad)); + + if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) { + gst_adapter_clear (gsmenc->adapter); + } + gst_adapter_push (gsmenc->adapter, buf); + + while (gst_adapter_available (gsmenc->adapter) >= 320) { + GstBuffer *outbuf; + + outbuf = gst_buffer_new_and_alloc (33 * sizeof (gsm_byte)); + + GST_BUFFER_TIMESTAMP (outbuf) = gsmenc->next_ts; + GST_BUFFER_DURATION (outbuf) = 20 * GST_MSECOND; + gsmenc->next_ts += 20 * GST_MSECOND; + + /* encode 160 16-bit samples into 33 bytes */ + data = (gsm_signal *) gst_adapter_peek (gsmenc->adapter, 320); + gsm_encode (gsmenc->state, data, (gsm_byte *) GST_BUFFER_DATA (outbuf)); + gst_adapter_flush (gsmenc->adapter, 320); + + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (gsmenc->srcpad)); + + GST_DEBUG_OBJECT (gsmenc, "Pushing buffer of size %d", + GST_BUFFER_SIZE (outbuf)); + + ret = gst_pad_push (gsmenc->srcpad, outbuf); + } + + gst_object_unref (gsmenc); + + return ret; +} diff --git a/ext/gsm/gstgsmenc.h b/ext/gsm/gstgsmenc.h new file mode 100644 index 0000000..ba3b089 --- /dev/null +++ b/ext/gsm/gstgsmenc.h @@ -0,0 +1,70 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_GSMENC_H__ +#define __GST_GSMENC_H__ + +#include +#include + +#ifdef GSM_HEADER_IN_SUBDIR +#include +#else +#include +#endif + +G_BEGIN_DECLS + +#define GST_TYPE_GSMENC \ + (gst_gsmenc_get_type()) +#define GST_GSMENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_GSMENC,GstGSMEnc)) +#define GST_GSMENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_GSMENC,GstGSMEncClass)) +#define GST_IS_GSMENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_GSMENC)) +#define GST_IS_GSMENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_GSMENC)) + +typedef struct _GstGSMEnc GstGSMEnc; +typedef struct _GstGSMEncClass GstGSMEncClass; + +struct _GstGSMEnc +{ + GstElement element; + + /* pads */ + GstPad *sinkpad, *srcpad; + GstAdapter *adapter; + + gsm state; + GstClockTime next_ts; + gboolean firstBuf; +}; + +struct _GstGSMEncClass +{ + GstElementClass parent_class; +}; + +GType gst_gsmenc_get_type (void); + +G_END_DECLS + +#endif /* __GST_GSMENC_H__ */ diff --git a/ext/jp2k/Makefile.am b/ext/jp2k/Makefile.am new file mode 100644 index 0000000..79aef3a --- /dev/null +++ b/ext/jp2k/Makefile.am @@ -0,0 +1,14 @@ +plugin_LTLIBRARIES = libgstjp2k.la + +libgstjp2k_la_SOURCES = gstjasperdec.c gstjasperenc.c gstjp2k.c +libgstjp2k_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(JP2K_CFLAGS) +libgstjp2k_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_LIBS) $(JP2K_LIBS) +libgstjp2k_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstjp2k_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstjasperdec.h \ + gstjasperenc.h \ No newline at end of file diff --git a/ext/jp2k/Makefile.in b/ext/jp2k/Makefile.in new file mode 100644 index 0000000..cb7f567 --- /dev/null +++ b/ext/jp2k/Makefile.in @@ -0,0 +1,882 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/jp2k +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstjp2k_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstjp2k_la_OBJECTS = libgstjp2k_la-gstjasperdec.lo \ + libgstjp2k_la-gstjasperenc.lo libgstjp2k_la-gstjp2k.lo +libgstjp2k_la_OBJECTS = $(am_libgstjp2k_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstjp2k_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstjp2k_la_CFLAGS) $(CFLAGS) \ + $(libgstjp2k_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstjp2k_la_SOURCES) +DIST_SOURCES = $(libgstjp2k_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstjp2k.la +libgstjp2k_la_SOURCES = gstjasperdec.c gstjasperenc.c gstjp2k.c +libgstjp2k_la_CFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(JP2K_CFLAGS) + +libgstjp2k_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) \ + $(GST_LIBS) $(JP2K_LIBS) + +libgstjp2k_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstjp2k_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstjasperdec.h \ + gstjasperenc.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/jp2k/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/jp2k/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstjp2k.la: $(libgstjp2k_la_OBJECTS) $(libgstjp2k_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstjp2k_la_LINK) -rpath $(plugindir) $(libgstjp2k_la_OBJECTS) $(libgstjp2k_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstjp2k_la-gstjasperdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstjp2k_la-gstjasperenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstjp2k_la-gstjp2k.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstjp2k_la-gstjasperdec.lo: gstjasperdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -MT libgstjp2k_la-gstjasperdec.lo -MD -MP -MF $(DEPDIR)/libgstjp2k_la-gstjasperdec.Tpo -c -o libgstjp2k_la-gstjasperdec.lo `test -f 'gstjasperdec.c' || echo '$(srcdir)/'`gstjasperdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjp2k_la-gstjasperdec.Tpo $(DEPDIR)/libgstjp2k_la-gstjasperdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjasperdec.c' object='libgstjp2k_la-gstjasperdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -c -o libgstjp2k_la-gstjasperdec.lo `test -f 'gstjasperdec.c' || echo '$(srcdir)/'`gstjasperdec.c + +libgstjp2k_la-gstjasperenc.lo: gstjasperenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -MT libgstjp2k_la-gstjasperenc.lo -MD -MP -MF $(DEPDIR)/libgstjp2k_la-gstjasperenc.Tpo -c -o libgstjp2k_la-gstjasperenc.lo `test -f 'gstjasperenc.c' || echo '$(srcdir)/'`gstjasperenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjp2k_la-gstjasperenc.Tpo $(DEPDIR)/libgstjp2k_la-gstjasperenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjasperenc.c' object='libgstjp2k_la-gstjasperenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -c -o libgstjp2k_la-gstjasperenc.lo `test -f 'gstjasperenc.c' || echo '$(srcdir)/'`gstjasperenc.c + +libgstjp2k_la-gstjp2k.lo: gstjp2k.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -MT libgstjp2k_la-gstjp2k.lo -MD -MP -MF $(DEPDIR)/libgstjp2k_la-gstjp2k.Tpo -c -o libgstjp2k_la-gstjp2k.lo `test -f 'gstjp2k.c' || echo '$(srcdir)/'`gstjp2k.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstjp2k_la-gstjp2k.Tpo $(DEPDIR)/libgstjp2k_la-gstjp2k.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstjp2k.c' object='libgstjp2k_la-gstjp2k.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstjp2k_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstjp2k_la_CFLAGS) $(CFLAGS) -c -o libgstjp2k_la-gstjp2k.lo `test -f 'gstjp2k.c' || echo '$(srcdir)/'`gstjp2k.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/jp2k/gstjasperdec.c b/ext/jp2k/gstjasperdec.c new file mode 100644 index 0000000..159eb95 --- /dev/null +++ b/ext/jp2k/gstjasperdec.c @@ -0,0 +1,892 @@ +/* GStreamer Jasper based j2k image decoder + * Copyright (C) 2008 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-jasperdec + * + * Decodes jpeg2000 images. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include + +#include + +#include "gstjasperdec.h" + +GST_DEBUG_CATEGORY_STATIC (gst_jasper_dec_debug); +#define GST_CAT_DEFAULT gst_jasper_dec_debug + +enum +{ + ARG_0, +}; + +/* FIXME 0.11: Use a single caps name for jpeg2000 codestreams + * and drop the "boxed" variant + */ + +static GstStaticPadTemplate gst_jasper_dec_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("image/x-j2c, " + "framerate = " GST_VIDEO_FPS_RANGE ", " + "fields = (int) 1; " + "image/x-jpc, " + "framerate = " GST_VIDEO_FPS_RANGE ", " + "fields = (int) 1; " "image/jp2") + ); + +static GstStaticPadTemplate gst_jasper_dec_src_template = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB "; " GST_VIDEO_CAPS_BGR "; " + GST_VIDEO_CAPS_RGBx "; " GST_VIDEO_CAPS_xRGB "; " + GST_VIDEO_CAPS_BGRx "; " GST_VIDEO_CAPS_xBGR "; " + GST_VIDEO_CAPS_YUV ("{ I420, YV12, YUY2, UYVY, Y41B, Y42B, v308 }")) + ); + +static void gst_jasper_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_jasper_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void gst_jasper_dec_reset (GstJasperDec * dec); +static GstStateChangeReturn gst_jasper_dec_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_jasper_dec_sink_setcaps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_jasper_dec_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_jasper_dec_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_jasper_dec_sink_event (GstPad * pad, GstEvent * event); +static void gst_jasper_dec_update_qos (GstJasperDec * dec, gdouble proportion, + GstClockTime time); +static void gst_jasper_dec_reset_qos (GstJasperDec * dec); +static void gst_jasper_dec_read_qos (GstJasperDec * dec, gdouble * proportion, + GstClockTime * time); + +/* minor trick: + * keep original naming but use unique name here for a happy type system + */ + +typedef GstJasperDec GstJp2kDec; +typedef GstJasperDecClass GstJp2kDecClass; + +GST_BOILERPLATE (GstJp2kDec, gst_jasper_dec, GstElement, GST_TYPE_ELEMENT); + +static void +gst_jasper_dec_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_jasper_dec_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_jasper_dec_sink_template)); + gst_element_class_set_details_simple (element_class, + "Jasper JPEG2000 image decoder", "Codec/Decoder/Image", + "Decodes JPEG2000 encoded images using jasper", + "Mark Nauwelaerts "); +} + +/* initialize the plugin's class */ +static void +gst_jasper_dec_class_init (GstJasperDecClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + GST_DEBUG_CATEGORY_INIT (gst_jasper_dec_debug, "jp2kdec", 0, + "Jasper JPEG2000 decoder"); + + gobject_class->set_property = gst_jasper_dec_set_property; + gobject_class->get_property = gst_jasper_dec_get_property; + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_jasper_dec_change_state); +} + +static void +gst_jasper_dec_init (GstJasperDec * dec, GstJasperDecClass * klass) +{ + dec->sinkpad = + gst_pad_new_from_static_template (&gst_jasper_dec_sink_template, "sink"); + gst_pad_set_setcaps_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_jasper_dec_sink_setcaps)); + gst_pad_set_chain_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_jasper_dec_chain)); + gst_pad_set_event_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_jasper_dec_sink_event)); + gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); + + dec->srcpad = + gst_pad_new_from_static_template (&gst_jasper_dec_src_template, "src"); + gst_pad_use_fixed_caps (dec->srcpad); + gst_pad_set_event_function (dec->srcpad, + GST_DEBUG_FUNCPTR (gst_jasper_dec_src_event)); + gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); + + dec->codec_data = NULL; + dec->buf = NULL; + gst_jasper_dec_reset (dec); +} + +static void +gst_jasper_dec_reset (GstJasperDec * dec) +{ + if (dec->codec_data) + gst_buffer_unref (dec->codec_data); + dec->codec_data = NULL; + if (dec->buf) + g_free (dec->buf); + dec->buf = NULL; + dec->fmt = -1; + dec->clrspc = JAS_CLRSPC_UNKNOWN; + dec->format = GST_VIDEO_FORMAT_UNKNOWN; + gst_jasper_dec_reset_qos (dec); + gst_segment_init (&dec->segment, GST_FORMAT_TIME); + dec->discont = TRUE; +} + +static gboolean +gst_jasper_dec_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstJasperDec *dec; + const GValue *framerate; + GstStructure *s; + const gchar *mimetype; + guint32 fourcc; + + dec = GST_JASPER_DEC (GST_PAD_PARENT (pad)); + s = gst_caps_get_structure (caps, 0); + mimetype = gst_structure_get_name (s); + + /* reset negotiation */ + dec->fmt = -1; + dec->strip = 0; + dec->format = GST_VIDEO_FORMAT_UNKNOWN; + if (dec->codec_data) { + gst_buffer_unref (dec->codec_data); + dec->codec_data = NULL; + } + + if (!strcmp (mimetype, "image/x-j2c") || !strcmp (mimetype, "image/x-jpc")) { + const GValue *codec_data; + gint fields; + + /* we only handle single field, packetized input */ + if (gst_structure_get_value (s, "framerate") == NULL) + goto refuse_caps; + if (gst_structure_get_int (s, "fields", &fields) && fields != 1) + goto refuse_caps; + + if (!gst_structure_get_fourcc (s, "fourcc", &fourcc)) + goto refuse_caps; + switch (fourcc) { + case GST_MAKE_FOURCC ('s', 'R', 'G', 'B'): + dec->clrspc = JAS_CLRSPC_SRGB; + break; + case GST_MAKE_FOURCC ('s', 'Y', 'U', 'V'): + dec->clrspc = JAS_CLRSPC_SYCBCR; + break; + default: + goto refuse_caps; + break; + } + + dec->fmt = jas_image_strtofmt ((char *) "jpc"); + /* strip the j2c box stuff it is embedded in */ + if (!strcmp (mimetype, "image/x-jpc")) + dec->strip = 0; + else + dec->strip = 8; + + codec_data = gst_structure_get_value (s, "codec_data"); + if (codec_data) { + dec->codec_data = gst_value_get_buffer (codec_data); + gst_buffer_ref (dec->codec_data); + } + } else if (!strcmp (mimetype, "image/jp2")) + dec->fmt = jas_image_strtofmt ((char *) "jp2"); + + if (dec->fmt < 0) + goto refuse_caps; + + if ((framerate = gst_structure_get_value (s, "framerate")) != NULL) { + dec->framerate_numerator = gst_value_get_fraction_numerator (framerate); + dec->framerate_denominator = gst_value_get_fraction_denominator (framerate); + GST_DEBUG_OBJECT (dec, "got framerate of %d/%d fps => packetized mode", + dec->framerate_numerator, dec->framerate_denominator); + } else { + dec->framerate_numerator = 0; + dec->framerate_denominator = 1; + GST_DEBUG_OBJECT (dec, "no framerate, assuming single image"); + } + + return TRUE; + +refuse_caps: + { + GST_WARNING_OBJECT (dec, "refused caps %" GST_PTR_FORMAT, caps); + return FALSE; + } +} + +static GstFlowReturn +gst_jasper_dec_negotiate (GstJasperDec * dec, jas_image_t * image) +{ + GstFlowReturn flow_ret = GST_FLOW_OK; + gint width, height, channels; + gint i, j; + gboolean negotiate = FALSE; + jas_clrspc_t clrspc; + GstCaps *allowed_caps, *caps; + + width = jas_image_width (image); + height = jas_image_height (image); + channels = jas_image_numcmpts (image); + + GST_LOG_OBJECT (dec, "%d x %d, %d components", width, height, channels); + + /* jp2c bitstream has no real colour space info (kept in container), + * so decoder may only pretend to know, where it really does not */ + if (!jas_clrspc_isunknown (dec->clrspc)) { + clrspc = dec->clrspc; + GST_DEBUG_OBJECT (dec, "forcing container supplied colour space %d", + clrspc); + jas_image_setclrspc (image, clrspc); + } else + clrspc = jas_image_clrspc (image); + + if (!width || !height || !channels || jas_clrspc_isunknown (clrspc)) + goto fail_image; + + if (dec->width != width || dec->height != height || + dec->channels != channels || dec->clrspc != clrspc) + negotiate = TRUE; + + if (channels != 3) + goto not_supported; + + for (i = 0; i < channels; i++) { + gint cheight, cwidth, depth, sgnd; + + cheight = jas_image_cmptheight (image, i); + cwidth = jas_image_cmptwidth (image, i); + depth = jas_image_cmptprec (image, i); + sgnd = jas_image_cmptsgnd (image, i); + + GST_LOG_OBJECT (dec, "image component %d, %dx%d, depth %d, sgnd %d", i, + cwidth, cheight, depth, sgnd); + + if (depth != 8 || sgnd) + goto not_supported; + + if (dec->cheight[i] != cheight || dec->cwidth[i] != cwidth) { + dec->cheight[i] = cheight; + dec->cwidth[i] = cwidth; + negotiate = TRUE; + } + } + + if (!negotiate && dec->format != GST_VIDEO_FORMAT_UNKNOWN) + goto done; + + /* clear and refresh to new state */ + flow_ret = GST_FLOW_NOT_NEGOTIATED; + dec->format = GST_VIDEO_FORMAT_UNKNOWN; + dec->width = width; + dec->height = height; + dec->channels = channels; + + /* retrieve allowed caps, and find the first one that reasonably maps + * to the parameters of the colourspace */ + caps = gst_pad_get_allowed_caps (dec->srcpad); + if (!caps) { + GST_DEBUG_OBJECT (dec, "... but no peer, using template caps"); + /* need to copy because get_allowed_caps returns a ref, + and get_pad_template_caps doesn't */ + caps = gst_caps_copy (gst_pad_get_pad_template_caps (dec->srcpad)); + } + /* avoid lists of fourcc, etc */ + allowed_caps = gst_caps_normalize (caps); + gst_caps_unref (caps); + caps = NULL; + GST_LOG_OBJECT (dec, "allowed source caps %" GST_PTR_FORMAT, allowed_caps); + + for (i = 0; i < gst_caps_get_size (allowed_caps); i++) { + GstVideoFormat format; + gboolean ok; + + if (caps) + gst_caps_unref (caps); + caps = gst_caps_copy_nth (allowed_caps, i); + /* sigh, ds and _parse_caps need fixed caps for parsing, fixate */ + gst_pad_fixate_caps (dec->srcpad, caps); + GST_LOG_OBJECT (dec, "checking caps %" GST_PTR_FORMAT, caps); + if (!gst_video_format_parse_caps (caps, &format, NULL, NULL)) + continue; + if (gst_video_format_is_rgb (format) && + jas_clrspc_fam (clrspc) == JAS_CLRSPC_FAM_RGB) { + GST_DEBUG_OBJECT (dec, "trying RGB"); + if ((dec->cmpt[0] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_RGB_R))) < 0 || + (dec->cmpt[1] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_RGB_G))) < 0 || + (dec->cmpt[2] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_RGB_B))) < 0) { + GST_DEBUG_OBJECT (dec, "missing RGB color component"); + continue; + } + } else if (gst_video_format_is_yuv (format) && + jas_clrspc_fam (clrspc) == JAS_CLRSPC_FAM_YCBCR) { + GST_DEBUG_OBJECT (dec, "trying YUV"); + if ((dec->cmpt[0] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_YCBCR_Y))) < 0 || + (dec->cmpt[1] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_YCBCR_CB))) < 0 || + (dec->cmpt[2] = jas_image_getcmptbytype (image, + JAS_IMAGE_CT_COLOR (JAS_CLRSPC_CHANIND_YCBCR_CR))) < 0) { + GST_DEBUG_OBJECT (dec, "missing YUV color component"); + continue; + } + } else + continue; + /* match format with validity checks */ + ok = TRUE; + for (j = 0; j < channels; j++) { + gint cmpt; + + cmpt = dec->cmpt[j]; + if (dec->cwidth[cmpt] != gst_video_format_get_component_width (format, j, + width) || + dec->cheight[cmpt] != gst_video_format_get_component_height (format, + j, height)) + ok = FALSE; + } + /* commit to this format */ + if (ok) { + dec->format = format; + break; + } + } + + if (caps) + gst_caps_unref (caps); + gst_caps_unref (allowed_caps); + + if (dec->format != GST_VIDEO_FORMAT_UNKNOWN) { + /* cache some video format properties */ + for (j = 0; j < channels; ++j) { + dec->offset[j] = gst_video_format_get_component_offset (dec->format, j, + dec->width, dec->height); + dec->inc[j] = gst_video_format_get_pixel_stride (dec->format, j); + dec->stride[j] = gst_video_format_get_row_stride (dec->format, j, + dec->width); + } + dec->image_size = gst_video_format_get_size (dec->format, width, height); + dec->alpha = gst_video_format_has_alpha (dec->format); + + if (dec->buf) + g_free (dec->buf); + dec->buf = g_new0 (glong, dec->width); + + caps = gst_video_format_new_caps (dec->format, dec->width, dec->height, + dec->framerate_numerator, dec->framerate_denominator, 1, 1); + + GST_DEBUG_OBJECT (dec, "Set format to %d, size to %dx%d", dec->format, + dec->width, dec->height); + + if (!gst_pad_set_caps (dec->srcpad, caps)) + flow_ret = GST_FLOW_NOT_NEGOTIATED; + else + flow_ret = GST_FLOW_OK; + + gst_caps_unref (caps); + } + +done: + return flow_ret; + + /* ERRORS */ +fail_image: + { + GST_DEBUG_OBJECT (dec, "Failed to process decoded image."); + flow_ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } +not_supported: + { + GST_DEBUG_OBJECT (dec, "Decoded image has unsupported colour space."); + GST_ELEMENT_ERROR (dec, STREAM, DECODE, (NULL), ("Unsupported colorspace")); + flow_ret = GST_FLOW_ERROR; + goto done; + } +} + +static GstFlowReturn +gst_jasper_dec_get_picture (GstJasperDec * dec, guint8 * data, + guint size, GstBuffer ** outbuf) +{ + GstFlowReturn ret = GST_FLOW_OK; + jas_stream_t *stream = NULL; + jas_image_t *image = NULL; + gint i; + + g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); + + *outbuf = NULL; + + if (!(stream = jas_stream_memopen ((gpointer) data, size))) + goto fail_stream; + + if (!(image = jas_image_decode (stream, dec->fmt, (char *) ""))) + goto fail_decode; + + ret = gst_jasper_dec_negotiate (dec, image); + if (ret != GST_FLOW_OK) + goto fail_negotiate; + + ret = gst_pad_alloc_buffer_and_set_caps (dec->srcpad, + GST_BUFFER_OFFSET_NONE, + dec->image_size, GST_PAD_CAPS (dec->srcpad), outbuf); + + if (ret != GST_FLOW_OK) + goto no_buffer; + + if (dec->alpha) + memset (GST_BUFFER_DATA (*outbuf), 0xff, dec->image_size); + + for (i = 0; i < dec->channels; ++i) { + gint x, y, cwidth, cheight, inc, stride, cmpt; + guint8 *row_pix, *out_pix; + glong *tb; + + inc = dec->inc[i]; + stride = dec->stride[i]; + cmpt = dec->cmpt[i]; + cheight = dec->cheight[cmpt]; + cwidth = dec->cwidth[cmpt]; + + GST_LOG_OBJECT (dec, + "retrieve component %d<=%d, size %dx%d, offset %d, inc %d, stride %d", + i, cmpt, cwidth, cheight, dec->offset[i], inc, stride); + + out_pix = GST_BUFFER_DATA (*outbuf) + dec->offset[i]; + + for (y = 0; y < cheight; y++) { + row_pix = out_pix; + tb = dec->buf; + if (jas_image_readcmpt2 (image, i, 0, y, cwidth, 1, dec->buf)) + goto fail_image; + for (x = 0; x < cwidth; x++) { + *out_pix = *tb; + tb++; + out_pix += inc; + } + out_pix = row_pix + stride; + } + } + + GST_LOG_OBJECT (dec, "all components retrieved"); + +done: + if (image) + jas_image_destroy (image); + if (stream) + jas_stream_close (stream); + + return ret; + + /* ERRORS */ +fail_stream: + { + GST_DEBUG_OBJECT (dec, "Failed to create inputstream."); + goto fail; + } +fail_decode: + { + GST_DEBUG_OBJECT (dec, "Failed to decode image."); + goto fail; + } +fail_image: + { + GST_DEBUG_OBJECT (dec, "Failed to process decoded image."); + goto fail; + } +fail: + { + if (*outbuf) + gst_buffer_unref (*outbuf); + *outbuf = NULL; + GST_ELEMENT_WARNING (dec, STREAM, DECODE, (NULL), (NULL)); + ret = GST_FLOW_OK; + goto done; + } +no_buffer: + { + GST_DEBUG_OBJECT (dec, "Failed to create outbuffer - %s", + gst_flow_get_name (ret)); + goto done; + } +fail_negotiate: + { + GST_DEBUG_OBJECT (dec, "Failed to determine output caps."); + goto done; + } +} + +/* Perform qos calculations before decoding the next frame. Returns TRUE if the + * frame should be decoded, FALSE if the frame can be dropped entirely */ +static gboolean +gst_jasper_dec_do_qos (GstJasperDec * dec, GstClockTime timestamp) +{ + GstClockTime qostime, earliest_time; + gdouble proportion; + + /* no timestamp, can't do QoS => decode frame */ + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (timestamp))) { + GST_LOG_OBJECT (dec, "invalid timestamp, can't do QoS, decode frame"); + return TRUE; + } + + /* get latest QoS observation values */ + gst_jasper_dec_read_qos (dec, &proportion, &earliest_time); + + /* skip qos if we have no observation (yet) => decode frame */ + if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (earliest_time))) { + GST_LOG_OBJECT (dec, "no observation yet, decode frame"); + return TRUE; + } + + /* qos is done on running time */ + qostime = gst_segment_to_running_time (&dec->segment, GST_FORMAT_TIME, + timestamp); + + /* see how our next timestamp relates to the latest qos timestamp */ + GST_LOG_OBJECT (dec, "qostime %" GST_TIME_FORMAT ", earliest %" + GST_TIME_FORMAT, GST_TIME_ARGS (qostime), GST_TIME_ARGS (earliest_time)); + + if (qostime != GST_CLOCK_TIME_NONE && qostime <= earliest_time) { + GST_DEBUG_OBJECT (dec, "we are late, drop frame"); + return FALSE; + } + + GST_LOG_OBJECT (dec, "decode frame"); + return TRUE; +} + +static GstFlowReturn +gst_jasper_dec_chain (GstPad * pad, GstBuffer * buf) +{ + GstJasperDec *dec; + GstFlowReturn ret = GST_FLOW_OK; + GstClockTime ts; + GstBuffer *outbuf = NULL; + guint8 *data; + guint size; + gboolean decode; + + dec = GST_JASPER_DEC (GST_PAD_PARENT (pad)); + + if (dec->fmt < 0) + goto not_negotiated; + + ts = GST_BUFFER_TIMESTAMP (buf); + + GST_LOG_OBJECT (dec, "buffer with ts: %" GST_TIME_FORMAT, GST_TIME_ARGS (ts)); + + if (GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT)) + dec->discont = TRUE; + + decode = gst_jasper_dec_do_qos (dec, ts); + + /* FIXME: do clipping */ + + if (G_UNLIKELY (!decode)) { + dec->discont = TRUE; + goto done; + } + + /* strip possible prefix */ + if (dec->strip) { + GstBuffer *tmp; + + tmp = gst_buffer_create_sub (buf, dec->strip, + GST_BUFFER_SIZE (buf) - dec->strip); + gst_buffer_copy_metadata (tmp, buf, GST_BUFFER_COPY_TIMESTAMPS); + gst_buffer_unref (buf); + buf = tmp; + } + /* preprend possible codec_data */ + if (dec->codec_data) { + GstBuffer *tmp; + + tmp = gst_buffer_merge (dec->codec_data, buf); + gst_buffer_copy_metadata (tmp, buf, GST_BUFFER_COPY_TIMESTAMPS); + gst_buffer_unref (buf); + buf = tmp; + } + + /* now really feed the data to decoder */ + data = GST_BUFFER_DATA (buf); + size = GST_BUFFER_SIZE (buf); + + ret = gst_jasper_dec_get_picture (dec, data, size, &outbuf); + + if (outbuf) { + gst_buffer_copy_metadata (outbuf, buf, GST_BUFFER_COPY_TIMESTAMPS); + if (dec->discont) { + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + dec->discont = FALSE; + } + + if (ret == GST_FLOW_OK) + ret = gst_pad_push (dec->srcpad, outbuf); + else + gst_buffer_unref (outbuf); + } + +done: + gst_buffer_unref (buf); + + return ret; + + /* ERRORS */ +not_negotiated: + { + GST_ELEMENT_ERROR (dec, CORE, NEGOTIATION, (NULL), + ("format wasn't negotiated before chain function")); + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } +} + +static void +gst_jasper_dec_update_qos (GstJasperDec * dec, gdouble proportion, + GstClockTime time) +{ + GST_OBJECT_LOCK (dec); + dec->proportion = proportion; + dec->earliest_time = time; + GST_OBJECT_UNLOCK (dec); +} + +static void +gst_jasper_dec_reset_qos (GstJasperDec * dec) +{ + gst_jasper_dec_update_qos (dec, 0.5, GST_CLOCK_TIME_NONE); +} + +static void +gst_jasper_dec_read_qos (GstJasperDec * dec, gdouble * proportion, + GstClockTime * time) +{ + GST_OBJECT_LOCK (dec); + *proportion = dec->proportion; + *time = dec->earliest_time; + GST_OBJECT_UNLOCK (dec); +} + +static gboolean +gst_jasper_dec_src_event (GstPad * pad, GstEvent * event) +{ + GstJasperDec *dec; + gboolean res; + + dec = GST_JASPER_DEC (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_QOS:{ + GstClockTimeDiff diff; + GstClockTime timestamp; + gdouble proportion; + + gst_event_parse_qos (event, &proportion, &diff, ×tamp); + + gst_jasper_dec_update_qos (dec, proportion, timestamp + diff); + break; + } + default: + break; + } + + res = gst_pad_push_event (dec->sinkpad, event); + + gst_object_unref (dec); + return res; +} + +static gboolean +gst_jasper_dec_sink_event (GstPad * pad, GstEvent * event) +{ + GstJasperDec *dec; + gboolean res = FALSE; + + dec = GST_JASPER_DEC (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_STOP: + gst_jasper_dec_reset_qos (dec); + gst_segment_init (&dec->segment, GST_FORMAT_TIME); + dec->discont = TRUE; + break; + case GST_EVENT_NEWSEGMENT:{ + gboolean update; + GstFormat fmt; + gint64 start, stop, time; + gdouble rate, arate; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &fmt, + &start, &stop, &time); + + switch (fmt) { + case GST_FORMAT_TIME: + /* great, our native segment format */ + break; + case GST_FORMAT_BYTES: + /* hmm .. */ + if (start != 0 || time != 0) + goto invalid_bytes_segment; + /* create bogus segment in TIME format, starting from 0 */ + gst_event_unref (event); + fmt = GST_FORMAT_TIME; + start = 0; + stop = -1; + time = 0; + event = gst_event_new_new_segment (update, rate, fmt, start, stop, + time); + break; + default: + /* invalid format */ + goto invalid_format; + } + + gst_segment_set_newsegment_full (&dec->segment, update, rate, arate, + fmt, start, stop, time); + + GST_DEBUG_OBJECT (dec, "NEWSEGMENT %" GST_SEGMENT_FORMAT, &dec->segment); + break; + } + default: + break; + } + + res = gst_pad_push_event (dec->srcpad, event); + +done: + + gst_object_unref (dec); + return res; + +/* ERRORS */ +invalid_format: + { + GST_WARNING_OBJECT (dec, "unknown format received in NEWSEGMENT event"); + gst_event_unref (event); + goto done; + } +invalid_bytes_segment: + { + GST_WARNING_OBJECT (dec, "can't handle NEWSEGMENT event in BYTES format " + "with a non-0 start or non-0 time value"); + gst_event_unref (event); + goto done; + } +} + +static void +gst_jasper_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstJasperDec *filter; + + filter = GST_JASPER_DEC (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_jasper_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstJasperDec *filter; + + filter = GST_JASPER_DEC (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_jasper_dec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstJasperDec *dec = GST_JASPER_DEC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (jas_init ()) + goto fail_init; + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_jasper_dec_reset (dec); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + jas_cleanup (); + break; + default: + break; + } + + return ret; + + /* ERRORS */ +fail_init: + { + GST_ELEMENT_ERROR (dec, LIBRARY, INIT, (NULL), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +} diff --git a/ext/jp2k/gstjasperdec.h b/ext/jp2k/gstjasperdec.h new file mode 100644 index 0000000..cc0f339 --- /dev/null +++ b/ext/jp2k/gstjasperdec.h @@ -0,0 +1,98 @@ +/* GStreamer Jasper based j2k image decoder + * Copyright (C) 2008 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_JASPER_DEC_H__ +#define __GST_JASPER_DEC_H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +/* #define's don't like whitespacey bits */ +#define GST_TYPE_JASPER_DEC \ + (gst_jasper_dec_get_type()) +#define GST_JASPER_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_JASPER_DEC,GstJasperDec)) +#define GST_JASPER_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_JASPER_DEC,GstJasperDecClass)) +#define GST_IS_JASPER_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_JASPER_DEC)) +#define GST_IS_JASPER_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_JASPER_DEC)) + +typedef struct _GstJasperDec GstJasperDec; +typedef struct _GstJasperDecClass GstJasperDecClass; + +#define GST_JASPER_DEC_MAX_COMPONENT 4 + +struct _GstJasperDec +{ + GstElement element; + + GstPad *sinkpad, *srcpad; + + GstBuffer *codec_data; + + /* jasper image fmt */ + gint fmt; + jas_clrspc_t clrspc; + gint strip; + + /* stream/image properties */ + GstVideoFormat format; + gint width; + gint height; + gint channels; + guint image_size; + gint stride[GST_JASPER_DEC_MAX_COMPONENT]; + gint offset[GST_JASPER_DEC_MAX_COMPONENT]; + gint inc[GST_JASPER_DEC_MAX_COMPONENT]; + gboolean alpha; + glong *buf; + + /* image cmpt indexed */ + gint cwidth[GST_JASPER_DEC_MAX_COMPONENT]; + gint cheight[GST_JASPER_DEC_MAX_COMPONENT]; + /* standard video_format indexed */ + gint cmpt[GST_JASPER_DEC_MAX_COMPONENT]; + + gint framerate_numerator; + gint framerate_denominator; + + GstSegment segment; + gboolean discont; + + /* QoS stuff *//* with LOCK */ + gdouble proportion; + GstClockTime earliest_time; +}; + +struct _GstJasperDecClass +{ + GstElementClass parent_class; +}; + +GType gst_jasper_dec_get_type (void); + +G_END_DECLS + +#endif /* __GST_JASPER_DEC_H__ */ diff --git a/ext/jp2k/gstjasperenc.c b/ext/jp2k/gstjasperenc.c new file mode 100644 index 0000000..27073e2 --- /dev/null +++ b/ext/jp2k/gstjasperenc.c @@ -0,0 +1,612 @@ +/* GStreamer Jasper based j2k image encoder + * Copyright (C) 2008 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-jasperenc + * + * Encodes video to jpeg2000 images. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include + +#include + +#include "gstjasperenc.h" + +GST_DEBUG_CATEGORY_STATIC (gst_jasper_enc_debug); +#define GST_CAT_DEFAULT gst_jasper_enc_debug + +enum +{ + ARG_0, +}; + +static GstStaticPadTemplate gst_jasper_enc_sink_template = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (GST_VIDEO_CAPS_RGB "; " GST_VIDEO_CAPS_BGR "; " + GST_VIDEO_CAPS_RGBx "; " GST_VIDEO_CAPS_xRGB "; " + GST_VIDEO_CAPS_BGRx "; " GST_VIDEO_CAPS_xBGR "; " + GST_VIDEO_CAPS_YUV ("{ I420, YV12, v308 }")) + ); + +static GstStaticPadTemplate gst_jasper_enc_src_template = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("image/x-j2c, width = " GST_VIDEO_SIZE_RANGE ", height = " + GST_VIDEO_SIZE_RANGE ", fourcc = (GstFourcc) { sRGB, sYUV }," + "framerate = " GST_VIDEO_FPS_RANGE ", " "fields = (int) 1; " + "image/x-jpc, width = " GST_VIDEO_SIZE_RANGE ", height = " + GST_VIDEO_SIZE_RANGE ", fourcc = (GstFourcc) { sRGB, sYUV }," + "framerate = " GST_VIDEO_FPS_RANGE ", " "fields = (int) 1; " + "image/jp2") + ); + +static void gst_jasper_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_jasper_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static void gst_jasper_enc_reset (GstJasperEnc * enc); +static GstStateChangeReturn gst_jasper_enc_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_jasper_enc_sink_setcaps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_jasper_enc_chain (GstPad * pad, GstBuffer * buffer); + +/* minor trick: + * keep original naming but use unique name here for a happy type system + */ + +typedef GstJasperEnc GstJp2kEnc; +typedef GstJasperEncClass GstJp2kEncClass; + +static void +_do_init (GType object_type) +{ + const GInterfaceInfo preset_interface_info = { + NULL, /* interface_init */ + NULL, /* interface_finalize */ + NULL /* interface_data */ + }; + + g_type_add_interface_static (object_type, GST_TYPE_PRESET, + &preset_interface_info); +} + +GST_BOILERPLATE_FULL (GstJp2kEnc, gst_jasper_enc, GstElement, GST_TYPE_ELEMENT, + _do_init); + +static void +gst_jasper_enc_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_jasper_enc_src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_jasper_enc_sink_template)); + gst_element_class_set_details_simple (element_class, + "Jasper JPEG2000 image encoder", "Codec/Encoder/Image", + "Encodes video to JPEG2000 using jasper", + "Mark Nauwelaerts "); +} + +/* initialize the plugin's class */ +static void +gst_jasper_enc_class_init (GstJasperEncClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + GST_DEBUG_CATEGORY_INIT (gst_jasper_enc_debug, "jp2kenc", 0, + "Jasper JPEG2000 encoder"); + + gobject_class->set_property = gst_jasper_enc_set_property; + gobject_class->get_property = gst_jasper_enc_get_property; + + /* FIXME add some encoder properties */ + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_jasper_enc_change_state); +} + +static void +gst_jasper_enc_init (GstJasperEnc * enc, GstJasperEncClass * klass) +{ + enc->sinkpad = + gst_pad_new_from_static_template (&gst_jasper_enc_sink_template, "sink"); + gst_pad_set_setcaps_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_jasper_enc_sink_setcaps)); + gst_pad_set_chain_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_jasper_enc_chain)); + gst_element_add_pad (GST_ELEMENT (enc), enc->sinkpad); + + enc->srcpad = + gst_pad_new_from_static_template (&gst_jasper_enc_src_template, "src"); + gst_pad_use_fixed_caps (enc->srcpad); + gst_element_add_pad (GST_ELEMENT (enc), enc->srcpad); + + enc->buf = NULL; + gst_jasper_enc_reset (enc); +} + +static void +gst_jasper_enc_reset (GstJasperEnc * enc) +{ + if (enc->buf) + g_free (enc->buf); + enc->buf = NULL; + if (enc->image) + jas_image_destroy (enc->image); + enc->image = NULL; + enc->fmt = -1; + enc->mode = GST_JP2ENC_MODE_J2C; + enc->clrspc = JAS_CLRSPC_UNKNOWN; + enc->format = GST_VIDEO_FORMAT_UNKNOWN; +} + +static gboolean +gst_jasper_enc_set_src_caps (GstJasperEnc * enc) +{ + GstCaps *caps; + guint32 fourcc; + gboolean ret; + GstCaps *peercaps; + + peercaps = gst_pad_peer_get_caps (enc->srcpad); + if (peercaps) { + guint i, n; + + n = gst_caps_get_size (peercaps); + for (i = 0; i < n; i++) { + GstStructure *s = gst_caps_get_structure (peercaps, i); + const gchar *name = gst_structure_get_name (s); + + if (!strcmp (name, "image/x-j2c")) { + enc->mode = GST_JP2ENC_MODE_J2C; + break; + } else if (!strcmp (name, "image/x-jpc")) { + enc->mode = GST_JP2ENC_MODE_JPC; + break; + } else if (!strcmp (name, "image/jp2")) { + enc->mode = GST_JP2ENC_MODE_JP2; + break; + } + } + gst_caps_unref (peercaps); + } + + /* enumerated colourspace */ + if (gst_video_format_is_rgb (enc->format)) { + fourcc = GST_MAKE_FOURCC ('s', 'R', 'G', 'B'); + } else { + fourcc = GST_MAKE_FOURCC ('s', 'Y', 'U', 'V'); + } + + switch (enc->mode) { + case GST_JP2ENC_MODE_J2C: + caps = + gst_caps_new_simple ("image/x-j2c", "width", G_TYPE_INT, enc->width, + "height", G_TYPE_INT, enc->height, "fourcc", GST_TYPE_FOURCC, fourcc, + NULL); + break; + case GST_JP2ENC_MODE_JPC: + caps = + gst_caps_new_simple ("image/x-jpc", "width", G_TYPE_INT, enc->width, + "height", G_TYPE_INT, enc->height, "fourcc", GST_TYPE_FOURCC, fourcc, + NULL); + break; + case GST_JP2ENC_MODE_JP2: + caps = gst_caps_new_simple ("image/jp2", "width", G_TYPE_INT, enc->width, + "height", G_TYPE_INT, enc->height, "fourcc", GST_TYPE_FOURCC, fourcc, + NULL); + break; + default: + g_assert_not_reached (); + } + + + if (enc->fps_den > 0) + gst_caps_set_simple (caps, + "framerate", GST_TYPE_FRACTION, enc->fps_num, enc->fps_den, NULL); + if (enc->par_den > 0) + gst_caps_set_simple (caps, + "pixel-aspect-ratio", GST_TYPE_FRACTION, enc->par_num, enc->par_den, + NULL); + + ret = gst_pad_set_caps (enc->srcpad, caps); + gst_caps_unref (caps); + + return ret; +} + +static gboolean +gst_jasper_enc_init_encoder (GstJasperEnc * enc) +{ + jas_image_cmptparm_t param[GST_JASPER_ENC_MAX_COMPONENT]; + gint i; + + switch (enc->mode) { + case GST_JP2ENC_MODE_J2C: + case GST_JP2ENC_MODE_JPC: + enc->fmt = jas_image_strtofmt ((char *) "jpc"); + break; + case GST_JP2ENC_MODE_JP2: + enc->fmt = jas_image_strtofmt ((char *) "jp2"); + break; + } + + if (gst_video_format_is_rgb (enc->format)) + enc->clrspc = JAS_CLRSPC_SRGB; + else + enc->clrspc = JAS_CLRSPC_SYCBCR; + + if (enc->buf) { + g_free (enc->buf); + enc->buf = NULL; + } + enc->buf = g_new0 (glong, enc->width); + + if (enc->image) { + jas_image_destroy (enc->image); + enc->image = NULL; + } + + for (i = 0; i < enc->channels; ++i) { + param[i].tlx = 0; + param[i].tly = 0; + param[i].prec = 8; + param[i].sgnd = 0; + param[i].height = enc->cheight[i]; + param[i].width = enc->cwidth[i]; + param[i].hstep = enc->height / param[i].height; + param[i].vstep = enc->width / param[i].width; + } + + if (!(enc->image = jas_image_create (enc->channels, param, enc->clrspc))) + return FALSE; + + return TRUE; +} + +static gboolean +gst_jasper_enc_sink_setcaps (GstPad * pad, GstCaps * caps) +{ + GstJasperEnc *enc; + GstStructure *s; + const gchar *mimetype; + GstVideoFormat format; + gint width, height; + gint fps_num, fps_den; + gint par_num, par_den; + gint i; + + enc = GST_JASPER_ENC (GST_PAD_PARENT (pad)); + s = gst_caps_get_structure (caps, 0); + mimetype = gst_structure_get_name (s); + + /* get info from caps */ + if (!gst_video_format_parse_caps (caps, &format, &width, &height)) + goto refuse_caps; + /* optional; pass along if present */ + fps_num = fps_den = -1; + par_num = par_den = -1; + gst_video_parse_caps_framerate (caps, &fps_num, &fps_den); + gst_video_parse_caps_pixel_aspect_ratio (caps, &par_num, &par_den); + + if (width == enc->width && height == enc->height && enc->format == format + && fps_num == enc->fps_num && fps_den == enc->fps_den + && par_num == enc->par_num && par_den == enc->par_den) + return TRUE; + + /* store input description */ + enc->format = format; + enc->width = width; + enc->height = height; + enc->fps_num = fps_num; + enc->fps_den = fps_den; + enc->par_num = par_num; + enc->par_den = par_den; + + /* prepare a cached image description */ + enc->channels = 3 + (gst_video_format_has_alpha (format) ? 1 : 0); + for (i = 0; i < enc->channels; ++i) { + enc->cwidth[i] = gst_video_format_get_component_width (format, i, width); + enc->cheight[i] = gst_video_format_get_component_height (format, i, height); + enc->offset[i] = gst_video_format_get_component_offset (format, i, width, + height); + enc->stride[i] = gst_video_format_get_row_stride (format, i, width); + enc->inc[i] = gst_video_format_get_pixel_stride (format, i); + } + + if (!gst_jasper_enc_set_src_caps (enc)) + goto setcaps_failed; + if (!gst_jasper_enc_init_encoder (enc)) + goto setup_failed; + + return TRUE; + + /* ERRORS */ +setup_failed: + { + GST_ELEMENT_ERROR (enc, LIBRARY, SETTINGS, (NULL), (NULL)); + return FALSE; + } +setcaps_failed: + { + GST_WARNING_OBJECT (enc, "Setting src caps failed"); + GST_ELEMENT_ERROR (enc, LIBRARY, SETTINGS, (NULL), (NULL)); + return FALSE; + } +refuse_caps: + { + GST_WARNING_OBJECT (enc, "refused caps %" GST_PTR_FORMAT, caps); + gst_object_unref (enc); + return FALSE; + } +} + +static GstFlowReturn +gst_jasper_enc_get_data (GstJasperEnc * enc, guint8 * data, GstBuffer ** outbuf) +{ + GstFlowReturn ret = GST_FLOW_OK; + jas_stream_t *stream = NULL; + gint i; + guint size, boxsize; + + g_return_val_if_fail (outbuf != NULL, GST_FLOW_ERROR); + + *outbuf = NULL; + + boxsize = (enc->mode == GST_JP2ENC_MODE_J2C) ? 8 : 0; + + if (!(stream = jas_stream_memopen (NULL, 0))) + goto fail_stream; + + for (i = 0; i < enc->channels; ++i) { + gint x, y, cwidth, cheight, inc, stride, cmpt; + guint8 *row_pix, *in_pix; + glong *tb; + + cmpt = i; + inc = enc->inc[i]; + stride = enc->stride[i]; + cheight = enc->cheight[cmpt]; + cwidth = enc->cwidth[cmpt]; + + GST_LOG_OBJECT (enc, + "write component %d<=%d, size %dx%d, offset %d, inc %d, stride %d", + i, cmpt, cwidth, cheight, enc->offset[i], inc, stride); + + row_pix = data + enc->offset[i]; + + for (y = 0; y < cheight; y++) { + in_pix = row_pix; + tb = enc->buf; + for (x = 0; x < cwidth; x++) { + *tb = *in_pix; + in_pix += inc; + tb++; + } + if (jas_image_writecmpt2 (enc->image, cmpt, 0, y, cwidth, 1, enc->buf)) + goto fail_image; + row_pix += stride; + } + } + + GST_LOG_OBJECT (enc, "all components written"); + + if (jas_image_encode (enc->image, stream, enc->fmt, (char *) "sop")) + goto fail_encode; + + GST_LOG_OBJECT (enc, "image encoded"); + + size = jas_stream_length (stream); + ret = gst_pad_alloc_buffer_and_set_caps (enc->srcpad, + GST_BUFFER_OFFSET_NONE, size + boxsize, GST_PAD_CAPS (enc->srcpad), + outbuf); + + if (ret != GST_FLOW_OK) + goto no_buffer; + + data = GST_BUFFER_DATA (*outbuf); + if (jas_stream_flush (stream) || + jas_stream_rewind (stream) < 0 || + jas_stream_read (stream, data + boxsize, size) < size) + goto fail_image_out; + + if (boxsize) { + /* write atom prefix */ + GST_WRITE_UINT32_BE (data, size + 8); + GST_WRITE_UINT32_LE (data + 4, GST_MAKE_FOURCC ('j', 'p', '2', 'c')); + } + +done: + if (stream) + jas_stream_close (stream); + + return ret; + + /* ERRORS */ +fail_stream: + { + GST_DEBUG_OBJECT (enc, "Failed to create inputstream."); + goto fail; + } +fail_encode: + { + GST_DEBUG_OBJECT (enc, "Failed to encode image."); + goto fail; + } +fail_image: + { + GST_DEBUG_OBJECT (enc, "Failed to process input image."); + goto fail; + } +fail_image_out: + { + GST_DEBUG_OBJECT (enc, "Failed to process encoded image."); + goto fail; + } +fail: + { + if (*outbuf) + gst_buffer_unref (*outbuf); + *outbuf = NULL; + GST_ELEMENT_ERROR (enc, STREAM, ENCODE, (NULL), (NULL)); + ret = GST_FLOW_ERROR; + goto done; + } +no_buffer: + { + GST_DEBUG_OBJECT (enc, "Failed to create outbuffer - %s", + gst_flow_get_name (ret)); + goto done; + } +} + +static GstFlowReturn +gst_jasper_enc_chain (GstPad * pad, GstBuffer * buf) +{ + GstJasperEnc *enc; + GstFlowReturn ret = GST_FLOW_OK; + GstBuffer *outbuf = NULL; + guint8 *data; + gboolean discont = FALSE; + + enc = GST_JASPER_ENC (gst_pad_get_parent (pad)); + + if (enc->fmt < 0) + goto not_negotiated; + + GST_LOG_OBJECT (enc, "buffer with ts: %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf))); + + discont = GST_BUFFER_FLAG_IS_SET (buf, GST_BUFFER_FLAG_DISCONT); + + /* now really feed the data to encoder */ + data = GST_BUFFER_DATA (buf); + ret = gst_jasper_enc_get_data (enc, data, &outbuf); + + if (outbuf) { + gst_buffer_copy_metadata (outbuf, buf, GST_BUFFER_COPY_TIMESTAMPS); + if (discont) + GST_BUFFER_FLAG_SET (outbuf, GST_BUFFER_FLAG_DISCONT); + } + + if (ret == GST_FLOW_OK && outbuf) + ret = gst_pad_push (enc->srcpad, outbuf); + +done: + gst_buffer_unref (buf); + gst_object_unref (enc); + + return ret; + + /* ERRORS */ +not_negotiated: + { + GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), + ("format wasn't negotiated before chain function")); + ret = GST_FLOW_NOT_NEGOTIATED; + goto done; + } +} + +static void +gst_jasper_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstJasperEnc *filter; + + filter = GST_JASPER_ENC (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_jasper_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstJasperEnc *filter; + + filter = GST_JASPER_ENC (object); + + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static GstStateChangeReturn +gst_jasper_enc_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstJasperEnc *enc = GST_JASPER_ENC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + if (jas_init ()) + goto fail_init; + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_jasper_enc_reset (enc); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + jas_cleanup (); + break; + default: + break; + } + + return ret; + + /* ERRORS */ +fail_init: + { + GST_ELEMENT_ERROR (enc, LIBRARY, INIT, (NULL), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } +} diff --git a/ext/jp2k/gstjasperenc.h b/ext/jp2k/gstjasperenc.h new file mode 100644 index 0000000..7cfd2ff --- /dev/null +++ b/ext/jp2k/gstjasperenc.h @@ -0,0 +1,91 @@ +/* GStreamer Jasper based j2k image encoder + * Copyright (C) 2008 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_JASPER_ENC_H__ +#define __GST_JASPER_ENC_H__ + +#include +#include + +#include + +G_BEGIN_DECLS + +/* #define's don't like whitespacey bits */ +#define GST_TYPE_JASPER_ENC \ + (gst_jasper_enc_get_type()) +#define GST_JASPER_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_JASPER_ENC,GstJasperEnc)) +#define GST_JASPER_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_JASPER_ENC,GstJasperEncClass)) +#define GST_IS_JASPER_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_JASPER_ENC)) +#define GST_IS_JASPER_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_JASPER_ENC)) + +typedef struct _GstJasperEnc GstJasperEnc; +typedef struct _GstJasperEncClass GstJasperEncClass; + +enum { + GST_JP2ENC_MODE_J2C = 0, + GST_JP2ENC_MODE_JPC, + GST_JP2ENC_MODE_JP2 +}; + +#define GST_JASPER_ENC_MAX_COMPONENT 4 + +struct _GstJasperEnc +{ + GstElement element; + + GstPad *sinkpad, *srcpad; + + jas_image_t *image; + glong *buf; + + /* jasper image fmt */ + gint fmt; + gint mode; + jas_clrspc_t clrspc; + + /* stream/image properties */ + GstVideoFormat format; + gint width; + gint height; + gint channels; + gint fps_num, fps_den; + gint par_num, par_den; + /* standard video_format indexed */ + gint stride[GST_JASPER_ENC_MAX_COMPONENT]; + gint offset[GST_JASPER_ENC_MAX_COMPONENT]; + gint inc[GST_JASPER_ENC_MAX_COMPONENT]; + gint cwidth[GST_JASPER_ENC_MAX_COMPONENT]; + gint cheight[GST_JASPER_ENC_MAX_COMPONENT]; +}; + +struct _GstJasperEncClass +{ + GstElementClass parent_class; +}; + +GType gst_jasper_enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_JASPER_ENC_H__ */ diff --git a/ext/jp2k/gstjp2k.c b/ext/jp2k/gstjp2k.c new file mode 100644 index 0000000..a032b31 --- /dev/null +++ b/ext/jp2k/gstjp2k.c @@ -0,0 +1,54 @@ +/* GStreamer Jasper based j2k image decoder/encoder + * Copyright (C) 2008 Mark Nauwelaerts + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstjasperdec.h" +#include "gstjasperenc.h" + +/* entry point to initialize the plug-in + * initialize the plug-in itself + * register the element factories and pad templates + * register the features + */ +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "jp2kdec", GST_RANK_MARGINAL, + GST_TYPE_JASPER_DEC)) + return FALSE; + + if (!gst_element_register (plugin, "jp2kenc", GST_RANK_MARGINAL, + GST_TYPE_JASPER_ENC)) + return FALSE; + + /* plugin initialisation succeeded */ + return TRUE; +} + + +/* this is the structure that gst-register looks for + * so keep the name plugin_desc, or you cannot get your plug-in registered */ +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "jp2k", + "Jasper-based JPEG2000 image decoder/encoder", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/kate/Makefile.am b/ext/kate/Makefile.am new file mode 100644 index 0000000..fd7d6ce --- /dev/null +++ b/ext/kate/Makefile.am @@ -0,0 +1,20 @@ +# plugindir is set in configure + +plugin_LTLIBRARIES = libgstkate.la + +# sources used to compile this plug-in +libgstkate_la_SOURCES = gstkate.c gstkatedec.c gstkateenc.c gstkateparse.c gstkatetag.c gstkateutil.c gstkatespu.c +if USE_TIGER +libgstkate_la_SOURCES += gstkatetiger.c +endif + +# flags used to compile this plugin +libgstkate_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(TIGER_CFLAGS) $(KATE_CFLAGS) +libgstkate_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) -lgsttag-$(GST_MAJORMINOR) $(GST_LIBS) $(TIGER_LIBS) $(KATE_LIBS) +libgstkate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstkate_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstkate.h gstkatedec.h gstkateenc.h gstkateparse.h gstkatetag.h gstkateutil.h gstkatespu.h gstkatetiger.h + +EXTRA_DIST=README diff --git a/ext/kate/Makefile.in b/ext/kate/Makefile.in new file mode 100644 index 0000000..dc25c66 --- /dev/null +++ b/ext/kate/Makefile.in @@ -0,0 +1,939 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# plugindir is set in configure + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@USE_TIGER_TRUE@am__append_1 = gstkatetiger.c +subdir = ext/kate +DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstkate_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am__libgstkate_la_SOURCES_DIST = gstkate.c gstkatedec.c gstkateenc.c \ + gstkateparse.c gstkatetag.c gstkateutil.c gstkatespu.c \ + gstkatetiger.c +@USE_TIGER_TRUE@am__objects_1 = libgstkate_la-gstkatetiger.lo +am_libgstkate_la_OBJECTS = libgstkate_la-gstkate.lo \ + libgstkate_la-gstkatedec.lo libgstkate_la-gstkateenc.lo \ + libgstkate_la-gstkateparse.lo libgstkate_la-gstkatetag.lo \ + libgstkate_la-gstkateutil.lo libgstkate_la-gstkatespu.lo \ + $(am__objects_1) +libgstkate_la_OBJECTS = $(am_libgstkate_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstkate_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstkate_la_CFLAGS) $(CFLAGS) \ + $(libgstkate_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstkate_la_SOURCES) +DIST_SOURCES = $(am__libgstkate_la_SOURCES_DIST) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstkate.la + +# sources used to compile this plug-in +libgstkate_la_SOURCES = gstkate.c gstkatedec.c gstkateenc.c \ + gstkateparse.c gstkatetag.c gstkateutil.c gstkatespu.c \ + $(am__append_1) + +# flags used to compile this plugin +libgstkate_la_CFLAGS = $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(TIGER_CFLAGS) $(KATE_CFLAGS) +libgstkate_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lgstvideo-$(GST_MAJORMINOR) -lgsttag-$(GST_MAJORMINOR) $(GST_LIBS) $(TIGER_LIBS) $(KATE_LIBS) +libgstkate_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstkate_la_LIBTOOLFLAGS = --tag=disable-static + +# headers we need but don't want installed +noinst_HEADERS = gstkate.h gstkatedec.h gstkateenc.h gstkateparse.h gstkatetag.h gstkateutil.h gstkatespu.h gstkatetiger.h +EXTRA_DIST = README +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/kate/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/kate/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstkate.la: $(libgstkate_la_OBJECTS) $(libgstkate_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstkate_la_LINK) -rpath $(plugindir) $(libgstkate_la_OBJECTS) $(libgstkate_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkate.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkatedec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkateenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkateparse.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkatespu.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkatetag.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkatetiger.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstkate_la-gstkateutil.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstkate_la-gstkate.lo: gstkate.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkate.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkate.Tpo -c -o libgstkate_la-gstkate.lo `test -f 'gstkate.c' || echo '$(srcdir)/'`gstkate.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkate.Tpo $(DEPDIR)/libgstkate_la-gstkate.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkate.c' object='libgstkate_la-gstkate.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkate.lo `test -f 'gstkate.c' || echo '$(srcdir)/'`gstkate.c + +libgstkate_la-gstkatedec.lo: gstkatedec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkatedec.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkatedec.Tpo -c -o libgstkate_la-gstkatedec.lo `test -f 'gstkatedec.c' || echo '$(srcdir)/'`gstkatedec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkatedec.Tpo $(DEPDIR)/libgstkate_la-gstkatedec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkatedec.c' object='libgstkate_la-gstkatedec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkatedec.lo `test -f 'gstkatedec.c' || echo '$(srcdir)/'`gstkatedec.c + +libgstkate_la-gstkateenc.lo: gstkateenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkateenc.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkateenc.Tpo -c -o libgstkate_la-gstkateenc.lo `test -f 'gstkateenc.c' || echo '$(srcdir)/'`gstkateenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkateenc.Tpo $(DEPDIR)/libgstkate_la-gstkateenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkateenc.c' object='libgstkate_la-gstkateenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkateenc.lo `test -f 'gstkateenc.c' || echo '$(srcdir)/'`gstkateenc.c + +libgstkate_la-gstkateparse.lo: gstkateparse.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkateparse.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkateparse.Tpo -c -o libgstkate_la-gstkateparse.lo `test -f 'gstkateparse.c' || echo '$(srcdir)/'`gstkateparse.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkateparse.Tpo $(DEPDIR)/libgstkate_la-gstkateparse.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkateparse.c' object='libgstkate_la-gstkateparse.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkateparse.lo `test -f 'gstkateparse.c' || echo '$(srcdir)/'`gstkateparse.c + +libgstkate_la-gstkatetag.lo: gstkatetag.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkatetag.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkatetag.Tpo -c -o libgstkate_la-gstkatetag.lo `test -f 'gstkatetag.c' || echo '$(srcdir)/'`gstkatetag.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkatetag.Tpo $(DEPDIR)/libgstkate_la-gstkatetag.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkatetag.c' object='libgstkate_la-gstkatetag.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkatetag.lo `test -f 'gstkatetag.c' || echo '$(srcdir)/'`gstkatetag.c + +libgstkate_la-gstkateutil.lo: gstkateutil.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkateutil.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkateutil.Tpo -c -o libgstkate_la-gstkateutil.lo `test -f 'gstkateutil.c' || echo '$(srcdir)/'`gstkateutil.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkateutil.Tpo $(DEPDIR)/libgstkate_la-gstkateutil.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkateutil.c' object='libgstkate_la-gstkateutil.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkateutil.lo `test -f 'gstkateutil.c' || echo '$(srcdir)/'`gstkateutil.c + +libgstkate_la-gstkatespu.lo: gstkatespu.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkatespu.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkatespu.Tpo -c -o libgstkate_la-gstkatespu.lo `test -f 'gstkatespu.c' || echo '$(srcdir)/'`gstkatespu.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkatespu.Tpo $(DEPDIR)/libgstkate_la-gstkatespu.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkatespu.c' object='libgstkate_la-gstkatespu.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkatespu.lo `test -f 'gstkatespu.c' || echo '$(srcdir)/'`gstkatespu.c + +libgstkate_la-gstkatetiger.lo: gstkatetiger.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -MT libgstkate_la-gstkatetiger.lo -MD -MP -MF $(DEPDIR)/libgstkate_la-gstkatetiger.Tpo -c -o libgstkate_la-gstkatetiger.lo `test -f 'gstkatetiger.c' || echo '$(srcdir)/'`gstkatetiger.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstkate_la-gstkatetiger.Tpo $(DEPDIR)/libgstkate_la-gstkatetiger.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstkatetiger.c' object='libgstkate_la-gstkatetiger.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstkate_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstkate_la_CFLAGS) $(CFLAGS) -c -o libgstkate_la-gstkatetiger.lo `test -f 'gstkatetiger.c' || echo '$(srcdir)/'`gstkatetiger.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/kate/README b/ext/kate/README new file mode 100644 index 0000000..498a79e --- /dev/null +++ b/ext/kate/README @@ -0,0 +1,20 @@ +Kate is a free codec for text based data, which can also carry images. +It is typically used to create overlays on a video. + +libkate, a codec for Kate streams, is required to build this plugin: +http://libkate.googlecode.com/ + +libtiger, a rendering library for Kate streams, is optional: +http://libtiger.googlecode.com/ + +The Kate plugin contains various elements to manipulate Kate streams: + + - katedec: decodes Kate streams to text and SPU images + - kateenc: encodes Kate streams from text and SPU images + - kateparse: parses Kate streams + - katetag: allows changing metadata in Kate streams + - tiger: decodes and renders Kate streams using libtiger (needs libtiger) + +More information about Kate can be found at: +http://wiki.xiph.org/index.php/OggKate + diff --git a/ext/kate/gstkate.c b/ext/kate/gstkate.c new file mode 100644 index 0000000..c7858e4 --- /dev/null +++ b/ext/kate/gstkate.c @@ -0,0 +1,117 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include + +#include "gstkate.h" +#include "gstkatedec.h" +#include "gstkateenc.h" +#include "gstkateparse.h" +#include "gstkatetag.h" +#ifdef HAVE_TIGER +#include "gstkatetiger.h" +#endif + +GST_DEBUG_CATEGORY (gst_katedec_debug); +GST_DEBUG_CATEGORY (gst_kateenc_debug); +GST_DEBUG_CATEGORY (gst_kateparse_debug); +GST_DEBUG_CATEGORY (gst_katetag_debug); +GST_DEBUG_CATEGORY (gst_kateutil_debug); +#ifdef HAVE_TIGER +GST_DEBUG_CATEGORY (gst_katetiger_debug); +#endif + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (gst_katedec_debug, "katedec", 0, "Kate decoder"); + GST_DEBUG_CATEGORY_INIT (gst_kateenc_debug, "kateenc", 0, "Kate encoder"); + GST_DEBUG_CATEGORY_INIT (gst_kateparse_debug, "kateparse", 0, "Kate parser"); + GST_DEBUG_CATEGORY_INIT (gst_katetag_debug, "katetag", 0, "Kate tagger"); + GST_DEBUG_CATEGORY_INIT (gst_kateutil_debug, "kateutil", 0, + "Kate utility functions"); +#ifdef HAVE_TIGER + GST_DEBUG_CATEGORY_INIT (gst_katetiger_debug, "tiger", 0, + "Kate Tiger renderer"); +#endif + + if (!gst_element_register (plugin, "katedec", GST_RANK_PRIMARY, + GST_TYPE_KATE_DEC)) + return FALSE; + + if (!gst_element_register (plugin, "kateenc", GST_RANK_NONE, + GST_TYPE_KATE_ENC)) + return FALSE; + + if (!gst_element_register (plugin, "kateparse", GST_RANK_NONE, + GST_TYPE_KATE_PARSE)) + return FALSE; + + if (!gst_element_register (plugin, "katetag", GST_RANK_NONE, + GST_TYPE_KATE_TAG)) + return FALSE; + +#ifdef HAVE_TIGER + if (!gst_element_register (plugin, "tiger", GST_RANK_PRIMARY, + GST_TYPE_KATE_TIGER)) + return FALSE; +#endif + + return TRUE; +} + +/* this is the structure that gstreamer looks for to register plugins + */ +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "kate", + "Kate plugin", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/kate/gstkate.h b/ext/kate/gstkate.h new file mode 100644 index 0000000..f196881 --- /dev/null +++ b/ext/kate/gstkate.h @@ -0,0 +1,55 @@ +/* + * GStreamer + * Copyright (C) 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_KATE_H__ +#define __GST_KATE_H__ + +#include + +G_BEGIN_DECLS + +/* nothing here any more */ + +G_END_DECLS + +#endif /* __GST_KATE_H__ */ diff --git a/ext/kate/gstkatedec.c b/ext/kate/gstkatedec.c new file mode 100644 index 0000000..df36070 --- /dev/null +++ b/ext/kate/gstkatedec.c @@ -0,0 +1,462 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008, 2009 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-katedec + * @see_also: oggdemux + * + * + * + * This element decodes Kate streams + * Kate is a free codec + * for text based data, such as subtitles. Any number of kate streams can be + * embedded in an Ogg stream. + * + * + * libkate (see above url) is needed to build this plugin. + * + * Example pipeline + * + * This explicitely decodes a Kate stream: + * + * gst-launch filesrc location=test.ogg ! oggdemux ! katedec ! fakesink silent=TRUE + * + * + * + * This will automatically detect and use any Kate streams multiplexed + * in an Ogg stream: + * + * gst-launch playbin uri=file:///tmp/test.ogg + * + * + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include + +#include "gstkate.h" +#include "gstkatespu.h" +#include "gstkatedec.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_katedec_debug); +#define GST_CAT_DEFAULT gst_katedec_debug + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + ARG_REMOVE_MARKUP = DECODER_BASE_ARG_COUNT +}; + +/* We don't accept application/x-kate here on purpose for now, since we're + * only really interested in subtitle-like things for playback purposes, not + * cracktastic complex overlays or presentation images etc. - those should be + * fed into a tiger overlay plugin directly */ +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("subtitle/x-kate") + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("text/plain; text/x-pango-markup; " GST_KATE_SPU_MIME_TYPE) + ); + +GST_BOILERPLATE (GstKateDec, gst_kate_dec, GstElement, GST_TYPE_ELEMENT); + +static void gst_kate_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_kate_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstFlowReturn gst_kate_dec_chain (GstPad * pad, GstBuffer * buf); +static GstStateChangeReturn gst_kate_dec_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_kate_dec_sink_query (GstPad * pad, GstQuery * query); +static gboolean gst_kate_dec_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_kate_dec_sink_handle_event (GstPad * pad, GstEvent * event); +static GstCaps *gst_kate_dec_src_get_caps (GstPad * pad); + +static void +gst_kate_dec_base_init (gpointer gclass) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_set_details_simple (element_class, + "Kate stream text decoder", "Codec/Decoder/Subtitle", + "Decodes Kate text streams", + "Vincent Penquerc'h "); +} + +/* initialize the plugin's class */ +static void +gst_kate_dec_class_init (GstKateDecClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_kate_dec_set_property; + gobject_class->get_property = gst_kate_dec_get_property; + + gst_kate_util_install_decoder_base_properties (gobject_class); + + g_object_class_install_property (gobject_class, ARG_REMOVE_MARKUP, + g_param_spec_boolean ("remove-markup", "Remove markup", + "Remove markup from decoded text ?", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_kate_dec_change_state); +} + +/* initialize the new element + * instantiate pads and add them to element + * set functions + * initialize structure + */ +static void +gst_kate_dec_init (GstKateDec * dec, GstKateDecClass * gclass) +{ + GST_DEBUG_OBJECT (dec, "gst_kate_dec_init"); + + dec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_pad_set_chain_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_dec_chain)); + gst_pad_set_query_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_dec_sink_query)); + gst_pad_set_event_function (dec->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_dec_sink_event)); + gst_pad_use_fixed_caps (dec->sinkpad); + gst_pad_set_caps (dec->sinkpad, + gst_static_pad_template_get_caps (&sink_factory)); + gst_element_add_pad (GST_ELEMENT (dec), dec->sinkpad); + + dec->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_getcaps_function (dec->srcpad, + GST_DEBUG_FUNCPTR (gst_kate_dec_src_get_caps)); + gst_element_add_pad (GST_ELEMENT (dec), dec->srcpad); + + gst_kate_util_decode_base_init (&dec->decoder, TRUE); + + dec->src_caps = NULL; + dec->remove_markup = FALSE; +} + +static void +gst_kate_dec_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + switch (prop_id) { + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_kate_dec_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstKateDec *kd = GST_KATE_DEC (object); + + switch (prop_id) { + case ARG_REMOVE_MARKUP: + g_value_set_boolean (value, kd->remove_markup); + break; + default: + if (!gst_kate_util_decoder_base_get_property (&kd->decoder, object, + prop_id, value, pspec)) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } + break; + } +} + +/* GstElement vmethod implementations */ + +/* chain function + * this function does the actual processing + */ + +static GstFlowReturn +gst_kate_dec_chain (GstPad * pad, GstBuffer * buf) +{ + GstKateDec *kd = GST_KATE_DEC (gst_pad_get_parent (pad)); + const kate_event *ev = NULL; + GstFlowReturn rflow = GST_FLOW_OK; + + if (!gst_kate_util_decoder_base_update_segment (&kd->decoder, + GST_ELEMENT_CAST (kd), buf)) { + GST_WARNING_OBJECT (kd, "Out of segment!"); + goto not_in_seg; + } + + rflow = + gst_kate_util_decoder_base_chain_kate_packet (&kd->decoder, + GST_ELEMENT_CAST (kd), pad, buf, kd->srcpad, kd->srcpad, &kd->src_caps, + &ev); + if (G_UNLIKELY (rflow != GST_FLOW_OK)) { + gst_object_unref (kd); + gst_buffer_unref (buf); + return rflow; + } + + if (ev) { + gchar *escaped; + GstBuffer *buffer; + size_t len; + gboolean plain = TRUE; + + if (kd->remove_markup && ev->text_markup_type != kate_markup_none) { + size_t len0 = ev->len + 1; + escaped = g_strdup (ev->text); + if (escaped) { + kate_text_remove_markup (ev->text_encoding, escaped, &len0); + } + plain = TRUE; + } else if (ev->text_markup_type == kate_markup_none) { + /* no pango markup yet, escape text */ + /* TODO: actually do the pango thing */ + escaped = g_strdup (ev->text); + plain = TRUE; + } else { + escaped = g_strdup (ev->text); + plain = FALSE; + } + + if (G_LIKELY (escaped)) { + len = strlen (escaped); + if (len > 0) { + GST_DEBUG_OBJECT (kd, "kate event: %s, escaped %s", ev->text, escaped); + buffer = gst_buffer_new_and_alloc (len + 1); + if (G_LIKELY (buffer)) { + const char *mime = plain ? "text/plain" : "text/x-pango-markup"; + GstCaps *caps = gst_caps_new_simple (mime, NULL); + gst_buffer_set_caps (buffer, caps); + gst_caps_unref (caps); + /* allocate and copy the NULs, but don't include them in passed size */ + memcpy (GST_BUFFER_DATA (buffer), escaped, len + 1); + GST_BUFFER_SIZE (buffer) = len; + GST_BUFFER_TIMESTAMP (buffer) = ev->start_time * GST_SECOND; + GST_BUFFER_DURATION (buffer) = + (ev->end_time - ev->start_time) * GST_SECOND; + rflow = gst_pad_push (kd->srcpad, buffer); + if (rflow == GST_FLOW_NOT_LINKED) { + GST_DEBUG_OBJECT (kd, "source pad not linked, ignored"); + } else if (rflow != GST_FLOW_OK) { + GST_WARNING_OBJECT (kd, "failed to push buffer: %s", + gst_flow_get_name (rflow)); + } + } else { + GST_ELEMENT_ERROR (kd, STREAM, DECODE, (NULL), + ("Failed to create buffer")); + rflow = GST_FLOW_ERROR; + } + } else { + GST_WARNING_OBJECT (kd, "Empty string, nothing to do"); + rflow = GST_FLOW_OK; + } + g_free (escaped); + } else { + GST_ELEMENT_ERROR (kd, STREAM, DECODE, (NULL), + ("Failed to allocate string")); + rflow = GST_FLOW_ERROR; + } + + // if there's a background paletted bitmap, construct a DVD SPU for it + if (ev->bitmap && ev->palette) { + GstBuffer *buffer = gst_kate_spu_encode_spu (kd, ev); + if (buffer) { + GstCaps *caps = gst_caps_new_simple (GST_KATE_SPU_MIME_TYPE, NULL); + gst_buffer_set_caps (buffer, caps); + gst_caps_unref (caps); + GST_BUFFER_TIMESTAMP (buffer) = ev->start_time * GST_SECOND; + GST_BUFFER_DURATION (buffer) = + (ev->end_time - ev->start_time) * GST_SECOND; + rflow = gst_pad_push (kd->srcpad, buffer); + if (rflow == GST_FLOW_NOT_LINKED) { + GST_DEBUG_OBJECT (kd, "source pad not linked, ignored"); + } else if (rflow != GST_FLOW_OK) { + GST_WARNING_OBJECT (kd, "failed to push buffer: %s", + gst_flow_get_name (rflow)); + } + } else { + GST_ELEMENT_ERROR (kd, STREAM, DECODE, (NULL), + ("failed to create SPU from paletted bitmap")); + rflow = GST_FLOW_ERROR; + } + } + } + +not_in_seg: + gst_object_unref (kd); + gst_buffer_unref (buf); + return rflow; +} + +static GstStateChangeReturn +gst_kate_dec_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret; + GstKateDec *kd = GST_KATE_DEC (element); + + ret = gst_kate_decoder_base_change_state (&kd->decoder, element, + parent_class, transition); + + if (transition == GST_STATE_CHANGE_PAUSED_TO_READY) { + gst_caps_replace (&kd->src_caps, NULL); + } + + return ret; +} + +gboolean +gst_kate_dec_sink_query (GstPad * pad, GstQuery * query) +{ + GstKateDec *kd = GST_KATE_DEC (gst_pad_get_parent (pad)); + gboolean res = + gst_kate_decoder_base_sink_query (&kd->decoder, GST_ELEMENT_CAST (kd), + pad, query); + gst_object_unref (kd); + return res; +} + +static gboolean +gst_kate_dec_sink_event (GstPad * pad, GstEvent * event) +{ + GstKateDec *kd = (GstKateDec *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + GST_LOG_OBJECT (pad, "Event on sink pad: %s", GST_EVENT_TYPE_NAME (event)); + + /* Delay events till we've set caps */ + if (gst_kate_util_decoder_base_queue_event (&kd->decoder, event, + &gst_kate_dec_sink_handle_event, pad)) { + gst_object_unref (kd); + return TRUE; + } + + res = gst_kate_dec_sink_handle_event (pad, event); + + gst_object_unref (kd); + + return res; +} + +static gboolean +gst_kate_dec_sink_handle_event (GstPad * pad, GstEvent * event) +{ + GstKateDec *kd = (GstKateDec *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + GST_LOG_OBJECT (pad, "Handling event on sink pad: %s", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + gst_kate_util_decoder_base_new_segment_event (&kd->decoder, event); + res = gst_pad_event_default (pad, event); + break; + + case GST_EVENT_FLUSH_START: + gst_kate_util_decoder_base_set_flushing (&kd->decoder, TRUE); + res = gst_pad_event_default (pad, event); + break; + + case GST_EVENT_FLUSH_STOP: + gst_kate_util_decoder_base_set_flushing (&kd->decoder, FALSE); + res = gst_pad_event_default (pad, event); + break; + + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (kd); + + return res; +} + +static GstCaps * +gst_kate_dec_src_get_caps (GstPad * pad) +{ + GstKateDec *kd = (GstKateDec *) (gst_object_get_parent (GST_OBJECT (pad))); + GstCaps *caps; + + if (kd->src_caps) { + GST_DEBUG_OBJECT (kd, "We have src caps %" GST_PTR_FORMAT, kd->src_caps); + caps = kd->src_caps; + } else { + GST_DEBUG_OBJECT (kd, "We have no src caps, using template caps"); + caps = gst_static_pad_template_get_caps (&src_factory); + } + + caps = gst_caps_copy (caps); + + gst_object_unref (kd); + return caps; +} diff --git a/ext/kate/gstkatedec.h b/ext/kate/gstkatedec.h new file mode 100644 index 0000000..b4d9905 --- /dev/null +++ b/ext/kate/gstkatedec.h @@ -0,0 +1,88 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_KATE_DEC_H__ +#define __GST_KATE_DEC_H__ + +#include +#include +#include "gstkateutil.h" + +G_BEGIN_DECLS +/* #defines don't like whitespacey bits */ +#define GST_TYPE_KATE_DEC \ + (gst_kate_dec_get_type()) +#define GST_KATE_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KATE_DEC,GstKateDec)) +#define GST_KATE_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_KATE,GstKateDecClass)) +#define GST_IS_KATE_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KATE_DEC)) +#define GST_IS_KATE_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_DEC)) +typedef struct _GstKateDec GstKateDec; +typedef struct _GstKateDecClass GstKateDecClass; + +struct _GstKateDec +{ + GstKateDecoderBase decoder; + + GstPad *sinkpad; + GstPad *srcpad; + + GstCaps *src_caps; + + gboolean remove_markup; +}; + +struct _GstKateDecClass +{ + GstElementClass parent_class; +}; + +GType gst_kate_dec_get_type (void); + +G_END_DECLS +#endif /* __GST_KATE_DEC_H__ */ diff --git a/ext/kate/gstkateenc.c b/ext/kate/gstkateenc.c new file mode 100644 index 0000000..428e518 --- /dev/null +++ b/ext/kate/gstkateenc.c @@ -0,0 +1,1414 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright (C) 2007 Fluendo S.A. + * Copyright 2008, 2009 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-kateenc + * @see_also: oggmux + * + * + * + * This element encodes Kate streams + * Kate is a free codec + * for text based data, such as subtitles. Any number of kate streams can be + * embedded in an Ogg stream. + * + * + * libkate (see above url) is needed to build this plugin. + * + * Example pipeline + * + * This encodes a DVD SPU track to a Kate stream: + * + * gst-launch dvdreadsrc ! dvddemux ! dvdsubparse ! kateenc category=spu-subtitles ! oggmux ! filesink location=test.ogg + * + * + * + */ + +/* FIXME: + * - should we automatically pick up the language code from the + * upstream event tags if none was set via the property? + * - turn category property into an enum (freestyle text property in + * combination with supposedly strictly defined known values that + * aren't even particularly human-readable is just not very nice)? */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include +#include + +#include "gstkate.h" +#include "gstkateutil.h" +#include "gstkatespu.h" +#include "gstkateenc.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_kateenc_debug); +#define GST_CAT_DEFAULT gst_kateenc_debug + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + ARG_0, + ARG_LANGUAGE, + ARG_CATEGORY, + ARG_GRANULE_RATE_NUM, + ARG_GRANULE_RATE_DEN, + ARG_GRANULE_SHIFT, + ARG_KEEPALIVE_MIN_TIME, + ARG_ORIGINAL_CANVAS_WIDTH, + ARG_ORIGINAL_CANVAS_HEIGHT, + ARG_DEFAULT_SPU_DURATION, +}; + +#define DEFAULT_KEEPALIVE_MIN_TIME 2.5f +#define DEFAULT_DEFAULT_SPU_DURATION 1.5f + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("text/plain; text/x-pango-markup; " GST_KATE_SPU_MIME_TYPE) + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("subtitle/x-kate; application/x-kate") + ); + +static void gst_kate_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_kate_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_kate_enc_dispose (GObject * object); + +static gboolean gst_kate_enc_setcaps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_kate_enc_chain (GstPad * pad, GstBuffer * buf); +static GstStateChangeReturn gst_kate_enc_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_kate_enc_sink_event (GstPad * pad, GstEvent * event); +static const GstQueryType *gst_kate_enc_source_query_type (GstPad * pad); +static gboolean gst_kate_enc_source_query (GstPad * pad, GstQuery * query); +static void gst_kate_enc_add_interfaces (GType kateenc_type); + +GST_BOILERPLATE_FULL (GstKateEnc, gst_kate_enc, GstElement, + GST_TYPE_ELEMENT, gst_kate_enc_add_interfaces); + +static void +gst_kate_enc_base_init (gpointer gclass) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_set_details_simple (element_class, "Kate stream encoder", + "Codec/Encoder/Subtitle", + "Encodes Kate streams from text or subpictures", + "Vincent Penquerc'h "); +} + +/* initialize the plugin's class */ +static void +gst_kate_enc_class_init (GstKateEncClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + parent_class = g_type_class_peek_parent (klass); + + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_kate_enc_set_property); + gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_kate_enc_get_property); + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_kate_enc_dispose); + + g_object_class_install_property (gobject_class, ARG_LANGUAGE, + g_param_spec_string ("language", "Language", + "The language of the stream (e.g. \"fr\" or \"fr_FR\" for French)", + "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_CATEGORY, + g_param_spec_string ("category", "Category", + "The category of the stream", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_GRANULE_RATE_NUM, + g_param_spec_int ("granule-rate-numerator", "Granule rate numerator", + "The numerator of the granule rate", + 1, G_MAXINT, 1, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_GRANULE_RATE_DEN, + g_param_spec_int ("granule-rate-denominator", "Granule rate denominator", + "The denominator of the granule rate", + 1, G_MAXINT, 1000, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_GRANULE_SHIFT, + g_param_spec_int ("granule-shift", "Granule shift", + "The granule shift", 0, 64, 32, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_WIDTH, + g_param_spec_int ("original-canvas-width", "Original canvas width", + "The width of the canvas this stream was authored for (0 is unspecified)", + 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_HEIGHT, + g_param_spec_int ("original-canvas-height", "Original canvas height", + "The height of the canvas this stream was authored for (0 is unspecified)", + 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_KEEPALIVE_MIN_TIME, + g_param_spec_float ("keepalive-min-time", "Keepalive mimimum time", + "Minimum time to emit keepalive packets (0 disables keepalive packets)", + 0.0f, FLT_MAX, DEFAULT_KEEPALIVE_MIN_TIME, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_SPU_DURATION, + g_param_spec_float ("default-spu-duration", "Default SPU duration", + "The assumed max duration (in seconds) of SPUs with no duration specified", + 0.0f, FLT_MAX, DEFAULT_DEFAULT_SPU_DURATION, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_kate_enc_change_state); +} + +static void +gst_kate_enc_add_interfaces (GType kateenc_type) +{ + static const GInterfaceInfo tag_setter_info = { NULL, NULL, NULL }; + + g_type_add_interface_static (kateenc_type, GST_TYPE_TAG_SETTER, + &tag_setter_info); +} + +/* initialize the new element + * instantiate pads and add them to element + * set functions + * initialize structure + */ +static void +gst_kate_enc_init (GstKateEnc * ke, GstKateEncClass * gclass) +{ + GST_DEBUG_OBJECT (ke, "gst_kate_enc_init"); + + ke->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_pad_set_chain_function (ke->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_enc_chain)); + gst_pad_set_event_function (ke->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_enc_sink_event)); + gst_pad_set_setcaps_function (ke->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_enc_setcaps)); + gst_element_add_pad (GST_ELEMENT (ke), ke->sinkpad); + + ke->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_query_type_function (ke->srcpad, + GST_DEBUG_FUNCPTR (gst_kate_enc_source_query_type)); + gst_pad_set_query_function (ke->srcpad, + GST_DEBUG_FUNCPTR (gst_kate_enc_source_query)); + gst_element_add_pad (GST_ELEMENT (ke), ke->srcpad); + + ke->initialized = FALSE; + ke->headers_sent = FALSE; + ke->last_timestamp = 0; + ke->latest_end_time = 0; + ke->language = NULL; + ke->category = NULL; + ke->granule_rate_numerator = 1000; + ke->granule_rate_denominator = 1; + ke->granule_shift = 32; + ke->original_canvas_width = 0; + ke->original_canvas_height = 0; + ke->keepalive_min_time = DEFAULT_KEEPALIVE_MIN_TIME; + ke->default_spu_duration = DEFAULT_DEFAULT_SPU_DURATION; + memcpy (ke->spu_clut, gst_kate_spu_default_clut, + sizeof (gst_kate_spu_default_clut)); + ke->delayed_spu = FALSE; + ke->delayed_bitmap = NULL; + ke->delayed_palette = NULL; + ke->delayed_region = NULL; +} + +static void +gst_kate_enc_dispose (GObject * object) +{ + GstKateEnc *ke = GST_KATE_ENC (object); + + GST_LOG_OBJECT (ke, "disposing"); + + if (ke->language) { + g_free (ke->language); + ke->language = NULL; + } + if (ke->category) { + g_free (ke->category); + ke->category = NULL; + } + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static void +gst_kate_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstKateEnc *ke = GST_KATE_ENC (object); + const char *str; + + switch (prop_id) { + case ARG_LANGUAGE: + if (ke->language) { + g_free (ke->language); + ke->language = NULL; + } + str = g_value_get_string (value); + if (str) + ke->language = g_strdup (str); + break; + case ARG_CATEGORY: + if (ke->category) { + g_free (ke->category); + ke->category = NULL; + } + str = g_value_get_string (value); + if (str) + ke->category = g_strdup (str); + break; + case ARG_GRANULE_RATE_NUM: + ke->granule_rate_numerator = g_value_get_int (value); + break; + case ARG_GRANULE_RATE_DEN: + ke->granule_rate_denominator = g_value_get_int (value); + break; + case ARG_GRANULE_SHIFT: + ke->granule_rate_denominator = g_value_get_int (value); + break; + case ARG_KEEPALIVE_MIN_TIME: + ke->keepalive_min_time = g_value_get_float (value); + break; + case ARG_ORIGINAL_CANVAS_WIDTH: + ke->original_canvas_width = g_value_get_int (value); + break; + case ARG_ORIGINAL_CANVAS_HEIGHT: + ke->original_canvas_height = g_value_get_int (value); + break; + case ARG_DEFAULT_SPU_DURATION: + ke->default_spu_duration = g_value_get_float (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_kate_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstKateEnc *ke = GST_KATE_ENC (object); + + switch (prop_id) { + case ARG_LANGUAGE: + g_value_set_string (value, ke->language ? ke->language : ""); + break; + case ARG_CATEGORY: + g_value_set_string (value, ke->category ? ke->category : ""); + break; + case ARG_GRANULE_RATE_NUM: + g_value_set_int (value, ke->granule_rate_numerator); + break; + case ARG_GRANULE_RATE_DEN: + g_value_set_int (value, ke->granule_rate_denominator); + break; + case ARG_GRANULE_SHIFT: + g_value_set_int (value, ke->granule_shift); + break; + case ARG_KEEPALIVE_MIN_TIME: + g_value_set_float (value, ke->keepalive_min_time); + break; + case ARG_ORIGINAL_CANVAS_WIDTH: + g_value_set_int (value, ke->original_canvas_width); + break; + case ARG_ORIGINAL_CANVAS_HEIGHT: + g_value_set_int (value, ke->original_canvas_height); + break; + case ARG_DEFAULT_SPU_DURATION: + g_value_set_float (value, ke->default_spu_duration); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +/* GstElement vmethod implementations */ + +static GstBuffer * +gst_kate_enc_create_buffer (GstKateEnc * ke, kate_packet * kp, + kate_int64_t granpos, GstClockTime timestamp, GstClockTime duration, + gboolean header) +{ + GstBuffer *buffer; + + buffer = gst_buffer_try_new_and_alloc (kp->nbytes); + if (G_UNLIKELY (!buffer)) { + GST_WARNING_OBJECT (ke, "Failed to allocate buffer for %u bytes", + (guint) kp->nbytes); + return NULL; + } + + memcpy (GST_BUFFER_DATA (buffer), kp->data, kp->nbytes); + + /* same system as other Ogg codecs, as per ext/ogg/README: + OFFSET_END is the granulepos + OFFSET is its time representation + */ + GST_BUFFER_OFFSET_END (buffer) = granpos; + GST_BUFFER_OFFSET (buffer) = timestamp; + GST_BUFFER_TIMESTAMP (buffer) = timestamp; + GST_BUFFER_DURATION (buffer) = duration; + + /* data packets are each on their own page */ +// if (!header) +// GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DISCONT); + + return buffer; +} + +static GstFlowReturn +gst_kate_enc_push_buffer (GstKateEnc * ke, GstBuffer * buffer) +{ + GstFlowReturn flow; + + ke->last_timestamp = GST_BUFFER_TIMESTAMP (buffer); + if (GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer) > + ke->latest_end_time) { + ke->latest_end_time = + GST_BUFFER_TIMESTAMP (buffer) + GST_BUFFER_DURATION (buffer); + } + + /* Hack to flush each packet on its own page - taken off the CMML encoder element */ + GST_BUFFER_DURATION (buffer) = G_MAXINT64; + + flow = gst_pad_push (ke->srcpad, buffer); + if (G_UNLIKELY (flow != GST_FLOW_OK)) { + GST_WARNING_OBJECT (ke->srcpad, "push flow: %s", gst_flow_get_name (flow)); + } + + return flow; +} + +static GstFlowReturn +gst_kate_enc_push_and_free_kate_packet (GstKateEnc * ke, kate_packet * kp, + kate_int64_t granpos, GstClockTime timestamp, GstClockTime duration, + gboolean header) +{ + GstBuffer *buffer; + + GST_LOG_OBJECT (ke, "Creating buffer, %u bytes", (guint) kp->nbytes); + buffer = + gst_kate_enc_create_buffer (ke, kp, granpos, timestamp, duration, header); + if (G_UNLIKELY (!buffer)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Failed to create buffer, %u bytes", (guint) kp->nbytes)); + kate_packet_clear (kp); + return GST_FLOW_ERROR; + } + + kate_packet_clear (kp); + + return gst_kate_enc_push_buffer (ke, buffer); +} + +static void +gst_kate_enc_metadata_set1 (const GstTagList * list, const gchar * tag, + gpointer kateenc) +{ + GstKateEnc *ke = GST_KATE_ENC (kateenc); + GList *vc_list, *l; + + vc_list = gst_tag_to_vorbis_comments (list, tag); + + for (l = vc_list; l != NULL; l = l->next) { + const gchar *vc_string = (const gchar *) l->data; + gchar *key = NULL, *val = NULL; + + GST_LOG_OBJECT (ke, "Kate comment: %s", vc_string); + if (gst_tag_parse_extended_comment (vc_string, &key, NULL, &val, TRUE)) { + kate_comment_add_tag (&ke->kc, key, val); + g_free (key); + g_free (val); + } + } + + g_list_foreach (vc_list, (GFunc) g_free, NULL); + g_list_free (vc_list); +} + +static void +gst_kate_enc_set_metadata (GstKateEnc * ke) +{ + GstTagList *merged_tags; + const GstTagList *user_tags; + + user_tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (ke)); + + GST_DEBUG_OBJECT (ke, "upstream tags = %" GST_PTR_FORMAT, ke->tags); + GST_DEBUG_OBJECT (ke, "user-set tags = %" GST_PTR_FORMAT, user_tags); + + /* gst_tag_list_merge() will handle NULL for either or both lists fine */ + merged_tags = gst_tag_list_merge (user_tags, ke->tags, + gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (ke))); + + if (merged_tags) { + GST_DEBUG_OBJECT (ke, "merged tags = %" GST_PTR_FORMAT, merged_tags); + gst_tag_list_foreach (merged_tags, gst_kate_enc_metadata_set1, ke); + gst_tag_list_free (merged_tags); + } +} + +static gboolean +gst_kate_enc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstKateEnc *ke; + + ke = GST_KATE_ENC (GST_PAD_PARENT (pad)); + + GST_LOG_OBJECT (ke, "input caps: %" GST_PTR_FORMAT, caps); + + /* One day we could try to automatically set the category based on the + * input format, assuming that the input is subtitles. Currently that + * doesn't work yet though, because we send the header packets already from + * the sink event handler when receiving the newsegment event, so before + * the first buffer (might be tricky to change too, given that there could + * be no data at the beginning for a long time). So for now we just try to + * make sure people didn't set the category to something obviously wrong. */ + if (ke->category != NULL) { + GstStructure *s = gst_caps_get_structure (caps, 0); + + if (gst_structure_has_name (s, "text/plain") || + gst_structure_has_name (s, "text/x-pango-markup")) { + if (strcmp (ke->category, "K-SPU") == 0 || + strcmp (ke->category, "spu-subtitles") == 0) { + GST_ELEMENT_WARNING (ke, LIBRARY, SETTINGS, (NULL), + ("Category set to '%s', but input is text-based.", ke->category)); + } + } else if (gst_structure_has_name (s, "video/x-dvd-subpicture")) { + if (strcmp (ke->category, "SUB") == 0 || + strcmp (ke->category, "subtitles") == 0) { + GST_ELEMENT_WARNING (ke, LIBRARY, SETTINGS, (NULL), + ("Category set to '%s', but input is subpictures.", ke->category)); + } + } else { + GST_ERROR_OBJECT (ke, "unexpected input caps %" GST_PTR_FORMAT, caps); + return FALSE; + } + } + + return TRUE; +} + +static gboolean +gst_kate_enc_is_simple_subtitle_category (GstKateEnc * ke, const char *category) +{ + static const char *const simple[] = { + "subtitles", + "SUB", + "spu-subtitles", + "K-SPU", + }; + int n; + + if (!category) + return FALSE; + for (n = 0; n < G_N_ELEMENTS (simple); ++n) { + if (!strcmp (category, simple[n])) + return TRUE; + } + return FALSE; +} + +static GstFlowReturn +gst_kate_enc_send_headers (GstKateEnc * ke) +{ + GstFlowReturn rflow = GST_FLOW_OK; + GstCaps *caps; + GList *headers = NULL, *item; + + if (G_UNLIKELY (ke->category == NULL || *ke->category == '\0')) { + /* The error code is a bit of a lie, but seems most appropriate. */ + GST_ELEMENT_ERROR (ke, LIBRARY, SETTINGS, (NULL), + ("The 'category' property must be set. For subtitles, set it to " + "either 'SUB' (text subtitles) or 'K-SPU' (dvd-style subtitles)")); + return GST_FLOW_ERROR; + } + + gst_kate_enc_set_metadata (ke); + + /* encode headers and store them in a list */ + while (1) { + kate_packet kp; + int ret = kate_encode_headers (&ke->k, &ke->kc, &kp); + if (ret == 0) { + GstBuffer *buffer; + + buffer = gst_kate_enc_create_buffer (ke, &kp, 0, 0, 0, TRUE); + if (!buffer) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Failed to create buffer, %u bytes", (guint) kp.nbytes)); + rflow = GST_FLOW_ERROR; + break; + } + kate_packet_clear (&kp); + + headers = g_list_append (headers, buffer); + } else if (ret > 0) { + GST_LOG_OBJECT (ke, "Last header encoded"); + break; + } else { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_headers: %d", ret)); + rflow = GST_FLOW_ERROR; + break; + } + } + + if (rflow == GST_FLOW_OK) { + if (gst_kate_enc_is_simple_subtitle_category (ke, ke->category)) { + caps = gst_kate_util_set_header_on_caps (&ke->element, + gst_caps_from_string ("subtitle/x-kate"), headers); + } else { + caps = gst_kate_util_set_header_on_caps (&ke->element, + gst_caps_from_string ("application/x-kate"), headers); + } + if (caps) { + GST_DEBUG_OBJECT (ke, "here are the caps: %" GST_PTR_FORMAT, caps); + gst_pad_set_caps (ke->srcpad, caps); + + GST_LOG_OBJECT (ke, "setting caps on headers"); + item = headers; + while (item) { + GstBuffer *buffer = item->data; + GST_LOG_OBJECT (ke, "settings caps on header %p", buffer); + gst_buffer_set_caps (buffer, caps); + item = item->next; + } + + gst_caps_unref (caps); + + GST_LOG_OBJECT (ke, "pushing headers"); + item = headers; + while (item) { + GstBuffer *buffer = item->data; + GST_LOG_OBJECT (ke, "pushing header %p", buffer); + gst_kate_enc_push_buffer (ke, buffer); + item = item->next; + } + } else { + GST_ERROR_OBJECT (ke, "Failed to set headers on caps"); + } + } + + g_list_free (headers); + + return rflow; +} + +static GstFlowReturn +gst_kate_enc_flush_headers (GstKateEnc * ke) +{ + GstFlowReturn rflow = GST_FLOW_OK; + if (!ke->headers_sent) { + GST_INFO_OBJECT (ke, "headers not yet sent, flushing"); + rflow = gst_kate_enc_send_headers (ke); + if (rflow == GST_FLOW_OK) { + ke->headers_sent = TRUE; + GST_INFO_OBJECT (ke, "headers flushed"); + } else { + GST_WARNING_OBJECT (ke, "Failed to flush headers: %d", rflow); + } + } + return rflow; +} + +static GstFlowReturn +gst_kate_enc_chain_push_packet (GstKateEnc * ke, kate_packet * kp, + GstClockTime start, GstClockTime duration) +{ + kate_int64_t granpos; + GstFlowReturn rflow; + + granpos = kate_encode_get_granule (&ke->k); + if (G_UNLIKELY (granpos < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Negative granpos for packet")); + kate_packet_clear (kp); + return GST_FLOW_ERROR; + } + rflow = + gst_kate_enc_push_and_free_kate_packet (ke, kp, granpos, start, duration, + FALSE); + if (G_UNLIKELY (rflow != GST_FLOW_OK)) { + GST_WARNING_OBJECT (ke, "Failed to push Kate packet"); + } + return rflow; +} + +static void +gst_kate_enc_generate_keepalive (GstKateEnc * ke, GstClockTime timestamp) +{ + kate_packet kp; + int ret; + kate_float t = timestamp / (double) GST_SECOND; + GST_DEBUG_OBJECT (ke, "keepalive at %f", t); + ret = kate_encode_keepalive (&ke->k, t, &kp); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "Failed to encode keepalive packet: %d", ret); + } else { + kate_int64_t granpos = kate_encode_get_granule (&ke->k); + GST_LOG_OBJECT (ke, "Keepalive packet encoded"); + if (gst_kate_enc_push_and_free_kate_packet (ke, &kp, granpos, timestamp, 0, + FALSE)) { + GST_WARNING_OBJECT (ke, "Failed to push keepalive packet"); + } + } +} + +static GstFlowReturn +gst_kate_enc_flush_waiting (GstKateEnc * ke, GstClockTime now) +{ + GstFlowReturn rflow = GST_FLOW_OK; + if (ke->delayed_spu) { + int ret; + kate_packet kp; + GstClockTime keepalive_time; + + kate_float t0 = ke->delayed_start / (double) GST_SECOND; + kate_float t1 = now / (double) GST_SECOND; + + GST_INFO_OBJECT (ke, + "We had a delayed SPU packet starting at %f, flushing at %f (assumed duration %f)", + t0, t1, t1 - t0); + + ret = kate_encode_text (&ke->k, t0, t1, "", 0, &kp); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_text: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + rflow = + gst_kate_enc_chain_push_packet (ke, &kp, ke->delayed_start, + now - ke->delayed_start + 1); + } + + if (rflow == GST_FLOW_OK) { + GST_DEBUG_OBJECT (ke, "delayed SPU packet flushed"); + } else { + GST_WARNING_OBJECT (ke, "Failed to flush delayed SPU packet: %d", rflow); + } + + /* forget it even if we couldn't flush it */ + ke->delayed_spu = FALSE; + + /* free the delayed data */ + g_free (ke->delayed_bitmap->pixels); + g_free (ke->delayed_bitmap); + ke->delayed_bitmap = NULL; + g_free (ke->delayed_palette->colors); + g_free (ke->delayed_palette); + ke->delayed_palette = NULL; + g_free (ke->delayed_region); + ke->delayed_region = NULL; + + /* now that we've flushed the packet, we want to insert keepalives as requested */ + if (ke->keepalive_min_time > 0.0f && t1 > t0) { + GST_INFO_OBJECT (ke, "generating keepalives at %f from %f to %f", + ke->keepalive_min_time, t0, t1); + for (keepalive_time = ke->delayed_start; + (keepalive_time += ke->keepalive_min_time * GST_SECOND) < now;) { + GST_INFO_OBJECT (ke, "generating keepalive at %f", + keepalive_time / (double) GST_SECOND); + gst_kate_enc_generate_keepalive (ke, keepalive_time); + } + } + } + return rflow; +} + +static GstFlowReturn +gst_kate_enc_chain_spu (GstKateEnc * ke, GstBuffer * buf) +{ + kate_packet kp; + kate_region *kregion; + kate_bitmap *kbitmap; + kate_palette *kpalette; + GstFlowReturn rflow; + int ret = 0; + + /* allocate region, bitmap, and palette, in case we have to delay encoding them */ + kregion = (kate_region *) g_malloc (sizeof (kate_region)); + kbitmap = (kate_bitmap *) g_malloc (sizeof (kate_bitmap)); + kpalette = (kate_palette *) g_malloc (sizeof (kate_palette)); + if (!kregion || !kpalette || !kbitmap) { + if (kregion) + g_free (kregion); + if (kbitmap) + g_free (kbitmap); + if (kpalette) + g_free (kpalette); + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), ("Out of memory")); + return GST_FLOW_ERROR; + } + + rflow = gst_kate_spu_decode_spu (ke, buf, kregion, kbitmap, kpalette); + if (G_UNLIKELY (rflow != GST_FLOW_OK)) { + GST_ERROR_OBJECT (ke, "Failed to decode incoming SPU"); +#if 0 + { + static int spu_count = 0; + FILE *f; + char name[32]; + snprintf (name, sizeof (name), "/tmp/bad_spu_%04d", spu_count++); + name[sizeof (name) - 1] = 0; + f = fopen (name, "w"); + if (f) { + fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 1, f); + fclose (f); + } + } +#endif + } else if (G_UNLIKELY (kbitmap->width == 0 || kbitmap->height == 0)) { + /* there are some DVDs (well, at least one) where some dimwits put in a wholly transparent full screen 720x576 SPU !!!!?! */ + GST_WARNING_OBJECT (ke, "SPU is totally invisible - dimwits"); + rflow = GST_FLOW_OK; + } else { + /* timestamp offsets are hidden in the SPU packets */ + GstClockTime start = + GST_BUFFER_TIMESTAMP (buf) + GST_KATE_STM_TO_GST (ke->show_time); + GstClockTime stop = + GST_BUFFER_TIMESTAMP (buf) + GST_KATE_STM_TO_GST (ke->hide_time); + kate_float t0 = start / (double) GST_SECOND; + kate_float t1 = stop / (double) GST_SECOND; + GST_DEBUG_OBJECT (ke, "buf ts %f, start/show %hu/%hu", + GST_BUFFER_TIMESTAMP (buf) / (double) GST_SECOND, ke->show_time, + ke->hide_time); + +#if 0 + { + static int spu_count = 0; + FILE *f; + char name[32]; + snprintf (name, sizeof (name), "/tmp/spu_%04d", spu_count++); + name[sizeof (name) - 1] = 0; + f = fopen (name, "w"); + if (f) { + fwrite (GST_BUFFER_DATA (buf), GST_BUFFER_SIZE (buf), 1, f); + fclose (f); + } + } +#endif + GST_DEBUG_OBJECT (ke, "Encoding %ux%u SPU: (%u bytes) from %f to %f", + (guint) kbitmap->width, (guint) kbitmap->height, + GST_BUFFER_SIZE (buf), t0, t1); + + ret = kate_encode_set_region (&ke->k, kregion); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_set_region: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + ret = kate_encode_set_palette (&ke->k, kpalette); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_set_palette: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + ret = kate_encode_set_bitmap (&ke->k, kbitmap); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_set_bitmap: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + /* Some SPUs have no hide time - so I'm going to delay the encoding of the packet + till either a suitable event happens, and the time of this event will be used + as the end time of this SPU, which will then be encoded and sent off. Suitable + events are the arrival of a subsequent SPU (eg, this SPU will replace the one + with no end), EOS, a new segment event, or a time threshold being reached */ + if (ke->hide_time <= ke->show_time) { + GST_INFO_OBJECT (ke, + "Cannot encode SPU packet now, hide time is now known (starting at %f) - delaying", + t0); + ke->delayed_spu = TRUE; + ke->delayed_start = start; + ke->delayed_bitmap = kbitmap; + ke->delayed_palette = kpalette; + ke->delayed_region = kregion; + rflow = GST_FLOW_OK; + } else { + ret = kate_encode_text (&ke->k, t0, t1, "", 0, &kp); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Failed to encode empty text for SPU buffer: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + rflow = + gst_kate_enc_chain_push_packet (ke, &kp, start, + stop - start + 1); + } + } + } + } + } + + if (!ke->delayed_spu) { + g_free (kpalette->colors); + g_free (kpalette); + g_free (kbitmap->pixels); + g_free (kbitmap); + g_free (kregion); + } + } + + return rflow; +} + +static GstFlowReturn +gst_kate_enc_chain_text (GstKateEnc * ke, GstBuffer * buf, + const char *mime_type) +{ + kate_packet kp; + int ret = 0; + GstFlowReturn rflow; + GstClockTime start = GST_BUFFER_TIMESTAMP (buf); + GstClockTime stop = GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf); + + if (!strcmp (mime_type, "text/x-pango-markup")) { + ret = kate_encode_set_markup_type (&ke->k, kate_markup_simple); + } else { + ret = kate_encode_set_markup_type (&ke->k, kate_markup_none); + } + + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("kate_encode_set_markup_type: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + const char *text = (const char *) GST_BUFFER_DATA (buf); + if (text) { + size_t text_len = GST_BUFFER_SIZE (buf); + kate_float t0 = start / (double) GST_SECOND; + kate_float t1 = stop / (double) GST_SECOND; + GST_LOG_OBJECT (ke, "Encoding text: %*.*s (%u bytes) from %f to %f", + (int) text_len, (int) text_len, GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf), t0, t1); + ret = kate_encode_text (&ke->k, t0, t1, text, text_len, &kp); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Failed to encode text: %d", ret)); + rflow = GST_FLOW_ERROR; + } else { + rflow = + gst_kate_enc_chain_push_packet (ke, &kp, start, stop - start + 1); + } + } else { + /* FIXME: this should not be an error, we should ignore it and move on */ + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("no text in text packet")); + rflow = GST_FLOW_ERROR; + } + } + + return rflow; +} + +/* chain function + * this function does the actual processing + */ +static GstFlowReturn +gst_kate_enc_chain (GstPad * pad, GstBuffer * buf) +{ + GstKateEnc *ke = GST_KATE_ENC (gst_pad_get_parent (pad)); + GstFlowReturn rflow = GST_FLOW_OK; + GstCaps *caps; + const gchar *mime_type = NULL; + + GST_DEBUG_OBJECT (ke, "got packet, %u bytes", GST_BUFFER_SIZE (buf)); + + /* get the type of the data we're being sent */ + caps = GST_PAD_CAPS (pad); + if (G_UNLIKELY (caps == NULL)) { + GST_WARNING_OBJECT (ke, "No input caps set"); + rflow = GST_FLOW_NOT_NEGOTIATED; + } else { + const GstStructure *structure = gst_caps_get_structure (caps, 0); + if (structure) + mime_type = gst_structure_get_name (structure); + + if (mime_type) { + GST_LOG_OBJECT (ke, "Packet has MIME type %s", mime_type); + + /* first push headers if we haven't done that yet */ + rflow = gst_kate_enc_flush_headers (ke); + + if (G_LIKELY (rflow == GST_FLOW_OK)) { + /* flush any packet we had waiting */ + rflow = gst_kate_enc_flush_waiting (ke, GST_BUFFER_TIMESTAMP (buf)); + + if (G_LIKELY (rflow == GST_FLOW_OK)) { + if (!strcmp (mime_type, GST_KATE_SPU_MIME_TYPE)) { + /* encode a kate_bitmap */ + rflow = gst_kate_enc_chain_spu (ke, buf); + } else { + /* encode text */ + rflow = gst_kate_enc_chain_text (ke, buf, mime_type); + } + } + } + } else { + GST_WARNING_OBJECT (ke, "Packet has no MIME type, ignored"); + } + } + + gst_buffer_unref (buf); + + gst_object_unref (ke); + + GST_LOG_OBJECT (ke, "Leaving chain function"); + + return rflow; +} + +static GstStateChangeReturn +gst_kate_enc_change_state (GstElement * element, GstStateChange transition) +{ + GstKateEnc *ke = GST_KATE_ENC (element); + GstStateChangeReturn res; + int ret; + + GST_INFO_OBJECT (ke, "gst_kate_enc_change_state"); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + ke->tags = gst_tag_list_new (); + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT (ke, "READY -> PAUSED, initializing kate state"); + ret = kate_info_init (&ke->ki); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "failed to initialize kate info structure: %d", + ret); + break; + } + if (ke->language) { + ret = kate_info_set_language (&ke->ki, ke->language); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "failed to set stream language: %d", ret); + break; + } + } + if (ke->category) { + ret = kate_info_set_category (&ke->ki, ke->category); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "failed to set stream category: %d", ret); + break; + } + } + ret = + kate_info_set_original_canvas_size (&ke->ki, + ke->original_canvas_width, ke->original_canvas_height); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "failed to set original canvas size: %d", ret); + break; + } + ret = kate_comment_init (&ke->kc); + if (ret < 0) { + GST_WARNING_OBJECT (ke, + "failed to initialize kate comment structure: %d", ret); + break; + } + ret = kate_encode_init (&ke->k, &ke->ki); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "failed to initialize kate state: %d", ret); + break; + } + ke->headers_sent = FALSE; + ke->initialized = TRUE; + ke->last_timestamp = 0; + ke->latest_end_time = 0; + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_tag_list_free (ke->tags); + ke->tags = NULL; + break; + default: + break; + } + + res = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (res == GST_STATE_CHANGE_FAILURE) { + GST_WARNING_OBJECT (ke, "Parent failed to change state"); + return res; + } + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_DEBUG_OBJECT (ke, "PAUSED -> READY, clearing kate state"); + if (ke->initialized) { + kate_clear (&ke->k); + kate_info_clear (&ke->ki); + kate_comment_clear (&ke->kc); + ke->initialized = FALSE; + ke->last_timestamp = 0; + ke->latest_end_time = 0; + } + break; + case GST_STATE_CHANGE_READY_TO_NULL: + break; + default: + break; + } + + GST_DEBUG_OBJECT (ke, "State change done"); + + return res; +} + +static GstClockTime +gst_kate_enc_granule_time (kate_state * k, gint64 granulepos) +{ + float t; + + if (granulepos == -1) + return -1; + + t = kate_granule_time (k->ki, granulepos); + return t * GST_SECOND; +} + +/* +conversions on the sink: + - nothing +conversions on the source: + - default is granules at num/den rate + - default -> time is possible + - bytes do not mean anything, packets can be any number of bytes, and we + have no way to know the number of bytes emitted without decoding +*/ + +static gboolean +gst_kate_enc_convert (GstPad * pad, GstFormat src_fmt, gint64 src_val, + GstFormat * dest_fmt, gint64 * dest_val) +{ + GstKateEnc *ke; + gboolean res = FALSE; + + if (src_fmt == *dest_fmt) { + *dest_val = src_val; + return TRUE; + } + + ke = GST_KATE_ENC (gst_pad_get_parent (pad)); + + if (!ke->initialized) { + GST_WARNING_OBJECT (ke, "not initialized yet"); + gst_object_unref (ke); + return FALSE; + } + + if (src_fmt == GST_FORMAT_BYTES || *dest_fmt == GST_FORMAT_BYTES) { + GST_WARNING_OBJECT (ke, "unsupported format"); + gst_object_unref (ke); + return FALSE; + } + + switch (src_fmt) { + case GST_FORMAT_DEFAULT: + switch (*dest_fmt) { + case GST_FORMAT_TIME: + *dest_val = gst_kate_enc_granule_time (&ke->k, src_val); + res = TRUE; + break; + default: + res = FALSE; + break; + } + break; + default: + res = FALSE; + break; + } + + if (!res) { + GST_WARNING_OBJECT (ke, "unsupported format"); + } + + gst_object_unref (ke); + return res; +} + +#if 1 +static const GstQueryType * +gst_kate_enc_source_query_type (GstPad * pad) +{ + static const GstQueryType types[] = { + GST_QUERY_CONVERT, + 0 + }; + + return types; +} +#endif + +static gboolean +gst_kate_enc_source_query (GstPad * pad, GstQuery * query) +{ + GstKateEnc *ke; + gboolean res = FALSE; + + ke = GST_KATE_ENC (gst_pad_get_parent (pad)); + + GST_DEBUG ("source query %d", GST_QUERY_TYPE (query)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (!gst_kate_enc_convert (pad, src_fmt, src_val, &dest_fmt, &dest_val)) { + return gst_pad_query_default (pad, query); + } + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + res = TRUE; + } + break; + default: + res = gst_pad_query_default (pad, query); + break; + } + + gst_object_unref (ke); + + return res; +} + +static gboolean +gst_kate_enc_sink_event (GstPad * pad, GstEvent * event) +{ + GstKateEnc *ke = GST_KATE_ENC (gst_pad_get_parent (pad)); + GstStructure *structure; + gboolean ret; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + GST_LOG_OBJECT (ke, "Got newsegment event"); + if (ke->initialized) { + GST_LOG_OBJECT (ke, "ensuring all headers are in"); + if (gst_kate_enc_flush_headers (ke) != GST_FLOW_OK) { + GST_WARNING_OBJECT (ke, "Failed to flush headers"); + } else { + GstFormat format; + gint64 timestamp; + + gst_event_parse_new_segment (event, NULL, NULL, &format, ×tamp, + NULL, NULL); + if (format != GST_FORMAT_TIME || !GST_CLOCK_TIME_IS_VALID (timestamp)) { + GST_WARNING_OBJECT (ke, + "No time in newsegment event %p, format %d, timestamp %" + G_GINT64_FORMAT, event, (int) format, timestamp); + /* to be safe, we'd need to generate a keepalive anyway, but we'd have to guess at the timestamp to use; a + good guess would be the last known timestamp plus the keepalive time, but if we then get a packet with a + timestamp less than this, it would fail to encode, which would be Bad. If we don't encode a keepalive, we + run the risk of stalling the pipeline and hanging, which is Very Bad. Oh dear. We can't exit(-1), can we ? */ + } else { + float t = timestamp / (double) GST_SECOND; + + if (ke->delayed_spu + && t - ke->delayed_start / (double) GST_SECOND >= + ke->default_spu_duration) { + if (G_UNLIKELY (gst_kate_enc_flush_waiting (ke, + timestamp) != GST_FLOW_OK)) { + GST_WARNING_OBJECT (ke, "Failed to encode delayed packet"); + /* continue with new segment handling anyway */ + } + } + + GST_LOG_OBJECT (ke, "ts %f, last %f (min %f)", t, + ke->last_timestamp / (double) GST_SECOND, + ke->keepalive_min_time); + if (ke->keepalive_min_time > 0.0f + && t - ke->last_timestamp / (double) GST_SECOND >= + ke->keepalive_min_time) { + /* we only generate a keepalive if there is no SPU waiting, as it would + mean out of sequence start times - and granulepos */ + if (!ke->delayed_spu) { + gst_kate_enc_generate_keepalive (ke, timestamp); + } + } + } + } + } + ret = gst_pad_push_event (ke->srcpad, event); + break; + + case GST_EVENT_CUSTOM_DOWNSTREAM: + GST_LOG_OBJECT (ke, "Got custom downstream event"); + /* adapted from the dvdsubdec element */ + structure = event->structure; + if (structure != NULL + && gst_structure_has_name (structure, "application/x-gst-dvd")) { + if (ke->initialized) { + GST_LOG_OBJECT (ke, "ensuring all headers are in"); + if (gst_kate_enc_flush_headers (ke) != GST_FLOW_OK) { + GST_WARNING_OBJECT (ke, "Failed to flush headers"); + } else { + const gchar *event_name = + gst_structure_get_string (structure, "event"); + if (event_name) { + if (!strcmp (event_name, "dvd-spu-clut-change")) { + gchar name[16]; + int idx; + gboolean found; + gint value; + GST_INFO_OBJECT (ke, "New CLUT received"); + for (idx = 0; idx < 16; ++idx) { + g_snprintf (name, sizeof (name), "clut%02d", idx); + found = gst_structure_get_int (structure, name, &value); + if (found) { + ke->spu_clut[idx] = value; + } else { + GST_WARNING_OBJECT (ke, + "DVD CLUT event did not contain %s field", name); + } + } + } else if (!strcmp (event_name, "dvd-lang-codes")) { + /* we can't know which stream corresponds to us */ + } + } else { + GST_WARNING_OBJECT (ke, "custom downstream event with no name"); + } + } + } + } + ret = gst_pad_push_event (ke->srcpad, event); + break; + + case GST_EVENT_TAG: + GST_LOG_OBJECT (ke, "Got tag event"); + if (ke->tags) { + GstTagList *list; + + gst_event_parse_tag (event, &list); + gst_tag_list_insert (ke->tags, list, + gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (ke))); + } else { + g_assert_not_reached (); + } + ret = gst_pad_event_default (pad, event); + break; + + case GST_EVENT_EOS: + GST_INFO_OBJECT (ke, "Got EOS event"); + if (ke->initialized) { + GST_LOG_OBJECT (ke, "ensuring all headers are in"); + if (gst_kate_enc_flush_headers (ke) != GST_FLOW_OK) { + GST_WARNING_OBJECT (ke, "Failed to flush headers"); + } else { + kate_packet kp; + int ret; + GstClockTime delayed_end = + ke->delayed_start + ke->default_spu_duration * GST_SECOND; + + if (G_UNLIKELY (gst_kate_enc_flush_waiting (ke, + delayed_end) != GST_FLOW_OK)) { + GST_WARNING_OBJECT (ke, "Failed to encode delayed packet"); + /* continue with EOS handling anyway */ + } + + ret = kate_encode_finish (&ke->k, -1, &kp); + if (ret < 0) { + GST_WARNING_OBJECT (ke, "Failed to encode EOS packet: %d", ret); + } else { + kate_int64_t granpos = kate_encode_get_granule (&ke->k); + GST_LOG_OBJECT (ke, "EOS packet encoded"); + if (gst_kate_enc_push_and_free_kate_packet (ke, &kp, granpos, + ke->latest_end_time, 0, FALSE)) { + GST_WARNING_OBJECT (ke, "Failed to push EOS packet"); + } + } + } + } + ret = gst_pad_event_default (pad, event); + break; + + default: + GST_LOG_OBJECT (ke, "Got unhandled event"); + ret = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (ke); + return ret; +} diff --git a/ext/kate/gstkateenc.h b/ext/kate/gstkateenc.h new file mode 100644 index 0000000..7431033 --- /dev/null +++ b/ext/kate/gstkateenc.h @@ -0,0 +1,123 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_KATE_ENC_H__ +#define __GST_KATE_ENC_H__ + +#include +#include + +G_BEGIN_DECLS +/* #defines don't like whitespacey bits */ +#define GST_TYPE_KATE_ENC \ + (gst_kate_enc_get_type()) +#define GST_KATE_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KATE_ENC,GstKateEnc)) +#define GST_KATE_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_KATE,GstKateEncClass)) +#define GST_IS_KATE_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KATE_ENC)) +#define GST_IS_KATE_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_ENC)) +typedef struct _GstKateEnc GstKateEnc; +typedef struct _GstKateEncClass GstKateEncClass; + +struct _GstKateEnc +{ + GstElement element; + + GstPad *sinkpad, *srcpad; + + kate_info ki; + kate_comment kc; + kate_state k; + + GstTagList *tags; + + GstClockTime last_timestamp; + GstClockTime latest_end_time; + + gboolean headers_sent; + gboolean initialized; + gboolean delayed_spu; + GstClockTime delayed_start; + kate_bitmap *delayed_bitmap; + kate_palette *delayed_palette; + kate_region *delayed_region; + gchar *language; + gchar *category; + + int granule_rate_numerator; + int granule_rate_denominator; + int granule_shift; + + float keepalive_min_time; + float default_spu_duration; + + size_t original_canvas_width; + size_t original_canvas_height; + + /* SPU decoding */ + guint8 spu_colormap[4]; + guint32 spu_clut[16]; + guint8 spu_alpha[4]; + guint16 spu_top; + guint16 spu_left; + guint16 spu_right; + guint16 spu_bottom; + guint16 spu_pix_data[2]; + guint16 show_time; + guint16 hide_time; +}; + +struct _GstKateEncClass +{ + GstElementClass parent_class; +}; + +GType gst_kate_enc_get_type (void); + +G_END_DECLS +#endif /* __GST_KATE_ENC_H__ */ diff --git a/ext/kate/gstkateparse.c b/ext/kate/gstkateparse.c new file mode 100644 index 0000000..6a72ede --- /dev/null +++ b/ext/kate/gstkateparse.c @@ -0,0 +1,625 @@ +/* GStreamer + * Copyright (C) <2004> Thomas Vander Stichele + * Copyright (C) 2006 Andy Wingo + * Copyright (C) 2008 Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-kateparse + * @short_description: parses kate streams + * @see_also: katedec, vorbisparse, oggdemux, theoraparse + * + * + * + * The kateparse element will parse the header packets of the Kate + * stream and put them as the streamheader in the caps. This is used in the + * multifdsink case where you want to stream live kate streams to multiple + * clients, each client has to receive the streamheaders first before they can + * consume the kate packets. + * + * + * This element also makes sure that the buffers that it pushes out are properly + * timestamped and that their offset and offset_end are set. The buffers that + * kateparse outputs have all of the metadata that oggmux expects to receive, + * which allows you to (for example) remux an ogg/kate file. + * + * Example pipelines + * + * + * gst-launch -v filesrc location=kate.ogg ! oggdemux ! kateparse ! fakesink + * + * This pipeline shows that the streamheader is set in the caps, and that each + * buffer has the timestamp, duration, offset, and offset_end set. + * + * + * + * gst-launch filesrc location=kate.ogg ! oggdemux ! kateparse \ + * ! oggmux ! filesink location=kate-remuxed.ogg + * + * This pipeline shows remuxing. kate-remuxed.ogg might not be exactly the same + * as kate.ogg, but they should produce exactly the same decoded data. + * + * + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include "gstkate.h" +#include "gstkateutil.h" +#include "gstkateparse.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_kateparse_debug); +#define GST_CAT_DEFAULT gst_kateparse_debug + +static GstStaticPadTemplate gst_kate_parse_sink_factory = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("subtitle/x-kate; application/x-kate") + ); + +static GstStaticPadTemplate gst_kate_parse_src_factory = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("subtitle/x-kate; application/x-kate") + ); + +GST_BOILERPLATE (GstKateParse, gst_kate_parse, GstElement, GST_TYPE_ELEMENT); + +static GstFlowReturn gst_kate_parse_chain (GstPad * pad, GstBuffer * buffer); +static GstStateChangeReturn gst_kate_parse_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_kate_parse_sink_event (GstPad * pad, GstEvent * event); +static gboolean gst_kate_parse_src_query (GstPad * pad, GstQuery * query); +#if 0 +static gboolean gst_kate_parse_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value); +#endif +static GstFlowReturn gst_kate_parse_parse_packet (GstKateParse * parse, + GstBuffer * buf); + +static void +gst_kate_parse_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_kate_parse_src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&gst_kate_parse_sink_factory)); + gst_element_class_set_details_simple (element_class, "Kate stream parser", + "Codec/Parser/Subtitle", + "parse raw kate streams", + "Vincent Penquerc'h "); +} + +static void +gst_kate_parse_class_init (GstKateParseClass * klass) +{ + GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass); + + gstelement_class->change_state = gst_kate_parse_change_state; + + klass->parse_packet = GST_DEBUG_FUNCPTR (gst_kate_parse_parse_packet); +} + +static void +gst_kate_parse_init (GstKateParse * parse, GstKateParseClass * g_class) +{ + parse->sinkpad = + gst_pad_new_from_static_template (&gst_kate_parse_sink_factory, "sink"); + gst_pad_set_chain_function (parse->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_parse_chain)); + gst_pad_set_event_function (parse->sinkpad, + GST_DEBUG_FUNCPTR (gst_kate_parse_sink_event)); + gst_element_add_pad (GST_ELEMENT (parse), parse->sinkpad); + + parse->srcpad = + gst_pad_new_from_static_template (&gst_kate_parse_src_factory, "src"); + gst_pad_set_query_function (parse->srcpad, + GST_DEBUG_FUNCPTR (gst_kate_parse_src_query)); + gst_element_add_pad (GST_ELEMENT (parse), parse->srcpad); +} + +static void +gst_kate_parse_drain_event_queue (GstKateParse * parse) +{ + while (parse->event_queue->length) { + GstEvent *event; + + event = GST_EVENT_CAST (g_queue_pop_head (parse->event_queue)); + gst_pad_event_default (parse->sinkpad, event); + } +} + +static GstFlowReturn +gst_kate_parse_push_headers (GstKateParse * parse) +{ + /* mark and put on caps */ + GstCaps *caps; + GstBuffer *outbuf; + kate_packet packet; + GList *headers, *outbuf_list = NULL; + int ret; + gboolean res; + + /* get the headers into the caps, passing them to kate as we go */ + caps = + gst_kate_util_set_header_on_caps (&parse->element, + gst_pad_get_negotiated_caps (parse->sinkpad), parse->streamheader); + + if (G_UNLIKELY (!caps)) { + GST_ELEMENT_ERROR (parse, STREAM, DECODE, (NULL), + ("Failed to set headers on caps")); + return GST_FLOW_ERROR; + } + + GST_DEBUG_OBJECT (parse, "here are the caps: %" GST_PTR_FORMAT, caps); + res = gst_pad_set_caps (parse->srcpad, caps); + gst_caps_unref (caps); + if (G_UNLIKELY (!res)) { + GST_WARNING_OBJECT (parse->srcpad, "Failed to set caps on source pad"); + return GST_FLOW_NOT_NEGOTIATED; + } + + headers = parse->streamheader; + while (headers) { + outbuf = GST_BUFFER_CAST (headers->data); + kate_packet_wrap (&packet, GST_BUFFER_SIZE (outbuf), + GST_BUFFER_DATA (outbuf)); + ret = kate_decode_headerin (&parse->ki, &parse->kc, &packet); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (parse, "kate_decode_headerin returned %d", ret); + } + /* takes ownership of outbuf, which was previously in parse->streamheader */ + outbuf_list = g_list_append (outbuf_list, outbuf); + headers = headers->next; + } + + /* first process queued events */ + gst_kate_parse_drain_event_queue (parse); + + /* push out buffers, ignoring return value... */ + headers = outbuf_list; + while (headers) { + outbuf = GST_BUFFER_CAST (headers->data); + gst_buffer_set_caps (outbuf, GST_PAD_CAPS (parse->srcpad)); + gst_pad_push (parse->srcpad, outbuf); + headers = headers->next; + } + + g_list_free (outbuf_list); + g_list_free (parse->streamheader); + parse->streamheader = NULL; + + parse->streamheader_sent = TRUE; + + return GST_FLOW_OK; +} + +static void +gst_kate_parse_clear_queue (GstKateParse * parse) +{ + GST_DEBUG_OBJECT (parse, "Clearing queue"); + while (parse->buffer_queue->length) { + GstBuffer *buf; + + buf = GST_BUFFER_CAST (g_queue_pop_head (parse->buffer_queue)); + gst_buffer_unref (buf); + } + while (parse->event_queue->length) { + GstEvent *event; + + event = GST_EVENT_CAST (g_queue_pop_head (parse->event_queue)); + gst_event_unref (event); + } +} + +static GstFlowReturn +gst_kate_parse_push_buffer (GstKateParse * parse, GstBuffer * buf, + gint64 granulepos) +{ + GST_LOG_OBJECT (parse, "granulepos %16" G_GINT64_MODIFIER "x", granulepos); + if (granulepos < 0) { + /* packets coming not from Ogg won't have a granpos in the offset end, + so we have to synthesize one here - only problem is we don't know + the backlink - pretend there's none for now */ + GST_INFO_OBJECT (parse, "No granulepos on buffer, synthesizing one"); + granulepos = + kate_duration_granule (&parse->ki, + GST_BUFFER_TIMESTAMP (buf) / + (double) GST_SECOND) << kate_granule_shift (&parse->ki); + } + GST_BUFFER_OFFSET (buf) = + kate_granule_time (&parse->ki, granulepos) * GST_SECOND; + GST_BUFFER_OFFSET_END (buf) = granulepos; + GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_OFFSET (buf); + + gst_buffer_set_caps (buf, GST_PAD_CAPS (parse->srcpad)); + + return gst_pad_push (parse->srcpad, buf); +} + +static GstFlowReturn +gst_kate_parse_drain_queue_prematurely (GstKateParse * parse) +{ + GstFlowReturn ret = GST_FLOW_OK; + + /* got an EOS event, make sure to push out any buffers that were in the queue + * -- won't normally be the case, but this catches the + * didn't-get-a-granulepos-on-the-last-packet case. Assuming a continuous + * stream. */ + + /* if we got EOS before any buffers came, go ahead and push the other events + * first */ + gst_kate_parse_drain_event_queue (parse); + + while (!g_queue_is_empty (parse->buffer_queue)) { + GstBuffer *buf; + gint64 granpos; + + buf = GST_BUFFER_CAST (g_queue_pop_head (parse->buffer_queue)); + + granpos = GST_BUFFER_OFFSET_END (buf); + ret = gst_kate_parse_push_buffer (parse, buf, granpos); + + if (ret != GST_FLOW_OK) + goto done; + } + + g_assert (g_queue_is_empty (parse->buffer_queue)); + +done: + return ret; +} + +static GstFlowReturn +gst_kate_parse_drain_queue (GstKateParse * parse, gint64 granulepos) +{ + GstFlowReturn ret = GST_FLOW_OK; + + if (!g_queue_is_empty (parse->buffer_queue)) { + GstBuffer *buf; + buf = GST_BUFFER_CAST (g_queue_pop_head (parse->buffer_queue)); + ret = gst_kate_parse_push_buffer (parse, buf, granulepos); + + if (ret != GST_FLOW_OK) + goto done; + } + g_assert (g_queue_is_empty (parse->buffer_queue)); + +done: + return ret; +} + +static GstFlowReturn +gst_kate_parse_queue_buffer (GstKateParse * parse, GstBuffer * buf) +{ + GstFlowReturn ret = GST_FLOW_OK; + gint64 granpos; + + buf = gst_buffer_make_metadata_writable (buf); + + /* oggdemux stores the granule pos in the offset end */ + granpos = GST_BUFFER_OFFSET_END (buf); + GST_LOG_OBJECT (parse, "granpos %16" G_GINT64_MODIFIER "x", granpos); + g_queue_push_tail (parse->buffer_queue, buf); + +#if 1 + /* if getting buffers from matroska, we won't have a granpos here... */ + //if (GST_BUFFER_OFFSET_END_IS_VALID (buf)) { + ret = gst_kate_parse_drain_queue (parse, granpos); + //} +#else + if (granpos >= 0) { + ret = gst_kate_parse_drain_queue (parse, granpos); + } else { + GST_ELEMENT_ERROR (parse, STREAM, DECODE, (NULL), + ("Bad granulepos %" G_GINT64_FORMAT, granpos)); + ret = GST_FLOW_ERROR; + } +#endif + + return ret; +} + +static GstFlowReturn +gst_kate_parse_parse_packet (GstKateParse * parse, GstBuffer * buf) +{ + GstFlowReturn ret = GST_FLOW_OK; + + g_assert (parse); + + parse->packetno++; + + GST_LOG_OBJECT (parse, "Got packet %02x, %u bytes", + GST_BUFFER_SIZE (buf) ? GST_BUFFER_DATA (buf)[0] : -1, + GST_BUFFER_SIZE (buf)); + + if (GST_BUFFER_SIZE (buf) > 0 && GST_BUFFER_DATA (buf)[0] & 0x80) { + GST_DEBUG_OBJECT (parse, "Found header %02x", GST_BUFFER_DATA (buf)[0]); + /* if 0x80 is set, it's streamheader, + * so put it on the streamheader list and return */ + parse->streamheader = g_list_append (parse->streamheader, buf); + ret = GST_FLOW_OK; + } else { + if (!parse->streamheader_sent) { + GST_DEBUG_OBJECT (parse, "Found non header, pushing headers seen so far"); + ret = gst_kate_parse_push_headers (parse); + } + + if (ret == GST_FLOW_OK) { + ret = gst_kate_parse_queue_buffer (parse, buf); + } + } + + return ret; +} + +static GstFlowReturn +gst_kate_parse_chain (GstPad * pad, GstBuffer * buffer) +{ + GstKateParseClass *klass; + GstKateParse *parse; + + parse = GST_KATE_PARSE (GST_PAD_PARENT (pad)); + klass = GST_KATE_PARSE_CLASS (G_OBJECT_GET_CLASS (parse)); + + g_assert (klass->parse_packet != NULL); + + if (G_UNLIKELY (GST_PAD_CAPS (pad) == NULL)) + return GST_FLOW_NOT_NEGOTIATED; + + return klass->parse_packet (parse, buffer); +} + +static gboolean +gst_kate_parse_queue_event (GstKateParse * parse, GstEvent * event) +{ + GstFlowReturn ret = TRUE; + + g_queue_push_tail (parse->event_queue, event); + + return ret; +} + +static gboolean +gst_kate_parse_sink_event (GstPad * pad, GstEvent * event) +{ + gboolean ret; + GstKateParse *parse; + + parse = GST_KATE_PARSE (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + gst_kate_parse_clear_queue (parse); + ret = gst_pad_event_default (pad, event); + break; + case GST_EVENT_EOS: + if (!parse->streamheader_sent) { + GST_DEBUG_OBJECT (parse, "Got EOS, pushing headers seen so far"); + ret = gst_kate_parse_push_headers (parse); + if (ret != GST_FLOW_OK) + goto done; + } + gst_kate_parse_drain_queue_prematurely (parse); + ret = gst_pad_event_default (pad, event); + break; + default: + if (!parse->streamheader_sent && GST_EVENT_IS_SERIALIZED (event)) + ret = gst_kate_parse_queue_event (parse, event); + else + ret = gst_pad_event_default (pad, event); + break; + } + +done: + gst_object_unref (parse); + + return ret; +} + +#if 0 +static gboolean +gst_kate_parse_convert (GstPad * pad, + GstFormat src_format, gint64 src_value, + GstFormat * dest_format, gint64 * dest_value) +{ + gboolean res = TRUE; + GstKateParse *parse; + + parse = GST_KATE_PARSE (GST_PAD_PARENT (pad)); + + /* fixme: assumes atomic access to lots of instance variables modified from + * the streaming thread, including 64-bit variables */ + + if (!parse->streamheader_sent) + return FALSE; + + if (src_format == *dest_format) { + *dest_value = src_value; + return TRUE; + } + + if (parse->sinkpad == pad && + (src_format == GST_FORMAT_BYTES || *dest_format == GST_FORMAT_BYTES)) + return FALSE; + + switch (src_format) { + case GST_FORMAT_TIME: + switch (*dest_format) { + default: + res = FALSE; + } + break; + case GST_FORMAT_DEFAULT: + switch (*dest_format) { + case GST_FORMAT_TIME: + *dest_value = kate_granule_time (&parse->ki, src_value) * GST_SECOND; + break; + default: + res = FALSE; + } + break; + default: + res = FALSE; + } + + return res; +} +#endif + +static gboolean +gst_kate_parse_src_query (GstPad * pad, GstQuery * query) +{ +#if 1 + // TODO + GST_WARNING ("gst_kate_parse_src_query"); + return FALSE; +#else + gint64 granulepos; + GstKateParse *parse; + gboolean res = FALSE; + + parse = GST_KATE_PARSE (GST_PAD_PARENT (pad)); + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + { + GstFormat format; + gint64 value; + + granulepos = parse->prev_granulepos; + + gst_query_parse_position (query, &format, NULL); + + /* and convert to the final format */ + if (!(res = + gst_kate_parse_convert (pad, GST_FORMAT_DEFAULT, granulepos, + &format, &value))) + goto error; + + /* fixme: support segments + value = (value - parse->segment_start) + parse->segment_time; + */ + + gst_query_set_position (query, format, value); + + GST_LOG_OBJECT (parse, "query %p: peer returned granulepos: %" + G_GUINT64_FORMAT " - we return %" G_GUINT64_FORMAT " (format %u)", + query, granulepos, value, format); + + break; + } + case GST_QUERY_DURATION: + { + /* fixme: not threadsafe */ + /* query peer for total length */ + if (!gst_pad_is_linked (parse->sinkpad)) { + GST_WARNING_OBJECT (parse, "sink pad %" GST_PTR_FORMAT " is not linked", + parse->sinkpad); + goto error; + } + if (!(res = gst_pad_query (GST_PAD_PEER (parse->sinkpad), query))) + goto error; + break; + } + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (!(res = + gst_kate_parse_convert (pad, src_fmt, src_val, &dest_fmt, + &dest_val))) + goto error; + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + return res; + +error: + { + GST_WARNING_OBJECT (parse, "error handling query"); + return res; + } +#endif +} + +static void +gst_kate_parse_free_stream_headers (GstKateParse * parse) +{ + while (parse->streamheader != NULL) { + gst_buffer_unref (GST_BUFFER (parse->streamheader->data)); + parse->streamheader = g_list_delete_link (parse->streamheader, + parse->streamheader); + } +} + +static GstStateChangeReturn +gst_kate_parse_change_state (GstElement * element, GstStateChange transition) +{ + GstKateParse *parse = GST_KATE_PARSE (element); + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + kate_info_init (&parse->ki); + kate_comment_init (&parse->kc); + parse->packetno = 0; + parse->streamheader_sent = FALSE; + parse->streamheader = NULL; + parse->buffer_queue = g_queue_new (); + parse->event_queue = g_queue_new (); + break; + default: + break; + } + + ret = parent_class->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + kate_info_clear (&parse->ki); + kate_comment_clear (&parse->kc); + + gst_kate_parse_clear_queue (parse); + g_queue_free (parse->buffer_queue); + parse->buffer_queue = NULL; + g_queue_free (parse->event_queue); + parse->event_queue = NULL; + gst_kate_parse_free_stream_headers (parse); + break; + + default: + break; + } + + return ret; +} diff --git a/ext/kate/gstkateparse.h b/ext/kate/gstkateparse.h new file mode 100644 index 0000000..509f6c4 --- /dev/null +++ b/ext/kate/gstkateparse.h @@ -0,0 +1,78 @@ +/* -*- c-basic-offset: 2 -*- + * GStreamer + * Copyright (C) <2004> Thomas Vander Stichele + * Copyright (C) <2008> Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_KATE_PARSE_H__ +#define __GST_KATE_PARSE_H__ + + +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_KATE_PARSE \ + (gst_kate_parse_get_type()) +#define GST_KATE_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KATE_PARSE,GstKateParse)) +#define GST_KATE_PARSE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_KATE_PARSE,GstKateParseClass)) +#define GST_IS_KATE_PARSE(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KATE_PARSE)) +#define GST_IS_KATKATEE_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_PARSE)) +typedef struct _GstKateParse GstKateParse; +typedef struct _GstKateParseClass GstKateParseClass; + +/** + * GstKateParse: + * + * Opaque data structure. + */ +struct _GstKateParse +{ + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + guint packetno; + gboolean streamheader_sent; + GList *streamheader; + + GQueue *event_queue; + GQueue *buffer_queue; + + kate_info ki; + kate_comment kc; +}; + +struct _GstKateParseClass +{ + GstElementClass parent_class; + + /* virtual functions */ + GstFlowReturn (*parse_packet) (GstKateParse * parse, GstBuffer * buf); +}; + +GType gst_kate_parse_get_type (void); + +G_END_DECLS +#endif /* __GST_KATE_PARSE_H__ */ diff --git a/ext/kate/gstkatespu.c b/ext/kate/gstkatespu.c new file mode 100644 index 0000000..13f5619 --- /dev/null +++ b/ext/kate/gstkatespu.c @@ -0,0 +1,878 @@ +/* GStreamer + * Copyright (C) 2009 Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif +#include +#include +#include +#include +#include "gstkatespu.h" + +#define MAX_SPU_SIZE 53220 + +GST_DEBUG_CATEGORY_EXTERN (gst_kateenc_debug); +GST_DEBUG_CATEGORY_EXTERN (gst_katedec_debug); + +/* taken off the dvdsubdec element */ +const guint32 gst_kate_spu_default_clut[16] = { + 0xb48080, 0x248080, 0x628080, 0xd78080, + 0x808080, 0x808080, 0x808080, 0x808080, + 0x808080, 0x808080, 0x808080, 0x808080, + 0x808080, 0x808080, 0x808080, 0x808080 +}; + +#define GST_CAT_DEFAULT gst_kateenc_debug + +static void +gst_kate_spu_decode_colormap (GstKateEnc * ke, const guint8 * ptr) +{ + ke->spu_colormap[3] = ptr[0] >> 4; + ke->spu_colormap[2] = ptr[0] & 0x0f; + ke->spu_colormap[1] = ptr[1] >> 4; + ke->spu_colormap[0] = ptr[1] & 0x0f; +} + +static void +gst_kate_spu_decode_alpha (GstKateEnc * ke, const guint8 * ptr) +{ + ke->spu_alpha[3] = ptr[0] >> 4; + ke->spu_alpha[2] = ptr[0] & 0x0f; + ke->spu_alpha[1] = ptr[1] >> 4; + ke->spu_alpha[0] = ptr[1] & 0x0f; +} + +static void +gst_kate_spu_decode_area (GstKateEnc * ke, const guint8 * ptr) +{ + ke->spu_left = ((((guint16) ptr[0]) & 0x3f) << 4) | (ptr[1] >> 4); + ke->spu_top = ((((guint16) ptr[3]) & 0x3f) << 4) | (ptr[4] >> 4); + ke->spu_right = ((((guint16) ptr[1]) & 0x03) << 8) | ptr[2]; + ke->spu_bottom = ((((guint16) ptr[4]) & 0x03) << 8) | ptr[5]; + GST_DEBUG_OBJECT (ke, "SPU area %u %u -> %u %d", ke->spu_left, ke->spu_top, + ke->spu_right, ke->spu_bottom); +} + +static void +gst_kate_spu_decode_pixaddr (GstKateEnc * ke, const guint8 * ptr) +{ + ke->spu_pix_data[0] = GST_KATE_UINT16_BE (ptr + 0); + ke->spu_pix_data[1] = GST_KATE_UINT16_BE (ptr + 2); +} + +/* heavily inspired from dvdspudec */ +static guint16 +gst_kate_spu_decode_colcon (GstKateEnc * ke, const guint8 * ptr) +{ + guint16 nbytes = GST_KATE_UINT16_BE (ptr + 0); + guint16 nbytes_left = nbytes; + + GST_LOG_OBJECT (ke, "Number of bytes in color/contrast change command is %u", + nbytes); + if (G_UNLIKELY (nbytes < 2)) { + GST_WARNING_OBJECT (ke, + "Number of bytes in color/contrast change command is %u, should be at least 2", + nbytes); + return 0; + } + + ptr += 2; + nbytes_left -= 2; + + /* we will just skip that data for now */ + while (nbytes_left > 0) { + guint32 entry, nchanges, sz; + GST_LOG_OBJECT (ke, "Reading a color/contrast change entry, %u bytes left", + nbytes_left); + if (G_UNLIKELY (nbytes_left < 4)) { + GST_WARNING_OBJECT (ke, + "Not enough bytes to read a full color/contrast entry header"); + break; + } + entry = GST_READ_UINT32_BE (ptr); + GST_LOG_OBJECT (ke, "Color/contrast change entry header is %08x", entry); + nchanges = CLAMP ((ptr[2] >> 4), 1, 8); + ptr += 4; + nbytes_left -= 4; + if (entry == 0x0fffffff) { + GST_LOG_OBJECT (ke, + "Encountered color/contrast change termination code, breaking, %u bytes left", + nbytes_left); + break; + } + GST_LOG_OBJECT (ke, "Color/contrast change entry has %u changes", nchanges); + sz = 6 * nchanges; + if (G_UNLIKELY (sz > nbytes_left)) { + GST_WARNING_OBJECT (ke, + "Not enough bytes to read a full color/contrast entry"); + break; + } + ptr += sz; + nbytes_left -= sz; + } + return nbytes - nbytes_left; +} + +static inline guint8 +gst_kate_spu_get_nybble (const guint8 * nybbles, size_t * nybble_offset) +{ + guint8 ret; + + ret = nybbles[(*nybble_offset) / 2]; + + /* If the offset is even, we shift the answer down 4 bits, otherwise not */ + if ((*nybble_offset) & 0x01) + ret &= 0x0f; + else + ret = ret >> 4; + + (*nybble_offset)++; + + return ret; +} + +static guint16 +gst_kate_spu_get_rle_code (const guint8 * nybbles, size_t * nybble_offset) +{ + guint16 code; + + code = gst_kate_spu_get_nybble (nybbles, nybble_offset); + if (code < 0x4) { /* 4 .. f */ + code = (code << 4) | gst_kate_spu_get_nybble (nybbles, nybble_offset); + if (code < 0x10) { /* 1x .. 3x */ + code = (code << 4) | gst_kate_spu_get_nybble (nybbles, nybble_offset); + if (code < 0x40) { /* 04x .. 0fx */ + code = (code << 4) | gst_kate_spu_get_nybble (nybbles, nybble_offset); + } + } + } + return code; +} + +static void +gst_kate_spu_crop_bitmap (GstKateEnc * ke, kate_bitmap * kb, guint16 * dx, + guint16 * dy) +{ + int top, bottom, left, right; + guint8 zero = 0; + size_t n, x, y, w, h; + +#if 0 + /* find the zero */ + zero = kb->pixels[0]; + for (x = 0; x < kb->width; ++x) { + if (kb->pixels[x] != zero) { + GST_LOG_OBJECT (ke, "top line at %u is not zero: %u", x, kb->pixels[x]); + return; + } + } +#endif + + /* top */ + for (top = 0; top < kb->height; ++top) { + int empty = 1; + for (x = 0; x < kb->width; ++x) { + if (G_UNLIKELY (kb->pixels[x + top * kb->width] != zero)) { + empty = 0; + break; + } + } + if (!empty) + break; + } + + /* bottom */ + for (bottom = kb->height - 1; bottom >= top; --bottom) { + int empty = 1; + for (x = 0; x < kb->width; ++x) { + if (G_UNLIKELY (kb->pixels[x + bottom * kb->width] != zero)) { + empty = 0; + break; + } + } + if (!empty) + break; + } + + /* left */ + for (left = 0; left < kb->width; ++left) { + int empty = 1; + for (y = top; y <= bottom; ++y) { + if (G_UNLIKELY (kb->pixels[left + y * kb->width] != zero)) { + empty = 0; + break; + } + } + if (!empty) + break; + } + + /* right */ + for (right = kb->width - 1; right >= left; --right) { + int empty = 1; + for (y = top; y <= bottom; ++y) { + if (G_UNLIKELY (kb->pixels[right + y * kb->width] != zero)) { + empty = 0; + break; + } + } + if (!empty) + break; + } + + + w = right - left + 1; + h = bottom - top + 1; + GST_LOG_OBJECT (ke, "cropped from %" G_GSIZE_FORMAT " %" G_GSIZE_FORMAT + " to %" G_GSIZE_FORMAT " %" G_GSIZE_FORMAT, kb->width, kb->height, w, h); + *dx += left; + *dy += top; + n = 0; + for (y = 0; y < h; ++y) { + memmove (kb->pixels + n, kb->pixels + kb->width * (y + top) + left, w); + n += w; + } + kb->width = w; + kb->height = h; +} + +#define CHECK(x) G_STMT_START { \ + guint16 _ = (x); \ + if (G_UNLIKELY((_) > sz)) { \ + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), ("Read outside buffer")); \ + return GST_FLOW_ERROR; \ + } \ + } G_STMT_END +#define ADVANCE(x) G_STMT_START { \ + guint16 _ = (x); ptr += (_); sz -= (_); \ + } G_STMT_END +#define IGNORE(x) G_STMT_START { \ + guint16 __ = (x); \ + CHECK (__); \ + ADVANCE (__); \ + } G_STMT_END + +static GstFlowReturn +gst_kate_spu_decode_command_sequence (GstKateEnc * ke, GstBuffer * buf, + guint16 command_sequence_offset) +{ + guint16 date; + guint16 next_command_sequence; + const guint8 *ptr; + guint16 sz; + + if (command_sequence_offset >= GST_BUFFER_SIZE (buf)) { + GST_ELEMENT_ERROR (ke, STREAM, DECODE, (NULL), + ("Command sequence offset %u is out of range %u", + command_sequence_offset, GST_BUFFER_SIZE (buf))); + return GST_FLOW_ERROR; + } + + ptr = GST_BUFFER_DATA (buf) + command_sequence_offset; + sz = GST_BUFFER_SIZE (buf) - command_sequence_offset; + + GST_DEBUG_OBJECT (ke, "Decoding command sequence at %u (%u bytes)", + command_sequence_offset, sz); + + CHECK (2); + date = GST_KATE_UINT16_BE (ptr); + ADVANCE (2); + GST_DEBUG_OBJECT (ke, "date %u", date); + + CHECK (2); + next_command_sequence = GST_KATE_UINT16_BE (ptr); + ADVANCE (2); + GST_DEBUG_OBJECT (ke, "next command sequence at %u", next_command_sequence); + + while (sz) { + guint8 cmd = *ptr++; + switch (cmd) { + case SPU_CMD_FSTA_DSP: /* 0x00 */ + GST_DEBUG_OBJECT (ke, "[0] DISPLAY"); + break; + case SPU_CMD_DSP: /* 0x01 */ + GST_DEBUG_OBJECT (ke, "[1] SHOW"); + ke->show_time = date; + break; + case SPU_CMD_STP_DSP: /* 0x02 */ + GST_DEBUG_OBJECT (ke, "[2] HIDE"); + ke->hide_time = date; + break; + case SPU_CMD_SET_COLOR: /* 0x03 */ + GST_DEBUG_OBJECT (ke, "[3] SET COLOR"); + CHECK (2); + gst_kate_spu_decode_colormap (ke, ptr); + ADVANCE (2); + break; + case SPU_CMD_SET_ALPHA: /* 0x04 */ + GST_DEBUG_OBJECT (ke, "[4] SET ALPHA"); + CHECK (2); + gst_kate_spu_decode_alpha (ke, ptr); + ADVANCE (2); + break; + case SPU_CMD_SET_DAREA: /* 0x05 */ + GST_DEBUG_OBJECT (ke, "[5] SET DISPLAY AREA"); + CHECK (6); + gst_kate_spu_decode_area (ke, ptr); + ADVANCE (6); + break; + case SPU_CMD_DSPXA: /* 0x06 */ + GST_DEBUG_OBJECT (ke, "[6] SET PIXEL ADDRESSES"); + CHECK (4); + gst_kate_spu_decode_pixaddr (ke, ptr); + GST_DEBUG_OBJECT (ke, " -> first pixel address %u", + ke->spu_pix_data[0]); + GST_DEBUG_OBJECT (ke, " -> second pixel address %u", + ke->spu_pix_data[1]); + ADVANCE (4); + break; + case SPU_CMD_CHG_COLCON: /* 0x07 */ + GST_DEBUG_OBJECT (ke, "[7] CHANGE COLOR/CONTRAST"); + CHECK (2); + ADVANCE (gst_kate_spu_decode_colcon (ke, ptr)); + break; + case SPU_CMD_END: /* 0xff */ + GST_DEBUG_OBJECT (ke, "[0xff] END"); + if (next_command_sequence != command_sequence_offset) { + GST_DEBUG_OBJECT (ke, "Jumping to next sequence at offset %u", + next_command_sequence); + return gst_kate_spu_decode_command_sequence (ke, buf, + next_command_sequence); + } else { + GST_DEBUG_OBJECT (ke, "No more sequences to decode"); + return GST_FLOW_OK; + } + break; + default: + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Invalid SPU command: %u", cmd)); + return GST_FLOW_ERROR; + } + } + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), ("Error parsing SPU")); + return GST_FLOW_ERROR; +} + +static inline int +gst_kate_spu_clamp (int value) +{ + if (value < 0) + return 0; + if (value > 255) + return 255; + return value; +} + +static void +gst_kate_spu_yuv2rgb (int y, int u, int v, int *r, int *g, int *b) +{ +#if 0 + *r = gst_kate_spu_clamp (y + 1.371 * v); + *g = gst_kate_spu_clamp (y - 0.698 * v - 0.336 * u); + *b = gst_kate_spu_clamp (y + 1.732 * u); +#elif 0 + *r = gst_kate_spu_clamp (y + u); + *g = gst_kate_spu_clamp (y - (76 * u - 26 * v) / 256); + *b = gst_kate_spu_clamp (y + v); +#else + y = (y - 16) * 255 / 219; + u = (u - 128) * 255 / 224; + v = (v - 128) * 255 / 224; + + *r = gst_kate_spu_clamp (y + 1.402 * v); + *g = gst_kate_spu_clamp (y - 0.34414 * u - 0.71414 * v); + *b = gst_kate_spu_clamp (y + 1.772 * u); +#endif +} + +static GstFlowReturn +gst_kate_spu_create_spu_palette (GstKateEnc * ke, kate_palette * kp) +{ + size_t n; + + kate_palette_init (kp); + kp->ncolors = 4; + kp->colors = (kate_color *) g_malloc (kp->ncolors * sizeof (kate_color)); + if (G_UNLIKELY (!kp->colors)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), ("Out of memory")); + return GST_FLOW_ERROR; + } +#if 1 + for (n = 0; n < kp->ncolors; ++n) { + int idx = ke->spu_colormap[n]; + guint32 color = ke->spu_clut[idx]; + int y = (color >> 16) & 0xff; + int v = (color >> 8) & 0xff; + int u = color & 0xff; + int r, g, b; + gst_kate_spu_yuv2rgb (y, u, v, &r, &g, &b); + kp->colors[n].r = r; + kp->colors[n].g = g; + kp->colors[n].b = b; + kp->colors[n].a = ke->spu_alpha[n] * 17; + } +#else + /* just make a ramp from 0 to 255 for those non transparent colors */ + for (n = 0; n < kp->ncolors; ++n) + if (ke->spu_alpha[n] == 0) + ++ntrans; + + for (n = 0; n < kp->ncolors; ++n) { + kp->colors[n].r = luma; + kp->colors[n].g = luma; + kp->colors[n].b = luma; + kp->colors[n].a = ke->spu_alpha[n] * 17; + if (ke->spu_alpha[n]) + luma /= 2; + } +#endif + + return GST_FLOW_OK; +} + +GstFlowReturn +gst_kate_spu_decode_spu (GstKateEnc * ke, GstBuffer * buf, kate_region * kr, + kate_bitmap * kb, kate_palette * kp) +{ + const guint8 *ptr = GST_BUFFER_DATA (buf); + size_t sz = GST_BUFFER_SIZE (buf); + guint16 packet_size; + guint16 x, y; + size_t n; + guint8 *pixptr[2]; + size_t nybble_offset[2]; + size_t max_nybbles[2]; + GstFlowReturn rflow; + guint16 next_command_sequence; + guint16 code; + + /* before decoding anything, initialize to sensible defaults */ + memset (ke->spu_colormap, 0, sizeof (ke->spu_colormap)); + memset (ke->spu_alpha, 0, sizeof (ke->spu_alpha)); + ke->spu_top = ke->spu_left = 1; + ke->spu_bottom = ke->spu_right = 0; + ke->spu_pix_data[0] = ke->spu_pix_data[1] = 0; + ke->show_time = ke->hide_time = 0; + + /* read sizes and get to the start of the data */ + CHECK (2); + packet_size = GST_KATE_UINT16_BE (ptr); + ADVANCE (2); + GST_DEBUG_OBJECT (ke, "packet size %u (GstBuffer size %u)", packet_size, + GST_BUFFER_SIZE (buf)); + + CHECK (2); + next_command_sequence = GST_KATE_UINT16_BE (ptr); + ADVANCE (2); + ptr = GST_BUFFER_DATA (buf) + next_command_sequence; + sz = GST_BUFFER_SIZE (buf) - next_command_sequence; + GST_DEBUG_OBJECT (ke, "next command sequence at %u for %u", + next_command_sequence, (guint) sz); + + rflow = gst_kate_spu_decode_command_sequence (ke, buf, next_command_sequence); + if (G_UNLIKELY (rflow != GST_FLOW_OK)) + return rflow; + + /* if no addresses or sizes were given, or if they define an empty SPU, nothing more to do */ + if (G_UNLIKELY (ke->spu_right - ke->spu_left < 0 + || ke->spu_bottom - ke->spu_top < 0 || ke->spu_pix_data[0] == 0 + || ke->spu_pix_data[1] == 0)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("SPU area is empty, nothing to encode")); + return GST_FLOW_ERROR; + } + + /* create the palette */ + rflow = gst_kate_spu_create_spu_palette (ke, kp); + if (G_UNLIKELY (rflow != GST_FLOW_OK)) + return rflow; + + /* create the bitmap */ + kate_bitmap_init (kb); + kb->width = ke->spu_right - ke->spu_left + 1; + kb->height = ke->spu_bottom - ke->spu_top + 1; + kb->bpp = 2; + kb->type = kate_bitmap_type_paletted; + kb->pixels = (unsigned char *) g_malloc (kb->width * kb->height); + if (G_UNLIKELY (!kb->pixels)) { + GST_ELEMENT_ERROR (ke, STREAM, ENCODE, (NULL), + ("Failed to allocate memory for pixel data")); + return GST_FLOW_ERROR; + } + + n = 0; + pixptr[0] = GST_BUFFER_DATA (buf) + ke->spu_pix_data[0]; + pixptr[1] = GST_BUFFER_DATA (buf) + ke->spu_pix_data[1]; + nybble_offset[0] = 0; + nybble_offset[1] = 0; + max_nybbles[0] = 2 * (packet_size - ke->spu_pix_data[0]); + max_nybbles[1] = 2 * (packet_size - ke->spu_pix_data[1]); + for (y = 0; y < kb->height; ++y) { + nybble_offset[y & 1] = GST_ROUND_UP_2 (nybble_offset[y & 1]); + for (x = 0; x < kb->width;) { + if (G_UNLIKELY (nybble_offset[y & 1] >= max_nybbles[y & 1])) { + GST_DEBUG_OBJECT (ke, "RLE overflow, clearing the remainder"); + memset (kb->pixels + n, 0, kb->width - x); + n += kb->width - x; + break; + } + code = gst_kate_spu_get_rle_code (pixptr[y & 1], &nybble_offset[y & 1]); + if (code == 0) { + memset (kb->pixels + n, 0, kb->width - x); + n += kb->width - x; + break; + } else { + guint16 npixels = code >> 2; + guint16 pixel = code & 3; + if (npixels > kb->width - x) { + npixels = kb->width - x; + } + memset (kb->pixels + n, pixel, npixels); + n += npixels; + x += npixels; + } + } + } + + GST_LOG_OBJECT (ke, "%u/%u bytes left in the data packet", + (guint) (max_nybbles[0] - nybble_offset[0]), + (guint) (max_nybbles[1] - nybble_offset[1])); + + /* some streams seem to have huge uncropped SPUs, fix those up */ + x = ke->spu_left; + y = ke->spu_top; + gst_kate_spu_crop_bitmap (ke, kb, &x, &y); + + /* create the region */ + kate_region_init (kr); + if (ke->original_canvas_width > 0 && ke->original_canvas_height > 0) { + /* prefer relative sizes in case we're encoding for a different resolution + that what the SPU was created for */ + kr->metric = kate_millionths; + kr->x = 1000000 * x / ke->original_canvas_width; + kr->y = 1000000 * y / ke->original_canvas_height; + kr->w = 1000000 * kb->width / ke->original_canvas_width; + kr->h = 1000000 * kb->height / ke->original_canvas_height; + } else { + kr->metric = kate_pixel; + kr->x = x; + kr->y = y; + kr->w = kb->width; + kr->h = kb->height; + } + + /* some SPUs have no hide time */ + if (ke->hide_time == 0) { + GST_INFO_OBJECT (ke, "SPU has no hide time"); + /* now, we don't know when the next SPU is scheduled to go, since we probably + haven't received it yet, so we'll just make it a 1 second delay, which is + probably going to end before the next one while being readable */ + //ke->hide_time = ke->show_time + (1000 * 90 / 1024); + } + + return GST_FLOW_OK; +} + +#undef IGNORE +#undef ADVANCE +#undef CHECK + +#undef GST_CAT_DEFAULT +#define GST_CAT_DEFAULT gst_katedec_debug + +static void +gst_kate_spu_add_nybble (unsigned char *bytes, size_t nbytes, int nybble_offset, + unsigned char nybble) +{ + unsigned char *ptr = bytes + nbytes + nybble_offset / 2; + if (!(nybble_offset & 1)) { + *ptr = nybble << 4; + } else { + *ptr |= nybble; + } +} + +static void +gst_kate_spu_rgb2yuv (int r, int g, int b, int *y, int *u, int *v) +{ + *y = gst_kate_spu_clamp (r * 0.299 * 219 / 255 + g * 0.587 * 219 / 255 + + b * 0.114 * 219 / 255 + 16); + *u = gst_kate_spu_clamp (-r * 0.16874 * 224 / 255 - g * 0.33126 * 224 / 255 + + b * 0.5 * 224 / 255 + 128); + *v = gst_kate_spu_clamp (r * 0.5 * 224 / 255 - g * 0.41869 * 224 / 255 - + b * 0.08131 * 224 / 255 + 128); +} + +static void +gst_kate_spu_make_palette (GstKateDec * kd, int palette[4], + const kate_palette * kp) +{ + int n; + GstStructure *structure; + GstEvent *event; + char name[16]; + int y, u, v; + + palette[0] = 0; + palette[1] = 1; + palette[2] = 2; + palette[3] = 3; + + structure = gst_structure_new ("application/x-gst-dvd", + "event", G_TYPE_STRING, "dvd-spu-clut-change", NULL); + + /* Create a separate field for each value in the table. */ + for (n = 0; n < 16; n++) { + guint32 color = 0; + if (n < 4) { + gst_kate_spu_rgb2yuv (kp->colors[n].r, kp->colors[n].g, kp->colors[n].b, + &y, &u, &v); + color = (y << 16) | (v << 8) | u; + } + g_snprintf (name, sizeof (name), "clut%02d", n); + gst_structure_set (structure, name, G_TYPE_INT, (int) color, NULL); + } + + /* Create the DVD event and put the structure into it. */ + event = gst_event_new_custom (GST_EVENT_CUSTOM_DOWNSTREAM, structure); + + GST_LOG_OBJECT (kd, "preparing clut change event %" GST_PTR_FORMAT, event); + gst_pad_push_event (kd->srcpad, event); +} + +GstBuffer * +gst_kate_spu_encode_spu (GstKateDec * kd, const kate_event * ev) +{ + kate_tracker kin; + unsigned char *bytes = NULL; + size_t nbytes = 0; + GstBuffer *buffer = NULL; + int ret; + int ocw, och; + int top, left, right, bottom; + int pass, line, row; + int lines_offset[2]; + int first_commands_offset, second_commands_offset; + int nybble_count; + const kate_bitmap *kb; + const kate_palette *kp; + int palette[4]; + int delay; + + /* we need a region, a bitmap, and a palette */ + if (!ev || !ev->region || !ev->bitmap || !ev->palette) + return NULL; + + kb = ev->bitmap; + kp = ev->palette; + + /* these need particular properties */ + if (kb->type != kate_bitmap_type_paletted || kb->bpp != 2) + return NULL; + if (kp->ncolors != 4) + return NULL; + + ret = kate_tracker_init (&kin, ev->ki, ev); + if (ret < 0) { + GST_WARNING_OBJECT (kd, "Failed to initialize kate tracker"); + return NULL; + } + + ocw = ev->ki->original_canvas_width; + och = ev->ki->original_canvas_height; + ret = kate_tracker_update (&kin, (kate_float) 0, ocw, och, 0, 0, ocw, och); + if (ret < 0) + goto error; + + if (kin.has.region) { + top = (int) (kin.region_y + (kate_float) 0.5); + left = (int) (kin.region_x + (kate_float) 0.5); + } else { + GST_WARNING_OBJECT (kd, + "No region information to place SPU, placing at 0 0"); + top = left = 0; + } + right = left + kb->width - 1; + bottom = top + kb->height - 1; + + /* Allocate space to build the SPU */ + bytes = g_malloc (MAX_SPU_SIZE); + if (G_UNLIKELY (!bytes)) { + GST_WARNING_OBJECT (kd, + "Failed to allocate %" G_GSIZE_FORMAT " byte buffer", nbytes); + goto error; + } + nbytes = 4; + nybble_count = 0; + +#define CHKBUFSPC(nybbles) \ + do { \ + if ((nbytes + (nybbles + nybble_count + 1) / 2) > MAX_SPU_SIZE) { \ + GST_WARNING_OBJECT (kd, "Not enough space in SPU buffer"); \ + goto error; \ + } \ + } while(0) + + /* encode lines */ + for (pass = 0; pass <= 1; ++pass) { + lines_offset[pass] = nbytes; + for (line = pass; line < bottom - top + 1; line += 2) { + const unsigned char *ptr = kb->pixels + line * kb->width; + for (row = 0; row < kb->width;) { + int run = 1; + while (row + run < kb->width && run < 255 && ptr[row + run] == ptr[row]) + ++run; + if (run >= 63 && row + run == kb->width) { + /* special end of line marker */ + CHKBUFSPC (4); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, ptr[row]); + } else if (run >= 1 && run <= 3) { + CHKBUFSPC (1); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, + (run << 2) | ptr[row]); + } else if (run <= 15) { + CHKBUFSPC (2); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, run >> 2); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, + ((run & 3) << 2) | ptr[row]); + } else if (run <= 63) { + CHKBUFSPC (3); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, run >> 2); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, + ((run & 3) << 2) | ptr[row]); + } else { + CHKBUFSPC (4); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, (run >> 6)); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, + (run >> 2) & 0xf); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, + ((run & 3) << 2) | ptr[row]); + } + row += run; + } + if (nybble_count & 1) { + CHKBUFSPC (1); + gst_kate_spu_add_nybble (bytes, nbytes, nybble_count++, 0); + } + nbytes += nybble_count / 2; + nybble_count = 0; + } + } + first_commands_offset = nbytes; + + gst_kate_spu_make_palette (kd, palette, kp); + + /* Commands header */ + CHKBUFSPC (4 * 2); + bytes[nbytes++] = 0; + bytes[nbytes++] = 0; + /* link to next command chunk will be filled later, when we know where it is */ + bytes[nbytes++] = 0; + bytes[nbytes++] = 0; + + CHKBUFSPC (3 * 2); + bytes[nbytes++] = SPU_CMD_SET_COLOR; + bytes[nbytes++] = (palette[3] << 4) | palette[2]; + bytes[nbytes++] = (palette[1] << 4) | palette[0]; + + CHKBUFSPC (3 * 2); + bytes[nbytes++] = SPU_CMD_SET_ALPHA; + bytes[nbytes++] = + ((kp->colors[palette[3]].a / 17) << 4) | (kp->colors[palette[2]].a / 17); + bytes[nbytes++] = + ((kp->colors[palette[1]].a / 17) << 4) | (kp->colors[palette[0]].a / 17); + + CHKBUFSPC (7 * 2); + bytes[nbytes++] = SPU_CMD_SET_DAREA; + bytes[nbytes++] = left >> 4; + bytes[nbytes++] = ((left & 0xf) << 4) | (right >> 8); + bytes[nbytes++] = right & 0xff; + bytes[nbytes++] = top >> 4; + bytes[nbytes++] = ((top & 0xf) << 4) | (bottom >> 8); + bytes[nbytes++] = bottom & 0xff; + + CHKBUFSPC (5 * 2); + bytes[nbytes++] = SPU_CMD_DSPXA; + bytes[nbytes++] = (lines_offset[0] >> 8) & 0xff; + bytes[nbytes++] = lines_offset[0] & 0xff; + bytes[nbytes++] = (lines_offset[1] >> 8) & 0xff; + bytes[nbytes++] = lines_offset[1] & 0xff; + + CHKBUFSPC (1 * 2); + bytes[nbytes++] = SPU_CMD_DSP; + + CHKBUFSPC (1 * 2); + bytes[nbytes++] = SPU_CMD_END; + + /* stop display chunk */ + CHKBUFSPC (4 * 2); + second_commands_offset = nbytes; + bytes[first_commands_offset + 2] = (second_commands_offset >> 8) & 0xff; + bytes[first_commands_offset + 3] = second_commands_offset & 0xff; + delay = GST_KATE_GST_TO_STM (ev->end_time - ev->start_time); + bytes[nbytes++] = (delay >> 8) & 0xff; + bytes[nbytes++] = delay & 0xff; + /* close the loop by linking back to self */ + bytes[nbytes++] = (second_commands_offset >> 8) & 0xff; + bytes[nbytes++] = second_commands_offset & 0xff; + + CHKBUFSPC (1 * 2); + bytes[nbytes++] = SPU_CMD_STP_DSP; + + CHKBUFSPC (1 * 2); + bytes[nbytes++] = SPU_CMD_END; + + /* Now that we know the size of the SPU, update the size and pointers */ + bytes[0] = (nbytes >> 8) & 0xff; + bytes[1] = nbytes & 0xff; + bytes[2] = (first_commands_offset >> 8) & 0xff; + bytes[3] = first_commands_offset & 0xff; + + /* Create a buffer with those values */ + buffer = gst_buffer_new (); + if (G_UNLIKELY (!buffer)) { + GST_WARNING_OBJECT (kd, + "Failed to allocate %" G_GSIZE_FORMAT " byte buffer", nbytes); + goto error; + } + GST_BUFFER_DATA (buffer) = bytes; + GST_BUFFER_MALLOCDATA (buffer) = bytes; + GST_BUFFER_SIZE (buffer) = nbytes; + GST_BUFFER_OFFSET_END (buffer) = GST_SECOND * (ev->end_time); + GST_BUFFER_OFFSET (buffer) = GST_SECOND * (ev->start_time); + GST_BUFFER_TIMESTAMP (buffer) = GST_SECOND * (ev->start_time); + GST_BUFFER_DURATION (buffer) = GST_SECOND * (ev->end_time - ev->start_time); + + GST_DEBUG_OBJECT (kd, "SPU uses %" G_GSIZE_FORMAT " bytes", nbytes); + + kate_tracker_clear (&kin); + return buffer; + +error: + kate_tracker_clear (&kin); + if (bytes) + g_free (bytes); + return NULL; +} diff --git a/ext/kate/gstkatespu.h b/ext/kate/gstkatespu.h new file mode 100644 index 0000000..b89e793 --- /dev/null +++ b/ext/kate/gstkatespu.h @@ -0,0 +1,65 @@ +/* -*- c-basic-offset: 2 -*- + * GStreamer + * Copyright (C) <2009> ogg.k.ogg.k + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_KATE_SPU_H__ +#define __GST_KATE_SPU_H__ + +#include +#include +#include "gstkateenc.h" +#include "gstkatedec.h" + +#define GST_KATE_UINT16_BE(ptr) ( ( ((guint16)((ptr)[0])) <<8) | ((ptr)[1]) ) + +/* taken off the DVD SPU decoder - now is time for today's WTF ???? */ +#define GST_KATE_STM_TO_GST(stm) ((GST_MSECOND * 1024 * (stm)) / 90) +#define GST_KATE_GST_TO_STM(gst) ((int)(((gst) * 90000 ) / 1024)) + +#define GST_KATE_SPU_MIME_TYPE "video/x-dvd-subpicture" + +G_BEGIN_DECLS + +enum GstKateSpuCmd +{ + SPU_CMD_FSTA_DSP = 0x00, /* Forced Display */ + SPU_CMD_DSP = 0x01, /* Display Start */ + SPU_CMD_STP_DSP = 0x02, /* Display Off */ + SPU_CMD_SET_COLOR = 0x03, /* Set the color indexes for the palette */ + SPU_CMD_SET_ALPHA = 0x04, /* Set the alpha indexes for the palette */ + SPU_CMD_SET_DAREA = 0x05, /* Set the display area for the SPU */ + SPU_CMD_DSPXA = 0x06, /* Pixel data addresses */ + SPU_CMD_CHG_COLCON = 0x07, /* Change Color & Contrast */ + SPU_CMD_END = 0xff +}; + + +extern const guint32 gst_kate_spu_default_clut[16]; + +extern GstFlowReturn +gst_kate_spu_decode_spu (GstKateEnc * ke, GstBuffer * buf, kate_region * kr, + kate_bitmap * kb, kate_palette * kp); + +extern GstBuffer* +gst_kate_spu_encode_spu (GstKateDec * kd, const kate_event * ev); + +G_END_DECLS + +#endif /* __GST_KATE_SPU_H__ */ diff --git a/ext/kate/gstkatetag.c b/ext/kate/gstkatetag.c new file mode 100644 index 0000000..34d8cf2 --- /dev/null +++ b/ext/kate/gstkatetag.c @@ -0,0 +1,344 @@ +/* + * GStreamer + * Copyright (C) 2006 James Livingston + * Copyright (C) 2008 Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-katetag + * @see_also: #oggdemux, #oggmux, #kateparse, #GstTagSetter + * @short_description: retags kate streams + * + * + * + * The katetag element can change the tag contained within a raw + * kate stream. Specifically, it modifies the comments header packet + * of the kate stream, as well as the language and category of the + * kate stream. + * + * + * The element will also process the stream as the #kateparse element does + * so it can be used when remuxing an Ogg Kate stream, without additional + * elements. + * + * + * Applications can set the tags to write using the #GstTagSetter interface. + * Tags contained within the kate stream will be picked up + * automatically (and merged according to the merge mode set via the tag + * setter interface). + * + * Example pipelines + * + * This element is only useful with gst-launch for modifying the language + * and/or category (which are properties of the stream located in the kate + * beginning of stream header), because it does not support setting the tags + * on a #GstTagSetter interface. Conceptually, the element will usually be + * used like: + * + * gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag ! oggmux ! filesink location=bar.ogg + * + * + * + * This pipeline will set the language and category of the stream to the + * given values: + * + * gst-launch -v filesrc location=foo.ogg ! oggdemux ! katetag language=pt_BR category=subtitles ! oggmux ! filesink location=bar.ogg + * + * + * + */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include +#include + +#include + +#include "gstkatetag.h" + + +GST_DEBUG_CATEGORY_EXTERN (gst_katetag_debug); +#define GST_CAT_DEFAULT gst_katetag_debug + +enum +{ + ARG_0, + ARG_LANGUAGE, + ARG_CATEGORY, + ARG_ORIGINAL_CANVAS_WIDTH, + ARG_ORIGINAL_CANVAS_HEIGHT, +}; + +static GstFlowReturn gst_kate_tag_parse_packet (GstKateParse * parse, + GstBuffer * buffer); +static void gst_kate_tag_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_kate_tag_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_kate_tag_dispose (GObject * object); + + +#define _do_init(type) \ + G_STMT_START{ \ + static const GInterfaceInfo tag_setter_info = { \ + NULL, \ + NULL, \ + NULL \ + }; \ + g_type_add_interface_static (type, GST_TYPE_TAG_SETTER, \ + &tag_setter_info); \ + }G_STMT_END + +GST_BOILERPLATE_FULL (GstKateTag, gst_kate_tag, GstKateParse, + GST_TYPE_KATE_PARSE, _do_init); + +static void +gst_kate_tag_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_set_details_simple (element_class, "Kate stream tagger", + "Formatter/Metadata", + "Retags kate streams", "Vincent Penquerc'h "); +} + +static void +gst_kate_tag_class_init (GstKateTagClass * klass) +{ + GObjectClass *gobject_class; + GstKateParseClass *gstkateparse_class; + + gobject_class = (GObjectClass *) klass; + gstkateparse_class = GST_KATE_PARSE_CLASS (klass); + + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_kate_tag_set_property); + gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_kate_tag_get_property); + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_kate_tag_dispose); + + g_object_class_install_property (gobject_class, ARG_LANGUAGE, + g_param_spec_string ("language", "Language", + "Set the language of the stream", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_CATEGORY, + g_param_spec_string ("category", "Category", + "Set the category of the stream", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_WIDTH, + g_param_spec_int ("original-canvas-width", "Original canvas width", + "Set the width of the canvas this stream was authored for (0 is unspecified)", + 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_ORIGINAL_CANVAS_HEIGHT, + g_param_spec_int ("original-canvas-height", "Original canvas height", + "Set the height of the canvas this stream was authored for (0 is unspecified)", + 0, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstkateparse_class->parse_packet = + GST_DEBUG_FUNCPTR (gst_kate_tag_parse_packet); +} + +static void +gst_kate_tag_init (GstKateTag * kt, GstKateTagClass * g_class) +{ + kt->language = NULL; + kt->category = NULL; + kt->original_canvas_width = -1; + kt->original_canvas_height = -1; +} + +static void +gst_kate_tag_dispose (GObject * object) +{ + GstKateTag *kt = GST_KATE_TAG (object); + + GST_LOG_OBJECT (kt, "disposing"); + + if (kt->language) { + g_free (kt->language); + kt->language = NULL; + } + if (kt->category) { + g_free (kt->category); + kt->category = NULL; + } + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static void +gst_kate_tag_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstKateTag *kt = GST_KATE_TAG (object); + const char *str; + + switch (prop_id) { + case ARG_LANGUAGE: + if (kt->language) { + g_free (kt->language); + kt->language = NULL; + } + str = g_value_get_string (value); + if (str) + kt->language = g_strdup (str); + break; + case ARG_CATEGORY: + if (kt->category) { + g_free (kt->category); + kt->category = NULL; + } + str = g_value_get_string (value); + if (str) + kt->category = g_strdup (str); + break; + case ARG_ORIGINAL_CANVAS_WIDTH: + kt->original_canvas_width = g_value_get_int (value); + break; + case ARG_ORIGINAL_CANVAS_HEIGHT: + kt->original_canvas_height = g_value_get_int (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_kate_tag_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstKateTag *kt = GST_KATE_TAG (object); + + switch (prop_id) { + case ARG_LANGUAGE: + g_value_set_string (value, kt->language ? kt->language : ""); + break; + case ARG_CATEGORY: + g_value_set_string (value, kt->category ? kt->category : ""); + break; + case ARG_ORIGINAL_CANVAS_WIDTH: + g_value_set_int (value, kt->original_canvas_width); + break; + case ARG_ORIGINAL_CANVAS_HEIGHT: + g_value_set_int (value, kt->original_canvas_height); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static guint16 +encode_canvas_size (size_t size) +{ + size_t base = size; + size_t shift = 0; + int value; + + while (base & ~((1 << 12) - 1)) { + /* we have a high bit we can't fit, increase shift if we wouldn't lose low bits */ + if ((size >> shift) & 1) + return 0; + ++shift; + base >>= 1; + } + if (G_UNLIKELY (shift >= 16)) + return 0; + + /* the size can be represented in our encoding */ + value = (base << 4) | shift; + + return (guint16) value; +} + +static GstFlowReturn +gst_kate_tag_parse_packet (GstKateParse * parse, GstBuffer * buffer) +{ + GstTagList *old_tags, *new_tags; + const GstTagList *user_tags; + GstKateTag *kt; + gchar *encoder = NULL; + GstBuffer *new_buf; + + kt = GST_KATE_TAG (parse); + + /* rewrite the language and category */ + if (GST_BUFFER_SIZE (buffer) >= 64 && GST_BUFFER_DATA (buffer)[0] == 0x80) { + GstBuffer *new_buffer = gst_buffer_copy (buffer); + + gst_buffer_unref (buffer); + buffer = new_buffer; + + /* language is at offset 32, 16 bytes, zero terminated */ + if (kt->language) { + strncpy ((char *) GST_BUFFER_DATA (buffer) + 32, kt->language, 15); + GST_BUFFER_DATA (buffer)[47] = 0; + } + /* category is at offset 48, 16 bytes, zero terminated */ + if (kt->category) { + strncpy ((char *) GST_BUFFER_DATA (buffer) + 48, kt->category, 15); + GST_BUFFER_DATA (buffer)[63] = 0; + } + if (kt->original_canvas_width >= 0) { + guint16 v = encode_canvas_size (kt->original_canvas_width); + GST_BUFFER_DATA (buffer)[16] = v & 0xff; + GST_BUFFER_DATA (buffer)[17] = (v >> 8) & 0xff; + } + if (kt->original_canvas_height >= 0) { + guint16 v = encode_canvas_size (kt->original_canvas_height); + GST_BUFFER_DATA (buffer)[18] = v & 0xff; + GST_BUFFER_DATA (buffer)[19] = (v >> 8) & 0xff; + } + } + + /* rewrite the comments packet */ + if (GST_BUFFER_SIZE (buffer) >= 9 && GST_BUFFER_DATA (buffer)[0] == 0x81) { + old_tags = + gst_tag_list_from_vorbiscomment_buffer (buffer, + (const guint8 *) "\201kate\0\0\0\0", 9, &encoder); + user_tags = gst_tag_setter_get_tag_list (GST_TAG_SETTER (kt)); + + /* build new tag list */ + new_tags = gst_tag_list_merge (user_tags, old_tags, + gst_tag_setter_get_tag_merge_mode (GST_TAG_SETTER (kt))); + gst_tag_list_free (old_tags); + + new_buf = + gst_tag_list_to_vorbiscomment_buffer (new_tags, + (const guint8 *) "\201kate\0\0\0\0", 9, encoder); + gst_buffer_copy_metadata (new_buf, buffer, GST_BUFFER_COPY_TIMESTAMPS); + + gst_tag_list_free (new_tags); + g_free (encoder); + gst_buffer_unref (buffer); + + /* the buffer will have the framing bit used by Vorbis, but we don't use it */ + --GST_BUFFER_SIZE (new_buf); + + buffer = new_buf; + } + + return GST_KATE_PARSE_CLASS (parent_class)->parse_packet (parse, buffer); +} diff --git a/ext/kate/gstkatetag.h b/ext/kate/gstkatetag.h new file mode 100644 index 0000000..2f27df3 --- /dev/null +++ b/ext/kate/gstkatetag.h @@ -0,0 +1,65 @@ +/* -*- c-basic-offset: 2 -*- + * GStreamer + * Copyright (C) <2006> James Livingston + * Copyright (C) <2008> Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_KATE_TAG_H__ +#define __GST_KATE_TAG_H__ + +#include "gstkateparse.h" + +G_BEGIN_DECLS +#define GST_TYPE_KATE_TAG \ + (gst_kate_tag_get_type()) +#define GST_KATE_TAG(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KATE_TAG,GstKateTag)) +#define GST_KATE_TAG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_KATE_TAG,GstKateTagClass)) +#define GST_IS_KATE_TAG(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KATE_TAG)) +#define GST_IS_KATE_TAG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_TAG)) +typedef struct _GstKateTag GstKateTag; +typedef struct _GstKateTagClass GstKateTagClass; + +/** + * GstKateTag: + * + * Opaque data structure. + */ +struct _GstKateTag +{ + GstKateParse parse; + + gchar *language; + gchar *category; + gint original_canvas_width; + gint original_canvas_height; +}; + +struct _GstKateTagClass +{ + GstKateParseClass parent_class; +}; + +GType gst_kate_tag_get_type (void); + +G_END_DECLS +#endif /* __GST_KATE_TAG_H__ */ diff --git a/ext/kate/gstkatetiger.c b/ext/kate/gstkatetiger.c new file mode 100644 index 0000000..81ac6f7 --- /dev/null +++ b/ext/kate/gstkatetiger.c @@ -0,0 +1,1096 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-tiger + * @see_also: katedec + * + * + * + * This element decodes and renders Kate streams + * Kate is a free codec + * for text based data, such as subtitles. Any number of kate streams can be + * embedded in an Ogg stream. + * + * + * libkate (see above url) and libtiger + * are needed to build this element. + * + * Example pipeline + * + * This pipeline renders a Kate stream on top of a Theora video multiplexed + * in the same stream: + * + * gst-launch \ + * filesrc location=video.ogg ! oggdemux name=demux \ + * demux. ! queue ! theoradec ! ffmpegcolorspace ! tiger name=tiger \ + * demux. ! queue ! kateparse ! tiger. \ + * tiger. ! ffmpegcolorspace ! autovideosink + * + * + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include +#include + +#include "gstkate.h" +#include "gstkatetiger.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_katetiger_debug); +#define GST_CAT_DEFAULT gst_katetiger_debug + +#define GST_KATE_TIGER_MUTEX_LOCK(element) \ + do { \ + /*GST_LOG_OBJECT ((element), "locking from %s:%d\n",__FILE__,__LINE__);*/ \ + g_mutex_lock ((element)->mutex); \ + /*GST_LOG_OBJECT ((element), "ready from %s:%d\n",__FILE__,__LINE__);*/ \ + } while(0) + +#define GST_KATE_TIGER_MUTEX_UNLOCK(element) \ + do { \ + /*GST_LOG_OBJECT ((element), "unlocking from %s:%d\n",__FILE__,__LINE__);*/ \ + g_mutex_unlock ((element)->mutex); \ + } while(0) + +/* Filter signals and args */ +enum +{ + /* FILL ME */ + LAST_SIGNAL +}; + +enum +{ + ARG_DEFAULT_FONT_DESC = DECODER_BASE_ARG_COUNT, + ARG_QUALITY, + ARG_DEFAULT_FONT_EFFECT, + ARG_DEFAULT_FONT_EFFECT_STRENGTH, + ARG_DEFAULT_FONT_RED, + ARG_DEFAULT_FONT_GREEN, + ARG_DEFAULT_FONT_BLUE, + ARG_DEFAULT_FONT_ALPHA, + ARG_DEFAULT_BACKGROUND_RED, + ARG_DEFAULT_BACKGROUND_GREEN, + ARG_DEFAULT_BACKGROUND_BLUE, + ARG_DEFAULT_BACKGROUND_ALPHA +}; + +static GstStaticPadTemplate kate_sink_factory = + GST_STATIC_PAD_TEMPLATE ("subtitle_sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("subtitle/x-kate; application/x-kate") + ); + +#if G_BYTE_ORDER == G_LITTLE_ENDIAN +#define TIGER_VIDEO_CAPS \ + GST_VIDEO_CAPS_xRGB ", endianness = (int)1234; " \ + GST_VIDEO_CAPS_BGRx ", endianness = (int)4321" +#else +#define TIGER_VIDEO_CAPS \ + GST_VIDEO_CAPS_BGRx ", endianness = (int)4321; " \ + GST_VIDEO_CAPS_xRGB ", endianness = (int)1234" +#endif + +static GstStaticPadTemplate video_sink_factory = +GST_STATIC_PAD_TEMPLATE ("video_sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (TIGER_VIDEO_CAPS)); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (TIGER_VIDEO_CAPS)); + +GST_BOILERPLATE (GstKateTiger, gst_kate_tiger, GstElement, GST_TYPE_ELEMENT); + +static GType +gst_kate_tiger_font_effect_get_type (void) +{ + static GType font_effect_type = 0; + + if (!font_effect_type) { + static const GEnumValue font_effects[] = { + {tiger_font_plain, "none", "none"}, + {tiger_font_shadow, "shadow", "shadow"}, + {tiger_font_outline, "outline", "outline"}, + {0, NULL, NULL} + }; + font_effect_type = g_enum_register_static ("GstFontEffect", font_effects); + } + + return font_effect_type; +} + +static void gst_kate_tiger_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_kate_tiger_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); +static void gst_kate_tiger_dispose (GObject * object); + +static GstFlowReturn gst_kate_tiger_kate_chain (GstPad * pad, GstBuffer * buf); +static GstFlowReturn gst_kate_tiger_video_chain (GstPad * pad, GstBuffer * buf); +static GstStateChangeReturn gst_kate_tiger_change_state (GstElement * element, + GstStateChange transition); +static gboolean gst_kate_tiger_kate_sink_query (GstPad * pad, GstQuery * query); +static gboolean gst_kate_tiger_kate_event (GstPad * pad, GstEvent * event); +static gboolean gst_kate_tiger_video_event (GstPad * pad, GstEvent * event); +static gboolean gst_kate_tiger_video_set_caps (GstPad * pad, GstCaps * caps); +static gboolean gst_kate_tiger_source_event (GstPad * pad, GstEvent * event); + +static void +gst_kate_tiger_base_init (gpointer gclass) +{ + + GstElementClass *element_class = GST_ELEMENT_CLASS (gclass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&kate_sink_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&video_sink_factory)); + gst_element_class_set_details_simple (element_class, "Kate stream renderer", + "Mixer/Video/Overlay/Subtitle", + "Decodes and renders Kate streams on top of a video", + "Vincent Penquerc'h "); +} + +/* initialize the plugin's class */ +static void +gst_kate_tiger_class_init (GstKateTigerClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->get_property = GST_DEBUG_FUNCPTR (gst_kate_tiger_get_property); + gobject_class->set_property = GST_DEBUG_FUNCPTR (gst_kate_tiger_set_property); + gobject_class->dispose = GST_DEBUG_FUNCPTR (gst_kate_tiger_dispose); + + gst_kate_util_install_decoder_base_properties (gobject_class); + + g_object_class_install_property (gobject_class, ARG_QUALITY, + g_param_spec_double ("quality", "Rendering quality", + "Rendering quality (0 is faster, 1 is best and slower)", + 0.0, 1.0, 1.0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_DESC, + g_param_spec_string ("default-font-desc", "Default font description", + "Default font description (Pango style) to render text with", + "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_EFFECT, + g_param_spec_enum ("default-font-effect", "Default font effect", + "Whether to apply an effect to text by default, for increased readability", + gst_kate_tiger_font_effect_get_type (), + tiger_font_outline, + G_PARAM_READWRITE | G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + ARG_DEFAULT_FONT_EFFECT_STRENGTH, + g_param_spec_double ("default-font-effect-strength", + "Default font effect strength", + "How pronounced should the font effect be (effect dependent)", 0.0, + 1.0, 0.5, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_RED, + g_param_spec_int ("default-font-red", + "Default font color (red component)", + "Default font color (red component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_GREEN, + g_param_spec_int ("default-font-green", + "Default font color (green component)", + "Default font color (green component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_BLUE, + g_param_spec_int ("default-font-blue", + "Default font color (blue component)", + "Default font color (blue component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_FONT_ALPHA, + g_param_spec_int ("default-font-alpha", + "Default font color (alpha component)", + "Default font color (alpha component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_BACKGROUND_RED, + g_param_spec_int ("default-background-red", + "Default background color (red component)", + "Default background color (red component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_BACKGROUND_GREEN, + g_param_spec_int ("default-background-green", + "Default background color (green component)", + "Default background color (green component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_BACKGROUND_BLUE, + g_param_spec_int ("default-background-blue", + "Default background color (blue component)", + "Default background color (blue component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEFAULT_BACKGROUND_ALPHA, + g_param_spec_int ("default-background-alpha", + "Default background color (alpha component)", + "Default background color (alpha component, between 0 and 255) to render text with", + 0, 255, 255, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = + GST_DEBUG_FUNCPTR (gst_kate_tiger_change_state); +} + +/* initialize the new element + * instantiate pads and add them to element + * set functions + * initialize structure + */ +static void +gst_kate_tiger_init (GstKateTiger * tiger, GstKateTigerClass * gclass) +{ + GST_DEBUG_OBJECT (tiger, "gst_kate_tiger_init"); + + tiger->mutex = g_mutex_new (); + tiger->cond = g_cond_new (); + + tiger->katesinkpad = + gst_pad_new_from_static_template (&kate_sink_factory, "subtitle_sink"); + gst_pad_set_chain_function (tiger->katesinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_kate_chain)); + gst_pad_set_query_function (tiger->katesinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_kate_sink_query)); + gst_pad_set_event_function (tiger->katesinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_kate_event)); + gst_element_add_pad (GST_ELEMENT (tiger), tiger->katesinkpad); + + tiger->videosinkpad = + gst_pad_new_from_static_template (&video_sink_factory, "video_sink"); + gst_pad_set_chain_function (tiger->videosinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_video_chain)); + gst_pad_use_fixed_caps (tiger->videosinkpad); + gst_pad_set_setcaps_function (tiger->videosinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_video_set_caps)); + gst_pad_set_event_function (tiger->videosinkpad, + GST_DEBUG_FUNCPTR (gst_kate_tiger_video_event)); + gst_element_add_pad (GST_ELEMENT (tiger), tiger->videosinkpad); + + tiger->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_pad_set_event_function (tiger->srcpad, gst_kate_tiger_source_event); + gst_pad_use_fixed_caps (tiger->srcpad); + gst_element_add_pad (GST_ELEMENT (tiger), tiger->srcpad); + + gst_kate_util_decode_base_init (&tiger->decoder, FALSE); + + tiger->tr = NULL; + + tiger->default_font_desc = NULL; + tiger->quality = -1.0; + tiger->default_font_effect = tiger_font_outline; + tiger->default_font_effect_strength = 0.5; + tiger->default_font_r = 255; + tiger->default_font_g = 255; + tiger->default_font_b = 255; + tiger->default_font_a = 255; + tiger->default_background_r = 0; + tiger->default_background_g = 0; + tiger->default_background_b = 0; + tiger->default_background_a = 0; + + tiger->video_width = 0; + tiger->video_height = 0; + + tiger->seen_header = FALSE; +} + +static void +gst_kate_tiger_dispose (GObject * object) +{ + GstKateTiger *tiger = GST_KATE_TIGER (object); + + GST_LOG_OBJECT (tiger, "disposing"); + + if (tiger->default_font_desc) { + g_free (tiger->default_font_desc); + tiger->default_font_desc = NULL; + } + + g_cond_free (tiger->cond); + tiger->cond = NULL; + + g_mutex_free (tiger->mutex); + tiger->mutex = NULL; + + GST_CALL_PARENT (G_OBJECT_CLASS, dispose, (object)); +} + +static void +gst_kate_tiger_update_quality (GstKateTiger * tiger) +{ + if (tiger->tr && tiger->quality >= 0.0) { + tiger_renderer_set_quality (tiger->tr, tiger->quality); + } +} + +static void +gst_kate_tiger_update_default_font_effect (GstKateTiger * tiger) +{ + if (tiger->tr) { + tiger_renderer_set_default_font_effect (tiger->tr, + tiger->default_font_effect, tiger->default_font_effect_strength); + } +} + +static void +gst_kate_tiger_update_default_font_color (GstKateTiger * tiger) +{ + if (tiger->tr) { + tiger_renderer_set_default_font_color (tiger->tr, + tiger->default_font_r / 255.0, + tiger->default_font_g / 255.0, + tiger->default_font_b / 255.0, tiger->default_font_a / 255.0); + } +} + +static void +gst_kate_tiger_update_default_background_color (GstKateTiger * tiger) +{ + if (tiger->tr) { + tiger_renderer_set_default_background_fill_color (tiger->tr, + tiger->default_background_r / 255.0, + tiger->default_background_g / 255.0, + tiger->default_background_b / 255.0, + tiger->default_background_a / 255.0); + } +} + +static void +gst_kate_tiger_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstKateTiger *tiger = GST_KATE_TIGER (object); + const char *str; + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + + switch (prop_id) { + case ARG_DEFAULT_FONT_DESC: + if (tiger->default_font_desc) { + g_free (tiger->default_font_desc); + tiger->default_font_desc = NULL; + } + str = g_value_get_string (value); + if (str) { + tiger->default_font_desc = g_strdup (str); + if (tiger->tr) + tiger_renderer_set_default_font_description (tiger->tr, + tiger->default_font_desc); + } + break; + case ARG_QUALITY: + tiger->quality = g_value_get_double (value); + gst_kate_tiger_update_quality (tiger); + break; + case ARG_DEFAULT_FONT_EFFECT: + tiger->default_font_effect = g_value_get_enum (value); + gst_kate_tiger_update_default_font_effect (tiger); + break; + case ARG_DEFAULT_FONT_EFFECT_STRENGTH: + tiger->default_font_effect_strength = g_value_get_double (value); + gst_kate_tiger_update_default_font_effect (tiger); + break; + case ARG_DEFAULT_FONT_RED: + tiger->default_font_r = g_value_get_int (value); + gst_kate_tiger_update_default_font_color (tiger); + break; + case ARG_DEFAULT_FONT_GREEN: + tiger->default_font_g = g_value_get_int (value); + gst_kate_tiger_update_default_font_color (tiger); + break; + case ARG_DEFAULT_FONT_BLUE: + tiger->default_font_b = g_value_get_int (value); + gst_kate_tiger_update_default_font_color (tiger); + break; + case ARG_DEFAULT_FONT_ALPHA: + tiger->default_font_a = g_value_get_int (value); + gst_kate_tiger_update_default_font_color (tiger); + break; + case ARG_DEFAULT_BACKGROUND_RED: + tiger->default_background_r = g_value_get_int (value); + gst_kate_tiger_update_default_background_color (tiger); + break; + case ARG_DEFAULT_BACKGROUND_GREEN: + tiger->default_background_g = g_value_get_int (value); + gst_kate_tiger_update_default_background_color (tiger); + break; + case ARG_DEFAULT_BACKGROUND_BLUE: + tiger->default_background_b = g_value_get_int (value); + gst_kate_tiger_update_default_background_color (tiger); + break; + case ARG_DEFAULT_BACKGROUND_ALPHA: + tiger->default_background_a = g_value_get_int (value); + gst_kate_tiger_update_default_background_color (tiger); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); +} + +static void +gst_kate_tiger_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstKateTiger *tiger = GST_KATE_TIGER (object); + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + + switch (prop_id) { + case ARG_DEFAULT_FONT_DESC: + g_value_set_string (value, + tiger->default_font_desc ? tiger->default_font_desc : ""); + break; + case ARG_QUALITY: + g_value_set_double (value, tiger->quality); + break; + case ARG_DEFAULT_FONT_EFFECT: + g_value_set_enum (value, tiger->default_font_effect); + break; + case ARG_DEFAULT_FONT_EFFECT_STRENGTH: + g_value_set_double (value, tiger->default_font_effect_strength); + break; + case ARG_DEFAULT_FONT_RED: + g_value_set_int (value, tiger->default_font_r); + break; + case ARG_DEFAULT_FONT_GREEN: + g_value_set_int (value, tiger->default_font_g); + break; + case ARG_DEFAULT_FONT_BLUE: + g_value_set_int (value, tiger->default_font_b); + break; + case ARG_DEFAULT_FONT_ALPHA: + g_value_set_int (value, tiger->default_font_a); + break; + case ARG_DEFAULT_BACKGROUND_RED: + g_value_set_int (value, tiger->default_background_r); + break; + case ARG_DEFAULT_BACKGROUND_GREEN: + g_value_set_int (value, tiger->default_background_g); + break; + case ARG_DEFAULT_BACKGROUND_BLUE: + g_value_set_int (value, tiger->default_background_b); + break; + case ARG_DEFAULT_BACKGROUND_ALPHA: + g_value_set_int (value, tiger->default_background_a); + break; + default: + if (!gst_kate_util_decoder_base_get_property (&tiger->decoder, object, + prop_id, value, pspec)) { + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + } + break; + } + + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); +} + +/* GstElement vmethod implementations */ + +/* chain function + * this function does the actual processing + */ + +static GstFlowReturn +gst_kate_tiger_kate_chain (GstPad * pad, GstBuffer * buf) +{ + GstKateTiger *tiger = GST_KATE_TIGER (gst_pad_get_parent (pad)); + const kate_event *ev = NULL; + GstFlowReturn rflow = GST_FLOW_OK; + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + + GST_LOG_OBJECT (tiger, "Got kate buffer, caps %" GST_PTR_FORMAT, + GST_BUFFER_CAPS (buf)); + + /* Unfortunately, it can happen that the start of the stream is not sent, + for instance if there's a stream selector upstream, which is switched + from another Kate stream. If this happens, then we can fallback on the + headers stored in the caps (if any). */ + if (!tiger->seen_header) { + if (GST_BUFFER_SIZE (buf) == 0 || (GST_BUFFER_DATA (buf)[0] & 0x80) == 0) { + /* Not a header, try to fall back on caps */ + GstStructure *s; + const GValue *streamheader; + + GST_INFO_OBJECT (tiger, "Headers not seen, start of stream is cut off"); + s = gst_caps_get_structure (GST_BUFFER_CAPS (buf), 0); + streamheader = gst_structure_get_value (s, "streamheader"); + if (streamheader && G_VALUE_TYPE (streamheader) == GST_TYPE_ARRAY) { + GstPad *tagpad = gst_pad_get_peer (pad); + GArray *array; + gint i; + + GST_INFO_OBJECT (tiger, "Falling back on caps to initialize decoder"); + array = g_value_peek_pointer (streamheader); + for (i = 0; i < array->len; i++) { + GValue *value = &g_array_index (array, GValue, i); + if (G_VALUE_TYPE (value) == GST_TYPE_BUFFER) { + GstBuffer *hbuf = g_value_peek_pointer (value); + gst_buffer_ref (hbuf); + rflow = + gst_kate_util_decoder_base_chain_kate_packet (&tiger->decoder, + GST_ELEMENT_CAST (tiger), pad, hbuf, tiger->srcpad, tagpad, + NULL, NULL); + } else { + GST_WARNING_OBJECT (tiger, + "Streamheader index %d does not hold a buffer", i); + } + } + gst_object_unref (tagpad); + tiger->seen_header = TRUE; + } else { + GST_WARNING_OBJECT (tiger, "No headers seen, and no headers on caps"); + } + } else { + tiger->seen_header = TRUE; + } + } + + if (gst_kate_util_decoder_base_update_segment (&tiger->decoder, + GST_ELEMENT_CAST (tiger), buf)) { + GstPad *tagpad = gst_pad_get_peer (pad); + rflow = + gst_kate_util_decoder_base_chain_kate_packet (&tiger->decoder, + GST_ELEMENT_CAST (tiger), pad, buf, tiger->srcpad, tagpad, NULL, &ev); + if (G_LIKELY (rflow == GST_FLOW_OK)) { + if (ev) { + int ret = tiger_renderer_add_event (tiger->tr, ev->ki, ev); + GST_INFO_OBJECT (tiger, "adding event for %p from %f to %f: %p, \"%s\"", + ev->ki, ev->start_time, ev->end_time, ev->bitmap, ev->text); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (tiger, + "failed to add Kate event to Tiger renderer: %d", ret); + } + } + } + gst_object_unref (tagpad); + } + + /* we want to avoid shooting ahead of the video stream, or we will + get segment updates which will place us ahead of it, and we won't + be able to convert a video timestamp back into a kate timestamp */ + if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (buf))) { + while (1) { + gint64 kate_time, video_time; + kate_time = + gst_segment_to_running_time (&tiger->decoder.kate_segment, + GST_FORMAT_TIME, GST_BUFFER_TIMESTAMP (buf)); + video_time = + gst_segment_to_running_time (&tiger->video_segment, GST_FORMAT_TIME, + tiger->video_segment.last_stop); + GST_DEBUG_OBJECT (tiger, "Kate time %.2f, video time %.2f (kts %ld)", + kate_time / (float) GST_SECOND, video_time / (float) GST_SECOND, + (long) GST_BUFFER_TIMESTAMP (buf)); + if (kate_time <= video_time) { + break; + } + GST_LOG_OBJECT (tiger, "Waiting to return from chain function"); + g_cond_wait (tiger->cond, tiger->mutex); + if (tiger->decoder.kate_flushing) { + GST_DEBUG_OBJECT (tiger, "Flushing while waiting"); + break; + } + GST_LOG_OBJECT (tiger, "Woken up, checking time again"); + } + } + + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + + gst_object_unref (tiger); + gst_buffer_unref (buf); + + return rflow; +} + +static gboolean +gst_kate_tiger_video_set_caps (GstPad * pad, GstCaps * caps) +{ + GstKateTiger *tiger = GST_KATE_TIGER (gst_pad_get_parent (pad)); + GstVideoFormat format; + gint w, h; + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + + /* Cairo expects ARGB in native endianness, and that's what we get + as we've forced it in the caps. We might allow swapped red/blue + at some point, and get tiger to swap, to make some cases faster */ + tiger->swap_rgb = FALSE; + + if (gst_video_format_parse_caps (caps, &format, &w, &h)) { + tiger->video_width = w; + tiger->video_height = h; + } + + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + + gst_pad_set_caps (tiger->srcpad, caps); + + gst_object_unref (tiger); + return TRUE; +} + +static gdouble +gst_kate_tiger_get_time (GstKateTiger * tiger) +{ + gint64 rt = + gst_segment_to_running_time (&tiger->video_segment, GST_FORMAT_TIME, + tiger->video_segment.last_stop); + gint64 pos = + gst_segment_to_position (&tiger->decoder.kate_segment, GST_FORMAT_TIME, + rt); + return pos / (gdouble) GST_SECOND; +} + +static GstFlowReturn +gst_kate_tiger_video_chain (GstPad * pad, GstBuffer * buf) +{ + GstKateTiger *tiger = GST_KATE_TIGER (gst_pad_get_parent (pad)); + GstFlowReturn rflow = GST_FLOW_OK; + unsigned char *ptr; + int ret; + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + + GST_LOG_OBJECT (tiger, "got video frame, %u bytes", GST_BUFFER_SIZE (buf)); + + if (G_UNLIKELY (tiger->video_flushing)) { + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + gst_object_unref (tiger); + gst_buffer_unref (buf); + return GST_FLOW_WRONG_STATE; + } + + if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (buf))) { + gst_segment_set_last_stop (&tiger->video_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buf)); + g_cond_broadcast (tiger->cond); + } + + /* draw on it */ + buf = gst_buffer_make_writable (buf); + if (G_UNLIKELY (!buf)) { + GST_WARNING_OBJECT (tiger, "Failed to make video buffer writable"); + } else { + ptr = GST_BUFFER_DATA (buf); + if (!ptr) { + GST_WARNING_OBJECT (tiger, + "Failed to get a pointer to video buffer data"); + } else { + ret = + tiger_renderer_set_buffer (tiger->tr, ptr, tiger->video_width, + tiger->video_height, tiger->video_width * 4, tiger->swap_rgb); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (tiger, + "Tiger renderer failed to set buffer to video frame: %d", ret); + } else { + kate_float t = gst_kate_tiger_get_time (tiger); + GST_LOG_OBJECT (tiger, "Video segment calc: last stop %ld, time %.3f", + (long) tiger->video_segment.last_stop, t); + + ret = tiger_renderer_update (tiger->tr, t, 1); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (tiger, "Tiger renderer failed to update: %d", + ret); + } else { + ret = tiger_renderer_render (tiger->tr); + if (G_UNLIKELY (ret < 0)) { + GST_WARNING_OBJECT (tiger, + "Tiger renderer failed to render to video frame: %d", ret); + } else { + GST_LOG_OBJECT (tiger, + "Tiger renderer rendered on video frame at %f", t); + } + } + } + } + } + + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + + rflow = gst_pad_push (tiger->srcpad, buf); + + gst_object_unref (tiger); + + return rflow; +} + +static GstStateChangeReturn +gst_kate_tiger_change_state (GstElement * element, GstStateChange transition) +{ + GstKateTiger *tiger = GST_KATE_TIGER (element); + GstStateChangeReturn res; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_DEBUG_OBJECT (tiger, "PAUSED -> READY, clearing kate state"); + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_kate_util_decoder_base_set_flushing (&tiger->decoder, TRUE); + g_cond_broadcast (tiger->cond); + if (tiger->tr) { + tiger_renderer_destroy (tiger->tr); + tiger->tr = NULL; + } + gst_segment_init (&tiger->video_segment, GST_FORMAT_UNDEFINED); + tiger->video_flushing = TRUE; + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + break; + default: + break; + } + + res = + gst_kate_decoder_base_change_state (&tiger->decoder, element, + parent_class, transition); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT (tiger, "READY -> PAUSED, initializing kate state"); + GST_KATE_TIGER_MUTEX_LOCK (tiger); + if (tiger->decoder.initialized) { + int ret = tiger_renderer_create (&tiger->tr); + if (ret < 0) { + GST_WARNING_OBJECT (tiger, "failed to create tiger renderer: %d", + ret); + } else { + ret = + tiger_renderer_set_default_font_description (tiger->tr, + tiger->default_font_desc); + if (ret < 0) { + GST_WARNING_OBJECT (tiger, + "failed to set tiger default font description: %d", ret); + } + gst_kate_tiger_update_default_font_color (tiger); + gst_kate_tiger_update_default_background_color (tiger); + gst_kate_tiger_update_default_font_effect (tiger); + gst_kate_tiger_update_quality (tiger); + } + } + gst_segment_init (&tiger->video_segment, GST_FORMAT_UNDEFINED); + tiger->video_flushing = FALSE; + tiger->seen_header = FALSE; + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + break; + default: + break; + } + + return res; +} + +static gboolean +gst_kate_tiger_seek (GstKateTiger * tiger, GstPad * pad, GstEvent * event) +{ + GstFormat format; + gdouble rate; + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + gint64 cur, stop; + + gst_event_parse_seek (event, &rate, &format, &flags, &cur_type, &cur, + &stop_type, &stop); + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + tiger->video_flushing = TRUE; + gst_kate_util_decoder_base_set_flushing (&tiger->decoder, TRUE); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + + if (format == GST_FORMAT_TIME) { + /* if seeking in time, we can update tiger to remove any appropriate events */ + kate_float target; + switch (cur_type) { + case GST_SEEK_TYPE_SET: + target = cur / (float) GST_SECOND; + break; + case GST_SEEK_TYPE_CUR: + GST_WARNING_OBJECT (tiger, + "Seeking from the current segment, cannot work out target so flushing everything"); + target = (kate_float) 0; + break; + case GST_SEEK_TYPE_END: + GST_WARNING_OBJECT (tiger, + "Seeking from the end, cannot work out target so flushing everything"); + target = (kate_float) 0; + break; + default: + GST_WARNING_OBJECT (tiger, "Unexpected seek type"); + target = (kate_float) 0; + break; + } + GST_INFO_OBJECT (tiger, "Seeking in time to %f", target); + GST_KATE_TIGER_MUTEX_LOCK (tiger); + tiger_renderer_seek (tiger->tr, target); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + } + + /* forward to both sinks */ + gst_event_ref (event); + if (gst_pad_push_event (tiger->videosinkpad, event)) { + int ret = gst_pad_push_event (tiger->katesinkpad, event); + if (ret) { + return TRUE; + } else { + return FALSE; + } + } else { + gst_event_unref (event); + return FALSE; + } +} + +static gboolean +gst_kate_tiger_source_event (GstPad * pad, GstEvent * event) +{ + GstKateTiger *tiger = + (GstKateTiger *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + g_return_val_if_fail (tiger != NULL, FALSE); + + GST_LOG_OBJECT (tiger, "Event on source pad: %s", + GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + GST_INFO_OBJECT (tiger, "Seek on source pad"); + res = gst_kate_tiger_seek (tiger, pad, event); + break; + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (tiger); + + return res; +} + +static gboolean +gst_kate_tiger_handle_kate_event (GstPad * pad, GstEvent * event) +{ + GstKateTiger *tiger = + (GstKateTiger *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + GST_INFO_OBJECT (tiger, "New segment on Kate pad"); + GST_KATE_TIGER_MUTEX_LOCK (tiger); + g_cond_broadcast (tiger->cond); + gst_kate_util_decoder_base_new_segment_event (&tiger->decoder, event); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + gst_event_unref (event); + break; + case GST_EVENT_FLUSH_START: + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_kate_util_decoder_base_set_flushing (&tiger->decoder, TRUE); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + g_cond_broadcast (tiger->cond); + gst_event_unref (event); + break; + case GST_EVENT_FLUSH_STOP: + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_kate_util_decoder_base_set_flushing (&tiger->decoder, FALSE); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + gst_event_unref (event); + break; + case GST_EVENT_EOS: + /* we ignore this, it just means we don't have anymore Kate packets, but + the Tiger renderer will still draw (if appropriate) on incoming video */ + GST_INFO_OBJECT (tiger, "EOS on Kate pad"); + GST_KATE_TIGER_MUTEX_LOCK (tiger); + g_cond_broadcast (tiger->cond); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + gst_event_unref (event); + break; + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (tiger); + + return res; +} + +static gboolean +gst_kate_tiger_kate_event (GstPad * pad, GstEvent * event) +{ + GstKateTiger *tiger = + (GstKateTiger *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + g_return_val_if_fail (tiger != NULL, FALSE); + + GST_LOG_OBJECT (tiger, "Event on Kate pad: %s", GST_EVENT_TYPE_NAME (event)); + + /* Delay events till we've set caps */ + if (gst_kate_util_decoder_base_queue_event (&tiger->decoder, event, + &gst_kate_tiger_handle_kate_event, pad)) { + gst_object_unref (tiger); + return TRUE; + } + + res = gst_kate_tiger_handle_kate_event (pad, event); + + gst_object_unref (tiger); + + return res; +} + +static gboolean +gst_kate_tiger_handle_video_event (GstPad * pad, GstEvent * event) +{ + GstKateTiger *tiger = + (GstKateTiger *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + gboolean update; + gdouble rate, arate; + GstFormat format; + gint64 start, stop, time; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + + if (format == GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (tiger, "video pad segment:" + " Update %d, rate %g arate %g format %d start %" GST_TIME_FORMAT + " %" GST_TIME_FORMAT " position %" GST_TIME_FORMAT, + update, rate, arate, format, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop), GST_TIME_ARGS (time)); + + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_segment_set_newsegment_full (&tiger->video_segment, update, rate, + arate, format, start, stop, time); + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + } + + res = gst_pad_event_default (pad, event); + break; + } + case GST_EVENT_FLUSH_START: + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_segment_init (&tiger->video_segment, GST_FORMAT_UNDEFINED); + tiger->video_flushing = TRUE; + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + g_cond_broadcast (tiger->cond); + res = gst_pad_event_default (pad, event); + break; + case GST_EVENT_FLUSH_STOP: + GST_KATE_TIGER_MUTEX_LOCK (tiger); + gst_segment_init (&tiger->video_segment, GST_FORMAT_UNDEFINED); + tiger->video_flushing = FALSE; + GST_KATE_TIGER_MUTEX_UNLOCK (tiger); + res = gst_pad_event_default (pad, event); + break; + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (tiger); + + return res; +} + +static gboolean +gst_kate_tiger_video_event (GstPad * pad, GstEvent * event) +{ + GstKateTiger *tiger = + (GstKateTiger *) (gst_object_get_parent (GST_OBJECT (pad))); + gboolean res = TRUE; + + g_return_val_if_fail (tiger != NULL, FALSE); + + GST_INFO_OBJECT (tiger, "Event on video pad: %s", + GST_EVENT_TYPE_NAME (event)); + + res = gst_kate_tiger_handle_video_event (pad, event); + + gst_object_unref (tiger); + + return res; +} + +gboolean +gst_kate_tiger_kate_sink_query (GstPad * pad, GstQuery * query) +{ + GstKateTiger *tiger = GST_KATE_TIGER (gst_pad_get_parent (pad)); + gboolean res = gst_kate_decoder_base_sink_query (&tiger->decoder, + GST_ELEMENT_CAST (tiger), pad, query); + GST_INFO_OBJECT (tiger, "Query on Kate pad"); + gst_object_unref (tiger); + return res; +} diff --git a/ext/kate/gstkatetiger.h b/ext/kate/gstkatetiger.h new file mode 100644 index 0000000..d3880b3 --- /dev/null +++ b/ext/kate/gstkatetiger.h @@ -0,0 +1,112 @@ +/* + * GStreamer + * Copyright 2005 Thomas Vander Stichele + * Copyright 2005 Ronald S. Bultje + * Copyright 2008 Vincent Penquerc'h + * + * Permission is hereby granted, free of charge, to any person obtaining a + * copy of this software and associated documentation files (the "Software"), + * to deal in the Software without restriction, including without limitation + * the rights to use, copy, modify, merge, publish, distribute, sublicense, + * and/or sell copies of the Software, and to permit persons to whom the + * Software is furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + * DEALINGS IN THE SOFTWARE. + * + * Alternatively, the contents of this file may be used under the + * GNU Lesser General Public License Version 2.1 (the "LGPL"), in + * which case the following provisions apply instead of the ones + * mentioned above: + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_KATE_TIGER_H__ +#define __GST_KATE_TIGER_H__ + +#include +#include +#include +#include "gstkateutil.h" + +G_BEGIN_DECLS +/* #defines don't like whitespacey bits */ +#define GST_TYPE_KATE_TIGER \ + (gst_kate_tiger_get_type()) +#define GST_KATE_TIGER(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_KATE_TIGER,GstKateTiger)) +#define GST_KATE_TIGER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_KATE,GstKateTigerClass)) +#define GST_IS_KATE_TIGER(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_KATE_TIGER)) +#define GST_IS_KATE_TIGER_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_KATE_TIGER)) +typedef struct _GstKateTiger GstKateTiger; +typedef struct _GstKateTigerClass GstKateTigerClass; + +struct _GstKateTiger +{ + GstKateDecoderBase decoder; + + GstPad *katesinkpad; + GstPad *videosinkpad; + GstPad *srcpad; + + tiger_renderer *tr; + + gdouble quality; + gchar *default_font_desc; + gboolean default_font_effect; + gdouble default_font_effect_strength; + guchar default_font_r; + guchar default_font_g; + guchar default_font_b; + guchar default_font_a; + guchar default_background_r; + guchar default_background_g; + guchar default_background_b; + guchar default_background_a; + + gint video_width; + gint video_height; + gboolean swap_rgb; + + GMutex *mutex; + GCond *cond; + + GstSegment video_segment; + gboolean video_flushing; + gboolean seen_header; +}; + +struct _GstKateTigerClass +{ + GstElementClass parent_class; +}; + +GType gst_kate_tiger_get_type (void); + +G_END_DECLS +#endif /* __GST_KATE_TIGER_H__ */ diff --git a/ext/kate/gstkateutil.c b/ext/kate/gstkateutil.c new file mode 100644 index 0000000..46ae19b --- /dev/null +++ b/ext/kate/gstkateutil.c @@ -0,0 +1,591 @@ +/* GStreamer + * Copyright (C) 2008 Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* FIXME: shouldn't all this GstKateDecoderBase stuff really be a base class? */ + +#ifdef HAVE_CONFIG_H +# include "config.h" +#endif + +#include +#include +#include "gstkate.h" +#include "gstkateutil.h" + +GST_DEBUG_CATEGORY_EXTERN (gst_kateutil_debug); +#define GST_CAT_DEFAULT gst_kateutil_debug + +static void gst_kate_util_decoder_base_free_event_queue (GstKateDecoderBase * + decoder); + +GstCaps * +gst_kate_util_set_header_on_caps (GstElement * element, GstCaps * caps, + GList * headers) +{ + GstStructure *structure; + GValue array = { 0 }; + + GST_LOG_OBJECT (element, "caps: %" GST_PTR_FORMAT, caps); + + if (G_UNLIKELY (!caps)) + return NULL; + if (G_UNLIKELY (!headers)) + return NULL; + + caps = gst_caps_make_writable (caps); + structure = gst_caps_get_structure (caps, 0); + + g_value_init (&array, GST_TYPE_ARRAY); + + while (headers) { + GValue value = { 0 }; + GstBuffer *buffer = headers->data; + g_assert (buffer); + GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_IN_CAPS); + g_value_init (&value, GST_TYPE_BUFFER); + /* as in theoraenc, we need to copy to avoid circular references */ + buffer = gst_buffer_copy (buffer); + gst_value_set_buffer (&value, buffer); + gst_buffer_unref (buffer); + gst_value_array_append_value (&array, &value); + g_value_unset (&value); + headers = headers->next; + } + + gst_structure_set_value (structure, "streamheader", &array); + g_value_unset (&array); + GST_LOG_OBJECT (element, "here are the newly set caps: %" GST_PTR_FORMAT, + caps); + + return caps; +} + +void +gst_kate_util_install_decoder_base_properties (GObjectClass * gobject_class) +{ + g_object_class_install_property (gobject_class, ARG_DEC_BASE_LANGUAGE, + g_param_spec_string ("language", "Language", "The language of the stream", + "", G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, ARG_DEC_BASE_CATEGORY, + g_param_spec_string ("category", "Category", "The category of the stream", + "", G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + ARG_DEC_BASE_ORIGINAL_CANVAS_WIDTH, + g_param_spec_int ("original-canvas-width", + "Original canvas width (0 is unspecified)", + "The canvas width this stream was authored for", 0, G_MAXINT, 0, + G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, + ARG_DEC_BASE_ORIGINAL_CANVAS_HEIGHT, + g_param_spec_int ("original-canvas-height", "Original canvas height", + "The canvas height this stream was authored for (0 is unspecified)", + 0, G_MAXINT, 0, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS)); +} + +void +gst_kate_util_decode_base_init (GstKateDecoderBase * decoder, + gboolean delay_events) +{ + if (G_UNLIKELY (!decoder)) + return; + + decoder->language = NULL; + decoder->category = NULL; + decoder->original_canvas_width = 0; + decoder->original_canvas_height = 0; + decoder->tags = NULL; + decoder->initialized = FALSE; + decoder->delay_events = delay_events; + decoder->event_queue = NULL; +} + +static void +gst_kate_util_decode_base_reset (GstKateDecoderBase * decoder) +{ + g_free (decoder->language); + decoder->language = NULL; + g_free (decoder->category); + decoder->category = NULL; + if (decoder->tags) { + gst_tag_list_free (decoder->tags); + decoder->tags = NULL; + } + decoder->original_canvas_width = 0; + decoder->original_canvas_height = 0; + if (decoder->event_queue) { + gst_kate_util_decoder_base_free_event_queue (decoder); + } + decoder->initialized = FALSE; +} + +gboolean +gst_kate_util_decoder_base_queue_event (GstKateDecoderBase * decoder, + GstEvent * event, gboolean (*handler) (GstPad *, GstEvent *), GstPad * pad) +{ + gboolean can_be_queued; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + case GST_EVENT_FLUSH_STOP: + case GST_EVENT_EOS: + can_be_queued = FALSE; + break; + default: + can_be_queued = TRUE; + break; + } + + if (decoder->delay_events && can_be_queued) { + GstKateDecoderBaseQueuedEvent *item; + GST_DEBUG_OBJECT (decoder, "We have to delay the event"); + item = g_slice_new (GstKateDecoderBaseQueuedEvent); + if (item) { + item->event = event; + item->pad = pad; + item->handler = handler; + g_queue_push_tail (decoder->event_queue, item); + return TRUE; + } else { + return FALSE; + } + } else { + return FALSE; + } +} + +static void +gst_kate_util_decoder_base_free_event_queue (GstKateDecoderBase * decoder) +{ + while (decoder->event_queue->length) { + GstKateDecoderBaseQueuedEvent *item = (GstKateDecoderBaseQueuedEvent *) + g_queue_pop_head (decoder->event_queue); + g_slice_free (GstKateDecoderBaseQueuedEvent, item); + } + g_queue_free (decoder->event_queue); + decoder->event_queue = NULL; +} + +static void +gst_kate_util_decoder_base_drain_event_queue (GstKateDecoderBase * decoder) +{ + decoder->delay_events = FALSE; + + if (decoder->event_queue->length == 0) + return; + + GST_DEBUG_OBJECT (decoder, "We can now drain all events!"); + while (decoder->event_queue->length) { + GstKateDecoderBaseQueuedEvent *item = (GstKateDecoderBaseQueuedEvent *) + g_queue_pop_head (decoder->event_queue); + (*item->handler) (item->pad, item->event); + g_slice_free (GstKateDecoderBaseQueuedEvent, item); + } +} + +gboolean +gst_kate_util_decoder_base_get_property (GstKateDecoderBase * decoder, + GObject * object, guint prop_id, GValue * value, GParamSpec * pspec) +{ + gboolean res = TRUE; + switch (prop_id) { + case ARG_DEC_BASE_LANGUAGE: + g_value_set_string (value, decoder->language); + break; + case ARG_DEC_BASE_CATEGORY: + g_value_set_string (value, decoder->category); + break; + case ARG_DEC_BASE_ORIGINAL_CANVAS_WIDTH: + g_value_set_int (value, decoder->original_canvas_width); + break; + case ARG_DEC_BASE_ORIGINAL_CANVAS_HEIGHT: + g_value_set_int (value, decoder->original_canvas_height); + break; + default: + res = FALSE; + break; + } + return res; +} + +GstFlowReturn +gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstBuffer * buf, GstPad * srcpad, + GstPad * tagpad, GstCaps ** src_caps, const kate_event ** ev) +{ + kate_packet kp; + int ret; + GstFlowReturn rflow = GST_FLOW_OK; + gboolean is_header; + + GST_DEBUG_OBJECT (element, "got kate packet, %u bytes, type %02x", + GST_BUFFER_SIZE (buf), + GST_BUFFER_SIZE (buf) == 0 ? -1 : GST_BUFFER_DATA (buf)[0]); + + is_header = GST_BUFFER_SIZE (buf) > 0 && (GST_BUFFER_DATA (buf)[0] & 0x80); + + if (!is_header && decoder->tags) { + /* after we've processed headers, send any tags before processing the data packet */ + GST_DEBUG_OBJECT (element, "Not a header, sending tags for pad %s:%s", + GST_DEBUG_PAD_NAME (tagpad)); + gst_element_found_tags_for_pad (element, tagpad, decoder->tags); + decoder->tags = NULL; + } + + kate_packet_wrap (&kp, GST_BUFFER_SIZE (buf), GST_BUFFER_DATA (buf)); + ret = kate_high_decode_packetin (&decoder->k, &kp, ev); + if (G_UNLIKELY (ret < 0)) { + GST_ELEMENT_ERROR (element, STREAM, DECODE, (NULL), + ("Failed to decode Kate packet: %d", ret)); + return GST_FLOW_ERROR; + } + + if (G_UNLIKELY (ret > 0)) { + GST_DEBUG_OBJECT (element, + "kate_high_decode_packetin has received EOS packet"); + } + + /* headers may be interesting to retrieve information from */ + if (G_UNLIKELY (is_header)) { + switch (GST_BUFFER_DATA (buf)[0]) { + case 0x80: /* ID header */ + GST_INFO_OBJECT (element, "Parsed ID header: language %s, category %s", + decoder->k.ki->language, decoder->k.ki->category); + if (src_caps) { + if (*src_caps) { + gst_caps_unref (*src_caps); + *src_caps = NULL; + } + if (strcmp (decoder->k.ki->category, "K-SPU") == 0 || + strcmp (decoder->k.ki->category, "spu-subtitles") == 0) { + *src_caps = gst_caps_new_simple ("video/x-dvd-subpicture", NULL); + } else if (decoder->k.ki->text_markup_type == kate_markup_none) { + *src_caps = gst_caps_new_simple ("text/plain", NULL); + } else { + *src_caps = gst_caps_new_simple ("text/x-pango-markup", NULL); + } + GST_INFO_OBJECT (srcpad, "Setting caps: %" GST_PTR_FORMAT, *src_caps); + if (!gst_pad_set_caps (srcpad, *src_caps)) { + GST_ERROR_OBJECT (srcpad, "Failed to set caps %" GST_PTR_FORMAT, + *src_caps); + } + } + if (decoder->k.ki->language && *decoder->k.ki->language) { + GstTagList *old = decoder->tags, *tags = gst_tag_list_new (); + if (tags) { + gchar *lang_code; + + /* en_GB -> en */ + lang_code = g_ascii_strdown (decoder->k.ki->language, -1); + g_strdelimit (lang_code, NULL, '\0'); + gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, GST_TAG_LANGUAGE_CODE, + lang_code, NULL); + g_free (lang_code); + /* TODO: category - where should it go ? */ + decoder->tags = + gst_tag_list_merge (decoder->tags, tags, GST_TAG_MERGE_REPLACE); + gst_tag_list_free (tags); + if (old) + gst_tag_list_free (old); + } + } + + /* update properties */ + if (decoder->language) + g_free (decoder->language); + decoder->language = g_strdup (decoder->k.ki->language); + if (decoder->category) + g_free (decoder->category); + decoder->category = g_strdup (decoder->k.ki->category); + decoder->original_canvas_width = decoder->k.ki->original_canvas_width; + decoder->original_canvas_height = decoder->k.ki->original_canvas_height; + + /* we can now send away any event we've delayed, as the src pad now has caps */ + gst_kate_util_decoder_base_drain_event_queue (decoder); + + break; + + case 0x81: /* Vorbis comments header */ + GST_INFO_OBJECT (element, "Parsed comments header"); + { + gchar *encoder = NULL; + GstTagList *old = decoder->tags, *list = + gst_tag_list_from_vorbiscomment_buffer (buf, + (const guint8 *) "\201kate\0\0\0\0", 9, &encoder); + if (list) { + decoder->tags = + gst_tag_list_merge (decoder->tags, list, GST_TAG_MERGE_REPLACE); + gst_tag_list_free (list); + } + + if (!decoder->tags) { + GST_ERROR_OBJECT (element, "failed to decode comment header"); + decoder->tags = gst_tag_list_new (); + } + if (encoder) { + gst_tag_list_add (decoder->tags, GST_TAG_MERGE_REPLACE, + GST_TAG_ENCODER, encoder, NULL); + g_free (encoder); + } + gst_tag_list_add (decoder->tags, GST_TAG_MERGE_REPLACE, + GST_TAG_SUBTITLE_CODEC, "Kate", NULL); + gst_tag_list_add (decoder->tags, GST_TAG_MERGE_REPLACE, + GST_TAG_ENCODER_VERSION, decoder->k.ki->bitstream_version_major, + NULL); + + if (old) + gst_tag_list_free (old); + + if (decoder->initialized) { + gst_element_found_tags_for_pad (element, tagpad, decoder->tags); + decoder->tags = NULL; + } else { + /* Only push them as messages for the time being. * + * They will be pushed on the pad once the decoder is initialized */ + gst_element_post_message (element, + gst_message_new_tag (GST_OBJECT (element), + gst_tag_list_copy (decoder->tags))); + } + } + break; + + default: + break; + } + } + + return rflow; +} + +GstStateChangeReturn +gst_kate_decoder_base_change_state (GstKateDecoderBase * decoder, + GstElement * element, GstElementClass * parent_class, + GstStateChange transition) +{ + GstStateChangeReturn res; + int ret; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_DEBUG_OBJECT (element, "READY -> PAUSED, initializing kate state"); + ret = kate_high_decode_init (&decoder->k); + if (ret < 0) { + GST_WARNING_OBJECT (element, "failed to initialize kate state: %d", + ret); + } + gst_segment_init (&decoder->kate_segment, GST_FORMAT_UNDEFINED); + decoder->kate_flushing = FALSE; + decoder->initialized = TRUE; + decoder->event_queue = g_queue_new (); + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + default: + break; + } + + res = parent_class->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_READY: + GST_DEBUG_OBJECT (element, "PAUSED -> READY, clearing kate state"); + if (decoder->initialized) { + kate_high_decode_clear (&decoder->k); + decoder->initialized = FALSE; + } + gst_segment_init (&decoder->kate_segment, GST_FORMAT_UNDEFINED); + decoder->kate_flushing = TRUE; + gst_kate_util_decode_base_reset (decoder); + break; + case GST_STATE_CHANGE_READY_TO_NULL: + gst_kate_util_decode_base_reset (decoder); + break; + default: + break; + } + + return res; +} + +void +gst_kate_util_decoder_base_set_flushing (GstKateDecoderBase * decoder, + gboolean flushing) +{ + decoder->kate_flushing = flushing; + gst_segment_init (&decoder->kate_segment, GST_FORMAT_UNDEFINED); +} + +void +gst_kate_util_decoder_base_new_segment_event (GstKateDecoderBase * decoder, + GstEvent * event) +{ + gboolean update; + gdouble rate; + GstFormat format; + gint64 start, stop, time; + gdouble arate; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, &format, + &start, &stop, &time); + GST_DEBUG_OBJECT (decoder, "kate pad segment:" + " Update %d, rate %g arate %g format %d start %" GST_TIME_FORMAT + " %" GST_TIME_FORMAT " position %" GST_TIME_FORMAT, + update, rate, arate, format, GST_TIME_ARGS (start), + GST_TIME_ARGS (stop), GST_TIME_ARGS (time)); + if (!update) { + /* Tiger uses this segment is used to remap the video running time to the + Kate running time. The sending of segment updates to keep streams in sync + does kinda rain on our parade though, and since we don't need these, + we just ignore those here */ + gst_segment_set_newsegment_full (&decoder->kate_segment, update, rate, + arate, format, start, stop, time); + } +} + +gboolean +gst_kate_util_decoder_base_update_segment (GstKateDecoderBase * decoder, + GstElement * element, GstBuffer * buf) +{ + gint64 clip_start = 0, clip_stop = 0; + gboolean in_seg; + + if (decoder->kate_flushing) { + GST_LOG_OBJECT (element, "Kate pad flushing, buffer ignored"); + return FALSE; + } + + if (G_LIKELY (GST_BUFFER_TIMESTAMP_IS_VALID (buf))) { + GstClockTime stop; + + if (G_LIKELY (GST_BUFFER_DURATION_IS_VALID (buf))) + stop = GST_BUFFER_TIMESTAMP (buf) + GST_BUFFER_DURATION (buf); + else + stop = GST_CLOCK_TIME_NONE; + + in_seg = gst_segment_clip (&decoder->kate_segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buf), stop, &clip_start, &clip_stop); + } else { + in_seg = TRUE; + } + + if (in_seg) { + if (GST_BUFFER_TIMESTAMP_IS_VALID (buf)) { + gst_segment_set_last_stop (&decoder->kate_segment, GST_FORMAT_TIME, + clip_start); + } + } else { + GST_INFO_OBJECT (element, "Kate buffer not in segment, ignored"); + } + + return in_seg; +} + +static GstClockTime +gst_kate_util_granule_time (kate_state * k, gint64 granulepos) +{ + if (G_UNLIKELY (granulepos == -1)) + return -1; + + return kate_granule_time (k->ki, granulepos) * GST_SECOND; +} + +/* +conversions on the sink: + - default is granules at num/den rate (subject to the granule shift) + - default -> time is possible + - bytes do not mean anything, packets can be any number of bytes, and we + have no way to know the number of bytes emitted without decoding +conversions on the source: + - nothing +*/ + +gboolean +gst_kate_decoder_base_convert (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstFormat src_fmt, gint64 src_val, + GstFormat * dest_fmt, gint64 * dest_val) +{ + gboolean res = FALSE; + + if (src_fmt == *dest_fmt) { + *dest_val = src_val; + return TRUE; + } + + if (!decoder->initialized) { + GST_WARNING_OBJECT (element, "not initialized yet"); + return FALSE; + } + + if (src_fmt == GST_FORMAT_BYTES || *dest_fmt == GST_FORMAT_BYTES) { + GST_WARNING_OBJECT (element, "unsupported format"); + return FALSE; + } + + switch (src_fmt) { + case GST_FORMAT_DEFAULT: + switch (*dest_fmt) { + case GST_FORMAT_TIME: + *dest_val = gst_kate_util_granule_time (&decoder->k, src_val); + res = TRUE; + break; + default: + res = FALSE; + break; + } + break; + default: + res = FALSE; + break; + } + + if (!res) { + GST_WARNING_OBJECT (element, "unsupported format"); + } + + return res; +} + +gboolean +gst_kate_decoder_base_sink_query (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstQuery * query) +{ + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_CONVERT: + { + GstFormat src_fmt, dest_fmt; + gint64 src_val, dest_val; + + gst_query_parse_convert (query, &src_fmt, &src_val, &dest_fmt, &dest_val); + if (!gst_kate_decoder_base_convert (decoder, element, pad, src_fmt, + src_val, &dest_fmt, &dest_val)) { + return gst_pad_query_default (pad, query); + } + gst_query_set_convert (query, src_fmt, src_val, dest_fmt, dest_val); + return TRUE; + } + default: + return gst_pad_query_default (pad, query); + } +} diff --git a/ext/kate/gstkateutil.h b/ext/kate/gstkateutil.h new file mode 100644 index 0000000..27b6f70 --- /dev/null +++ b/ext/kate/gstkateutil.h @@ -0,0 +1,103 @@ +/* -*- c-basic-offset: 2 -*- + * GStreamer + * Copyright (C) <2008> Vincent Penquerc'h + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_KATE_UTIL_H__ +#define __GST_KATE_UTIL_H__ + +#include +#include + +G_BEGIN_DECLS enum +{ + ARG_DEC_BASE_0, + ARG_DEC_BASE_LANGUAGE, + ARG_DEC_BASE_CATEGORY, + ARG_DEC_BASE_ORIGINAL_CANVAS_WIDTH, + ARG_DEC_BASE_ORIGINAL_CANVAS_HEIGHT, + DECODER_BASE_ARG_COUNT +}; + +typedef struct +{ + GstEvent * event; + gboolean (*handler)(GstPad *, GstEvent *); + GstPad *pad; +} GstKateDecoderBaseQueuedEvent; + +typedef struct +{ + GstElement element; + + kate_state k; + + gboolean initialized; + + GstTagList *tags; + + gchar *language; + gchar *category; + + gint original_canvas_width; + gint original_canvas_height; + + GstSegment kate_segment; + gboolean kate_flushing; + + gboolean delay_events; + GQueue *event_queue; +} GstKateDecoderBase; + +extern GstCaps *gst_kate_util_set_header_on_caps (GstElement * element, + GstCaps * caps, GList * headers); +extern void gst_kate_util_decode_base_init (GstKateDecoderBase * decoder, + gboolean delay_events); +extern void gst_kate_util_install_decoder_base_properties (GObjectClass * + gobject_class); +extern gboolean gst_kate_util_decoder_base_get_property (GstKateDecoderBase * + decoder, GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec); +extern GstFlowReturn +gst_kate_util_decoder_base_chain_kate_packet (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstBuffer * buffer, GstPad * srcpad, + GstPad * tagpad, GstCaps **src_caps, const kate_event ** ev); +extern void +gst_kate_util_decoder_base_set_flushing (GstKateDecoderBase * decoder, + gboolean flushing); +extern void +gst_kate_util_decoder_base_new_segment_event (GstKateDecoderBase * decoder, + GstEvent * event); +extern gboolean +gst_kate_util_decoder_base_update_segment (GstKateDecoderBase * decoder, + GstElement * element, GstBuffer * buf); +extern GstStateChangeReturn +gst_kate_decoder_base_change_state (GstKateDecoderBase * decoder, + GstElement * element, GstElementClass * parent_class, + GstStateChange transition); +extern gboolean gst_kate_decoder_base_convert (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstFormat src_fmt, gint64 src_val, + GstFormat * dest_fmt, gint64 * dest_val); +extern gboolean gst_kate_decoder_base_sink_query (GstKateDecoderBase * decoder, + GstElement * element, GstPad * pad, GstQuery * query); +extern gboolean +gst_kate_util_decoder_base_queue_event (GstKateDecoderBase * decoder, GstEvent * event, gboolean (*handler)(GstPad *, GstEvent *), GstPad * pad); + +G_END_DECLS +#endif /* __GST_KATE_UTIL_H__ */ diff --git a/ext/ladspa/Makefile.am b/ext/ladspa/Makefile.am new file mode 100644 index 0000000..353ec5e --- /dev/null +++ b/ext/ladspa/Makefile.am @@ -0,0 +1,15 @@ +plugin_LTLIBRARIES = libgstladspa.la + +libgstladspa_la_SOURCES = gstladspa.c +libgstladspa_la_CFLAGS = \ + -I$(top_srcdir)/gst-libs \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(LRDF_CFLAGS) +libgstladspa_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_CONTROLLER_LIBS) $(LIBM) $(LRDF_LIBS) +libgstladspa_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstladspa_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstladspa.h diff --git a/ext/ladspa/Makefile.in b/ext/ladspa/Makefile.in new file mode 100644 index 0000000..d6513d4 --- /dev/null +++ b/ext/ladspa/Makefile.in @@ -0,0 +1,864 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/ladspa +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstladspa_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstladspa_la_OBJECTS = libgstladspa_la-gstladspa.lo +libgstladspa_la_OBJECTS = $(am_libgstladspa_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstladspa_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstladspa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstladspa_la_CFLAGS) $(CFLAGS) \ + $(libgstladspa_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstladspa_la_SOURCES) +DIST_SOURCES = $(libgstladspa_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstladspa.la +libgstladspa_la_SOURCES = gstladspa.c +libgstladspa_la_CFLAGS = \ + -I$(top_srcdir)/gst-libs \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(LRDF_CFLAGS) + +libgstladspa_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_CONTROLLER_LIBS) $(LIBM) $(LRDF_LIBS) + +libgstladspa_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstladspa_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstladspa.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/ladspa/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/ladspa/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstladspa.la: $(libgstladspa_la_OBJECTS) $(libgstladspa_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstladspa_la_LINK) -rpath $(plugindir) $(libgstladspa_la_OBJECTS) $(libgstladspa_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstladspa_la-gstladspa.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstladspa_la-gstladspa.lo: gstladspa.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstladspa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstladspa_la_CFLAGS) $(CFLAGS) -MT libgstladspa_la-gstladspa.lo -MD -MP -MF $(DEPDIR)/libgstladspa_la-gstladspa.Tpo -c -o libgstladspa_la-gstladspa.lo `test -f 'gstladspa.c' || echo '$(srcdir)/'`gstladspa.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstladspa_la-gstladspa.Tpo $(DEPDIR)/libgstladspa_la-gstladspa.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstladspa.c' object='libgstladspa_la-gstladspa.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstladspa_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstladspa_la_CFLAGS) $(CFLAGS) -c -o libgstladspa_la-gstladspa.lo `test -f 'gstladspa.c' || echo '$(srcdir)/'`gstladspa.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/ladspa/gstladspa.c b/ext/ladspa/gstladspa.c new file mode 100644 index 0000000..52a8d5b --- /dev/null +++ b/ext/ladspa/gstladspa.c @@ -0,0 +1,895 @@ +/* GStreamer + * Copyright (C) 1999 Erik Walthinsen + * 2001 Steve Baker + * 2003 Andy Wingo + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-ladspa + * @short_description: bridge for ladspa (Linux Audio Developer's Simple Plugin API) + * + * The ladspa (Linux Audio Developer's Simple Plugin API) element is a bridge + * for plugins using the ladspa API. + * It scans all installed ladspa plugins and registers them as gstreamer + * elements. If available it can also parse lrdf files and use the metadata for + * element classification. + */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include + +#include "gstladspa.h" +#include /* main ladspa sdk include file */ +#ifdef HAVE_LRDF +#include +#endif + +/* 1.0 and the 1.1 preliminary headers don't define a version, but 1.1 final + does */ +#ifndef LADSPA_VERSION +#define LADSPA_VERSION "1.0" +#endif + +#define GST_LADSPA_DEFAULT_PATH \ + "/usr/lib/ladspa" G_SEARCHPATH_SEPARATOR_S \ + "/usr/local/lib/ladspa" G_SEARCHPATH_SEPARATOR_S \ + LIBDIR "/ladspa" + +static void gst_ladspa_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_ladspa_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_ladspa_setup (GstSignalProcessor * sigproc, GstCaps * caps); +static gboolean gst_ladspa_start (GstSignalProcessor * sigproc); +static void gst_ladspa_stop (GstSignalProcessor * sigproc); +static void gst_ladspa_cleanup (GstSignalProcessor * sigproc); +static void gst_ladspa_process (GstSignalProcessor * sigproc, guint nframes); + +static GstSignalProcessorClass *parent_class; + +static GstPlugin *ladspa_plugin; + +GST_DEBUG_CATEGORY_STATIC (ladspa_debug); +#define GST_CAT_DEFAULT ladspa_debug + +static GQuark descriptor_quark = 0; + + +static void +gst_ladspa_base_init (gpointer g_class) +{ + GstLADSPAClass *klass = (GstLADSPAClass *) g_class; + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + GstSignalProcessorClass *gsp_class = GST_SIGNAL_PROCESSOR_CLASS (g_class); + LADSPA_Descriptor *desc; + guint j, audio_in_count, audio_out_count, control_in_count, control_out_count; + const gchar *klass_tags; + gchar *longname, *author; +#ifdef HAVE_LRDF + gchar *uri; +#endif + gchar *extra_klass_tags = NULL; + + GST_DEBUG ("base_init %p", g_class); + + desc = (LADSPA_Descriptor *) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), + descriptor_quark); + g_assert (desc); + klass->descriptor = desc; + + /* pad templates */ + gsp_class->num_audio_in = 0; + gsp_class->num_audio_out = 0; + /* properties */ + gsp_class->num_control_in = 0; + gsp_class->num_control_out = 0; + + for (j = 0; j < desc->PortCount; j++) { + LADSPA_PortDescriptor p = desc->PortDescriptors[j]; + + if (LADSPA_IS_PORT_AUDIO (p)) { + gchar *name = g_strdup ((gchar *) desc->PortNames[j]); + + /* FIXME: group stereo pairs into a stereo pad + * ladspa-fx have "XXX (Left)" and "XXX (Right)" + * where XXX={In,Input,Out,Output} + */ + + GST_DEBUG ("LADSPA port name: \"%s\"", name); + /* replaces all spaces with underscores, and then remaining special chars + * with '-' + * FIXME: why, pads can have any name + */ + g_strdelimit (name, " ", '_'); + g_strcanon (name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "_-><=", '-'); + GST_DEBUG ("GStreamer pad name: \"%s\"", name); + + if (LADSPA_IS_PORT_INPUT (p)) + gst_signal_processor_class_add_pad_template (gsp_class, name, + GST_PAD_SINK, gsp_class->num_audio_in++, 1); + else + gst_signal_processor_class_add_pad_template (gsp_class, name, + GST_PAD_SRC, gsp_class->num_audio_out++, 1); + + g_free (name); + } else if (LADSPA_IS_PORT_CONTROL (p)) { + if (LADSPA_IS_PORT_INPUT (p)) + gsp_class->num_control_in++; + else + gsp_class->num_control_out++; + } + } + + longname = g_locale_to_utf8 (desc->Name, -1, NULL, NULL, NULL); + if (!longname) + longname = g_strdup ("no description available"); + author = g_locale_to_utf8 (desc->Maker, -1, NULL, NULL, NULL); + if (!author) + author = g_strdup ("no author available"); + +#ifdef HAVE_LRDF + /* libldrf support, we want to get extra class information here */ + uri = g_strdup_printf (LADSPA_BASE "%ld", desc->UniqueID); + if (uri) { + lrdf_statement query = { 0, }; + lrdf_uris *uris; + gchar *str, *base_type = NULL; + + GST_DEBUG ("uri (id=%d) : %s", desc->UniqueID, uri); + /* we can take this directly from 'desc', keep this example for future + attributes. + if ((str = lrdf_get_setting_metadata (uri, "title"))) { + GST_DEBUG ("title : %s", str); + } + if ((str = lrdf_get_setting_metadata (uri, "creator"))) { + GST_DEBUG ("creator : %s", str); + } + */ + + /* get the rdf:type for this plugin */ + query.subject = uri; + query.predicate = (char *) RDF_BASE "type"; + query.object = (char *) "?"; + query.next = NULL; + uris = lrdf_match_multi (&query); + if (uris) { + if (uris->count == 1) { + base_type = g_strdup (uris->items[0]); + GST_DEBUG ("base_type : %s", base_type); + } + lrdf_free_uris (uris); + } + + /* query taxonomy */ + if (base_type) { + uris = lrdf_get_all_superclasses (base_type); + if (uris) { + guint32 j; + + for (j = 0; j < uris->count; j++) { + GST_LOG ("parent_type_uri : %s", uris->items[j]); + if ((str = lrdf_get_label (uris->items[j]))) { + GST_DEBUG ("parent_type_label : %s", str); + if (extra_klass_tags) { + gchar *old_tags = extra_klass_tags; + extra_klass_tags = g_strconcat (extra_klass_tags, "/", str, NULL); + g_free (old_tags); + } else { + extra_klass_tags = g_strconcat ("/", str, NULL); + } + } + } + lrdf_free_uris (uris); + } + g_free (base_type); + } + + /* we can use this for the presets + uris = lrdf_get_setting_uris (desc->UniqueID); + if (uris) { + guint32 j; + + for (j = 0; j < uris->count; j++) { + GST_INFO ("setting_uri : %s", uris->items[j]); + if ((str = lrdf_get_label (uris->items[j]))) { + GST_INFO ("setting_label : %s", str); + } + } + lrdf_free_uris (uris); + } + */ + + } + g_free (uri); +#endif + + if (gsp_class->num_audio_in == 0) + klass_tags = "Source/Audio/LADSPA"; + else if (gsp_class->num_audio_out == 0) { + if (gsp_class->num_control_out == 0) + klass_tags = "Sink/Audio/LADSPA"; + else + klass_tags = "Sink/Analyzer/Audio/LADSPA"; + } else + klass_tags = "Filter/Effect/Audio/LADSPA"; + +#ifdef HAVE_LRDF + if (extra_klass_tags) { + char *s = g_strconcat (klass_tags, extra_klass_tags, NULL); + g_free (extra_klass_tags); + extra_klass_tags = s; + } +#endif + GST_INFO ("tags : %s", klass_tags); + gst_element_class_set_details_simple (element_class, longname, + extra_klass_tags ? extra_klass_tags : klass_tags, longname, author); + g_free (longname); + g_free (author); + g_free (extra_klass_tags); + + klass->audio_in_portnums = g_new0 (gint, gsp_class->num_audio_in); + klass->audio_out_portnums = g_new0 (gint, gsp_class->num_audio_out); + klass->control_in_portnums = g_new0 (gint, gsp_class->num_control_in); + klass->control_out_portnums = g_new0 (gint, gsp_class->num_control_out); + + audio_in_count = audio_out_count = control_in_count = control_out_count = 0; + + for (j = 0; j < desc->PortCount; j++) { + LADSPA_PortDescriptor p = desc->PortDescriptors[j]; + + if (LADSPA_IS_PORT_AUDIO (p)) { + if (LADSPA_IS_PORT_INPUT (p)) + klass->audio_in_portnums[audio_in_count++] = j; + else + klass->audio_out_portnums[audio_out_count++] = j; + } else if (LADSPA_IS_PORT_CONTROL (p)) { + if (LADSPA_IS_PORT_INPUT (p)) + klass->control_in_portnums[control_in_count++] = j; + else + klass->control_out_portnums[control_out_count++] = j; + } + } + + g_assert (audio_in_count == gsp_class->num_audio_in); + g_assert (audio_out_count == gsp_class->num_audio_out); + g_assert (control_in_count == gsp_class->num_control_in); + g_assert (control_out_count == gsp_class->num_control_out); + + if (!LADSPA_IS_INPLACE_BROKEN (desc->Properties)) + GST_SIGNAL_PROCESSOR_CLASS_SET_CAN_PROCESS_IN_PLACE (klass); + + klass->descriptor = desc; +} + +static gchar * +gst_ladspa_class_get_param_name (GstLADSPAClass * klass, gint portnum) +{ + LADSPA_Descriptor *desc; + gchar *ret, *paren; + + desc = klass->descriptor; + + ret = g_strdup (desc->PortNames[portnum]); + + paren = g_strrstr (ret, " ("); + if (paren != NULL) + *paren = '\0'; + + /* this is the same thing that param_spec_* will do */ + g_strcanon (ret, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-", '-'); + /* satisfy glib2 (argname[0] must be [A-Za-z]) */ + if (!((ret[0] >= 'a' && ret[0] <= 'z') || (ret[0] >= 'A' && ret[0] <= 'Z'))) { + gchar *tempstr = ret; + + ret = g_strconcat ("param-", ret, NULL); + g_free (tempstr); + } + + /* check for duplicate property names */ + if (g_object_class_find_property (G_OBJECT_CLASS (klass), ret)) { + gint n = 1; + gchar *nret = g_strdup_printf ("%s-%d", ret, n++); + + while (g_object_class_find_property (G_OBJECT_CLASS (klass), nret)) { + g_free (nret); + nret = g_strdup_printf ("%s-%d", ret, n++); + } + g_free (ret); + ret = nret; + } + + GST_DEBUG ("built property name '%s' from port name '%s'", ret, + desc->PortNames[portnum]); + + return ret; +} + +static GParamSpec * +gst_ladspa_class_get_param_spec (GstLADSPAClass * klass, gint portnum) +{ + LADSPA_Descriptor *desc; + GParamSpec *ret; + gchar *name; + gint hintdesc, perms; + gfloat lower, upper, def; + + desc = klass->descriptor; + + name = gst_ladspa_class_get_param_name (klass, portnum); + perms = G_PARAM_READABLE; + if (LADSPA_IS_PORT_INPUT (desc->PortDescriptors[portnum])) + perms |= G_PARAM_WRITABLE | G_PARAM_CONSTRUCT; + if (LADSPA_IS_PORT_CONTROL (desc->PortDescriptors[portnum])) + perms |= GST_PARAM_CONTROLLABLE; + + /* short name for hint descriptor */ + hintdesc = desc->PortRangeHints[portnum].HintDescriptor; + + if (LADSPA_IS_HINT_TOGGLED (hintdesc)) { + ret = g_param_spec_boolean (name, name, name, FALSE, perms); + g_free (name); + return ret; + } + + if (LADSPA_IS_HINT_BOUNDED_BELOW (hintdesc)) + lower = desc->PortRangeHints[portnum].LowerBound; + else + lower = -G_MAXFLOAT; + + if (LADSPA_IS_HINT_BOUNDED_ABOVE (hintdesc)) + upper = desc->PortRangeHints[portnum].UpperBound; + else + upper = G_MAXFLOAT; + + if (LADSPA_IS_HINT_SAMPLE_RATE (hintdesc)) { + /* FIXME! */ + lower *= 44100; + upper *= 44100; + } + + if (LADSPA_IS_HINT_INTEGER (hintdesc)) { + lower = CLAMP (lower, G_MININT, G_MAXINT); + upper = CLAMP (upper, G_MININT, G_MAXINT); + } + + /* default to lower bound */ + def = lower; + +#ifdef LADSPA_IS_HINT_HAS_DEFAULT + if (LADSPA_IS_HINT_HAS_DEFAULT (hintdesc)) { + if (LADSPA_IS_HINT_DEFAULT_0 (hintdesc)) + def = 0.0; + else if (LADSPA_IS_HINT_DEFAULT_1 (hintdesc)) + def = 1.0; + else if (LADSPA_IS_HINT_DEFAULT_100 (hintdesc)) + def = 100.0; + else if (LADSPA_IS_HINT_DEFAULT_440 (hintdesc)) + def = 440.0; + if (LADSPA_IS_HINT_DEFAULT_MINIMUM (hintdesc)) + def = lower; + else if (LADSPA_IS_HINT_DEFAULT_MAXIMUM (hintdesc)) + def = upper; + else if (LADSPA_IS_HINT_LOGARITHMIC (hintdesc)) { + if (LADSPA_IS_HINT_DEFAULT_LOW (hintdesc)) + def = exp (0.75 * log (lower) + 0.25 * log (upper)); + else if (LADSPA_IS_HINT_DEFAULT_MIDDLE (hintdesc)) + def = exp (0.5 * log (lower) + 0.5 * log (upper)); + else if (LADSPA_IS_HINT_DEFAULT_HIGH (hintdesc)) + def = exp (0.25 * log (lower) + 0.75 * log (upper)); + } else { + if (LADSPA_IS_HINT_DEFAULT_LOW (hintdesc)) + def = 0.75 * lower + 0.25 * upper; + else if (LADSPA_IS_HINT_DEFAULT_MIDDLE (hintdesc)) + def = 0.5 * lower + 0.5 * upper; + else if (LADSPA_IS_HINT_DEFAULT_HIGH (hintdesc)) + def = 0.25 * lower + 0.75 * upper; + } + } +#endif /* LADSPA_IS_HINT_HAS_DEFAULT */ + + if (lower > upper) { + gfloat tmp; + + /* silently swap */ + tmp = lower; + lower = upper; + upper = tmp; + } + + def = CLAMP (def, lower, upper); + + if (LADSPA_IS_HINT_INTEGER (hintdesc)) { + ret = g_param_spec_int (name, name, name, lower, upper, def, perms); + } else { + ret = g_param_spec_float (name, name, name, lower, upper, def, perms); + } + + g_free (name); + + return ret; +} + +static void +gst_ladspa_class_init (GstLADSPAClass * klass, LADSPA_Descriptor * desc) +{ + GObjectClass *gobject_class; + GstSignalProcessorClass *gsp_class; + GParamSpec *p; + gint i, ix; + + GST_DEBUG ("class_init %p", klass); + + gobject_class = (GObjectClass *) klass; + gobject_class->set_property = gst_ladspa_set_property; + gobject_class->get_property = gst_ladspa_get_property; + + gsp_class = GST_SIGNAL_PROCESSOR_CLASS (klass); + gsp_class->setup = gst_ladspa_setup; + gsp_class->start = gst_ladspa_start; + gsp_class->stop = gst_ladspa_stop; + gsp_class->cleanup = gst_ladspa_cleanup; + gsp_class->process = gst_ladspa_process; + + /* properties have an offset of 1 */ + ix = 1; + + /* register properties */ + + for (i = 0; i < gsp_class->num_control_in; i++, ix++) { + p = gst_ladspa_class_get_param_spec (klass, klass->control_in_portnums[i]); + g_object_class_install_property (gobject_class, ix, p); + } + + for (i = 0; i < gsp_class->num_control_out; i++, ix++) { + p = gst_ladspa_class_get_param_spec (klass, klass->control_out_portnums[i]); + g_object_class_install_property (gobject_class, ix, p); + } +} + +static void +gst_ladspa_init (GstLADSPA * ladspa, GstLADSPAClass * klass) +{ + ladspa->descriptor = klass->descriptor; + ladspa->activated = FALSE; + ladspa->inplace_broken = + LADSPA_IS_INPLACE_BROKEN (ladspa->descriptor->Properties); +} + +static void +gst_ladspa_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * pspec) +{ + GstSignalProcessor *gsp; + GstSignalProcessorClass *gsp_class; + + gsp = GST_SIGNAL_PROCESSOR (object); + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); + + /* remember, properties have an offset of 1 */ + prop_id--; + + /* only input ports */ + g_return_if_fail (prop_id < gsp_class->num_control_in); + + /* now see what type it is */ + switch (pspec->value_type) { + case G_TYPE_BOOLEAN: + gsp->control_in[prop_id] = g_value_get_boolean (value) ? 1.f : 0.f; + break; + case G_TYPE_INT: + gsp->control_in[prop_id] = g_value_get_int (value); + break; + case G_TYPE_FLOAT: + gsp->control_in[prop_id] = g_value_get_float (value); + break; + default: + g_assert_not_reached (); + } +} + +static void +gst_ladspa_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstSignalProcessor *gsp; + GstSignalProcessorClass *gsp_class; + gfloat *controls; + + gsp = GST_SIGNAL_PROCESSOR (object); + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); + + /* remember, properties have an offset of 1 */ + prop_id--; + + if (prop_id < gsp_class->num_control_in) { + controls = gsp->control_in; + } else if (prop_id < gsp_class->num_control_in + gsp_class->num_control_out) { + controls = gsp->control_out; + prop_id -= gsp_class->num_control_in; + } else { + g_return_if_reached (); + } + + /* now see what type it is */ + switch (pspec->value_type) { + case G_TYPE_BOOLEAN: + g_value_set_boolean (value, controls[prop_id] > 0.5); + break; + case G_TYPE_INT: + g_value_set_int (value, CLAMP (controls[prop_id], G_MININT, G_MAXINT)); + break; + case G_TYPE_FLOAT: + g_value_set_float (value, controls[prop_id]); + break; + default: + g_return_if_reached (); + } +} + +static gboolean +gst_ladspa_setup (GstSignalProcessor * gsp, GstCaps * caps) +{ + GstLADSPA *ladspa; + GstLADSPAClass *oclass; + GstSignalProcessorClass *gsp_class; + LADSPA_Descriptor *desc; + gint i; + + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (gsp); + ladspa = (GstLADSPA *) gsp; + oclass = (GstLADSPAClass *) gsp_class; + desc = ladspa->descriptor; + + g_return_val_if_fail (ladspa->handle == NULL, FALSE); + g_return_val_if_fail (ladspa->activated == FALSE, FALSE); + + GST_DEBUG_OBJECT (ladspa, "instantiating the plugin at %d Hz", + gsp->sample_rate); + + if (!(ladspa->handle = desc->instantiate (desc, gsp->sample_rate))) + goto no_instance; + + /* connect the control ports */ + for (i = 0; i < gsp_class->num_control_in; i++) + desc->connect_port (ladspa->handle, + oclass->control_in_portnums[i], &(gsp->control_in[i])); + for (i = 0; i < gsp_class->num_control_out; i++) + desc->connect_port (ladspa->handle, + oclass->control_out_portnums[i], &(gsp->control_out[i])); + + return TRUE; + +no_instance: + { + GST_WARNING_OBJECT (gsp, "could not create instance"); + return FALSE; + } +} + +static gboolean +gst_ladspa_start (GstSignalProcessor * gsp) +{ + GstLADSPA *ladspa; + LADSPA_Descriptor *desc; + + ladspa = (GstLADSPA *) gsp; + desc = ladspa->descriptor; + + g_return_val_if_fail (ladspa->activated == FALSE, FALSE); + g_return_val_if_fail (ladspa->handle != NULL, FALSE); + + GST_DEBUG_OBJECT (ladspa, "activating"); + + if (desc->activate) + desc->activate (ladspa->handle); + + ladspa->activated = TRUE; + + return TRUE; +} + +static void +gst_ladspa_stop (GstSignalProcessor * gsp) +{ + GstLADSPA *ladspa; + LADSPA_Descriptor *desc; + + ladspa = (GstLADSPA *) gsp; + desc = ladspa->descriptor; + + g_return_if_fail (ladspa->activated == TRUE); + g_return_if_fail (ladspa->handle != NULL); + + GST_DEBUG_OBJECT (ladspa, "deactivating"); + + if (desc->activate) + desc->activate (ladspa->handle); + + ladspa->activated = FALSE; +} + +static void +gst_ladspa_cleanup (GstSignalProcessor * gsp) +{ + GstLADSPA *ladspa; + LADSPA_Descriptor *desc; + + ladspa = (GstLADSPA *) gsp; + desc = ladspa->descriptor; + + g_return_if_fail (ladspa->activated == FALSE); + g_return_if_fail (ladspa->handle != NULL); + + GST_DEBUG_OBJECT (ladspa, "cleaning up"); + + if (desc->cleanup) + desc->cleanup (ladspa->handle); + + ladspa->handle = NULL; +} + +static void +gst_ladspa_process (GstSignalProcessor * gsp, guint nframes) +{ + GstSignalProcessorClass *gsp_class; + GstLADSPA *ladspa; + GstLADSPAClass *oclass; + LADSPA_Descriptor *desc; + guint i; + + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (gsp); + ladspa = (GstLADSPA *) gsp; + oclass = (GstLADSPAClass *) gsp_class; + desc = ladspa->descriptor; + + for (i = 0; i < gsp_class->num_audio_in; i++) + desc->connect_port (ladspa->handle, oclass->audio_in_portnums[i], + gsp->audio_in[i]); + for (i = 0; i < gsp_class->num_audio_out; i++) + desc->connect_port (ladspa->handle, oclass->audio_out_portnums[i], + gsp->audio_out[i]); + + desc->run (ladspa->handle, nframes); +} + +static void +ladspa_describe_plugin (LADSPA_Descriptor_Function descriptor_function) +{ + const LADSPA_Descriptor *desc; + gint i; + + /* walk through all the plugins in this pluginlibrary */ + i = 0; + while ((desc = descriptor_function (i++))) { + gchar *type_name; + GTypeInfo typeinfo = { + sizeof (GstLADSPAClass), + (GBaseInitFunc) gst_ladspa_base_init, + NULL, + (GClassInitFunc) gst_ladspa_class_init, + NULL, + desc, + sizeof (GstLADSPA), + 0, + (GInstanceInitFunc) gst_ladspa_init, + }; + GType type; + /* construct the type */ + type_name = g_strdup_printf ("ladspa-%s", desc->Label); + g_strcanon (type_name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-+", '-'); + /* if it's already registered, drop it */ + if (g_type_from_name (type_name)) + goto next; + + /* create the type now */ + type = + g_type_register_static (GST_TYPE_SIGNAL_PROCESSOR, type_name, &typeinfo, + 0); + /* FIXME: not needed anymore when we can add pad templates, etc in class_init + * as class_data contains the LADSPA_Descriptor too */ + g_type_set_qdata (type, descriptor_quark, (gpointer) desc); + + if (!gst_element_register (ladspa_plugin, type_name, GST_RANK_NONE, type)) + goto next; + + next: + g_free (type_name); + } +} + +#ifdef HAVE_LRDF +static gboolean +ladspa_rdf_directory_search (const char *dir_name) +{ + GDir *dir; + gchar *file_name, *file_uri; + const gchar *entry_name; + gint ok; + + GST_INFO ("scanning directory for rdfs \"%s\"", dir_name); + + dir = g_dir_open (dir_name, 0, NULL); + if (!dir) + return FALSE; + + while ((entry_name = g_dir_read_name (dir))) { + file_name = g_build_filename (dir_name, entry_name, NULL); + file_uri = g_strconcat ("file://", file_name, NULL); + ok = lrdf_read_file (file_uri); + GST_INFO ("read %s : %d", file_uri, ok); + g_free (file_uri); + g_free (file_name); + } + g_dir_close (dir); + + return TRUE; +} + +#endif + +/* search just the one directory. + */ +static gboolean +ladspa_plugin_directory_search (const char *dir_name) +{ + GDir *dir; + gchar *file_name; + const gchar *entry_name; + LADSPA_Descriptor_Function descriptor_function; + GModule *plugin; + gboolean ok = FALSE; + + GST_INFO ("scanning directory for plugins \"%s\"", dir_name); + + dir = g_dir_open (dir_name, 0, NULL); + if (!dir) + return FALSE; + + while ((entry_name = g_dir_read_name (dir))) { + file_name = g_build_filename (dir_name, entry_name, NULL); + plugin = + g_module_open (file_name, G_MODULE_BIND_LAZY | G_MODULE_BIND_LOCAL); + if (plugin) { + /* the file is a shared library */ + if (g_module_symbol (plugin, "ladspa_descriptor", + (gpointer *) & descriptor_function)) { + /* we've found a ladspa_descriptor function, now introspect it. */ + GST_INFO ("describe %s", file_name); + ladspa_describe_plugin (descriptor_function); + ok = TRUE; + } else { + /* it was a library, but not a LADSPA one. Unload it. */ + g_module_close (plugin); + } + } + g_free (file_name); + } + g_dir_close (dir); + + return ok; +} + +/* search the plugin path + */ +static gboolean +ladspa_plugin_path_search (void) +{ + const gchar *search_path; + gchar *ladspa_path; + gchar **paths; + gint i, j, path_entries; + gboolean res = FALSE, skip; +#ifdef HAVE_LRDF + gchar *pos, *prefix, *rdf_path; +#endif + + search_path = g_getenv ("LADSPA_PATH"); + if (search_path) { + ladspa_path = + g_strdup_printf ("%s" G_SEARCHPATH_SEPARATOR_S GST_LADSPA_DEFAULT_PATH, + search_path); + } else { + ladspa_path = g_strdup (GST_LADSPA_DEFAULT_PATH); + } + + paths = g_strsplit (ladspa_path, G_SEARCHPATH_SEPARATOR_S, 0); + path_entries = g_strv_length (paths); + GST_INFO ("%d dirs in search paths \"%s\"", path_entries, ladspa_path); + +#ifdef HAVE_LRDF + for (i = 0; i < path_entries; i++) { + skip = FALSE; + for (j = 0; j < i; j++) { + if (!strcmp (paths[i], paths[j])) { + skip = TRUE; + break; + } + } + if (skip) + break; + /* transform path: /usr/lib/ladspa -> /usr/share/ladspa/rdf/ + * yes, this is ugly, but lrdf has not searchpath + */ + if ((pos = strstr (paths[i], "/lib/ladspa"))) { + prefix = g_strndup (paths[i], (pos - paths[i])); + rdf_path = g_build_filename (prefix, "share", "ladspa", "rdf", NULL); + ladspa_rdf_directory_search (rdf_path); + g_free (rdf_path); + g_free (prefix); + } + } +#endif + + for (i = 0; i < path_entries; i++) { + skip = FALSE; + for (j = 0; j < i; j++) { + if (!strcmp (paths[i], paths[j])) { + skip = TRUE; + break; + } + } + if (skip) + break; + res |= ladspa_plugin_directory_search (paths[i]); + } + g_strfreev (paths); + + g_free (ladspa_path); + + return res; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (ladspa_debug, "ladspa", + GST_DEBUG_FG_GREEN | GST_DEBUG_BG_BLACK | GST_DEBUG_BOLD, "LADSPA"); + + /* initialize gst controller library */ + gst_controller_init (NULL, NULL); + + gst_plugin_add_dependency_simple (plugin, + "LADSPA_PATH", + GST_LADSPA_DEFAULT_PATH, NULL, GST_PLUGIN_DEPENDENCY_FLAG_NONE); + +#ifdef HAVE_LRDF + lrdf_init (); +#endif + + parent_class = g_type_class_ref (GST_TYPE_SIGNAL_PROCESSOR); + + ladspa_plugin = plugin; + descriptor_quark = g_quark_from_static_string ("ladspa-descriptor"); + + if (!ladspa_plugin_path_search ()) { + GST_WARNING ("no ladspa plugins found, check LADSPA_PATH"); + } + + /* we don't want to fail, even if there are no elements registered */ + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "ladspa", + "All LADSPA plugins", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/ladspa/gstladspa.h b/ext/ladspa/gstladspa.h new file mode 100644 index 0000000..1453231 --- /dev/null +++ b/ext/ladspa/gstladspa.h @@ -0,0 +1,76 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * gstladspa.h: Header for LADSPA plugin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_LADSPA_H__ +#define __GST_LADSPA_H__ + + +#include + +#include + +#include + + +G_BEGIN_DECLS + + +typedef struct _ladspa_control_info { + gchar *name; + gchar *param_name; + gfloat lowerbound, upperbound; + gfloat def; + gboolean lower, upper, samplerate; + gboolean toggled, logarithmic, integer, writable; +} ladspa_control_info; + + +typedef struct _GstLADSPA GstLADSPA; +typedef struct _GstLADSPAClass GstLADSPAClass; + + +struct _GstLADSPA { + GstSignalProcessor parent; + + LADSPA_Descriptor *descriptor; + LADSPA_Handle *handle; + + gboolean activated; + gboolean inplace_broken; +}; + +struct _GstLADSPAClass { + GstSignalProcessorClass parent_class; + + LADSPA_Descriptor *descriptor; + + gint *audio_in_portnums; + gint *audio_out_portnums; + gint *control_in_portnums; + gint *control_out_portnums; +}; + + +G_END_DECLS + + +#endif /* __GST_LADSPA_H__ */ diff --git a/ext/libmms/Makefile.am b/ext/libmms/Makefile.am new file mode 100644 index 0000000..3a9fa6c --- /dev/null +++ b/ext/libmms/Makefile.am @@ -0,0 +1,10 @@ +plugin_LTLIBRARIES = libgstmms.la + +libgstmms_la_SOURCES = gstmms.c + +libgstmms_la_CFLAGS = $(GST_CFLAGS) $(LIBMMS_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +libgstmms_la_LIBADD = $(GST_LIBS) $(LIBMMS_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) +libgstmms_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmms_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstmms.h diff --git a/ext/libmms/Makefile.in b/ext/libmms/Makefile.in new file mode 100644 index 0000000..8fc8d00 --- /dev/null +++ b/ext/libmms/Makefile.in @@ -0,0 +1,856 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/libmms +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmms_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstmms_la_OBJECTS = libgstmms_la-gstmms.lo +libgstmms_la_OBJECTS = $(am_libgstmms_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmms_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstmms_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstmms_la_CFLAGS) $(CFLAGS) \ + $(libgstmms_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmms_la_SOURCES) +DIST_SOURCES = $(libgstmms_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmms.la +libgstmms_la_SOURCES = gstmms.c +libgstmms_la_CFLAGS = $(GST_CFLAGS) $(LIBMMS_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) +libgstmms_la_LIBADD = $(GST_LIBS) $(LIBMMS_LIBS) $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) +libgstmms_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmms_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstmms.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/libmms/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/libmms/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmms.la: $(libgstmms_la_OBJECTS) $(libgstmms_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstmms_la_LINK) -rpath $(plugindir) $(libgstmms_la_OBJECTS) $(libgstmms_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmms_la-gstmms.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstmms_la-gstmms.lo: gstmms.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmms_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmms_la_CFLAGS) $(CFLAGS) -MT libgstmms_la-gstmms.lo -MD -MP -MF $(DEPDIR)/libgstmms_la-gstmms.Tpo -c -o libgstmms_la-gstmms.lo `test -f 'gstmms.c' || echo '$(srcdir)/'`gstmms.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmms_la-gstmms.Tpo $(DEPDIR)/libgstmms_la-gstmms.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmms.c' object='libgstmms_la-gstmms.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmms_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmms_la_CFLAGS) $(CFLAGS) -c -o libgstmms_la-gstmms.lo `test -f 'gstmms.c' || echo '$(srcdir)/'`gstmms.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/libmms/gstmms.c b/ext/libmms/gstmms.c new file mode 100644 index 0000000..23a5226 --- /dev/null +++ b/ext/libmms/gstmms.c @@ -0,0 +1,653 @@ +/* + * + * GStreamer + * Copyright (C) 1999-2001 Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +# include +#endif + +#include +#include +#include +#include "gstmms.h" + +#define DEFAULT_CONNECTION_SPEED 0 + +enum +{ + PROP_0, + PROP_LOCATION, + PROP_CONNECTION_SPEED +}; + + +GST_DEBUG_CATEGORY_STATIC (mmssrc_debug); +#define GST_CAT_DEFAULT mmssrc_debug + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-ms-asf") + ); + +static void gst_mms_finalize (GObject * gobject); +static void gst_mms_uri_handler_init (gpointer g_iface, gpointer iface_data); + +static void gst_mms_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_mms_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static gboolean gst_mms_query (GstBaseSrc * src, GstQuery * query); + +static gboolean gst_mms_start (GstBaseSrc * bsrc); +static gboolean gst_mms_stop (GstBaseSrc * bsrc); +static gboolean gst_mms_is_seekable (GstBaseSrc * src); +static gboolean gst_mms_get_size (GstBaseSrc * src, guint64 * size); +static gboolean gst_mms_prepare_seek_segment (GstBaseSrc * src, + GstEvent * event, GstSegment * segment); +static gboolean gst_mms_do_seek (GstBaseSrc * src, GstSegment * segment); + +static GstFlowReturn gst_mms_create (GstPushSrc * psrc, GstBuffer ** buf); + +static gboolean gst_mms_uri_set_uri (GstURIHandler * handler, + const gchar * uri); + +static void +gst_mms_urihandler_init (GType mms_type) +{ + static const GInterfaceInfo urihandler_info = { + gst_mms_uri_handler_init, + NULL, + NULL + }; + + g_type_add_interface_static (mms_type, GST_TYPE_URI_HANDLER, + &urihandler_info); +} + +GST_BOILERPLATE_FULL (GstMMS, gst_mms, GstPushSrc, GST_TYPE_PUSH_SRC, + gst_mms_urihandler_init); + +static void +gst_mms_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_set_details_simple (element_class, "MMS streaming source", + "Source/Network", + "Receive data streamed via MSFT Multi Media Server protocol", + "Maciej Katafiasz "); + + GST_DEBUG_CATEGORY_INIT (mmssrc_debug, "mmssrc", 0, "MMS Source Element"); +} + +/* initialize the plugin's class */ +static void +gst_mms_class_init (GstMMSClass * klass) +{ + GObjectClass *gobject_class = (GObjectClass *) klass; + GstBaseSrcClass *gstbasesrc_class = (GstBaseSrcClass *) klass; + GstPushSrcClass *gstpushsrc_class = (GstPushSrcClass *) klass; + + gobject_class->set_property = gst_mms_set_property; + gobject_class->get_property = gst_mms_get_property; + gobject_class->finalize = gst_mms_finalize; + + g_object_class_install_property (gobject_class, PROP_LOCATION, + g_param_spec_string ("location", "location", + "Host URL to connect to. Accepted are mms://, mmsu://, mmst:// URL types", + NULL, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property (gobject_class, PROP_CONNECTION_SPEED, + g_param_spec_uint ("connection-speed", "Connection Speed", + "Network connection speed in kbps (0 = unknown)", + 0, G_MAXINT / 1000, DEFAULT_CONNECTION_SPEED, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + /* Note: connection-speed is intentionaly limited to G_MAXINT as libmms use int for it */ + + gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_mms_start); + gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_mms_stop); + + gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_mms_create); + + gstbasesrc_class->is_seekable = GST_DEBUG_FUNCPTR (gst_mms_is_seekable); + gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_mms_get_size); + gstbasesrc_class->prepare_seek_segment = + GST_DEBUG_FUNCPTR (gst_mms_prepare_seek_segment); + gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_mms_do_seek); + gstbasesrc_class->query = GST_DEBUG_FUNCPTR (gst_mms_query); +} + +/* initialize the new element + * instantiate pads and add them to element + * set functions + * initialize structure + */ +static void +gst_mms_init (GstMMS * mmssrc, GstMMSClass * g_class) +{ + mmssrc->uri_name = NULL; + mmssrc->current_connection_uri_name = NULL; + mmssrc->connection = NULL; + mmssrc->connection_speed = DEFAULT_CONNECTION_SPEED; +} + +static void +gst_mms_finalize (GObject * gobject) +{ + GstMMS *mmssrc = GST_MMS (gobject); + + /* We may still have a connection open, as we preserve unused / pristine + open connections in stop to reuse them in start. */ + if (mmssrc->connection) { + mmsx_close (mmssrc->connection); + mmssrc->connection = NULL; + } + + if (mmssrc->current_connection_uri_name) { + g_free (mmssrc->current_connection_uri_name); + mmssrc->current_connection_uri_name = NULL; + } + + if (mmssrc->uri_name) { + g_free (mmssrc->uri_name); + mmssrc->uri_name = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + +/* FIXME operating in TIME rather than BYTES could remove this altogether + * and be more convenient elsewhere */ +static gboolean +gst_mms_query (GstBaseSrc * src, GstQuery * query) +{ + GstMMS *mmssrc = GST_MMS (src); + gboolean res = TRUE; + GstFormat format; + gint64 value; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + gst_query_parse_position (query, &format, &value); + if (format != GST_FORMAT_BYTES) { + res = FALSE; + break; + } + value = (gint64) mmsx_get_current_pos (mmssrc->connection); + gst_query_set_position (query, format, value); + break; + case GST_QUERY_DURATION: + if (!mmsx_get_seekable (mmssrc->connection)) { + res = FALSE; + break; + } + gst_query_parse_duration (query, &format, &value); + switch (format) { + case GST_FORMAT_BYTES: + value = (gint64) mmsx_get_length (mmssrc->connection); + gst_query_set_duration (query, format, value); + break; + case GST_FORMAT_TIME: + value = mmsx_get_time_length (mmssrc->connection) * GST_SECOND; + gst_query_set_duration (query, format, value); + break; + default: + res = FALSE; + } + break; + default: + /* chain to parent */ + res = + GST_BASE_SRC_CLASS (parent_class)->query (GST_BASE_SRC (src), query); + break; + } + + return res; +} + + +static gboolean +gst_mms_prepare_seek_segment (GstBaseSrc * src, GstEvent * event, + GstSegment * segment) +{ + GstSeekType cur_type, stop_type; + gint64 cur, stop; + GstSeekFlags flags; + GstFormat seek_format; + gdouble rate; + + gst_event_parse_seek (event, &rate, &seek_format, &flags, + &cur_type, &cur, &stop_type, &stop); + + if (seek_format != GST_FORMAT_BYTES && seek_format != GST_FORMAT_TIME) { + GST_LOG_OBJECT (src, "Only byte or time seeking is supported"); + return FALSE; + } + + if (stop_type != GST_SEEK_TYPE_NONE) { + GST_LOG_OBJECT (src, "Stop seeking not supported"); + return FALSE; + } + + if (cur_type != GST_SEEK_TYPE_NONE && cur_type != GST_SEEK_TYPE_SET) { + GST_LOG_OBJECT (src, "Only absolute seeking is supported"); + return FALSE; + } + + /* We would like to convert from GST_FORMAT_TIME to GST_FORMAT_BYTES here + when needed, but we cannot as to do that we need to actually do the seek, + so we handle this in do_seek instead. */ + + /* FIXME implement relative seeking, we could do any needed relevant + seeking calculations here (in seek_format metrics), before the re-init + of the segment. */ + + gst_segment_init (segment, seek_format); + gst_segment_set_seek (segment, rate, seek_format, flags, cur_type, cur, + stop_type, stop, NULL); + + return TRUE; +} + +static gboolean +gst_mms_do_seek (GstBaseSrc * src, GstSegment * segment) +{ + mms_off_t start; + GstMMS *mmssrc = GST_MMS (src); + + if (segment->format == GST_FORMAT_TIME) { + if (!mmsx_time_seek (NULL, mmssrc->connection, + (double) segment->start / GST_SECOND)) { + GST_LOG_OBJECT (mmssrc, "mmsx_time_seek() failed"); + return FALSE; + } + start = mmsx_get_current_pos (mmssrc->connection); + GST_INFO_OBJECT (mmssrc, "sought to %" GST_TIME_FORMAT ", offset after " + "seek: %" G_GINT64_FORMAT, GST_TIME_ARGS (segment->start), start); + } else if (segment->format == GST_FORMAT_BYTES) { + start = mmsx_seek (NULL, mmssrc->connection, segment->start, SEEK_SET); + /* mmsx_seek will close and reopen the connection when seeking with the + mmsh protocol, if the reopening fails this is indicated with -1 */ + if (start == -1) { + GST_DEBUG_OBJECT (mmssrc, "connection broken during seek"); + return FALSE; + } + GST_INFO_OBJECT (mmssrc, "sought to: %" G_GINT64_FORMAT " bytes, " + "result: %" G_GINT64_FORMAT, segment->start, start); + } else { + GST_DEBUG_OBJECT (mmssrc, "unsupported seek segment format: %s", + GST_STR_NULL (gst_format_get_name (segment->format))); + return FALSE; + } + gst_segment_init (segment, GST_FORMAT_BYTES); + gst_segment_set_seek (segment, segment->rate, GST_FORMAT_BYTES, + segment->flags, GST_SEEK_TYPE_SET, start, GST_SEEK_TYPE_NONE, + segment->stop, NULL); + return TRUE; +} + + +/* get function + * this function generates new data when needed + */ + + +static GstFlowReturn +gst_mms_create (GstPushSrc * psrc, GstBuffer ** buf) +{ + GstMMS *mmssrc = GST_MMS (psrc); + guint8 *data; + guint blocksize; + gint result; + mms_off_t offset; + + *buf = NULL; + + offset = mmsx_get_current_pos (mmssrc->connection); + + /* Check if a seek perhaps has wrecked our connection */ + if (offset == -1) { + GST_ERROR_OBJECT (mmssrc, + "connection broken (probably an error during mmsx_seek_time during a convert query) returning FLOW_ERROR"); + return GST_FLOW_ERROR; + } + + /* Choose blocksize best for optimum performance */ + if (offset == 0) + blocksize = mmsx_get_asf_header_len (mmssrc->connection); + else + blocksize = mmsx_get_asf_packet_len (mmssrc->connection); + + *buf = gst_buffer_try_new_and_alloc (blocksize); + if (!*buf) { + GST_ERROR_OBJECT (mmssrc, "Failed to allocate %u bytes", blocksize); + return GST_FLOW_ERROR; + } + + data = GST_BUFFER_DATA (*buf); + GST_BUFFER_SIZE (*buf) = 0; + GST_LOG_OBJECT (mmssrc, "reading %d bytes", blocksize); + result = mmsx_read (NULL, mmssrc->connection, (char *) data, blocksize); + + /* EOS? */ + if (result == 0) + goto eos; + + GST_BUFFER_OFFSET (*buf) = offset; + GST_BUFFER_SIZE (*buf) = result; + + GST_LOG_OBJECT (mmssrc, "Returning buffer with offset %" G_GINT64_FORMAT + " and size %u", GST_BUFFER_OFFSET (*buf), GST_BUFFER_SIZE (*buf)); + + gst_buffer_set_caps (*buf, GST_PAD_CAPS (GST_BASE_SRC_PAD (mmssrc))); + + return GST_FLOW_OK; + +eos: + { + GST_DEBUG_OBJECT (mmssrc, "EOS"); + gst_buffer_unref (*buf); + *buf = NULL; + return GST_FLOW_UNEXPECTED; + } +} + +static gboolean +gst_mms_is_seekable (GstBaseSrc * src) +{ + GstMMS *mmssrc = GST_MMS (src); + + return mmsx_get_seekable (mmssrc->connection); +} + +static gboolean +gst_mms_get_size (GstBaseSrc * src, guint64 * size) +{ + GstMMS *mmssrc = GST_MMS (src); + + /* non seekable usually means live streams, and get_length() returns, + erm, interesting values for live streams */ + if (!mmsx_get_seekable (mmssrc->connection)) + return FALSE; + + *size = mmsx_get_length (mmssrc->connection); + return TRUE; +} + +static gboolean +gst_mms_start (GstBaseSrc * bsrc) +{ + GstMMS *mms = GST_MMS (bsrc); + guint bandwidth_avail; + + if (!mms->uri_name || *mms->uri_name == '\0') + goto no_uri; + + if (mms->connection_speed) + bandwidth_avail = mms->connection_speed; + else + bandwidth_avail = G_MAXINT; + + /* If we already have a connection, and the uri isn't changed, reuse it, + as connecting is expensive. */ + if (mms->connection) { + if (!strcmp (mms->uri_name, mms->current_connection_uri_name)) { + GST_DEBUG_OBJECT (mms, "Reusing existing connection for %s", + mms->uri_name); + return TRUE; + } else { + mmsx_close (mms->connection); + g_free (mms->current_connection_uri_name); + mms->current_connection_uri_name = NULL; + } + } + + /* FIXME: pass some sane arguments here */ + GST_DEBUG_OBJECT (mms, + "Trying mms_connect (%s) with bandwidth constraint of %d bps", + mms->uri_name, bandwidth_avail); + mms->connection = mmsx_connect (NULL, NULL, mms->uri_name, bandwidth_avail); + if (mms->connection) { + /* Save the uri name so that it can be checked for connection reusing, + see above. */ + mms->current_connection_uri_name = g_strdup (mms->uri_name); + GST_DEBUG_OBJECT (mms, "Connect successful"); + return TRUE; + } else { + gchar *url, *location; + + GST_ERROR_OBJECT (mms, + "Could not connect to this stream, redirecting to rtsp"); + location = strstr (mms->uri_name, "://"); + if (location == NULL || *location == '\0' || *(location + 3) == '\0') + goto no_uri; + url = g_strdup_printf ("rtsp://%s", location + 3); + + gst_element_post_message (GST_ELEMENT_CAST (mms), + gst_message_new_element (GST_OBJECT_CAST (mms), + gst_structure_new ("redirect", "new-location", G_TYPE_STRING, url, + NULL))); + + /* post an error message as well, so that applications that don't handle + * redirect messages get to see a proper error message */ + GST_ELEMENT_ERROR (mms, RESOURCE, OPEN_READ, + ("Could not connect to streaming server."), + ("A redirect message was posted on the bus and should have been " + "handled by the application.")); + + return FALSE; + } + +no_uri: + { + GST_ELEMENT_ERROR (mms, RESOURCE, OPEN_READ, + ("No URI to open specified"), (NULL)); + return FALSE; + } +} + +static gboolean +gst_mms_stop (GstBaseSrc * bsrc) +{ + GstMMS *mms = GST_MMS (bsrc); + + if (mms->connection != NULL) { + /* Check if the connection is still pristine, that is if no more then + just the mmslib cached asf header has been read. If it is still pristine + preserve it as we often are re-started with the same URL and connecting + is expensive */ + if (mmsx_get_current_pos (mms->connection) > + mmsx_get_asf_header_len (mms->connection)) { + mmsx_close (mms->connection); + mms->connection = NULL; + g_free (mms->current_connection_uri_name); + mms->current_connection_uri_name = NULL; + } + } + return TRUE; +} + +static void +gst_mms_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstMMS *mmssrc = GST_MMS (object); + + switch (prop_id) { + case PROP_LOCATION: + gst_mms_uri_set_uri (GST_URI_HANDLER (mmssrc), + g_value_get_string (value)); + break; + case PROP_CONNECTION_SPEED: + GST_OBJECT_LOCK (mmssrc); + mmssrc->connection_speed = g_value_get_uint (value) * 1000; + GST_OBJECT_UNLOCK (mmssrc); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_mms_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMMS *mmssrc = GST_MMS (object); + + GST_OBJECT_LOCK (mmssrc); + switch (prop_id) { + case PROP_LOCATION: + if (mmssrc->uri_name) + g_value_set_string (value, mmssrc->uri_name); + break; + case PROP_CONNECTION_SPEED: + g_value_set_uint (value, mmssrc->connection_speed / 1000); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + GST_OBJECT_UNLOCK (mmssrc); +} + +/* entry point to initialize the plug-in + * initialize the plug-in itself + * register the element factories and pad templates + * register the features + */ +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "mmssrc", GST_RANK_NONE, GST_TYPE_MMS); +} + +static GstURIType +gst_mms_uri_get_type (void) +{ + return GST_URI_SRC; +} + +static gchar ** +gst_mms_uri_get_protocols (void) +{ + static const gchar *protocols[] = { "mms", "mmsh", "mmst", "mmsu", NULL }; + + return (gchar **) protocols; +} + +static const gchar * +gst_mms_uri_get_uri (GstURIHandler * handler) +{ + GstMMS *src = GST_MMS (handler); + + return src->uri_name; +} + +static gchar * +gst_mms_src_make_valid_uri (const gchar * uri) +{ + gchar *protocol; + const gchar *colon, *tmp; + gsize len; + + if (!uri || !gst_uri_is_valid (uri)) + return NULL; + + protocol = gst_uri_get_protocol (uri); + + if ((strcmp (protocol, "mms") != 0) && (strcmp (protocol, "mmsh") != 0) && + (strcmp (protocol, "mmst") != 0) && (strcmp (protocol, "mmsu") != 0)) { + g_free (protocol); + return FALSE; + } + g_free (protocol); + + colon = strstr (uri, "://"); + if (!colon) + return NULL; + + tmp = colon + 3; + len = strlen (tmp); + if (len == 0) + return NULL; + + /* libmms segfaults if there's no hostname or + * no / after the hostname + */ + colon = strstr (tmp, "/"); + if (colon == tmp) + return NULL; + + if (strstr (tmp, "/") == NULL) { + gchar *ret; + + len = strlen (uri); + ret = g_malloc0 (len + 2); + memcpy (ret, uri, len); + ret[len] = '/'; + return ret; + } else { + return g_strdup (uri); + } +} + +static gboolean +gst_mms_uri_set_uri (GstURIHandler * handler, const gchar * uri) +{ + GstMMS *src = GST_MMS (handler); + gchar *fixed_uri; + + fixed_uri = gst_mms_src_make_valid_uri (uri); + if (!fixed_uri && uri) + return FALSE; + + GST_OBJECT_LOCK (src); + if (src->uri_name) + g_free (src->uri_name); + src->uri_name = fixed_uri; + GST_OBJECT_UNLOCK (src); + + return TRUE; +} + +static void +gst_mms_uri_handler_init (gpointer g_iface, gpointer iface_data) +{ + GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; + + iface->get_type = gst_mms_uri_get_type; + iface->get_protocols = gst_mms_uri_get_protocols; + iface->get_uri = gst_mms_uri_get_uri; + iface->set_uri = gst_mms_uri_set_uri; +} + + +/* this is the structure that gst-register looks for + * so keep the name plugin_desc, or you cannot get your plug-in registered */ +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "mms", + "Microsoft Multi Media Server streaming protocol support", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/libmms/gstmms.h b/ext/libmms/gstmms.h new file mode 100644 index 0000000..5410cc1 --- /dev/null +++ b/ext/libmms/gstmms.h @@ -0,0 +1,49 @@ +/* + * gstmms.h: header file for gst-mms plugin + */ + +#ifndef __GST_MMS_H__ +#define __GST_MMS_H__ + +#include +#include +#include + +G_BEGIN_DECLS + +/* #define's don't like whitespacey bits */ +#define GST_TYPE_MMS \ + (gst_mms_get_type()) +#define GST_MMS(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MMS,GstMMS)) +#define GST_MMS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MMS,GstMMSClass)) +#define GST_IS_MMS(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MMS)) +#define GST_IS_MMS_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MMS)) + +typedef struct _GstMMS GstMMS; +typedef struct _GstMMSClass GstMMSClass; + +struct _GstMMS +{ + GstPushSrc parent; + + gchar *uri_name; + gchar *current_connection_uri_name; + guint connection_speed; + + mmsx_t *connection; +}; + +struct _GstMMSClass +{ + GstPushSrcClass parent_class; +}; + +GType gst_mms_get_type (void); + +G_END_DECLS + +#endif /* __GST_MMS_H__ */ diff --git a/ext/lv2/Makefile.am b/ext/lv2/Makefile.am new file mode 100644 index 0000000..7b6ac4e --- /dev/null +++ b/ext/lv2/Makefile.am @@ -0,0 +1,15 @@ +plugin_LTLIBRARIES = libgstlv2.la + +libgstlv2_la_SOURCES = gstlv2.c +libgstlv2_la_CFLAGS = \ + -I$(top_srcdir)/gst-libs \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(SLV2_CFLAGS) +libgstlv2_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_CONTROLLER_LIBS) $(LIBM) $(SLV2_LIBS) +libgstlv2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstlv2_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstlv2.h diff --git a/ext/lv2/Makefile.in b/ext/lv2/Makefile.in new file mode 100644 index 0000000..9e0e8da --- /dev/null +++ b/ext/lv2/Makefile.in @@ -0,0 +1,864 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/lv2 +DIST_COMMON = README $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstlv2_la_DEPENDENCIES = $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstlv2_la_OBJECTS = libgstlv2_la-gstlv2.lo +libgstlv2_la_OBJECTS = $(am_libgstlv2_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstlv2_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstlv2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstlv2_la_CFLAGS) $(CFLAGS) \ + $(libgstlv2_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstlv2_la_SOURCES) +DIST_SOURCES = $(libgstlv2_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstlv2.la +libgstlv2_la_SOURCES = gstlv2.c +libgstlv2_la_CFLAGS = \ + -I$(top_srcdir)/gst-libs \ + $(GST_PLUGINS_BASE_CFLAGS) \ + $(GST_CONTROLLER_CFLAGS) $(GST_CFLAGS) $(SLV2_CFLAGS) + +libgstlv2_la_LIBADD = \ + $(top_builddir)/gst-libs/gst/signalprocessor/libgstsignalprocessor-@GST_MAJORMINOR@.la \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) \ + $(GST_CONTROLLER_LIBS) $(LIBM) $(SLV2_LIBS) + +libgstlv2_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstlv2_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstlv2.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/lv2/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/lv2/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstlv2.la: $(libgstlv2_la_OBJECTS) $(libgstlv2_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstlv2_la_LINK) -rpath $(plugindir) $(libgstlv2_la_OBJECTS) $(libgstlv2_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstlv2_la-gstlv2.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstlv2_la-gstlv2.lo: gstlv2.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlv2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlv2_la_CFLAGS) $(CFLAGS) -MT libgstlv2_la-gstlv2.lo -MD -MP -MF $(DEPDIR)/libgstlv2_la-gstlv2.Tpo -c -o libgstlv2_la-gstlv2.lo `test -f 'gstlv2.c' || echo '$(srcdir)/'`gstlv2.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstlv2_la-gstlv2.Tpo $(DEPDIR)/libgstlv2_la-gstlv2.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstlv2.c' object='libgstlv2_la-gstlv2.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstlv2_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstlv2_la_CFLAGS) $(CFLAGS) -c -o libgstlv2_la-gstlv2.lo `test -f 'gstlv2.c' || echo '$(srcdir)/'`gstlv2.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/lv2/README b/ext/lv2/README new file mode 100644 index 0000000..5a409ff --- /dev/null +++ b/ext/lv2/README @@ -0,0 +1,27 @@ +Gst-LV2 Quickstart + +Dependencies: + +SLV2 0.6.* + +Which in turn depends on: + +librdf (redland) >= 1.0.6 + + +Example Pipeline: + +Requires swh-lv2 + +gst-launch-0.10 -v filesrc location=/usr/share/sounds/login.wav ! wavparse ! audioconvert ! plugin-org-uk-swh-plugins-djFlanger ! audioconvert ! alsasink + +(A longer wav will be a better example) + + +Requires calf + +GST_DEBUG="*:2,signalprocessor:5,lv2:5" +gst-launch calf-sourceforge-net-plugins-Monosynth event-in="C-3" ! pulsesink +gst-launch calf-sourceforge-net-plugins-Monosynth event-in="C-3" name=ms ! pulsesink ms. ! fakesink +gst-launch calf-sourceforge-net-plugins-Organ event-in="C-3" name=s ! interleave name=i ! pulsesink s. ! i. + diff --git a/ext/lv2/gstlv2.c b/ext/lv2/gstlv2.c new file mode 100644 index 0000000..caa82b7 --- /dev/null +++ b/ext/lv2/gstlv2.c @@ -0,0 +1,938 @@ +/* GStreamer + * Copyright (C) 1999 Erik Walthinsen + * 2001 Steve Baker + * 2003 Andy Wingo + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-lv2 + * @short_description: bridge for LV2. + * + * LV2 is a standard for plugins and matching host applications, + * mainly targeted at audio processing and generation. It is intended as + * a successor to LADSPA (Linux Audio Developer's Simple Plugin API). + * + * The LV2 element is a bridge for plugins using the + * LV2 API. It scans all + * installed LV2 plugins and registers them as gstreamer elements. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif +#include +#include +#include +#include +#include +#include + +#include "gstlv2.h" +#include + +#define GST_LV2_DEFAULT_PATH \ + "/usr/lib/lv2" G_SEARCHPATH_SEPARATOR_S \ + "/usr/local/lib/lv2" G_SEARCHPATH_SEPARATOR_S \ + LIBDIR "/lv2" + +static void gst_lv2_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); + +static void gst_lv2_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static gboolean gst_lv2_setup (GstSignalProcessor * sigproc, GstCaps * caps); +static gboolean gst_lv2_start (GstSignalProcessor * sigproc); +static void gst_lv2_stop (GstSignalProcessor * sigproc); +static void gst_lv2_cleanup (GstSignalProcessor * sigproc); +static void gst_lv2_process (GstSignalProcessor * sigproc, guint nframes); + +static SLV2World world; +static SLV2Value audio_class; +static SLV2Value control_class; +static SLV2Value input_class; +static SLV2Value output_class; +static SLV2Value integer_prop; +static SLV2Value toggled_prop; +static SLV2Value in_place_broken_pred; +static SLV2Value in_group_pred; +static SLV2Value has_role_pred; +static SLV2Value lv2_symbol_pred; + +static SLV2Value center_role; +static SLV2Value left_role; +static SLV2Value right_role; +static SLV2Value rear_center_role; +static SLV2Value rear_left_role; +static SLV2Value rear_right_role; +static SLV2Value lfe_role; +static SLV2Value center_left_role; +static SLV2Value center_right_role; +static SLV2Value side_left_role; +static SLV2Value side_right_role; + +static GstSignalProcessorClass *parent_class; + +static GstPlugin *gst_lv2_plugin; + +GST_DEBUG_CATEGORY_STATIC (lv2_debug); +#define GST_CAT_DEFAULT lv2_debug + +static GQuark descriptor_quark = 0; + + +/* Convert an LV2 port role to a Gst channel positon + * WARNING: If the group has only a single port, + * GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER will be returned for pg:centerRole + * (which is used by LV2 for mono groups), but this is not correct. In this + * case the value must be changed to GST_AUDIO_CHANNEL_POSITION_FRONT_MONO + * (this can't be done by this function because this information isn't known + * at the time it is used). + */ +static GstAudioChannelPosition +gst_lv2_role_to_position (SLV2Value role) +{ + /* Front. Mono and left/right are mututally exclusive */ + if (slv2_value_equals (role, center_role)) { + + return GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER; + } else if (slv2_value_equals (role, left_role)) { + return GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT; + } else if (slv2_value_equals (role, right_role)) { + return GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT; + + /* Rear. Left/right and center are mututally exclusive */ + } else if (slv2_value_equals (role, rear_center_role)) { + return GST_AUDIO_CHANNEL_POSITION_REAR_CENTER; + } else if (slv2_value_equals (role, rear_left_role)) { + return GST_AUDIO_CHANNEL_POSITION_REAR_LEFT; + } else if (slv2_value_equals (role, rear_right_role)) { + return GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT; + + /* Subwoofer/low-frequency-effects */ + } else if (slv2_value_equals (role, lfe_role)) { + return GST_AUDIO_CHANNEL_POSITION_LFE; + + /* Center front speakers. Center and left/right_of_center + * are mutually exclusive */ + } else if (slv2_value_equals (role, center_left_role)) { + return GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER; + } else if (slv2_value_equals (role, center_right_role)) { + return GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER; + + /* sides */ + } else if (slv2_value_equals (role, side_left_role)) { + return GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT; + } else if (slv2_value_equals (role, side_right_role)) { + return GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT; + } + + return GST_AUDIO_CHANNEL_POSITION_INVALID; +} + +/* Find and return the group @a uri in @a groups, or NULL if not found */ +static GstLV2Group * +gst_lv2_class_find_group (GArray * groups, SLV2Value uri) +{ + int i = 0; + for (; i < groups->len; ++i) + if (slv2_value_equals (g_array_index (groups, GstLV2Group, i).uri, uri)) + return &g_array_index (groups, GstLV2Group, i); + return NULL; +} + +static GstAudioChannelPosition * +gst_lv2_build_positions (GstLV2Group * group) +{ + GstAudioChannelPosition *positions = NULL; + + /* don't do anything for mono */ + if (group->ports->len > 1) { + gint i; + + positions = g_new (GstAudioChannelPosition, group->ports->len); + for (i = 0; i < group->ports->len; ++i) + positions[i] = g_array_index (group->ports, GstLV2Port, i).position; + } + return positions; +} + +static void +gst_lv2_base_init (gpointer g_class) +{ + GstLV2Class *klass = (GstLV2Class *) g_class; + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + GstSignalProcessorClass *gsp_class = GST_SIGNAL_PROCESSOR_CLASS (g_class); + SLV2Plugin lv2plugin; + SLV2Value val; + SLV2Values values, sub_values; + GstLV2Group *group = NULL; + GstAudioChannelPosition position = GST_AUDIO_CHANNEL_POSITION_INVALID; + guint j, in_pad_index = 0, out_pad_index = 0; + const gchar *klass_tags; + gchar *longname, *author; + + lv2plugin = (SLV2Plugin) g_type_get_qdata (G_OBJECT_CLASS_TYPE (klass), + descriptor_quark); + + g_assert (lv2plugin); + + GST_DEBUG ("base_init %p, plugin %s", g_class, + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin))); + + gsp_class->num_group_in = 0; + gsp_class->num_group_out = 0; + gsp_class->num_audio_in = 0; + gsp_class->num_audio_out = 0; + gsp_class->num_control_in = 0; + gsp_class->num_control_out = 0; + + klass->in_groups = g_array_new (FALSE, TRUE, sizeof (GstLV2Group)); + klass->out_groups = g_array_new (FALSE, TRUE, sizeof (GstLV2Group)); + klass->audio_in_ports = g_array_new (FALSE, TRUE, sizeof (GstLV2Port)); + klass->audio_out_ports = g_array_new (FALSE, TRUE, sizeof (GstLV2Port)); + klass->control_in_ports = g_array_new (FALSE, TRUE, sizeof (GstLV2Port)); + klass->control_out_ports = g_array_new (FALSE, TRUE, sizeof (GstLV2Port)); + + /* find ports and groups */ + for (j = 0; j < slv2_plugin_get_num_ports (lv2plugin); j++) { + const SLV2Port port = slv2_plugin_get_port_by_index (lv2plugin, j); + const gboolean is_input = slv2_port_is_a (lv2plugin, port, input_class); + gboolean in_group = FALSE; + struct _GstLV2Port desc = { j, 0, }; + values = slv2_port_get_value (lv2plugin, port, in_group_pred); + + if (slv2_values_size (values) > 0) { + /* port is part of a group */ + SLV2Value group_uri = slv2_values_get_at (values, 0); + GArray *groups = is_input ? klass->in_groups : klass->out_groups; + GstLV2Group *group = gst_lv2_class_find_group (groups, group_uri); + in_group = TRUE; + if (group == NULL) { + GstLV2Group g; + g.uri = slv2_value_duplicate (group_uri); + g.pad = is_input ? in_pad_index++ : out_pad_index++; + g.ports = g_array_new (FALSE, TRUE, sizeof (GstLV2Port)); + g.has_roles = TRUE; + g.symbol = NULL; + sub_values = slv2_plugin_get_value_for_subject (lv2plugin, group_uri, + lv2_symbol_pred); + /* symbol is mandatory */ + if (slv2_values_size (sub_values) > 0) { + g.symbol = slv2_value_duplicate (slv2_values_get_at (sub_values, 0)); + if (!gst_element_class_get_pad_template (element_class, + slv2_value_as_string (g.symbol))) { + g_array_append_val (groups, g); + group = &g_array_index (groups, GstLV2Group, groups->len - 1); + assert (group); + assert (slv2_value_equals (group->uri, group_uri)); + } else { + GST_WARNING ("plugin %s has duplicate group symbol '%s'", + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin)), + slv2_value_as_string (g.symbol)); + in_group = FALSE; + } + } else { + GST_WARNING ("plugin %s has illegal group with no symbol", + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin))); + in_group = FALSE; + } + } + + if (in_group) { + position = GST_AUDIO_CHANNEL_POSITION_INVALID; + sub_values = slv2_port_get_value (lv2plugin, port, has_role_pred); + if (slv2_values_size (sub_values) > 0) { + SLV2Value role = slv2_values_get_at (sub_values, 0); + position = gst_lv2_role_to_position (role); + } + slv2_values_free (sub_values); + if (position != GST_AUDIO_CHANNEL_POSITION_INVALID) { + desc.position = position; + g_array_append_val (group->ports, desc); + } else { + in_group = FALSE; + } + } + } + + if (!in_group) { + /* port is not part of a group, or it is part of a group but that group + * is illegal so we just ignore it */ + if (slv2_port_is_a (lv2plugin, port, audio_class)) { + desc.pad = is_input ? in_pad_index++ : out_pad_index++; + if (is_input) + g_array_append_val (klass->audio_in_ports, desc); + else + g_array_append_val (klass->audio_out_ports, desc); + } else if (slv2_port_is_a (lv2plugin, port, control_class)) { + if (is_input) + g_array_append_val (klass->control_in_ports, desc); + else + g_array_append_val (klass->control_out_ports, desc); + } else { + /* unknown port type */ + GST_INFO ("unhandled port %d", j); + continue; + } + } + slv2_values_free (values); + } + + gsp_class->num_group_in = klass->in_groups->len; + gsp_class->num_group_out = klass->out_groups->len; + gsp_class->num_audio_in = klass->audio_in_ports->len; + gsp_class->num_audio_out = klass->audio_out_ports->len; + gsp_class->num_control_in = klass->control_in_ports->len; + gsp_class->num_control_out = klass->control_out_ports->len; + + /* add input group pad templates */ + for (j = 0; j < gsp_class->num_group_in; ++j) { + group = &g_array_index (klass->in_groups, GstLV2Group, j); + + gst_signal_processor_class_add_pad_template (gsp_class, + slv2_value_as_string (group->symbol), GST_PAD_SINK, j, + group->ports->len); + } + + /* add output group pad templates */ + for (j = 0; j < gsp_class->num_group_out; ++j) { + group = &g_array_index (klass->out_groups, GstLV2Group, j); + + gst_signal_processor_class_add_pad_template (gsp_class, + slv2_value_as_string (group->symbol), GST_PAD_SRC, j, + group->ports->len); + } + + /* add non-grouped input port pad templates */ + for (j = 0; j < gsp_class->num_audio_in; ++j) { + struct _GstLV2Port *desc = + &g_array_index (klass->audio_in_ports, GstLV2Port, j); + SLV2Port port = slv2_plugin_get_port_by_index (lv2plugin, desc->index); + const gchar *name = + slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port)); + gst_signal_processor_class_add_pad_template (gsp_class, name, GST_PAD_SINK, + j, 1); + } + + /* add non-grouped output port pad templates */ + for (j = 0; j < gsp_class->num_audio_out; ++j) { + struct _GstLV2Port *desc = + &g_array_index (klass->audio_out_ports, GstLV2Port, j); + SLV2Port port = slv2_plugin_get_port_by_index (lv2plugin, desc->index); + const gchar *name = + slv2_value_as_string (slv2_port_get_symbol (lv2plugin, port)); + gst_signal_processor_class_add_pad_template (gsp_class, name, GST_PAD_SRC, + j, 1); + } + + val = slv2_plugin_get_name (lv2plugin); + if (val) { + longname = g_strdup (slv2_value_as_string (val)); + slv2_value_free (val); + } else { + longname = g_strdup ("no description available"); + } + val = slv2_plugin_get_author_name (lv2plugin); + if (val) { + author = g_strdup (slv2_value_as_string (val)); + slv2_value_free (val); + } else { + author = g_strdup ("no author available"); + } + + if (gsp_class->num_audio_in == 0) + klass_tags = "Source/Audio/LV2"; + else if (gsp_class->num_audio_out == 0) { + if (gsp_class->num_control_out == 0) + klass_tags = "Sink/Audio/LV2"; + else + klass_tags = "Sink/Analyzer/Audio/LV2"; + } else + klass_tags = "Filter/Effect/Audio/LV2"; + + GST_INFO ("tags : %s", klass_tags); + gst_element_class_set_details_simple (element_class, longname, + klass_tags, longname, author); + g_free (longname); + g_free (author); + + if (!slv2_plugin_has_feature (lv2plugin, in_place_broken_pred)) + GST_SIGNAL_PROCESSOR_CLASS_SET_CAN_PROCESS_IN_PLACE (klass); + + klass->plugin = lv2plugin; +} + +static gchar * +gst_lv2_class_get_param_name (GstLV2Class * klass, SLV2Port port) +{ + SLV2Plugin lv2plugin = klass->plugin; + + return g_strdup (slv2_value_as_string (slv2_port_get_symbol (lv2plugin, + port))); +} + +static gchar * +gst_lv2_class_get_param_nick (GstLV2Class * klass, SLV2Port port) +{ + SLV2Plugin lv2plugin = klass->plugin; + + return g_strdup (slv2_value_as_string (slv2_port_get_name (lv2plugin, port))); +} + +static GParamSpec * +gst_lv2_class_get_param_spec (GstLV2Class * klass, gint portnum) +{ + SLV2Plugin lv2plugin = klass->plugin; + SLV2Port port = slv2_plugin_get_port_by_index (lv2plugin, portnum); + SLV2Value lv2def, lv2min, lv2max; + GParamSpec *ret; + gchar *name, *nick; + gint perms; + gfloat lower = 0.0f, upper = 1.0f, def = 0.0f; + + nick = gst_lv2_class_get_param_nick (klass, port); + name = gst_lv2_class_get_param_name (klass, port); + g_strcanon (name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-", '-'); + if (!((name[0] >= 'a' && name[0] <= 'z') || (name[0] >= 'A' + && name[0] <= 'Z'))) { + gchar *tempstr = name; + + name = g_strconcat ("param-", name, NULL); + g_free (tempstr); + } + + GST_DEBUG ("%s trying port %s : %s", + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin)), name, nick); + + perms = G_PARAM_READABLE; + if (slv2_port_is_a (lv2plugin, port, input_class)) + perms |= G_PARAM_WRITABLE | G_PARAM_CONSTRUCT; + if (slv2_port_is_a (lv2plugin, port, control_class)) + perms |= GST_PARAM_CONTROLLABLE; + + if (slv2_port_has_property (lv2plugin, port, toggled_prop)) { + ret = g_param_spec_boolean (name, nick, nick, FALSE, perms); + goto done; + } + + slv2_port_get_range (lv2plugin, port, &lv2def, &lv2min, &lv2max); + + if (lv2def) + def = slv2_value_as_float (lv2def); + if (lv2min) + lower = slv2_value_as_float (lv2min); + if (lv2max) + upper = slv2_value_as_float (lv2max); + + slv2_value_free (lv2def); + slv2_value_free (lv2min); + slv2_value_free (lv2max); + + if (def < lower) { + GST_WARNING ("%s has lower bound %f > default %f", + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin)), lower, def); + lower = def; + } + + if (def > upper) { + GST_WARNING ("%s has upper bound %f < default %f", + slv2_value_as_string (slv2_plugin_get_uri (lv2plugin)), upper, def); + upper = def; + } + + if (slv2_port_has_property (lv2plugin, port, integer_prop)) + ret = g_param_spec_int (name, nick, nick, lower, upper, def, perms); + else + ret = g_param_spec_float (name, nick, nick, lower, upper, def, perms); + +done: + g_free (name); + g_free (nick); + + return ret; +} + +static void +gst_lv2_class_init (GstLV2Class * klass, SLV2Plugin lv2plugin) +{ + GObjectClass *gobject_class; + GstSignalProcessorClass *gsp_class; + GParamSpec *p; + gint i, ix; + + GST_DEBUG ("class_init %p", klass); + + gobject_class = (GObjectClass *) klass; + gobject_class->set_property = gst_lv2_set_property; + gobject_class->get_property = gst_lv2_get_property; + + gsp_class = GST_SIGNAL_PROCESSOR_CLASS (klass); + gsp_class->setup = gst_lv2_setup; + gsp_class->start = gst_lv2_start; + gsp_class->stop = gst_lv2_stop; + gsp_class->cleanup = gst_lv2_cleanup; + gsp_class->process = gst_lv2_process; + + klass->plugin = lv2plugin; + + /* properties have an offset of 1 */ + ix = 1; + + /* register properties */ + + for (i = 0; i < gsp_class->num_control_in; i++, ix++) { + p = gst_lv2_class_get_param_spec (klass, + g_array_index (klass->control_in_ports, GstLV2Port, i).index); + + g_object_class_install_property (gobject_class, ix, p); + } + + for (i = 0; i < gsp_class->num_control_out; i++, ix++) { + p = gst_lv2_class_get_param_spec (klass, + g_array_index (klass->control_out_ports, GstLV2Port, i).index); + + g_object_class_install_property (gobject_class, ix, p); + } +} + +static void +gst_lv2_init (GstLV2 * lv2, GstLV2Class * klass) +{ + lv2->plugin = klass->plugin; + lv2->instance = NULL; + lv2->activated = FALSE; +} + +static void +gst_lv2_set_property (GObject * object, guint prop_id, const GValue * value, + GParamSpec * pspec) +{ + GstSignalProcessor *gsp; + GstSignalProcessorClass *gsp_class; + + gsp = GST_SIGNAL_PROCESSOR (object); + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); + + /* remember, properties have an offset of 1 */ + prop_id--; + + /* only input ports */ + g_return_if_fail (prop_id < gsp_class->num_control_in); + + /* now see what type it is */ + switch (pspec->value_type) { + case G_TYPE_BOOLEAN: + gsp->control_in[prop_id] = g_value_get_boolean (value) ? 0.0f : 1.0f; + break; + case G_TYPE_INT: + gsp->control_in[prop_id] = g_value_get_int (value); + break; + case G_TYPE_FLOAT: + gsp->control_in[prop_id] = g_value_get_float (value); + break; + default: + g_assert_not_reached (); + } +} + +static void +gst_lv2_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstSignalProcessor *gsp; + GstSignalProcessorClass *gsp_class; + gfloat *controls; + + gsp = GST_SIGNAL_PROCESSOR (object); + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (object); + + /* remember, properties have an offset of 1 */ + prop_id--; + + if (prop_id < gsp_class->num_control_in) { + controls = gsp->control_in; + } else if (prop_id < gsp_class->num_control_in + gsp_class->num_control_out) { + controls = gsp->control_out; + prop_id -= gsp_class->num_control_in; + } else { + g_return_if_reached (); + } + + /* now see what type it is */ + switch (pspec->value_type) { + case G_TYPE_BOOLEAN: + g_value_set_boolean (value, controls[prop_id] > 0.0f); + break; + case G_TYPE_INT: + g_value_set_int (value, CLAMP (controls[prop_id], G_MININT, G_MAXINT)); + break; + case G_TYPE_FLOAT: + g_value_set_float (value, controls[prop_id]); + break; + default: + g_return_if_reached (); + } +} + +static gboolean +gst_lv2_setup (GstSignalProcessor * gsp, GstCaps * caps) +{ + GstLV2 *lv2; + GstLV2Class *oclass; + GstSignalProcessorClass *gsp_class; + GstStructure *s; + gint i; + GstLV2Group *group = NULL; + GstAudioChannelPosition *positions = NULL; + GstPad *pad; + GstCaps *pad_caps; + + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (gsp); + lv2 = (GstLV2 *) gsp; + oclass = (GstLV2Class *) gsp_class; + + g_return_val_if_fail (lv2->activated == FALSE, FALSE); + + GST_DEBUG_OBJECT (lv2, "instantiating the plugin at %d Hz", gsp->sample_rate); + + if (!(lv2->instance = + slv2_plugin_instantiate (oclass->plugin, gsp->sample_rate, NULL))) + goto no_instance; + + /* connect the control ports */ + for (i = 0; i < gsp_class->num_control_in; i++) + slv2_instance_connect_port (lv2->instance, + g_array_index (oclass->control_in_ports, GstLV2Port, i).index, + &(gsp->control_in[i])); + for (i = 0; i < gsp_class->num_control_out; i++) + slv2_instance_connect_port (lv2->instance, + g_array_index (oclass->control_out_ports, GstLV2Port, i).index, + &(gsp->control_out[i])); + + /* set input group pad audio channel position */ + for (i = 0; i < gsp_class->num_group_in; ++i) { + group = &g_array_index (oclass->in_groups, GstLV2Group, i); + if (group->has_roles) { + if ((positions = gst_lv2_build_positions (group))) { + if ((pad = gst_element_get_static_pad (GST_ELEMENT (gsp), + slv2_value_as_string (group->symbol)))) { + GST_INFO_OBJECT (lv2, "set audio channel positions on sink pad %s", + slv2_value_as_string (group->symbol)); + pad_caps = GST_PAD_CAPS (pad); + s = gst_caps_get_structure (caps, 0); + gst_audio_set_channel_positions (s, positions); + gst_object_unref (pad); + } + g_free (positions); + positions = NULL; + } + } + } + /* set output group pad audio channel position */ + for (i = 0; i < gsp_class->num_group_out; ++i) { + group = &g_array_index (oclass->out_groups, GstLV2Group, i); + if (group->has_roles) { + if ((positions = gst_lv2_build_positions (group))) { + if ((pad = gst_element_get_static_pad (GST_ELEMENT (gsp), + slv2_value_as_string (group->symbol)))) { + GST_INFO_OBJECT (lv2, "set audio channel positions on src pad %s", + slv2_value_as_string (group->symbol)); + pad_caps = GST_PAD_CAPS (pad); + s = gst_caps_get_structure (caps, 0); + gst_audio_set_channel_positions (s, positions); + gst_object_unref (pad); + } + g_free (positions); + positions = NULL; + } + } + } + return TRUE; + +no_instance: + { + GST_WARNING_OBJECT (gsp, "could not create instance"); + return FALSE; + } +} + +static gboolean +gst_lv2_start (GstSignalProcessor * gsp) +{ + GstLV2 *lv2 = (GstLV2 *) gsp; + + g_return_val_if_fail (lv2->activated == FALSE, FALSE); + g_return_val_if_fail (lv2->instance != NULL, FALSE); + + GST_DEBUG_OBJECT (lv2, "activating"); + + slv2_instance_activate (lv2->instance); + + lv2->activated = TRUE; + + return TRUE; +} + +static void +gst_lv2_stop (GstSignalProcessor * gsp) +{ + GstLV2 *lv2 = (GstLV2 *) gsp; + + g_return_if_fail (lv2->activated == TRUE); + g_return_if_fail (lv2->instance != NULL); + + GST_DEBUG_OBJECT (lv2, "deactivating"); + + slv2_instance_deactivate (lv2->instance); + + lv2->activated = FALSE; +} + +static void +gst_lv2_cleanup (GstSignalProcessor * gsp) +{ + GstLV2 *lv2 = (GstLV2 *) gsp; + + g_return_if_fail (lv2->activated == FALSE); + g_return_if_fail (lv2->instance != NULL); + + GST_DEBUG_OBJECT (lv2, "cleaning up"); + + slv2_instance_free (lv2->instance); + + lv2->instance = NULL; +} + +static void +gst_lv2_process (GstSignalProcessor * gsp, guint nframes) +{ + GstSignalProcessorClass *gsp_class; + GstLV2 *lv2; + GstLV2Class *lv2_class; + GstLV2Group *lv2_group; + GstLV2Port *lv2_port; + GstSignalProcessorGroup *gst_group; + guint i, j; + + gsp_class = GST_SIGNAL_PROCESSOR_GET_CLASS (gsp); + lv2 = (GstLV2 *) gsp; + lv2_class = (GstLV2Class *) gsp_class; + + /* multi channel inputs */ + for (i = 0; i < gsp_class->num_group_in; i++) { + lv2_group = &g_array_index (lv2_class->in_groups, GstLV2Group, i); + gst_group = &gsp->group_in[i]; + for (j = 0; j < lv2_group->ports->len; ++j) { + lv2_port = &g_array_index (lv2_group->ports, GstLV2Port, j); + slv2_instance_connect_port (lv2->instance, lv2_port->index, + gst_group->buffer + (j * nframes)); + } + } + /* mono inputs */ + for (i = 0; i < gsp_class->num_audio_in; i++) { + lv2_port = &g_array_index (lv2_class->audio_in_ports, GstLV2Port, i); + slv2_instance_connect_port (lv2->instance, lv2_port->index, + gsp->audio_in[i]); + } + /* multi channel outputs */ + for (i = 0; i < gsp_class->num_group_out; i++) { + lv2_group = &g_array_index (lv2_class->out_groups, GstLV2Group, i); + gst_group = &gsp->group_out[i]; + for (j = 0; j < lv2_group->ports->len; ++j) { + lv2_port = &g_array_index (lv2_group->ports, GstLV2Port, j); + slv2_instance_connect_port (lv2->instance, lv2_port->index, + gst_group->buffer + (j * nframes)); + } + } + /* mono outputs */ + for (i = 0; i < gsp_class->num_audio_out; i++) { + lv2_port = &g_array_index (lv2_class->audio_out_ports, GstLV2Port, i); + slv2_instance_connect_port (lv2->instance, lv2_port->index, + gsp->audio_out[i]); + } + + slv2_instance_run (lv2->instance, nframes); +} + +/* search the plugin path + */ +static gboolean +lv2_plugin_discover (void) +{ + guint i, j; + SLV2Plugins plugins = slv2_world_get_all_plugins (world); + + for (i = 0; i < slv2_plugins_size (plugins); ++i) { + SLV2Plugin lv2plugin = slv2_plugins_get_at (plugins, i); + gint num_audio_ports = 0; + const gchar *plugin_uri, *p; + gchar *type_name; + GTypeInfo typeinfo = { + sizeof (GstLV2Class), + (GBaseInitFunc) gst_lv2_base_init, + NULL, + (GClassInitFunc) gst_lv2_class_init, + NULL, + lv2plugin, + sizeof (GstLV2), + 0, + (GInstanceInitFunc) gst_lv2_init, + }; + GType type; + + plugin_uri = slv2_value_as_uri (slv2_plugin_get_uri (lv2plugin)); + /* construct the type name from plugin URI */ + if ((p = strstr (plugin_uri, "://"))) { + /* cut off the protocol (e.g. http://) */ + type_name = g_strdup (&p[3]); + } else { + type_name = g_strdup (plugin_uri); + } + g_strcanon (type_name, G_CSET_A_2_Z G_CSET_a_2_z G_CSET_DIGITS "-+", '-'); + + /* if it's already registered, drop it */ + if (g_type_from_name (type_name)) + goto next; + + /* check if this has any audio ports */ + for (j = 0; j < slv2_plugin_get_num_ports (lv2plugin); j++) { + const SLV2Port port = slv2_plugin_get_port_by_index (lv2plugin, j); + if (slv2_port_is_a (lv2plugin, port, audio_class)) { + num_audio_ports++; + } + } + if (!num_audio_ports) { + GST_INFO ("plugin %s has no audio ports", type_name); + goto next; + } + + /* create the type */ + type = + g_type_register_static (GST_TYPE_SIGNAL_PROCESSOR, type_name, &typeinfo, + 0); + + /* FIXME: not needed anymore when we can add pad templates, etc in class_init + * as class_data contains the LADSPA_Descriptor too */ + g_type_set_qdata (type, descriptor_quark, (gpointer) lv2plugin); + + if (!gst_element_register (gst_lv2_plugin, type_name, GST_RANK_NONE, type)) + goto next; + + next: + g_free (type_name); + } + return TRUE; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (lv2_debug, "lv2", + GST_DEBUG_FG_GREEN | GST_DEBUG_BG_BLACK | GST_DEBUG_BOLD, "LV2"); + + world = slv2_world_new (); + slv2_world_load_all (world); + + audio_class = slv2_value_new_uri (world, SLV2_PORT_CLASS_AUDIO); + control_class = slv2_value_new_uri (world, SLV2_PORT_CLASS_CONTROL); + input_class = slv2_value_new_uri (world, SLV2_PORT_CLASS_INPUT); + output_class = slv2_value_new_uri (world, SLV2_PORT_CLASS_OUTPUT); + +#define NS_LV2 "http://lv2plug.in/ns/lv2core#" +#define NS_PG "http://lv2plug.in/ns/ext/port-groups" + + integer_prop = slv2_value_new_uri (world, NS_LV2 "integer"); + toggled_prop = slv2_value_new_uri (world, NS_LV2 "toggled"); + in_place_broken_pred = slv2_value_new_uri (world, NS_LV2 "inPlaceBroken"); + in_group_pred = slv2_value_new_uri (world, NS_PG "inGroup"); + has_role_pred = slv2_value_new_uri (world, NS_PG "role"); + lv2_symbol_pred = slv2_value_new_string (world, NS_LV2 "symbol"); + + center_role = slv2_value_new_uri (world, NS_PG "centerChannel"); + left_role = slv2_value_new_uri (world, NS_PG "leftChannel"); + right_role = slv2_value_new_uri (world, NS_PG "rightChannel"); + rear_center_role = slv2_value_new_uri (world, NS_PG "rearCenterChannel"); + rear_left_role = slv2_value_new_uri (world, NS_PG "rearLeftChannel"); + rear_right_role = slv2_value_new_uri (world, NS_PG "rearRightChannel"); + lfe_role = slv2_value_new_uri (world, NS_PG "lfeChannel"); + center_left_role = slv2_value_new_uri (world, NS_PG "centerLeftChannel"); + center_right_role = slv2_value_new_uri (world, NS_PG "centerRightChannel"); + side_left_role = slv2_value_new_uri (world, NS_PG "sideLeftChannel"); + side_right_role = slv2_value_new_uri (world, NS_PG "sideRightChannel"); + + /* initialize gst controller library */ + gst_controller_init (NULL, NULL); + + gst_plugin_add_dependency_simple (plugin, + "LV2_PATH", GST_LV2_DEFAULT_PATH, NULL, GST_PLUGIN_DEPENDENCY_FLAG_NONE); + + parent_class = g_type_class_ref (GST_TYPE_SIGNAL_PROCESSOR); + + gst_lv2_plugin = plugin; + descriptor_quark = g_quark_from_static_string ("slv2-plugin"); + + /* ensure GstAudioChannelPosition type is registered */ + if (!gst_audio_channel_position_get_type ()) + return FALSE; + + if (!lv2_plugin_discover ()) { + GST_WARNING ("no lv2 plugins found, check LV2_PATH"); + } + + /* we don't want to fail, even if there are no elements registered */ + return TRUE; +} + +#ifdef __GNUC__ +__attribute__ ((destructor)) +#endif + static void plugin_cleanup (GstPlugin * plugin) +{ + slv2_value_free (audio_class); + slv2_value_free (control_class); + slv2_value_free (input_class); + slv2_value_free (output_class); + + slv2_value_free (integer_prop); + slv2_value_free (toggled_prop); + slv2_value_free (in_place_broken_pred); + slv2_value_free (in_group_pred); + slv2_value_free (has_role_pred); + slv2_value_free (lv2_symbol_pred); + + slv2_value_free (center_role); + slv2_value_free (left_role); + slv2_value_free (right_role); + slv2_value_free (rear_center_role); + slv2_value_free (rear_left_role); + slv2_value_free (rear_right_role); + slv2_value_free (lfe_role); + slv2_value_free (center_left_role); + slv2_value_free (center_right_role); + slv2_value_free (side_left_role); + slv2_value_free (side_right_role); + + slv2_world_free (world); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "lv2", + "All LV2 plugins", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/lv2/gstlv2.h b/ext/lv2/gstlv2.h new file mode 100644 index 0000000..85e4532 --- /dev/null +++ b/ext/lv2/gstlv2.h @@ -0,0 +1,95 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * gstladspa.h: Header for LV2 plugin + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_LV2_H__ +#define __GST_LV2_H__ + + +#include + +#include + +#include + + +G_BEGIN_DECLS + + +typedef struct _lv2_control_info { + gchar *name; + gchar *param_name; + gfloat lowerbound, upperbound; + gfloat def; + gboolean lower, upper, samplerate; + gboolean toggled, logarithmic, integer, writable; +} lv2_control_info; + + +typedef struct _GstLV2 GstLV2; +typedef struct _GstLV2Class GstLV2Class; +typedef struct _GstLV2Group GstLV2Group; +typedef struct _GstLV2Port GstLV2Port; + + +struct _GstLV2 { + GstSignalProcessor parent; + + SLV2Plugin plugin; + SLV2Instance instance; + + gboolean activated; +}; + +struct _GstLV2Group { + SLV2Value uri; /**< RDF resource (URI or blank node) */ + guint pad; /**< Gst pad index */ + SLV2Value symbol; /**< Gst pad name / LV2 group symbol */ + GArray *ports; /**< Array of GstLV2Port */ + gboolean has_roles; /**< TRUE iff all ports have a known role */ +}; + +struct _GstLV2Port { + gint index; /**< LV2 port index (on LV2 plugin) */ + gint pad; /**< Gst pad index (iff not part of a group) */ + SLV2Value role; /**< Channel position / port role */ + GstAudioChannelPosition position; /**< Channel position */ +}; + +struct _GstLV2Class { + GstSignalProcessorClass parent_class; + + SLV2Plugin plugin; + + GArray *in_groups; /**< Array of GstLV2Group */ + GArray *out_groups; /**< Array of GstLV2Group */ + GArray *audio_in_ports; /**< Array of GstLV2Port */ + GArray *audio_out_ports; /**< Array of GstLV2Port */ + GArray *control_in_ports; /**< Array of GstLV2Port */ + GArray *control_out_ports; /**< Array of GstLV2Port */ + +}; + + +G_END_DECLS + + +#endif /* __GST_LV2_H__ */ diff --git a/ext/mimic/Makefile.am b/ext/mimic/Makefile.am new file mode 100644 index 0000000..7cf08e4 --- /dev/null +++ b/ext/mimic/Makefile.am @@ -0,0 +1,9 @@ +plugin_LTLIBRARIES = libgstmimic.la + +libgstmimic_la_SOURCES = gstmimic.c gstmimdec.c gstmimenc.c + +libgstmimic_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(MIMIC_CFLAGS) +libgstmimic_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(MIMIC_LIBS) +libgstmimic_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) + +noinst_HEADERS = gstmimdec.h gstmimenc.h diff --git a/ext/mimic/Makefile.in b/ext/mimic/Makefile.in new file mode 100644 index 0000000..d560b4f --- /dev/null +++ b/ext/mimic/Makefile.in @@ -0,0 +1,873 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/mimic +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmimic_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstmimic_la_OBJECTS = libgstmimic_la-gstmimic.lo \ + libgstmimic_la-gstmimdec.lo libgstmimic_la-gstmimenc.lo +libgstmimic_la_OBJECTS = $(am_libgstmimic_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmimic_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link $(CCLD) \ + $(libgstmimic_la_CFLAGS) $(CFLAGS) $(libgstmimic_la_LDFLAGS) \ + $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmimic_la_SOURCES) +DIST_SOURCES = $(libgstmimic_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmimic.la +libgstmimic_la_SOURCES = gstmimic.c gstmimdec.c gstmimenc.c +libgstmimic_la_CFLAGS = $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(MIMIC_CFLAGS) +libgstmimic_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(MIMIC_LIBS) +libgstmimic_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +noinst_HEADERS = gstmimdec.h gstmimenc.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mimic/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/mimic/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmimic.la: $(libgstmimic_la_OBJECTS) $(libgstmimic_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstmimic_la_LINK) -rpath $(plugindir) $(libgstmimic_la_OBJECTS) $(libgstmimic_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmimic_la-gstmimdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmimic_la-gstmimenc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmimic_la-gstmimic.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstmimic_la-gstmimic.lo: gstmimic.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -MT libgstmimic_la-gstmimic.lo -MD -MP -MF $(DEPDIR)/libgstmimic_la-gstmimic.Tpo -c -o libgstmimic_la-gstmimic.lo `test -f 'gstmimic.c' || echo '$(srcdir)/'`gstmimic.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmimic_la-gstmimic.Tpo $(DEPDIR)/libgstmimic_la-gstmimic.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmimic.c' object='libgstmimic_la-gstmimic.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -c -o libgstmimic_la-gstmimic.lo `test -f 'gstmimic.c' || echo '$(srcdir)/'`gstmimic.c + +libgstmimic_la-gstmimdec.lo: gstmimdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -MT libgstmimic_la-gstmimdec.lo -MD -MP -MF $(DEPDIR)/libgstmimic_la-gstmimdec.Tpo -c -o libgstmimic_la-gstmimdec.lo `test -f 'gstmimdec.c' || echo '$(srcdir)/'`gstmimdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmimic_la-gstmimdec.Tpo $(DEPDIR)/libgstmimic_la-gstmimdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmimdec.c' object='libgstmimic_la-gstmimdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -c -o libgstmimic_la-gstmimdec.lo `test -f 'gstmimdec.c' || echo '$(srcdir)/'`gstmimdec.c + +libgstmimic_la-gstmimenc.lo: gstmimenc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -MT libgstmimic_la-gstmimenc.lo -MD -MP -MF $(DEPDIR)/libgstmimic_la-gstmimenc.Tpo -c -o libgstmimic_la-gstmimenc.lo `test -f 'gstmimenc.c' || echo '$(srcdir)/'`gstmimenc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmimic_la-gstmimenc.Tpo $(DEPDIR)/libgstmimic_la-gstmimenc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmimenc.c' object='libgstmimic_la-gstmimenc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmimic_la_CFLAGS) $(CFLAGS) -c -o libgstmimic_la-gstmimenc.lo `test -f 'gstmimenc.c' || echo '$(srcdir)/'`gstmimenc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/mimic/gstmimdec.c b/ext/mimic/gstmimdec.c new file mode 100644 index 0000000..623f749 --- /dev/null +++ b/ext/mimic/gstmimdec.c @@ -0,0 +1,424 @@ +/* + * GStreamer + * Copyright (c) 2005 INdT. + * @author Andre Moreira Magalhaes + * @author Rob Taylor + * @author Philippe Khalaf + * @author Ole André Vadla Ravnås + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-mimdec + * @see_also: mimenc + * + * The MIMIC codec is used by MSN Messenger's webcam support. It consumes the + * TCP header for the MIMIC codec. + * + * Its fourcc is ML20. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstmimdec.h" + +GST_DEBUG_CATEGORY (mimdec_debug); +#define GST_CAT_DEFAULT (mimdec_debug) + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-mimic") + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-rgb, " + "bpp = (int) 24, " + "depth = (int) 24, " + "endianness = (int) 4321, " + "framerate = (fraction) 0/1, " + "red_mask = (int) 16711680, " + "green_mask = (int) 65280, " + "blue_mask = (int) 255, " + "width = (int) 320, " + "height = (int) 240" + ";video/x-raw-rgb, " + "bpp = (int) 24, " + "depth = (int) 24, " + "endianness = (int) 4321, " + "framerate = (fraction) 0/1, " + "red_mask = (int) 16711680, " + "green_mask = (int) 65280, " + "blue_mask = (int) 255, " "width = (int) 160, " "height = (int) 120") + ); + +static void gst_mim_dec_finalize (GObject * object); + +static GstFlowReturn gst_mim_dec_chain (GstPad * pad, GstBuffer * in); +static GstStateChangeReturn +gst_mim_dec_change_state (GstElement * element, GstStateChange transition); + +static gboolean gst_mim_dec_sink_event (GstPad * pad, GstEvent * event); + + +GST_BOILERPLATE (GstMimDec, gst_mim_dec, GstElement, GST_TYPE_ELEMENT); + +static void +gst_mim_dec_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + + gst_element_class_set_details_simple (element_class, + "Mimic Decoder", + "Codec/Decoder/Video", + "MSN Messenger compatible Mimic video decoder element", + "Andre Moreira Magalhaes , " + "Rob Taylor , " + "Philippe Khalaf , " + "Ole André Vadla Ravnås ," + "Olivier Crête change_state = GST_DEBUG_FUNCPTR (gst_mim_dec_change_state); + + gobject_class->finalize = gst_mim_dec_finalize; + + GST_DEBUG_CATEGORY_INIT (mimdec_debug, "mimdec", 0, "Mimic decoder plugin"); +} + +static void +gst_mim_dec_init (GstMimDec * mimdec, GstMimDecClass * klass) +{ + mimdec->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_element_add_pad (GST_ELEMENT (mimdec), mimdec->sinkpad); + gst_pad_set_chain_function (mimdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_mim_dec_chain)); + gst_pad_set_event_function (mimdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_mim_dec_sink_event)); + + mimdec->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_element_add_pad (GST_ELEMENT (mimdec), mimdec->srcpad); + + mimdec->adapter = gst_adapter_new (); + + mimdec->dec = NULL; + mimdec->buffer_size = -1; +} + +static void +gst_mim_dec_finalize (GObject * object) +{ + GstMimDec *mimdec = GST_MIM_DEC (object); + + gst_adapter_clear (mimdec->adapter); + g_object_unref (mimdec->adapter); + + GST_CALL_PARENT (G_OBJECT_CLASS, finalize, (object)); +} + +static GstFlowReturn +gst_mim_dec_chain (GstPad * pad, GstBuffer * buf) +{ + GstMimDec *mimdec; + GstBuffer *out_buf; + guchar *header, *frame_body; + guint32 fourcc; + guint16 header_size; + gint width, height; + GstCaps *caps; + GstFlowReturn res = GST_FLOW_OK; + GstClockTime in_time = GST_BUFFER_TIMESTAMP (buf); + GstEvent *event = NULL; + gboolean result = TRUE; + guint32 payload_size; + guint32 current_ts; + + g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR); + + mimdec = GST_MIM_DEC (gst_pad_get_parent (pad)); + g_return_val_if_fail (GST_IS_MIM_DEC (mimdec), GST_FLOW_ERROR); + + gst_adapter_push (mimdec->adapter, buf); + + + /* do we have enough bytes to read a header */ + while (gst_adapter_available (mimdec->adapter) >= 24) { + header = (guchar *) gst_adapter_peek (mimdec->adapter, 24); + header_size = header[0]; + if (header_size != 24) { + gst_adapter_flush (mimdec->adapter, 24); + GST_ELEMENT_ERROR (mimdec, STREAM, DECODE, (NULL), + ("invalid frame: header size %d incorrect", header_size)); + res = GST_FLOW_ERROR; + goto out; + } + + if (header[1] == 1) { + /* This is a a paused frame, skip it */ + gst_adapter_flush (mimdec->adapter, 24); + continue; + } + + fourcc = GUINT32_FROM_LE (*((guint32 *) (header + 12))); + if (GST_MAKE_FOURCC ('M', 'L', '2', '0') != fourcc) { + gst_adapter_flush (mimdec->adapter, 24); + GST_ELEMENT_ERROR (mimdec, STREAM, WRONG_TYPE, (NULL), + ("invalid frame: unknown FOURCC code %X (%" GST_FOURCC_FORMAT ")", + fourcc, GST_FOURCC_ARGS (fourcc))); + res = GST_FLOW_ERROR; + goto out; + } + + payload_size = GUINT32_FROM_LE (*((guint32 *) (header + 8))); + + current_ts = GUINT32_FROM_LE (*((guint32 *) (header + 20))); + + GST_LOG_OBJECT (mimdec, "Got packet, payload size %d", payload_size); + + if (gst_adapter_available (mimdec->adapter) < payload_size + 24) + goto out; + + /* We have a whole packet and have read the header, lets flush it out */ + gst_adapter_flush (mimdec->adapter, 24); + + frame_body = (guchar *) gst_adapter_peek (mimdec->adapter, payload_size); + + if (mimdec->buffer_size < 0) { + /* Check if its a keyframe, otherwise skip it */ + if (GUINT32_FROM_LE (*((guint32 *) (frame_body + 12))) != 0) { + gst_adapter_flush (mimdec->adapter, payload_size); + res = GST_FLOW_OK; + goto out; + } + + if (!mimic_decoder_init (mimdec->dec, frame_body)) { + gst_adapter_flush (mimdec->adapter, payload_size); + GST_ELEMENT_ERROR (mimdec, LIBRARY, INIT, (NULL), + ("mimic_decoder_init error")); + res = GST_FLOW_ERROR; + goto out; + } + + if (!mimic_get_property (mimdec->dec, "buffer_size", + &mimdec->buffer_size)) { + gst_adapter_flush (mimdec->adapter, payload_size); + GST_ELEMENT_ERROR (mimdec, LIBRARY, INIT, (NULL), + ("mimic_get_property('buffer_size') error")); + res = GST_FLOW_ERROR; + goto out; + } + } + + + if (mimdec->need_newsegment) { + if (GST_CLOCK_TIME_IS_VALID (in_time)) + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, + in_time, -1, 0); + else + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, + current_ts * GST_MSECOND, -1, 0); + } + mimdec->need_newsegment = FALSE; + + if (event) + result = gst_pad_push_event (mimdec->srcpad, event); + event = NULL; + + if (!result) { + GST_WARNING_OBJECT (mimdec, "gst_pad_push_event failed"); + res = GST_FLOW_ERROR; + goto out; + } + + + out_buf = gst_buffer_new_and_alloc (mimdec->buffer_size); + + if (!mimic_decode_frame (mimdec->dec, frame_body, + GST_BUFFER_DATA (out_buf))) { + GST_WARNING_OBJECT (mimdec, "mimic_decode_frame error\n"); + + gst_adapter_flush (mimdec->adapter, payload_size); + + gst_buffer_unref (out_buf); + GST_ELEMENT_ERROR (mimdec, STREAM, DECODE, (NULL), + ("mimic_decode_frame error")); + res = GST_FLOW_ERROR; + goto out; + } + gst_adapter_flush (mimdec->adapter, payload_size); + + if (GST_CLOCK_TIME_IS_VALID (in_time)) + GST_BUFFER_TIMESTAMP (out_buf) = in_time; + else + GST_BUFFER_TIMESTAMP (out_buf) = current_ts * GST_MSECOND; + + mimic_get_property (mimdec->dec, "width", &width); + mimic_get_property (mimdec->dec, "height", &height); + GST_DEBUG_OBJECT (mimdec, + "got WxH %d x %d payload size %d buffer_size %d", + width, height, payload_size, mimdec->buffer_size); + caps = gst_caps_new_simple ("video/x-raw-rgb", + "bpp", G_TYPE_INT, 24, + "depth", G_TYPE_INT, 24, + "endianness", G_TYPE_INT, 4321, + "red_mask", G_TYPE_INT, 16711680, + "green_mask", G_TYPE_INT, 65280, + "blue_mask", G_TYPE_INT, 255, + "framerate", GST_TYPE_FRACTION, 0, 1, + "width", G_TYPE_INT, width, "height", G_TYPE_INT, height, NULL); + gst_buffer_set_caps (out_buf, caps); + gst_caps_unref (caps); + res = gst_pad_push (mimdec->srcpad, out_buf); + + if (res != GST_FLOW_OK) + break; + } + +out: + gst_object_unref (mimdec); + + return res; + +} + +static GstStateChangeReturn +gst_mim_dec_change_state (GstElement * element, GstStateChange transition) +{ + GstMimDec *mimdec; + GstStateChangeReturn ret; + + mimdec = GST_MIM_DEC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + mimdec->dec = mimic_open (); + if (!mimdec) { + GST_ERROR_OBJECT (mimdec, "mimic_open failed"); + return GST_STATE_CHANGE_FAILURE; + } + break; + + case GST_STATE_CHANGE_READY_TO_PAUSED: + mimdec->need_newsegment = TRUE; + gst_adapter_clear (mimdec->adapter); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + if (mimdec->dec != NULL) { + mimic_close (mimdec->dec); + mimdec->dec = NULL; + mimdec->buffer_size = -1; + } + break; + default: + break; + } + + return ret; +} + +static gboolean +gst_mim_dec_sink_event (GstPad * pad, GstEvent * event) +{ + gboolean res = TRUE; + GstMimDec *mimdec = GST_MIM_DEC (gst_pad_get_parent (pad)); + + /* + * Ignore upstream newsegment event, its EVIL, we should implement + * proper seeking instead + */ + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + gboolean update; + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, + &format, &start, &stop, &time); + + /* we need TIME and a positive rate */ + if (format != GST_FORMAT_TIME) + goto newseg_wrong_format; + + if (rate <= 0.0) + goto newseg_wrong_rate; + + mimdec->need_newsegment = FALSE; + + break; + } + case GST_EVENT_FLUSH_STOP: + mimdec->need_newsegment = TRUE; + gst_adapter_clear (mimdec->adapter); + break; + default: + break; + } + + res = gst_pad_push_event (mimdec->srcpad, event); + +done: + + gst_object_unref (mimdec); + + return res; + +newseg_wrong_format: + { + GST_DEBUG_OBJECT (mimdec, "received non TIME newsegment"); + gst_event_unref (event); + goto done; + } +newseg_wrong_rate: + { + GST_DEBUG_OBJECT (mimdec, "negative rates not supported yet"); + gst_event_unref (event); + goto done; + } + + +} diff --git a/ext/mimic/gstmimdec.h b/ext/mimic/gstmimdec.h new file mode 100644 index 0000000..ae5c46c --- /dev/null +++ b/ext/mimic/gstmimdec.h @@ -0,0 +1,65 @@ +/* + * GStreamer + * Copyright (c) 2005 INdT. + * @author Andre Moreira Magalhaes + * @author Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MIM_DEC_H__ +#define __GST_MIM_DEC_H__ + +#include +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_MIM_DEC \ + (gst_mim_dec_get_type()) +#define GST_MIM_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MIM_DEC,GstMimDec)) +#define GST_MIM_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MIM_DEC,GstMimDecClass)) +#define GST_IS_MIM_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MIM_DEC)) +#define GST_IS_MIM_DEC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MIM_DEC)) +typedef struct _GstMimDec GstMimDec; +typedef struct _GstMimDecClass GstMimDecClass; + +struct _GstMimDec +{ + GstElement element; + + GstPad *sinkpad, *srcpad; + + /* Protected by stream lock */ + GstAdapter *adapter; + MimCtx *dec; + gint buffer_size; + gboolean need_newsegment; +}; + +struct _GstMimDecClass +{ + GstElementClass parent_class; +}; + +GType gst_mim_dec_get_type (void); + +G_END_DECLS +#endif /* __GST_MIM_DEC_H__ */ diff --git a/ext/mimic/gstmimenc.c b/ext/mimic/gstmimenc.c new file mode 100644 index 0000000..f4957cc --- /dev/null +++ b/ext/mimic/gstmimenc.c @@ -0,0 +1,622 @@ +/* + * GStreamer + * Copyright (c) 2005 INdT. + * Copyright (c) 2009 Collabora Ltd. + * @author Andre Moreira Magalhaes + * @author Philippe Khalaf + * @author Olivier Crête + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ +/** + * SECTION:element-mimenc + * @see_also: mimdec + * + * The MIMIC codec is used by MSN Messenger's webcam support. It creates the + * TCP header for the MIMIC codec. + * + * When using it to communicate directly with MSN Messenger, if the sender + * wants to stop sending, he has to send a special buffer every 4 seconds. + * When the "paused-mode" property is set to TRUE, if the element receives no + * buffer on its sink pad for 4 seconds, it will produced a special paused + * frame and will continue doing so every 4 seconds until a new buffer is + *u received on its sink pad. + * + * Its fourcc is ML20. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstmimenc.h" + +GST_DEBUG_CATEGORY (mimenc_debug); +#define GST_CAT_DEFAULT (mimenc_debug) + +#define MAX_INTERFRAMES 15 + +#define TCP_HEADER_SIZE 24 + +#define PAUSED_MODE_INTERVAL (4 * GST_SECOND) + + +enum +{ + PROP_0, + PROP_PAUSED_MODE, + PROP_LAST +}; + + +static GstStaticPadTemplate sink_factory = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-rgb, " + "bpp = (int) 24, " + "depth = (int) 24, " + "endianness = (int) 4321, " + "framerate = (fraction) [1/1, 30/1], " + "red_mask = (int) 16711680, " + "green_mask = (int) 65280, " + "blue_mask = (int) 255, " + "width = (int) 320, " + "height = (int) 240" + ";video/x-raw-rgb, " + "bpp = (int) 24, " + "depth = (int) 24, " + "endianness = (int) 4321, " + "framerate = (fraction) [1/1, 30/1], " + "red_mask = (int) 16711680, " + "green_mask = (int) 65280, " + "blue_mask = (int) 255, " "width = (int) 160, " "height = (int) 120") + ); + +static GstStaticPadTemplate src_factory = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-mimic") + ); + + +static gboolean gst_mim_enc_setcaps (GstPad * pad, GstCaps * caps); +static GstFlowReturn gst_mim_enc_chain (GstPad * pad, GstBuffer * in); +static void gst_mim_enc_create_tcp_header (GstMimEnc * mimenc, GstBuffer * buf, + guint32 payload_size, gboolean keyframe, gboolean paused); +static gboolean gst_mim_enc_event (GstPad * pad, GstEvent * event); + +static GstStateChangeReturn +gst_mim_enc_change_state (GstElement * element, GstStateChange transition); + +static void gst_mim_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_mim_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +GST_BOILERPLATE (GstMimEnc, gst_mim_enc, GstElement, GST_TYPE_ELEMENT); + +static void +gst_mim_enc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + GObjectClass *gobject_class = G_OBJECT_CLASS (klass); + + gobject_class->set_property = gst_mim_enc_set_property; + gobject_class->get_property = gst_mim_enc_get_property; + + g_object_class_install_property (gobject_class, PROP_PAUSED_MODE, + g_param_spec_boolean ("paused-mode", "Paused mode", + "If enabled, empty frames will be generated every 4 seconds" + " when no data is received", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_factory)); + gst_element_class_set_details_simple (element_class, + "Mimic Encoder", + "Codec/Encoder/Video", + "MSN Messenger compatible Mimic video encoder element", + "Andre Moreira Magalhaes ," + "Olivier Crête change_state = GST_DEBUG_FUNCPTR (gst_mim_enc_change_state); + + GST_DEBUG_CATEGORY_INIT (mimenc_debug, "mimenc", 0, "Mimic encoder plugin"); +} + +static void +gst_mim_enc_init (GstMimEnc * mimenc, GstMimEncClass * klass) +{ + mimenc->sinkpad = gst_pad_new_from_static_template (&sink_factory, "sink"); + gst_element_add_pad (GST_ELEMENT (mimenc), mimenc->sinkpad); + gst_pad_set_setcaps_function (mimenc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mim_enc_setcaps)); + gst_pad_set_chain_function (mimenc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mim_enc_chain)); + gst_pad_set_event_function (mimenc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mim_enc_event)); + + mimenc->srcpad = gst_pad_new_from_static_template (&src_factory, "src"); + gst_element_add_pad (GST_ELEMENT (mimenc), mimenc->srcpad); + + mimenc->enc = NULL; + + gst_segment_init (&mimenc->segment, GST_FORMAT_UNDEFINED); + + mimenc->res = MIMIC_RES_HIGH; + mimenc->buffer_size = -1; + mimenc->width = 0; + mimenc->height = 0; + mimenc->frames = 0; +} + +static void +gst_mim_enc_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstMimEnc *mimenc = GST_MIM_ENC (object); + + switch (prop_id) { + case PROP_PAUSED_MODE: + GST_OBJECT_LOCK (mimenc); + mimenc->paused_mode = g_value_get_boolean (value); + if (GST_STATE (object) == GST_STATE_PLAYING) + GST_WARNING_OBJECT (object, "Tried to disable paused-mode in a playing" + " encoder, it will not be stopped until it is paused"); + GST_OBJECT_UNLOCK (mimenc); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static void +gst_mim_enc_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMimEnc *mimenc = GST_MIM_ENC (object); + + switch (prop_id) { + case PROP_PAUSED_MODE: + GST_OBJECT_LOCK (mimenc); + g_value_set_boolean (value, mimenc->paused_mode); + GST_OBJECT_UNLOCK (mimenc); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } +} + +static gboolean +gst_mim_enc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstMimEnc *mimenc; + GstStructure *structure; + int ret = TRUE, height, width; + + mimenc = GST_MIM_ENC (gst_pad_get_parent (pad)); + g_return_val_if_fail (mimenc != NULL, FALSE); + g_return_val_if_fail (GST_IS_MIM_ENC (mimenc), FALSE); + + structure = gst_caps_get_structure (caps, 0); + ret = gst_structure_get_int (structure, "width", &width); + if (!ret) { + GST_DEBUG_OBJECT (mimenc, "No width set"); + goto out; + } + ret = gst_structure_get_int (structure, "height", &height); + if (!ret) { + GST_DEBUG_OBJECT (mimenc, "No height set"); + goto out; + } + + GST_OBJECT_LOCK (mimenc); + + if (width == 320 && height == 240) + mimenc->res = MIMIC_RES_HIGH; + else if (width == 160 && height == 120) + mimenc->res = MIMIC_RES_LOW; + else { + GST_WARNING_OBJECT (mimenc, "Invalid resolution %dx%d", width, height); + ret = FALSE; + GST_OBJECT_UNLOCK (mimenc); + goto out; + } + + mimenc->width = (guint16) width; + mimenc->height = (guint16) height; + + GST_DEBUG_OBJECT (mimenc, "Got info from caps w : %d, h : %d", + mimenc->width, mimenc->height); + + if (!mimic_encoder_init (mimenc->enc, mimenc->res)) { + GST_ERROR_OBJECT (mimenc, "mimic_encoder_init error"); + ret = FALSE; + GST_OBJECT_UNLOCK (mimenc); + goto out; + } + + if (!mimic_get_property (mimenc->enc, "buffer_size", &mimenc->buffer_size)) { + GST_ERROR_OBJECT (mimenc, "mimic_get_property(buffer_size) error"); + ret = FALSE; + } + + GST_OBJECT_UNLOCK (mimenc); +out: + gst_object_unref (mimenc); + return ret; +} + +static GstFlowReturn +gst_mim_enc_chain (GstPad * pad, GstBuffer * in) +{ + GstMimEnc *mimenc; + GstBuffer *out_buf = NULL, *buf = NULL; + guchar *data; + gint buffer_size; + GstFlowReturn res = GST_FLOW_OK; + GstEvent *event = NULL; + gboolean keyframe; + + g_return_val_if_fail (GST_IS_PAD (pad), GST_FLOW_ERROR); + mimenc = GST_MIM_ENC (gst_pad_get_parent (pad)); + + g_return_val_if_fail (GST_IS_MIM_ENC (mimenc), GST_FLOW_ERROR); + + GST_OBJECT_LOCK (mimenc); + + if (mimenc->segment.format == GST_FORMAT_UNDEFINED) { + GST_WARNING_OBJECT (mimenc, "No new-segment received," + " initializing segment with time 0..-1"); + gst_segment_init (&mimenc->segment, GST_FORMAT_TIME); + gst_segment_set_newsegment (&mimenc->segment, + FALSE, 1.0, GST_FORMAT_TIME, 0, -1, 0); + } + + if (mimenc->enc == NULL) { + } + + buf = in; + data = GST_BUFFER_DATA (buf); + + out_buf = gst_buffer_new_and_alloc (mimenc->buffer_size + TCP_HEADER_SIZE); + GST_BUFFER_TIMESTAMP (out_buf) = + gst_segment_to_running_time (&mimenc->segment, GST_FORMAT_TIME, + GST_BUFFER_TIMESTAMP (buf)); + mimenc->last_buffer = GST_BUFFER_TIMESTAMP (out_buf); + buffer_size = mimenc->buffer_size; + keyframe = (mimenc->frames % MAX_INTERFRAMES) == 0 ? TRUE : FALSE; + if (!mimic_encode_frame (mimenc->enc, data, + GST_BUFFER_DATA (out_buf) + TCP_HEADER_SIZE, &buffer_size, + keyframe)) { + gst_buffer_unref (out_buf); + gst_buffer_unref (buf); + GST_ELEMENT_ERROR (mimenc, STREAM, ENCODE, (NULL), + ("mimic_encode_frame error")); + res = GST_FLOW_ERROR; + goto out_unlock; + } + if (!keyframe) + GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT); + + GST_BUFFER_SIZE (out_buf) = buffer_size + TCP_HEADER_SIZE; + + GST_LOG_OBJECT (mimenc, "incoming buf size %d, encoded size %d", + GST_BUFFER_SIZE (buf), GST_BUFFER_SIZE (out_buf)); + ++mimenc->frames; + + /* now let's create that tcp header */ + gst_mim_enc_create_tcp_header (mimenc, out_buf, buffer_size, keyframe, FALSE); + + if (mimenc->need_newsegment) { + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, -1, 0); + mimenc->need_newsegment = FALSE; + } + + GST_OBJECT_UNLOCK (mimenc); + + if (event) { + if (!gst_pad_push_event (mimenc->srcpad, event)) + GST_WARNING_OBJECT (mimenc, "Failed to push NEWSEGMENT event"); + } + + res = gst_pad_push (mimenc->srcpad, out_buf); + +out: + if (buf) + gst_buffer_unref (buf); + gst_object_unref (mimenc); + + return res; + +out_unlock: + GST_OBJECT_UNLOCK (mimenc); + goto out; +} + +static void +gst_mim_enc_create_tcp_header (GstMimEnc * mimenc, GstBuffer * buf, + guint32 payload_size, gboolean keyframe, gboolean paused) +{ + /* 24 bytes */ + guchar *p = (guchar *) GST_BUFFER_DATA (buf); + + p[0] = 24; + p[1] = paused ? 1 : 0; + GST_WRITE_UINT16_LE (p + 2, mimenc->width); + GST_WRITE_UINT16_LE (p + 4, mimenc->height); + GST_WRITE_UINT16_LE (p + 6, keyframe ? 1 : 0); + GST_WRITE_UINT32_LE (p + 8, payload_size); + GST_WRITE_UINT32_LE (p + 12, paused ? 0 : + GST_MAKE_FOURCC ('M', 'L', '2', '0')); + GST_WRITE_UINT32_LE (p + 16, 0); + GST_WRITE_UINT32_LE (p + 20, GST_BUFFER_TIMESTAMP (buf) / GST_MSECOND); +} + +static gboolean +gst_mim_enc_event (GstPad * pad, GstEvent * event) +{ + GstMimEnc *mimenc = GST_MIM_ENC (gst_pad_get_parent (pad)); + gboolean ret = TRUE; + gboolean forward = TRUE; + + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_NEWSEGMENT: + { + GstFormat format; + gdouble rate, arate; + gint64 start, stop, time; + gboolean update; + + gst_event_parse_new_segment_full (event, &update, &rate, &arate, + &format, &start, &stop, &time); + + /* we need time for now */ + if (format != GST_FORMAT_TIME) + goto newseg_wrong_format; + + GST_DEBUG_OBJECT (mimenc, + "newsegment: update %d, rate %g, arate %g, start %" GST_TIME_FORMAT + ", stop %" GST_TIME_FORMAT ", time %" GST_TIME_FORMAT, + update, rate, arate, GST_TIME_ARGS (start), GST_TIME_ARGS (stop), + GST_TIME_ARGS (time)); + + /* now configure the values, we need these to time the release of the + * buffers on the srcpad. */ + GST_OBJECT_LOCK (mimenc); + gst_segment_set_newsegment_full (&mimenc->segment, update, + rate, arate, format, start, stop, time); + GST_OBJECT_UNLOCK (mimenc); + forward = FALSE; + break; + + } + break; + case GST_EVENT_FLUSH_STOP: + GST_OBJECT_LOCK (mimenc); + gst_segment_init (&mimenc->segment, GST_FORMAT_UNDEFINED); + mimenc->need_newsegment = TRUE; + GST_OBJECT_UNLOCK (mimenc); + break; + default: + break; + } + + if (forward) + ret = gst_pad_push_event (mimenc->srcpad, event); + else + gst_event_unref (event); + +done: + gst_object_unref (mimenc); + + return ret; + +newseg_wrong_format: + { + GST_DEBUG_OBJECT (mimenc, "received non TIME newsegment"); + gst_event_unref (event); + ret = FALSE; + goto done; + } +} + +static void +paused_mode_task (gpointer data) +{ + GstMimEnc *mimenc = GST_MIM_ENC (data); + GstClockTime now; + GstClockTimeDiff diff; + GstFlowReturn ret; + + GST_OBJECT_LOCK (mimenc); + + if (!GST_ELEMENT_CLOCK (mimenc)) { + GST_OBJECT_UNLOCK (mimenc); + GST_ERROR_OBJECT (mimenc, "Element has no clock"); + gst_pad_pause_task (mimenc->srcpad); + return; + } + + if (mimenc->stop_paused_mode) { + GST_OBJECT_UNLOCK (mimenc); + goto stop_task; + } + + now = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc)); + + diff = now - GST_ELEMENT_CAST (mimenc)->base_time - mimenc->last_buffer; + if (diff < 0) + diff = 0; + + if (diff > 3.95 * GST_SECOND) { + GstBuffer *buffer; + GstEvent *event = NULL; + + buffer = gst_buffer_new_and_alloc (TCP_HEADER_SIZE); + GST_BUFFER_TIMESTAMP (buffer) = mimenc->last_buffer + PAUSED_MODE_INTERVAL; + gst_mim_enc_create_tcp_header (mimenc, buffer, 0, FALSE, TRUE); + + mimenc->last_buffer += PAUSED_MODE_INTERVAL; + + if (mimenc->need_newsegment) { + event = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, 0, -1, 0); + mimenc->need_newsegment = FALSE; + } + + GST_OBJECT_UNLOCK (mimenc); + GST_LOG_OBJECT (mimenc, "Haven't had an incoming buffer in 4 seconds," + " sending out a pause frame"); + + if (event) { + if (!gst_pad_push_event (mimenc->srcpad, event)) + GST_WARNING_OBJECT (mimenc, "Failed to push NEWSEGMENT event"); + } + ret = gst_pad_push (mimenc->srcpad, buffer); + if (ret < 0) { + GST_WARNING_OBJECT (mimenc, "Error pushing paused header: %s", + gst_flow_get_name (ret)); + goto stop_task; + } + } else { + GstClockTime next_stop; + GstClockID id; + + next_stop = now + (PAUSED_MODE_INTERVAL - MIN (diff, PAUSED_MODE_INTERVAL)); + + id = gst_clock_new_single_shot_id (GST_ELEMENT_CLOCK (mimenc), next_stop); + + if (mimenc->stop_paused_mode) { + GST_OBJECT_UNLOCK (mimenc); + goto stop_task; + } + + mimenc->clock_id = id; + GST_OBJECT_UNLOCK (mimenc); + + gst_clock_id_wait (id, NULL); + + GST_OBJECT_LOCK (mimenc); + mimenc->clock_id = NULL; + GST_OBJECT_UNLOCK (mimenc); + + gst_clock_id_unref (id); + } + return; + +stop_task: + + gst_pad_pause_task (mimenc->srcpad); +} + +static GstStateChangeReturn +gst_mim_enc_change_state (GstElement * element, GstStateChange transition) +{ + GstMimEnc *mimenc = GST_MIM_ENC (element); + GstStateChangeReturn ret; + gboolean paused_mode; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + mimenc->enc = mimic_open (); + if (!mimenc) { + GST_ERROR_OBJECT (mimenc, "mimic_open failed"); + return GST_STATE_CHANGE_FAILURE; + } + break; + + case GST_STATE_CHANGE_READY_TO_PAUSED: + GST_OBJECT_LOCK (mimenc); + gst_segment_init (&mimenc->segment, GST_FORMAT_UNDEFINED); + mimenc->last_buffer = GST_CLOCK_TIME_NONE; + mimenc->need_newsegment = TRUE; + GST_OBJECT_UNLOCK (mimenc); + break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + GST_OBJECT_LOCK (mimenc); + if (mimenc->clock_id) + gst_clock_id_unschedule (mimenc->clock_id); + mimenc->stop_paused_mode = TRUE; + GST_OBJECT_UNLOCK (mimenc); + + gst_pad_pause_task (mimenc->srcpad); + + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + GST_OBJECT_LOCK (mimenc); + mimenc->stop_paused_mode = FALSE; + paused_mode = mimenc->paused_mode; + if (paused_mode) { + if (!GST_ELEMENT_CLOCK (mimenc)) { + GST_OBJECT_UNLOCK (mimenc); + GST_ELEMENT_ERROR (mimenc, RESOURCE, FAILED, + ("Using paused-mode requires a clock, but no clock was provided" + " to the element"), (NULL)); + return GST_STATE_CHANGE_FAILURE; + } + if (mimenc->last_buffer == GST_CLOCK_TIME_NONE) + mimenc->last_buffer = gst_clock_get_time (GST_ELEMENT_CLOCK (mimenc)) + - GST_ELEMENT_CAST (mimenc)->base_time; + } + GST_OBJECT_UNLOCK (mimenc); + if (paused_mode) { + if (!gst_pad_start_task (mimenc->srcpad, paused_mode_task, mimenc)) { + ret = GST_STATE_CHANGE_FAILURE; + GST_ERROR_OBJECT (mimenc, "Can not start task"); + } + } + break; + case GST_STATE_CHANGE_READY_TO_NULL: + GST_OBJECT_LOCK (element); + if (mimenc->enc != NULL) { + mimic_close (mimenc->enc); + mimenc->enc = NULL; + mimenc->buffer_size = -1; + mimenc->frames = 0; + } + GST_OBJECT_UNLOCK (element); + break; + + default: + break; + } + + return ret; +} diff --git a/ext/mimic/gstmimenc.h b/ext/mimic/gstmimenc.h new file mode 100644 index 0000000..26ad42d --- /dev/null +++ b/ext/mimic/gstmimenc.h @@ -0,0 +1,74 @@ +/* + * GStreamer + * Copyright (c) 2005 INdT. + * @author Andre Moreira Magalhaes + * @author Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MIM_ENC_H__ +#define __GST_MIM_ENC_H__ + +#include +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_MIM_ENC \ + (gst_mim_enc_get_type()) +#define GST_MIM_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MIM_ENC,GstMimEnc)) +#define GST_MIM_ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MIM_ENC,GstMimEncClass)) +#define GST_IS_MIM_ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MIM_ENC)) +#define GST_IS_MIM_ENC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MIM_ENC)) +typedef struct _GstMimEnc GstMimEnc; +typedef struct _GstMimEncClass GstMimEncClass; + +struct _GstMimEnc +{ + GstElement element; + + GstPad *sinkpad, *srcpad; + + /* Protected by the object lock */ + MimCtx *enc; + + MimicResEnum res; + gint buffer_size; + guint32 frames; + guint16 height, width; + + gboolean paused_mode; + GstSegment segment; + gboolean need_newsegment; + GstClockTime last_buffer; + GstClockID clock_id; + gboolean stop_paused_mode; +}; + +struct _GstMimEncClass +{ + GstElementClass parent_class; +}; + +GType gst_mim_enc_get_type (void); + +G_END_DECLS +#endif /* __GST_MIM_ENC_H__ */ diff --git a/ext/mimic/gstmimic.c b/ext/mimic/gstmimic.c new file mode 100644 index 0000000..c23cc39 --- /dev/null +++ b/ext/mimic/gstmimic.c @@ -0,0 +1,46 @@ +/* + * GStreamer + * Copyright (c) 2005 INdT. + * @author Andre Moreira Magalhaes + * @author Philippe Khalaf + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmimenc.h" +#include "gstmimdec.h" + +static gboolean +plugin_init (GstPlugin * plugin) +{ + if (!gst_element_register (plugin, "mimenc", GST_RANK_NONE, + GST_TYPE_MIM_ENC) || + !gst_element_register (plugin, "mimdec", GST_RANK_NONE, GST_TYPE_MIM_DEC) + ) + return FALSE; + + return TRUE; +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "mimic", + "Mimic codec", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/modplug/Makefile.am b/ext/modplug/Makefile.am new file mode 100644 index 0000000..e952562 --- /dev/null +++ b/ext/modplug/Makefile.am @@ -0,0 +1,9 @@ +plugin_LTLIBRARIES = libgstmodplug.la + +libgstmodplug_la_SOURCES = gstmodplug.cc +libgstmodplug_la_CXXFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MODPLUG_CFLAGS) +libgstmodplug_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lstdc++ $(LIBM) $(MODPLUG_LIBS) +libgstmodplug_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmodplug_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = gstmodplug.h diff --git a/ext/modplug/Makefile.in b/ext/modplug/Makefile.in new file mode 100644 index 0000000..bb6e4bd --- /dev/null +++ b/ext/modplug/Makefile.in @@ -0,0 +1,855 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/modplug +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmodplug_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstmodplug_la_OBJECTS = libgstmodplug_la-gstmodplug.lo +libgstmodplug_la_OBJECTS = $(am_libgstmodplug_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmodplug_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstmodplug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(libgstmodplug_la_CXXFLAGS) $(CXXFLAGS) \ + $(libgstmodplug_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmodplug_la_SOURCES) +DIST_SOURCES = $(libgstmodplug_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmodplug.la +libgstmodplug_la_SOURCES = gstmodplug.cc +libgstmodplug_la_CXXFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MODPLUG_CFLAGS) +libgstmodplug_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) -lstdc++ $(LIBM) $(MODPLUG_LIBS) +libgstmodplug_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmodplug_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = gstmodplug.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/modplug/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/modplug/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmodplug.la: $(libgstmodplug_la_OBJECTS) $(libgstmodplug_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstmodplug_la_LINK) -rpath $(plugindir) $(libgstmodplug_la_OBJECTS) $(libgstmodplug_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmodplug_la-gstmodplug.Plo@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +libgstmodplug_la-gstmodplug.lo: gstmodplug.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmodplug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmodplug_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmodplug_la-gstmodplug.lo -MD -MP -MF $(DEPDIR)/libgstmodplug_la-gstmodplug.Tpo -c -o libgstmodplug_la-gstmodplug.lo `test -f 'gstmodplug.cc' || echo '$(srcdir)/'`gstmodplug.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmodplug_la-gstmodplug.Tpo $(DEPDIR)/libgstmodplug_la-gstmodplug.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmodplug.cc' object='libgstmodplug_la-gstmodplug.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmodplug_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmodplug_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmodplug_la-gstmodplug.lo `test -f 'gstmodplug.cc' || echo '$(srcdir)/'`gstmodplug.cc + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/modplug/gstmodplug.cc b/ext/modplug/gstmodplug.cc new file mode 100644 index 0000000..b6b59eb --- /dev/null +++ b/ext/modplug/gstmodplug.cc @@ -0,0 +1,874 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/* + Code based on modplugxmms + XMMS plugin: + Kenton Varda + Sound Engine: + Olivier Lapicque +*/ + +/** + * SECTION:element-modplug + * + * Modplug uses the modplug + * library to decode tracked music in the MOD/S3M/XM/IT and related formats. + * + * + * Example pipeline + * |[ + * gst-launch -v filesrc location=1990s-nostalgia.xm ! modplug ! audioconvert ! alsasink + * ]| Play a FastTracker xm file. + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +/* Required to not get an undefined warning + * https://bugzilla.gnome.org/show_bug.cgi?id=613795 + */ +#ifndef WORDS_BIGENDIAN +#define WORDS_BIGENDIAN 0 +#endif + +#include +#include + +#include "gstmodplug.h" + +#include +#include +#include + +GST_DEBUG_CATEGORY_STATIC (modplug_debug); +#define GST_CAT_DEFAULT modplug_debug + +enum +{ + ARG_0, + ARG_SONGNAME, + ARG_REVERB, + ARG_REVERB_DEPTH, + ARG_REVERB_DELAY, + ARG_MEGABASS, + ARG_MEGABASS_AMOUNT, + ARG_MEGABASS_RANGE, + ARG_NOISE_REDUCTION, + ARG_SURROUND, + ARG_SURROUND_DEPTH, + ARG_SURROUND_DELAY, + ARG_OVERSAMP +}; + +#define DEFAULT_REVERB FALSE +#define DEFAULT_REVERB_DEPTH 30 +#define DEFAULT_REVERB_DELAY 100 +#define DEFAULT_MEGABASS FALSE +#define DEFAULT_MEGABASS_AMOUNT 40 +#define DEFAULT_MEGABASS_RANGE 30 +#define DEFAULT_SURROUND TRUE +#define DEFAULT_SURROUND_DEPTH 20 +#define DEFAULT_SURROUND_DELAY 20 +#define DEFAULT_OVERSAMP TRUE +#define DEFAULT_NOISE_REDUCTION TRUE + +static GstStaticPadTemplate modplug_src_template_factory = + GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int," + " endianness = (int) BYTE_ORDER," + " signed = (boolean) true," + " width = (int) 32," + " depth = (int) 32," + " rate = (int) { 8000, 11025, 22050, 44100 }," + " channels = (int) [ 1, 2 ]; " + "audio/x-raw-int," + " endianness = (int) BYTE_ORDER," + " signed = (boolean) true," + " width = (int) 16," + " depth = (int) 16," + " rate = (int) { 8000, 11025, 22050, 44100 }," + " channels = (int) [ 1, 2 ]; " + "audio/x-raw-int," + " endianness = (int) BYTE_ORDER," + " signed = (boolean) false," + " width = (int) 8," + " depth = (int) 8," + " rate = (int) { 8000, 11025, 22050, 44100 }, " + " channels = (int) [ 1, 2 ]")); + +static GstStaticPadTemplate modplug_sink_template_factory = + GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-mod; audio/x-xm; audio/x-it; audio/x-s3m; " + "audio/x-stm")); + +static void gst_modplug_dispose (GObject * object); +static void gst_modplug_set_property (GObject * object, + guint id, const GValue * value, GParamSpec * pspec); +static void gst_modplug_get_property (GObject * object, + guint id, GValue * value, GParamSpec * pspec); + +static void gst_modplug_fixate (GstPad * pad, GstCaps * caps); +static const GstQueryType *gst_modplug_get_query_types (GstPad * pad); +static gboolean gst_modplug_src_event (GstPad * pad, GstEvent * event); +static gboolean gst_modplug_src_query (GstPad * pad, GstQuery * query); +static GstStateChangeReturn gst_modplug_change_state (GstElement * element, + GstStateChange transition); + +static gboolean gst_modplug_sinkpad_activate (GstPad * pad); +static gboolean gst_modplug_sinkpad_activate_pull (GstPad * pad, + gboolean active); +static void gst_modplug_loop (GstModPlug * element); + +GST_BOILERPLATE (GstModPlug, gst_modplug, GstElement, GST_TYPE_ELEMENT); + +static void +gst_modplug_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&modplug_sink_template_factory)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&modplug_src_template_factory)); + + gst_element_class_set_details_simple (element_class, "ModPlug", + "Codec/Decoder/Audio", "Module decoder based on modplug engine", + "Jeremy SIMON "); + + GST_DEBUG_CATEGORY_INIT (modplug_debug, "modplug", 0, "ModPlug element"); +} + +static void +gst_modplug_class_init (GstModPlugClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_modplug_set_property; + gobject_class->get_property = gst_modplug_get_property; + gobject_class->dispose = gst_modplug_dispose; + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SONGNAME, + g_param_spec_string ("songname", "Songname", "The song name", + NULL, (GParamFlags) (G_PARAM_READABLE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_REVERB, + g_param_spec_boolean ("reverb", "reverb", "Reverb", + DEFAULT_REVERB, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_REVERB_DEPTH, + g_param_spec_int ("reverb-depth", "reverb depth", "Reverb depth", + 0, 100, DEFAULT_REVERB_DEPTH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_REVERB_DELAY, + g_param_spec_int ("reverb-delay", "reverb delay", "Reverb delay", + 0, 200, DEFAULT_REVERB_DELAY, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MEGABASS, + g_param_spec_boolean ("megabass", "megabass", "Megabass", + DEFAULT_MEGABASS, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MEGABASS_AMOUNT, + g_param_spec_int ("megabass-amount", "megabass amount", "Megabass amount", + 0, 100, DEFAULT_MEGABASS_AMOUNT, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_MEGABASS_RANGE, + g_param_spec_int ("megabass-range", "megabass range", "Megabass range", + 0, 100, DEFAULT_MEGABASS_RANGE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SURROUND, + g_param_spec_boolean ("surround", "surround", "Surround", + DEFAULT_SURROUND, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SURROUND_DEPTH, + g_param_spec_int ("surround-depth", "surround depth", "Surround depth", + 0, 100, DEFAULT_SURROUND_DEPTH, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_SURROUND_DELAY, + g_param_spec_int ("surround-delay", "surround delay", "Surround delay", + 0, 40, DEFAULT_SURROUND_DELAY, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_OVERSAMP, + g_param_spec_boolean ("oversamp", "oversamp", "oversamp", + DEFAULT_OVERSAMP, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_NOISE_REDUCTION, + g_param_spec_boolean ("noise-reduction", "noise reduction", + "noise reduction", DEFAULT_NOISE_REDUCTION, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + gstelement_class->change_state = gst_modplug_change_state; +} + +static void +gst_modplug_init (GstModPlug * modplug, GstModPlugClass * klass) +{ + /* create the sink and src pads */ + modplug->sinkpad = + gst_pad_new_from_static_template (&modplug_sink_template_factory, "sink"); + gst_pad_set_activate_function (modplug->sinkpad, + GST_DEBUG_FUNCPTR (gst_modplug_sinkpad_activate)); + gst_pad_set_activatepull_function (modplug->sinkpad, + GST_DEBUG_FUNCPTR (gst_modplug_sinkpad_activate_pull)); + gst_element_add_pad (GST_ELEMENT (modplug), modplug->sinkpad); + + modplug->srcpad = + gst_pad_new_from_static_template (&modplug_src_template_factory, "src"); + gst_pad_set_fixatecaps_function (modplug->srcpad, + GST_DEBUG_FUNCPTR (gst_modplug_fixate)); + gst_pad_set_event_function (modplug->srcpad, + GST_DEBUG_FUNCPTR (gst_modplug_src_event)); + gst_pad_set_query_function (modplug->srcpad, + GST_DEBUG_FUNCPTR (gst_modplug_src_query)); + gst_pad_set_query_type_function (modplug->srcpad, + GST_DEBUG_FUNCPTR (gst_modplug_get_query_types)); + gst_element_add_pad (GST_ELEMENT (modplug), modplug->srcpad); + + modplug->reverb = DEFAULT_REVERB; + modplug->reverb_depth = DEFAULT_REVERB_DEPTH; + modplug->reverb_delay = DEFAULT_REVERB_DELAY; + modplug->megabass = DEFAULT_MEGABASS; + modplug->megabass_amount = DEFAULT_MEGABASS_AMOUNT; + modplug->megabass_range = DEFAULT_MEGABASS_RANGE; + modplug->surround = DEFAULT_SURROUND; + modplug->surround_depth = DEFAULT_SURROUND_DEPTH; + modplug->surround_delay = DEFAULT_SURROUND_DELAY; + modplug->oversamp = DEFAULT_OVERSAMP; + modplug->noise_reduction = DEFAULT_NOISE_REDUCTION; + + modplug->bits = 16; + modplug->channel = 2; + modplug->frequency = 44100; +} + + +static void +gst_modplug_dispose (GObject * object) +{ + GstModPlug *modplug = GST_MODPLUG (object); + + G_OBJECT_CLASS (parent_class)->dispose (object); + + if (modplug->buffer) { + gst_buffer_unref (modplug->buffer); + modplug->buffer = NULL; + } +} + +static const GstQueryType * +gst_modplug_get_query_types (GstPad * pad) +{ + static const GstQueryType gst_modplug_src_query_types[] = { + GST_QUERY_DURATION, + GST_QUERY_POSITION, + (GstQueryType) 0 + }; + + return gst_modplug_src_query_types; +} + + +static gboolean +gst_modplug_src_query (GstPad * pad, GstQuery * query) +{ + GstModPlug *modplug; + gboolean res = FALSE; + + modplug = GST_MODPLUG (gst_pad_get_parent (pad)); + + if (!modplug->mSoundFile) + goto done; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_DURATION: + { + GstFormat format; + + gst_query_parse_duration (query, &format, NULL); + if (format == GST_FORMAT_TIME) { + gst_query_set_duration (query, format, modplug->song_length); + res = TRUE; + } + } + break; + case GST_QUERY_POSITION: + { + GstFormat format; + + gst_query_parse_position (query, &format, NULL); + if (format == GST_FORMAT_TIME) { + gint64 pos; + + pos = (modplug->song_length * modplug->mSoundFile->GetCurrentPos ()); + pos /= modplug->mSoundFile->GetMaxPosition (); + gst_query_set_position (query, format, pos); + res = TRUE; + } + } + break; + default: + res = gst_pad_query_default (pad, query); + break; + } + +done: + gst_object_unref (modplug); + + return res; +} + +static gboolean +gst_modplug_src_event (GstPad * pad, GstEvent * event) +{ + GstModPlug *modplug; + gboolean res = FALSE; + + modplug = GST_MODPLUG (gst_pad_get_parent (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + { + gdouble rate; + GstFormat format; + GstSeekFlags flags; + GstSeekType cur_type, stop_type; + gboolean flush; + gint64 cur, stop; + guint64 timestamp; + + if (modplug->frequency == 0) { + GST_DEBUG_OBJECT (modplug, "no song loaded yet"); + break; + } + + timestamp = gst_util_uint64_scale_int (modplug->offset, GST_SECOND, + modplug->frequency); + + gst_event_parse_seek (event, &rate, &format, &flags, + &cur_type, &cur, &stop_type, &stop); + + if (format != GST_FORMAT_TIME) { + GST_DEBUG_OBJECT (modplug, "seeking is only supported in TIME format"); + gst_event_unref (event); + break; + } + + /* FIXME: we should be using GstSegment for all this */ + if (cur_type != GST_SEEK_TYPE_SET || stop_type != GST_SEEK_TYPE_NONE) { + GST_DEBUG_OBJECT (modplug, "unsupported seek type"); + gst_event_unref (event); + break; + } + + if (stop_type == GST_SEEK_TYPE_NONE) + stop = GST_CLOCK_TIME_NONE; + + cur = CLAMP (cur, 0, modplug->song_length); + + GST_DEBUG_OBJECT (modplug, "seek to %" GST_TIME_FORMAT, + GST_TIME_ARGS ((guint64) cur)); + + modplug->seek_at = cur; + + flush = ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH); + + if (flush) { + gst_pad_push_event (modplug->srcpad, gst_event_new_flush_start ()); + } else { + gst_pad_stop_task (modplug->sinkpad); + } + + GST_PAD_STREAM_LOCK (modplug->sinkpad); + + if (flags & GST_SEEK_FLAG_SEGMENT) { + gst_element_post_message (GST_ELEMENT (modplug), + gst_message_new_segment_start (GST_OBJECT (modplug), format, cur)); + } + if (stop == -1 && modplug->song_length > 0) + stop = modplug->song_length; + + if (flush) { + gst_pad_push_event (modplug->srcpad, gst_event_new_flush_stop ()); + } + + GST_LOG_OBJECT (modplug, "sending newsegment from %" GST_TIME_FORMAT "-%" + GST_TIME_FORMAT ", pos=%" GST_TIME_FORMAT, + GST_TIME_ARGS ((guint64) cur), GST_TIME_ARGS ((guint64) stop), + GST_TIME_ARGS ((guint64) cur)); + + gst_pad_push_event (modplug->srcpad, + gst_event_new_new_segment (FALSE, rate, + GST_FORMAT_TIME, cur, stop, cur)); + + modplug->offset = + gst_util_uint64_scale_int (cur, modplug->frequency, GST_SECOND); + + gst_pad_start_task (modplug->sinkpad, + (GstTaskFunction) gst_modplug_loop, modplug); + + GST_PAD_STREAM_UNLOCK (modplug->sinkpad); + res = TRUE; + break; + } + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (modplug); + return res; +} + +static void +gst_modplug_fixate (GstPad * pad, GstCaps * caps) +{ + GstStructure *structure; + + structure = gst_caps_get_structure (caps, 0); + if (gst_structure_fixate_field_nearest_int (structure, "rate", 44100)) + return; + if (gst_structure_fixate_field_nearest_int (structure, "channels", 2)) + return; +} + +static gboolean +gst_modplug_load_song (GstModPlug * modplug) +{ + GstCaps *newcaps, *othercaps; + GstStructure *structure; + + GST_DEBUG_OBJECT (modplug, "Setting caps"); + + /* negotiate srcpad caps */ + if ((othercaps = gst_pad_get_allowed_caps (modplug->srcpad))) { + newcaps = gst_caps_copy_nth (othercaps, 0); + gst_caps_unref (othercaps); + } else { + GST_WARNING ("no allowed caps on srcpad, no peer linked"); + /* FIXME: this can be done in a better way */ + newcaps = + gst_caps_copy_nth (gst_pad_get_pad_template_caps (modplug->srcpad), 0); + } + gst_pad_fixate_caps (modplug->srcpad, newcaps); + gst_pad_set_caps (modplug->srcpad, newcaps); + + /* set up modplug to output the negotiated format */ + structure = gst_caps_get_structure (newcaps, 0); + gst_structure_get_int (structure, "depth", &modplug->bits); + gst_structure_get_int (structure, "channels", &modplug->channel); + gst_structure_get_int (structure, "rate", &modplug->frequency); + + modplug->read_samples = 1152; + modplug->read_bytes = + modplug->read_samples * modplug->channel * modplug->bits / 8; + + GST_DEBUG_OBJECT (modplug, "Loading song"); + + modplug->mSoundFile = new CSoundFile; + + modplug->mSoundFile->SetWaveConfig (modplug->frequency, modplug->bits, + modplug->channel); + + modplug->mSoundFile->SetWaveConfigEx (modplug->surround, !modplug->oversamp, + modplug->reverb, true, modplug->megabass, modplug->noise_reduction, true); + modplug->mSoundFile->SetResamplingMode (SRCMODE_POLYPHASE); + + if (modplug->surround) + modplug->mSoundFile->SetSurroundParameters (modplug->surround_depth, + modplug->surround_delay); + + if (modplug->megabass) + modplug->mSoundFile->SetXBassParameters (modplug->megabass_amount, + modplug->megabass_range); + + if (modplug->reverb) + modplug->mSoundFile->SetReverbParameters (modplug->reverb_depth, + modplug->reverb_delay); + + if (!modplug->mSoundFile->Create (GST_BUFFER_DATA (modplug->buffer), + modplug->song_size)) { + GST_ELEMENT_ERROR (modplug, STREAM, DECODE, (NULL), + ("Unable to load song")); + return FALSE; + } + + modplug->song_length = modplug->mSoundFile->GetSongTime () * GST_SECOND; + modplug->seek_at = -1; + + GST_INFO_OBJECT (modplug, "Song length: %" GST_TIME_FORMAT, + GST_TIME_ARGS ((guint64) modplug->song_length)); + + return TRUE; +} + +static gboolean +gst_modplug_sinkpad_activate (GstPad * pad) +{ + if (!gst_pad_check_pull_range (pad)) + return FALSE; + + return gst_pad_activate_pull (pad, TRUE); +} + +static gboolean +gst_modplug_sinkpad_activate_pull (GstPad * pad, gboolean active) +{ + GstModPlug *modplug = GST_MODPLUG (GST_OBJECT_PARENT (pad)); + + if (active) { + return gst_pad_start_task (pad, (GstTaskFunction) gst_modplug_loop, + modplug); + } else { + return gst_pad_stop_task (pad); + } +} + +static gboolean +gst_modplug_get_upstream_size (GstModPlug * modplug, gint64 * length) +{ + GstFormat format = GST_FORMAT_BYTES; + gboolean res = FALSE; + GstPad *peer; + + peer = gst_pad_get_peer (modplug->sinkpad); + if (peer == NULL) + return FALSE; + + if (gst_pad_query_duration (peer, &format, length) && *length >= 0) { + res = TRUE; + } + + gst_object_unref (peer); + return res; +} + +static void +gst_modplug_loop (GstModPlug * modplug) +{ + GstFlowReturn flow; + GstBuffer *out = NULL; + + g_assert (GST_IS_MODPLUG (modplug)); + + /* first, get the size of the song */ + if (!modplug->song_size) { + if (!gst_modplug_get_upstream_size (modplug, &modplug->song_size)) { + GST_ELEMENT_ERROR (modplug, STREAM, DECODE, (NULL), + ("Unable to load song")); + goto pause; + } + + if (modplug->buffer) { + gst_buffer_unref (modplug->buffer); + } + modplug->buffer = gst_buffer_new_and_alloc (modplug->song_size); + modplug->offset = 0; + } + + /* read in the song data */ + if (!modplug->mSoundFile) { + GstBuffer *buffer = NULL; + guint64 read_size = modplug->song_size - modplug->offset; + + if (read_size > 4096) + read_size = 4096; + + flow = + gst_pad_pull_range (modplug->sinkpad, modplug->offset, read_size, + &buffer); + if (flow != GST_FLOW_OK) { + GST_ELEMENT_ERROR (modplug, STREAM, DECODE, (NULL), + ("Unable to load song")); + goto pause; + } + + /* GST_LOG_OBJECT (modplug, "Read %u bytes", GST_BUFFER_SIZE (buffer)); */ + g_memmove (GST_BUFFER_DATA (modplug->buffer) + modplug->offset, + GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer)); + gst_buffer_unref (buffer); + + modplug->offset += read_size; + + /* actually load it */ + if (modplug->offset == modplug->song_size) { + GstEvent *newsegment; + GstTagList *tags; + gboolean ok; + gchar comment[16384]; + + ok = gst_modplug_load_song (modplug); + gst_buffer_unref (modplug->buffer); + modplug->buffer = NULL; + modplug->offset = 0; + + if (!ok) { + goto pause; + } + + newsegment = gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_TIME, + 0, modplug->song_length, 0); + gst_pad_push_event (modplug->srcpad, newsegment); + + /* get and send metadata */ + tags = gst_tag_list_new (); + gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, + GST_TAG_TITLE, modplug->mSoundFile->GetTitle (), + GST_TAG_BEATS_PER_MINUTE, + (gdouble) modplug->mSoundFile->GetMusicTempo (), NULL); + + if (modplug->mSoundFile->GetSongComments ((gchar *) & comment, 16384, 32)) { + gst_tag_list_add (tags, GST_TAG_MERGE_APPEND, + GST_TAG_COMMENT, comment, NULL); + } + + + gst_element_found_tags (GST_ELEMENT (modplug), tags); + } else { + /* not fully loaded yet */ + return; + } + } + + /* could move this to gst_modplug_src_event + * if libmodplug was definitely thread safe.. */ + if (modplug->seek_at != -1) { + gint seek_to_pos; + gfloat temp; + + temp = (gfloat) modplug->song_length / modplug->seek_at; + seek_to_pos = (int) (modplug->mSoundFile->GetMaxPosition () / temp); + + GST_DEBUG_OBJECT (modplug, "Seeking to row %d", seek_to_pos); + + modplug->mSoundFile->SetCurrentPos (seek_to_pos); + modplug->seek_at = -1; + } + + /* read and output a buffer */ + flow = gst_pad_alloc_buffer_and_set_caps (modplug->srcpad, + GST_BUFFER_OFFSET_NONE, modplug->read_bytes, + GST_PAD_CAPS (modplug->srcpad), &out); + + if (flow != GST_FLOW_OK) { + GST_LOG_OBJECT (modplug, "pad alloc flow: %s", gst_flow_get_name (flow)); + goto pause; + } + + if (!modplug->mSoundFile->Read (GST_BUFFER_DATA (out), modplug->read_bytes)) + goto eos; + + GST_BUFFER_SIZE (out) = modplug->read_bytes; + GST_BUFFER_DURATION (out) = + gst_util_uint64_scale_int (modplug->read_samples, GST_SECOND, + modplug->frequency); + GST_BUFFER_OFFSET (out) = modplug->offset; + GST_BUFFER_TIMESTAMP (out) = + gst_util_uint64_scale_int (modplug->offset, GST_SECOND, + modplug->frequency); + + modplug->offset += modplug->read_samples; + + flow = gst_pad_push (modplug->srcpad, out); + + if (flow != GST_FLOW_OK) { + GST_LOG_OBJECT (modplug, "pad push flow: %s", gst_flow_get_name (flow)); + goto pause; + } + + return; + +eos: + { + gst_buffer_unref (out); + GST_INFO_OBJECT (modplug, "EOS"); + gst_pad_push_event (modplug->srcpad, gst_event_new_eos ()); + goto pause; + } + +pause: + { + GST_INFO_OBJECT (modplug, "Pausing"); + gst_pad_pause_task (modplug->sinkpad); + } +} + + +static GstStateChangeReturn +gst_modplug_change_state (GstElement * element, GstStateChange transition) +{ + GstModPlug *modplug; + GstStateChangeReturn ret; + + modplug = GST_MODPLUG (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + modplug->buffer = NULL; + modplug->offset = 0; + modplug->song_size = 0; + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + if (modplug->buffer) { + gst_buffer_unref (modplug->buffer); + modplug->buffer = NULL; + } + if (modplug->mSoundFile) { + modplug->mSoundFile->Destroy (); + modplug->mSoundFile = NULL; + } + break; + default: + break; + } + + return GST_STATE_CHANGE_SUCCESS; +} + + +static void +gst_modplug_set_property (GObject * object, guint id, const GValue * value, + GParamSpec * pspec) +{ + GstModPlug *modplug; + + g_return_if_fail (GST_IS_MODPLUG (object)); + modplug = GST_MODPLUG (object); + + switch (id) { + case ARG_REVERB: + modplug->reverb = g_value_get_boolean (value); + break; + case ARG_REVERB_DEPTH: + modplug->reverb_depth = g_value_get_int (value); + break; + case ARG_REVERB_DELAY: + modplug->reverb_delay = g_value_get_int (value); + break; + case ARG_MEGABASS: + modplug->megabass = g_value_get_boolean (value); + break; + case ARG_MEGABASS_AMOUNT: + modplug->megabass_amount = g_value_get_int (value); + break; + case ARG_MEGABASS_RANGE: + modplug->megabass_range = g_value_get_int (value); + break; + case ARG_NOISE_REDUCTION: + modplug->noise_reduction = g_value_get_boolean (value); + break; + case ARG_SURROUND: + modplug->surround = g_value_get_boolean (value); + break; + case ARG_SURROUND_DEPTH: + modplug->surround_depth = g_value_get_int (value); + break; + case ARG_SURROUND_DELAY: + modplug->surround_delay = g_value_get_int (value); + break; + default: + break; + } +} + +static void +gst_modplug_get_property (GObject * object, guint id, GValue * value, + GParamSpec * pspec) +{ + GstModPlug *modplug; + + g_return_if_fail (GST_IS_MODPLUG (object)); + modplug = GST_MODPLUG (object); + + switch (id) { + case ARG_REVERB: + g_value_set_boolean (value, modplug->reverb); + break; + case ARG_REVERB_DEPTH: + g_value_set_int (value, modplug->reverb_depth); + break; + case ARG_REVERB_DELAY: + g_value_set_int (value, modplug->reverb_delay); + break; + case ARG_MEGABASS: + g_value_set_boolean (value, modplug->megabass); + break; + case ARG_MEGABASS_AMOUNT: + g_value_set_int (value, modplug->megabass_amount); + break; + case ARG_MEGABASS_RANGE: + g_value_set_int (value, modplug->megabass_range); + break; + case ARG_SURROUND: + g_value_set_boolean (value, modplug->surround); + break; + case ARG_SURROUND_DEPTH: + g_value_set_int (value, modplug->surround_depth); + break; + case ARG_SURROUND_DELAY: + g_value_set_int (value, modplug->surround_delay); + break; + case ARG_NOISE_REDUCTION: + g_value_set_boolean (value, modplug->noise_reduction); + break; + default: + break; + } +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "modplug", + GST_RANK_PRIMARY, GST_TYPE_MODPLUG); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "modplug", + ".MOD audio decoding", + plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/modplug/gstmodplug.h b/ext/modplug/gstmodplug.h new file mode 100644 index 0000000..0c02eb2 --- /dev/null +++ b/ext/modplug/gstmodplug.h @@ -0,0 +1,89 @@ +/* GStreamer + * Copyright (C) <1999> Erik Walthinsen + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_MODPLUG_H__ +#define __GST_MODPLUG_H__ + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_MODPLUG \ + (gst_modplug_get_type()) + +#define GST_MODPLUG(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MODPLUG,GstModPlug)) +#define GST_MODPLUG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MODPLUG,GstModPlugClass)) +#define GST_IS_MODPLUG(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MODPLUG)) +#define GST_IS_MODPLUG_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MODPLUG)) + +struct _GstModPlug { + GstElement element; + + GstPad *sinkpad; + GstPad *srcpad; + + /* properties */ + const gchar *songname; + gboolean reverb; + gint reverb_depth; + gint reverb_delay; + gboolean megabass; + gint megabass_amount; + gint megabass_range; + gboolean surround; + gint surround_depth; + gint surround_delay; + gboolean noise_reduction; + gint bits; + gboolean oversamp; + gint channel; + gint frequency; + + /* state */ + GstBuffer *buffer; + + gint32 read_bytes; + gint32 read_samples; + + gint64 seek_at; /* pending seek, or -1 */ + gint64 song_size; /* size of the raw song data in bytes */ + gint64 song_length; /* duration of the song in nanoseconds */ + gint64 offset; /* current position in samples */ + gint64 timestamp; + + CSoundFile *mSoundFile; +}; + +struct _GstModPlugClass { + GstElementClass parent_class; +}; + +typedef struct _GstModPlug GstModPlug; +typedef struct _GstModPlugClass GstModPlugClass; + +GType gst_modplug_get_type (void); + +G_END_DECLS + +#endif /* __GST_MODPLUG_H__ */ diff --git a/ext/mpeg2enc/Makefile.am b/ext/mpeg2enc/Makefile.am new file mode 100644 index 0000000..1e3d944 --- /dev/null +++ b/ext/mpeg2enc/Makefile.am @@ -0,0 +1,22 @@ +plugin_LTLIBRARIES = libgstmpeg2enc.la + +libgstmpeg2enc_la_SOURCES = \ + gstmpeg2enc.cc \ + gstmpeg2encoptions.cc \ + gstmpeg2encoder.cc \ + gstmpeg2encstreamwriter.cc \ + gstmpeg2encpicturereader.cc + +libgstmpeg2enc_la_CXXFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MPEG2ENC_CFLAGS) +libgstmpeg2enc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(MPEG2ENC_LIBS) +libgstmpeg2enc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmpeg2enc_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstmpeg2enc.hh \ + gstmpeg2encoder.hh \ + gstmpeg2encoptions.hh \ + gstmpeg2encstreamwriter.hh \ + gstmpeg2encpicturereader.hh diff --git a/ext/mpeg2enc/Makefile.in b/ext/mpeg2enc/Makefile.in new file mode 100644 index 0000000..879fd42 --- /dev/null +++ b/ext/mpeg2enc/Makefile.in @@ -0,0 +1,911 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/mpeg2enc +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmpeg2enc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgstmpeg2enc_la_OBJECTS = libgstmpeg2enc_la-gstmpeg2enc.lo \ + libgstmpeg2enc_la-gstmpeg2encoptions.lo \ + libgstmpeg2enc_la-gstmpeg2encoder.lo \ + libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo \ + libgstmpeg2enc_la-gstmpeg2encpicturereader.lo +libgstmpeg2enc_la_OBJECTS = $(am_libgstmpeg2enc_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmpeg2enc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) \ + $(libgstmpeg2enc_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmpeg2enc_la_SOURCES) +DIST_SOURCES = $(libgstmpeg2enc_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmpeg2enc.la +libgstmpeg2enc_la_SOURCES = \ + gstmpeg2enc.cc \ + gstmpeg2encoptions.cc \ + gstmpeg2encoder.cc \ + gstmpeg2encstreamwriter.cc \ + gstmpeg2encpicturereader.cc + +libgstmpeg2enc_la_CXXFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MPEG2ENC_CFLAGS) + +libgstmpeg2enc_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(MPEG2ENC_LIBS) + +libgstmpeg2enc_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmpeg2enc_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstmpeg2enc.hh \ + gstmpeg2encoder.hh \ + gstmpeg2encoptions.hh \ + gstmpeg2encstreamwriter.hh \ + gstmpeg2encpicturereader.hh + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mpeg2enc/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/mpeg2enc/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmpeg2enc.la: $(libgstmpeg2enc_la_OBJECTS) $(libgstmpeg2enc_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstmpeg2enc_la_LINK) -rpath $(plugindir) $(libgstmpeg2enc_la_OBJECTS) $(libgstmpeg2enc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg2enc_la-gstmpeg2enc.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoder.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoptions.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encpicturereader.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encstreamwriter.Plo@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +libgstmpeg2enc_la-gstmpeg2enc.lo: gstmpeg2enc.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmpeg2enc_la-gstmpeg2enc.lo -MD -MP -MF $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2enc.Tpo -c -o libgstmpeg2enc_la-gstmpeg2enc.lo `test -f 'gstmpeg2enc.cc' || echo '$(srcdir)/'`gstmpeg2enc.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2enc.Tpo $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2enc.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmpeg2enc.cc' object='libgstmpeg2enc_la-gstmpeg2enc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmpeg2enc_la-gstmpeg2enc.lo `test -f 'gstmpeg2enc.cc' || echo '$(srcdir)/'`gstmpeg2enc.cc + +libgstmpeg2enc_la-gstmpeg2encoptions.lo: gstmpeg2encoptions.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmpeg2enc_la-gstmpeg2encoptions.lo -MD -MP -MF $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoptions.Tpo -c -o libgstmpeg2enc_la-gstmpeg2encoptions.lo `test -f 'gstmpeg2encoptions.cc' || echo '$(srcdir)/'`gstmpeg2encoptions.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoptions.Tpo $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoptions.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmpeg2encoptions.cc' object='libgstmpeg2enc_la-gstmpeg2encoptions.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmpeg2enc_la-gstmpeg2encoptions.lo `test -f 'gstmpeg2encoptions.cc' || echo '$(srcdir)/'`gstmpeg2encoptions.cc + +libgstmpeg2enc_la-gstmpeg2encoder.lo: gstmpeg2encoder.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmpeg2enc_la-gstmpeg2encoder.lo -MD -MP -MF $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoder.Tpo -c -o libgstmpeg2enc_la-gstmpeg2encoder.lo `test -f 'gstmpeg2encoder.cc' || echo '$(srcdir)/'`gstmpeg2encoder.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoder.Tpo $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encoder.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmpeg2encoder.cc' object='libgstmpeg2enc_la-gstmpeg2encoder.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmpeg2enc_la-gstmpeg2encoder.lo `test -f 'gstmpeg2encoder.cc' || echo '$(srcdir)/'`gstmpeg2encoder.cc + +libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo: gstmpeg2encstreamwriter.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo -MD -MP -MF $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encstreamwriter.Tpo -c -o libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo `test -f 'gstmpeg2encstreamwriter.cc' || echo '$(srcdir)/'`gstmpeg2encstreamwriter.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encstreamwriter.Tpo $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encstreamwriter.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmpeg2encstreamwriter.cc' object='libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmpeg2enc_la-gstmpeg2encstreamwriter.lo `test -f 'gstmpeg2encstreamwriter.cc' || echo '$(srcdir)/'`gstmpeg2encstreamwriter.cc + +libgstmpeg2enc_la-gstmpeg2encpicturereader.lo: gstmpeg2encpicturereader.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmpeg2enc_la-gstmpeg2encpicturereader.lo -MD -MP -MF $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encpicturereader.Tpo -c -o libgstmpeg2enc_la-gstmpeg2encpicturereader.lo `test -f 'gstmpeg2encpicturereader.cc' || echo '$(srcdir)/'`gstmpeg2encpicturereader.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encpicturereader.Tpo $(DEPDIR)/libgstmpeg2enc_la-gstmpeg2encpicturereader.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmpeg2encpicturereader.cc' object='libgstmpeg2enc_la-gstmpeg2encpicturereader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmpeg2enc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmpeg2enc_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmpeg2enc_la-gstmpeg2encpicturereader.lo `test -f 'gstmpeg2encpicturereader.cc' || echo '$(srcdir)/'`gstmpeg2encpicturereader.cc + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/mpeg2enc/gstmpeg2enc.cc b/ext/mpeg2enc/gstmpeg2enc.cc new file mode 100644 index 0000000..5c0b426 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2enc.cc @@ -0,0 +1,727 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2enc.cc: gstreamer mpeg2enc wrapping + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-mpeg2enc + * @see_also: mpeg2dec + * + * This element encodes raw video into an MPEG-1/2 elementary stream using the + * mjpegtools library. + * Documentation on MPEG encoding in general can be found in the + * MJPEG Howto + * and on the various available parameters in the documentation + * of the mpeg2enc tool in particular, which shares options with this element. + * + * + * Example pipeline + * |[ + * gst-launch-0.10 videotestsrc num-buffers=1000 ! mpeg2enc ! filesink location=videotestsrc.m1v + * ]| This example pipeline will encode a test video source to a an MPEG1 + * elementary stream (with Generic MPEG1 profile). + * + * Likely, the #GstMpeg2enc:format property + * is most important, as it selects the type of MPEG stream that is produced. + * In particular, default property values are dependent on the format, + * and can even be forcibly restrained to certain pre-sets (and thereby ignored). + * Note that the (S)VCD profiles also restrict the image size, so some scaling + * may be needed to accomodate this. The so-called generic profiles (as used + * in the example above) allow most parameters to be adjusted. + * + * |[ + * gst-launch-0.10 videotestsrc num-buffers=1000 ! videoscale ! mpeg2enc format=1 norm=p ! filesink location=videotestsrc.m1v + * ]| This will produce an MPEG1 profile stream according to VCD2.0 specifications + * for PAL #GstMpeg2enc:norm (as the image height is dependent on video norm). + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmpeg2enc.hh" + +GST_DEBUG_CATEGORY (mpeg2enc_debug); + +#define COMMON_VIDEO_CAPS \ + "width = (int) [ 16, 4096 ], " \ + "height = (int) [ 16, 4096 ], " \ + "framerate = " \ + " (fraction) { 24000/1001, 24/1, 25/1, 30000/1001, 30/1, 50/1, 60000/1001 }" + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/x-raw-yuv, " + "format = (fourcc) { I420 }, " COMMON_VIDEO_CAPS) + ); + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, " + "systemstream = (boolean) false, " + "mpegversion = (int) { 1, 2 }, " COMMON_VIDEO_CAPS) + ); + + +static void gst_mpeg2enc_finalize (GObject * object); +static void gst_mpeg2enc_reset (GstMpeg2enc * enc); +static gboolean gst_mpeg2enc_setcaps (GstPad * pad, GstCaps * caps); +static GstCaps *gst_mpeg2enc_getcaps (GstPad * pad); +static gboolean gst_mpeg2enc_sink_event (GstPad * pad, GstEvent * event); +static void gst_mpeg2enc_loop (GstMpeg2enc * enc); +static GstFlowReturn gst_mpeg2enc_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_mpeg2enc_src_activate_push (GstPad * pad, gboolean active); +static GstStateChangeReturn gst_mpeg2enc_change_state (GstElement * element, + GstStateChange transition); + +static void gst_mpeg2enc_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); +static void gst_mpeg2enc_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); + +static void +_do_init (GType object_type) +{ + const GInterfaceInfo preset_interface_info = { + NULL, /* interface_init */ + NULL, /* interface_finalize */ + NULL /* interface_data */ + }; + + g_type_add_interface_static (object_type, GST_TYPE_PRESET, + &preset_interface_info); +} + +GST_BOILERPLATE_FULL (GstMpeg2enc, gst_mpeg2enc, GstElement, GST_TYPE_ELEMENT, + _do_init); + +static void +gst_mpeg2enc_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (element_class, + "mpeg2enc video encoder", "Codec/Encoder/Video", + "High-quality MPEG-1/2 video encoder", + "Andrew Stevens \n" + "Ronald Bultje "); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); +} + +static void +gst_mpeg2enc_class_init (GstMpeg2encClass * klass) +{ + GObjectClass *object_class = G_OBJECT_CLASS (klass); + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + GST_DEBUG_CATEGORY_INIT (mpeg2enc_debug, "mpeg2enc", 0, "MPEG1/2 encoder"); + + object_class->set_property = gst_mpeg2enc_set_property; + object_class->get_property = gst_mpeg2enc_get_property; + + /* register properties */ + GstMpeg2EncOptions::initProperties (object_class); + + object_class->finalize = GST_DEBUG_FUNCPTR (gst_mpeg2enc_finalize); + + element_class->change_state = GST_DEBUG_FUNCPTR (gst_mpeg2enc_change_state); +} + +static void +gst_mpeg2enc_finalize (GObject * object) +{ + GstMpeg2enc *enc = GST_MPEG2ENC (object); + + if (enc->encoder) { + delete enc->encoder; + + enc->encoder = NULL; + } + delete enc->options; + + g_mutex_free (enc->tlock); + g_cond_free (enc->cond); + g_queue_free (enc->time); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_mpeg2enc_init (GstMpeg2enc * enc, GstMpeg2encClass * g_class) +{ + GstElement *element = GST_ELEMENT (enc); + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + enc->sinkpad = + gst_pad_new_from_template (gst_element_class_get_pad_template + (element_class, "sink"), "sink"); + gst_pad_set_setcaps_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mpeg2enc_setcaps)); + gst_pad_set_getcaps_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mpeg2enc_getcaps)); + gst_pad_set_event_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mpeg2enc_sink_event)); + gst_pad_set_chain_function (enc->sinkpad, + GST_DEBUG_FUNCPTR (gst_mpeg2enc_chain)); + gst_element_add_pad (element, enc->sinkpad); + + enc->srcpad = + gst_pad_new_from_template (gst_element_class_get_pad_template + (element_class, "src"), "src"); + gst_pad_use_fixed_caps (enc->srcpad); + gst_pad_set_activatepush_function (enc->srcpad, + GST_DEBUG_FUNCPTR (gst_mpeg2enc_src_activate_push)); + gst_element_add_pad (element, enc->srcpad); + + enc->options = new GstMpeg2EncOptions (); + enc->encoder = NULL; + + enc->buffer = NULL; + enc->tlock = g_mutex_new (); + enc->cond = g_cond_new (); + enc->time = g_queue_new (); + + gst_mpeg2enc_reset (enc); +} + +static void +gst_mpeg2enc_reset (GstMpeg2enc * enc) +{ + GstBuffer *buf; + + enc->eos = FALSE; + enc->srcresult = GST_FLOW_OK; + + /* in case of error'ed ending */ + if (enc->buffer) + gst_buffer_unref (enc->buffer); + enc->buffer = NULL; + while ((buf = (GstBuffer *) g_queue_pop_head (enc->time))) + gst_buffer_unref (buf); + + if (enc->encoder) { + delete enc->encoder; + + enc->encoder = NULL; + } +} + +/* some (!) coding to get caps depending on the video norm and chosen format */ +static void +gst_mpeg2enc_add_fps (GstStructure * structure, gint fpss[]) +{ + GValue list = { 0, }, fps = { + 0,}; + guint n; + + g_value_init (&list, GST_TYPE_LIST); + g_value_init (&fps, GST_TYPE_FRACTION); + for (n = 0; fpss[n] != 0; n++) { + gst_value_set_fraction (&fps, fpss[n], fpss[n + 1]); + gst_value_list_append_value (&list, &fps); + n++; + } + gst_structure_set_value (structure, "framerate", &list); + g_value_unset (&list); + g_value_unset (&fps); +} + +static inline gint * +gst_mpeg2enc_get_fps (GstMpeg2enc * enc) +{ + static gint fps_pal[] + = { 24, 1, 25, 1, 50, 1, 0 }; + static gint fps_ntsc[] + = { 24000, 1001, 24, 1, 30000, 1001, 30, 1, 60000, 1001, 0 }; + static gint fps_all[] + = { 24000, 1001, 24, 1, 30000, 1001, 30, 1, 60000, 1001, 25, 1, 50, 1, 0 }; + + if (enc->options->norm == 'n') + return fps_ntsc; + else if (enc->options->norm == 0) + return fps_all; + else + return fps_pal; +} + +static GstStructure * +gst_mpeg2enc_structure_from_norm (GstMpeg2enc * enc, gint horiz, + gint pal_v, gint ntsc_v) +{ + GstStructure *structure; + + structure = gst_structure_new ("video/x-raw-yuv", + "format", GST_TYPE_FOURCC, GST_MAKE_FOURCC ('I', '4', '2', '0'), NULL); + + switch (enc->options->norm) { + case 0: + { + GValue list = { 0, } + , val = { + 0,}; + + g_value_init (&list, GST_TYPE_LIST); + g_value_init (&val, G_TYPE_INT); + g_value_set_int (&val, pal_v); + gst_value_list_append_value (&list, &val); + g_value_set_int (&val, ntsc_v); + gst_value_list_append_value (&list, &val); + gst_structure_set_value (structure, "height", &list); + g_value_unset (&list); + g_value_unset (&val); + break; + } + case 'n': + gst_structure_set (structure, "height", G_TYPE_INT, ntsc_v, + (void *) NULL); + break; + default: + gst_structure_set (structure, "height", G_TYPE_INT, pal_v, (void *) NULL); + break; + } + gst_structure_set (structure, "width", G_TYPE_INT, horiz, (void *) NULL); + gst_mpeg2enc_add_fps (structure, gst_mpeg2enc_get_fps (enc)); + + return structure; +} + +static GstCaps * +gst_mpeg2enc_getcaps (GstPad * pad) +{ + GstMpeg2enc *enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + GstCaps *caps; + + caps = GST_PAD_CAPS (pad); + if (caps) { + gst_caps_ref (caps); + return caps; + } + + switch (enc->options->format) { + case 1: /* vcd */ + case 2: /* user vcd */ + caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, + 352, 288, 240), NULL); + break; + case 4: /* svcd */ + case 5: /* user svcd */ + caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, + 480, 576, 480), NULL); + break; + case 6: /* vcd stills */ + /* low resolution */ + caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, + 352, 288, 240), NULL); + /* high resolution */ + gst_caps_append_structure (caps, + gst_mpeg2enc_structure_from_norm (enc, 704, 576, 480)); + break; + case 7: /* svcd stills */ + /* low resolution */ + caps = gst_caps_new_full (gst_mpeg2enc_structure_from_norm (enc, + 480, 576, 480), NULL); + /* high resolution */ + gst_caps_append_structure (caps, + gst_mpeg2enc_structure_from_norm (enc, 704, 576, 480)); + break; + case 0: + case 3: + case 8: + case 9: + default: + caps = gst_caps_copy (gst_pad_get_pad_template_caps (pad)); + gst_mpeg2enc_add_fps (gst_caps_get_structure (caps, 0), + gst_mpeg2enc_get_fps (enc)); + break; + } + + GST_DEBUG_OBJECT (enc, "returned caps %" GST_PTR_FORMAT, caps); + return caps; +} + +static gboolean +gst_mpeg2enc_setcaps (GstPad * pad, GstCaps * caps) +{ + GstMpeg2enc *enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + GstCaps *othercaps = NULL, *mycaps; + gboolean ret; + + /* does not go well to restart stream mid-way */ + if (enc->encoder) + goto refuse_renegotiation; + + /* since mpeg encoder does not really check, let's check caps */ + mycaps = gst_pad_get_caps (pad); + othercaps = gst_caps_intersect (caps, mycaps); + gst_caps_unref (mycaps); + if (!othercaps || gst_caps_is_empty (othercaps)) + goto refuse_caps; + gst_caps_unref (othercaps); + othercaps = NULL; + + /* create new encoder with these settings */ + enc->encoder = new GstMpeg2Encoder (enc->options, GST_ELEMENT (enc), caps); + + if (!enc->encoder->setup ()) + goto refuse_caps; + + /* and set caps on other side, which should accept anyway */ + othercaps = enc->encoder->getFormat (); + ret = gst_pad_set_caps (enc->srcpad, othercaps); + gst_caps_unref (othercaps); + othercaps = NULL; + if (!ret) + goto refuse_caps; + + /* now that we have all the setup and buffers are expected incoming; + * task can get going */ + gst_pad_start_task (enc->srcpad, (GstTaskFunction) gst_mpeg2enc_loop, enc); + + return TRUE; + +refuse_caps: + { + GST_WARNING_OBJECT (enc, "refused caps %" GST_PTR_FORMAT, caps); + + if (othercaps) + gst_caps_unref (othercaps); + + if (enc->encoder) { + delete enc->encoder; + + enc->encoder = NULL; + } + + return FALSE; + } +refuse_renegotiation: + { + GST_WARNING_OBJECT (enc, "refused renegotiation (to %" GST_PTR_FORMAT ")", + caps); + + return FALSE; + } +} + +static gboolean +gst_mpeg2enc_sink_event (GstPad * pad, GstEvent * event) +{ + GstMpeg2enc *enc; + gboolean result = TRUE; + + enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + /* forward event */ + result = gst_pad_push_event (enc->srcpad, event); + + /* no special action as there is not much to flush; + * neither is it possible to halt the mpeg encoding loop */ + goto done; + break; + case GST_EVENT_FLUSH_STOP: + /* forward event */ + result = gst_pad_push_event (enc->srcpad, event); + if (!result) + goto done; + + /* this clears the error state in case of a failure in encoding task; + * so chain function can carry on again */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + enc->srcresult = GST_FLOW_OK; + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + goto done; + break; + case GST_EVENT_EOS: + /* inform the encoding task that it can stop now */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + enc->eos = TRUE; + GST_MPEG2ENC_SIGNAL (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + /* eat this event for now, task will send eos when finished */ + gst_event_unref (event); + goto done; + break; + default: + /* for a serialized event, wait until an earlier buffer is gone, + * though this is no guarantee as to when the encoder is done with it */ + if (GST_EVENT_IS_SERIALIZED (event)) { + GST_MPEG2ENC_MUTEX_LOCK (enc); + while (enc->buffer) + GST_MPEG2ENC_WAIT (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + } + break; + } + + result = gst_pad_push_event (enc->srcpad, event); + +done: + return result; +} + +static void +gst_mpeg2enc_loop (GstMpeg2enc * enc) +{ + /* do not try to resume or start when output problems; + * also ensures a proper (forced) state change */ + if (enc->srcresult != GST_FLOW_OK) + goto ignore; + + if (enc->encoder) { + /* note that init performs a pre-fill and therefore needs buffers */ + enc->encoder->init (); + /* task will stay in here during all of the encoding */ + enc->encoder->encode (); + + /* if not well and truly eos, something strange happened */ + if (!enc->eos) { + GST_ERROR_OBJECT (enc, "encoding task ended without being eos"); + /* notify the chain function that it's over */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + enc->srcresult = GST_FLOW_ERROR; + GST_MPEG2ENC_SIGNAL (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + } else { + /* send eos if this was not a forced stop or other problem */ + if (enc->srcresult == GST_FLOW_OK) + gst_pad_push_event (enc->srcpad, gst_event_new_eos ()); + goto eos; + } + } else { + GST_WARNING_OBJECT (enc, "task started without Mpeg2Encoder"); + } + + /* fall-through */ +done: + { + /* no need to run wildly, stopped elsewhere, e.g. state change */ + GST_DEBUG_OBJECT (enc, "pausing encoding task"); + gst_pad_pause_task (enc->srcpad); + + return; + } +eos: + { + GST_DEBUG_OBJECT (enc, "encoding task reached eos"); + goto done; + } +ignore: + { + GST_DEBUG_OBJECT (enc, "not looping because encoding task encountered %s", + gst_flow_get_name (enc->srcresult)); + goto done; + } +} + +static GstFlowReturn +gst_mpeg2enc_chain (GstPad * pad, GstBuffer * buffer) +{ + GstMpeg2enc *enc; + + enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + + if (G_UNLIKELY (!enc->encoder)) + goto not_negotiated; + + GST_MPEG2ENC_MUTEX_LOCK (enc); + + if (G_UNLIKELY (enc->eos)) + goto eos; + + if (G_UNLIKELY (enc->srcresult != GST_FLOW_OK)) + goto ignore; + + /* things look good, now inform the encoding task that a buffer is ready */ + while (enc->buffer) + GST_MPEG2ENC_WAIT (enc); + enc->buffer = buffer; + g_queue_push_tail (enc->time, gst_buffer_ref (buffer)); + GST_MPEG2ENC_SIGNAL (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + /* buffer will be released by task */ + return GST_FLOW_OK; + + /* special cases */ +not_negotiated: + { + GST_ELEMENT_ERROR (enc, CORE, NEGOTIATION, (NULL), + ("format wasn't negotiated before chain function")); + + gst_buffer_unref (buffer); + return GST_FLOW_NOT_NEGOTIATED; + } +eos: + { + GST_DEBUG_OBJECT (enc, "ignoring buffer at end-of-stream"); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + gst_buffer_unref (buffer); + return GST_FLOW_UNEXPECTED; + } +ignore: + { + GstFlowReturn ret = enc->srcresult; + + GST_DEBUG_OBJECT (enc, + "ignoring buffer because encoding task encountered %s", + gst_flow_get_name (enc->srcresult)); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + gst_buffer_unref (buffer); + return ret; + } +} + +static void +gst_mpeg2enc_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GST_MPEG2ENC (object)->options->getProperty (prop_id, value); +} + +static void +gst_mpeg2enc_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GST_MPEG2ENC (object)->options->setProperty (prop_id, value); +} + +static gboolean +gst_mpeg2enc_src_activate_push (GstPad * pad, gboolean active) +{ + gboolean result = TRUE; + GstMpeg2enc *enc; + + enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + + if (active) { + /* setcaps will start task once encoder is setup */ + } else { + /* can only end the encoding loop by forcing eos */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + enc->eos = TRUE; + enc->srcresult = GST_FLOW_WRONG_STATE; + GST_MPEG2ENC_SIGNAL (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + /* encoding loop should have ended now and can be joined */ + result = gst_pad_stop_task (pad); + } + + return result; +} + +static GstStateChangeReturn +gst_mpeg2enc_change_state (GstElement * element, GstStateChange transition) +{ + GstMpeg2enc *enc = GST_MPEG2ENC (element); + GstStateChangeReturn ret; + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + goto done; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_mpeg2enc_reset (enc); + break; + default: + break; + } + +done: + return ret; +} + +#ifndef GST_DISABLE_GST_DEBUG + +static mjpeg_log_handler_t old_handler = NULL; + +/* note that this will affect all mjpegtools elements/threads */ +static void +gst_mpeg2enc_log_callback (log_level_t level, const char *message) +{ + GstDebugLevel gst_level; + +#if GST_MJPEGTOOLS_API >= 10903 + static const gint mjpeg_log_error = mjpeg_loglev_t ("error"); + static const gint mjpeg_log_warn = mjpeg_loglev_t ("warn"); + static const gint mjpeg_log_info = mjpeg_loglev_t ("info"); + static const gint mjpeg_log_debug = mjpeg_loglev_t ("debug"); +#else + static const gint mjpeg_log_error = LOG_ERROR; + static const gint mjpeg_log_warn = LOG_WARN; + static const gint mjpeg_log_info = LOG_INFO; + static const gint mjpeg_log_debug = LOG_DEBUG; +#endif + + if (level == mjpeg_log_error) { + gst_level = GST_LEVEL_ERROR; + } else if (level == mjpeg_log_warn) { + gst_level = GST_LEVEL_WARNING; + } else if (level == mjpeg_log_info) { + gst_level = GST_LEVEL_INFO; + } else if (level == mjpeg_log_debug) { + gst_level = GST_LEVEL_DEBUG; + } else { + gst_level = GST_LEVEL_INFO; + } + + /* message could have a % in it, do not segfault in such case */ + gst_debug_log (mpeg2enc_debug, gst_level, "", "", 0, NULL, "%s", message); + + /* chain up to the old handler; + * this could actually be a handler from another mjpegtools based + * plugin; in which case messages can come out double or from + * the wrong plugin (element)... */ + old_handler (level, message); +} +#endif + +static gboolean +plugin_init (GstPlugin * plugin) +{ +#ifndef GST_DISABLE_GST_DEBUG + old_handler = mjpeg_log_set_handler (gst_mpeg2enc_log_callback); + g_assert (old_handler != NULL); +#endif + /* in any case, we do not want default handler output */ + mjpeg_default_handler_verbosity (0); + + return gst_element_register (plugin, "mpeg2enc", + GST_RANK_MARGINAL, GST_TYPE_MPEG2ENC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "mpeg2enc", + "High-quality MPEG-1/2 video encoder", + plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/mpeg2enc/gstmpeg2enc.hh b/ext/mpeg2enc/gstmpeg2enc.hh new file mode 100644 index 0000000..413e51e --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2enc.hh @@ -0,0 +1,104 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2enc.hh: object definition + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPEG2ENC_H__ +#define __GST_MPEG2ENC_H__ + +#include +#include "gstmpeg2encoptions.hh" +#include "gstmpeg2encoder.hh" + +G_BEGIN_DECLS + +#define GST_TYPE_MPEG2ENC \ + (gst_mpeg2enc_get_type ()) +#define GST_MPEG2ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MPEG2ENC, GstMpeg2enc)) +#define GST_MPEG2ENC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MPEG2ENC, GstMpeg2enc)) +#define GST_IS_MPEG2ENC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MPEG2ENC)) +#define GST_IS_MPEG2ENC_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MPEG2ENC)) + +GST_DEBUG_CATEGORY_EXTERN (mpeg2enc_debug); +#define GST_CAT_DEFAULT mpeg2enc_debug + +#define GST_MPEG2ENC_MUTEX_LOCK(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "locking tlock from thread %p", g_thread_self ()); \ + g_mutex_lock (m->tlock); \ + GST_LOG_OBJECT (m, "locked tlock from thread %p", g_thread_self ()); \ +} G_STMT_END + +#define GST_MPEG2ENC_MUTEX_UNLOCK(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "unlocking tlock from thread %p", g_thread_self ()); \ + g_mutex_unlock (m->tlock); \ +} G_STMT_END + +#define GST_MPEG2ENC_WAIT(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "thread %p waiting", g_thread_self ()); \ + g_cond_wait (m->cond, m->tlock); \ +} G_STMT_END + +#define GST_MPEG2ENC_SIGNAL(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "signalling from thread %p", g_thread_self ()); \ + g_cond_signal (m->cond); \ +} G_STMT_END + +typedef struct _GstMpeg2enc { + GstElement parent; + + /* pads */ + GstPad *sinkpad, *srcpad; + + /* options wrapper */ + GstMpeg2EncOptions *options; + + /* general encoding object (contains rest) */ + GstMpeg2Encoder *encoder; + + /* lock for syncing with encoding task */ + GMutex *tlock; + /* with TLOCK */ + /* signals counterpart thread that something changed; + * buffer ready for task or buffer has been processed */ + GCond *cond; + /* seen eos */ + gboolean eos; + /* flowreturn obtained by encoding task */ + GstFlowReturn srcresult; + /* buffer for encoding task */ + GstBuffer *buffer; + /* timestamps for output */ + GQueue *time; + +} GstMpeg2enc; + +typedef struct _GstMpeg2encClass { + GstElementClass parent; +} GstMpeg2encClass; + +GType gst_mpeg2enc_get_type (void); + +G_END_DECLS + +#endif /* __GST_MPEG2ENC_H__ */ diff --git a/ext/mpeg2enc/gstmpeg2encoder.cc b/ext/mpeg2enc/gstmpeg2encoder.cc new file mode 100644 index 0000000..acfda50 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encoder.cc @@ -0,0 +1,153 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2encoder.cc: gstreamer/mpeg2enc encoder class + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#if GST_MJPEGTOOLS_API >= 10900 +#include +#include +#include +#else +#include +#endif +#include +#include + +#include "gstmpeg2enc.hh" +#include "gstmpeg2encoder.hh" + +/* + * Class init stuff. + */ + +GstMpeg2Encoder::GstMpeg2Encoder (GstMpeg2EncOptions * options, GstElement * in_element, GstCaps * in_caps): +MPEG2Encoder (*options) +{ + element = in_element; + gst_object_ref (element); + caps = in_caps; + gst_caps_ref (in_caps); + init_done = FALSE; +} + +GstMpeg2Encoder::~GstMpeg2Encoder () +{ + gst_caps_unref (caps); + gst_object_unref (element); +} + +gboolean GstMpeg2Encoder::setup () +{ + MPEG2EncInVidParams + strm; + GstMpeg2enc * + enc; + + enc = GST_MPEG2ENC (element); + + /* I/O */ + reader = new GstMpeg2EncPictureReader (element, caps, &parms); + reader->StreamPictureParams (strm); +#if GST_MJPEGTOOLS_API == 10800 + /* chain thread caters for reading, do not need another thread for this */ + options.allow_parallel_read = FALSE; +#endif + if (options.SetFormatPresets (strm)) { + return FALSE; + } + writer = new GstMpeg2EncStreamWriter (enc->srcpad, &parms); + + /* encoding internals */ + quantizer = new Quantizer (parms); +#if GST_MJPEGTOOLS_API < 10900 + bitrate_controller = new OnTheFlyRateCtl (parms); +#else + pass1ratectl = new OnTheFlyPass1 (parms); + pass2ratectl = new OnTheFlyPass2 (parms); +#endif +#if GST_MJPEGTOOLS_API >= 10900 + /* sequencer */ + seqencoder = new SeqEncoder (parms, *reader, *quantizer, + *writer, *pass1ratectl, *pass2ratectl); +#elif GST_MJPEGTOOLS_API >= 10800 + /* sequencer */ + seqencoder = new SeqEncoder (parms, *reader, *quantizer, + *writer, *bitrate_controller); +#else + coder = new MPEG2Coder (parms, *writer); + /* sequencer */ + seqencoder = new SeqEncoder (parms, *reader, *quantizer, + *writer, *coder, *bitrate_controller); +#endif + + return TRUE; +} + +void +GstMpeg2Encoder::init () +{ + if (!init_done) { + parms.Init (options); + reader->Init (); + quantizer->Init (); +#if GST_MJPEGTOOLS_API >= 10800 + seqencoder->Init (); +#endif + init_done = TRUE; + } +} + +/* + * Process all input provided by the reader until it signals eos. + */ + +void +GstMpeg2Encoder::encode () +{ + /* hm, this is all... eek! */ +#if GST_MJPEGTOOLS_API >= 10800 + seqencoder->EncodeStream (); +#else + seqencoder->Encode (); +#endif +} + +/* + * Get current output format. + */ + +GstCaps * +GstMpeg2Encoder::getFormat () +{ + y4m_ratio_t fps = mpeg_framerate (options.frame_rate); + + return gst_caps_new_simple ("video/mpeg", + "systemstream", G_TYPE_BOOLEAN, FALSE, + "mpegversion", G_TYPE_INT, options.mpeg, + "width", G_TYPE_INT, options.in_img_width, + "height", G_TYPE_INT, options.in_img_height, + "framerate", GST_TYPE_FRACTION, fps.n, fps.d, NULL); +} diff --git a/ext/mpeg2enc/gstmpeg2encoder.hh b/ext/mpeg2enc/gstmpeg2encoder.hh new file mode 100644 index 0000000..94cf576 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encoder.hh @@ -0,0 +1,53 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2encoder.hh: gstreamer/mpeg2enc encoder class + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPEG2ENCODER_H__ +#define __GST_MPEG2ENCODER_H__ + + +#include +#include "gstmpeg2encoptions.hh" +#include "gstmpeg2encpicturereader.hh" +#include "gstmpeg2encstreamwriter.hh" + +class GstMpeg2Encoder : public MPEG2Encoder { +public: + GstMpeg2Encoder (GstMpeg2EncOptions *options, + GstElement *element, GstCaps *caps); + ~GstMpeg2Encoder (); + + gboolean setup (); + void init (); + + /* process stream */ + void encode (); + + /* get current output format */ + GstCaps *getFormat (); + +private: + GstElement *element; + GstCaps *caps; + gboolean init_done; +}; + +#endif /* __GST_MPEG2ENCODER_H__ */ diff --git a/ext/mpeg2enc/gstmpeg2encoptions.cc b/ext/mpeg2enc/gstmpeg2encoptions.cc new file mode 100644 index 0000000..e69e875 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encoptions.cc @@ -0,0 +1,773 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmpeg2encoptions.cc: gobject/mpeg2enc option wrapping class + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmpeg2encoptions.hh" +#ifdef WIN32 +# include //For GetSystemInfo +#endif + +#include + +/* + * Property enumeration. + */ + +enum +{ + ARG_0, + ARG_FORMAT, + ARG_FRAMERATE, + ARG_ASPECT, + ARG_INTERLACE_MODE, + ARG_BITRATE, + ARG_NONVIDEO_BITRATE, + ARG_QUANTISATION, + ARG_VCD_STILL_SIZE, + ARG_MOTION_SEARCH_RADIUS, + ARG_REDUCTION_4_4, + ARG_REDUCTION_2_2, + ARG_UNIT_COEFF_ELIM, + ARG_MIN_GOP_SIZE, + ARG_MAX_GOP_SIZE, + ARG_CLOSED_GOP, + ARG_FORCE_B_B_P, + ARG_B_PER_REFFRAME, + ARG_QUANTISATION_REDUCTION, + ARG_QUANT_REDUCTION_MAX_VAR, + ARG_INTRA_DC_PRECISION, + ARG_REDUCE_HF, + ARG_KEEP_HF, + ARG_QUANTISATION_MATRIX, + ARG_BUFSIZE, + ARG_VIDEO_NORM, + ARG_SEQUENCE_LENGTH, + ARG_3_2_PULLDOWN, + ARG_SEQUENCE_HEADER_EVERY_GOP, + ARG_PLAYBACK_FIELD_ORDER, + ARG_DUMMY_SVCD_SOF, + ARG_CORRECT_SVCD_HDS, + ARG_ALTSCAN_MPEG2, + ARG_CONSTRAINTS, + ARG_DUALPRIME_MPEG2 + /* FILL ME */ +}; + +/* MPEG1 VCD bitrate is used as default (also by mpeg2enc) */ +#define DEFAULT_BITRATE 1125 + +/* + * Property enumeration types. + */ + +/* FIXME: nick/name perhaps to be reversed (?) */ + +#define GST_TYPE_MPEG2ENC_FORMAT \ + (gst_mpeg2enc_format_get_type ()) + +static GType +gst_mpeg2enc_format_get_type (void) +{ + static GType mpeg2enc_format_type = 0; + + if (!mpeg2enc_format_type) { + static const GEnumValue mpeg2enc_formats[] = { + {MPEG_FORMAT_MPEG1, "Generic MPEG-1", "0"}, + {MPEG_FORMAT_VCD, "Standard VCD", "1"}, + {MPEG_FORMAT_VCD_NSR, "User VCD", "2"}, + {MPEG_FORMAT_MPEG2, "Generic MPEG-2", "3"}, + {MPEG_FORMAT_SVCD, "Standard SVCD", "4"}, + {MPEG_FORMAT_SVCD_NSR, "User SVCD", "5"}, + {MPEG_FORMAT_VCD_STILL, "VCD Stills sequences", "6"}, + {MPEG_FORMAT_SVCD_STILL, "SVCD Stills sequences", "7"}, + {MPEG_FORMAT_DVD_NAV, "DVD MPEG-2 for dvdauthor", "8"}, + {MPEG_FORMAT_DVD, "DVD MPEG-2", "9"}, +#ifdef MPEG_FORMAT_ATSC1080i + {MPEG_FORMAT_ATSC480i, "ATSC 480i", "10"}, + {MPEG_FORMAT_ATSC480p, "ATSC 480p", "11"}, + {MPEG_FORMAT_ATSC720p, "ATSC 720p", "12"}, + {MPEG_FORMAT_ATSC1080i, "ATSC 1080i", "13"}, +#endif + {0, NULL, NULL}, + }; + + mpeg2enc_format_type = + g_enum_register_static ("GstMpeg2encFormat", mpeg2enc_formats); + } + + return mpeg2enc_format_type; +} + +#define GST_TYPE_MPEG2ENC_FRAMERATE \ + (gst_mpeg2enc_framerate_get_type ()) + +static GType +gst_mpeg2enc_framerate_get_type (void) +{ + static GType mpeg2enc_framerate_type = 0; + + if (!mpeg2enc_framerate_type) { + static const GEnumValue mpeg2enc_framerates[] = { + {0, "Same as input", "0"}, + {1, "24/1.001 (NTSC 3:2 pulldown converted film)", "1"}, + {2, "24 (native film)", "2"}, + {3, "25 (PAL/SECAM video)", "3"}, + {4, "30/1.001 (NTSC video)", "4"}, + {5, "30", "5"}, + {6, "50 (PAL/SECAM fields)", "6"}, + {7, "60/1.001 (NTSC fields)", "7"}, + {8, "60", "8"}, + {0, NULL, NULL}, + }; + + mpeg2enc_framerate_type = + g_enum_register_static ("GstMpeg2encFramerate", mpeg2enc_framerates); + } + + return mpeg2enc_framerate_type; +} + +#define GST_TYPE_MPEG2ENC_ASPECT \ + (gst_mpeg2enc_aspect_get_type ()) + +static GType +gst_mpeg2enc_aspect_get_type (void) +{ + static GType mpeg2enc_aspect_type = 0; + + if (!mpeg2enc_aspect_type) { + static const GEnumValue mpeg2enc_aspects[] = { + {0, "Deduce from input", "0"}, + {1, "1:1", "1"}, + {2, "4:3", "2"}, + {3, "16:9", "3"}, + {4, "2.21:1", "4"}, + {0, NULL, NULL}, + }; + + mpeg2enc_aspect_type = + g_enum_register_static ("GstMpeg2encAspect", mpeg2enc_aspects); + } + + return mpeg2enc_aspect_type; +} + +#define GST_TYPE_MPEG2ENC_INTERLACE_MODE \ + (gst_mpeg2enc_interlace_mode_get_type ()) + +static GType +gst_mpeg2enc_interlace_mode_get_type (void) +{ + static GType mpeg2enc_interlace_mode_type = 0; + + if (!mpeg2enc_interlace_mode_type) { + static const GEnumValue mpeg2enc_interlace_modes[] = { + {-1, "Format default mode", "-1"}, + {0, "Progressive", "0"}, + {1, "Interlaced, per-frame encoding", "1"}, + {2, "Interlaced, per-field-encoding", "2"}, + {0, NULL, NULL}, + }; + + mpeg2enc_interlace_mode_type = + g_enum_register_static ("GstMpeg2encInterlaceMode", + mpeg2enc_interlace_modes); + } + + return mpeg2enc_interlace_mode_type; +} + +#define GST_TYPE_MPEG2ENC_QUANTISATION_MATRIX \ + (gst_mpeg2enc_quantisation_matrix_get_type ()) + +#define GST_MPEG2ENC_QUANTISATION_MATRIX_DEFAULT 0 +#define GST_MPEG2ENC_QUANTISATION_MATRIX_HI_RES 1 +#define GST_MPEG2ENC_QUANTISATION_MATRIX_KVCD 2 +#define GST_MPEG2ENC_QUANTISATION_MATRIX_TMPGENC 3 + +static GType +gst_mpeg2enc_quantisation_matrix_get_type (void) +{ + static GType mpeg2enc_quantisation_matrix_type = 0; + + if (!mpeg2enc_quantisation_matrix_type) { + static const GEnumValue mpeg2enc_quantisation_matrixes[] = { + {GST_MPEG2ENC_QUANTISATION_MATRIX_DEFAULT, + "Default", "9"}, + {GST_MPEG2ENC_QUANTISATION_MATRIX_HI_RES, + "High resolution", "1"}, + {GST_MPEG2ENC_QUANTISATION_MATRIX_KVCD, + "KVCD", "2"}, + {GST_MPEG2ENC_QUANTISATION_MATRIX_TMPGENC, + "TMPGEnc", "3"}, + {0, NULL, NULL}, + }; + + mpeg2enc_quantisation_matrix_type = + g_enum_register_static ("GstMpeg2encQuantisationMatrix", + mpeg2enc_quantisation_matrixes); + } + + return mpeg2enc_quantisation_matrix_type; +} + +#define GST_TYPE_MPEG2ENC_VIDEO_NORM \ + (gst_mpeg2enc_video_norm_get_type ()) + +static GType +gst_mpeg2enc_video_norm_get_type (void) +{ + static GType mpeg2enc_video_norm_type = 0; + + if (!mpeg2enc_video_norm_type) { + static const GEnumValue mpeg2enc_video_norms[] = { + {0, "Unspecified", "0"}, + {'p', "PAL", "p"}, + {'n', "NTSC", "n"}, + {'s', "SECAM", "s"}, + {0, NULL, NULL}, + }; + + mpeg2enc_video_norm_type = + g_enum_register_static ("GstMpeg2encVideoNorm", mpeg2enc_video_norms); + } + + return mpeg2enc_video_norm_type; +} + +#define GST_TYPE_MPEG2ENC_PLAYBACK_FIELD_ORDER \ + (gst_mpeg2enc_playback_field_order_get_type ()) + +static GType +gst_mpeg2enc_playback_field_order_get_type (void) +{ + static GType mpeg2enc_playback_field_order_type = 0; + + if (!mpeg2enc_playback_field_order_type) { + static const GEnumValue mpeg2enc_playback_field_orders[] = { + {Y4M_UNKNOWN, "Unspecified", "0"}, + {Y4M_ILACE_TOP_FIRST, "Top-field first", "1"}, + {Y4M_ILACE_BOTTOM_FIRST, "Bottom-field first", "2"}, + {0, NULL, NULL}, + }; + + mpeg2enc_playback_field_order_type = + g_enum_register_static ("GstMpeg2encPlaybackFieldOrders", + mpeg2enc_playback_field_orders); + } + + return mpeg2enc_playback_field_order_type; +} + +/* + * Class init stuff. + */ + +GstMpeg2EncOptions::GstMpeg2EncOptions (): +MPEG2EncOptions () +{ + /* autodetect number of CPUs */ +#ifndef WIN32 + num_cpus = sysconf (_SC_NPROCESSORS_ONLN); +#else + SYSTEM_INFO si; + GetSystemInfo(&si); + num_cpus = si.dwNumberOfProcessors; +#endif + if (num_cpus < 0) + num_cpus = 1; + if (num_cpus > 32) + num_cpus = 32; + + /* set some default(s) not set in base class */ + bitrate = DEFAULT_BITRATE * 1000; +} + +/* + * Init properties (call once). + */ + +void +GstMpeg2EncOptions::initProperties (GObjectClass * klass) +{ + /* encoding profile */ + g_object_class_install_property (klass, ARG_FORMAT, + g_param_spec_enum ("format", "Format", "Encoding profile format", + GST_TYPE_MPEG2ENC_FORMAT, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* input/output stream overrides */ + g_object_class_install_property (klass, ARG_FRAMERATE, + g_param_spec_enum ("framerate", "Framerate", "Output framerate", + GST_TYPE_MPEG2ENC_FRAMERATE, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_ASPECT, + g_param_spec_enum ("aspect", "Aspect", "Display aspect ratio", + GST_TYPE_MPEG2ENC_ASPECT, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_INTERLACE_MODE, + g_param_spec_enum ("interlace-mode", "Interlace mode", + "MPEG-2 motion estimation and encoding modes", + GST_TYPE_MPEG2ENC_INTERLACE_MODE, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* general encoding stream options */ + g_object_class_install_property (klass, ARG_BITRATE, + g_param_spec_int ("bitrate", "Bitrate", "Compressed video bitrate (kbps)", + 0, 10 * 1000, DEFAULT_BITRATE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_NONVIDEO_BITRATE, + g_param_spec_int ("non-video-bitrate", "Non-video bitrate", + "Assumed bitrate of non-video for sequence splitting (kbps)", + 0, 10 * 1000, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_QUANTISATION, + g_param_spec_int ("quantisation", "Quantisation", + "Quantisation factor (-1=cbr, 0=default, 1=best, 31=worst)", + -1, 31, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* stills options */ + g_object_class_install_property (klass, ARG_VCD_STILL_SIZE, + g_param_spec_int ("vcd-still-size", "VCD stills size", + "Size of VCD stills (in KB)", + 0, 512, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* motion estimation options */ + g_object_class_install_property (klass, ARG_MOTION_SEARCH_RADIUS, + g_param_spec_int ("motion-search-radius", "Motion search radius", + "Motion compensation search radius", + 0, 32, 16, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_REDUCTION_4_4, + g_param_spec_int ("reduction-4x4", "4x4 reduction", + "Reduction factor for 4x4 subsampled candidate motion estimates" + " (1=max. quality, 4=max. speed)", + 1, 4, 2, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_REDUCTION_2_2, + g_param_spec_int ("reduction-2x2", "2x2 reduction", + "Reduction factor for 2x2 subsampled candidate motion estimates" + " (1=max. quality, 4=max. speed)", + 1, 4, 3, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_UNIT_COEFF_ELIM, + g_param_spec_int ("unit-coeff-elim", "Unit coefficience elimination", + "How agressively small-unit picture blocks should be skipped", + -40, 40, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* GOP options */ + g_object_class_install_property (klass, ARG_MIN_GOP_SIZE, + g_param_spec_int ("min-gop-size", "Min. GOP size", + "Minimal size per Group-of-Pictures (-1=default)", + -1, 250, -1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_MAX_GOP_SIZE, + g_param_spec_int ("max-gop-size", "Max. GOP size", + "Maximal size per Group-of-Pictures (-1=default)", + -1, 250, -1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_CLOSED_GOP, + g_param_spec_boolean ("closed-gop", "Closed GOP", + "All Group-of-Pictures are closed (for multi-angle DVDs)", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_FORCE_B_B_P, + g_param_spec_boolean ("force-b-b-p", "Force B-B-P", + "Force two B frames between I/P frames when closing GOP boundaries", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_B_PER_REFFRAME, + g_param_spec_int ("b-per-refframe", "B per ref. frame", + "Number of B frames between each I/P frame", + 0, 2, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* quantisation options */ + g_object_class_install_property (klass, ARG_QUANTISATION_REDUCTION, + g_param_spec_float ("quantisation-reduction", "Quantisation reduction", + "Max. quantisation reduction for highly active blocks", + -4., 10., 0., + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_QUANT_REDUCTION_MAX_VAR, + g_param_spec_float ("quant-reduction-max-var", + "Max. quant. reduction variance", + "Maximal luma variance below which quantisation boost is used", + 0., 2500., 100., + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_INTRA_DC_PRECISION, + g_param_spec_int ("intra-dc-prec", "Intra. DC precision", + "Number of bits precision for DC (base colour) in MPEG-2 blocks", + 8, 11, 9, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_REDUCE_HF, + g_param_spec_float ("reduce-hf", "Reduce HF", + "How much to reduce high-frequency resolution (by increasing quantisation)", + 0., 2., 0., + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_KEEP_HF, + g_param_spec_boolean ("keep-hf", "Keep HF", + "Maximize high-frequency resolution (for high-quality sources)", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_QUANTISATION_MATRIX, + g_param_spec_enum ("quant-matrix", "Quant. matrix", + "Quantisation matrix to use for encoding", + GST_TYPE_MPEG2ENC_QUANTISATION_MATRIX, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* general options */ + g_object_class_install_property (klass, ARG_BUFSIZE, + g_param_spec_int ("bufsize", "Decoder buf. size", + "Target decoders video buffer size (kB) (default depends on format)", + 20, 4000, 46, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* header flag settings */ + g_object_class_install_property (klass, ARG_VIDEO_NORM, + g_param_spec_enum ("norm", "Norm", + "Tag output for specific video norm", + GST_TYPE_MPEG2ENC_VIDEO_NORM, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_SEQUENCE_LENGTH, + g_param_spec_int ("sequence-length", "Sequence length", + "Place a sequence boundary after each MB (0=disable)", + 0, 10 * 1024, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_3_2_PULLDOWN, + g_param_spec_boolean ("pulldown-3-2", "3-2 pull down", + "Generate header flags for 3-2 pull down 24fps movies", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_SEQUENCE_HEADER_EVERY_GOP, + g_param_spec_boolean ("sequence-header-every-gop", + "Sequence hdr. every GOP", + "Include a sequence header in every GOP", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_DUMMY_SVCD_SOF, + g_param_spec_boolean ("dummy-svcd-sof", "Dummy SVCD SOF", + "Generate dummy SVCD scan-data (for vcdimager)", + TRUE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_PLAYBACK_FIELD_ORDER, + g_param_spec_enum ("playback-field-order", "Playback field order", + "Force specific playback field order", + GST_TYPE_MPEG2ENC_PLAYBACK_FIELD_ORDER, Y4M_UNKNOWN, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_CORRECT_SVCD_HDS, + g_param_spec_boolean ("correct-svcd-hds", "Correct SVCD hor. size", + "Force SVCD width to 480 instead of 540/720", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_ALTSCAN_MPEG2, + g_param_spec_boolean ("altscan-mpeg2", "Alt. MPEG-2 scan", + "Alternate MPEG-2 block scanning. Disabling this might " + "make buggy players play SVCD streams", + TRUE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* dangerous/experimental stuff */ + g_object_class_install_property (klass, ARG_CONSTRAINTS, + g_param_spec_boolean ("constraints", "Constraints", + "Use strict video resolution and bitrate checks", + TRUE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); +#if GST_MJPEGTOOLS_API >= 10800 + g_object_class_install_property (klass, ARG_DUALPRIME_MPEG2, + g_param_spec_boolean ("dualprime", "Dual Prime Motion Estimation", + "Dual Prime Motion Estimation Mode for MPEG-2 I/P-frame only " + "streams. Quite some players do not support this.", + FALSE, (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); +#endif +} + +/* + * GObject property foo, C++ style. + */ + +void +GstMpeg2EncOptions::getProperty (guint prop_id, GValue * value) +{ + switch (prop_id) { + case ARG_FORMAT: + g_value_set_enum (value, format); + break; + case ARG_FRAMERATE: + g_value_set_enum (value, frame_rate); + break; + case ARG_ASPECT: + g_value_set_enum (value, aspect_ratio); + break; + case ARG_INTERLACE_MODE: + g_value_set_enum (value, fieldenc); + break; + case ARG_BITRATE: + g_value_set_int (value, bitrate / 1000); + break; + case ARG_NONVIDEO_BITRATE: + g_value_set_int (value, nonvid_bitrate); + break; + case ARG_QUANTISATION: + g_value_set_int (value, force_cbr ? -1 : quant); + break; + case ARG_VCD_STILL_SIZE: + g_value_set_int (value, still_size / 1024); + break; + case ARG_MOTION_SEARCH_RADIUS: + g_value_set_int (value, searchrad); + break; + case ARG_REDUCTION_4_4: + g_value_set_int (value, me44_red); + break; + case ARG_REDUCTION_2_2: + g_value_set_int (value, me22_red); + break; + case ARG_UNIT_COEFF_ELIM: + g_value_set_int (value, unit_coeff_elim); + break; + case ARG_MIN_GOP_SIZE: + g_value_set_int (value, min_GOP_size); + break; + case ARG_MAX_GOP_SIZE: + g_value_set_int (value, max_GOP_size); + break; + case ARG_CLOSED_GOP: + g_value_set_boolean (value, closed_GOPs); + break; + case ARG_FORCE_B_B_P: + g_value_set_boolean (value, preserve_B); + break; + case ARG_B_PER_REFFRAME: + g_value_set_int (value, Bgrp_size - 1); + break; + case ARG_QUANTISATION_REDUCTION: + g_value_set_float (value, act_boost); + break; + case ARG_QUANT_REDUCTION_MAX_VAR: + g_value_set_float (value, boost_var_ceil); + break; + case ARG_INTRA_DC_PRECISION: + g_value_set_int (value, mpeg2_dc_prec + 8); + break; + case ARG_REDUCE_HF: + g_value_set_float (value, hf_q_boost); + break; + case ARG_KEEP_HF: + g_value_set_boolean (value, hf_quant == 2); + break; + case ARG_QUANTISATION_MATRIX: + switch (hf_quant) { + case 0: + g_value_set_enum (value, GST_MPEG2ENC_QUANTISATION_MATRIX_DEFAULT); + break; + case 2: + g_value_set_enum (value, GST_MPEG2ENC_QUANTISATION_MATRIX_HI_RES); + break; + case 3: + g_value_set_enum (value, GST_MPEG2ENC_QUANTISATION_MATRIX_KVCD); + break; + case 4: + g_value_set_enum (value, GST_MPEG2ENC_QUANTISATION_MATRIX_TMPGENC); + break; + } + break; + case ARG_BUFSIZE: + g_value_set_int (value, video_buffer_size); + break; + case ARG_VIDEO_NORM: + g_value_set_enum (value, norm); + break; + case ARG_SEQUENCE_LENGTH: + g_value_set_int (value, seq_length_limit); + break; + case ARG_3_2_PULLDOWN: + g_value_set_boolean (value, vid32_pulldown); + break; + case ARG_SEQUENCE_HEADER_EVERY_GOP: + g_value_set_boolean (value, seq_hdr_every_gop); + break; + case ARG_DUMMY_SVCD_SOF: + g_value_set_boolean (value, svcd_scan_data); + break; + case ARG_PLAYBACK_FIELD_ORDER: + g_value_set_enum (value, force_interlacing); + break; + case ARG_CORRECT_SVCD_HDS: + g_value_set_boolean (value, !hack_svcd_hds_bug); + break; + case ARG_ALTSCAN_MPEG2: + g_value_set_boolean (value, !hack_altscan_bug); + break; + case ARG_CONSTRAINTS: + g_value_set_boolean (value, !ignore_constraints); + break; +#if GST_MJPEGTOOLS_API >= 10800 + case ARG_DUALPRIME_MPEG2: + g_value_set_boolean (value, hack_dualprime); + break; +#endif + default: + break; + } +} + +void +GstMpeg2EncOptions::setProperty (guint prop_id, const GValue * value) +{ + switch (prop_id) { + case ARG_FORMAT: + format = g_value_get_enum (value); + break; + case ARG_FRAMERATE: + frame_rate = g_value_get_enum (value); + break; + case ARG_ASPECT: + aspect_ratio = g_value_get_enum (value); + break; + case ARG_INTERLACE_MODE: + fieldenc = g_value_get_enum (value); + break; + case ARG_BITRATE: + bitrate = g_value_get_int (value) * 1000; + if (bitrate % 400 != 0) { + bitrate = (bitrate / 400 + 1) * 400; + GST_INFO ("MPEG bitrate must be a multiple of 400" + " - rounded up to bitrate %d", bitrate / 1000); + } + break; + case ARG_NONVIDEO_BITRATE: + nonvid_bitrate = g_value_get_int (value); + break; + case ARG_QUANTISATION: + quant = g_value_get_int (value); + if (quant < 0) { + force_cbr = 1; + quant = 0; + } + break; + case ARG_VCD_STILL_SIZE: + still_size = g_value_get_int (value) * 1024; + break; + case ARG_MOTION_SEARCH_RADIUS: + searchrad = g_value_get_int (value); + break; + case ARG_REDUCTION_4_4: + me44_red = g_value_get_int (value); + break; + case ARG_REDUCTION_2_2: + me22_red = g_value_get_int (value); + break; + case ARG_UNIT_COEFF_ELIM: + unit_coeff_elim = g_value_get_int (value); + break; + case ARG_MIN_GOP_SIZE: + min_GOP_size = g_value_get_int (value); + break; + case ARG_MAX_GOP_SIZE: + max_GOP_size = g_value_get_int (value); + break; + case ARG_CLOSED_GOP: + closed_GOPs = g_value_get_boolean (value); + break; + case ARG_FORCE_B_B_P: + preserve_B = g_value_get_boolean (value); + break; + case ARG_B_PER_REFFRAME: + Bgrp_size = g_value_get_int (value) + 1; + break; + case ARG_QUANTISATION_REDUCTION: + act_boost = g_value_get_float (value); + break; + case ARG_QUANT_REDUCTION_MAX_VAR: + boost_var_ceil = g_value_get_float (value); + break; + case ARG_INTRA_DC_PRECISION: + mpeg2_dc_prec = g_value_get_int (value) - 8; + break; + case ARG_REDUCE_HF: + hf_q_boost = g_value_get_float (value); + if (hf_quant == 0 && hf_q_boost != 0.) + hf_quant = 1; + break; + case ARG_KEEP_HF: + hf_quant = g_value_get_boolean (value) ? 2 : 0; + break; + case ARG_QUANTISATION_MATRIX: + switch (g_value_get_enum (value)) { + case GST_MPEG2ENC_QUANTISATION_MATRIX_DEFAULT: + hf_quant = 0; + hf_q_boost = 0; + break; + case GST_MPEG2ENC_QUANTISATION_MATRIX_HI_RES: + hf_quant = 2; + break; + case GST_MPEG2ENC_QUANTISATION_MATRIX_KVCD: + hf_quant = 3; + break; + case GST_MPEG2ENC_QUANTISATION_MATRIX_TMPGENC: + hf_quant = 4; + break; + } + break; + case ARG_BUFSIZE: + video_buffer_size = g_value_get_int (value); + break; + case ARG_VIDEO_NORM: + norm = g_value_get_enum (value); + break; + case ARG_SEQUENCE_LENGTH: + seq_length_limit = g_value_get_int (value); + break; + case ARG_3_2_PULLDOWN: + vid32_pulldown = g_value_get_boolean (value); + break; + case ARG_SEQUENCE_HEADER_EVERY_GOP: + seq_hdr_every_gop = g_value_get_boolean (value); + break; + case ARG_DUMMY_SVCD_SOF: + svcd_scan_data = g_value_get_boolean (value); + break; + case ARG_PLAYBACK_FIELD_ORDER: + force_interlacing = g_value_get_enum (value); + break; + case ARG_CORRECT_SVCD_HDS: + hack_svcd_hds_bug = !g_value_get_boolean (value); + break; + case ARG_ALTSCAN_MPEG2: + hack_altscan_bug = !g_value_get_boolean (value); + break; + case ARG_CONSTRAINTS: + ignore_constraints = !g_value_get_boolean (value); + break; +#if GST_MJPEGTOOLS_API >= 10800 + case ARG_DUALPRIME_MPEG2: + hack_dualprime = g_value_get_boolean (value); + break; +#endif + default: + break; + } +} diff --git a/ext/mpeg2enc/gstmpeg2encoptions.hh b/ext/mpeg2enc/gstmpeg2encoptions.hh new file mode 100644 index 0000000..ab2529f --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encoptions.hh @@ -0,0 +1,43 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmpeg2encoptions.hh: gobject/mpeg2enc option wrapping class + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPEG2ENCOPTIONS_H__ +#define __GST_MPEG2ENCOPTIONS_H__ + +#include +#include +#include + +class GstMpeg2EncOptions : public MPEG2EncOptions { +public: + GstMpeg2EncOptions (); + + /* Init properties (call once) */ + static void initProperties (GObjectClass *klass); + + /* GObject property foo, C++ style */ + void getProperty (guint prop_id, + GValue *value); + void setProperty (guint prop_id, + const GValue *value); +}; + +#endif /* __GST_MPEG2ENCOPTIONS_H__ */ diff --git a/ext/mpeg2enc/gstmpeg2encpicturereader.cc b/ext/mpeg2enc/gstmpeg2encpicturereader.cc new file mode 100644 index 0000000..77e3844 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encpicturereader.cc @@ -0,0 +1,178 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmpeg2encpicturereader.cc: GStreamer/mpeg2enc input wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include "gstmpeg2enc.hh" +#include "gstmpeg2encpicturereader.hh" + +/* + * Class init stuff. + */ + +GstMpeg2EncPictureReader::GstMpeg2EncPictureReader (GstElement * in_element, GstCaps * in_caps, EncoderParams * params): +PictureReader (*params) +{ + element = in_element; + gst_object_ref (element); + caps = in_caps; + gst_caps_ref (caps); +} + +GstMpeg2EncPictureReader::~GstMpeg2EncPictureReader () +{ + gst_caps_unref (caps); + gst_object_unref (element); +} + +/* + * Get input picture parameters (width/height etc.). + */ + +void +GstMpeg2EncPictureReader::StreamPictureParams (MPEG2EncInVidParams & strm) +{ + GstStructure *structure = gst_caps_get_structure (caps, 0); + gint width, height; + const GValue *fps_val; + const GValue *par_val; + y4m_ratio_t fps; + y4m_ratio_t par; + + if (!gst_structure_get_int (structure, "width", &width)) + width = -1; + + if (!gst_structure_get_int (structure, "height", &height)) + height = -1; + + fps_val = gst_structure_get_value (structure, "framerate"); + if (fps_val != NULL) { + fps.n = gst_value_get_fraction_numerator (fps_val); + fps.d = gst_value_get_fraction_denominator (fps_val); + + strm.frame_rate_code = mpeg_framerate_code (fps); + } else + strm.frame_rate_code = 0; + + par_val = gst_structure_get_value (structure, "pixel-aspect-ratio"); + if (par_val != NULL) { + par.n = gst_value_get_fraction_numerator (par_val); + par.d = gst_value_get_fraction_denominator (par_val); + } else { + /* By default, assume square pixels */ + par.n = 1; + par.d = 1; + } + + strm.horizontal_size = width; + strm.vertical_size = height; + + strm.interlacing_code = Y4M_ILACE_NONE; + + strm.aspect_ratio_code = mpeg_guess_mpeg_aspect_code (2, par, + strm.horizontal_size, strm.vertical_size); + + GST_DEBUG_OBJECT (element, "Guessing aspect ratio code for PAR %d/%d " + "yielded: %d", par.n, par.d, strm.aspect_ratio_code); +} + +/* + * Read a frame. Return true means EOS or error. + */ + +bool +#if GST_MJPEGTOOLS_API >= 10900 + GstMpeg2EncPictureReader::LoadFrame (ImagePlanes & image) +#else + GstMpeg2EncPictureReader::LoadFrame () +#endif +{ +#if GST_MJPEGTOOLS_API < 10900 + gint n; +#endif + gint i, x, y; + guint8 *frame; + GstMpeg2enc *enc; + + enc = GST_MPEG2ENC (element); + + GST_MPEG2ENC_MUTEX_LOCK (enc); + + /* hang around until the element provides us with a buffer */ + while (!enc->buffer) { + if (enc->eos) { + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + /* inform the mpeg encoding loop that it can give up */ + return TRUE; + } + GST_MPEG2ENC_WAIT (enc); + } + + frame = GST_BUFFER_DATA (enc->buffer); +#if GST_MJPEGTOOLS_API < 10900 + n = frames_read % input_imgs_buf_size; +#endif + x = encparams.horizontal_size; + y = encparams.vertical_size; + + for (i = 0; i < y; i++) { +#if GST_MJPEGTOOLS_API >= 10900 + memcpy (image.Plane (0) + i * encparams.phy_width, frame, x); +#else + memcpy (input_imgs_buf[n][0] + i * encparams.phy_width, frame, x); +#endif + frame += x; + } +#if GST_MJPEGTOOLS_API < 10900 + lum_mean[n] = LumMean (input_imgs_buf[n][0]); +#endif + x >>= 1; + y >>= 1; + for (i = 0; i < y; i++) { +#if GST_MJPEGTOOLS_API >= 10900 + memcpy (image.Plane (1) + i * encparams.phy_chrom_width, frame, x); +#else + memcpy (input_imgs_buf[n][1] + i * encparams.phy_chrom_width, frame, x); +#endif + frame += x; + } + for (i = 0; i < y; i++) { +#if GST_MJPEGTOOLS_API >= 10900 + memcpy (image.Plane (2) + i * encparams.phy_chrom_width, frame, x); +#else + memcpy (input_imgs_buf[n][2] + i * encparams.phy_chrom_width, frame, x); +#endif + frame += x; + } + gst_buffer_unref (enc->buffer); + enc->buffer = NULL; + + /* inform the element the buffer has been processed */ + GST_MPEG2ENC_SIGNAL (enc); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + + return FALSE; +} diff --git a/ext/mpeg2enc/gstmpeg2encpicturereader.hh b/ext/mpeg2enc/gstmpeg2encpicturereader.hh new file mode 100644 index 0000000..61b52b5 --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encpicturereader.hh @@ -0,0 +1,55 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmpeg2encpicturereader.hh: GStreamer/mpeg2enc input wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPEG2ENCPICTUREREADER_H__ +#define __GST_MPEG2ENCPICTUREREADER_H__ + +#include + +#include +#if GST_MJPEGTOOLS_API >= 10900 +#include +#endif + + +class GstMpeg2EncPictureReader : public PictureReader { +public: + GstMpeg2EncPictureReader (GstElement *element, GstCaps *caps, + EncoderParams *params); + ~GstMpeg2EncPictureReader (); + + /* get input picture parameters (width/height etc.) */ + void StreamPictureParams (MPEG2EncInVidParams &strm); + +protected: + /* read a frame */ +#if GST_MJPEGTOOLS_API >= 10900 + bool LoadFrame (ImagePlanes &image); +#else + bool LoadFrame (); +#endif + +private: + GstElement *element; + GstCaps *caps; +}; + +#endif /* __GST_MPEG2ENCPICTUREREADER_H__ */ diff --git a/ext/mpeg2enc/gstmpeg2encstreamwriter.cc b/ext/mpeg2enc/gstmpeg2encstreamwriter.cc new file mode 100644 index 0000000..a17e82d --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encstreamwriter.cc @@ -0,0 +1,169 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2encstreamwriter.cc: GStreamer/mpeg2enc output wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmpeg2enc.hh" +#include "gstmpeg2encstreamwriter.hh" +#include + +#if GST_MJPEGTOOLS_API >= 10800 + +/* + * Class init stuff. + */ + +GstMpeg2EncStreamWriter::GstMpeg2EncStreamWriter (GstPad * in_pad, + EncoderParams * params) +{ + pad = in_pad; + gst_object_ref (pad); + buf = NULL; +} + +GstMpeg2EncStreamWriter::~GstMpeg2EncStreamWriter () +{ + gst_object_unref (pad); +} + +void +GstMpeg2EncStreamWriter::WriteOutBufferUpto (const guint8 * buffer, + const guint32 flush_upto) +{ + GstBuffer *buf, *inbuf; + GstMpeg2enc *enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + + buf = gst_buffer_new_and_alloc (flush_upto); + + memcpy (GST_BUFFER_DATA (buf), buffer, flush_upto); + flushed += flush_upto; + + /* this should not block anything else (e.g. chain), but if it does, + * it's ok as mpeg2enc is not really a loop-based element, but push-based */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + /* best effort at giving output some meaningful time metadata + * no mpeg2enc specs on this though, but it might help getting the output + * into container formats that really do like timestamps (unlike mplex) */ + if ((inbuf = (GstBuffer *) g_queue_pop_head (enc->time))) { + GST_BUFFER_TIMESTAMP (buf) = GST_BUFFER_TIMESTAMP (inbuf); + GST_BUFFER_DURATION (buf) = GST_BUFFER_DURATION (inbuf); + gst_buffer_unref (inbuf); + } + gst_buffer_set_caps (buf, GST_PAD_CAPS (pad)); + enc->srcresult = gst_pad_push (pad, buf); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); +} + +guint64 +GstMpeg2EncStreamWriter::BitCount () +{ + return flushed * 8ll; +} + +#else + +#define BUFSIZE (128*1024) + +/* + * Class init stuff. + */ + +GstMpeg2EncStreamWriter::GstMpeg2EncStreamWriter (GstPad * in_pad, EncoderParams * params): +ElemStrmWriter (*params) +{ + pad = in_pad; + gst_object_ref (pad); + buf = NULL; +} + +GstMpeg2EncStreamWriter::~GstMpeg2EncStreamWriter () +{ + gst_object_unref (pad); +} + +/* + * Output functions. + */ + +void +GstMpeg2EncStreamWriter::PutBits (guint32 val, gint n) +{ + /* only relevant bits. Note that (according to Andrew), + * some CPUs do bitshifts modulo wordsize (32), which + * means that we have to check for n != 32 before + * bitshifting to the relevant bits (i.e. 0xffffffff << + * 32 == 0xffffffff). */ + if (n != 32) + val &= ~(0xffffffffU << n); + + /* write data */ + while (n >= outcnt) { + if (!buf) { + buf = gst_buffer_new_and_alloc (BUFSIZE); + GST_BUFFER_SIZE (buf) = 0; + } + + outbfr = (outbfr << outcnt) | (val >> (n - outcnt)); + GST_BUFFER_DATA (buf)[GST_BUFFER_SIZE (buf)++] = outbfr; + n -= outcnt; + outcnt = 8; + bytecnt++; + + if (GST_BUFFER_SIZE (buf) >= BUFSIZE) + FrameFlush (); + } + + /* cache remaining bits */ + if (n != 0) { + outbfr = (outbfr << n) | val; + outcnt -= n; + } +} + +void +GstMpeg2EncStreamWriter::FrameBegin () +{ +} + +void +GstMpeg2EncStreamWriter::FrameFlush () +{ + GstMpeg2enc *enc = GST_MPEG2ENC (GST_PAD_PARENT (pad)); + + if (buf) { + /* this should not block anything else (e.g. chain), but if it does, + * it's ok as mpeg2enc is not really a loop-based element, but push-based */ + GST_MPEG2ENC_MUTEX_LOCK (enc); + gst_buffer_set_caps (buf, GST_PAD_CAPS (pad)); + enc->srcresult = gst_pad_push (pad, buf); + GST_MPEG2ENC_MUTEX_UNLOCK (enc); + buf = NULL; + } +} + +void +GstMpeg2EncStreamWriter::FrameDiscard () +{ +} +#endif /* GST_MJPEGTOOLS_API >= 10800 */ diff --git a/ext/mpeg2enc/gstmpeg2encstreamwriter.hh b/ext/mpeg2enc/gstmpeg2encstreamwriter.hh new file mode 100644 index 0000000..eaa9cba --- /dev/null +++ b/ext/mpeg2enc/gstmpeg2encstreamwriter.hh @@ -0,0 +1,66 @@ +/* GStreamer mpeg2enc (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2006 Mark Nauwelaerts + * + * gstmpeg2encstreamwriter.hh: GStreamer/mpeg2enc output wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPEG2ENCSTREAMWRITER_H__ +#define __GST_MPEG2ENCSTREAMWRITER_H__ + +#include + +#include + +#if GST_MJPEGTOOLS_API >= 10800 + +class GstMpeg2EncStreamWriter : public ElemStrmWriter { + public: + GstMpeg2EncStreamWriter (GstPad *pad, EncoderParams *params); + ~GstMpeg2EncStreamWriter (); + + /* output functions */ + void WriteOutBufferUpto (const guint8 * buffer, + const guint32 flush_upto); + guint64 BitCount (); + + private: + GstPad *pad; + GstBuffer *buf; +}; + +#else + +class GstMpeg2EncStreamWriter : public ElemStrmWriter { +public: + GstMpeg2EncStreamWriter (GstPad *pad, EncoderParams *params); + ~GstMpeg2EncStreamWriter (); + + /* output functions */ + void PutBits (guint32 val, gint n); + void FrameBegin (); + void FrameFlush (); + void FrameDiscard (); + +private: + GstPad *pad; + GstBuffer *buf; +}; +#endif /* GST_MJPEGTOOLS_API >= 10800 */ + +#endif /* __GST_MPEG2ENCSTREAMWRITER_H__ */ diff --git a/ext/mplex/Makefile.am b/ext/mplex/Makefile.am new file mode 100644 index 0000000..86ff2f2 --- /dev/null +++ b/ext/mplex/Makefile.am @@ -0,0 +1,20 @@ +plugin_LTLIBRARIES = libgstmplex.la + +libgstmplex_la_SOURCES = \ + gstmplex.cc \ + gstmplexibitstream.cc \ + gstmplexjob.cc \ + gstmplexoutputstream.cc + +libgstmplex_la_CXXFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MPLEX_CFLAGS) +libgstmplex_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(MPLEX_LIBS) +libgstmplex_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(MPLEX_LDFLAGS) +libgstmplex_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstmplex.hh \ + gstmplexibitstream.hh \ + gstmplexjob.hh \ + gstmplexoutputstream.hh diff --git a/ext/mplex/Makefile.in b/ext/mplex/Makefile.in new file mode 100644 index 0000000..ff0c5bc --- /dev/null +++ b/ext/mplex/Makefile.in @@ -0,0 +1,900 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/mplex +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmplex_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstmplex_la_OBJECTS = libgstmplex_la-gstmplex.lo \ + libgstmplex_la-gstmplexibitstream.lo \ + libgstmplex_la-gstmplexjob.lo \ + libgstmplex_la-gstmplexoutputstream.lo +libgstmplex_la_OBJECTS = $(am_libgstmplex_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmplex_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX \ + $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CXXLD) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) \ + $(libgstmplex_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +CXXCOMPILE = $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) \ + $(AM_CPPFLAGS) $(CPPFLAGS) $(AM_CXXFLAGS) $(CXXFLAGS) +LTCXXCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CXXFLAGS) $(CXXFLAGS) +AM_V_CXX = $(am__v_CXX_$(V)) +am__v_CXX_ = $(am__v_CXX_$(AM_DEFAULT_VERBOSITY)) +am__v_CXX_0 = @echo " CXX " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CXXLD = $(CXX) +CXXLINK = $(LIBTOOL) $(AM_V_lt) --tag=CXX $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CXXLD) $(AM_CXXFLAGS) \ + $(CXXFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CXXLD = $(am__v_CXXLD_$(V)) +am__v_CXXLD_ = $(am__v_CXXLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CXXLD_0 = @echo " CXXLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmplex_la_SOURCES) +DIST_SOURCES = $(libgstmplex_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmplex.la +libgstmplex_la_SOURCES = \ + gstmplex.cc \ + gstmplexibitstream.cc \ + gstmplexjob.cc \ + gstmplexoutputstream.cc + +libgstmplex_la_CXXFLAGS = \ + $(GST_PLUGINS_BASE_CFLAGS) $(GST_CXXFLAGS) $(MPLEX_CFLAGS) + +libgstmplex_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) $(GST_BASE_LIBS) $(GST_LIBS) $(MPLEX_LIBS) + +libgstmplex_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) $(MPLEX_LDFLAGS) +libgstmplex_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstmplex.hh \ + gstmplexibitstream.hh \ + gstmplexjob.hh \ + gstmplexoutputstream.hh + +all: all-am + +.SUFFIXES: +.SUFFIXES: .cc .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mplex/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/mplex/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmplex.la: $(libgstmplex_la_OBJECTS) $(libgstmplex_la_DEPENDENCIES) + $(AM_V_CXXLD)$(libgstmplex_la_LINK) -rpath $(plugindir) $(libgstmplex_la_OBJECTS) $(libgstmplex_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmplex_la-gstmplex.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmplex_la-gstmplexibitstream.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmplex_la-gstmplexjob.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmplex_la-gstmplexoutputstream.Plo@am__quote@ + +.cc.o: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ $< + +.cc.obj: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(CXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(CXXCOMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.cc.lo: +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LTCXXCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LTCXXCOMPILE) -c -o $@ $< + +libgstmplex_la-gstmplex.lo: gstmplex.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmplex_la-gstmplex.lo -MD -MP -MF $(DEPDIR)/libgstmplex_la-gstmplex.Tpo -c -o libgstmplex_la-gstmplex.lo `test -f 'gstmplex.cc' || echo '$(srcdir)/'`gstmplex.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmplex_la-gstmplex.Tpo $(DEPDIR)/libgstmplex_la-gstmplex.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmplex.cc' object='libgstmplex_la-gstmplex.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmplex_la-gstmplex.lo `test -f 'gstmplex.cc' || echo '$(srcdir)/'`gstmplex.cc + +libgstmplex_la-gstmplexibitstream.lo: gstmplexibitstream.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmplex_la-gstmplexibitstream.lo -MD -MP -MF $(DEPDIR)/libgstmplex_la-gstmplexibitstream.Tpo -c -o libgstmplex_la-gstmplexibitstream.lo `test -f 'gstmplexibitstream.cc' || echo '$(srcdir)/'`gstmplexibitstream.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmplex_la-gstmplexibitstream.Tpo $(DEPDIR)/libgstmplex_la-gstmplexibitstream.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmplexibitstream.cc' object='libgstmplex_la-gstmplexibitstream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmplex_la-gstmplexibitstream.lo `test -f 'gstmplexibitstream.cc' || echo '$(srcdir)/'`gstmplexibitstream.cc + +libgstmplex_la-gstmplexjob.lo: gstmplexjob.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmplex_la-gstmplexjob.lo -MD -MP -MF $(DEPDIR)/libgstmplex_la-gstmplexjob.Tpo -c -o libgstmplex_la-gstmplexjob.lo `test -f 'gstmplexjob.cc' || echo '$(srcdir)/'`gstmplexjob.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmplex_la-gstmplexjob.Tpo $(DEPDIR)/libgstmplex_la-gstmplexjob.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmplexjob.cc' object='libgstmplex_la-gstmplexjob.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmplex_la-gstmplexjob.lo `test -f 'gstmplexjob.cc' || echo '$(srcdir)/'`gstmplexjob.cc + +libgstmplex_la-gstmplexoutputstream.lo: gstmplexoutputstream.cc +@am__fastdepCXX_TRUE@ $(AM_V_CXX)$(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -MT libgstmplex_la-gstmplexoutputstream.lo -MD -MP -MF $(DEPDIR)/libgstmplex_la-gstmplexoutputstream.Tpo -c -o libgstmplex_la-gstmplexoutputstream.lo `test -f 'gstmplexoutputstream.cc' || echo '$(srcdir)/'`gstmplexoutputstream.cc +@am__fastdepCXX_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmplex_la-gstmplexoutputstream.Tpo $(DEPDIR)/libgstmplex_la-gstmplexoutputstream.Plo +@am__fastdepCXX_FALSE@ $(AM_V_CXX) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ source='gstmplexoutputstream.cc' object='libgstmplex_la-gstmplexoutputstream.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCXX_FALSE@ DEPDIR=$(DEPDIR) $(CXXDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCXX_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CXX $(libgstmplex_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CXX) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmplex_la_CXXFLAGS) $(CXXFLAGS) -c -o libgstmplex_la-gstmplexoutputstream.lo `test -f 'gstmplexoutputstream.cc' || echo '$(srcdir)/'`gstmplexoutputstream.cc + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/mplex/gstmplex.cc b/ext/mplex/gstmplex.cc new file mode 100644 index 0000000..04eae2e --- /dev/null +++ b/ext/mplex/gstmplex.cc @@ -0,0 +1,810 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2008 Mark Nauwelaerts + * + * gstmplex.cc: gstreamer mplex wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-mplex + * @see_also: mpeg2enc + * + * This element is an audio/video multiplexer for MPEG-1/2 video streams + * and (un)compressed audio streams such as AC3, MPEG layer I/II/III. + * It is based on the mjpegtools library. + * Documentation on creating MPEG videos in general can be found in the + * MJPEG Howto + * and the man-page of the mplex tool documents the properties of this element, + * which are shared with the mplex tool. + * + * + * Example pipeline + * |[ + * gst-launch -v videotestsrc num-buffers=1000 ! mpeg2enc ! mplex ! filesink location=videotestsrc.mpg + * ]| This example pipeline will encode a test video source to an + * MPEG1 elementary stream and multiplexes this to an MPEG system stream. + * + * If several streams are being multiplexed, there should (as usual) be + * a queue in each stream, and due to mplex' buffering the capacities of these + * may have to be set to a few times the default settings to prevent the + * pipeline stalling. + * + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstmplex.hh" +#include "gstmplexoutputstream.hh" +#include "gstmplexibitstream.hh" +#include "gstmplexjob.hh" + +GST_DEBUG_CATEGORY (mplex_debug); + +static GstStaticPadTemplate src_templ = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("video/mpeg, systemstream = (boolean) true ") + ); + +static GstStaticPadTemplate video_sink_templ = +GST_STATIC_PAD_TEMPLATE ("video_%d", + GST_PAD_SINK, + GST_PAD_REQUEST, + GST_STATIC_CAPS ("video/mpeg, " + "mpegversion = (int) { 1, 2 }, " + "systemstream = (boolean) false, " + "width = (int) [ 16, 4096 ], " + "height = (int) [ 16, 4096 ], framerate = (fraction) [ 0, MAX ]") + ); + +#define COMMON_AUDIO_CAPS \ + "channels = (int) [ 1, 8 ], " \ + "rate = (int) [ 8000, 96000 ]" + +static GstStaticPadTemplate audio_sink_templ = + GST_STATIC_PAD_TEMPLATE ("audio_%d", + GST_PAD_SINK, + GST_PAD_REQUEST, + GST_STATIC_CAPS ("audio/mpeg, " + "mpegversion = (int) 1, " + "layer = (int) [ 1, 3 ], " + COMMON_AUDIO_CAPS "; " + "audio/x-ac3, " + COMMON_AUDIO_CAPS "; " + "audio/x-dts; " + "audio/x-raw-int, " + "endianness = (int) BIG_ENDIAN, " + "signed = (boolean) TRUE, " + "width = (int) { 16, 20, 24 }, " + "depth = (int) { 16, 20, 24 }, " + "rate = (int) { 48000, 96000 }, " "channels = (int) [ 1, 6 ]") + ); + +/* FIXME: subtitles */ + +static void gst_mplex_finalize (GObject * object); +static void gst_mplex_reset (GstMplex * mplex); +static void gst_mplex_loop (GstMplex * mplex); +static GstPad *gst_mplex_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * name); +static void gst_mplex_release_pad (GstElement * element, GstPad * pad); +static gboolean gst_mplex_src_activate_push (GstPad * pad, gboolean active); +static GstStateChangeReturn gst_mplex_change_state (GstElement * element, + GstStateChange transition); + +static void gst_mplex_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); +static void gst_mplex_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); + +GST_BOILERPLATE (GstMplex, gst_mplex, GstElement, GST_TYPE_ELEMENT); + +static void +gst_mplex_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_set_details_simple (element_class, + "mplex video multiplexer", "Codec/Muxer", + "High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer", + "Andrew Stevens \n" + "Ronald Bultje \n" + "Mark Nauwelaerts set_property = gst_mplex_set_property; + object_class->get_property = gst_mplex_get_property; + + /* register properties */ + GstMplexJob::initProperties (object_class); + + object_class->finalize = GST_DEBUG_FUNCPTR (gst_mplex_finalize); + + element_class->change_state = GST_DEBUG_FUNCPTR (gst_mplex_change_state); + element_class->request_new_pad = + GST_DEBUG_FUNCPTR (gst_mplex_request_new_pad); + element_class->release_pad = GST_DEBUG_FUNCPTR (gst_mplex_release_pad); +} + +static void +gst_mplex_finalize (GObject * object) +{ + GstMplex *mplex = GST_MPLEX (object); + GSList *walk; + + /* release all pads */ + walk = mplex->pads; + while (walk) { + GstMplexPad *mpad = (GstMplexPad *) walk->data; + + gst_object_unref (mpad->pad); + mpad->pad = NULL; + walk = walk->next; + } + + /* clean up what's left of them */ + gst_mplex_reset (mplex); + + /* ... and of the rest */ + delete mplex->job; + + g_mutex_free (mplex->tlock); + + G_OBJECT_CLASS (parent_class)->finalize (object); +} + +static void +gst_mplex_init (GstMplex * mplex, GstMplexClass * g_class) +{ + GstElement *element = GST_ELEMENT (mplex); + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + mplex->srcpad = + gst_pad_new_from_template (gst_element_class_get_pad_template + (element_class, "src"), "src"); + gst_element_add_pad (element, mplex->srcpad); + gst_pad_use_fixed_caps (mplex->srcpad); + gst_pad_set_activatepush_function (mplex->srcpad, + GST_DEBUG_FUNCPTR (gst_mplex_src_activate_push)); + + mplex->job = new GstMplexJob (); + mplex->num_apads = 0; + mplex->num_vpads = 0; + + mplex->tlock = g_mutex_new (); + + gst_mplex_reset (mplex); +} + +static void +gst_mplex_reset (GstMplex * mplex) +{ + GSList *walk; + GSList *nlist = NULL; + + mplex->eos = FALSE; + mplex->srcresult = GST_FLOW_CUSTOM_SUCCESS; + + /* reset existing streams */ + walk = mplex->pads; + while (walk != NULL) { + GstMplexPad *mpad; + + mpad = (GstMplexPad *) walk->data; + + mpad->needed = 0; + mpad->eos = FALSE; + gst_adapter_clear (mpad->adapter); + if (mpad->bs) { + delete mpad->bs; + + mpad->bs = NULL; + } + + if (!mpad->pad) { + g_cond_free (mpad->cond); + g_object_unref (mpad->adapter); + g_free (mpad); + } else + nlist = g_slist_append (nlist, mpad); + + walk = walk->next; + } + + g_slist_free (mplex->pads); + mplex->pads = nlist; + + /* clear mplex stuff */ + /* clean up stream settings */ + while (!mplex->job->streams.empty ()) { + delete mplex->job->streams.back (); + + mplex->job->streams.pop_back (); + } + while (!mplex->job->video_param.empty ()) { + delete mplex->job->video_param.back (); + + mplex->job->video_param.pop_back (); + } + while (!mplex->job->lpcm_param.empty ()) { + delete mplex->job->lpcm_param.back (); + + mplex->job->lpcm_param.pop_back (); + } + mplex->job->audio_tracks = 0; + mplex->job->video_tracks = 0; + mplex->job->lpcm_tracks = 0; +} + +static gboolean +gst_mplex_setcaps (GstPad * pad, GstCaps * caps) +{ + GstMplex *mplex; + const gchar *mime; + GstStructure *structure; + StreamKind type; + JobStream *jobstream; + GstMplexIBitStream *inputstream; + GstMplexPad *mpad; + GstCaps *othercaps; + gboolean ret = TRUE; + + mplex = GST_MPLEX (GST_PAD_PARENT (pad)); + + /* does not go well to negotiate when started */ + if (mplex->srcresult != GST_FLOW_CUSTOM_SUCCESS) + goto refuse_renegotiation; + + /* since muxer does not really check much ... */ + othercaps = gst_caps_intersect (caps, gst_pad_get_pad_template_caps (pad)); + if (othercaps) + gst_caps_unref (othercaps); + else + goto refuse_caps; + + /* set the fixed template caps on the srcpad, should accept without objection */ + othercaps = gst_caps_copy (gst_pad_get_pad_template_caps (mplex->srcpad)); + ret = gst_pad_set_caps (mplex->srcpad, othercaps); + gst_caps_unref (othercaps); + if (!ret) + goto refuse_caps; + + structure = gst_caps_get_structure (caps, 0); + mime = gst_structure_get_name (structure); + + if (!strcmp (mime, "video/mpeg")) { /* video */ + VideoParams *params; + + type = MPEG_VIDEO; + if (mplex->job->bufsize) + params = VideoParams::Checked (mplex->job->bufsize); + else + params = VideoParams::Default (mplex->job->mux_format); + /* set standard values if forced by the selected profile */ + if (params->Force (mplex->job->mux_format)) + GST_WARNING_OBJECT (mplex, + "overriding non-standard option due to selected profile"); + + mplex->job->video_param.push_back (params); + mplex->job->video_tracks++; + } else { /* audio */ + if (!strcmp (mime, "audio/mpeg")) { + type = MPEG_AUDIO; + } else if (!strcmp (mime, "audio/x-ac3")) { + type = AC3_AUDIO; + } else if (!strcmp (mime, "audio/x-dts")) { + type = DTS_AUDIO; + } else if (!strcmp (mime, "audio/x-raw-int")) { + LpcmParams *params; + gint bits, chans, rate; + gboolean result = TRUE; + + type = LPCM_AUDIO; + + /* set LPCM params */ + result &= gst_structure_get_int (structure, "depth", &bits); + result &= gst_structure_get_int (structure, "rate", &rate); + result &= gst_structure_get_int (structure, "channels", &chans); + if (!result) + goto refuse_caps; + + params = LpcmParams::Checked (rate, chans, bits); + + mplex->job->lpcm_param.push_back (params); + mplex->job->lpcm_tracks++; + } else + goto refuse_caps; + + mplex->job->audio_tracks++; + } + + mpad = (GstMplexPad *) gst_pad_get_element_private (pad); + g_return_val_if_fail (mpad, FALSE); + inputstream = new GstMplexIBitStream (mpad); + mpad->bs = inputstream; + jobstream = new JobStream (inputstream, type); + mplex->job->streams.push_back (jobstream); + + return TRUE; + +refuse_caps: + { + GST_WARNING_OBJECT (mplex, "refused caps %" GST_PTR_FORMAT, caps); + + /* undo if we were a bit too fast/confident */ + if (GST_PAD_CAPS (mplex->srcpad)) + gst_pad_set_caps (mplex->srcpad, NULL); + + return FALSE; + } +refuse_renegotiation: + { + GST_WARNING_OBJECT (mplex, "already started; " + "refused (re)negotiation (to %" GST_PTR_FORMAT ")", caps); + + return FALSE; + } +} + +static void +gst_mplex_loop (GstMplex * mplex) +{ + GstMplexOutputStream *out = NULL; + Multiplexor *mux = NULL; + GSList *walk; + + /* do not try to resume muxing after it finished + * this can be relevant mainly/only in case of forced state change */ + if (mplex->eos) + goto eos; + + /* inform downstream about what's coming */ + gst_pad_push_event (mplex->srcpad, gst_event_new_new_segment (FALSE, 1.0, + GST_FORMAT_BYTES, 0, -1, 0)); + + /* hm (!) each inputstream really needs an initial read + * so that all is internally in the proper state */ + walk = mplex->pads; + while (walk != NULL) { + GstMplexPad *mpad; + + mpad = (GstMplexPad *) walk->data; + mpad->bs->ReadBuffer (); + + walk = walk->next; + } + + /* create new multiplexer with inputs/output */ + out = new GstMplexOutputStream (mplex, mplex->srcpad); +#if GST_MJPEGTOOLS_API >= 10900 + mux = new Multiplexor (*mplex->job, *out, NULL); +#else + mux = new Multiplexor (*mplex->job, *out); +#endif + + if (mux) { + mux->Multiplex (); + delete mux; + delete out; + + /* if not well and truly eos, something strange happened */ + if (!mplex->eos) { + GST_ERROR_OBJECT (mplex, "muxing task ended without being eos"); + /* notify there is no point in collecting any more */ + GST_MPLEX_MUTEX_LOCK (mplex); + mplex->srcresult = GST_FLOW_ERROR; + GST_MPLEX_SIGNAL_ALL (mplex); + GST_MPLEX_MUTEX_UNLOCK (mplex); + } else + goto eos; + } else { + GST_WARNING_OBJECT (mplex, "failed to create Multiplexor"); + } + + /* fall-through */ +done: + { + /* no need to run wildly, stopped elsewhere, e.g. state change */ + GST_DEBUG_OBJECT (mplex, "pausing muxing task"); + gst_pad_pause_task (mplex->srcpad); + + return; + } +eos: + { + GST_DEBUG_OBJECT (mplex, "encoding task reached eos"); + goto done; + } +} + +static gboolean +gst_mplex_sink_event (GstPad * sinkpad, GstEvent * event) +{ + GstMplex *mplex; + GstMplexPad *mpad; + gboolean result = TRUE; + + mplex = (GstMplex *) (GST_PAD_PARENT (sinkpad)); + mpad = (GstMplexPad *) gst_pad_get_element_private (sinkpad); + g_return_val_if_fail (mpad, FALSE); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_FLUSH_START: + /* forward event */ + gst_pad_event_default (sinkpad, event); + + /* now unblock the chain function */ + GST_MPLEX_MUTEX_LOCK (mplex); + mplex->srcresult = GST_FLOW_WRONG_STATE; + GST_MPLEX_SIGNAL (mplex, mpad); + GST_MPLEX_MUTEX_UNLOCK (mplex); + /* no way to pause/restart loop task */ + goto done; + case GST_EVENT_FLUSH_STOP: + /* forward event */ + gst_pad_event_default (sinkpad, event); + + /* clear state and resume */ + GST_MPLEX_MUTEX_LOCK (mplex); + gst_adapter_clear (mpad->adapter); + mplex->srcresult = GST_FLOW_OK; + GST_MPLEX_MUTEX_UNLOCK (mplex); + goto done; + case GST_EVENT_NEWSEGMENT: + /* eat segments; we make our own (byte)stream */ + gst_event_unref (event); + goto done; + case GST_EVENT_EOS: + /* inform this pad that it can stop now */ + GST_MPLEX_MUTEX_LOCK (mplex); + mpad->eos = TRUE; + GST_MPLEX_SIGNAL (mplex, mpad); + GST_MPLEX_MUTEX_UNLOCK (mplex); + + /* eat this event for now, task will send eos when finished */ + gst_event_unref (event); + goto done; + default: + /* for a serialized event, wait until earlier data is gone, + * though this is no guarantee as to when task is done with it. + * Only wait if loop has been started already */ + if (GST_EVENT_IS_SERIALIZED (event)) { + GST_MPLEX_MUTEX_LOCK (mplex); + while (mplex->srcresult == GST_FLOW_OK && !mpad->needed) + GST_MPLEX_WAIT (mplex, mpad); + GST_MPLEX_MUTEX_UNLOCK (mplex); + } + break; + } + + result = gst_pad_event_default (sinkpad, event); + +done: + return result; +} + +/* starts task if conditions are right for it + * must be called with mutex_lock held */ +static void +gst_mplex_start_task (GstMplex * mplex) +{ + /* start task to create multiplexor and start muxing */ + if (G_UNLIKELY (mplex->srcresult == GST_FLOW_CUSTOM_SUCCESS) + && mplex->job->video_tracks == mplex->num_vpads + && mplex->job->audio_tracks == mplex->num_apads) { + gst_pad_start_task (mplex->srcpad, (GstTaskFunction) gst_mplex_loop, mplex); + mplex->srcresult = GST_FLOW_OK; + } +} + +static GstFlowReturn +gst_mplex_chain (GstPad * sinkpad, GstBuffer * buffer) +{ + GstMplex *mplex; + GstMplexPad *mpad; + + mplex = (GstMplex *) (GST_PAD_PARENT (sinkpad)); + mpad = (GstMplexPad *) gst_pad_get_element_private (sinkpad); + g_return_val_if_fail (mpad, GST_FLOW_ERROR); + + /* check if pad were properly negotiated and set up */ + if (G_UNLIKELY (!mpad->bs)) { + GST_ELEMENT_ERROR (mplex, CORE, NEGOTIATION, (NULL), + ("input pad has not been set up prior to chain function")); + return GST_FLOW_NOT_NEGOTIATED; + } + + GST_MPLEX_MUTEX_LOCK (mplex); + + gst_mplex_start_task (mplex); + + if (G_UNLIKELY (mpad->eos)) + goto eos; + + if (G_UNLIKELY (mplex->srcresult != GST_FLOW_OK)) + goto ignore; + + gst_adapter_push (mpad->adapter, buffer); + buffer = NULL; + while (gst_adapter_available (mpad->adapter) >= mpad->needed) { + GST_MPLEX_SIGNAL (mplex, mpad); + GST_MPLEX_WAIT (mplex, mpad); + /* may have become flushing or in error */ + if (G_UNLIKELY (mplex->srcresult != GST_FLOW_OK)) + goto ignore; + /* or been removed */ + if (G_UNLIKELY (mpad->eos)) + goto eos; + } + + GST_MPLEX_MUTEX_UNLOCK (mplex); + + return GST_FLOW_OK; + +/* special cases */ +eos: + { + GST_DEBUG_OBJECT (mplex, "ignoring buffer at end-of-stream"); + GST_MPLEX_MUTEX_UNLOCK (mplex); + + gst_buffer_unref (buffer); + return GST_FLOW_UNEXPECTED; + } +ignore: + { + GstFlowReturn ret = mplex->srcresult; + + GST_DEBUG_OBJECT (mplex, "ignoring buffer because src task encountered %s", + gst_flow_get_name (ret)); + GST_MPLEX_MUTEX_UNLOCK (mplex); + + if (buffer) + gst_buffer_unref (buffer); + return ret; + } +} + +static GstPad * +gst_mplex_request_new_pad (GstElement * element, + GstPadTemplate * templ, const gchar * name) +{ + GstElementClass *klass = GST_ELEMENT_GET_CLASS (element); + GstMplex *mplex = GST_MPLEX (element); + gchar *padname; + GstPad *newpad; + GstMplexPad *mpad; + + if (templ == gst_element_class_get_pad_template (klass, "audio_%d")) { + GST_DEBUG_OBJECT (mplex, "request pad audio %d", mplex->num_apads); + padname = g_strdup_printf ("audio_%d", mplex->num_apads++); + } else if (templ == gst_element_class_get_pad_template (klass, "video_%d")) { + GST_DEBUG_OBJECT (mplex, "request pad video %d", mplex->num_vpads); + padname = g_strdup_printf ("video_%d", mplex->num_vpads++); + } else { + GST_WARNING_OBJECT (mplex, "This is not our template!"); + return NULL; + } + + newpad = gst_pad_new_from_template (templ, padname); + g_free (padname); + + mpad = g_new0 (GstMplexPad, 1); + mpad->adapter = gst_adapter_new (); + mpad->cond = g_cond_new (); + gst_object_ref (newpad); + mpad->pad = newpad; + + gst_pad_set_setcaps_function (newpad, GST_DEBUG_FUNCPTR (gst_mplex_setcaps)); + gst_pad_set_chain_function (newpad, GST_DEBUG_FUNCPTR (gst_mplex_chain)); + gst_pad_set_event_function (newpad, GST_DEBUG_FUNCPTR (gst_mplex_sink_event)); + gst_pad_set_element_private (newpad, mpad); + gst_element_add_pad (element, newpad); + mplex->pads = g_slist_append (mplex->pads, mpad); + + return newpad; +} + +static void +gst_mplex_release_pad (GstElement * element, GstPad * pad) +{ + GstMplex *mplex = GST_MPLEX (element); + GstMplexPad *mpad; + + g_return_if_fail (pad); + mpad = (GstMplexPad *) gst_pad_get_element_private (pad); + g_return_if_fail (mpad); + + if (gst_element_remove_pad (element, pad)) { + gchar *padname; + + GST_MPLEX_MUTEX_LOCK (mplex); + mpad->eos = TRUE; + gst_object_unref (mpad->pad); + mpad->pad = NULL; + /* wake up if waiting on this pad */ + GST_MPLEX_SIGNAL (mplex, mpad); + + padname = gst_object_get_name (GST_OBJECT (pad)); + if (strstr (padname, "audio")) { + mplex->num_apads--; + } else { + mplex->num_vpads--; + } + g_free (padname); + + /* may now be up to us to get things going */ + gst_mplex_start_task (mplex); + GST_MPLEX_MUTEX_UNLOCK (mplex); + } +} + +static void +gst_mplex_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec) +{ + GST_MPLEX (object)->job->getProperty (prop_id, value); +} + +static void +gst_mplex_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec) +{ + GST_MPLEX (object)->job->setProperty (prop_id, value); +} + +static gboolean +gst_mplex_src_activate_push (GstPad * pad, gboolean active) +{ + gboolean result = TRUE; + GstMplex *mplex; + + mplex = GST_MPLEX (GST_PAD_PARENT (pad)); + + if (active) { + /* chain will start task once all streams have been setup */ + } else { + /* end the muxing loop by forcing eos and unblock chains */ + GST_MPLEX_MUTEX_LOCK (mplex); + mplex->eos = TRUE; + mplex->srcresult = GST_FLOW_WRONG_STATE; + GST_MPLEX_SIGNAL_ALL (mplex); + GST_MPLEX_MUTEX_UNLOCK (mplex); + + /* muxing loop should have ended now and can be joined */ + result = gst_pad_stop_task (pad); + } + + return result; +} + +static GstStateChangeReturn +gst_mplex_change_state (GstElement * element, GstStateChange transition) +{ + GstMplex *mplex = GST_MPLEX (element); + GstStateChangeReturn ret; + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) + goto done; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_mplex_reset (mplex); + break; + default: + break; + } + +done: + return ret; +} + +#ifndef GST_DISABLE_GST_DEBUG + +static mjpeg_log_handler_t old_handler = NULL; + +/* note that this will affect all mjpegtools elements/threads */ +static void +gst_mplex_log_callback (log_level_t level, const char *message) +{ + GstDebugLevel gst_level; + +#if GST_MJPEGTOOLS_API >= 10900 + static const gint mjpeg_log_error = mjpeg_loglev_t ("error"); + static const gint mjpeg_log_warn = mjpeg_loglev_t ("warn"); + static const gint mjpeg_log_info = mjpeg_loglev_t ("info"); + static const gint mjpeg_log_debug = mjpeg_loglev_t ("debug"); +#else + static const gint mjpeg_log_error = LOG_ERROR; + static const gint mjpeg_log_warn = LOG_WARN; + static const gint mjpeg_log_info = LOG_INFO; + static const gint mjpeg_log_debug = LOG_DEBUG; +#endif + + if (level == mjpeg_log_error) { + gst_level = GST_LEVEL_ERROR; + } else if (level == mjpeg_log_warn) { + gst_level = GST_LEVEL_WARNING; + } else if (level == mjpeg_log_info) { + gst_level = GST_LEVEL_INFO; + } else if (level == mjpeg_log_debug) { + gst_level = GST_LEVEL_DEBUG; + } else { + gst_level = GST_LEVEL_INFO; + } + + /* message could have a % in it, do not segfault in such case */ + gst_debug_log (mplex_debug, gst_level, "", "", 0, NULL, "%s", message); + + /* chain up to the old handler; + * this could actually be a handler from another mjpegtools based + * gstreamer element; in which case messages can come out double or from + * the wrong element ... */ + old_handler (level, message); +} +#endif + +static gboolean +plugin_init (GstPlugin * plugin) +{ +#ifndef GST_DISABLE_GST_DEBUG + old_handler = mjpeg_log_set_handler (gst_mplex_log_callback); + g_assert (old_handler != NULL); +#endif + /* in any case, we do not want default handler output */ + mjpeg_default_handler_verbosity (0); + + return gst_element_register (plugin, "mplex", GST_RANK_NONE, GST_TYPE_MPLEX); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "mplex", + "High-quality MPEG/DVD/SVCD/VCD video/audio multiplexer", + plugin_init, VERSION, "GPL", GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/mplex/gstmplex.hh b/ext/mplex/gstmplex.hh new file mode 100644 index 0000000..c519f1d --- /dev/null +++ b/ext/mplex/gstmplex.hh @@ -0,0 +1,122 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmplex.hh: gstreamer mplex wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPLEX_H__ +#define __GST_MPLEX_H__ + +#include +#include +#include +#include "gstmplexibitstream.hh" +#include "gstmplexjob.hh" + +G_BEGIN_DECLS + +#define GST_TYPE_MPLEX \ + (gst_mplex_get_type ()) +#define GST_MPLEX(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MPLEX, GstMplex)) +#define GST_MPLEX_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MPLEX, GstMplex)) +#define GST_IS_MPLEX(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MPLEX)) +#define GST_IS_MPLEX_CLASS(obj) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MPLEX)) + +GST_DEBUG_CATEGORY_EXTERN (mplex_debug); +#define GST_CAT_DEFAULT mplex_debug + +#define GST_MPLEX_MUTEX_LOCK(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "locking tlock from thread %p", g_thread_self ()); \ + g_mutex_lock ((m)->tlock); \ + GST_LOG_OBJECT (m, "locked tlock from thread %p", g_thread_self ()); \ +} G_STMT_END + +#define GST_MPLEX_MUTEX_UNLOCK(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "unlocking tlock from thread %p", g_thread_self ()); \ + g_mutex_unlock ((m)->tlock); \ +} G_STMT_END + +#define GST_MPLEX_WAIT(m, p) G_STMT_START { \ + GST_LOG_OBJECT (m, "thread %p waiting", g_thread_self ()); \ + g_cond_wait ((p)->cond, (m)->tlock); \ +} G_STMT_END + +#define GST_MPLEX_SIGNAL(m, p) G_STMT_START { \ + GST_LOG_OBJECT (m, "signalling from thread %p", g_thread_self ()); \ + g_cond_signal ((p)->cond); \ +} G_STMT_END + +#define GST_MPLEX_SIGNAL_ALL(m) G_STMT_START { \ + GST_LOG_OBJECT (m, "signalling all from thread %p", g_thread_self ()); \ + GSList *walk = m->pads; \ + while (walk) { \ + GST_MPLEX_SIGNAL (m, (GstMplexPad *) walk->data); \ + walk = walk->next; \ + } \ +} G_STMT_END + +typedef struct _GstMplexPad +{ + /* associated pad */ + GstPad *pad; + /* with mplex TLOCK */ + /* adapter collecting buffers for this pad */ + GstAdapter *adapter; + /* no more to expect on this pad */ + gboolean eos; + /* signals counterpart thread to have a look */ + GCond *cond; + /* amount needed by mplex on this stream */ + guint needed; + /* bitstream for this pad */ + GstMplexIBitStream *bs; +} GstMplexPad; + +typedef struct _GstMplex { + GstElement parent; + + /* pads */ + GSList *pads; + GstPad *srcpad; + guint num_apads, num_vpads; + + /* options wrapper */ + GstMplexJob *job; + + /* lock for syncing */ + GMutex *tlock; + /* with TLOCK */ + /* muxer writer generated eos */ + gboolean eos; + /* flowreturn obtained by muxer task */ + GstFlowReturn srcresult; +} GstMplex; + +typedef struct _GstMplexClass { + GstElementClass parent; +} GstMplexClass; + +GType gst_mplex_get_type (void); + +G_END_DECLS + +#endif /* __GST_MPLEX_H__ */ diff --git a/ext/mplex/gstmplexibitstream.cc b/ext/mplex/gstmplexibitstream.cc new file mode 100644 index 0000000..4249aea --- /dev/null +++ b/ext/mplex/gstmplexibitstream.cc @@ -0,0 +1,94 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2008 Mark Nauwelaerts + * + * gstmplexibitstream.hh: gstreamer/mplex input bitstream wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstmplex.hh" +#include "gstmplexibitstream.hh" + +/* + * Class init/exit functions. + */ + +GstMplexIBitStream::GstMplexIBitStream (GstMplexPad * _data, guint buf_size): +IBitStream () +{ + mpad = _data; + mplex = GST_MPLEX (GST_PAD_PARENT (mpad->pad)); + eos = FALSE; + + SetBufSize (buf_size); + eobs = false; + byteidx = 0; +} + +/* + * Read data. + */ + +size_t + GstMplexIBitStream::ReadStreamBytes (uint8_t * buf, size_t size = + BUFFER_SIZE) +{ + guint8 *data; + + GST_MPLEX_MUTEX_LOCK (mplex); + + GST_DEBUG_OBJECT (mplex, "needing %d bytes", (guint) size); + + while (gst_adapter_available (mpad->adapter) < size + && !mplex->eos && !mpad->eos) { + mpad->needed = size; + GST_MPLEX_SIGNAL (mplex, mpad); + GST_MPLEX_WAIT (mplex, mpad); + } + + mpad->needed = 0; + size = MIN (size, gst_adapter_available (mpad->adapter)); + if (size) { + data = gst_adapter_take (mpad->adapter, size); + memcpy (buf, data, size); + g_free (data); + } + + GST_MPLEX_MUTEX_UNLOCK (mplex); + + return size; +} + +/* + * Are we at EOS? + */ + +bool GstMplexIBitStream::EndOfStream (void) +{ + return eos; +} + +bool GstMplexIBitStream::ReadBuffer () +{ + return ReadIntoBuffer (BUFFER_SIZE); +} diff --git a/ext/mplex/gstmplexibitstream.hh b/ext/mplex/gstmplexibitstream.hh new file mode 100644 index 0000000..533160d --- /dev/null +++ b/ext/mplex/gstmplexibitstream.hh @@ -0,0 +1,54 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2008 Mark Nauwelaerts + * + * gstmplexibitstream.hh: gstreamer/mplex input bitstream wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPLEXIBITSTREAM_H__ +#define __GST_MPLEXIBITSTREAM_H__ + +#include +#include +#include + +#include "gstmplex.hh" + +/* forward declaration; break circular referencing */ +typedef struct _GstMplex GstMplex; +typedef struct _GstMplexPad GstMplexPad; + +class GstMplexIBitStream : public IBitStream { +public: + GstMplexIBitStream (GstMplexPad *pad, guint buf_size = BUFFER_SIZE); + bool ReadBuffer (); + +protected: + /* read data */ + size_t ReadStreamBytes (uint8_t *buf, size_t number); + + /* are we at EOS? */ + bool EndOfStream (void); + +private: + GstMplex *mplex; + GstMplexPad *mpad; + gboolean eos; +}; + +#endif /* __GST_MPLEXIBITSTREAM_H__ */ diff --git a/ext/mplex/gstmplexjob.cc b/ext/mplex/gstmplexjob.cc new file mode 100644 index 0000000..fa6f8b7 --- /dev/null +++ b/ext/mplex/gstmplexjob.cc @@ -0,0 +1,239 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmplexjob.hh: gstreamer/mplex multiplex-job wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmplexjob.hh" + + +enum +{ + ARG_0, + ARG_FORMAT, + ARG_MUX_BITRATE, + ARG_VBR, + ARG_SYSTEM_HEADERS, + ARG_SPLIT_SEQUENCE, + ARG_SEGMENT_SIZE, + ARG_PACKETS_PER_PACK, + ARG_SECTOR_SIZE, + ARG_BUFSIZE + /* FILL ME */ +}; + +/* + * Property enumeration types. + */ + +#define GST_TYPE_MPLEX_FORMAT \ + (gst_mplex_format_get_type ()) + +static GType +gst_mplex_format_get_type (void) +{ + static GType mplex_format_type = 0; + + if (!mplex_format_type) { + static const GEnumValue mplex_formats[] = { + {0, "Generic MPEG-1", "0"}, + {1, "Standard VCD", "1"}, + {2, "User VCD", "2"}, + {3, "Generic MPEG-2", "3"}, + {4, "Standard SVCD", "4"}, + {5, "User SVCD", "5"}, + {6, "VCD Stills sequences", "6"}, + {7, "SVCD Stills sequences", "7"}, + {8, "DVD MPEG-2 for dvdauthor", "8"}, + {9, "DVD MPEG-2", "9"}, + {0, NULL, NULL}, + }; + + mplex_format_type = + g_enum_register_static ("GstMplexFormat", mplex_formats); + } + + return mplex_format_type; +} + +/* + * Class init functions. + */ + +GstMplexJob::GstMplexJob (void): +MultiplexJob () +{ + /* blabla */ + bufsize = 0; +} + +/* + * GObject properties. + */ + +void +GstMplexJob::initProperties (GObjectClass * klass) +{ + /* encoding profile */ + g_object_class_install_property (klass, ARG_FORMAT, + g_param_spec_enum ("format", "Format", "Encoding profile format", + GST_TYPE_MPLEX_FORMAT, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* total stream datarate. Normally, this shouldn't be needed, but + * some DVD/VCD/SVCD players really need strict values to handle + * the created files correctly. */ + g_object_class_install_property (klass, ARG_MUX_BITRATE, + g_param_spec_int ("mux-bitrate", "Mux. bitrate", + "Bitrate of output stream in kbps (0 = autodetect)", + 0, 15 * 1024, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* override decode buffer size otherwise determined by format */ + g_object_class_install_property (klass, ARG_BUFSIZE, + g_param_spec_int ("bufsize", "Decoder buf. size", + "Target decoders video buffer size (kB) " + "[default determined by format if not explicitly set]", + 20, 4000, 46, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* some boolean stuff for headers */ + g_object_class_install_property (klass, ARG_VBR, + g_param_spec_boolean ("vbr", "VBR", + "Whether the input video stream is variable bitrate", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + g_object_class_install_property (klass, ARG_SYSTEM_HEADERS, + g_param_spec_boolean ("system-headers", "System headers", + "Create system header in every pack for generic formats", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); +#if 0 /* not supported */ + g_object_class_install_property (klass, ARG_SPLIT_SEQUENCE, + g_param_spec_boolean ("split-sequence", "Split sequence", + "Simply split a sequence across files " + "(rather than building run-out/run-in)", + FALSE, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* size of a segment */ + g_object_class_install_property (klass, ARG_SEGMENT_SIZE, + g_param_spec_int ("max-segment-size", "Max. segment size", + "Max. size per segment/file in MB (0 = unlimited)", + 0, 10 * 1024, 0, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); +#endif + + /* packets per pack (generic formats) */ + g_object_class_install_property (klass, ARG_PACKETS_PER_PACK, + g_param_spec_int ("packets-per-pack", "Packets per pack", + "Number of packets per pack for generic formats", + 1, 100, 1, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); + + /* size of one sector */ + g_object_class_install_property (klass, ARG_SECTOR_SIZE, + g_param_spec_int ("sector-size", "Sector size", + "Specify sector size in bytes for generic formats", + 256, 16384, 2048, + (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS))); +} + +/* + * set/get gobject properties. + */ + +void +GstMplexJob::getProperty (guint prop_id, GValue * value) +{ + switch (prop_id) { + case ARG_FORMAT: + g_value_set_enum (value, mux_format); + break; + case ARG_MUX_BITRATE: + /* convert from bytes back to bits */ + g_value_set_int (value, (data_rate * 8) / 1000); + break; + case ARG_VBR: + g_value_set_boolean (value, VBR); + break; + case ARG_SYSTEM_HEADERS: + g_value_set_boolean (value, always_system_headers); + break; + case ARG_SPLIT_SEQUENCE: + g_value_set_boolean (value, multifile_segment); + break; + case ARG_SEGMENT_SIZE: + g_value_set_int (value, max_segment_size); + break; + case ARG_PACKETS_PER_PACK: + g_value_set_int (value, packets_per_pack); + break; + case ARG_SECTOR_SIZE: + g_value_set_int (value, sector_size); + break; + case ARG_BUFSIZE: + g_value_set_int (value, bufsize); + break; + default: + break; + } +} + +void +GstMplexJob::setProperty (guint prop_id, const GValue * value) +{ + switch (prop_id) { + case ARG_FORMAT: + mux_format = g_value_get_enum (value); + break; + case ARG_MUX_BITRATE: + /* data_rate expects bytes (don't ask me why the property itself is + * in bits, I'm just staying compatible to mjpegtools options), and + * rounded up to 50-bytes. */ + data_rate = ((g_value_get_int (value) * 1000 / 8 + 49) / 50) * 50; + break; + case ARG_VBR: + VBR = g_value_get_boolean (value); + break; + case ARG_SYSTEM_HEADERS: + always_system_headers = g_value_get_boolean (value); + break; + case ARG_SPLIT_SEQUENCE: + multifile_segment = g_value_get_boolean (value); + break; + case ARG_SEGMENT_SIZE: + max_segment_size = g_value_get_int (value); + break; + case ARG_PACKETS_PER_PACK: + packets_per_pack = g_value_get_int (value); + break; + case ARG_SECTOR_SIZE: + sector_size = g_value_get_int (value); + break; + case ARG_BUFSIZE: + bufsize = g_value_get_int (value); + break; + default: + break; + } +} diff --git a/ext/mplex/gstmplexjob.hh b/ext/mplex/gstmplexjob.hh new file mode 100644 index 0000000..8e96070 --- /dev/null +++ b/ext/mplex/gstmplexjob.hh @@ -0,0 +1,44 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * + * gstmplexjob.hh: gstreamer/mplex multiplex-job wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPLEXJOB_H__ +#define __GST_MPLEXJOB_H__ + +#include +#include + +class GstMplexJob : public MultiplexJob { +public: + GstMplexJob (void); + + /* gobject properties */ + static void initProperties (GObjectClass *klass); + + /* set/get gobject properties */ + void getProperty (guint prop_id, + GValue *value); + void setProperty (guint prop_id, + const GValue *value); + + int bufsize; +}; + +#endif /* __GST_MPLEXJOB_H__ */ diff --git a/ext/mplex/gstmplexoutputstream.cc b/ext/mplex/gstmplexoutputstream.cc new file mode 100644 index 0000000..5a0cc5a --- /dev/null +++ b/ext/mplex/gstmplexoutputstream.cc @@ -0,0 +1,113 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2008 Mark Nauwelaerts + * + * gstmplexoutputstream.hh: gstreamer/mplex output stream wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include + +#include "gstmplex.hh" +#include "gstmplexoutputstream.hh" + +/* + * Class init functions. + */ + +GstMplexOutputStream::GstMplexOutputStream (GstMplex * _element, GstPad * _pad): +OutputStream () +{ + mplex = _element; + pad = _pad; + size = 0; +} + +/* + * Open/close. Basically 'no-op's (close() sets EOS). + * + * Open (): -1 means failure, 0 means success. + */ + +int +GstMplexOutputStream::Open (void) +{ + return 0; +} + +void +GstMplexOutputStream::Close (void) +{ + GST_MPLEX_MUTEX_LOCK (mplex); + GST_DEBUG_OBJECT (mplex, "closing stream and sending eos"); + gst_pad_push_event (pad, gst_event_new_eos ()); + /* notify chain there is no more need to supply buffers */ + mplex->eos = TRUE; + GST_MPLEX_SIGNAL_ALL (mplex); + GST_MPLEX_MUTEX_UNLOCK (mplex); +} + +/* + * Get size of current segment. + */ + +#if GST_MJPEGTOOLS_API >= 10900 +uint64_t +GstMplexOutputStream::SegmentSize (void) +#else +off_t +GstMplexOutputStream::SegmentSize (void) +#endif +{ + return size; +} + +/* + * Next segment; not really supported. + */ + +void +GstMplexOutputStream::NextSegment (void) +{ + size = 0; + + GST_WARNING_OBJECT (mplex, "multiple file output is not supported"); + /* FIXME: no such filesink behaviour to be expected */ +} + +/* + * Write data. + */ + +void +GstMplexOutputStream::Write (guint8 * data, guint len) +{ + GstBuffer *buf; + + buf = gst_buffer_new_and_alloc (len); + memcpy (GST_BUFFER_DATA (buf), data, len); + + size += len; + GST_MPLEX_MUTEX_LOCK (mplex); + gst_buffer_set_caps (buf, GST_PAD_CAPS (pad)); + mplex->srcresult = gst_pad_push (pad, buf); + GST_MPLEX_MUTEX_UNLOCK (mplex); +} diff --git a/ext/mplex/gstmplexoutputstream.hh b/ext/mplex/gstmplexoutputstream.hh new file mode 100644 index 0000000..f93c2f9 --- /dev/null +++ b/ext/mplex/gstmplexoutputstream.hh @@ -0,0 +1,59 @@ +/* GStreamer mplex (mjpegtools) wrapper + * (c) 2003 Ronald Bultje + * (c) 2008 Mark Nauwelaerts + * + * gstmplexoutputstream.hh: gstreamer/mplex output stream wrapper + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MPLEXOUTPUTSTREAM_H__ +#define __GST_MPLEXOUTPUTSTREAM_H__ + +#include +#include +#include + +#include "gstmplex.hh" + +class GstMplexOutputStream : public OutputStream { +public: + GstMplexOutputStream (GstMplex *element, GstPad *pad); + + /* open/close. Basically 'no-op's (close() sets EOS). */ + int Open (void); + void Close (void); + + /* get size of current segment */ +#if GST_MJPEGTOOLS_API >= 10900 + uint64_t SegmentSize (void); +#else + off_t SegmentSize (void); +#endif + + /* next segment */ + void NextSegment (void); + + /* write data */ + void Write (guint8 *data, guint len); + +private: + GstMplex *mplex; + GstPad *pad; + guint64 size; +}; + +#endif /* __GST_MPLEXOUTPUTSTREAM_H__ */ diff --git a/ext/musepack/Makefile.am b/ext/musepack/Makefile.am new file mode 100644 index 0000000..ff2532c --- /dev/null +++ b/ext/musepack/Makefile.am @@ -0,0 +1,13 @@ +plugin_LTLIBRARIES = libgstmusepack.la + +libgstmusepack_la_SOURCES = \ + gstmusepackdec.c \ + gstmusepackreader.c +libgstmusepack_la_CFLAGS = $(MUSEPACK_CFLAGS) $(GST_CFLAGS) +libgstmusepack_la_LIBADD = $(MUSEPACK_LIBS) $(GST_LIBS) +libgstmusepack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmusepack_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = \ + gstmusepackdec.h \ + gstmusepackreader.h diff --git a/ext/musepack/Makefile.in b/ext/musepack/Makefile.in new file mode 100644 index 0000000..ee8d75c --- /dev/null +++ b/ext/musepack/Makefile.in @@ -0,0 +1,871 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/musepack +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmusepack_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstmusepack_la_OBJECTS = libgstmusepack_la-gstmusepackdec.lo \ + libgstmusepack_la-gstmusepackreader.lo +libgstmusepack_la_OBJECTS = $(am_libgstmusepack_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmusepack_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstmusepack_la_CFLAGS) $(CFLAGS) \ + $(libgstmusepack_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmusepack_la_SOURCES) +DIST_SOURCES = $(libgstmusepack_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmusepack.la +libgstmusepack_la_SOURCES = \ + gstmusepackdec.c \ + gstmusepackreader.c + +libgstmusepack_la_CFLAGS = $(MUSEPACK_CFLAGS) $(GST_CFLAGS) +libgstmusepack_la_LIBADD = $(MUSEPACK_LIBS) $(GST_LIBS) +libgstmusepack_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstmusepack_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = \ + gstmusepackdec.h \ + gstmusepackreader.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/musepack/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/musepack/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmusepack.la: $(libgstmusepack_la_OBJECTS) $(libgstmusepack_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstmusepack_la_LINK) -rpath $(plugindir) $(libgstmusepack_la_OBJECTS) $(libgstmusepack_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmusepack_la-gstmusepackdec.Plo@am__quote@ +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmusepack_la-gstmusepackreader.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstmusepack_la-gstmusepackdec.lo: gstmusepackdec.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmusepack_la_CFLAGS) $(CFLAGS) -MT libgstmusepack_la-gstmusepackdec.lo -MD -MP -MF $(DEPDIR)/libgstmusepack_la-gstmusepackdec.Tpo -c -o libgstmusepack_la-gstmusepackdec.lo `test -f 'gstmusepackdec.c' || echo '$(srcdir)/'`gstmusepackdec.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmusepack_la-gstmusepackdec.Tpo $(DEPDIR)/libgstmusepack_la-gstmusepackdec.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmusepackdec.c' object='libgstmusepack_la-gstmusepackdec.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmusepack_la_CFLAGS) $(CFLAGS) -c -o libgstmusepack_la-gstmusepackdec.lo `test -f 'gstmusepackdec.c' || echo '$(srcdir)/'`gstmusepackdec.c + +libgstmusepack_la-gstmusepackreader.lo: gstmusepackreader.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmusepack_la_CFLAGS) $(CFLAGS) -MT libgstmusepack_la-gstmusepackreader.lo -MD -MP -MF $(DEPDIR)/libgstmusepack_la-gstmusepackreader.Tpo -c -o libgstmusepack_la-gstmusepackreader.lo `test -f 'gstmusepackreader.c' || echo '$(srcdir)/'`gstmusepackreader.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmusepack_la-gstmusepackreader.Tpo $(DEPDIR)/libgstmusepack_la-gstmusepackreader.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmusepackreader.c' object='libgstmusepack_la-gstmusepackreader.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmusepack_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmusepack_la_CFLAGS) $(CFLAGS) -c -o libgstmusepack_la-gstmusepackreader.lo `test -f 'gstmusepackreader.c' || echo '$(srcdir)/'`gstmusepackreader.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/musepack/gstmusepackdec.c b/ext/musepack/gstmusepackdec.c new file mode 100644 index 0000000..30a34bf --- /dev/null +++ b/ext/musepack/gstmusepackdec.c @@ -0,0 +1,667 @@ +/* GStreamer Musepack decoder plugin + * Copyright (C) 2004 Ronald Bultje + * Copyright (C) 2006 Tim-Philipp Müller + * Copyright (C) 2008 Sebastian Dröge + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmusepackdec.h" +#include "gstmusepackreader.h" + +GST_DEBUG_CATEGORY (musepackdec_debug); +#define GST_CAT_DEFAULT musepackdec_debug + +static GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, +#ifdef MPC_IS_OLD_API + GST_STATIC_CAPS ("audio/x-musepack, streamversion = (int) 7") +#else + GST_STATIC_CAPS ("audio/x-musepack, streamversion = (int) { 7, 8 }") +#endif + ); + +#ifdef MPC_FIXED_POINT +#define BASE_CAPS \ + "audio/x-raw-int, " \ + "signed = (bool) TRUE, " \ + "width = (int) 32, " \ + "depth = (int) 32" +#else +#define BASE_CAPS \ + "audio/x-raw-float, " \ + "width = (int) 32" +#endif + +static GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS (BASE_CAPS ", " + "endianness = (int) BYTE_ORDER, " + "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]") + ); + +static void gst_musepackdec_dispose (GObject * obj); + +static gboolean gst_musepackdec_src_event (GstPad * pad, GstEvent * event); +static const GstQueryType *gst_musepackdec_get_src_query_types (GstPad * pad); +static gboolean gst_musepackdec_src_query (GstPad * pad, GstQuery * query); +static gboolean gst_musepackdec_sink_activate (GstPad * sinkpad); +static gboolean +gst_musepackdec_sink_activate_pull (GstPad * sinkpad, gboolean active); + +static void gst_musepackdec_loop (GstPad * sinkpad); +static GstStateChangeReturn +gst_musepackdec_change_state (GstElement * element, GstStateChange transition); + +GST_BOILERPLATE (GstMusepackDec, gst_musepackdec, GstElement, GST_TYPE_ELEMENT); + +static void +gst_musepackdec_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + + gst_element_class_set_details_simple (element_class, "Musepack decoder", + "Codec/Decoder/Audio", + "Musepack decoder", "Ronald Bultje "); +} + +static void +gst_musepackdec_class_init (GstMusepackDecClass * klass) +{ + GST_ELEMENT_CLASS (klass)->change_state = + GST_DEBUG_FUNCPTR (gst_musepackdec_change_state); + + G_OBJECT_CLASS (klass)->dispose = GST_DEBUG_FUNCPTR (gst_musepackdec_dispose); +} + +static void +gst_musepackdec_init (GstMusepackDec * musepackdec, GstMusepackDecClass * klass) +{ + musepackdec->offset = 0; + musepackdec->rate = 0; + musepackdec->bps = 0; + + musepackdec->r = g_new (mpc_reader, 1); +#ifdef MPC_IS_OLD_API + musepackdec->d = g_new (mpc_decoder, 1); +#endif + + musepackdec->sinkpad = + gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_activate_function (musepackdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_musepackdec_sink_activate)); + gst_pad_set_activatepull_function (musepackdec->sinkpad, + GST_DEBUG_FUNCPTR (gst_musepackdec_sink_activate_pull)); + gst_element_add_pad (GST_ELEMENT (musepackdec), musepackdec->sinkpad); + + musepackdec->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_pad_set_event_function (musepackdec->srcpad, + GST_DEBUG_FUNCPTR (gst_musepackdec_src_event)); + gst_pad_set_query_function (musepackdec->srcpad, + GST_DEBUG_FUNCPTR (gst_musepackdec_src_query)); + gst_pad_set_query_type_function (musepackdec->srcpad, + GST_DEBUG_FUNCPTR (gst_musepackdec_get_src_query_types)); + gst_pad_use_fixed_caps (musepackdec->srcpad); + gst_element_add_pad (GST_ELEMENT (musepackdec), musepackdec->srcpad); +} + +static void +gst_musepackdec_dispose (GObject * obj) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (obj); + + g_free (musepackdec->r); + musepackdec->r = NULL; + +#ifdef MPC_IS_OLD_API + g_free (musepackdec->d); + musepackdec->d = NULL; +#else + if (musepackdec->d) { + mpc_demux_exit (musepackdec->d); + musepackdec->d = NULL; + } +#endif + + G_OBJECT_CLASS (parent_class)->dispose (obj); +} + +static void +gst_musepackdec_send_newsegment (GstMusepackDec * dec) +{ + GstSegment *s = &dec->segment; + gint64 stop_time = GST_CLOCK_TIME_NONE; + gint64 start_time = 0; + + start_time = gst_util_uint64_scale_int (s->start, GST_SECOND, dec->rate); + + if (s->stop != -1) + stop_time = gst_util_uint64_scale_int (s->stop, GST_SECOND, dec->rate); + + GST_DEBUG_OBJECT (dec, "sending newsegment from %" GST_TIME_FORMAT + " to %" GST_TIME_FORMAT ", rate = %.1f", GST_TIME_ARGS (start_time), + GST_TIME_ARGS (stop_time), s->rate); + + gst_pad_push_event (dec->srcpad, + gst_event_new_new_segment (FALSE, s->rate, GST_FORMAT_TIME, + start_time, stop_time, start_time)); +} + +static gboolean +gst_musepackdec_handle_seek_event (GstMusepackDec * dec, GstEvent * event) +{ + GstSeekType start_type, stop_type; + GstSeekFlags flags; + GstSegment segment; + GstFormat format; + gboolean flush; + gdouble rate; + gint64 start, stop; + gint samplerate; + + gst_event_parse_seek (event, &rate, &format, &flags, &start_type, &start, + &stop_type, &stop); + + if (format != GST_FORMAT_TIME && format != GST_FORMAT_DEFAULT) { + GST_DEBUG_OBJECT (dec, "seek failed: only TIME or DEFAULT format allowed"); + return FALSE; + } + + samplerate = g_atomic_int_get (&dec->rate); + + if (format == GST_FORMAT_TIME) { + if (start_type != GST_SEEK_TYPE_NONE) + start = gst_util_uint64_scale_int (start, samplerate, GST_SECOND); + if (stop_type != GST_SEEK_TYPE_NONE) + stop = gst_util_uint64_scale_int (stop, samplerate, GST_SECOND); + } + + flush = ((flags & GST_SEEK_FLAG_FLUSH) == GST_SEEK_FLAG_FLUSH); + + if (flush) + gst_pad_push_event (dec->srcpad, gst_event_new_flush_start ()); + else + gst_pad_pause_task (dec->sinkpad); /* not _stop_task()? */ + + GST_PAD_STREAM_LOCK (dec->sinkpad); + + /* operate on segment copy until we know the seek worked */ + segment = dec->segment; + + gst_segment_set_seek (&segment, rate, GST_FORMAT_DEFAULT, + flags, start_type, start, stop_type, stop, NULL); + + gst_pad_push_event (dec->sinkpad, gst_event_new_flush_stop ()); + + GST_DEBUG_OBJECT (dec, "segment: [%" G_GINT64_FORMAT "-%" G_GINT64_FORMAT + "] = [%" GST_TIME_FORMAT "-%" GST_TIME_FORMAT "]", + segment.start, segment.stop, + GST_TIME_ARGS (segment.start * GST_SECOND / dec->rate), + GST_TIME_ARGS (segment.stop * GST_SECOND / dec->rate)); + + GST_DEBUG_OBJECT (dec, "performing seek to sample %" G_GINT64_FORMAT, + segment.start); + + if (segment.start < 0 || segment.start >= segment.duration) { + GST_WARNING_OBJECT (dec, "seek out of bounds"); + goto failed; + } +#ifdef MPC_IS_OLD_API + if (!mpc_decoder_seek_sample (dec->d, segment.start)) + goto failed; +#else + if (mpc_demux_seek_sample (dec->d, segment.start) != MPC_STATUS_OK) + goto failed; +#endif + + if ((flags & GST_SEEK_FLAG_SEGMENT) == GST_SEEK_FLAG_SEGMENT) { + GST_DEBUG_OBJECT (dec, "posting SEGMENT_START message"); + + gst_element_post_message (GST_ELEMENT (dec), + gst_message_new_segment_start (GST_OBJECT (dec), GST_FORMAT_TIME, + gst_util_uint64_scale_int (segment.start, GST_SECOND, dec->rate))); + } + + if (flush) { + gst_pad_push_event (dec->srcpad, gst_event_new_flush_stop ()); + } + + gst_segment_set_last_stop (&segment, GST_FORMAT_DEFAULT, segment.start); + dec->segment = segment; + gst_musepackdec_send_newsegment (dec); + + GST_DEBUG_OBJECT (dec, "seek successful"); + + gst_pad_start_task (dec->sinkpad, + (GstTaskFunction) gst_musepackdec_loop, dec->sinkpad); + + GST_PAD_STREAM_UNLOCK (dec->sinkpad); + + return TRUE; + +failed: + { + GST_WARNING_OBJECT (dec, "seek failed"); + GST_PAD_STREAM_UNLOCK (dec->sinkpad); + return FALSE; + } +} + +static gboolean +gst_musepackdec_src_event (GstPad * pad, GstEvent * event) +{ + GstMusepackDec *dec; + gboolean res; + + dec = GST_MUSEPACK_DEC (gst_pad_get_parent (pad)); + + GST_DEBUG_OBJECT (dec, "handling %s event", GST_EVENT_TYPE_NAME (event)); + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_SEEK: + res = gst_musepackdec_handle_seek_event (dec, event); + break; + default: + res = gst_pad_event_default (pad, event); + break; + } + + gst_object_unref (dec); + return res; +} + +static const GstQueryType * +gst_musepackdec_get_src_query_types (GstPad * pad) +{ + static const GstQueryType query_types[] = { + GST_QUERY_POSITION, + GST_QUERY_DURATION, + GST_QUERY_SEEKING, + (GstQueryType) 0 + }; + + return query_types; +} + +static gboolean +gst_musepackdec_src_query (GstPad * pad, GstQuery * query) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (gst_pad_get_parent (pad)); + GstFormat format; + gboolean res = FALSE; + gint samplerate; + + samplerate = g_atomic_int_get (&musepackdec->rate); + + if (samplerate == 0) + goto done; + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION:{ + gint64 cur, cur_off; + + gst_query_parse_position (query, &format, NULL); + + GST_OBJECT_LOCK (musepackdec); + cur_off = musepackdec->segment.last_stop; + GST_OBJECT_UNLOCK (musepackdec); + + if (format == GST_FORMAT_TIME) { + cur = gst_util_uint64_scale_int (cur_off, GST_SECOND, samplerate); + gst_query_set_position (query, GST_FORMAT_TIME, cur); + res = TRUE; + } else if (format == GST_FORMAT_DEFAULT) { + gst_query_set_position (query, GST_FORMAT_DEFAULT, cur_off); + res = TRUE; + } + break; + } + case GST_QUERY_DURATION:{ + gint64 len, len_off; + + gst_query_parse_duration (query, &format, NULL); + + GST_OBJECT_LOCK (musepackdec); + len_off = musepackdec->segment.duration; + GST_OBJECT_UNLOCK (musepackdec); + + if (format == GST_FORMAT_TIME) { + len = gst_util_uint64_scale_int (len_off, GST_SECOND, samplerate); + gst_query_set_duration (query, GST_FORMAT_TIME, len); + res = TRUE; + } else if (format == GST_FORMAT_DEFAULT) { + gst_query_set_duration (query, GST_FORMAT_DEFAULT, len_off); + res = TRUE; + } + break; + } + case GST_QUERY_SEEKING:{ + GstFormat fmt; + + res = TRUE; + gst_query_parse_seeking (query, &fmt, NULL, NULL, NULL); + if (fmt == GST_FORMAT_TIME || fmt == GST_FORMAT_DEFAULT) + gst_query_set_seeking (query, fmt, TRUE, 0, -1); + else + gst_query_set_seeking (query, fmt, FALSE, -1, -1); + + break; + } + default: + res = gst_pad_query_default (pad, query); + break; + } + +done: + gst_object_unref (musepackdec); + return res; +} + +static gboolean +gst_musepack_stream_init (GstMusepackDec * musepackdec) +{ + mpc_streaminfo i; + GstTagList *tags; + GstCaps *caps; + + /* set up reading */ + gst_musepack_init_reader (musepackdec->r, musepackdec); + +#ifdef MPC_IS_OLD_API + /* streaminfo */ + mpc_streaminfo_init (&i); + if (mpc_streaminfo_read (&i, musepackdec->r) < 0) { + GST_ELEMENT_ERROR (musepackdec, STREAM, WRONG_TYPE, (NULL), (NULL)); + return FALSE; + } + + /* decoding */ + mpc_decoder_setup (musepackdec->d, musepackdec->r); + mpc_decoder_scale_output (musepackdec->d, 1.0); + if (!mpc_decoder_initialize (musepackdec->d, &i)) { + GST_ELEMENT_ERROR (musepackdec, STREAM, WRONG_TYPE, (NULL), (NULL)); + return FALSE; + } +#else + musepackdec->d = mpc_demux_init (musepackdec->r); + if (!musepackdec->d) { + GST_ELEMENT_ERROR (musepackdec, STREAM, WRONG_TYPE, (NULL), (NULL)); + return FALSE; + } + + mpc_demux_get_info (musepackdec->d, &i); +#endif + + /* capsnego */ + caps = gst_caps_from_string (BASE_CAPS); + gst_caps_set_simple (caps, + "endianness", G_TYPE_INT, G_BYTE_ORDER, + "channels", G_TYPE_INT, i.channels, + "rate", G_TYPE_INT, i.sample_freq, NULL); + gst_pad_use_fixed_caps (musepackdec->srcpad); + if (!gst_pad_set_caps (musepackdec->srcpad, caps)) { + GST_ELEMENT_ERROR (musepackdec, CORE, NEGOTIATION, (NULL), (NULL)); + return FALSE; + } + + g_atomic_int_set (&musepackdec->bps, 4 * i.channels); + g_atomic_int_set (&musepackdec->rate, i.sample_freq); + + gst_segment_set_last_stop (&musepackdec->segment, GST_FORMAT_DEFAULT, 0); + gst_segment_set_duration (&musepackdec->segment, GST_FORMAT_DEFAULT, + mpc_streaminfo_get_length_samples (&i)); + + /* send basic tags */ + tags = gst_tag_list_new (); + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_AUDIO_CODEC, "Musepack", NULL); + + if (i.encoder[0] != '\0' && i.encoder_version > 0) { + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_ENCODER, i.encoder, + GST_TAG_ENCODER_VERSION, i.encoder_version, NULL); + } + + if (i.bitrate > 0) { + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, i.bitrate, NULL); + } else if (i.average_bitrate > 0.0) { + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_BITRATE, (guint) i.average_bitrate, NULL); + } + + if (i.gain_title != 0 || i.gain_album != 0) { + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_TRACK_GAIN, (gdouble) i.gain_title / 100.0, + GST_TAG_ALBUM_GAIN, (gdouble) i.gain_album / 100.0, NULL); + } + + if (i.peak_title != 0 && i.peak_title != 32767 && + i.peak_album != 0 && i.peak_album != 32767) { + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_TRACK_PEAK, (gdouble) i.peak_title / 32767.0, + GST_TAG_ALBUM_PEAK, (gdouble) i.peak_album / 32767.0, NULL); + } + + GST_LOG_OBJECT (musepackdec, "Posting tags: %" GST_PTR_FORMAT, tags); + gst_element_found_tags (GST_ELEMENT (musepackdec), tags); + + return TRUE; +} + +static gboolean +gst_musepackdec_sink_activate (GstPad * sinkpad) +{ + if (!gst_pad_check_pull_range (sinkpad)) + return FALSE; + + return gst_pad_activate_pull (sinkpad, TRUE); +} + +static gboolean +gst_musepackdec_sink_activate_pull (GstPad * sinkpad, gboolean active) +{ + gboolean result; + + if (active) { + result = gst_pad_start_task (sinkpad, + (GstTaskFunction) gst_musepackdec_loop, sinkpad); + } else { + result = gst_pad_stop_task (sinkpad); + } + + return result; +} + +static void +gst_musepackdec_loop (GstPad * sinkpad) +{ + GstMusepackDec *musepackdec; + GstFlowReturn flow; + GstBuffer *out; + +#ifdef MPC_IS_OLD_API + guint32 update_acc, update_bits; +#else + mpc_frame_info frame; + mpc_status err; +#endif + gint num_samples, samplerate, bitspersample; + + musepackdec = GST_MUSEPACK_DEC (GST_PAD_PARENT (sinkpad)); + + samplerate = g_atomic_int_get (&musepackdec->rate); + + if (samplerate == 0) { + if (!gst_musepack_stream_init (musepackdec)) + goto pause_task; + + gst_musepackdec_send_newsegment (musepackdec); + samplerate = g_atomic_int_get (&musepackdec->rate); + } + + bitspersample = g_atomic_int_get (&musepackdec->bps); + + flow = gst_pad_alloc_buffer_and_set_caps (musepackdec->srcpad, -1, + MPC_DECODER_BUFFER_LENGTH * 4, GST_PAD_CAPS (musepackdec->srcpad), &out); + + if (flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (musepackdec, "Flow: %s", gst_flow_get_name (flow)); + goto pause_task; + } +#ifdef MPC_IS_OLD_API + num_samples = mpc_decoder_decode (musepackdec->d, + (MPC_SAMPLE_FORMAT *) GST_BUFFER_DATA (out), &update_acc, &update_bits); + + if (num_samples < 0) { + GST_ERROR_OBJECT (musepackdec, "Failed to decode sample"); + GST_ELEMENT_ERROR (musepackdec, STREAM, DECODE, (NULL), (NULL)); + goto pause_task; + } else if (num_samples == 0) { + goto eos_and_pause; + } +#else + frame.buffer = (MPC_SAMPLE_FORMAT *) GST_BUFFER_DATA (out); + err = mpc_demux_decode (musepackdec->d, &frame); + + if (err != MPC_STATUS_OK) { + GST_ERROR_OBJECT (musepackdec, "Failed to decode sample"); + GST_ELEMENT_ERROR (musepackdec, STREAM, DECODE, (NULL), (NULL)); + goto pause_task; + } else if (frame.bits == -1) { + goto eos_and_pause; + } + + num_samples = frame.samples; +#endif + + GST_BUFFER_SIZE (out) = num_samples * bitspersample; + + GST_BUFFER_OFFSET (out) = musepackdec->segment.last_stop; + GST_BUFFER_TIMESTAMP (out) = + gst_util_uint64_scale_int (musepackdec->segment.last_stop, + GST_SECOND, samplerate); + GST_BUFFER_DURATION (out) = + gst_util_uint64_scale_int (num_samples, GST_SECOND, samplerate); + + musepackdec->segment.last_stop += num_samples; + + GST_LOG_OBJECT (musepackdec, "Pushing buffer, timestamp %" GST_TIME_FORMAT, + GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (out))); + + flow = gst_pad_push (musepackdec->srcpad, out); + if (flow != GST_FLOW_OK) { + GST_DEBUG_OBJECT (musepackdec, "Flow: %s", gst_flow_get_name (flow)); + goto pause_task; + } + + /* check if we're at the end of a configured segment */ + if (musepackdec->segment.stop != -1 && + musepackdec->segment.last_stop >= musepackdec->segment.stop) { + gint64 stop_time; + + GST_DEBUG_OBJECT (musepackdec, "Reached end of configured segment"); + + if ((musepackdec->segment.flags & GST_SEEK_FLAG_SEGMENT) == 0) + goto eos_and_pause; + + GST_DEBUG_OBJECT (musepackdec, "Posting SEGMENT_DONE message"); + + stop_time = gst_util_uint64_scale_int (musepackdec->segment.stop, + GST_SECOND, samplerate); + + gst_element_post_message (GST_ELEMENT (musepackdec), + gst_message_new_segment_done (GST_OBJECT (musepackdec), + GST_FORMAT_TIME, stop_time)); + + goto pause_task; + } + + return; + +eos_and_pause: + { + GST_DEBUG_OBJECT (musepackdec, "sending EOS event"); + gst_pad_push_event (musepackdec->srcpad, gst_event_new_eos ()); + /* fall through to pause */ + } + +pause_task: + { + GST_DEBUG_OBJECT (musepackdec, "Pausing task"); + gst_pad_pause_task (sinkpad); + return; + } +} + +static GstStateChangeReturn +gst_musepackdec_change_state (GstElement * element, GstStateChange transition) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (element); + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + gst_segment_init (&musepackdec->segment, GST_FORMAT_DEFAULT); + gst_segment_set_last_stop (&musepackdec->segment, GST_FORMAT_DEFAULT, 0); + break; + default: + break; + } + + if (GST_ELEMENT_CLASS (parent_class)->change_state) + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + gst_segment_init (&musepackdec->segment, GST_FORMAT_UNDEFINED); + musepackdec->offset = 0; + musepackdec->rate = 0; + musepackdec->bps = 0; + break; + default: + break; + } + + return ret; + +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + GST_DEBUG_CATEGORY_INIT (musepackdec_debug, "musepackdec", 0, "mpc decoder"); + + return gst_element_register (plugin, "musepackdec", + GST_RANK_PRIMARY, GST_TYPE_MUSEPACK_DEC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "musepack", + "Musepack decoder", plugin_init, VERSION, "LGPL", GST_PACKAGE_NAME, + GST_PACKAGE_ORIGIN) diff --git a/ext/musepack/gstmusepackdec.h b/ext/musepack/gstmusepackdec.h new file mode 100644 index 0000000..517861d --- /dev/null +++ b/ext/musepack/gstmusepackdec.h @@ -0,0 +1,75 @@ +/* GStreamer Musepack decoder plugin + * Copyright (C) 2004 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MUSEPACK_DEC_H__ +#define __GST_MUSEPACK_DEC_H__ + +#ifdef MPC_IS_OLD_API +#include +#else +#include +#endif + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_MUSEPACK_DEC \ + (gst_musepackdec_get_type ()) +#define GST_MUSEPACK_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST ((obj), GST_TYPE_MUSEPACK_DEC, \ + GstMusepackDec)) +#define GST_MUSEPACK_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST ((klass), GST_TYPE_MUSEPACK_DEC, \ + GstMusepackDecClass)) +#define GST_IS_MUSEPACK_DEC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GST_TYPE_MUSEPACK_DEC)) +#define GST_IS_MUSEPACK_DEC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE ((klass), GST_TYPE_MUSEPACK_DEC)) + +typedef struct _GstMusepackDec { + GstElement element; + + GstPad *srcpad; + GstPad *sinkpad; + guint64 offset; + + /* MUSEPACK_DEC object */ +#ifdef MPC_IS_OLD_API + mpc_decoder *d; +#else + mpc_demux *d; +#endif + mpc_reader *r; + + gint bps; /* bytes per sample */ /* ATOMIC */ + gint rate; /* sample rate */ /* ATOMIC */ + + GstSegment segment; /* configured segment in samples (DEFAULT format) */ +} GstMusepackDec; + +typedef struct _GstMusepackDecClass { + GstElementClass parent_class; +} GstMusepackDecClass; + +GType gst_musepackdec_get_type (void); + +G_END_DECLS + +#endif /* __GST_MUSEPACK_DEC_H__ */ diff --git a/ext/musepack/gstmusepackreader.c b/ext/musepack/gstmusepackreader.c new file mode 100644 index 0000000..8a43f76 --- /dev/null +++ b/ext/musepack/gstmusepackreader.c @@ -0,0 +1,194 @@ +/* GStreamer Musepack decoder plugin + * Copyright (C) 2004 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmusepackreader.h" +#include +#include + + +GST_DEBUG_CATEGORY_EXTERN (musepackdec_debug); +#define GST_CAT_DEFAULT musepackdec_debug + +#ifdef MPC_IS_OLD_API +static mpc_int32_t gst_musepack_reader_peek (void *this, void *ptr, + mpc_int32_t size); +static mpc_int32_t gst_musepack_reader_read (void *this, void *ptr, + mpc_int32_t size); +static mpc_bool_t gst_musepack_reader_seek (void *this, mpc_int32_t offset); +static mpc_int32_t gst_musepack_reader_tell (void *this); +static mpc_int32_t gst_musepack_reader_get_size (void *this); +static mpc_bool_t gst_musepack_reader_canseek (void *this); +#else +static mpc_int32_t gst_musepack_reader_peek (mpc_reader * this, void *ptr, + mpc_int32_t size); +static mpc_int32_t gst_musepack_reader_read (mpc_reader * this, void *ptr, + mpc_int32_t size); +static mpc_bool_t gst_musepack_reader_seek (mpc_reader * this, + mpc_int32_t offset); +static mpc_int32_t gst_musepack_reader_tell (mpc_reader * this); +static mpc_int32_t gst_musepack_reader_get_size (mpc_reader * this); +static mpc_bool_t gst_musepack_reader_canseek (mpc_reader * this); +#endif + +#ifdef MPC_IS_OLD_API +static mpc_int32_t +gst_musepack_reader_peek (void *this, void *ptr, mpc_int32_t size) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this); +#else +static mpc_int32_t +gst_musepack_reader_peek (mpc_reader * this, void *ptr, mpc_int32_t size) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this->data); +#endif + GstFlowReturn flow_ret; + GstBuffer *buf = NULL; + guint read; + + g_return_val_if_fail (size > 0, 0); + + /* GST_LOG_OBJECT (musepackdec, "size=%d", size); */ + + flow_ret = gst_pad_pull_range (musepackdec->sinkpad, musepackdec->offset, + size, &buf); + + if (flow_ret != GST_FLOW_OK) { + GST_DEBUG_OBJECT (musepackdec, "Flow: %s", gst_flow_get_name (flow_ret)); + return 0; + } + + read = MIN (GST_BUFFER_SIZE (buf), size); + + if (read < size) { + GST_WARNING_OBJECT (musepackdec, "Short read: got only %u bytes of %u " + "bytes requested at offset %" G_GINT64_FORMAT, read, size, + musepackdec->offset); + /* GST_ELEMENT_ERROR (musepackdec, RESOURCE, READ, (NULL), (NULL)); */ + } + + memcpy (ptr, GST_BUFFER_DATA (buf), read); + gst_buffer_unref (buf); + return read; +} + +#ifdef MPC_IS_OLD_API +static mpc_int32_t +gst_musepack_reader_read (void *this, void *ptr, mpc_int32_t size) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this); +#else +static mpc_int32_t +gst_musepack_reader_read (mpc_reader * this, void *ptr, mpc_int32_t size) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this->data); +#endif + gint read; + + /* read = peek + flush */ + if ((read = gst_musepack_reader_peek (this, ptr, size)) > 0) { + musepackdec->offset += read; + } + + return read; +} + +#ifdef MPC_IS_OLD_API +static mpc_bool_t +gst_musepack_reader_seek (void *this, mpc_int32_t offset) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this); +#else +static mpc_bool_t +gst_musepack_reader_seek (mpc_reader * this, mpc_int32_t offset) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this->data); +#endif + mpc_int32_t length; + + length = gst_musepack_reader_get_size (this); + if (length > 0 && offset >= 0 && offset < length) { + musepackdec->offset = offset; + GST_LOG_OBJECT (musepackdec, "Seek'ed to byte offset %d", (gint) offset); + return TRUE; + } else { + GST_DEBUG_OBJECT (musepackdec, "Cannot seek to offset %d", (gint) offset); + return FALSE; + } +} + +#ifdef MPC_IS_OLD_API +static mpc_int32_t +gst_musepack_reader_tell (void *this) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this); +#else +static mpc_int32_t +gst_musepack_reader_tell (mpc_reader * this) +{ + GstMusepackDec *musepackdec = GST_MUSEPACK_DEC (this->data); +#endif + return musepackdec->offset; +} + +#ifdef MPC_IS_OLD_API +static mpc_int32_t +gst_musepack_reader_get_size (void *this) +{ + GstMusepackDec *dec = GST_MUSEPACK_DEC (this); +#else +static mpc_int32_t +gst_musepack_reader_get_size (mpc_reader * this) +{ + GstMusepackDec *dec = GST_MUSEPACK_DEC (this->data); +#endif + GstFormat format = GST_FORMAT_BYTES; + gint64 length = -1; + + if (!gst_pad_query_peer_duration (dec->sinkpad, &format, &length)) + length = -1; + + return (mpc_int32_t) length; +} + +#ifdef MPC_IS_OLD_API +static mpc_bool_t +gst_musepack_reader_canseek (void *this) +#else +static mpc_bool_t +gst_musepack_reader_canseek (mpc_reader * this) +#endif +{ + return TRUE; +} + +void +gst_musepack_init_reader (mpc_reader * r, GstMusepackDec * musepackdec) +{ + r->data = musepackdec; + + r->read = gst_musepack_reader_read; + r->seek = gst_musepack_reader_seek; + r->tell = gst_musepack_reader_tell; + r->get_size = gst_musepack_reader_get_size; + r->canseek = gst_musepack_reader_canseek; +} diff --git a/ext/musepack/gstmusepackreader.h b/ext/musepack/gstmusepackreader.h new file mode 100644 index 0000000..382e6f8 --- /dev/null +++ b/ext/musepack/gstmusepackreader.h @@ -0,0 +1,33 @@ +/* GStreamer Musepack decoder plugin + * Copyright (C) 2004 Ronald Bultje + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MUSEPACK_READER_H__ +#define __GST_MUSEPACK_READER_H__ + +#ifdef MPC_IS_OLD_API +#include +#else +#include +#endif + +#include "gstmusepackdec.h" + +void gst_musepack_init_reader (mpc_reader * r, GstMusepackDec * musepackdec); + +#endif /* __GST_MUSEPACK_READER_H__ */ diff --git a/ext/musicbrainz/Makefile.am b/ext/musicbrainz/Makefile.am new file mode 100644 index 0000000..ab536c6 --- /dev/null +++ b/ext/musicbrainz/Makefile.am @@ -0,0 +1,11 @@ +plugin_LTLIBRARIES = libgsttrm.la + +noinst_HEADERS = gsttrm.h + +libgsttrm_la_SOURCES = gsttrm.c +libgsttrm_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(MUSICBRAINZ_CFLAGS) +libgsttrm_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(MUSICBRAINZ_LIBS) \ + -lgsttag-@GST_MAJORMINOR@ +libgsttrm_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgsttrm_la_LIBTOOLFLAGS = --tag=disable-static + diff --git a/ext/musicbrainz/Makefile.in b/ext/musicbrainz/Makefile.in new file mode 100644 index 0000000..861c58e --- /dev/null +++ b/ext/musicbrainz/Makefile.in @@ -0,0 +1,857 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/musicbrainz +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgsttrm_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) $(am__DEPENDENCIES_1) +am_libgsttrm_la_OBJECTS = libgsttrm_la-gsttrm.lo +libgsttrm_la_OBJECTS = $(am_libgsttrm_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgsttrm_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgsttrm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgsttrm_la_CFLAGS) $(CFLAGS) \ + $(libgsttrm_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgsttrm_la_SOURCES) +DIST_SOURCES = $(libgsttrm_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgsttrm.la +noinst_HEADERS = gsttrm.h +libgsttrm_la_SOURCES = gsttrm.c +libgsttrm_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_CFLAGS) $(MUSICBRAINZ_CFLAGS) +libgsttrm_la_LIBADD = $(GST_PLUGINS_BASE_LIBS) $(GST_LIBS) $(MUSICBRAINZ_LIBS) \ + -lgsttag-@GST_MAJORMINOR@ + +libgsttrm_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgsttrm_la_LIBTOOLFLAGS = --tag=disable-static +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/musicbrainz/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/musicbrainz/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgsttrm.la: $(libgsttrm_la_OBJECTS) $(libgsttrm_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgsttrm_la_LINK) -rpath $(plugindir) $(libgsttrm_la_OBJECTS) $(libgsttrm_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgsttrm_la-gsttrm.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgsttrm_la-gsttrm.lo: gsttrm.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttrm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttrm_la_CFLAGS) $(CFLAGS) -MT libgsttrm_la-gsttrm.lo -MD -MP -MF $(DEPDIR)/libgsttrm_la-gsttrm.Tpo -c -o libgsttrm_la-gsttrm.lo `test -f 'gsttrm.c' || echo '$(srcdir)/'`gsttrm.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgsttrm_la-gsttrm.Tpo $(DEPDIR)/libgsttrm_la-gsttrm.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gsttrm.c' object='libgsttrm_la-gsttrm.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgsttrm_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgsttrm_la_CFLAGS) $(CFLAGS) -c -o libgsttrm_la-gsttrm.lo `test -f 'gsttrm.c' || echo '$(srcdir)/'`gsttrm.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/musicbrainz/gsttrm.c b/ext/musicbrainz/gsttrm.c new file mode 100644 index 0000000..7e53cc0 --- /dev/null +++ b/ext/musicbrainz/gsttrm.c @@ -0,0 +1,393 @@ +/* GStreamer trm plugin + * Copyright (C) 2004 Jeremy Simon + * Copyright (C) 2006 James Livingston + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-trm + * + * GstTRM computes MusicBrainz + * TRM identifiers for audio streams using libmusicbrainz. + * + * A TRM identifier is something like an 'acoustic fingerprint', the aim is + * to uniquely identify the same song regardless of which source it comes from + * or which audio format the stream is in. + * + * The TRM element will collect about 30 seconds of audio and let + * libmusicbrainz calculate a preliminary audio signature from that. That audio + * signature will then be sent over the internet to a musicbrainz.org server + * which will calculate the TRM for that signature. + * + * The TRM element will post a tag message with a #GST_TAG_MUSICBRAINZ_TRMID + * tag on the bus once the TRM has been calculated (and also send a tag event + * with that information downstream). + * + * + * Example pipeline + * |[ + * gst-launch -m filesrc location=somefile.ogg ! decodebin ! audioconvert ! trm ! fakesink + * ]| calculate the TRM and print the tag message with the TRM ID. + * + */ + + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include + +#include "gsttrm.h" + +enum +{ + ARG_0, + ARG_PROXY_ADDRESS, + ARG_PROXY_PORT +}; + +GST_DEBUG_CATEGORY_STATIC (trm_debug); +#define GST_CAT_DEFAULT trm_debug + +GstStaticPadTemplate src_template = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (bool) TRUE, " + "width = (int) { 8, 16 }, " + "depth = (int) { 8, 16 }, " + "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]") + ); + + +GstStaticPadTemplate sink_template = GST_STATIC_PAD_TEMPLATE ("sink", + GST_PAD_SINK, + GST_PAD_ALWAYS, + GST_STATIC_CAPS ("audio/x-raw-int, " + "endianness = (int) BYTE_ORDER, " + "signed = (bool) TRUE, " + "width = (int) { 8, 16 }, " + "depth = (int) { 8, 16 }, " + "rate = (int) [ 8000, 96000 ], " "channels = (int) [ 1, 2 ]") + ); + +#define DEFAULT_PROXY_ADDRESS NULL +#define DEFAULT_PROXY_PORT 8080 + +static GstFlowReturn gst_trm_chain (GstPad * pad, GstBuffer * buffer); +static gboolean gst_trm_setcaps (GstPad * pad, GstCaps * caps); + +static void gst_trm_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec); +static void gst_trm_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec); + +static GstStateChangeReturn +gst_trm_change_state (GstElement * element, GstStateChange transition); + +static void gst_trm_emit_signature (GstTRM * trm); + + +GST_BOILERPLATE (GstTRM, gst_trm, GstElement, GST_TYPE_ELEMENT); + +static void +gst_trm_base_init (gpointer klass) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (klass); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&src_template)); + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&sink_template)); + + gst_element_class_set_details_simple (element_class, + "MusicBrainz TRM generator", "Filter/Analyzer/Audio", + "Compute MusicBrainz TRM Id using libmusicbrainz", + "Jeremy Simon "); +} + +static void +gst_trm_class_init (GstTRMClass * klass) +{ + GObjectClass *gobject_class; + GstElementClass *gstelement_class; + + gobject_class = (GObjectClass *) klass; + gstelement_class = (GstElementClass *) klass; + + gobject_class->set_property = gst_trm_set_property; + gobject_class->get_property = gst_trm_get_property; + + g_object_class_install_property (gobject_class, ARG_PROXY_ADDRESS, + g_param_spec_string ("proxy-address", "proxy address", "proxy address", + DEFAULT_PROXY_ADDRESS, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + g_object_class_install_property (gobject_class, ARG_PROXY_PORT, + g_param_spec_uint ("proxy-port", "proxy port", "proxy port", + 1, 65535, DEFAULT_PROXY_PORT, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_trm_change_state); +} + +static void +gst_trm_init (GstTRM * trm, GstTRMClass * klass) +{ + trm->sinkpad = gst_pad_new_from_static_template (&sink_template, "sink"); + gst_pad_set_chain_function (trm->sinkpad, GST_DEBUG_FUNCPTR (gst_trm_chain)); + gst_pad_set_setcaps_function (trm->sinkpad, + GST_DEBUG_FUNCPTR (gst_trm_setcaps)); + gst_element_add_pad (GST_ELEMENT (trm), trm->sinkpad); + + trm->srcpad = gst_pad_new_from_static_template (&src_template, "src"); + gst_element_add_pad (GST_ELEMENT (trm), trm->srcpad); + + trm->proxy_address = g_strdup (DEFAULT_PROXY_ADDRESS); + trm->proxy_port = DEFAULT_PROXY_PORT; + + trm->trm = NULL; + trm->data_available = FALSE; + trm->signature_available = FALSE; +} + +static gboolean +gst_trm_setcaps (GstPad * pad, GstCaps * caps) +{ + GstTRM *trm; + GstStructure *structure; + gint width; + + trm = GST_TRM (gst_pad_get_parent (pad)); + + if (!gst_pad_set_caps (trm->srcpad, caps)) + return FALSE; + + structure = gst_caps_get_structure (caps, 0); + + if (!gst_structure_get_int (structure, "depth", &trm->depth) || + !gst_structure_get_int (structure, "width", &width) || + !gst_structure_get_int (structure, "channels", &trm->channels) || + !gst_structure_get_int (structure, "rate", &trm->rate)) { + GST_DEBUG_OBJECT (trm, "failed to extract depth, width, channels or rate"); + goto failure; + } + + if (trm->depth != width) { + GST_DEBUG_OBJECT (trm, "depth != width (%d != %d)", trm->depth, width); + goto failure; + } + + trm_SetPCMDataInfo (trm->trm, trm->rate, trm->channels, trm->depth); + + gst_object_unref (trm); + return TRUE; + +/* ERRORS */ +failure: + { + GST_WARNING_OBJECT (trm, "FAILED with caps %" GST_PTR_FORMAT, caps); + gst_object_unref (trm); + return FALSE; + } +} + +static GstFlowReturn +gst_trm_chain (GstPad * pad, GstBuffer * buf) +{ + GstTRM *trm = GST_TRM (GST_PAD_PARENT (pad)); + + if (!trm->data_available) { + GstFormat tformat = GST_FORMAT_TIME; + gint64 total_duration; + + /* FIXME: maybe we should only query this once we have as much data as + * we need (30secs or so), to get a better estimation of the length in + * the case of VBR files? */ + if (gst_pad_query_peer_duration (pad, &tformat, &total_duration)) { + total_duration /= GST_SECOND; + trm_SetSongLength (trm->trm, total_duration); + trm->data_available = TRUE; + } + } + + if (!trm->signature_available + && trm_GenerateSignature (trm->trm, (char *) GST_BUFFER_DATA (buf), + GST_BUFFER_SIZE (buf))) { + GST_DEBUG ("Signature"); + + GST_OBJECT_LOCK (trm); + if (trm->proxy_address != NULL) { + if (!trm_SetProxy (trm->trm, trm->proxy_address, trm->proxy_port)) { + GST_OBJECT_UNLOCK (trm); + goto proxy_setup_error; + } + } + GST_OBJECT_UNLOCK (trm); + + gst_trm_emit_signature (trm); + } + + return gst_pad_push (trm->srcpad, buf); + +/* ERRORS */ +proxy_setup_error: + { + GST_ELEMENT_ERROR (trm, RESOURCE, SETTINGS, (NULL), + ("Unable to set proxy server for trm lookup")); + return GST_FLOW_ERROR; + } +} + +static void +gst_trm_emit_signature (GstTRM * trm) +{ + char signature[17]; + char ascii_sig[37]; + + if (trm->signature_available) + return; + + if (trm_FinalizeSignature (trm->trm, signature, NULL) == 0) { + GstTagList *tags; + + trm_ConvertSigToASCII (trm->trm, signature, ascii_sig); + ascii_sig[36] = '\0'; + GST_DEBUG_OBJECT (trm, "Signature : %s", ascii_sig); + + tags = gst_tag_list_new (); + gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, + GST_TAG_MUSICBRAINZ_TRMID, ascii_sig, NULL); + gst_element_found_tags_for_pad (GST_ELEMENT (trm), trm->srcpad, tags); + + trm->signature_available = TRUE; + } else { + /* FIXME: should we be throwing an error here? */ + } +} + + +static void +gst_trm_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstTRM *trm; + + trm = GST_TRM (object); + + GST_OBJECT_LOCK (trm); + + switch (prop_id) { + case ARG_PROXY_ADDRESS:{ + g_free (trm->proxy_address); + trm->proxy_address = g_value_dup_string (value); + break; + } + case ARG_PROXY_PORT:{ + trm->proxy_port = g_value_get_uint (value); + break; + } + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (trm); +} + +static void +gst_trm_get_property (GObject * object, guint prop_id, GValue * value, + GParamSpec * pspec) +{ + GstTRM *trm; + + trm = GST_TRM (object); + + GST_OBJECT_LOCK (trm); + + switch (prop_id) { + case ARG_PROXY_ADDRESS:{ + g_value_set_string (value, trm->proxy_address); + break; + } + case ARG_PROXY_PORT:{ + g_value_set_uint (value, trm->proxy_port); + break; + } + default:{ + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + } + + GST_OBJECT_UNLOCK (trm); +} + +static GstStateChangeReturn +gst_trm_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_SUCCESS; + GstTRM *trm; + + trm = GST_TRM (element); + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_PAUSED: + trm->trm = trm_New (); + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret != GST_STATE_CHANGE_SUCCESS) + return ret; + + switch (transition) { + case GST_STATE_CHANGE_PAUSED_TO_READY: + trm_Delete (trm->trm); + trm->trm = NULL; + trm->data_available = FALSE; + trm->signature_available = FALSE; + break; + default: + break; + } + + return ret; +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + gst_tag_register_musicbrainz_tags (); + + if (!gst_element_register (plugin, "trm", GST_RANK_NONE, GST_TYPE_TRM)) + return FALSE; + + GST_DEBUG_CATEGORY_INIT (trm_debug, "trm", 0, "TRM calculation element"); + + return TRUE; +} + + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "musicbrainz", + "A TRM signature producer based on libmusicbrainz", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN) diff --git a/ext/musicbrainz/gsttrm.h b/ext/musicbrainz/gsttrm.h new file mode 100644 index 0000000..38f04d0 --- /dev/null +++ b/ext/musicbrainz/gsttrm.h @@ -0,0 +1,76 @@ +/* GStreamer trm plugin + * Copyright (C) 2004 Jeremy Simon + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + + +#ifndef __GST_TRM_H__ +#define __GST_TRM_H__ + +#include +#include +#include + +#include + +G_BEGIN_DECLS + +#define GST_TYPE_TRM (gst_trm_get_type()) +#define GST_TRM(obj) (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_TRM,GstTRM)) +#define GST_TRM_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_TRM,GstTRMClass)) +#define GST_IS_TRM(obj) (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_TRM)) +#define GST_IS_TRM_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_TRM)) + +typedef struct _GstTRM GstTRM; +typedef struct _GstTRMClass GstTRMClass; + +/** + * GstTRM + * + * GStreamer TRM element. This structure is opaque (private). + * + **/ + +struct _GstTRM { + GstElement element; + + /*< private >*/ + GstPad *sinkpad; + GstPad *srcpad; + + trm_t trm; + + gchar *proxy_address; + guint proxy_port; + + gint depth; + gint rate; + gint channels; + + gboolean data_available; + gboolean signature_available; +}; + +struct _GstTRMClass { + GstElementClass parent_class; +}; + +GType gst_trm_get_type(void); + +G_END_DECLS + +#endif /* __GST_TRM_H__ */ diff --git a/ext/mythtv/Makefile.am b/ext/mythtv/Makefile.am new file mode 100644 index 0000000..6bec4ce --- /dev/null +++ b/ext/mythtv/Makefile.am @@ -0,0 +1,21 @@ + +plugin_LTLIBRARIES = libgstmythtvsrc.la + +libgstmythtvsrc_la_SOURCES = \ + gstmythtvsrc.c + +libgstmythtvsrc_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GMYTH_CFLAGS) + +libgstmythtvsrc_la_LDFLAGS = \ + $(GST_PLUGIN_LDFLAGS) +libgstmythtvsrc_la_LIBTOOLFLAGS = --tag=disable-static + +libgstmythtvsrc_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GMYTH_LIBS) + +noinst_HEADERS = \ + gstmythtvsrc.h + diff --git a/ext/mythtv/Makefile.in b/ext/mythtv/Makefile.in new file mode 100644 index 0000000..17a98f3 --- /dev/null +++ b/ext/mythtv/Makefile.in @@ -0,0 +1,867 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/mythtv +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstmythtvsrc_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstmythtvsrc_la_OBJECTS = libgstmythtvsrc_la-gstmythtvsrc.lo +libgstmythtvsrc_la_OBJECTS = $(am_libgstmythtvsrc_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstmythtvsrc_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstmythtvsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstmythtvsrc_la_CFLAGS) $(CFLAGS) \ + $(libgstmythtvsrc_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstmythtvsrc_la_SOURCES) +DIST_SOURCES = $(libgstmythtvsrc_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstmythtvsrc.la +libgstmythtvsrc_la_SOURCES = \ + gstmythtvsrc.c + +libgstmythtvsrc_la_CFLAGS = \ + $(GST_CFLAGS) \ + $(GMYTH_CFLAGS) + +libgstmythtvsrc_la_LDFLAGS = \ + $(GST_PLUGIN_LDFLAGS) + +libgstmythtvsrc_la_LIBTOOLFLAGS = --tag=disable-static +libgstmythtvsrc_la_LIBADD = \ + $(GST_BASE_LIBS) \ + $(GMYTH_LIBS) + +noinst_HEADERS = \ + gstmythtvsrc.h + +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/mythtv/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/mythtv/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstmythtvsrc.la: $(libgstmythtvsrc_la_OBJECTS) $(libgstmythtvsrc_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstmythtvsrc_la_LINK) -rpath $(plugindir) $(libgstmythtvsrc_la_OBJECTS) $(libgstmythtvsrc_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstmythtvsrc_la-gstmythtvsrc.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstmythtvsrc_la-gstmythtvsrc.lo: gstmythtvsrc.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmythtvsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmythtvsrc_la_CFLAGS) $(CFLAGS) -MT libgstmythtvsrc_la-gstmythtvsrc.lo -MD -MP -MF $(DEPDIR)/libgstmythtvsrc_la-gstmythtvsrc.Tpo -c -o libgstmythtvsrc_la-gstmythtvsrc.lo `test -f 'gstmythtvsrc.c' || echo '$(srcdir)/'`gstmythtvsrc.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstmythtvsrc_la-gstmythtvsrc.Tpo $(DEPDIR)/libgstmythtvsrc_la-gstmythtvsrc.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='gstmythtvsrc.c' object='libgstmythtvsrc_la-gstmythtvsrc.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstmythtvsrc_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstmythtvsrc_la_CFLAGS) $(CFLAGS) -c -o libgstmythtvsrc_la-gstmythtvsrc.lo `test -f 'gstmythtvsrc.c' || echo '$(srcdir)/'`gstmythtvsrc.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/mythtv/gstmythtvsrc.c b/ext/mythtv/gstmythtvsrc.c new file mode 100644 index 0000000..ca9865e --- /dev/null +++ b/ext/mythtv/gstmythtvsrc.c @@ -0,0 +1,1018 @@ +/* + * GStreamer MythTV Plug-in + * Copyright (C) <2006> Rosfran Borges + * Copyright (C) <2007> Renato Filho + * This library is free software; you can + * redistribute it and/or modify it under the terms of the GNU Library + * General Public License as published by the Free Software Foundation; + * either version 2 of the License, or (at your option) any later version. + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library + * General Public License for more details. You should have received a copy + * of the GNU Library General Public License along with this library; if + * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite + * 330, Boston, MA 02111-1307, USA. + */ + +/** + * SECTION:element-mythtvsrc + * @see_also: nuvdemux + * + * MythTVSrc allows to access a remote MythTV backend streaming Video/Audio server, + * and to render audio and video content through a TCP/IP connection to a specific + * port on this server, and based on a known MythTV protocol that is based on + * some message passing, such as REQUEST_BLOCK on a specified number of bytes, to get + * some chunk of remote file data. + * You should pass the information aboute the remote MythTV backend server + * through the #GstMythtvSrc:location property. + * + * + * Examples + * + * If you want to get the LiveTV content (set channel, TV tuner, RemoteEncoder, + * Recorder), use the following URI: + * + * myth://xxx.xxx.xxx.xxx:6543/livetv?channel=BBC + * + * + * This URI will configure the Recorder instance (used to change the channel, + * start the TV multimedia content transmition, etc.), using + * the IP address (xxx.xxx.xxx.xxx) and port number (6543) of the MythTV backend + * server, and setting the channel name to "BBC". + * + * To get a already recorded the MythTV NUV file, put the following URI: + * + * myth://xxx.xxx.xxx.xxx:6543/filename.nuv + * + * + * Another possible way to use the LiveTV content, and just in the case you want to + * use the mysql database, put the location URI in the following format: + * + * myth://mythtv:mythtv@xxx.xxx.xxx.xxx:6543/?mythconverg&channel=9 + * + * + * Where the first field is the protocol (myth), the second and third are user + * name (mythtv) and password (mythtv), then backend host name and port number, + * and the last field is the database name (mythconverg). + * + * + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include "gstmythtvsrc.h" +#include +#include +#include +#include + +#include +#include + +#include +#include + +GST_DEBUG_CATEGORY_STATIC (mythtvsrc_debug); +#define GST_GMYTHTV_ID_NUM 1 +#define GST_GMYTHTV_CHANNEL_DEFAULT_NUM (-1) +#define GMYTHTV_VERSION_DEFAULT 30 +#define GMYTHTV_TRANSFER_MAX_WAITS 100 +#define GMYTHTV_TRANSFER_MAX_RESENDS 2 +#define GMYTHTV_TRANSFER_MAX_BUFFER (128*1024) +#define READ_SIZE (14*1024) +#define READ_SIZE_LIVETV (80*1024) +#define GST_FLOW_ERROR_NO_DATA (-101) + +static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src", + GST_PAD_SRC, + GST_PAD_ALWAYS, + GST_STATIC_CAPS_ANY); +enum +{ + PROP_0, + PROP_LOCATION, + PROP_GMYTHTV_VERSION, + PROP_GMYTHTV_LIVE, + PROP_GMYTHTV_LIVEID, + PROP_GMYTHTV_LIVE_CHAINID, + PROP_GMYTHTV_ENABLE_TIMING_POSITION, + PROP_GMYTHTV_CHANNEL_NUM +}; + +static void gst_mythtv_src_clear (GstMythtvSrc * mythtv_src); + +static void gst_mythtv_src_finalize (GObject * gobject); + +static GstFlowReturn gst_mythtv_src_create (GstPushSrc * psrc, + GstBuffer ** outbuf); + +static gboolean gst_mythtv_src_start (GstBaseSrc * bsrc); +static gboolean gst_mythtv_src_stop (GstBaseSrc * bsrc); +static gboolean gst_mythtv_src_get_size (GstBaseSrc * bsrc, guint64 * size); +static gboolean gst_mythtv_src_is_seekable (GstBaseSrc * push_src); + +static GstFlowReturn gst_mythtv_src_do_seek (GstBaseSrc * base, + GstSegment * segment); + +static GstStateChangeReturn +gst_mythtv_src_change_state (GstElement * element, GstStateChange transition); + +static void gst_mythtv_src_set_property (GObject * object, + guint prop_id, const GValue * value, GParamSpec * pspec); +static void gst_mythtv_src_get_property (GObject * object, + guint prop_id, GValue * value, GParamSpec * pspec); + +static void gst_mythtv_src_uri_handler_init (gpointer g_iface, + gpointer iface_data); + +#if 0 +static gboolean gst_mythtv_src_handle_query (GstPad * pad, GstQuery * query); +static gboolean gst_mythtv_src_handle_event (GstPad * pad, GstEvent * event); +#endif + +static GMythFileReadResult do_read_request_response (GstMythtvSrc * src, + guint size, GByteArray * data_ptr); + +static void +_urihandler_init (GType type) +{ + static const GInterfaceInfo urihandler_info = { + gst_mythtv_src_uri_handler_init, + NULL, + NULL + }; + + g_type_add_interface_static (type, GST_TYPE_URI_HANDLER, &urihandler_info); + + GST_DEBUG_CATEGORY_INIT (mythtvsrc_debug, "mythtvsrc", 0, "MythTV src"); +} + +GST_BOILERPLATE_FULL (GstMythtvSrc, gst_mythtv_src, GstPushSrc, + GST_TYPE_PUSH_SRC, _urihandler_init) + static void gst_mythtv_src_base_init (gpointer g_class) +{ + GstElementClass *element_class = GST_ELEMENT_CLASS (g_class); + + gst_element_class_add_pad_template (element_class, + gst_static_pad_template_get (&srctemplate)); + + gst_element_class_set_details_simple (element_class, "MythTV client source", + "Source/Network", + "Control and receive data as a client over the network " + "via raw socket connections using the MythTV protocol", + "Rosfran Borges , " + "Renato Filho "); + + element_class->change_state = gst_mythtv_src_change_state; + +} + +static void +gst_mythtv_src_class_init (GstMythtvSrcClass * klass) +{ + GObjectClass *gobject_class; + GstPushSrcClass *gstpushsrc_class; + GstBaseSrcClass *gstbasesrc_class; + + gobject_class = (GObjectClass *) klass; + gstbasesrc_class = (GstBaseSrcClass *) klass; + gstpushsrc_class = (GstPushSrcClass *) klass; + + gobject_class->set_property = gst_mythtv_src_set_property; + gobject_class->get_property = gst_mythtv_src_get_property; + gobject_class->finalize = gst_mythtv_src_finalize; + + g_object_class_install_property + (gobject_class, PROP_LOCATION, + g_param_spec_string ("location", "Location", + "The location. In the form:" + "\n\t\t\tmyth://a.com/file.nuv" + "\n\t\t\tmyth://a.com:23223/file.nuv" + "\n\t\t\tmyth://a.com/?channel=123" + "\n\t\t\tmyth://a.com/?channel=Channel%203" + "\n\t\t\ta.com/file.nuv - default scheme 'myth'", + "", G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_VERSION, + g_param_spec_int ("mythtv-version", "mythtv-version", + "Change MythTV version", 26, 30, 26, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_LIVEID, + g_param_spec_int ("mythtv-live-id", "mythtv-live-id", + "Change MythTV version", + 0, 200, GST_GMYTHTV_ID_NUM, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_LIVE_CHAINID, + g_param_spec_string ("mythtv-live-chainid", "mythtv-live-chainid", + "Sets the MythTV chain ID (from TV Chain)", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_LIVE, + g_param_spec_boolean ("mythtv-live", "mythtv-live", + "Enable MythTV Live TV content streaming", FALSE, + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_ENABLE_TIMING_POSITION, + g_param_spec_boolean ("mythtv-enable-timing-position", + "mythtv-enable-timing-position", + "Enable MythTV Live TV content size continuous updating", + FALSE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + g_object_class_install_property + (gobject_class, PROP_GMYTHTV_CHANNEL_NUM, + g_param_spec_string ("mythtv-channel", "mythtv-channel", + "Change MythTV channel number", "", + G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)); + + gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_mythtv_src_start); + gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_mythtv_src_stop); + gstbasesrc_class->get_size = GST_DEBUG_FUNCPTR (gst_mythtv_src_get_size); + gstbasesrc_class->is_seekable = + GST_DEBUG_FUNCPTR (gst_mythtv_src_is_seekable); + gstbasesrc_class->do_seek = GST_DEBUG_FUNCPTR (gst_mythtv_src_do_seek); + gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_mythtv_src_create); + + GST_DEBUG_CATEGORY_INIT (mythtvsrc_debug, "mythtvsrc", 0, + "MythTV Client Source"); +} + +static void +gst_mythtv_src_init (GstMythtvSrc * this, GstMythtvSrcClass * g_class) +{ + this->file = NULL; + this->unique_setup = FALSE; + this->mythtv_version = GMYTHTV_VERSION_DEFAULT; + this->state = GST_MYTHTV_SRC_FILE_TRANSFER; + this->bytes_read = 0; + this->prev_content_size = 0; + this->content_size = 0; + this->read_offset = 0; + this->content_size_last = 0; + this->live_tv = FALSE; + this->enable_timing_position = FALSE; + this->update_prog_chain = FALSE; + this->user_agent = g_strdup ("mythtvsrc"); + this->update_prog_chain = FALSE; + this->channel_name = NULL; + this->eos = FALSE; + this->wait_to_transfer = 0; + this->spawn_livetv = NULL; + gst_base_src_set_format (GST_BASE_SRC (this), GST_FORMAT_BYTES); +#if 0 + gst_pad_set_event_function (GST_BASE_SRC_PAD (GST_BASE_SRC (this)), + gst_mythtv_src_handle_event); +#endif +#if 0 + gst_pad_set_query_function (GST_BASE_SRC_PAD (GST_BASE_SRC (this)), + gst_mythtv_src_handle_query); +#endif + +} + +static void +gst_mythtv_src_clear (GstMythtvSrc * mythtv_src) +{ + mythtv_src->unique_setup = FALSE; + +#if 0 + if (mythtv_src->spawn_livetv) { + g_object_unref (mythtv_src->spawn_livetv); + mythtv_src->spawn_livetv = NULL; + } + + if (mythtv_src->file) { + g_object_unref (mythtv_src->file); + mythtv_src->file = NULL; + } + + if (mythtv_src->backend_info) { + g_object_unref (mythtv_src->backend_info); + mythtv_src->backend_info = NULL; + } +#endif +} + +static void +gst_mythtv_src_finalize (GObject * gobject) +{ + GstMythtvSrc *this = GST_MYTHTV_SRC (gobject); + + gst_mythtv_src_clear (this); + + if (this->uri_name) { + g_free (this->uri_name); + this->uri_name = NULL; + } + + if (this->user_agent) { + g_free (this->user_agent); + this->user_agent = NULL; + } + + G_OBJECT_CLASS (parent_class)->finalize (gobject); +} + +static GMythFileReadResult +do_read_request_response (GstMythtvSrc * src, guint size, GByteArray * data_ptr) +{ + gint read = 0; + guint sizetoread = size; + gint max_iters = GMYTHTV_TRANSFER_MAX_RESENDS; + GMythFileReadResult result; + + GST_LOG_OBJECT (src, "Starting: Reading %d bytes...", sizetoread); + + result = GMYTH_FILE_READ_OK; + /* + * Loop sending the Myth File Transfer request: Retry whilst + * authentication fails and we supply it. + */ + + while (sizetoread == size && --max_iters > 0) { + /* + * if ( gmyth_backend_info_is_local_file(src->backend_info) ) + */ + if (IS_GMYTH_FILE_LOCAL (src->file)) + result = gmyth_file_local_read (GMYTH_FILE_LOCAL (src->file), + data_ptr, sizetoread, src->live_tv); + else if (IS_GMYTH_FILE_TRANSFER (src->file)) + result = gmyth_file_transfer_read (GMYTH_FILE_TRANSFER (src->file), + data_ptr, sizetoread, src->live_tv); + + if (data_ptr->len > 0) { + read += data_ptr->len; + sizetoread -= data_ptr->len; + } else if (data_ptr->len <= 0) { + if (src->live_tv == FALSE) { + result = GMYTH_FILE_READ_EOF; + goto eos; + } else { + if (result == GMYTH_FILE_READ_ERROR) { /* -314 */ + GST_INFO_OBJECT (src, "[LiveTV] FileTransfer READ_ERROR!"); + } + goto done; + } + } + /* + * else if (data_ptr->len == 0) goto done; + */ + if (read == sizetoread) + goto done; + } + + if ((read < 0 && !src->live_tv) || max_iters == 0) { + result = GMYTH_FILE_READ_EOF; + goto eos; + } + goto done; + +eos: + src->eos = TRUE; + +done: + GST_LOG_OBJECT (src, "Finished read: result %d", result); + return result; +} + +static GstFlowReturn +gst_mythtv_src_create (GstPushSrc * psrc, GstBuffer ** outbuf) +{ + GstMythtvSrc *src; + GstFlowReturn ret = GST_FLOW_OK; + GByteArray *buffer; + GMythFileReadResult result = GMYTH_FILE_READ_OK; + + src = GST_MYTHTV_SRC (psrc); + + buffer = g_byte_array_new (); + if (src->live_tv) + result = do_read_request_response (src, READ_SIZE_LIVETV, buffer); + else + result = do_read_request_response (src, READ_SIZE, buffer); + + if (result == GMYTH_FILE_READ_ERROR) + goto read_error; + + *outbuf = gst_buffer_new (); + GST_BUFFER_SIZE (*outbuf) = buffer->len; + GST_BUFFER_MALLOCDATA (*outbuf) = buffer->data; + GST_BUFFER_DATA (*outbuf) = GST_BUFFER_MALLOCDATA (*outbuf); + GST_BUFFER_OFFSET (*outbuf) = src->read_offset; + GST_BUFFER_OFFSET_END (*outbuf) = + src->read_offset + GST_BUFFER_SIZE (*outbuf); + + src->read_offset += GST_BUFFER_SIZE (*outbuf); + src->bytes_read += GST_BUFFER_SIZE (*outbuf); + + g_byte_array_free (buffer, FALSE); + + if (result == GMYTH_FILE_READ_NEXT_PROG_CHAIN) { + GstPad *peer; + + peer = gst_pad_get_peer (GST_BASE_SRC_PAD (GST_BASE_SRC (psrc))); + gst_pad_send_event (peer, + gst_event_new_new_segment (FALSE, 1.0, GST_FORMAT_BYTES, 0, -1, 0)); + + gst_object_unref (peer); + } + + if (src->eos || (!src->live_tv && (src->bytes_read >= src->content_size))) + ret = GST_FLOW_UNEXPECTED; + + GST_LOG_OBJECT (src, "Create finished: %d", ret); + return ret; + +read_error: + GST_ELEMENT_ERROR (src, RESOURCE, READ, (NULL), + ("Could not read any bytes (%d, %s)", result, src->uri_name)); + return GST_FLOW_ERROR; +} + +static gboolean +gst_mythtv_src_do_seek (GstBaseSrc * base, GstSegment * segment) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (base); + gint64 new_offset = -1; + gint64 actual_seek = segment->start; + gboolean ret = TRUE; + + GST_LOG_OBJECT (src, "seek, segment: %" GST_SEGMENT_FORMAT, segment); + + if (segment->format != GST_FORMAT_BYTES) { + ret = FALSE; + goto done; + } + GST_LOG_OBJECT (src, "actual_seek = %" G_GINT64_FORMAT ", read_offset = " + "%" G_GINT64_FORMAT, actual_seek, src->read_offset); + /* + * verify if it needs to seek + */ + if (src->read_offset != actual_seek) { + if (IS_GMYTH_FILE_LOCAL (src->file)) + new_offset = gmyth_file_local_seek (GMYTH_FILE_LOCAL (src->file), + segment->start, G_SEEK_SET); + else if (IS_GMYTH_FILE_TRANSFER (src->file)) + new_offset = gmyth_file_transfer_seek (GMYTH_FILE_TRANSFER (src->file), + segment->start, G_SEEK_SET); + if (G_UNLIKELY (new_offset < 0)) { + ret = FALSE; + if (!src->live_tv) + goto eos; + } + + src->read_offset = new_offset; + + if (ret == FALSE) { + GST_INFO_OBJECT (src, "Failed to set the SEEK on segment!"); + } + } + +done: + return ret; + +eos: + GST_DEBUG_OBJECT (src, "EOS found on seeking!!!"); + return FALSE; +} + +/* + * create a socket for connecting to remote server + */ +static gboolean +gst_mythtv_src_start (GstBaseSrc * bsrc) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (bsrc); + + GString *chain_id_local = NULL; + GMythURI *gmyth_uri = NULL; + gboolean ret = TRUE; + GstBaseSrc *basesrc; + GstMessage *msg; + + if (src->unique_setup == FALSE) { + src->unique_setup = TRUE; + } else { + goto done; + } + + gmyth_uri = gmyth_uri_new_with_value (src->uri_name); + src->backend_info = gmyth_backend_info_new_with_uri (src->uri_name); + src->live_tv = gmyth_uri_is_livetv (gmyth_uri); + + if (src->live_tv) { + gchar *ch = gmyth_uri_get_channel_name (gmyth_uri); + src->spawn_livetv = gmyth_livetv_new (src->backend_info); + + if (ch != NULL) + src->channel_name = ch; + + if (src->channel_name != NULL) { + gboolean result; + + result = gmyth_livetv_channel_name_setup (src->spawn_livetv, + src->channel_name); + if (result == FALSE) { + GST_INFO_OBJECT (src, "LiveTV setup felt down on error"); + ret = FALSE; + goto init_failed; + } + } else { + if (gmyth_livetv_setup (src->spawn_livetv) == FALSE) { + GST_INFO_OBJECT (src, "LiveTV setup felt down on error"); + ret = FALSE; + goto init_failed; + } + } + + src->file = + GMYTH_FILE (gmyth_livetv_create_file_transfer (src->spawn_livetv)); + if (NULL == src->file) { + GST_INFO_OBJECT (src, "[LiveTV] FileTransfer equals to NULL"); + ret = FALSE; + goto init_failed; + } + + /* + * Check if the file is local to this specific client renderer + */ + if (gmyth_uri_is_local_file (gmyth_uri)) + ret = gmyth_file_local_open (GMYTH_FILE_LOCAL (src->file)); + else + ret = gmyth_file_transfer_open (GMYTH_FILE_TRANSFER (src->file), + (src->spawn_livetv->uri != NULL ? + gmyth_uri_get_path (src->spawn_livetv->uri) : + src->spawn_livetv->proginfo->pathname->str)); + /* + * sets the mythtvsrc "location" property + */ + g_object_set (src, "location", gmyth_file_get_uri (src->file), NULL); + + if (!ret) { + GST_INFO_OBJECT (src, + "Error: couldn't open the FileTransfer from LiveTV source!"); + g_object_unref (src->file); + src->file = NULL; + goto init_failed; + } + } /* If live-tv */ + else { + /* + * Check if the file is local to this specific client renderer, + * and tries to open a local connection + */ + if (gmyth_uri_is_local_file (gmyth_uri)) { + src->file = GMYTH_FILE (gmyth_file_local_new (src->backend_info)); + ret = gmyth_file_local_open (GMYTH_FILE_LOCAL (src->file)); + } else { + src->file = GMYTH_FILE (gmyth_file_transfer_new (src->backend_info)); + ret = + gmyth_file_transfer_open (GMYTH_FILE_TRANSFER (src->file), + src->uri_name); + } + } + + if (NULL == src->file) { + GST_INFO_OBJECT (src, "FileTransfer is NULL"); + goto init_failed; + } + + if (ret == FALSE) { + GST_INFO_OBJECT (src, + "MythTV FileTransfer request failed when setting up socket connection!"); + goto begin_req_failed; + } + + GST_INFO_OBJECT (src, "MythTV FileTransfer filesize = %" G_GINT64_FORMAT ", " + "content_size = %" G_GINT64_FORMAT, gmyth_file_get_filesize (src->file), + src->content_size); + + src->content_size = gmyth_file_get_filesize (src->file); + + msg = gst_message_new_duration (GST_OBJECT (src), GST_FORMAT_BYTES, + src->content_size); + gst_element_post_message (GST_ELEMENT (src), msg); + + src->do_start = FALSE; + + basesrc = GST_BASE_SRC_CAST (src); + gst_segment_set_duration (&basesrc->segment, GST_FORMAT_BYTES, + src->content_size); + gst_element_post_message (GST_ELEMENT (src), + gst_message_new_duration (GST_OBJECT (src), GST_FORMAT_BYTES, + src->content_size)); +#if 0 + gst_pad_push_event (GST_BASE_SRC_PAD (GST_BASE_SRC (src)), + gst_event_new_new_segment (TRUE, 1.0, + GST_FORMAT_BYTES, 0, src->content_size, 0)); +#endif +done: + if (gmyth_uri != NULL) { + g_object_unref (gmyth_uri); + gmyth_uri = NULL; + } + + if (chain_id_local != NULL) { + g_string_free (chain_id_local, TRUE); + chain_id_local = NULL; + } + + return TRUE; + + /* + * ERRORS + */ +init_failed: + if (gmyth_uri != NULL) { + g_object_unref (gmyth_uri); + gmyth_uri = NULL; + } + + if (src->spawn_livetv != NULL) { + g_object_unref (src->spawn_livetv); + src->spawn_livetv = NULL; + } + + GST_ELEMENT_ERROR (src, LIBRARY, INIT, + (NULL), + ("Could not initialize MythTV library (%i, %s)", ret, src->uri_name)); + + + gst_mythtv_src_clear (src); + + return FALSE; +begin_req_failed: + if (gmyth_uri != NULL) { + g_object_unref (gmyth_uri); + gmyth_uri = NULL; + } + + GST_ELEMENT_ERROR (src, LIBRARY, INIT, + (NULL), + ("Could not begin request sent to MythTV server (%i, %s)", + ret, src->uri_name)); + return FALSE; +} + +static gboolean +gst_mythtv_src_get_size (GstBaseSrc * bsrc, guint64 * size) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (bsrc); + gboolean ret = TRUE; + + GST_LOG_OBJECT (src, + "Differs from previous content size: %d (max.: %d)", + abs (src->content_size - src->prev_content_size), + GMYTHTV_TRANSFER_MAX_BUFFER); + + if (src->live_tv) { + ret = FALSE; + } else if (src->live_tv && src->enable_timing_position + && (abs (src->content_size - src->bytes_read) < + GMYTHTV_TRANSFER_MAX_BUFFER)) { + gint64 new_offset; + + new_offset = gmyth_recorder_get_file_position (src->spawn_livetv->recorder); + if (new_offset > 0 && new_offset > src->content_size) { + src->content_size = new_offset; + } else if (new_offset < src->content_size) { + src->update_prog_chain = TRUE; + } + } + + *size = src->content_size; + GST_LOG_OBJECT (src, "Content size = %" G_GINT64_FORMAT, src->content_size); + return ret; +} + +/* + * close the socket and associated resources used both to recover from + * errors and go to NULL state + */ +static gboolean +gst_mythtv_src_stop (GstBaseSrc * bsrc) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (bsrc); + + gst_mythtv_src_clear (src); + return TRUE; +} + +#if 0 +static gint64 +gst_mythtv_src_get_position (GstMythtvSrc * src) +{ + gint64 size_tmp = 0; + guint max_tries = 2; + + if (src->live_tv == TRUE && + (abs (src->content_size - src->bytes_read) < + GMYTHTV_TRANSFER_MAX_BUFFER)) { + + get_file_pos: + g_usleep (10); + size_tmp = gmyth_recorder_get_file_position (src->spawn_livetv->recorder); + if (size_tmp > (src->content_size + GMYTHTV_TRANSFER_MAX_BUFFER)) + src->content_size = size_tmp; + else if (size_tmp > 0 && --max_tries > 0) + goto get_file_pos; + GST_LOG_OBJECT (src, "file_position = %" G_GINT64_FORMAT, size_tmp); + /* + * sets the last content size amount before it can be updated + */ + src->prev_content_size = src->content_size; + } + return src->content_size; +} + +static gboolean +gst_mythtv_src_handle_event (GstPad * pad, GstEvent * event) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (GST_PAD_PARENT (pad)); + gint64 cont_size = 0; + gboolean ret = TRUE; + + switch (GST_EVENT_TYPE (event)) { + case GST_EVENT_EOS: + if (src->live_tv) { + cont_size = gst_mythtv_src_get_position (src); + if (cont_size > src->content_size) { + src->content_size = cont_size; + src->eos = FALSE; + } else { + src->eos = TRUE; + gst_element_set_state (GST_ELEMENT (src), GST_STATE_NULL); + gst_element_set_locked_state (GST_ELEMENT (src), FALSE); + } + } + break; + default: + ret = gst_pad_event_default (pad, event); + } + GST_DEBUG_OBJECT (src, "HANDLE EVENT %d", ret); + return ret; +} +#endif +static gboolean +gst_mythtv_src_is_seekable (GstBaseSrc * push_src) +{ + return TRUE; +} + +#if 0 +static gboolean +gst_mythtv_src_handle_query (GstPad * pad, GstQuery * query) +{ + gboolean res = FALSE; + GstMythtvSrc *myth = GST_MYTHTV_SRC (gst_pad_get_parent (pad)); + GstFormat formt; + + + switch (GST_QUERY_TYPE (query)) { + case GST_QUERY_POSITION: + gst_query_parse_position (query, &formt, NULL); + if (formt == GST_FORMAT_BYTES) { + gst_query_set_position (query, formt, myth->read_offset); + GST_DEBUG_OBJECT (myth, "POS %" G_GINT64_FORMAT, myth->read_offset); + res = TRUE; + } else if (formt == GST_FORMAT_TIME) { + res = gst_pad_query_default (pad, query); + } + break; + case GST_QUERY_DURATION: + gst_query_parse_duration (query, &formt, NULL); + if (formt == GST_FORMAT_BYTES) { + gint64 size = myth->content_size; + + gst_query_set_duration (query, GST_FORMAT_BYTES, 10); + GST_DEBUG_OBJECT (myth, "SIZE %" G_GINT64_FORMAT, size); + res = TRUE; + } else if (formt == GST_FORMAT_TIME) { + res = gst_pad_query_default (pad, query); + } + break; + default: + res = gst_pad_query_default (pad, query); + break; + } + + gst_object_unref (myth); + + return res; +} +#endif +static GstStateChangeReturn +gst_mythtv_src_change_state (GstElement * element, GstStateChange transition) +{ + GstStateChangeReturn ret = GST_STATE_CHANGE_FAILURE; + GstMythtvSrc *src = GST_MYTHTV_SRC (element); + + switch (transition) { + case GST_STATE_CHANGE_NULL_TO_READY: + break; + case GST_STATE_CHANGE_READY_TO_PAUSED: + if (!src->uri_name) { + GST_WARNING_OBJECT (src, "Invalid location"); + return ret; + } + break; + case GST_STATE_CHANGE_PAUSED_TO_PLAYING: + if (src->live_tv) { + if (!gmyth_recorder_send_frontend_ready_command + (src->spawn_livetv->recorder)) + GST_WARNING_OBJECT (src, + "Couldn't send the FRONTEND_READY message to the backend!"); + else + GST_DEBUG_OBJECT (src, "FRONTEND_READY was sent to the backend"); + } + break; + default: + break; + } + + ret = GST_ELEMENT_CLASS (parent_class)->change_state (element, transition); + if (ret == GST_STATE_CHANGE_FAILURE) { + return ret; + } + + switch (transition) { + case GST_STATE_CHANGE_READY_TO_NULL: + gst_mythtv_src_clear (src); + break; + case GST_STATE_CHANGE_PLAYING_TO_PAUSED: + case GST_STATE_CHANGE_PAUSED_TO_READY: + break; + default: + break; + } + + return ret; +} + +static void +gst_mythtv_src_set_property (GObject * object, guint prop_id, + const GValue * value, GParamSpec * pspec) +{ + GstMythtvSrc *mythtvsrc = GST_MYTHTV_SRC (object); + + GST_OBJECT_LOCK (mythtvsrc); + switch (prop_id) { + case PROP_LOCATION: + if (!g_value_get_string (value)) { + GST_WARNING ("location property cannot be NULL"); + break; + } + + if (mythtvsrc->uri_name != NULL) { + g_free (mythtvsrc->uri_name); + mythtvsrc->uri_name = NULL; + } + mythtvsrc->uri_name = g_value_dup_string (value); + break; + case PROP_GMYTHTV_VERSION: + mythtvsrc->mythtv_version = g_value_get_int (value); + break; + case PROP_GMYTHTV_LIVEID: + mythtvsrc->live_tv_id = g_value_get_int (value); + break; + case PROP_GMYTHTV_LIVE: + mythtvsrc->live_tv = g_value_get_boolean (value); + break; + case PROP_GMYTHTV_ENABLE_TIMING_POSITION: + mythtvsrc->enable_timing_position = g_value_get_boolean (value); + break; + case PROP_GMYTHTV_LIVE_CHAINID: + if (!g_value_get_string (value)) { + GST_WARNING_OBJECT (object, + "MythTV Live chainid property cannot be NULL"); + break; + } + + if (mythtvsrc->live_chain_id != NULL) { + g_free (mythtvsrc->live_chain_id); + mythtvsrc->live_chain_id = NULL; + } + mythtvsrc->live_chain_id = g_value_dup_string (value); + break; + case PROP_GMYTHTV_CHANNEL_NUM: + mythtvsrc->channel_name = g_value_dup_string (value); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + + GST_OBJECT_UNLOCK (mythtvsrc); +} + +static void +gst_mythtv_src_get_property (GObject * object, guint prop_id, + GValue * value, GParamSpec * pspec) +{ + GstMythtvSrc *mythtvsrc = GST_MYTHTV_SRC (object); + + GST_OBJECT_LOCK (mythtvsrc); + switch (prop_id) { + case PROP_LOCATION: + g_value_set_string (value, mythtvsrc->uri_name); + break; + case PROP_GMYTHTV_VERSION: + g_value_set_int (value, mythtvsrc->mythtv_version); + break; + case PROP_GMYTHTV_LIVEID: + g_value_set_int (value, mythtvsrc->live_tv_id); + break; + case PROP_GMYTHTV_LIVE: + g_value_set_boolean (value, mythtvsrc->live_tv); + break; + case PROP_GMYTHTV_ENABLE_TIMING_POSITION: + g_value_set_boolean (value, mythtvsrc->enable_timing_position); + break; + case PROP_GMYTHTV_LIVE_CHAINID: + g_value_set_string (value, mythtvsrc->live_chain_id); + break; + case PROP_GMYTHTV_CHANNEL_NUM: + g_value_set_string (value, mythtvsrc->channel_name); + break; + default: + G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec); + break; + } + GST_OBJECT_UNLOCK (mythtvsrc); +} + +static gboolean +plugin_init (GstPlugin * plugin) +{ + return gst_element_register (plugin, "mythtvsrc", GST_RANK_NONE, + GST_TYPE_MYTHTV_SRC); +} + +GST_PLUGIN_DEFINE (GST_VERSION_MAJOR, + GST_VERSION_MINOR, + "mythtv", + "lib MythTV src", + plugin_init, VERSION, GST_LICENSE, GST_PACKAGE_NAME, GST_PACKAGE_ORIGIN); + + +/*** GSTURIHANDLER INTERFACE *************************************************/ +static guint +gst_mythtv_src_uri_get_type (void) +{ + return GST_URI_SRC; +} + +static gchar ** +gst_mythtv_src_uri_get_protocols (void) +{ + static const gchar *protocols[] = { "myth", "myths", NULL }; + + return (gchar **) protocols; +} + +static const gchar * +gst_mythtv_src_uri_get_uri (GstURIHandler * handler) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (handler); + + return src->uri_name; +} + +static gboolean +gst_mythtv_src_uri_set_uri (GstURIHandler * handler, const gchar * uri) +{ + GstMythtvSrc *src = GST_MYTHTV_SRC (handler); + + gchar *protocol; + + protocol = gst_uri_get_protocol (uri); + if ((strcmp (protocol, "myth") != 0) + && (strcmp (protocol, "myths") != 0)) { + g_free (protocol); + return FALSE; + } + g_free (protocol); + g_object_set (src, "location", uri, NULL); + + return TRUE; +} + +static void +gst_mythtv_src_uri_handler_init (gpointer g_iface, gpointer iface_data) +{ + GstURIHandlerInterface *iface = (GstURIHandlerInterface *) g_iface; + + iface->get_type = gst_mythtv_src_uri_get_type; + iface->get_protocols = gst_mythtv_src_uri_get_protocols; + iface->get_uri = gst_mythtv_src_uri_get_uri; + iface->set_uri = gst_mythtv_src_uri_set_uri; +} diff --git a/ext/mythtv/gstmythtvsrc.h b/ext/mythtv/gstmythtvsrc.h new file mode 100644 index 0000000..75c6de5 --- /dev/null +++ b/ext/mythtv/gstmythtvsrc.h @@ -0,0 +1,101 @@ +/* + * GStreamer + * Copyright (C) <2006> INdT - Rosfran Borges + * Copyright (C) <2007> INdT - Rentao Filho + * + * This library is free software; you can + * redistribute it and/or modify it under the terms of the GNU Library + * General Public License as published by the Free Software Foundation; + * either version 2 of the License, or (at your option) any later version. + * This library is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library + * General Public License for more details. You should have received a copy + * of the GNU Library General Public License along with this library; if + * not, write to the Free Software Foundation, Inc., 59 Temple Place - Suite + * 330, Boston, MA 02111-1307, USA. + */ + +#ifndef __GST_MYTHTV_SRC_H__ +#define __GST_MYTHTV_SRC_H__ + +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +G_BEGIN_DECLS +#define GST_TYPE_MYTHTV_SRC \ + (gst_mythtv_src_get_type()) +#define GST_MYTHTV_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_CAST((obj),GST_TYPE_MYTHTV_SRC,GstMythtvSrc)) +#define GST_MYTHTV_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_CAST((klass),GST_TYPE_MYTHTV_SRC,GstMythtvSrcClass)) +#define GST_IS_MYTHTV_SRC(obj) \ + (G_TYPE_CHECK_INSTANCE_TYPE((obj),GST_TYPE_MYTHTV_SRC)) +#define GST_IS_MYTHTV_SRC_CLASS(klass) \ + (G_TYPE_CHECK_CLASS_TYPE((klass),GST_TYPE_MYTHTV_SRC)) +typedef struct _GstMythtvSrc GstMythtvSrc; +typedef struct _GstMythtvSrcClass GstMythtvSrcClass; + +typedef enum { + GST_MYTHTV_SRC_FILE_TRANSFER, + GST_MYTHTV_SRC_NEXT_PROGRAM_CHAIN, + GST_MYTHTV_SRC_INVALID_DATA +} GstMythtvState; + +struct _GstMythtvSrc { + GstPushSrc element; + + /* + * MythFileTransfer + */ + GMythFile *file; + GMythLiveTV *spawn_livetv; + GMythBackendInfo *backend_info; + GstMythtvState state; + gchar *uri_name; + gchar *user_agent; + gchar *live_chain_id; + gint mythtv_version; + gint64 content_size; + gint64 prev_content_size; + gint64 content_size_last; + guint64 bytes_read; + gint64 read_offset; + gboolean eos; + gboolean do_start; + gboolean unique_setup; + gboolean live_tv; + gboolean enable_timing_position; + gint live_tv_id; + gchar *channel_name; + guint mode; + + /* + * MythTV capabilities + */ + GstCaps *mythtv_caps; + gboolean update_prog_chain; + + /* + * stablish a maximum iteration value to the IS_RECORDING message + */ + guint wait_to_transfer; +}; + +struct _GstMythtvSrcClass { + GstPushSrcClass parent_class; +}; + +GType gst_mythtv_src_get_type(void); + +G_END_DECLS +#endif /* __GST_MYTHTV_SRC_H__ */ diff --git a/ext/nas/Makefile.am b/ext/nas/Makefile.am new file mode 100644 index 0000000..ef1dbba --- /dev/null +++ b/ext/nas/Makefile.am @@ -0,0 +1,11 @@ +plugin_LTLIBRARIES = libgstnassink.la + +libgstnassink_la_SOURCES = nassink.c +libgstnassink_la_CFLAGS = \ + $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(NAS_CFLAGS) +libgstnassink_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) $(NAS_LIBS) +libgstnassink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstnassink_la_LIBTOOLFLAGS = --tag=disable-static + +noinst_HEADERS = nassink.h diff --git a/ext/nas/Makefile.in b/ext/nas/Makefile.in new file mode 100644 index 0000000..868452b --- /dev/null +++ b/ext/nas/Makefile.in @@ -0,0 +1,859 @@ +# Makefile.in generated by automake 1.11.1 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, +# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation, +# Inc. +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + + +VPATH = @srcdir@ +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = ext/nas +DIST_COMMON = $(noinst_HEADERS) $(srcdir)/Makefile.am \ + $(srcdir)/Makefile.in +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/common/m4/as-ac-expand.m4 \ + $(top_srcdir)/common/m4/as-auto-alt.m4 \ + $(top_srcdir)/common/m4/as-compiler-flag.m4 \ + $(top_srcdir)/common/m4/as-objc.m4 \ + $(top_srcdir)/common/m4/as-python.m4 \ + $(top_srcdir)/common/m4/as-scrub-include.m4 \ + $(top_srcdir)/common/m4/as-version.m4 \ + $(top_srcdir)/common/m4/ax_create_stdint_h.m4 \ + $(top_srcdir)/common/m4/gst-arch.m4 \ + $(top_srcdir)/common/m4/gst-args.m4 \ + $(top_srcdir)/common/m4/gst-check.m4 \ + $(top_srcdir)/common/m4/gst-default.m4 \ + $(top_srcdir)/common/m4/gst-dowhile.m4 \ + $(top_srcdir)/common/m4/gst-error.m4 \ + $(top_srcdir)/common/m4/gst-feature.m4 \ + $(top_srcdir)/common/m4/gst-gettext.m4 \ + $(top_srcdir)/common/m4/gst-glib2.m4 \ + $(top_srcdir)/common/m4/gst-package-release-datetime.m4 \ + $(top_srcdir)/common/m4/gst-platform.m4 \ + $(top_srcdir)/common/m4/gst-plugin-docs.m4 \ + $(top_srcdir)/common/m4/gst-plugindir.m4 \ + $(top_srcdir)/common/m4/gst-x11.m4 \ + $(top_srcdir)/common/m4/gst.m4 \ + $(top_srcdir)/common/m4/gtk-doc.m4 \ + $(top_srcdir)/common/m4/orc.m4 $(top_srcdir)/common/m4/pkg.m4 \ + $(top_srcdir)/m4/gettext.m4 $(top_srcdir)/m4/gsettings.m4 \ + $(top_srcdir)/m4/gst-fionread.m4 $(top_srcdir)/m4/gst-sdl.m4 \ + $(top_srcdir)/m4/iconv.m4 $(top_srcdir)/m4/intlmacosx.m4 \ + $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \ + $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/libtool.m4 \ + $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \ + $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/nls.m4 $(top_srcdir)/m4/po.m4 \ + $(top_srcdir)/m4/progtest.m4 $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/config.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__installdirs = "$(DESTDIR)$(plugindir)" +LTLIBRARIES = $(plugin_LTLIBRARIES) +am__DEPENDENCIES_1 = +libgstnassink_la_DEPENDENCIES = $(am__DEPENDENCIES_1) \ + $(am__DEPENDENCIES_1) +am_libgstnassink_la_OBJECTS = libgstnassink_la-nassink.lo +libgstnassink_la_OBJECTS = $(am_libgstnassink_la_OBJECTS) +AM_V_lt = $(am__v_lt_$(V)) +am__v_lt_ = $(am__v_lt_$(AM_DEFAULT_VERBOSITY)) +am__v_lt_0 = --silent +libgstnassink_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC \ + $(libgstnassink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=link \ + $(CCLD) $(libgstnassink_la_CFLAGS) $(CFLAGS) \ + $(libgstnassink_la_LDFLAGS) $(LDFLAGS) -o $@ +DEFAULT_INCLUDES = -I.@am__isrc@ -I$(top_builddir) +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__depfiles_maybe = depfiles +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_$(V)) +am__v_CC_ = $(am__v_CC_$(AM_DEFAULT_VERBOSITY)) +am__v_CC_0 = @echo " CC " $@; +AM_V_at = $(am__v_at_$(V)) +am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY)) +am__v_at_0 = @ +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_$(V)) +am__v_CCLD_ = $(am__v_CCLD_$(AM_DEFAULT_VERBOSITY)) +am__v_CCLD_0 = @echo " CCLD " $@; +AM_V_GEN = $(am__v_GEN_$(V)) +am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY)) +am__v_GEN_0 = @echo " GEN " $@; +SOURCES = $(libgstnassink_la_SOURCES) +DIST_SOURCES = $(libgstnassink_la_SOURCES) +HEADERS = $(noinst_HEADERS) +ETAGS = etags +CTAGS = ctags +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +ACLOCAL_AMFLAGS = @ACLOCAL_AMFLAGS@ +ACMENC_CFLAGS = @ACMENC_CFLAGS@ +ACMMP3DEC_CFLAGS = @ACMMP3DEC_CFLAGS@ +AMRWB_LIBS = @AMRWB_LIBS@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +APEXSINK_CFLAGS = @APEXSINK_CFLAGS@ +APEXSINK_LIBS = @APEXSINK_LIBS@ +AR = @AR@ +AS = @AS@ +ASSRENDER_CFLAGS = @ASSRENDER_CFLAGS@ +ASSRENDER_LIBS = @ASSRENDER_LIBS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BZ2_LIBS = @BZ2_LIBS@ +CC = @CC@ +CCASFLAGS = @CCASFLAGS@ +CCDEPMODE = @CCDEPMODE@ +CDAUDIO_CFLAGS = @CDAUDIO_CFLAGS@ +CDAUDIO_CONFIG = @CDAUDIO_CONFIG@ +CDAUDIO_LIBS = @CDAUDIO_LIBS@ +CELT_0_11_CFLAGS = @CELT_0_11_CFLAGS@ +CELT_0_11_LIBS = @CELT_0_11_LIBS@ +CELT_0_7_CFLAGS = @CELT_0_7_CFLAGS@ +CELT_0_7_LIBS = @CELT_0_7_LIBS@ +CELT_0_8_CFLAGS = @CELT_0_8_CFLAGS@ +CELT_0_8_LIBS = @CELT_0_8_LIBS@ +CELT_CFLAGS = @CELT_CFLAGS@ +CELT_LIBS = @CELT_LIBS@ +CFLAGS = @CFLAGS@ +COG_CFLAGS = @COG_CFLAGS@ +COG_LIBS = @COG_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CURL_CFLAGS = @CURL_CFLAGS@ +CURL_LIBS = @CURL_LIBS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DCCP_LIBS = @DCCP_LIBS@ +DECKLINK_CXXFLAGS = @DECKLINK_CXXFLAGS@ +DECKLINK_LIBS = @DECKLINK_LIBS@ +DEFAULT_AUDIOSINK = @DEFAULT_AUDIOSINK@ +DEFAULT_AUDIOSRC = @DEFAULT_AUDIOSRC@ +DEFAULT_VIDEOSINK = @DEFAULT_VIDEOSINK@ +DEFAULT_VIDEOSRC = @DEFAULT_VIDEOSRC@ +DEFAULT_VISUALIZER = @DEFAULT_VISUALIZER@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DEPRECATED_CFLAGS = @DEPRECATED_CFLAGS@ +DIRAC_CFLAGS = @DIRAC_CFLAGS@ +DIRAC_LIBS = @DIRAC_LIBS@ +DIRECTDRAW_LIBS = @DIRECTDRAW_LIBS@ +DIRECTFB_CFLAGS = @DIRECTFB_CFLAGS@ +DIRECTFB_LIBS = @DIRECTFB_LIBS@ +DIRECTSOUND_LIBS = @DIRECTSOUND_LIBS@ +DIRECTX_CFLAGS = @DIRECTX_CFLAGS@ +DIRECTX_LDFLAGS = @DIRECTX_LDFLAGS@ +DIVXDEC_LIBS = @DIVXDEC_LIBS@ +DIVXENC_LIBS = @DIVXENC_LIBS@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DTS_LIBS = @DTS_LIBS@ +DUMPBIN = @DUMPBIN@ +DVDNAV_CFLAGS = @DVDNAV_CFLAGS@ +DVDNAV_LIBS = @DVDNAV_LIBS@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ERROR_CFLAGS = @ERROR_CFLAGS@ +ERROR_CXXFLAGS = @ERROR_CXXFLAGS@ +EXEEXT = @EXEEXT@ +EXIF_CFLAGS = @EXIF_CFLAGS@ +EXIF_LIBS = @EXIF_LIBS@ +FAAC_LIBS = @FAAC_LIBS@ +FAAD_IS_NEAAC = @FAAD_IS_NEAAC@ +FAAD_LIBS = @FAAD_LIBS@ +FFLAGS = @FFLAGS@ +FGREP = @FGREP@ +FLITE_CFLAGS = @FLITE_CFLAGS@ +FLITE_LIBS = @FLITE_LIBS@ +GCOV = @GCOV@ +GCOV_CFLAGS = @GCOV_CFLAGS@ +GCOV_LIBS = @GCOV_LIBS@ +GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@ +GETTEXT_PACKAGE = @GETTEXT_PACKAGE@ +GIO_CFLAGS = @GIO_CFLAGS@ +GIO_LIBS = @GIO_LIBS@ +GLIB_CFLAGS = @GLIB_CFLAGS@ +GLIB_COMPILE_SCHEMAS = @GLIB_COMPILE_SCHEMAS@ +GLIB_LIBS = @GLIB_LIBS@ +GLIB_PREFIX = @GLIB_PREFIX@ +GLIB_REQ = @GLIB_REQ@ +GME_LIBS = @GME_LIBS@ +GMODULE_EXPORT_CFLAGS = @GMODULE_EXPORT_CFLAGS@ +GMODULE_EXPORT_LIBS = @GMODULE_EXPORT_LIBS@ +GMSGFMT = @GMSGFMT@ +GMSGFMT_015 = @GMSGFMT_015@ +GMYTH_CFLAGS = @GMYTH_CFLAGS@ +GMYTH_LIBS = @GMYTH_LIBS@ +GREP = @GREP@ +GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@ +GSETTINGS_DISABLE_SCHEMAS_COMPILE = @GSETTINGS_DISABLE_SCHEMAS_COMPILE@ +GSETTINGS_LIBS = @GSETTINGS_LIBS@ +GSM_LIBS = @GSM_LIBS@ +GSTPB_PLUGINS_DIR = @GSTPB_PLUGINS_DIR@ +GSTPB_PREFIX = @GSTPB_PREFIX@ +GST_ALL_LDFLAGS = @GST_ALL_LDFLAGS@ +GST_BASE_CFLAGS = @GST_BASE_CFLAGS@ +GST_BASE_LIBS = @GST_BASE_LIBS@ +GST_CFLAGS = @GST_CFLAGS@ +GST_CHECK_CFLAGS = @GST_CHECK_CFLAGS@ +GST_CHECK_LIBS = @GST_CHECK_LIBS@ +GST_CONTROLLER_CFLAGS = @GST_CONTROLLER_CFLAGS@ +GST_CONTROLLER_LIBS = @GST_CONTROLLER_LIBS@ +GST_CXXFLAGS = @GST_CXXFLAGS@ +GST_GDP_CFLAGS = @GST_GDP_CFLAGS@ +GST_GDP_LIBS = @GST_GDP_LIBS@ +GST_LEVEL_DEFAULT = @GST_LEVEL_DEFAULT@ +GST_LIBS = @GST_LIBS@ +GST_LIB_LDFLAGS = @GST_LIB_LDFLAGS@ +GST_LICENSE = @GST_LICENSE@ +GST_MAJORMINOR = @GST_MAJORMINOR@ +GST_OPTION_CFLAGS = @GST_OPTION_CFLAGS@ +GST_OPTION_CXXFLAGS = @GST_OPTION_CXXFLAGS@ +GST_PACKAGE_NAME = @GST_PACKAGE_NAME@ +GST_PACKAGE_ORIGIN = @GST_PACKAGE_ORIGIN@ +GST_PLUGINS_ALL = @GST_PLUGINS_ALL@ +GST_PLUGINS_BAD_CFLAGS = @GST_PLUGINS_BAD_CFLAGS@ +GST_PLUGINS_BAD_CXXFLAGS = @GST_PLUGINS_BAD_CXXFLAGS@ +GST_PLUGINS_BASE_CFLAGS = @GST_PLUGINS_BASE_CFLAGS@ +GST_PLUGINS_BASE_DIR = @GST_PLUGINS_BASE_DIR@ +GST_PLUGINS_BASE_LIBS = @GST_PLUGINS_BASE_LIBS@ +GST_PLUGINS_DIR = @GST_PLUGINS_DIR@ +GST_PLUGINS_FFMPEG_CFLAGS = @GST_PLUGINS_FFMPEG_CFLAGS@ +GST_PLUGINS_FFMPEG_DIR = @GST_PLUGINS_FFMPEG_DIR@ +GST_PLUGINS_FFMPEG_LIBS = @GST_PLUGINS_FFMPEG_LIBS@ +GST_PLUGINS_GOOD_CFLAGS = @GST_PLUGINS_GOOD_CFLAGS@ +GST_PLUGINS_GOOD_DIR = @GST_PLUGINS_GOOD_DIR@ +GST_PLUGINS_GOOD_LIBS = @GST_PLUGINS_GOOD_LIBS@ +GST_PLUGINS_SELECTED = @GST_PLUGINS_SELECTED@ +GST_PLUGINS_UGLY_CFLAGS = @GST_PLUGINS_UGLY_CFLAGS@ +GST_PLUGINS_UGLY_DIR = @GST_PLUGINS_UGLY_DIR@ +GST_PLUGINS_UGLY_LIBS = @GST_PLUGINS_UGLY_LIBS@ +GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@ +GST_PREFIX = @GST_PREFIX@ +GST_TOOLS_DIR = @GST_TOOLS_DIR@ +GTKDOC_CHECK = @GTKDOC_CHECK@ +GTK_CFLAGS = @GTK_CFLAGS@ +GTK_LIBS = @GTK_LIBS@ +HAVE_AMRWB = @HAVE_AMRWB@ +HAVE_BZ2 = @HAVE_BZ2@ +HAVE_CXX = @HAVE_CXX@ +HAVE_DIRECTDRAW = @HAVE_DIRECTDRAW@ +HAVE_DIRECTSOUND = @HAVE_DIRECTSOUND@ +HAVE_DTS = @HAVE_DTS@ +HAVE_FAAC = @HAVE_FAAC@ +HAVE_FAAD = @HAVE_FAAD@ +HAVE_FLITE = @HAVE_FLITE@ +HAVE_GSM = @HAVE_GSM@ +HAVE_JP2K = @HAVE_JP2K@ +HAVE_NAS = @HAVE_NAS@ +HAVE_VPX = @HAVE_VPX@ +HAVE_WILDMIDI = @HAVE_WILDMIDI@ +HAVE_X = @HAVE_X@ +HAVE_X11 = @HAVE_X11@ +HTML_DIR = @HTML_DIR@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +INTLLIBS = @INTLLIBS@ +INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@ +JP2K_LIBS = @JP2K_LIBS@ +KATE_CFLAGS = @KATE_CFLAGS@ +KATE_LIBS = @KATE_LIBS@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBDC1394_CFLAGS = @LIBDC1394_CFLAGS@ +LIBDC1394_LIBS = @LIBDC1394_LIBS@ +LIBDIR = @LIBDIR@ +LIBICONV = @LIBICONV@ +LIBINTL = @LIBINTL@ +LIBM = @LIBM@ +LIBMMS_CFLAGS = @LIBMMS_CFLAGS@ +LIBMMS_LIBS = @LIBMMS_LIBS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LOCALEDIR = @LOCALEDIR@ +LRDF_CFLAGS = @LRDF_CFLAGS@ +LRDF_LIBS = @LRDF_LIBS@ +LTLIBICONV = @LTLIBICONV@ +LTLIBINTL = @LTLIBINTL@ +LTLIBOBJS = @LTLIBOBJS@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MIMIC_CFLAGS = @MIMIC_CFLAGS@ +MIMIC_LIBS = @MIMIC_LIBS@ +MJPEG_CFLAGS = @MJPEG_CFLAGS@ +MJPEG_LIBS = @MJPEG_LIBS@ +MKDIR_P = @MKDIR_P@ +MODPLUG_CFLAGS = @MODPLUG_CFLAGS@ +MODPLUG_LIBS = @MODPLUG_LIBS@ +MPEG2ENC_CFLAGS = @MPEG2ENC_CFLAGS@ +MPEG2ENC_LIBS = @MPEG2ENC_LIBS@ +MPLEX_CFLAGS = @MPLEX_CFLAGS@ +MPLEX_LDFLAGS = @MPLEX_LDFLAGS@ +MPLEX_LIBS = @MPLEX_LIBS@ +MSGFMT = @MSGFMT@ +MSGFMT_015 = @MSGFMT_015@ +MSGMERGE = @MSGMERGE@ +MUSEPACK_LIBS = @MUSEPACK_LIBS@ +MUSICBRAINZ_CFLAGS = @MUSICBRAINZ_CFLAGS@ +MUSICBRAINZ_LIBS = @MUSICBRAINZ_LIBS@ +NAS_CFLAGS = @NAS_CFLAGS@ +NAS_LIBS = @NAS_LIBS@ +NEON_CFLAGS = @NEON_CFLAGS@ +NEON_LIBS = @NEON_LIBS@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJC = @OBJC@ +OBJCDEPMODE = @OBJCDEPMODE@ +OBJC_LDFLAGS = @OBJC_LDFLAGS@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OFA_CFLAGS = @OFA_CFLAGS@ +OFA_LIBS = @OFA_LIBS@ +OPENCV_CFLAGS = @OPENCV_CFLAGS@ +OPENCV_LIBS = @OPENCV_LIBS@ +ORCC = @ORCC@ +ORCC_FLAGS = @ORCC_FLAGS@ +ORC_CFLAGS = @ORC_CFLAGS@ +ORC_LIBS = @ORC_LIBS@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PACKAGE_VERSION_MAJOR = @PACKAGE_VERSION_MAJOR@ +PACKAGE_VERSION_MICRO = @PACKAGE_VERSION_MICRO@ +PACKAGE_VERSION_MINOR = @PACKAGE_VERSION_MINOR@ +PACKAGE_VERSION_NANO = @PACKAGE_VERSION_NANO@ +PACKAGE_VERSION_RELEASE = @PACKAGE_VERSION_RELEASE@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +PKG_CONFIG = @PKG_CONFIG@ +PLUGINDIR = @PLUGINDIR@ +POSUB = @POSUB@ +PROFILE_CFLAGS = @PROFILE_CFLAGS@ +PYTHON = @PYTHON@ +PYTHON_EXEC_PREFIX = @PYTHON_EXEC_PREFIX@ +PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PREFIX = @PYTHON_PREFIX@ +PYTHON_VERSION = @PYTHON_VERSION@ +RANLIB = @RANLIB@ +RSVG_CFLAGS = @RSVG_CFLAGS@ +RSVG_LIBS = @RSVG_LIBS@ +RTMP_CFLAGS = @RTMP_CFLAGS@ +RTMP_LIBS = @RTMP_LIBS@ +SCHRO_CFLAGS = @SCHRO_CFLAGS@ +SCHRO_LIBS = @SCHRO_LIBS@ +SDL_CFLAGS = @SDL_CFLAGS@ +SDL_CONFIG = @SDL_CONFIG@ +SDL_LIBS = @SDL_LIBS@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +SLV2_CFLAGS = @SLV2_CFLAGS@ +SLV2_LIBS = @SLV2_LIBS@ +SNDFILE_CFLAGS = @SNDFILE_CFLAGS@ +SNDFILE_LIBS = @SNDFILE_LIBS@ +SOUNDTOUCH_CFLAGS = @SOUNDTOUCH_CFLAGS@ +SOUNDTOUCH_LIBS = @SOUNDTOUCH_LIBS@ +SPC_LIBS = @SPC_LIBS@ +STRIP = @STRIP@ +SWFDEC_CFLAGS = @SWFDEC_CFLAGS@ +SWFDEC_LIBS = @SWFDEC_LIBS@ +TIGER_CFLAGS = @TIGER_CFLAGS@ +TIGER_LIBS = @TIGER_LIBS@ +TIMIDITY_CFLAGS = @TIMIDITY_CFLAGS@ +TIMIDITY_LIBS = @TIMIDITY_LIBS@ +USE_NLS = @USE_NLS@ +VALGRIND_CFLAGS = @VALGRIND_CFLAGS@ +VALGRIND_LIBS = @VALGRIND_LIBS@ +VALGRIND_PATH = @VALGRIND_PATH@ +VDPAU_CFLAGS = @VDPAU_CFLAGS@ +VDPAU_LIBS = @VDPAU_LIBS@ +VERSION = @VERSION@ +VPX_LIBS = @VPX_LIBS@ +WARNING_CFLAGS = @WARNING_CFLAGS@ +WARNING_CXXFLAGS = @WARNING_CXXFLAGS@ +WILDMIDI_CFLAGS = @WILDMIDI_CFLAGS@ +WILDMIDI_LIBS = @WILDMIDI_LIBS@ +WIN32_LIBS = @WIN32_LIBS@ +X11_CFLAGS = @X11_CFLAGS@ +X11_LIBS = @X11_LIBS@ +XDG_LIBS = @XDG_LIBS@ +XGETTEXT = @XGETTEXT@ +XGETTEXT_015 = @XGETTEXT_015@ +XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@ +XMKMF = @XMKMF@ +XVID_LIBS = @XVID_LIBS@ +X_CFLAGS = @X_CFLAGS@ +X_EXTRA_LIBS = @X_EXTRA_LIBS@ +X_LIBS = @X_LIBS@ +X_PRE_LIBS = @X_PRE_LIBS@ +ZBAR_CFLAGS = @ZBAR_CFLAGS@ +ZBAR_LIBS = @ZBAR_LIBS@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +ac_ct_OBJC = @ac_ct_OBJC@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +gsettingsschemadir = @gsettingsschemadir@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +lt_ECHO = @lt_ECHO@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +pkgpyexecdir = @pkgpyexecdir@ +pkgpythondir = @pkgpythondir@ +plugindir = @plugindir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +pyexecdir = @pyexecdir@ +pythondir = @pythondir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +plugin_LTLIBRARIES = libgstnassink.la +libgstnassink_la_SOURCES = nassink.c +libgstnassink_la_CFLAGS = \ + $(GST_CFLAGS) $(GST_PLUGINS_BASE_CFLAGS) $(NAS_CFLAGS) + +libgstnassink_la_LIBADD = \ + $(GST_PLUGINS_BASE_LIBS) -lgstaudio-$(GST_MAJORMINOR) $(NAS_LIBS) + +libgstnassink_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) +libgstnassink_la_LIBTOOLFLAGS = --tag=disable-static +noinst_HEADERS = nassink.h +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu ext/nas/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --gnu ext/nas/Makefile +.PRECIOUS: Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): +install-pluginLTLIBRARIES: $(plugin_LTLIBRARIES) + @$(NORMAL_INSTALL) + test -z "$(plugindir)" || $(MKDIR_P) "$(DESTDIR)$(plugindir)" + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(plugindir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(plugindir)"; \ + } + +uninstall-pluginLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(plugin_LTLIBRARIES)'; test -n "$(plugindir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(plugindir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(plugindir)/$$f"; \ + done + +clean-pluginLTLIBRARIES: + -test -z "$(plugin_LTLIBRARIES)" || rm -f $(plugin_LTLIBRARIES) + @list='$(plugin_LTLIBRARIES)'; for p in $$list; do \ + dir="`echo $$p | sed -e 's|/[^/]*$$||'`"; \ + test "$$dir" != "$$p" || dir=.; \ + echo "rm -f \"$${dir}/so_locations\""; \ + rm -f "$${dir}/so_locations"; \ + done +libgstnassink.la: $(libgstnassink_la_OBJECTS) $(libgstnassink_la_DEPENDENCIES) + $(AM_V_CCLD)$(libgstnassink_la_LINK) -rpath $(plugindir) $(libgstnassink_la_OBJECTS) $(libgstnassink_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libgstnassink_la-nassink.Plo@am__quote@ + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $< +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $< + +libgstnassink_la-nassink.lo: nassink.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnassink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnassink_la_CFLAGS) $(CFLAGS) -MT libgstnassink_la-nassink.lo -MD -MP -MF $(DEPDIR)/libgstnassink_la-nassink.Tpo -c -o libgstnassink_la-nassink.lo `test -f 'nassink.c' || echo '$(srcdir)/'`nassink.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libgstnassink_la-nassink.Tpo $(DEPDIR)/libgstnassink_la-nassink.Plo +@am__fastdepCC_FALSE@ $(AM_V_CC) @AM_BACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='nassink.c' object='libgstnassink_la-nassink.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(LIBTOOL) $(AM_V_lt) --tag=CC $(libgstnassink_la_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(libgstnassink_la_CFLAGS) $(CFLAGS) -c -o libgstnassink_la-nassink.lo `test -f 'nassink.c' || echo '$(srcdir)/'`nassink.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + mkid -fID $$unique +tags: TAGS + +TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + set x; \ + here=`pwd`; \ + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: CTAGS +CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \ + $(TAGS_FILES) $(LISP) + list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | \ + $(AWK) '{ files[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in files) print i; }; }'`; \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + +distdir: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(LTLIBRARIES) $(HEADERS) +installdirs: + for dir in "$(DESTDIR)$(plugindir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + `test -z '$(STRIP)' || \ + echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-pluginLTLIBRARIES \ + mostlyclean-am + +distclean: distclean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-pluginLTLIBRARIES + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -rf ./$(DEPDIR) + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-pluginLTLIBRARIES + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \ + clean-libtool clean-pluginLTLIBRARIES ctags distclean \ + distclean-compile distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-pluginLTLIBRARIES \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags uninstall uninstall-am uninstall-pluginLTLIBRARIES + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/ext/nas/nassink.c b/ext/nas/nassink.c new file mode 100644 index 0000000..4b53595 --- /dev/null +++ b/ext/nas/nassink.c @@ -0,0 +1,637 @@ +/* GStreamer + * Copyright (C) <2003> Laurent Vivier + * Copyright (C) <2004> Arwed v. Merkatz + * + * Based on esdsink.c: + * Copyright (C) <2001> Richard Boulton + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Library General Public + * License as published by the Free Software Foundation; either + * version 2 of the License, or (at your option) any later version. + * + * This library is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + * Library General Public License for more details. + * + * You should have received a copy of the GNU Library General Public + * License along with this library; if not, write to the + * Free Software Foundation, Inc., 59 Temple Place - Suite 330, + * Boston, MA 02111-1307, USA. + */ + +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + +#include +#include +#include